クラウドAPIは、その便利さが失われるまでは非常に便利です。月々の請求額はじわじわと膨らみ、価格改定によって予算が崩れます。そして、どこかの細かい利用規約の隅で、あなたの独自のデータが他者のモデルの学習に使われているかもしれません。こうした摩擦により、ローカルのAIワークステーションを構築する開発者が増えています。ハードウェアは一度購入すれば済み、スタック全体を完全に所有でき、どのデータをマシンから出すかを正確に決定できます。

今週は、その移行をより現実的なものにする3つの具体的な進展がありました。金融データを手元に留めるDocker化されたトレーディング・アシスタント、NVIDIA GPUを自らの制御下に置くための明快なガイド、そして消費者向けのデスクトップでもロボット学習を可能にするHugging Faceの最新リリースです。

Keep Your Trading Data Local with Docker

ある開発者が、トレーディングのワークフローに特化して構築されたローカルAIリサーチ・アシスタント「TradingSpy」をリリースしました。市場データや個人のウォッチリストをリモートのエンドポイントに送信する代わりに、すべての処理を自身のハードウェア上のDockerコンテナ内で実行します。

金融データは、極めて機密性の高いものです。ポートフォリオの構成、取引ノート、過去のポジションなどは、可能な限りサードパーティのAPIを経由させるべきではありません。モデルをローカルで実行することで、そのリスクを完全に排除できます。コンテナが推論を処理するため、証券会社からの生データがマシンから外に出ることはありません。

Dockerは、Pythonの機械学習プロジェクトを悩ませる複雑な依存関係の問題も解決します。トレーディング・スタックでは、pandasのようなデータライブラリ、テクニカル分析ツールキット、GPU加速された推論エンジンなどが混在することがよくあります。隔離(isolation)がなければ、あるプロジェクトはCUDA 11.8を要求し、別のプロジェクトは12.1を求め、ベースシステムは競合する環境変数の墓場と化してしまいます。Dockerは、各依存関係のグラフを独自のイメージ内に封じ込めます。一度構築すれば、ヘッドレスなUbuntuサーバー、WSL2を備えたWindows 11デスクトップ、あるいは小規模なホームラボ用NAS上でも、全く同じように動作します。ローカルのデータディレクトリをコンテナにbind-mountすることもできるため、実行環境をクリーンに保ったまま、ファイルは自身のファイルシステム上に留めておくことができます。

コスト面でのメリットもあります。クラウドのLLM APIはトークンごとに課金されます。何百ものティッカーに対して市場開始前のスキャンを行い、価格変動、ニュースの要約、テクニカル指標をモデルに投入する場合、API呼び出し回数は急速に増えていきます。ローカルモデルには、課金のメーターはありません。GPUの初期費用は一度きりの痛手ですが、APIの請求は毎月続く痛手となります。

Understanding NVIDIA GPU Environments

クラウドAPIからローカルのNVIDIAカードへの移行は、単にPyTorchをインストールして .to('cuda') を呼び出すだけのように簡単ではありません。そこには確かな学習曲線が存在し、それを理解できるかどうかが、単なる趣味のスクリプトと信頼できるワークステーションを分ける境界線となります。

クラウドAPIはハードウェアを隠蔽します。JSONを送り、JSONを受け取るだけです。ローカルでは、あなたがシステム管理者になります。正しいドライバー、互換性のあるCUDA toolkit、そして使用しているGPUアーキテクチャ向けにコンパイルされたPyTorchのビルドが必要です。その上で、コンテナ用に nvidia-docker ランタイムを設定するか、ベアメタル上で LD_LIBRARY_PATH を管理するかして、それらをランタイムへと橋渡ししなければなりません。各レイヤーには一致させるべきバージョンの組み合わせがあり、それが一致しないと、ライブラリの欠落やデバイスの未初期化に関する不可解なエラーが発生します。

その見返りは、直接的なハードウェア制御です。GPUメモリには「ハードな上限(hard ceiling)」があることを学ぶことになります。OSがスワップやページングを行えるシステムRAMとは異なり、VRAMが不足すると、通常はトレーニングジョブのクラッシュや、推論バッチの即時失敗を意味します。その制約があるからこそ、バッチサイズ、混合精度トレーニング(mixed-precision training)、メモリプロファイリングについて考えるようになるのです。コンピューティングを無限のユーティリティとして扱うのをやめ、管理すべき有限のリソースとして扱うようになります。

今週話題になっている有用なガイドでは、エンタープライズ向けGPUとコンシューマー向けGPUを「同じ種」として扱っています。データセンターグレードのA100を使用していようと、コンシューマー向けのRTX 4070を使用していようと、基本は変わりません。どちらも同じCUDAプログラミングモデルに依存しています。どちらもテンソルを明示的にデバイスへ移動させる必要があります。どちらも、12GBのカードに14GBのモデルを割り当てようとすれば、等しくエラー(制裁)が発生します。これらの教訓は共通しています。デスクトップのカードでプロトタイプを作成し、後にさらに強力なマシンへとスケールアップする場合でも、全く同じ最適化の考え方を適用できるのです。

LeRobot v0.6.0 Puts Robotics on Your Desk

Hugging Faceは、チャットボットや画像生成の背後にあるTransformersやDiffusersライブラリを、全く異なるタスク、すなわちロボット学習のために再利用するフレームワークであるLeRobotのバージョン0.6.0をリリースしました。次の単語やピクセルを予測する代わりに、このモデルはカメラ映像と言語指示に基づいて、次のモーターアクションを予測します。

ロボティクスは長らく、モーションキャプチャールームや産業用GPUクラスターを備えた、資金力のある研究室のための分野であるかのように見えてきました。LeRobotはその障壁を打破しようとしています。バージョン0.6.0では、ロボットポリシーの設計、学習、評価の方法が簡素化されています。シミュレーションでプロトタイプを作成し、ポリシーのアーキテクチャを反復的に改善した後、数千行もの低レベルな制御コードを書くことなく、実際のロボットアームやモバイルベースへと移行できます。

今回のリリースで注目すべき点は、コンシューマー向けGPUをターゲットにしていることです。実験のためにサーバーラックを用意する必要はありません。ハイエンドなコンシューマー向けカード1枚で、実際のグリッパーやアームに汎用化できるポリシーを学習できます。これは、オープンウェイトモデルがクラウドから物理的なハードウェアへと浸透し始めている明確な兆候です。ウェイトは自身のドライブ上に存在します。ロボットはAPIへのネットワーク経由の通信を介さずにコマンドを受け取ります。現実世界で動くものを制御する場合、レイテンシとプライバシーのメリットは無視できません。

これにより、ソフトウェアとハードウェアの境界に対する考え方も変わります。かつてロボットポリシーは論文の中に存在するものでした。しかし今では、クローンを作成し、独自のモーションデータでファインチューニングし、所有するハードウェアにデプロイできるリポジトリの中に存在しています。

真の勝利はコントロールにある

ローカルなAIスタックを構築することは、原則としてクラウドを拒絶することではありません。自分が何を重視するかに基づいて、コンピューティングを行う場所を選択することなのです。モデルをローカルで実行すれば、データは自身のドライブに留まります。コストは予測不可能な月額料金から、固定のハードウェア投資へと移行します。そして、CUDAのデバッグ、VRAMのプロファイリング、ワークフローのコンテナ化といった、単なるAPIの利用者ではなく、システムエンジニアへと成長させてくれるスキルを習得できるのです。

ツールは整いました。モデルはコンシューマー向けカードに収まるほど十分に小型化されています。最後に残された問いは、スタックを所有するか、それともレンタルし続けるか、という点だけです。