Tech カテゴリのイメージ

HFValidationError: Repo id must be in the form 'repo_name' の対処

このエラーは、from_pretrained などに渡したモデルIDの書式が不正なときに出ます。Hugging FaceのリポジトリIDは「organization/model-name」の形式である必要があり、URLをそのまま貼った、余計なスラッシュが入った、存在しないローカルパスを渡した、が典型的な原因です。

HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name':
'https://huggingface.co/meta-llama/Llama-3-8B'. Use `repo_type` argument if needed.

原因

Hugging Face Hubのモデル指定は、URLではなくID(例: meta-llama/Meta-Llama-3-8B)で行います。また、ローカルのモデルフォルダを指定したつもりでパスが存在しない場合も、ライブラリはそれをHubのIDとして解釈しようとして、この書式エラーになります。

対処

  1. URLを貼っている場合は、ID部分だけに直します。
# 誤り
model = AutoModel.from_pretrained("https://huggingface.co/bert-base-uncased")
# 正しい
model = AutoModel.from_pretrained("bert-base-uncased")
  1. スラッシュの数を確認します。IDに使えるのは「組織名/モデル名」の1本までです。先頭や末尾のスラッシュ、パス連結の失敗で2本以上になっていないかを見ます。

  2. ローカルパスを渡しているつもりなら、そのパスが本当に存在するか確認します。存在しないパスはHubのIDとして解釈されます。

import os
print(os.path.isdir("./models/my-model")) # False ならパス間違い
  1. モデル名のタイプミスや、公開名の変更もあります。Hugging Faceのモデルページを開いて、ページ上部に表示されるIDをそのままコピーするのが確実です。

まとめ

・原因はモデルIDの書式間違い。URL貼り付けとパス誤りが二大典型 ・IDは organization/model-name 形式。URLではない ・ローカルパスは存在しないとHubのIDとして解釈される ・モデルページ上部のIDをコピーするのが確実