その1 パソコンいじりの復活
マイローカル生成AIブームが始まって半年たちました。私のローカル生成AIの環境も省スペース化をはかっています。まず前半はタワーケースからオープンフレームにしたことで40%の省スペース化が出来ることが判り、邪魔にならないならと味を占めて、MBとかCPUを買っているうちに調子に乗ってしまいオープンフレームを4台くらい作ってしまいました。現在は2台にして残りはパーツとして押し入れに眠らせています。後半は、intelよりもAMDのプロセッサの方がコスパが良いようで、Ryzen5やRyzen7のmini-pcをOculink経由で外付けGPUユニットに接続する方式を採用しています。これで容積が更に50%くらい削減できたこともあってRyzen5で2台、Ryzen7で4台にいつの間にか増えていました。GPUボードは2本差しのため在庫があったので付加経費を抑えることができましたが、DRAMを64GBにしたりSSDを増強したり出費がかさみました。しかし、一番お金がかかったのはGPUボードでした。RTX5060Ti16GBが4月16日に発売されるとすぐに3枚購入してたりしています。完全に病気です。何のためにと問われるとより大きなモデルが使えるようにと言ってはいるのですが、親族や友人に喜びを広めたいという訳の判らない博愛主義によるものかもしれません。最近危ないです。秋葉原の高級オーディオショップに通う人の気持ちが少しわかるようになった気がします。
全ての発端は、以下のWEB情報に刺激を受けてしまったためです。

購入したグラフィックボードのパッケージを写真撮影しました。7ケ月前は画像AI用のRTX2060(12GB)とRTX1050(4GB)x2だけでした。

ローカル生成AIのハード環境とは、PC本体とGPUボードで構成されます。GPUボードのPC本体への取り付け方は主に2とおりあります。マザーボードのPCIスロットにGPUボードをさす方法とPCI信号をOculinkというケーブルを使って接続する方法です。OCulinkは高速でThunderbolt(USB4)と同等の通信速度が得られます。OCulink対応はThinkbookやゲーム専用のPCなどです。Mini-PCでは中華製でRyzen系のプロセッサをの乗せた数社の製品が対応しています。MacなどではThunderbolt経由でGPUと接続が可能な製品があります。OCulinkの方がすべてにおいて値段が安価です。
マザーボード方式の魅力は、2本差しが可能なMBが存在し、例えば12GB+12GBのグラボを2本差すことで、ollamaベースのLLMアプリでは,24GBまでのモデルをVRAMに搭載できます。グラボの値段は、VRAM**2に比例します。12GB2枚の方が24GBのものに比べて半額以下で入手できます。一方、OCulink経由では外付けユニットが必要ですが、miniPCと分離して配置できます。容積と空間の自由度がメリットと言えます。GPUも簡単に取り換えできます。

まず初めに、マザーボードをアルミフレームに組みつける方法です。AmazonでATXアルミフレームと検索すると以下のようなキットが見つかります。単体で買うより圧倒的にいお得です。電源ボタンやリセットボタンに加えUSB拡張ユニット(使いませんけど)、そしてとくに重要なのはGPUボード固定金具です。2個入っています。単体で買うと1個\2,000で中国から輸入になります。

部品を集めて、CPU、DRAM、SSD、電源、GPUボードとスイッチ類アルミフレームに組付けます。慣れれば1時間程度の作業です。組付け前後の写真も示します。

組み立ての最後は、フレーム上部に持ち運び用の取っ手の取り付けです、バランスの良い位置を選んで取り付けます。ATXボードが30x30cmです。フレームの高さは取っ手を含めて42cmでした。もう少しコンパクトにできると思い既製品のアルミフレームを使い高さを低くすることにしました。

既製品のアルミフレームを使用して更に小型化を行いました。アルミフレームは3Dプリンタや少し大型の測定装置を組み込む場合に使っていましたのでネジなどもふんだんに用意できました。フレームの高さは42cm⇒32cmとなり7割くらいの容積にできました。

最終的に、本棚の隙間に無事納めることができました。オープンフレームなので余分なファンなどが不要です。静かです。

その2 PCとGPUボードを分離する方法
Oculinkが使われる前にも、マザーボードのPCIコネクタから信号を取り出すパーツが売られていました。データマイニング用でGPUボードのデータ転送速度がそれほど早くない時期のもの様でした。これを使うとGPUボードの縦置きが可能なので期待していましたが、安定性に問題があることが判り断念しました。OCulinkコネクタ付きのmini-PCが最適解のように思います。

GPUボード側は、OCulinkステーションを使います。2種類あり、電源外付けタイプと電源内蔵タイプがあります。電源内蔵タイプはぱっと見良さそげですが、意外と実用的ではありません。OCulinkケーブルが40cm程度なのでmini-PCの置き場所も制約を受けます。また、消費電力の大きなボードを取り付けるとファンの音がうるさいです。電源外付けタイプは、別途ATX電源を要しないといけません。電源ケーブルが煩雑なので、ソケット接続できるタイプのものをベターです。(私の場合は不要なケーブルを切断したものももありますが)静かで安定感があります。

巨大なRTX3090_24GBをそれぞれのステーションに搭載してみました。見栄えの良い内蔵タイプは頭でっかちで不安定です。また消費電力が350Wなのでファンがいつもうなっています。内蔵電源は800Wと記載されていますが疑問です。外部電源ケーブルは3本必要です。内蔵型はPCI用ソケットが3個あり対応できました。電源外付けタイプには650WのATX電源を乗せました。重心が低く安定感はあります。音も静かでしたが、PCI電源ケーブルは2本で1本足りないので、SATA-PCI電源変換ケーブルを使用しました。普通のGPUは2本で足りるのですが、350Wの巨大(通常の倍以上)なGPUを動かす場合、外部電源ケーブルが電源3本が必要でした。

最新のRTX5060_16GBのGPUボードを電源外付けたプに実装しました。微細化が進み消費電力は150W程度です。外部PCI電源ケーブルは1本で済みます。非常に小さいサイズであることが判ります。

その3 OculinkコネクタのないPCへの対応
ここまでは、ものを買って組み合わせればできるレベルでしたが、OCulinkコネクタが無いPCを改造した事例を紹介します。Ryzen5のmini-PCを使用しました。ポイントは、PCIコネクタが余分にあることです。空きコネクタにOculink変換アダプタを接続し、PC内部からOCulikケーブルを取り出すという改造を加えます。DellのRyzen7搭載のNote-PCのWiFiアダプタを外しOculink変換アダプタの接続を試みましたが、上手く行かず断念しました。Intel系のmin-PCではまだトライしていませんがそのうちやってみようと思います。以下、Ryzen5 mini-PCの開腹手術の様子を示します。

Oculikケーブルさえ取り出せれば、ステーションに接続するだけです。以下RTX1070 8GBとmini-PCをステーション敷地内に収めた写真です。これくらいのサイズなら手提げ袋で持ち歩けると思います。

Dell inspirion (Rytzen7搭載PC)のOculinkケーブル取り出しを諦めたPC達のその後を紹介します。内蔵GPUはほとんど役に立ちません。(ないよりあった方がましなレベル)cpuモードでollamaを動かし、llama3.2を使って簡単なチャットが動作します。応答性は良いです。(左側のPC) また、stable_diffusionをcpuで動かし簡単な画像生成(10分くらい掛かります)を動かしています。(右側のPC)
カスタムモデルによるチャットボット開発くらいには役立てそうです。

最後に、ユニファイドメモリ搭載のmac-miniで悩んでいます。SSD256GB+16GBで9万円、上位版はSSD512GB+24GBが15万円です。原価構成が全く理解できないApple製品です。16GBでOS+アプリで6GBくらい使うと残り10GBがLLMの置き場です。すごく中途半端です。ユニファイドメモリはサムスン製LPDDR5だそうですが、基盤直付けで増設不可能だそうです。今どきSSD256GBもないと思いますし、糞かもしれない。かといって24GBの15万円は高すぎます。どう考えても12万が妥当でしょう。また、macに戻るのも嫌ですが、コンパクトサイズは魅力的です。



