0.Intro
僕は何かしら機械学習関係の作業をするときは基本的に全部揃っているkaggle Dockerに入ってから適宜必要なものをインストールして行うようにしています。
kaggleDockerをベースに、その時の目的の作業に向かってバーション間の齟齬を埋めていく感じです。
僕が今現在使用しているkaggle Dockerのバージョンはv135です。
今回はnpaka先生のサンプルコードを動かすところを目標に。
https://note.com/npaka/n/n79eebc29366d
※モデル名は「meta-llama/Llama-2-7b-chat-hf」に変更してます。
結果動きましたが、色々ありました。
1.必要モジュール
transformersを使うに昔はさほど苦労した覚えはないのですが進歩が著しいからか厄介になりましたね。今回は
pip install -I transformers --no-cache-dir --force-reinstall
pip install -U accelerate
が必要でした。こちらでtransformersのImportが可能になりました。
その後実行時にエラーが出ましたが、どうやらurllibのバージョンがイケてないらしく
pip uninstall urllib3
pip install 'urllib3<2'
でいけました。
2.HugginFacePrivateリポジトリから取得
https://huggingface.co/meta-llama
はプライベートリポジトリなのでアクセストークンが必要なんですね。
ここがハマりました。
from_pretrained等の時に引数としてuse_auth_token*を設定する必要があります。
方法は
1.use_auth_token=XXXX とアクセストークン直書きする(こちらは動作未確認)
2.use_auth_token=Trueとし、
以下を実行
huggingface-cli login
IDとアクセストークンを入力
して認証をキャッシュするか、のどちらかです。
ただどちらにしても
メールでアクセストークンでのアクセスが来ていることの確認が来るのでそちらで許可しないとプログラムからはプライベートリポジトリにアクセス出来ません。
3.その他
冒頭にv135のkaggle Dockerを使用していると書きました。
こちらググったところ他に同様の方いなかったのですが、tensorflowを読み込むと
UserWarning: unable to load libtensorflow_io_plugins.so: unable to open file: libtensorflow_io_plugins.so,
となります。
対応方法は
pip3 install --force-reinstall tensorflow-io
です。
何度もDocker作成しても変わらなかったのでイメージの方の問題かとは思うのですが。