プログラミング
AIを家庭に Part 1: ガラクタ箱
AI At Home Part 1: A Box Of Scraps (jdagostino.github.io)
要約
著者は、クラウドベースのAIサービスに依存するのではなく、自宅に独自のAIデータセンターを構築するという目標を掲げています。現在のコンピューター部品不足と高価格のため、彼は中古のサーバーハードウェアや、かつてクラウドゲーミング用に製造されたものの市場に出回らなかったAMD V620 GPUなどを「ガラクタ」として活用し、低コストで高性能なAI環境を構築するプロセスを詳述しています。特に、冷却やファン制御といった課題へのDIYアプローチが描かれています。
全文翻訳
いいえ、家にAIがあります
第1章: ガラクタ箱
2026年8月13日
ソフトウェア開発者にとって、これは興味深い時代です。Transformer大規模言語モデルは、私の意見では、この分野における長い間で最初の本当に新しく興味深い技術開発です。これに基づいて構築されたAIコーディングエージェントは、この職業での仕事の核となりつつあり、その感覚は、手工具での木工から電動工具の使用への移行に似ています。良くも悪くも。私自身は、分解してガレージで組み立てることができる技術品しか信頼できません。誰かの管理下にあるコーディングエージェントに接続して使用する仕組みは、私を悩ませます。この方法では問題が発生する可能性が高すぎます。それに依存し始めると、それが奪われるでしょう。この技術全体はエキサイティングですが、どこかの大きなAIデータセンターに接続したくはありません。家ごとに小さなAIデータセンターが欲しいのです!そして、私たちは現在、コンピューター部品の不足(あるいは、2010年代後半はコンピューター部品の余剰だったのかもしれません)の最中にあり、手頃な価格を維持するためには、ゴミから構築しなければなりません。
家ごとにAIデータセンターを設置します
ここで最も必要なのは、大量のGPUです。並列行列演算を多く行うものに高速なメモリが必要です。それがGPUです。前述したように、AIワークロードを実行するように設計されているもの、あるいはそれに適していると知られているものは、現在非常に高価です。2022年頃、多くの企業が「クラウドゲーミング」を普及させようとしていました。つまり、高価なゲーミングPCやコンソールを購入する必要がないように、ビデオゲームをどこかのデータセンターで実行するというものです。AMDはそのワークステーションGPUの1つを取り上げ、追加のRAMを搭載し、すべてのビデオ出力を削除しました。その結果できたカードを「V620」と名付けました。一般には販売されなかったため、知らない人もいるかもしれません。AMDはこれらのカードを大量に作りすぎ、そして(後から考えると明白な)ラグの問題のためにクラウドゲーミングはうまくいきませんでした。これらのカードはAIワークロード向けにはあまり設計されておらず、AMDのソフトウェアサポートは悪名高いほど悪いため、eBayの「中古サーバーハードウェア」のe-waste販売業者から比較的安価に購入できます。私が手に入れたものは実際には使用されていなかったと思います。新品同様に見えます。それぞれ32GBのかなり高速なVRAMを搭載しています。確かに、私が使いたいことに対して悪い評判がありますが、どれほど難しいでしょうか?ああ、ちなみにファンはありません。サーバーカードなので、サーバーが非常にうるさいブロワーファンで冷却することを期待しています。それは後で説明します。
ファンや電源ケーブルなしでのフィットチェック
部品不足のため、GPUアレイを接続するために他のe-wasteを購入しました。マザーボードは2017年のX299プラットフォームのもので、誰かの古いゲーミングリグから来たもので、eBayで安かったので古かったです。4つのPCIe x16スロットがあり、4つのGPUを横に並べるのに適切な間隔があります。これが私が気にした唯一のことです。CPUはIntel Core i9 10900Xで、これは過去20年間でIntelが製造した最悪のCPUです。2019年に発売されたとき、それはSkylakeチップのリフレッシュ版で、Intelが当時のAMDのRyzenチップにプロセッサ設計でもリソグラフィノードサイズでも追いつけなかったため、高価で消費電力が大きいものでした。私にとっては問題ありません。それは今安く、仕事はこなします!RAMとSSDは、家の他のコンピューターからサルベージしました。これはもちろんズルです。今購入する必要があったら、迷惑なほど高価だったでしょう。しかし、要件はあなたが思うほど厳しくありません。すべての作業はGPUのVRAMで行われます。モデルがディスクからロードされた後、これらはほとんどアイドル状態になります。もしサルベージした部品がなかったら、かなり安く済んだでしょう。4つのGPUとIntelの最も非効率的なプロセッサに電力を供給するため、大きな電源ユニットを用意しました。eBayでは、1200Wのものより1600Wのものの方が安かったためです。常にそれほど多くの電力を消費するとは予想していませんが、すべてが起動時に一度にオンになるのを処理するには必要です。新しいケースとファンに splurge しました。ああ、そうそう、ファン!それらのデータセンターGPUには冷却ファンがなく、壁のサーバーファンからのエアフローを期待しています。これらのカードを冷却するための3Dプリント可能なファンシュラウドモデルがたくさんオンラインにありますが、4つを横に積み重ねると、これらはすべて最適ではないようです。端に非常にうるさい40mmファンを使用するか、横に突き出てカードを並べることができません。2つのスロットカードを4つ並べると、幅は約160mmになります。そのため、本当に必要なのは、80mmのサーバーファンを2つ、カードのヒートシンクの上に吹き付けることです。最近はOnShapeをこの種のことに使っています。とても良いです。
それで、私はシュラウドをモデル化し、次に印刷して、80mmファンを2つのカードに取り付けることができるようにしました。カードの背面には金属製のケーブルガイドフィンがあり、小さなネジで固定されていました。私はそれらのネジ穴を使用してシュラウドを取り付けました。そこには電気コネクタ用の切り欠きと、ファンを背面に固定するための4つの穴があります。これをカーボンファイバーASAで印刷しましたが、おそらく普通のPLAでも問題なかったでしょう。これらの10,000 RPMファンを選んだのは、十分な空気を送りたいと思ったからです。そして、それらは遅いファンと同じ価格でした。本当にうるさいです!マザーボードにGPU温度に基づいてファンの速度を制御させたいと思っていましたが、最初はうまくいかなかったので、初期設定中は耳栓をしていました。
ぴったりフィット
箱は最初は起動しませんでした。私はおそらく1時間、耳栓をしてガレージに立ってBIOS設定をいじり回し、4つのカードすべてが接続された状態でマザーボードが実際に起動するために必要なPCIe設定を特定しました。(Resizable BARとMMIO High Sizeを有効にする必要があります。高度なオプション設定の2つの別々のメニューにあります。なぜなら、2017年当時、誰もこのボードにこれほど多くのVRAMを接続するとは思っていなかったからです。)この頃、ガレージにイーサネットがないことにも気づいたので、午後11時に石膏ボードに穴を開け始めました。
これは完全に正常なことです。
とにかく!それらの数回の誤った開始の後、私はこのものが起動するようになり、Ubuntu 24.04のインストールを開始しました。耳栓をしたまま、まだファン制御なしで、私はお気に入りの推論サーバー、優れたllama.cppのビルドをコンパイルし、Gemma4モデルをテストしました。これは1枚のカードに快適に収まります。これは、私が単一GPUワークステーションで遊んでいた頃のお気に入りのローカルモデルで、かなりうまくテストされました。私が以前持っていたRTX 3090ほど速くはありませんでしたが、まったく悪くはありませんでした。次にDeepseek V4 Flashを起動しました。これがこのビルドの本当のターゲットです。遅いです!現時点では、それを速くする方法は全く分かりません(次の章で詳しく説明します)。ただ、それが収まるかどうかを確認したかっただけで、収まりました。ファンに戻りましょう!再び、これらのファンがどれほどうるさいかを強調しても、しすぎることはありません。フルブラストでは、家の壁越しに聞こえますが、このものはフルブラストを必要としません。最初の計画は、マザーボードの内蔵ファン制御を使用してファンを制御することでしたが、このボードは異なるファンを異なる速度で制御することを拒否します。これはSupermicroのマザーボードでは一般的らしいです。そこで、代わりにファンコントローラーを構築しました。私は、関税前の時代にAliexpressから購入した、オフブランドのArduino Nanoクローンの箱全体を持っています。10年以上前にマイクロコントローラーのクラスで書いたコードを見つけて、PWMモーターを実行するためにそれをきれいにしました。ファンコントローラーはサーバーからパーセンテージを受け取ります。温度を読み取り、ファンの速度を適切にスケーリングするスクリプトが必要です。そして、これはAIサーバーなので、AIに独自のファン制御スクリプトを書かせました。それはふさわしいと思いました。Deepseek V4 Flashは、通常の量の...でこれを行うのに十分な能力があります。