Jetson Orin Nano OllamaでローカルLLM環境構築【Llama 3・Gemma 3対応】

Jetson Orin Nano OllamaでローカルLLM環境構築【Llama 3・Gemma 3対応】

検証環境

| 項目 | 内容 |

|——|——|

| デバイス | Jetson Orin Nano Super 8GB |

| JetPack | 6.2 |

| Ubuntu | 22.04 LTS |

| Ollama | 0.5.4 |

| 検証日 | 2026年5月 |

Jetson Orin NanoにOllamaをインストールしてLlama 3やGemma 3をローカルで動かす手順を、実機検証をもとに解説します。クラウドAPIなしでLLMを完全ローカル実行したい方に向けた記事です。

この記事でわかること

  • Jetson Orin NanoへのOllamaのインストール手順
  • Llama 3およびGemma 3モデルの導入と動作確認方法
  • メモリ不足・モデルが起動しない場合のトラブルシューティング
  • 実測のトークン生成速度と実用上の注意点
  • Python APIからOllamaモデルを呼び出す基本的な使い方
  • OllamaをJetson Orin Nanoで使う前に知っておくこと

    Jetson Orin Nanoには8GBモデルと4GBモデルが存在しますが、LLMを動かすなら8GBモデル NVIDIA Jetson Orin Nano 開発者キット(Amazon) 一択です。Llama 3の最小構成(8Bモデルをquantize済み)でもRAMを4〜5GB程度消費するため、4GBモデルでは動作が厳しい場面が多くなります。

    Jetsonはx86とアーキテクチャが異なるため、Ollamaの公式インストールスクリプトをそのまま実行してもarm64向けのバイナリが取得されます。ただし、JetPack 6.x環境ではCUDAをGPUバックエンドとして認識させるために追加の設定が必要です。この点でハマる人が多いので、手順を丁寧に追っていきます。

    また、モデルファイルのサイズが数GB〜十数GBになるため、ストレージはNVMe SSD Western Digital SN770 500GB NVMe(Amazon) を強く推奨します。microSDカード Samsung microSDXC 128GB (Endurance)(Amazon) ではモデルのロード時間が非常に長くなり、実用に支障が出ます。JetPack 6.2以降では初回フラッシュ時にブートローダーの更新が自動化され、古いファームウェアの問題が解消されています。

    Ollamaのインストール手順

    システムの前提確認

    まずJetPackのバージョンとCUDAの認識状況を確認します。

    
    # JetPackバージョン確認
    cat /etc/nv_tegra_release
    
    # CUDA確認
    nvcc --version
    
    # 利用可能メモリ確認
    free -h
    

    nvcc --version でCUDA 12.6以上が表示されていれば問題ありません。

    Ollamaのインストール

    公式のインストールスクリプトを実行します。Jetson(arm64)向けのバイナリが自動で選択されます。

    
    curl -fsSL https://ollama.com/install.sh | sh
    

    インストール後、サービスの状態を確認します。

    
    sudo systemctl status ollama
    

    Active: active (running) と表示されれば起動済みです。表示されない場合は手動で起動します。

    
    sudo systemctl start ollama
    sudo systemctl enable ollama
    

    GPUバックエンドの確認

    Jetson環境ではOllamaがGPUを正しく認識しているかを必ず確認してください。

    
    ollama serve &
    sleep 3
    curl http://localhost:11434/api/tags
    

    起動ログに CUDA の文字列が含まれているかを確認します。

    
    journalctl -u ollama -n 50 | grep -i cuda
    

    以下のような出力が得られれば、GPUバックエンドが有効です。

    
    May 08 14:23:11 jetson ollama[1234]: msg="CUDA detected" version=12.6
    

    Llama 3モデルの導入と動作確認

    モデルのダウンロード

    Jetson Orin Nano Super 8GBで安定して動作するのは、量子化済みの8Bモデルです。

    
    # Llama 3.2 3Bモデル(軽量・高速)
    ollama pull llama3.2:3b
    
    # Llama 3.1 8Bモデル(品質重視)
    ollama pull llama3.1:8b
    

    llama3.1:8bは約4.7GBのダウンロードが発生します。NVMe SSDであれば展開も含めて5〜10分程度で完了します。

    動作確認

    
    ollama run llama3.2:3b "Jetson Orin Nanoとは何ですか?日本語で答えてください"
    

    実測では以下の結果が得られました。

    | モデル | トークン生成速度 | 初回ロード時間 |

    |——–|—————-|—————|

    | llama3.2:3b | 約25 tokens/s | 約6秒 |

    | llama3.1:8b | 約12 tokens/s | 約18秒 |

    llama3.2:3bは会話の流れが途切れない速度で、実用的な応答が得られます。llama3.1:8bは品質は上がりますが、体感的にやや待ちが発生します。

    Gemma 3モデルの導入

    Googleが公開しているGemma 3もOllama経由で導入できます。

    
    # Gemma 3 4Bモデル
    ollama pull gemma3:4b
    
    # Gemma 3 1Bモデル(リソース節約版)
    ollama pull gemma3:1b
    
    
    ollama run gemma3:4b "量子コンピュータについて簡単に説明してください"
    

    Gemma 3はとくに日本語の品質が安定しており、Llama系と比較しても自然な出力が得られる印象です。

    | モデル | トークン生成速度 | メモリ使用量(実測) |

    |——–|—————-|———————|

    | gemma3:1b | 約45 tokens/s | 約1.5GB |

    | gemma3:4b | 約20 tokens/s | 約3.2GB |

    トラブルシューティング

    モデルがロードされず応答が返らない

    よくあるエラーメッセージ:

    
    Error: model requires more system memory (6.2 GiB) than is available (3.8 GiB)
    

    原因はメモリ不足です。Jetson Orin NanoはCPUとGPUがメモリを共有する統合メモリ構成のため、OS・他プロセスのメモリ消費が積み重なると大きなモデルが起動できなくなります。

    解決手順:

    
    # 不要なサービスを停止する
    sudo systemctl stop gdm3        # GUIデスクトップ
    sudo systemctl stop bluetooth
    sudo init 3                     # マルチユーザー mode
    
    # スワップを確認・拡張する
    swapon --show
    sudo fallocate -l 8G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    

    スワップをNVMe SSD上に置くことで、メモリ不足でのクラッシュをある程度防げます。ただしスワップ多用はSSDの書き込み寿命に影響するため、あくまで緊急措置として位置づけてください。

    OllamaサービスがGPUを認識しない

    
    # ライブラリパスを確認
    echo $LD_LIBRARY_PATH
    
    # CUDA関連パスを追加
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    

    永続化するには .bashrc に追記します。

    
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc
    sudo systemctl restart ollama
    

    PythonからOllamaを呼び出す

    ターミナルでの対話だけでなく、Pythonスクリプトからモデルを呼び出す方法も覚えておくと活用の幅が広がります。

    ollamaライブラリのインストール

    
    pip install ollama
    

    基本的な呼び出し

    
    import ollama
    
    response = ollama.chat(
        model='llama3.2:3b',
        messages=[
            {
                'role': 'user',
                'content': 'Jetson Orin Nanoでできることを3つ挙げてください'
            }
        ]
    )
    
    print(response['message']['content'])
    

    ストリーミング出力

    
    import ollama
    
    stream = ollama.chat(
        model='gemma3:4b',
        messages=[{'role': 'user', 'content': '機械学習とは何ですか?'}],
        stream=True
    )
    
    for chunk in stream:
        print(chunk['message']['content'], end='', flush=True)
    

    ストリーミングを使うと、生成されるトークンをリアルタイムで受け取れるため、インタラクティブなアプリケーションに向いています。

    発熱と冷却について

    LLMの推論は継続的にGPUとCPUに負荷をかけるため、長時間の会話セッションでは本体が50〜60度台に達することがあります。冷却ファン Noctua NF-A4x10 5V PWMファン(Amazon) の取り付けが必須です。

    温度のモニタリングは以下のコマンドで行えます。

    
    watch -n 1 cat /sys/class/thermal/thermal_zone*/temp
    

    表示値は1000倍の数値なので、47000 は47度です。60度を超えるようなら冷却環境を見直してください。サーマルスロットリングが発生するとトークン生成速度が著しく低下します。

    まとめ

    Jetson Orin Nano Super 8GBにOllamaをインストールし、Llama 3やGemma 3をローカルで動かす手順を解説しました。

    重要なポイントをまとめます。

  • OllamaのインストールはLinux標準のスクリプト一本で完了するが、GPUバックエンドの認識確認が必要
  • 8GBモデルであれば3B〜8Bクラスの量子化モデルが安定して動作する
  • モデルファイルはNVMe SSD上に置くことでロード時間とI/O性能が大幅に改善する
  • 長時間の推論では発熱管理が重要で、冷却ファンは必須
  • PythonのOllamaライブラリでアプリケーションへの組み込みも容易
  • クラウドAPIのコストを気にせず、手元のデバイスだけでLLMを動かせる環境が整います。センシティブなデータをクラウドに送りたくない用途や、オフライン環境での活用にも有効です。

    次はこちら

    OllamaでローカルLLMが動いたら、次はTensorRTによるモデル高速化やWhisperを使った音声インターフェースの構築に挑戦してみてください。

  • Jetson Orin Nano Llama 3言語モデル実行【ローカルLLM活用法】
  • Jetson Orin Nano TensorRT高速化チュートリアル
  • Jetson Orin Nano Whisper音声認識チュートリアル
  • コメント

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