LECTURE 24: DEEP DIVE
ローカルLLM完全攻略:
環境構築から実装まで
From LM Studio to Google Antigravity
Tech Stack
Llama.cpp / GGUF / Antigravity
本日のロードマップ
「触ってみる」から「開発する」へ。最新IDEも活用します。
Phase 1: 基礎理解 & GUI
- クラウドAPIの課題とローカルの利点
- 量子化技術 (GGUF) の仕組み
- LM Studio (GUIアプリ) での体験
Phase 2: 実践・開発
- Llama.cpp (ライブラリ) での組み込み
- Google Antigravity (新IDE) の導入
- Antigravityを使ったエージェント実装演習
なぜ今、ローカルLLMなのか?
OpenAIなどのクラウドAPIにはない、ゲーム開発特有のメリット。
💰 Cost: Zero
APIは1会話数円。テストで1万回叩けば数万円。
ローカルなら電気代のみ。無限にリトライ可能。
🔒 Privacy
未公開キャラの設定、社外秘のシナリオ。
これらを外部に送信せず、PC内で完結させられる。
😈 Uncensored
「暴力はいけません」と説教する悪役は興醒め。
ローカルなら検閲なしモデルを使える。
Hugging Face と主要モデル
AI界のGitHub。ここから「脳みそ(重みファイル)」をDLします。
| モデル名 | 開発元 | 特徴 |
| Llama 3 |
Meta |
デファクトスタンダード。8Bが扱いやすく高性能。 |
| Mistral / Mixtral |
Mistral AI |
欧州発。パラメータ効率が良い。 |
| Qwen (千問) |
Alibaba |
日本語性能が圧倒的に高い。要注目。 |
| Gemma |
Google |
2B/9BなどPC向けのサイズ展開。 |
パラメータ数 (Billion) の感覚
B = 10億。数字が大きいほど賢いが、重い。
7B - 8B
標準ノートPC・一般GPU
日常会話・NPC会話
14B - 20B
ゲーミングPC (RTX3060↑)
少し複雑な指示
70B
ハイエンドGPU×2 / Mac Studio
GPT-4に迫る性能
120B+
富豪のワークステーション
研究・商用レベル
技術的ブレイクスルー:量子化
なぜ家庭用PCでAIが動くのか? 数値を「丸めて」いるからです。
FP16 (学習時)
0.123456789...
16ビット浮動小数点。
精度は完璧だが、サイズが巨大。
Llama-3-8B ≈ 16 GB
INT4 (推論時)
0.12
4ビット整数に圧縮。
サイズは1/3以下。賢さはほぼ維持。
Llama-3-8B-Q4 ≈ 5 GB
GGUFフォーマット
ローカルLLMにおけるファイル形式の標準規格。
The "GGUF" Advantage
- 📦 All-in-One: 重み、語彙、設定が1ファイルに完結。
- 🚀 mmap対応: メモリへの読み込みが爆速。
- 🤝 CPU/GPU Hybrid: VRAMが足りなくても、はみ出した分をメインメモリで処理して動かせる(遅くなるが落ちない)。
Hugging Faceで検索する時は ModelName-GGUF で探します。
【重要】必要メモリ量の計算式
自分のPCで動く限界を知るための公式。
パラメータ数(B) × 0.7 ≒ 必要VRAM(GB)
(4bit量子化の場合)
| モデル | 計算 | 必要環境目安 |
| 8B | 8 × 0.7 = 5.6 GB | RTX 3060 / 4060 (VRAM 8GB) |
| 20B | 20 × 0.7 = 14.0 GB | RTX 4070 Ti Super / 4080 (16GB) |
| 70B | 70 × 0.7 = 49.0 GB | Mac Studio (64GB~) / RTX A6000 |
| 120B | 120 × 0.7 = 84.0 GB | Mac Ultra (96GB~) / Multi-GPU |
ケーススタディ: 20B vs 120B
規模による「できること」と「コスト」の違い。
Standard: 20B Class
Command R, Llama-3-20B(Future)
- PC: 一般的なゲーミングPCで動作。
- 能力: ロールプレイ、要約、一般的な会話は完璧。
- 用途: ほとんどのゲーム内NPC、チャットボット。
Monster: 120B Class
Gpt-oss-120b, Falcon-180B
- PC: 100万円級のワークステーション必須。
- 能力: GPT-4並の論理的思考、コーディング、複雑な推論。
- 用途: ゲームマスターAI、複雑なシナリオ生成。
使用ツールの整理
目的によって使い分けます。
LM Studio
GUI App
マウス操作で完結。導入・テストに最適。コマンド操作不要。
Ollama
Service
バックグラウンドで常駐。Mac/Linuxユーザーに人気。コマンドで操作。
Llama.cpp
Library
Python/C++から呼び出すエンジン。アプリへの組み込み・配布用。
LM Studio: The GUI Solution
まずはここから。「黒い画面」を使わずにAIを動かします。
特徴
- Desktop App: インストーラー形式 (.exe / .dmg)
- Search: アプリ内でHugging Faceを検索・DL可能
- Chat UI: ChatGPTのような画面ですぐ試せる
- Visual Config: GPUの使用量などをスライダーで調整
(Screenshot Placeholder: LM Studio UI)
【演習1】LM Studioの導入
- 公式サイト (lmstudio.ai) からダウンロード&インストール
- 左の虫眼鏡アイコンをクリック
- 検索窓に
Llama 3 または Qwen 2 と入力
- 右側に出るリストから Q4_K_M (推奨) をダウンロード
- 上部のフキダシアイコン(Chat)へ移動
- 画面上部でモデルを選択し、"GPU Offload" を最大にする
- Chat開始!
Local Server Mode
LM Studioの最強機能。ボタン一つでAPIサーバーになります。
何ができる?
左メニューの <-> アイコンでサーバー画面へ。
"Start Server" を押すと http://localhost:1234/v1 が立ち上がります。
これは OpenAI API と互換性があります。
つまり、既存のChatGPT用プログラムの接続先URLを変えるだけで、
処理をローカルAIに差し替えることができます。
クライアントコードの修正例
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:1234/v1",
api_key="lm-studio"
)
completion = client.chat.completions.create(
model="local-model",
messages=[
{"role": "user", "content": "Hello!"}
]
)
Step Up: アプリケーションへの組み込み
LM Studioは便利ですが、ユーザーに「これをインストールして」とは言えません。
配布するゲームにAIを内蔵するために、
Llama.cpp (Python Library) を使用します。
【演習2】Llama.cpp Python環境構築
GPUを使って計算させるためのインストール手順。
Windows (PowerShell)
※ CUDA Toolkitのインストールが必要です。
$env:CMAKE_ARGS="-DGGML_CUDA=on"
pip install llama-cpp-python
Mac (Apple Silicon)
※ デフォルトでMetalに対応しています。
pip install llama-cpp-python
準備: Hugging Faceから .gguf ファイルを1つ、スクリプトと同じフォルダに置いてください。
基本実装コード
from llama_cpp import Llama
llm = Llama(
model_path="./Llama-3-8B.Q4_K_M.gguf",
n_gpu_layers=-1,
n_ctx=2048,
verbose=False
)
messages = [
{"role": "system", "content": "あなたは猫です。"},
{"role": "user", "content": "自己紹介して"}
]
output = llm.create_chat_completion(
messages=messages,
temperature=0.7,
)
print(output['choices'][0]['message']['content'])
Development with Google Antigravity
最先端の「Agent-First IDE」を使って、効率的に開発を進めます。
🚀 Google Antigravity
Googleがリリースした新しいIDE (antigravity.google)。
VS Codeベースですが、「エージェント」が主役です。
- Agent Manager: 複数のAIエージェントにタスクを委譲可能。
- Artifacts: コードの変更案や計画を生成し、人間が承認するフロー。
- Use Case: 面倒なボイラープレートコード(Llama.cppの初期設定など)を一瞬で書かせる。
なぜ使うのか?
Llama.cppのパラメータ設定や、チャット履歴の管理コードを書くのは大変です。
Antigravityのエージェントに「Llama.cppを使ったチャットボットを作って」と頼むだけで、
完璧なPythonコードが生成されます。
【特別演習】AntigravityでAgentを作る
IDEのエージェント機能を使って、Llama.cppの実装コードを書かせましょう。
Step 1: Install & Setup
1. antigravity.google からIDEをダウンロード。
2. Googleアカウントでログイン。
3. 新しいプロジェクトフォルダを開く。
Step 2: Prompting
画面右のエージェントチャットで以下を入力:
"Create a Python script using `llama-cpp-python`.
It should act as a simple agent that:
1. Loads the model from './model.gguf'
2. Takes user input in a loop
3. Checks if the input asks for calculation. If so, calculates it.
4. Otherwise, chats normally."
エージェントが生成したコード(Artifact)を確認し、"Apply" して実行してください。
ハマりポイント: Chat Template
モデルごとに「会話フォーマット」が決まっています。
ChatML (Llama 3 / Qwen)
<|im_start|>system
System prompt<|im_end|>
<|im_start|>user
Hello<|im_end|>
<|im_start|>assistant
Alpaca (Older Models)
### Instruction:
System prompt
### Input:
Hello
### Response:
※ create_chat_completion 関数を使っていれば、GGUF内のメタデータを読んで自動で変換してくれます。
生のテキスト補完(llm())を使う場合は手動でタグ付けが必要です。
Grammar (JSON強制)
ゲーム側でパースエラーを起こさないための必須技術。
from llama_cpp.llama_grammar import LlamaGrammar
grammar = LlamaGrammar.from_string(r'''
root ::= object
object ::= "{" space pair ("," space pair)* "}" space
pair ::= string ":" space value
...
''')
res = llm.create_chat_completion(..., grammar=grammar)
トラブルシューティング: OOM
CUDA Out of Memory (VRAM不足) が出たら?
| 対策 | 内容 | 効果 |
| モデル縮小 | 8B → Phi-3(3.8B) や Gemma-2Bへ変更。 | 大 |
| 量子化強度UP | Q4_K_M → Q3_K_S へ変更。 少し馬鹿になるが軽くなる。 | 中 |
| コンテキスト減 | n_ctx=4096 → 2048。 記憶力は下がるがメモリ節約。 | 中 |
| GPU層減らし | n_gpu_layers を減らし、一部をCPUメインメモリへ逃がす。 | 小 (遅くなる) |
Cloud API vs Local LLM 最終比較
| 項目 | Cloud (GPT-4) | Local (20B Class) |
| 初期導入 | APIキー発行のみ (楽) | 環境構築・DL (手間) |
| ランニングコスト | 従量課金 💸 | 0円 (電気代のみ) ✨ |
| 応答速度 | 通信状況による | 爆速 (GPU依存) 🚀 |
| プライバシー | 規約依存 | 完全オフライン 🔒 |
| 検閲 | 厳しい | 自由 (Uncensored) 😎 |
| 賢さ | 最強 (100点) | 十分 (80点) |
本日の課題
以下の成果物を提出してください。
- LM Studio スクリーンショット:
自分のPCでLLMと会話している画面 (モデル名が見えるように)。
- Antigravity エージェント作成ログ:
Google AntigravityでLlama.cpp用のコードを生成させた際の、エージェントとのやり取りと生成コード。
- 考察:
自分の環境で動いたモデルのサイズと、応答速度(体感)についてのレポート。
Thank You
次回 (第25回): RAG (検索拡張生成)
ローカルLLMに「攻略Wiki」や「設定資料集」を読ませる技術を学びます。
第24回、ローカルLLM完全攻略の回へようこそ。
これまではOpenAIなどのAPIを借りていましたが、今日は「自分のPCをAIサーバーにする」技術を学びます。
キーワードは「LM Studio」と「Google Antigravity」。
前者はモデルを試すためのGUI、後者はコードを書かせるための最新IDEです。
この2つを使いこなし、無料で無制限のAI開発環境を手に入れましょう。
本日の流れです。
前半は「基礎知識」。モデルの選び方や、自分のPCで動くかどうかの計算方法を学びます。
後半は「実践」。まずGUIツールのLM Studioで感動を体験し、その後にPythonコードでの実装に入ります。
さらに今日は、Googleが発表したばかりの「Antigravity」を使って、コードを自動生成する演習も行います。
なぜわざわざローカルで動かすのか?
最大の理由は「コスト」と「プライバシー」です。
APIはお金がかかりますが、ローカルはタダです。無限にテストできます。
また、開発中の未公開キャラクターやシナリオを外部サーバーに送信するのはリスクですが、ローカルならLANケーブルを抜いても動くので安心です。
モデルは「Hugging Face」からダウンロードします。
Meta社のLlama 3が標準的ですが、最近はAlibabaのQwen(千問)が日本語性能が高く、GoogleのGemmaも軽量で人気です。
これらは世界中の研究者が改良版をアップロードしています。
ここで重要な技術が「量子化」です。
本来のAIモデルは巨大ですが、数値の精度を落とすことで、賢さを保ったままサイズを1/3に圧縮できます。
これをしないと、一般家庭のPCではまともに動きません。
「INT4(4ビット)」という形式が現在の標準です。
「自分のPCで動くかな?」と思ったら、この式を使ってください。
「パラメータ数 × 0.7」です。
8Bモデルなら、約5.6GBのVRAM(ビデオメモリ)が必要です。
RTX 3060など、VRAM 8GB以上のGPUがあれば快適に動きます。
ここからツール紹介です。
まず「LM Studio」。これはGUIのデスクトップアプリです。
コマンドライン操作は一切不要。インストーラーで入れて、マウスでモデルを選んで、チャットボタンを押すだけ。
「まずはAIを動かしてみたい」という初学者に最適なツールです。
しかし、ゲームを配布するときに「LM Studioもインストールしてね」とは言えません。
そこで登場するのが「Llama.cpp」です。
これはPythonやC++から呼び出せるライブラリです。
これを使えば、アプリの中にAIエンジンを内蔵して配布することができます。
そして、今日の本題のひとつ「Google Antigravity」です。
これは、ただのエディタではありません。「エージェントファースト」なIDEです。
自分でコードを一から書くのではなく、Antigravityの中にいるAIエージェントに「Llama.cppを使って、計算もできるチャットボットのコードを書いて」と指示を出します。
すると、エージェントが計画を立て、ファイルを生成し、実装までやってくれます。
我々は「コードを書く人」から「AIに指示する監督」になるのです。
実際にやってみましょう。
Antigravityを立ち上げて、エージェントチャット欄に英語(または日本語)で指示を出してください。
`llama-cpp-python` を使うこと、そして特定の機能(計算など)を持たせることを伝えます。
生成されたコード(Artifact)を確認して、実行ボタンを押すだけで、ローカルLLMエージェントが完成します。
本日の課題です。
LM Studioでの動作確認と、Antigravityを使って生成したコードのログを提出してください。
最新のIDEと、ローカルLLM技術の融合を体感してください。