Jetson Orin NanoでのOllama最適化
- •アンナ・ビジャレアルは、ソースコードからビルドすることでJetson Orin NanoへのOllama導入に成功した。
- •量子化をQ8_0からQ4_K_Mへ切り替えたことで、生成速度が25倍向上し、30.7 tok/sに達した。
- •Q4_K_Mで発生する50~65%のJSONエラー率を補うため、3回の自動リトライロジックを実装した。
エンジニアのアンナ・ビジャレアル(Anna Villarreal)は、リソース管理を最適化するため、Jetson Orin Nano上でソースからソフトウェアを構築し、Ollamaの導入を成功させた。ソースからのビルドには約30分を要したが、GPUアクセラレーションの明示的な設定が可能となった。これは、8GBのRAMを搭載したデバイスにおいて、Dockerコンテナではリソース消費が過大であったため不可欠な手順だった。導入にはCuda-toolkit-13とGoのインストールが含まれ、GPU利用を最適化するためにsm_87アーキテクチャをターゲットとしたパス設定が行われた。
初期テストにおいて、Q8_0の量子化モデルを使用した場合、生成速度は1秒あたり1.2~1.35トークンに留まった。この構成では、全17層のうち3~9層しかGPUに読み込まれず、残りの処理がCPUに依存していたからだ。モデルの量子化形式をQ4_K_Mに変更することで、モデルサイズは1.5GBから808MBへと削減された。これにより17層すべてがGPUメモリにロードされ、生成速度は約30.7 tok/sまで向上した。971トークンのテストにおいて、Q8_0では13分20秒かかっていた処理が35~45秒で完了し、約25倍の高速化を達成した。
Q4_K_Mへの移行は、不完全な出力という信頼性の課題も生じさせた。検証の結果、有効なJSON生成において50~65%の失敗率が確認され、6回の試行中3回で括弧の欠損やフィールド名の誤りが生じた。速度を維持しつつこの問題を解決するため、アプリケーションには自動リトライロジックが追加された。システムは初回生成が不正な場合、最大3回まで再試行を行う。Q4量子化による高速な応答性能により、3回試行した際の累計時間もQ8_0モデルでの単発処理より大幅に短縮され、構造化データの生成成功率は85~95%まで引き上げられた。