ASUS ROG AllyでLLMをローカル実行してみた

数週間、ASUS ROG AllyでローカルAIモデルを動かしてみました。楽しいプロジェクトになると思っていましたが、実際にはハードウェアの限界を学ぶことになりました。

クラウドの代わりとしてではなく、ちょっとしたタスクのための特化型ツールとして使用しました。携帯型デバイスでAIを動かすことについて、学んだことをお伝えします。

メモリの壁

携帯型デバイスはユニファイドメモリ・アーキテクチャを採用しています。これは、CPUとGPUが同じRAMを共有することを意味します。デフォルトでは、GPUに割り当てられるメモリはごくわずかです。

モデルがそのメモリ領域に収まらない場合、システムはCPUを使用します。これにより、生成速度は耐え難いほど遅くなります。

解決策:

  • BIOSに入ります。
  • UMAフレームバッファを手動で増やします。
  • 私は4 GBまで増やしました。この変更は、他のどんな調整よりも効果がありました。

効果のない方法

メモリをさらに絞り出そうとzRAMを使ってみましたが、失敗しました。ほとんどのAIモデルは、すでに圧縮されているGGUFファイルを使用しています。空き容量を増やすために、これ以上圧縮することはできません。

ディスクスワップで補おうともしましたが、スワップは速度を上げるものではありません。むしろ、使い物にならなくなります。モデルがディスクスワップに依存している場合、数秒に1単語しか出力されないでしょう。

スワップを有効にしておく唯一の理由は、RAM不足時にシステムがプロセスを強制終了するのを防ぐためだけです。

スムーズに動作させるためのヒント

AIの出力が途切れたり、カクついたりする場合は、Linuxカーネルの設定を確認してください。

  • vm.swappiness の値を下げます。
  • これにより、システムが早すぎるタイミングでメモリをスワップに移動させるのを防げます。
  • これで、生成がカクつくことなく安定して感じられるようになります。

モデル選びはユースケース次第

多くの人は最も速いモデルを探しますが、私は代わりに、速度は遅くてもより精度の高いモデルを選びました。

  • リアルタイムでチャットする場合は、速度が必要です。
  • バックグラウンドでエージェントを動かす場合は、品質が必要です。

私はこのセットアップをバックグラウンドタスクに使用しています。リクエストを送り、後で結果を確認します。画面を見ているわけではないので、レスポンスに8秒ではなく40秒かかっても気にしません。速い回答ではなく、最良の回答が欲しいのです。

携帯型デバイスでは推論モデル(reasoning models)は避けてください。ステップバイステップの思考プロセスは、スペックの低いハードウェアでは時間がかかりすぎます。品質の向上は、待ち時間に見合わないことが多いです。

向いている用途

16 GBのデバイスは、以下のような用途に最適です:

  • 短いメールの下書き。
  • 小さなコードスニペットのレビュー。
  • 大まかな一日の計画。
  • ネットワーク外に出すべきではないプライベートなタスク。

以下のような用途には向きません:

  • 長い文書。
  • 深いリサーチ。
  • 複雑なコーディングプロジェクト。

ローカルAIはツールであり、魔法ではありません。ルーチンワークや軽量な作業には最適です。

Source: https://dev.to/frankydzoro/i-ran-an-llm-locally-on-my-asus-rog-ally-and-heres-what-i-actually-learned-3o6j

Optional learning community: https://t.me/GyaanSetuAi