Jetson Orin Nano Llama 3言語モデル実行【ローカルLLM活用法】

Jetson Orin Nano Llama 3言語モデル実行【ローカルLLM活用法】

Jetson Orin NanoでLlama 3を動かしたいと考えているエンジニアに向けて、実際にセットアップした手順とつまずきやすいポイントをまとめました。クラウドに依存せず、手元のデバイスで日本語対話ができるまでの全手順を解説します。

この記事でわかること

  • Jetson Orin NanoでLlama 3を動かすための前提条件と必要なスペック
  • ollamaを使った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で動かすには、以下の環境を推奨します。

  • Jetson Orin Nano 8GBモデル(Super推奨、4GBモデルは動作が不安定)
  • ストレージ: NVMe SSD Western Digital SN770 500GB NVMe(Amazon) を強く推奨(モデルファイルが4GB以上あるため、microSDでは読み書き速度が問題になります)
  • JetPack 6.1以上がインストール済みであること(初回はSDK ManagerでQSPIブートローダ更新必須)
  • スワップ領域を8GB以上に設定済みであること
  • スワップ領域の確認と設定

    まず現在のスワップ量を確認します。

    
    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を使えば思ったより手軽に実現できます。重要なポイントをまとめます。

  • 8GBモデル(Super推奨)とNVMe SSDの組み合わせが安定動作の条件
  • スワップ領域を8GB以上確保しておくこと
  • ollamaのインストール後はモデルを引っ張ってくるだけで動作する
  • パワーモードをMAXNに設定することで推論速度が向上する
  • 日本語の精度はプロンプトの工夫で改善できる
  • エッジデバイスで言語モデルが動く体験は、アイデアの幅を大きく広げます。カメラからの映像認識とLLMを組み合わせるなど、次のステップへの応用も十分に現実的です。

    次はこちら

    Jetson Orin NanoでAIをさらに活用したい方は、以下の記事も参考にしてください。

  • Jetson Orin NanoでローカルLLMを動かす
  • Jetson Orin Nano TensorRT高速化チュートリアル
  • Jetson Orin Nano 熱対策・冷却方法まとめ
  • コメント

    タイトルとURLをコピーしました