仕事で使っていたAMDのグラフィックカードですが、M2チップのMacになったので使わなくなった。そこで、ローカルLLMをやってみることに。
生成AIでいろいろできるようですが、デザインの仕事では、まだまだ導入する意味はあまりない。なので課金するほどには使っていない。しかし、趣味の部分ではChat GPTの無課金部分には、だいぶお世話になっている。書類を添付し、その内容を回答してもらうとか非常に便利だ。仕事でもPDFの添付とかしたくなるのですが、仕事上知り得た情報を外部のWEBアプリにアップするのは流石にね。そこで、そういったことを解決するために、ローカルLLMを組んでみることに。
まず、AMDのグラフィックカードでLLMをやるには、ROCm対応していることがほぼ必須。ROCmとは、Radeon Open Computeのことで、AMD製GPUで機械学習や高速計算を行うためのオープンソースのGPU計算プラットフォーム。
ROCmに対応しているGPUは以下にある。
私の場合は、Radeon RX Vega 64なので、対応していない?って感じでしたが、gfx900というアーキテクチャではあるので、AMD Instinctにgfx900があるのでやってみたら、無事認識した。インストールには下記のページを参考にした。使っていないPCケースにグラフィックカードを入れ、CPUは3万円ぐらいのものを新調した。OSはUbuntu 22.04 LTS Server。
ただ、Perform MOK managementというセキュアブート画面が出てきてどうすればいいのかわからなくて、手こずりましたが。
以下の通りに認識した。Agent2がRadeon RX Vega 64です。
$ rocminfo
ROCk module version 6.10.5 is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.14
System Timestamp Freq.: 1000.000000MHz
Machine Model: LARGE
System Endianness: LITTLE
DMAbuf Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD Ryzen 7 5700X 8-Core Processor
Device Type: CPU
Compute Unit: 16
Max Clock Freq: 3400 MHz
*******
Agent 2
*******
Name: gfx900
Marketing Name: Radeon RX Vega
Device Type: GPU
Compute Unit: 64
Max Clock Freq: 1663 MHz
Fast F16 Operation: TRUE
次に、Ollama(オラマ)という、LLMをローカル環境で利用できるオープンソースのツールをインストールします。Llama3を動かしてみたところサクサク動く。
ということで、次にOpen WebUIを使って、LAN内のMacから接続して、Chat GPTのような使い方をする方法を試します。Open WebUをDocker Composeで動かします。
公式はDocker Composeを使う方法ではないのですが、ChatGPTがCUDAじゃないので、公式の方法ではないと言いはるのでDocker Composeでやりました。
しかし、docker-compose.ymlの書き方でかなり手こずった。ローカルの別のマシンからのアクセスもなかなか大変だった。
何とかブラウザからUbuntuサーバーへ接続して(http://192.168.10.60:8080)、チャットができるようになりました。

次に、添付ファイルを読み込ませようとしたが、どうもうまく行かない。これもdocker-compose.ymlの記述で、添付ファイルも扱えるようになった。しかし、想像していたほどの能力が無い。コピペできる程度のテキストファイルしか認識できていない。
せっかく、ここまで動くようになったのに、ちょっとがっかり。さて、どうしたものか・・・。