ローカルLLMセットアップガイド(v40)

Dev.to / 2026/5/26

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • この記事は、プライバシー性が高く低遅延で、ポリシーやインフラ制約を回避しやすいという利点を活かすための、Linux上でのローカルLLMセットアップ実践ガイドです。
  • Ubuntu/Debianの要件、CPUコア数、RAM、NVIDIA GPU(CUDA 11.8以上)および大きなモデル用ストレージ確保などのシステム要件を提示し、環境確認コマンドも示しています。
  • ローカルLLMのフレームワーク(llama.cpp、Ollama、vLLM、LocalAI)を比較し、llama.cppを直接ビルドすることを推奨しています。
  • llama.cppのインストール手順として、リポジトリのクローン、makeによるビルド、NVIDIAのCUDA有効化、実行用スクリプト作成までを段階的に説明しています。
  • ガイドはGPUアクセラレーションの観点を重視しており、性能向上のためにCUDA有効で再ビルドする方法を示しています。

ローカルLLMセットアップガイド(v40)

1. 概要および事前要件

ローカルLLM環境には、高いプライバシー保護、低いレイテンシ、そしてポリシーやインフラの制約を回避できるといった利点があります。このガイドでは、Linuxマシン上で最適化されたローカルLLMを設定するための実用的な方法を提供します。

事前要件:

  • OS: Ubuntu 20.04 以上 または Debian 11 以上
  • CPU: 最低 4コア、推奨 8コア以上
  • RAM: 最低 16GB、推奨 32GB以上
  • GPU: NVIDIA GTX 10xx 以上(CUDA 11.8 以上が必要)
  • Storage: 最低 50GB の空き容量(モデルファイルの容量は非常に大きいです)
# システム情報の確認
lscpu
free -h
nvidia-smi

2. フレームワーク比較

フレームワーク 特徴 利点 欠点
llama.cpp C++で実装された最適化ランタイム 高性能、依存関係が最小 コマンドラインベース
Ollama Dockerベースの管理ツール インストールが簡単、モデル管理が容易 リソース消費が大きく、モデルのロード速度が遅い
vLLM Pythonベースで高性能 高いトークン処理量 設定が複雑で、多くのメモリが必要
LocalAI REST APIベースで、さまざまなエンジンをサポート モデル互換性が高い、APIベース 複数エンジン対応による複雑さ

推奨: llama.cppを使って自分で構築する

3. インストール手順(llama.cppベース)

3.1 リポジトリのクローンとビルド

# 必須パッケージのインストール
sudo apt update
sudo apt install git cmake build-essential python3-pip -y

# llama.cpp リポジトリのクローン
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

# ビルド
make clean
make

3.2 GPUサポートの有効化(NVIDIA)

# CUDA のインストール(必要な場合)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get install cuda-toolkit-11-8 -y

# llama.cpp のビルド時に CUDA を有効化
make clean
CUDA=1 make

3.3 実行スクリプトの作成

# ~/llama_run.sh を作成
cat > ~/llama_run.sh << 'EOF'
#!/bin/bash
cd ~/llama.cpp
./main -m ./models/llama-2-7b-chat.Q4_K_M.gguf \
       -p "Qwen: " \
       -n 512 \
       -ngl 35 \
       --temp 0.7 \
       --repeat-penalty 1.1
EOF

chmod +x ~/llama_run.sh

4. モデル選択ガイド

モデル 説明 推奨する使用ケース
Llama-2-7B ベースモデル、70億パラメータ 一般的なチャットボット、文法分析
Llama-2-13B より強力なベースモデル 高い精度が必要な作業
Mistral-7B 最適化されたベースモデル 高速推論、高い性能
Qwen-7B アリババの中国語最適化モデル 中国語コンテンツの処理

例:モデルのダウンロード

# モデル用ディレクトリの作成
mkdir -p ~/llama.cpp/models

# Qwen-7B モデルのダウンロード(例)
wget https://huggingface.co/Qwen/Qwen-7B-Chat-GGUF/resolve/main/qwen-7b-chat-q4_k_m.gguf -O ~/llama.cpp/models/qwen-7b-chat-q4_k_m.gguf

5. 量子化タイプの説明

量子化 説明 性能
Q4_K_M 4ビット量子化、最適化されたメモリ使用量 高性能、少ないメモリ
Q5_K_M 5ビット量子化、中間性能 バランスの取れた性能
Q8_0 8ビット量子化 最大精度、メモリ使用量の増加
F16 半精度(FP16) 最高精度、メモリ最大使用量
# モデル別の性能比較
./main -m ./models/llama-2-7b-chat.Q4_K_M.gguf -n 512 -ngl 35 --temp 0.7
./main -m ./models/llama-2-7b-chat.Q5_K_M.gguf -n 512 -ngl 35 --temp 0.7

6. API設定と既存ツールの統合

6.1 OpenAI互換APIサーバー

# APIサーバーの起動
./server -m ./models/llama-2-7b-chat.Q4_K_M.gguf \
         -p "Qwen: " \
         -n 512 \
         -ngl 35 \
         --host 0.0.0.0 \
         --port 8080 \
         --threads 8 \
         --temp 0.7 \
         --repeat-penalty 1.1

6.2 Pythonクライアントの例

# client.py
import openai

client = openai.OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="EMPTY"
)

返却形式: {"translated": "翻訳されたHTML"}response = client.chat.completions.create(
    model="llama2",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)

7. Systemdサービス設定(24/7運用)

# サービスファイルの作成
sudo nano /etc/systemd/system/llama.service

# 内容を追加:
[Unit]
Description=Local LLM Server
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/llama.cpp
ExecStart=/home/your_username/llama_run.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
# サービスの有効化と起動
sudo systemctl daemon-reload
sudo systemctl enable llama.service
sudo systemctl start llama.service
sudo systemctl status llama.service

8. モニタリングとパフォーマンス最適化

8.1 パフォーマンスのモニタリング

# GPU使用量のモニタリング
nvidia-smi -l 1

# CPU使用量のモニタリング
htop

# ログの確認
journalctl -u llama.service -f

8.2 パフォーマンステスト

# 推論パフォーマンスのテスト
./main -m ./models/llama-2-7b-chat.Q4_K_M.gguf \
       -p "Qwen: " \
       -n 100 \
       -ngl 35 \
       --temp 0.7 \
       --repeat-penalty 1.1 \
       --timings

8.3 メモリ最適化

# GPUメモリの最適化
./main -m ./models/llama-2-7b-chat.Q4_K_M.gguf \
       -n 512 \
       -ngl 35 \
       --temp 0.7 \
       --repeat-penalty 1.1 \
       --ctx-size 4096 \
       --batch-size 512

9. 実際の使用例

9.1 チャットボット環境の構成


bash

---

 **Gumroadの完全なガイドはこちら**: https://gumroad.com/l/auto ($7)