エビデンスで教育を考えた

頭が良くなる科学論文を紹介していきます。お勧め商品は楽天ルームで!https://room.rakuten.co.jp/room_12b7a40f6d/items

コンペメモ(モデルIDの取得とパスの指定に手こずった)〜AI Mathematical Olympiad - Progress Prize 1②〜

Hugging Faceの数学モデルを使おうとしたら以下のエラーに見舞われました。

OSError: open-math-mistral is not a local folder and is not a valid model identifier listed on 'https://huggingface.co/models'
If this is a private repository, make sure to pass a token having permission to this repo either by logging in with `huggingface-cli login` or by passing `token=`

これはopen-math-mistralというモデルが有効でないことを示しており、可能性としては2つのことが考えられます。

1. モデルIDが正しくない
2. モデルIDは正しいが、パスが正しくない

1を確認するために以下のコードを書きました。

from transformers import AutoConfig

# ローカルフォルダーのパスまたはHugging FaceのモデルリポジトリIDを指定
path_or_model_id = 'モデルID'

try:
    # モデル構成を取得しようとします
    config = AutoConfig.from_pretrained(path_or_model_id)
    print("指定されたパスまたはモデルIDは正しいです。")
except Exception as e:
    print(f"エラーが発生しました。モデルIDまたはパスが正しいことを確認してください。\nエラーメッセージ: {e}")

結果は
エラーが発生しました。モデルIDまたはパスが正しいことを確認してください。

どうやらモデルID自体が正しくないようなので、モデルIDの取得から行います。モデルIDの取得の方法はこの順序です。

1. Hugging Faceのモデルハブにアクセスします。
Models - Hugging Face

2. ページ上部の検索バーを使用して、目的のモデルを検索します。
今回はopen mathで検索。
3. モデルの詳細ページに移動し、モデルIDを確認します。

(ウェブサイトではコピペできるよ!)

で再度確認。

from transformers import AutoConfig

# 確認するモデルID
model_id = "nvidia/OpenMath-Mistral-7B-v0.1-hf"

# AutoConfig.from_pretrained()を使用してモデルのメタデータを取得
try:
    config = AutoConfig.from_pretrained(model_id)
    print(f"指定されたモデルID '{model_id}' は有効です。")
except Exception as e:
    print(f"指定されたモデルID '{model_id}' は無効です。エラーメッセージ: {e}")

結果は
指定されたモデルID 'nvidia/OpenMath-Mistral-7B-v0.1-hf' は有効です。

めでたしめでたし。ご参考までに!