LocalLLM
何の記事 ローカルホストにLLMをインストールし、性能を検証。 またapiを介して利用可能にする方法を検証。 最後に、社内のことを学ばせて、こういう質問が来たらこう答えてねってのを教え込ませる。 背景 自宅には計算資源がたくさんある。 それをネットワーク越しに使えるということがわかったので、LLM等の重い処理も自宅で動かして、軽量なフロントエンドと連携させる、 みたいなことが非常に簡単にできるということがわかった。 LLMで何をしたいか??お客さんからの問い合わせに自動で答えるチャットボットを作りたいのよね。 うん、社内の情報とかを学ばせないといけない。その辺のファインチューニングの仕方も知りたい。 参考記事 [ollamaについて] (https://bhrtaym-blog.com/?p=407) [ローカルLLMをGPUで動かす] (https://zenn.dev/giana12th/articles/7fc22c8cbdbb5e) ollama公式サイト ollamaのgithub proxmoxで動かすための下準備 GPUをパススルー必要がある。 あと、一番大きいモデルでは何倍とメモリが必要なんだっけ? 64GB以上あれば問題ないらしい。のでとりあえずそれをインストールしようと思う。 あとは、ProxmoxでGPUをパススルーする方法。 あー、「ホストマシンのBIOSにて、VT-x, VT-d を有効にする。(VT-d は PCI Passthrough で必須)」 する必要があるらしい。 しかし、実はCPUの仮想化をした時点でGPUの仮想化もできるようになってたっぽい。 でした準備は完了した。がメモっておくか proxmoxのコンソールから、add hardware PCIeを選択し、GPUを入れる。 nvidia-driverをインストール nvidia-smiが使えるか確認。認識されているかも確認 ちなみに、ここでcudaのバージョンが出てくるけど、これは対応しているcudaのバージョンを示しているだけで実際にcudaがインストールされたわけではありません。そこを気を付けてください。 cuda(ランタイム)をインストール しかし、これはdocker等で、cudaが入ったコンテナを配ってもらえれば終わる話なので、無視でいいのかな??ちょっと調べてみよう。 proxmoxのCPUのtypeをhostに変える。これをやらないとavx命令が使えない。これゆえGPUが使われなくなってしまう。 ollamaのインストール dockerもある。 ollama on docker これを参考にnvidia-container-toolkitをインストールする感じか。 docker install後の苦戦 docker上のollama上で、llama3を動かすことには成功したんですよ。しかし、どうやらGPUでは動かせていいない。これはなんでかわかりました。 time=2024-07-19T00:29:37.242Z level=WARN source=gpu.go:225 msg="CPU does not have minimum vector extensions, GPU inference disabled" required=avx detected="no vector extensions" CPUがavx命令をサポートしていないとGPUにオフロードされないみたいですね。 ほかのところでも同じことが言われていました。 GPU support requires the AVX instruction set, check your CPU model. つまり、ProxmoxでどうにかしてavxをOnにする必要があるということです。 これのやり方ですが、cpuのtypeをホストにしたら解決するようです。ってことで変えて再起動します。 ...