LECTURE 24: DEEP DIVE

ローカルLLM完全攻略:
環境構築から実装まで

From LM Studio to Google Antigravity

Target

完全無料・オフライン・無制限

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量子化の場合)

モデル計算必要環境目安
8B8 × 0.7 = 5.6 GBRTX 3060 / 4060 (VRAM 8GB)
20B20 × 0.7 = 14.0 GBRTX 4070 Ti Super / 4080 (16GB)
70B70 × 0.7 = 49.0 GBMac Studio (64GB~) / RTX A6000
120B120 × 0.7 = 84.0 GBMac 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の導入

  1. 公式サイト (lmstudio.ai) からダウンロード&インストール
  2. 左の虫眼鏡アイコンをクリック
  3. 検索窓に Llama 3 または Qwen 2 と入力
  4. 右側に出るリストから Q4_K_M (推奨) をダウンロード
  5. 上部のフキダシアイコン(Chat)へ移動
  6. 画面上部でモデルを選択し、"GPU Offload" を最大にする
  7. Chat開始!

Local Server Mode

LM Studioの最強機能。ボタン一つでAPIサーバーになります。

何ができる?

左メニューの <-> アイコンでサーバー画面へ。
"Start Server" を押すと http://localhost:1234/v1 が立ち上がります。

これは OpenAI API と互換性があります。

つまり、既存のChatGPT用プログラムの接続先URLを変えるだけで、
処理をローカルAIに差し替えることができます。

クライアントコードの修正例

from openai import OpenAI # Before: Cloud (OpenAI) # client = OpenAI(api_key="sk-proj-...") # After: Local (LM Studio) 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 # 1. モデルロード llm = Llama( model_path="./Llama-3-8B.Q4_K_M.gguf", n_gpu_layers=-1, # -1 = 全層をGPUに載せる (必須!) n_ctx=2048, # コンテキスト(記憶)長 verbose=False # ログ非表示 ) # 2. 会話履歴 messages = [ {"role": "system", "content": "あなたは猫です。"}, {"role": "user", "content": "自己紹介して"} ] # 3. 推論実行 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 # JSON用の文法定義 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へ変更。
量子化強度UPQ4_K_M → Q3_K_S へ変更。
少し馬鹿になるが軽くなる。
コンテキスト減n_ctx=40962048
記憶力は下がるがメモリ節約。
GPU層減らしn_gpu_layers を減らし、一部をCPUメインメモリへ逃がす。
(遅くなる)

Cloud API vs Local LLM 最終比較

項目Cloud (GPT-4)Local (20B Class)
初期導入APIキー発行のみ (楽)環境構築・DL (手間)
ランニングコスト従量課金 💸0円 (電気代のみ)
応答速度通信状況による爆速 (GPU依存) 🚀
プライバシー規約依存完全オフライン 🔒
検閲厳しい自由 (Uncensored) 😎
賢さ最強 (100点)十分 (80点)

本日の課題

以下の成果物を提出してください。

  1. LM Studio スクリーンショット:
    自分のPCでLLMと会話している画面 (モデル名が見えるように)。
  2. Antigravity エージェント作成ログ:
    Google AntigravityでLlama.cpp用のコードを生成させた際の、エージェントとのやり取りと生成コード。
  3. 考察:
    自分の環境で動いたモデルのサイズと、応答速度(体感)についてのレポート。

Thank You

次回 (第25回): RAG (検索拡張生成)

ローカルLLMに「攻略Wiki」や「設定資料集」を読ませる技術を学びます。

Slide 1: Intro
第24回、ローカルLLM完全攻略の回へようこそ。 これまではOpenAIなどのAPIを借りていましたが、今日は「自分のPCをAIサーバーにする」技術を学びます。 キーワードは「LM Studio」と「Google Antigravity」。 前者はモデルを試すためのGUI、後者はコードを書かせるための最新IDEです。 この2つを使いこなし、無料で無制限のAI開発環境を手に入れましょう。
Slide 2: Roadmap
本日の流れです。 前半は「基礎知識」。モデルの選び方や、自分のPCで動くかどうかの計算方法を学びます。 後半は「実践」。まずGUIツールのLM Studioで感動を体験し、その後にPythonコードでの実装に入ります。 さらに今日は、Googleが発表したばかりの「Antigravity」を使って、コードを自動生成する演習も行います。
Slide 3: Why Local?
なぜわざわざローカルで動かすのか? 最大の理由は「コスト」と「プライバシー」です。 APIはお金がかかりますが、ローカルはタダです。無限にテストできます。 また、開発中の未公開キャラクターやシナリオを外部サーバーに送信するのはリスクですが、ローカルならLANケーブルを抜いても動くので安心です。
Slide 4: Ecosystem
モデルは「Hugging Face」からダウンロードします。 Meta社のLlama 3が標準的ですが、最近はAlibabaのQwen(千問)が日本語性能が高く、GoogleのGemmaも軽量で人気です。 これらは世界中の研究者が改良版をアップロードしています。
Slide 6: Quantization
ここで重要な技術が「量子化」です。 本来のAIモデルは巨大ですが、数値の精度を落とすことで、賢さを保ったままサイズを1/3に圧縮できます。 これをしないと、一般家庭のPCではまともに動きません。 「INT4(4ビット)」という形式が現在の標準です。
Slide 8: VRAM Calculation
「自分のPCで動くかな?」と思ったら、この式を使ってください。 「パラメータ数 × 0.7」です。 8Bモデルなら、約5.6GBのVRAM(ビデオメモリ)が必要です。 RTX 3060など、VRAM 8GB以上のGPUがあれば快適に動きます。
Slide 11: LM Studio
ここからツール紹介です。 まず「LM Studio」。これはGUIのデスクトップアプリです。 コマンドライン操作は一切不要。インストーラーで入れて、マウスでモデルを選んで、チャットボタンを押すだけ。 「まずはAIを動かしてみたい」という初学者に最適なツールです。
Slide 15: Llama.cpp
しかし、ゲームを配布するときに「LM Studioもインストールしてね」とは言えません。 そこで登場するのが「Llama.cpp」です。 これはPythonやC++から呼び出せるライブラリです。 これを使えば、アプリの中にAIエンジンを内蔵して配布することができます。
Slide 18: Google Antigravity
そして、今日の本題のひとつ「Google Antigravity」です。 これは、ただのエディタではありません。「エージェントファースト」なIDEです。 自分でコードを一から書くのではなく、Antigravityの中にいるAIエージェントに「Llama.cppを使って、計算もできるチャットボットのコードを書いて」と指示を出します。 すると、エージェントが計画を立て、ファイルを生成し、実装までやってくれます。 我々は「コードを書く人」から「AIに指示する監督」になるのです。
Slide 19: Exercise
実際にやってみましょう。 Antigravityを立ち上げて、エージェントチャット欄に英語(または日本語)で指示を出してください。 `llama-cpp-python` を使うこと、そして特定の機能(計算など)を持たせることを伝えます。 生成されたコード(Artifact)を確認して、実行ボタンを押すだけで、ローカルLLMエージェントが完成します。
Slide 24: Assignment
本日の課題です。 LM Studioでの動作確認と、Antigravityを使って生成したコードのログを提出してください。 最新のIDEと、ローカルLLM技術の融合を体感してください。
1 / 25