先月買った自身初購入のミニPCでAMD Ryzen AIを積んだRyzen 7 8845HS搭載AOOSTAR GEM12 Pro MAX/AMDXDNA(Ryzen AI NPU)が実装されたLinuxカーネル6.14な25.04ベータを入れていたUbuntuに各種LLMを使ってAIチャット・AI画像認識などもできるマルチプラットフォーム対応かつ、AMDとROCmにも対応するアプリでCLIな「Ollama」と多彩なGUIフロントエンドから「Alpaca」をインストールして使ってみた話。
Ollamaとは、LLM/Large Language Model/大規模言語モデルをダウンロードしてローカルにあるPCで文字認識、画像認識、映像認識、AIチャットボット...等々各種AI推論を行うことができるAI推論実行環境的なツールです。
Ollama自体はターミナルから実行できるCLIですが、デスクトップ、Web、クラウド...、また、多岐にわたる用途別に、はたまた、PC(Windows、macOS、Linux)からスマホ(iOS、Android)...までOSもマルチプラットフォームで、それも手伝ってかOllamaのGUIフロントエンドは、たくさんあります。
GUIツールだけでなく、利用可能なモデルもプラグインも一生かかっても使い切るのは無理...って言うほど多彩。
githubリポジトリollama/ollamaを見ただけで、その多彩さが一瞬で理解できることでしょう。
OllamaダウンロードページからWindows、macOSならダウンロードしてからインストール、Linuxなら、そこにあるコマンド一発でインストール完了です。
Ubuntuだとこんな感じで/usr/local/bin以下にollamaのバイナリ(≒実行)ファイルがあります。
OSに関わらずだと思いますが、ターミナルやプロンプトからollamaと打てば短くもわかりやすいhelpが表示され、モデルのダウンロード時は、ブラウザで検索可能なモデル一覧から選んで端末でその名称でollama pullするのが良いでしょう。
そうすれば、そのまま、ollama run モデル名でAIアシスタントを起動できるので(よって自身は、あえてブラウザからダウンロードしたことはなく、そうするとどうなるのか未確認です)。
今回、CLIなOllamaでは、granite3.2-visionモデルをダウンロードして使用。
Visionなので画像認識は得意そうなのであとでAlpacaのところで出てくるWindows上のAmuseにに作ってもらった生成画像「海を泳ぐホワイトタイガーたち」のフルパスを渡してみました。
すると最初、「コンテクストからして海豹」とか言ってますが、その後、「白いトラ」と認識してくれました。
ただ、英語は、まともに見えますが、日本語は...かなり、おちゃめ...。
更に、おちゃめさ炸裂...。
聞いた本人に、ひたすら、どう思うか聞くとは...、まぁ、わからないからAIに聞いたとか、聞いた本人はどう思ってるのか純粋に興味があったっていう可能性もありますからね...。
Flathub/Flatpak上のAlpacaページ。
画像認識だけでなく、テキストファイル、Webページ、YouTubeの内容も認識できるとな...。
チャットを複数開くことができる、同じチャット内で複数のモデルと話せる!?、コードのハイライトができる、APIキーがあれば、OpenAI互換APIを使ってクラウド上のモデルと話せる...。
どれも考えたことすらありませんでしたが、というわけで?Ollamaの数あるGUIクライアントの中からFlathub/FlatpakパッケージのAlpacaとAMD Ryzenな自身には必要だったAMDプラグインをインストールしてみました。
後述のWikiにあったのでollamaプラグインをflatpak install。
Alpacaには、OllamaプラグインをインストールすべしとあったWikiページ。
Alpacaのパネルは、とてもシンプルです。
上部左端から[新しいチャット追加]ボタン、Alpacaの文字を挟んでハンバーガーメニューは、[Start Quick Ask]、[チャットのインポート]、[Manage Instances]、[モデルの管理]、[Manage Tools]、[設定]、[キーボード・ショートカット]、[Alpacaについて]、その隣が、それら[左ペインの表示|非表示]ボタン、虫眼鏡が、[チャット内検索]ボタン、右端に行って縦三点メニューは、チャット用で[チャットの名前変更]、[チャットの複製]、[チャットのエクスポート]、[チャットの削除]メニュー、[x]は閉じるボタン。
右ペイン下左から[ファイル添付]ボタン、[テキスト入力欄]、[音声認識の有効|無効]ボタン、[送信]ボタン。
使ったことはありませんが、音声認識もできるんですね。
インスタンスををダウンロードすると設定できる模様な[Manage Instances]の中には、ROCmな設定項目やROCmに対応していないとされる内蔵GPU(iGPU)な自身のAMD Ryzen 7 8845HSマシンでも外付けグラボ・GPUとみなされる[HSA_OVERRIDE_GFX_VERSION]という環境変数設定項目もあります。
尚、ボタン名は、便宜的に書いただけで正式名称があるのかどうかはわかりません。
AlpacaでLlama3.2-Vision 11bモデルを実行、添付(クリップ?)アイコンをクリックして画像(今回は、Windows用にしてAMD Ryzen AIに最適化された生成AIアプリAmuseに作ってもらった生成画像「海で泳ぐホワイトタイガーたち」)を選んで送信。
CoreCtrlのグラフなどからGPUが機能していることがわかります。
前掲のスクショでは、自身の発言も何かおかしく見えますが、それもそのはず、Alpacaに唯一あった[画像][生成]の文字のあったモデル...[画像推論生成モデルのコレクション]を画像生成だと勘違いして実行してたので...。
実行してから、あー、「画像推論」って「提示された画像が何かを推論」するモデルだよね...と気づくという...。
LM Studioもそうでしたが、Alpacaでも画像生成は、難しいんですかね?
Ollama/CLIのインストールにおいては、内蔵GPU(iGPU)にも関わらず、自身のAMD Ryzen 7 8845HSマシンを検出した結果、ROCmが自動的にダウンロードされていますし、Alpaca/GUIのインストールにおいてもAMDな場合、ROCmが...という注釈がありますし、Ollamaインスタンスの設定には、[HSA_OVERRIDE_GFX_VERSION]環境変数の設定項目もあります。
ROCmが対応していないとされる内蔵GPU(iGPU/integrated GPU)ですが、AMD Radeon 780Mについては、あえてなのかは定かではないながら、当該環境変数を設定することにより、ROCmに対応可能となるとのことで内蔵GPU Radeon 780MなRyzen 7 8845HSを使っている自身にとってもありがたい限り、自身は、前述のAlpacaのManage Instancesの設定でOllamaインスタンスの当該変数に[12.0.0]を設定しました。
というのもOllama/Alpacaを試す前にComfyUIやLocalAIを試してみた際、pyenvで仮想環境を作ってやってみた前者で結果、何もつけなくてもスクリプト実行はできたのですが、途中、[pip install --no-cache-dir --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.3]してrocmをインストールし、[pip -r requirements.txt]後、[HSA_OVERRIDE_GFX_VERSION]設定を前置しながらやってみたところ、13.0.0だとダメながら、12.0.0ならmain.pyを実行、起動できたのでAlpacaでも、この値にしましたが、別件のどこかで8845HSに11.0.0として検証したという情報も。
そうしてみた背景には、Phoniex用だったのかな?違う機種か何かでこの値を9.0.0に設定すると...という情報を見かけたことがあってやってみたものの、8845HSでは効かないようだったということがあったから。
と言っても、ComfyUIは、PhoenixやHawk Pointが唯一対応するINT8ではなく、Float16やFloat32系が対象なようなのでStrix含む以降でないと使えそうもないと断念。
尚、BIOSでGPUが有効になっており、同じくBIOSのVRAM設定で最低1GB以上割り当てられている、内蔵GPUがAMD Radeon 780Mの場合、[HSA_OVERRIDE_GFX_VERSION]環境変数に適切な値が設定されていることが(ROCmがインストールされていることも?)Ollamaで自動検出される前提のようです。
正式リリース前のAMDXDNA実装の6.14カーネルを使うべく、Ubuntu 25.04ベータを使ってみていた自身ですが、AMD Ryzen AIソフトウェアで何度も試し、結果、amdgpu-installによるROCmを指定したインストールには失敗していると思っているんですが...、
一方でlsmodにもhwinfoにもamdgpuはあり、なければmodprobe amdgpuすれば有効になりますし、Ryzen AI対応のWindows版AmuseやマルチプラットフォームなLM Studio、また、Ryzen-SWチュートリアルでも何事もなく、自動検出してくれるAlpaca/Ollama以外では自動検出されているものなのか、そうでないのか、LocalAIのようにCPUでしかうまくいかないながらも、推論実行中、CoreCtrl上ではiGPUを使っていることになっているようなケースもあり、どっちだ?と何がなんだか?よくわかっていません。
AMDXDNA実装つながりでamdgpuも実装されてるってこと?先のComfyUIのpyenv仮想環境でrocmがインストールできて、それが活きている?だとしたら、それによってあとからamdgpu-installしても失敗するってことなのかも...?
それ以前から、Linux上でもiGPUが利用できていることは確認できていたものの、ことOllamaの自動検出に関しては、8845HSだからではなく、ROCmがインストールできていたからだとしたら、先のComfyUIのpyenv仮想環境のおかげ?
そんなこんなでROCmは、AMDかつLinuxな場合に必要となるNVIDIAで言うところのCUDAみたいなものらしいので、Ollamaの対応は、とても助かります。
GUIなLM Studioも使い勝手は良かった一方、CLI・ターミナルで操作できるのは楽かも、加えてGUIもあるという点からしてAlpaca以外を試すか否かは別としてOllamaを常用しようかなと。
ただ、何れも画像生成AIモデルがなさ気な点が気になり、追加すればできるんでしょうかね?
LocalAIでは、一応、テキストから画像生成もできるにはできるんですが、CPUオンリー版だからか、sd1.5モデル以外のStable Diffusionやdreamなんちゃらとかだとエラーになる、sd1.5モデルだと、何も指定しないとフォーカスが全くあっていない、物体が一体何かわからないというほど、薄らぼんやりした画像しか生成できず、クリア品質でと追加指定すると、遥かにマシでそれが何かがわかる画像も生成されるようにはなるものの、ぼんやり品質は相変わらずだったり。
これは、iGPUやNPUを使えていないからなのか、そうだとしたら、Alpaca/OllamaやLM Studioに画像生成AIモデルがあれば、Windows版オンリーなAmuseばりに期待するようなものができるものなのか、何らかの理由でそうしたモデルを使うことはできないものなのか?と思いながら、10年以上満喫してきたWindowsレスライフに戻るべく、ローカルAIな旅の途中...。