ローカルLLMを活用して業務効率化できないか、いろいろと手を動かしています。
Ollamaを愛用しているのですが、これまでいろいろハマった経験があり、それを克服した際にやったことの記録です。
インストール方法(1)
上記URLから、しかるべきインストーラをダウンロードして実行。
※こちらのチュートリアル記事(Ollama完全ガイド、中村様による)、参考にさせていただいてます。ありがとうございます。
インストール方法(2)
(ollamaのバージョンを選んでインストールしたいとき)
githubのollama/ollamaからインストーラをダウンロードして実行。
ハマりポイント (1): ollamaをバージョンアップ後、LLM実行時にエラーが出て動かなくなった
これまでは正常に使えていたローカルLLMモデルが、バージョンアップ後に動かなくなる(エラーが出て実行できない状況)という状況に遭遇したことがあります。
このときの原因はOllamaの新バージョンに潜む不具合だったようです。その場合は新しい不具合対策バージョンのリリースを待つしかないと思いますが(結果、その後の更なるバージョンアップにより現在は問題なく動いています)、応急処置としては古いバージョンに戻す、ということが考えられます。
1. ollamaをアンインストールする(「設定」>「アプリ」>「インストールされているアプリ」から削除)
※このとき、Model locationがデフォルト設定から変更されている場合は、LLMのモデルファイル自体は削除されません
2. 以前の(必要なLLMが正常動作していた)バージョンのollama.exeを「インストール方法(2)」でインストール
win11の場合はollama-windows-****.zipというファイルをダウンロードして解凍し、出てくるexeファイルを実行。
→ この状態で、コマンドプロンプトから ollama serve
を実行し、その後 ollama run
して必要なLLMが正常動作するか確認します
3. ollamaの自動アップデートが実行されないようにする
勝手に新バージョンにアップデートされるとまた動かなくなってしまうので・・・
- 「設定」>「アプリ」>「スタートアップ」にてollamaが自動で立ち上がるのを止める
- ollamaを使うときはアプリの実行ではなくコマンドプロンプトから
ollama serve
実行による
ハマりポイント (2): dockerでDifyやRagflowをインストールし使っているとローカルLLM呼び出し時にタイムアウトしてしまう
私の場合、間違ってdockerコンテナ内でollamaを実行していると(これとは別にWindows側でもollama.exeを実行している状態では)ローカルLLMが正常に動かず、このようになりました。
この場合はdocker側かWindows側いずれかの、使いたいLLMモデルにアクセスできる方を活かし、他方のollamaを止めることで対策しました。
ハマりポイント (3): GPUがついているのにollamaがこれを認識してくれない
GPU内蔵のノートPCを使っているのですが、これとは別のGPUカードをeGPUボックスに挿して、Thunderbolt経由で使う運用をしています。
この場合に、2つのGPUがそれぞれ別の(どちらもNVIDIA製ではありますが)GPUのためドライバーの競合問題が起こってしまいました。
Thunderboltで接続した後のドライバーの自動インストールに頼るのではなく、NVIDIA Appからクリーンインストールした方が良さそうです。
また、nvidia-smi
コマンドでGPUをOSが認識していることは確認できるのに、Ollamaからは認識されないケースに遭遇しました。
私の場合は「システム環境変数」の CUDA_VISIBLE_DEVICES の値を(ドライバー競合問題と対峙しているときに)1,2
に設定していたのが原因でした。。0,1
にするなど、nvidia-smi
コマンドの出力結果を見て、GPUのIDがollamaから見えるように値を設定することで解決できました。
以上です。