Jetson NanoでQwen2.5-3Bを動かしてみた


Jetson NanoでQwen2.5-3Bを動かす方法

目次

ARM Ubuntu × llama.cpp 導入トラブル完全対策

Jetson NanoでローカルLLMを動かそうとして、
「手順通りにやったのに動かない」「原因が分からず時間だけ溶ける」
そんな経験はありませんか?

この記事では、Jetson Nano(ARM Ubuntu)環境で Qwen2.5-3B Instruct を llama.cpp(CPU推論)で確実に動かすまでを、
実際に発生したトラブルとその回避策を中心に解説します。


対象読者

  • Jetson NanoでローカルLLMを動かしたい方
  • ARM Ubuntu環境でllama.cppを使いたい方
  • Hugging Face CLIやPython環境でつまずきたくない方

構成概要(ゴール)

  • LLM:Qwen2.5-3B Instruct(GGUF / q3_k_m)
  • 推論エンジン:llama.cpp(CPU推論)
  • 実行環境:Jetson Nano / ARM Ubuntu

Step 1:Jetson Nanoでllama.cppを最小構成ビルドする

sudo apt update
sudo apt install -y git build-essential cmake python3-pip
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -S . -B build -DGGML_CUDA=OFF
cmake --build build -j$(nproc)

この構成を選ぶ理由

  • Jetson Nanoでは CUDAを使わない方が安定
  • CPU推論+量子化モデル前提の構成

Step 2:llama.cppとモデルを分離して配置する

推奨ディレクトリ構成

~/models/
└── llm/
    ├── llama.cpp/
    └── qwen2.5-3b/
        └── qwen2.5-3b-instruct-q3_k_m.gguf

分離するメリット

  • 作業ディレクトリ依存の事故を防げる
  • 再ビルド・再DL時に迷わない
  • モデル差し替えが容易

Step 3:Hugging Face CLIがJetson Nanoで失敗する原因

実際に起きた問題

  • huggingface-cli が見つからない
  • python -m huggingface_hub が環境差で失敗
  • Python環境の不整合で作業が破綻

結論

CLIは使わない。URL直ダウンロードが最も確実。


Step 4:Qwen2.5-3Bを確実にダウンロードする方法

sudo apt install -y aria2
mkdir -p ~/models/llm/qwen2.5-3b
aria2c -c -x 8 -s 8 \
  -d ~/models/llm/qwen2.5-3b \
  -o qwen2.5-3b-instruct-q3_k_m.gguf \
  https://huggingface.co/Qwen/Qwen2.5-3B-Instruct-GGUF/resolve/main/qwen2.5-3b-instruct-q3_k_m.gguf

この方法が安定する理由

  • Python不要
  • 認証不要
  • 途中失敗しても再開可能

Step 5:libmtmd.so が見つからないエラーの対処

症状

error while loading shared libraries: libmtmd.so.0

原因

  • llama.cppが build/bin に共有ライブラリを生成
  • 動的リンカがその場所を見ていない

恒久対策(推奨)

echo "$HOME/models/llm/llama.cpp/build/bin" | sudo tee /etc/ld.so.conf.d/llama-cpp.conf
sudo ldconfig

Step 6:--interactive が使えない場合の対処

原因

  • llama.cppの引数仕様が変更されている
  • --interactive 非対応ビルド

正しい実行例

~/models/llm/llama.cpp/build/bin/llama-cli \
  -m ~/models/llm/qwen2.5-3b/qwen2.5-3b-instruct-q3_k_m.gguf \
  -p "こんにちは。自己紹介して。"

Step 7:モデルが見つからないときの確認方法

よくある原因

  • models/ 配下に vocabだけ存在
  • .gguf 本体を別ディレクトリに置いている

確認コマンド

find ~ -name 'qwen2.5-3b-instruct-*.gguf'

成功条件チェックリスト

  • .gguf 本体が存在する
  • -m絶対パスを指定している
  • ldconfig を実行済み
  • --interactive を使っていない

まとめ

Jetson Nanoでつまずく本質的な原因

  • Python環境の分裂
  • 作業ディレクトリ依存
  • llama.cppの引数仕様変更の見落とし

最も安定する考え方

  • モデルはURL直ダウンロード
  • llama.cppは独立ディレクトリ管理
  • 共有ライブラリはOSに登録
  • 実行前に必ず -h を確認
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次