前回 は DwarfStar で DeepSeek V4 Flash 0731 を動かしたが、今回は llama.cpp 版で動かしてみる。
サーバーの安定性が DwarfStar よりも高いらしいので、llama.cpp 。
前提
- マシン: ASUS Ascent GX10 GX10-GG0006BN 90MS0371-M00060 (1TB)
- Ollama, DwarfStar のデーモンを止めた後から
前提パッケージのインストール
llama.cpp 版をビルドするために必要なパッケージをインストールする。
sudo apt update
sudo apt install -y git build-essential cmakellama.cpp ソースコードのクローン
いつものように git clone する。
cd ~/project
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cppllama.cpp ビルド
DGX Spark なので、それ用の make コマンドを叩く。
cmake -B build-cuda -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=121 \
-DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON
cmake --build build-cuda -j"$(nproc)" --target llama-server llama-cli llama-benchほんとうは llama-server
だけで良いのだけど、参考にしたサイト通りに全部ビルドしちゃった。
モデルのダウンロード
前回 のモデルを使うのでダウンロードは省略。
サーバー起動
OpenAI API 互換サーバーを起動する。
./build-cuda/bin/llama-server --host 0.0.0.0 --port 11434 --no-mmap -m ~/project/ds4/gguf/DeepSeek-V4-Flash-IQ2XXS-w2Q2K-AProjQ8-SExpQ8-OutQ8-chat-v2-imatrix-0731.gguf結構長い時間待つ感じ。成句すると以下のような出力がされる。
0.00.300.436 I srv load_model: loading model '/home/mikoto/project/ds4/gguf/DeepSeek-V4-Flash-IQ2XXS-w2Q2K-AProjQ8-SExpQ8-OutQ8-chat-v2-imatrix-0731.gguf'
8.00.852.448 I srv load_model: initializing, n_slots = 4, n_ctx_slot = 1048576, kv_unified = 'true'
8.00.861.742 I srv init: chat template supports preserving reasoning, consider enabling it via --reasoning-preserve
8.00.861.881 I srv llama_server: model loaded
8.00.861.884 I srv llama_server: listening on http://0.0.0.0:11434クライアント起動
OpenAI API 互換クライアントで接続確認。 OK.
> C:\Java\jdk-25\bin\java.exe -jar ..\project\rei\target\rei-0.0.1-SNAPSHOT.jar
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.sqlite.SQLiteJDBCLoader in an unnamed module (jar:nested:/F:/project/rei/target/rei-0.0.1-SNAPSHOT.jar/!BOOT-INF/lib/sqlite-jdbc-3.51.3.0.jar!/)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled
AI Shell
通常入力は chat として扱います。/exit で終了します。
複数行入力: 複数行ペースト対応。行末に \\ を付けるか、Ctrl+J でも改行できます。
/paste で確実な複数行入力モード(終了は単独行の . )
22:15 deepseek-v4-flash> こんにちは!!!!!
┌ User
こんにちは!!!!!
└
=== thinking ===
The user greeted me with "こんにちは!!!" (Hello!!!!!). This is a simple greeting. I should respond naturally in Japanese. Looking at the memory, there was a similar greeting earlier and the assistant responded with "こんにちは!? 何かお手伝いできることはありますか?"
I'll respond similarly. No tools needed.
=== answer(23.7 s) ===
こんにちは!? 今日もお手伝いできることがあれば、何でも言ってくださいね!models には対応していなさそう。
llama-server の daemon 化
実行ユーザーの追加
llama というシステムユーザーを追加する。
sudo useradd \
--system \
--home-dir /opt/llama \
--shell /usr/sbin/nologin \
llamallama-server の配置
llama 用のディレクトリを作成し、ビルドした llama-server を配置する。
sudo cp -a ~/project/llama.cpp/build-cuda /opt/llama
sudo chown -R llama:llama /opt/llamasystemd ユニットを作成
作成していく。
cat << 'EOF' | sudo tee /etc/systemd/system/llama-server.service
[Unit]
Description=llama.cpp OpenAI-compatible inference server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=llama
Group=llama
WorkingDirectory=/opt/llama/bin
ExecStart=/opt/llama/bin/llama-server \
-m /opt/ds4/ds4flash.gguf \
--gpu-layers all \
--no-mmap \
--host 0.0.0.0 \
--port 11434
Restart=on-failure
RestartSec=5
TimeoutStartSec=0
TimeoutStopSec=120
KillSignal=SIGINT
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF設定反映
sudo systemctl daemon-reload
sudo systemctl enable llama-server
sudo systemctl start llama-server以上。
0 件のコメント:
コメントを投稿