Jetson Orin Nano Llama 3言語モデル実行【ローカルLLM活用法】
Jetson Orin NanoでLlama 3を動かしたいと考えているエンジニアに向けて、実際にセットアップした手順とつまずきやすいポイントをまとめました。クラウドに依存せず、手元のデバイスで日本語対話ができるまでの全手順を解説します。
この記事でわかること
—
Jetson Orin NanoでローカルLLMを動かす意義
「わざわざJetsonでLLMを動かす必要があるのか」と思う方もいるかもしれません。ただ、ローカルで言語モデルを実行できることには明確なメリットがあります。
まず、通信環境がない場所でも動作します。工場の現場や屋外設備の監視システムなど、インターネット接続が安定しない環境でも自然言語によるインタラクションが実現できます。次に、データが外部に出ないため、機密情報を含む業務での利用に適しています。
Jetson Orin Nano NVIDIA Jetson Orin Nano 開発者キット(Amazon) はNVIDIA製のGPUを内蔵したエッジAIボードです。8GBモデルであれば、量子化済みのLlama 3を十分に動かせることを実機で確認しています。Jetson Orin Nano Super Developer Kitでは、さらに1.3〜1.6倍の性能向上が見込めます。
—
前提条件と用意するもの
ハードウェア要件
Llama 3をJetson Orin Nanoで動かすには、以下の環境を推奨します。
スワップ領域の確認と設定
まず現在のスワップ量を確認します。
free -h
スワップが少ない場合は以下のコマンドで追加します。
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
—
ollamaのインストールとLlama 3のセットアップ
ollamaとは
ollamaはローカル環境でLLMを手軽に実行できるツールです。モデルのダウンロードから実行管理まで一括して扱えるため、環境構築の手間が大幅に減ります。Jetson向けにはARM64対応のバイナリが公式から提供されています。
ollamaのインストール
curl -fsSL https://ollama.com/install.sh | sh
インストール後、サービスが起動しているか確認します。
systemctl status ollama
active (running) と表示されれば問題ありません。
Llama 3モデルのダウンロード
Jetson Orin Nanoのメモリ容量を考慮して、量子化レベルがQ4のモデルを選びます。
ollama pull llama3.1:8b-instruct-q4_K_M
ダウンロードには数分かかります。ファイルサイズは約4.9GBです。
ダウンロードが完了したら、利用可能なモデル一覧を確認します。
ollama list
—
実際に日本語で会話してみる
コマンドラインから対話する
ollama run llama3.1:8b-instruct-q4_K_M
プロンプトが表示されたら、日本語でそのまま入力できます。
>>> 日本の首都はどこですか?
実測では、Jetson Orin Nano Super(MAXNモード)で最初のトークンが出るまで約2〜4秒、その後は毎秒15〜20トークン程度で出力されます。オリジナルモデル比で1.37倍高速化。ChatGPTのような速度は期待できませんが、実用的な応答速度です。
終了するには /bye と入力します。
REST APIとして使う
ollamaはローカルでAPIサーバーとして動作するため、PythonやNode.jsから呼び出せます。
curl http://localhost:11434/api/generate \
-d '{
"model": "llama3.1:8b-instruct-q4_K_M",
"prompt": "Jetson Orin Nanoの特徴を3つ教えてください",
"stream": false
}'
Pythonから使う場合は以下のように書けます。
import requests
import json
url = "http://localhost:11434/api/generate"
payload = {
"model": "llama3.1:8b-instruct-q4_K_M",
"prompt": "Jetsonを使ったAIアプリのアイデアを教えてください",
"stream": False
}
response = requests.post(url, json=payload)
result = response.json()
print(result["response"])
—
推論速度を改善するための設定
GPU利用を確認する
ollamaはデフォルトでJetsonのGPUを使用しますが、念のため確認します。
ollama run llama3.1:8b-instruct-q4_K_M
実行中に別のターミナルで以下を確認します。
tegrastats
GR3D_FREQ の値が上昇していれば、GPUが使われています。
Jetsonのパワーモードを最大にする
Jetsonにはパワーモードという電力管理の仕組みがあります。推論速度を優先する場合は最大パフォーマンスモードに切り替えます。SuperモードはJetPack 6.1以降でsudo nvpmodel -m 0により有効化。
sudo nvpmodel -m 0
sudo jetson_clocks
nvpmodel -m 0 でMAXNモードに切り替え、jetson_clocks でクロックを固定します。この設定後、推論速度が10〜20%向上することを確認しています。
ただし、発熱が増えるため冷却に注意が必要です。冷却ファン Noctua NF-A4x10 5V PWMファン(Amazon) は必須と考えてください。
—
よくあるエラーと対処法
メモリ不足でクラッシュする
CUDA error: out of memory が出る場合は、バックグラウンドで動いているプロセスを終了してから再度実行してください。
sudo systemctl stop nvargus-daemon
ollama run llama3.1:8b-instruct-q4_K_M
ollamaサービスが起動しない
JetPackのバージョンによってはCUDAライブラリのパスが異なる場合があります。
sudo ldconfig
sudo systemctl restart ollama
日本語の出力が途切れる
これはモデルの特性による制限です。Llama 3.1は英語中心に学習されているため、日本語の出力品質は英語より下がります。プロンプトを英語で送り、「日本語で回答してください」と付け加えると安定することが多いです。
Please explain the features of NVIDIA Jetson Orin Nano in Japanese.
JetPack 6.1で初回SDイメージ使用時はSDK ManagerでQSPIブートローダ更新を忘れずに。
—
まとめ
Jetson Orin NanoでLlama 3を動かすことは、ollamaを使えば思ったより手軽に実現できます。重要なポイントをまとめます。
エッジデバイスで言語モデルが動く体験は、アイデアの幅を大きく広げます。カメラからの映像認識とLLMを組み合わせるなど、次のステップへの応用も十分に現実的です。
—
次はこちら
Jetson Orin NanoでAIをさらに活用したい方は、以下の記事も参考にしてください。

コメント