Skip to content

Latest commit

 

History

History
334 lines (242 loc) · 10.4 KB

File metadata and controls

334 lines (242 loc) · 10.4 KB

BitLlama

PyPI License: MIT Rust Build Status

あなたと一緒に学び、成長するローカル AI。

Ollama 風 CLI × LM Studio の機能 × Soul ラーニング — Pure Rust で実装。

bitllama run model.gguf                    # GGUF モデルでチャット
bitllama learn "私の名前はオノコ" -m model.gguf --save onoko.soul
bitllama run model.gguf --soul onoko.soul  # AI があなたを覚えている!

English | ユーザーガイド


Why BitLlama?

BitLlama llama.cpp Ollama vLLM
Soul ラーニング (AI が記憶する) ✅ 唯一
ネイティブ 1.58-bit 推論 ✅ 0.4 GB
デスクトップ GUI (Tauri)
MCP サーバー&クライアント ✅ 12 tools
プライベート RAG (ローカル完結)
マルチターン会話
OpenAI 互換 API
LoRA ホットスワップ
Q8 KV Cache (VRAM 82%↓)
Pure Rust シングルバイナリ

Soul = 会話から学ぶ LoRA。 名前、好み、事実を教えれば — AI が覚えます。


クイックスタート

ダウンロード & 実行

# HuggingFace からモデルを取得
bitllama pull bartowski/gemma-2-2b-it-GGUF

# チャット開始 (マルチターン対話)
bitllama run ~/.bitllama/models/gemma-2-2b-it-Q4_K_M.gguf

💬 BitLlama Chat (multi-turn conversation)
   Commands: 'quit' to exit, 'clear' to reset conversation

You: こんにちは!
AI: こんにちは!何かお手伝いできることはありますか?

You: clear
🔄 Conversation cleared.

Soul ラーニング (教える)

# モデルに何かを教える
bitllama learn "私の名前はオノコ。プログラミングとカレーが好きです。" \
  --model model.gguf --save onoko.soul --epochs 50

# Soul を使って会話
bitllama run model.gguf --soul onoko.soul

You: 私の名前は?
AI: あなたの名前はオノコさんですね! 🎉

OpenAI 互換 API

bitllama serve model.gguf --port 8000
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
response = client.chat.completions.create(
    model="default",
    messages=[
        {"role": "user", "content": "こんにちは!"},
        {"role": "assistant", "content": "こんにちは!"},
        {"role": "user", "content": "今なんて言った?"}
    ],
    stream=True,
)
for chunk in response:
    print(chunk.choices[0].delta.content or "", end="")

インストール

ワンラインインストール

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/imonoonoko/Bit-TTT-Engine/main/scripts/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/imonoonoko/Bit-TTT-Engine/main/scripts/install.ps1 | iex

Homebrew (macOS / Linux)

brew tap imonoonoko/bitllama
brew install bitllama

Windows (winget)

winget install imonoonoko.BitLlama            # CLI
winget install imonoonoko.BitLlamaDesktop      # デスクトップ GUI

ビルド済みバイナリ

GitHub Releases からダウンロード:

プラットフォーム CLI デスクトップ GUI
Windows x64 bit_llama-windows-x64.exe BitLlama-Desktop-Setup.exe
Linux x64 bit_llama-linux-x64.bin
macOS ARM bit_llama-macos-arm64.bin

ソースからビルド

git clone https://github.com/imonoonoko/Bit-TTT-Engine.git
cd Bit-TTT-Engine

# CLI のビルド
cargo build --release -p bit_llama

# バイナリは target/release/bit_llama (Windows では bit_llama.exe)

要件: Rust 1.75+, CUDA 12.x (オプション、GPU 高速化用)


CLI コマンド

コマンド 説明
bitllama run <model> インタラクティブチャット (マルチターン)
bitllama run <model> "prompt" ワンショット生成
bitllama pull <repo> HuggingFace からモデルダウンロード
bitllama learn <text> モデルに教える (Soul ラーニング)
bitllama soul list 保存済み Soul 一覧
bitllama soul info <soul> Soul メタデータ表示
bitllama serve <model> OpenAI 互換 API サーバー起動
bitllama rag add <file> ドキュメントをローカル RAG インデックスに追加
bitllama rag query "質問" RAG コンテキスト付きで質問
bitllama eval <model> モデル品質評価 (パープレキシティ)
bitllama bench モデルベンチマーク (パープレキシティ + 速度)
bitllama mcp MCP サーバー起動 (Claude Code 等向け)
bitllama tools 外部 MCP ツールサーバーに接続
bitllama list ローカルモデル一覧
bitllama info <model> モデル詳細表示

よく使うオプション

# 生成オプション
--temperature 0.7       # 創造性 (0.0 = 決定的)
--max-tokens 512        # 最大出力長
--top-p 0.9             # Nucleus サンプリング
--repeat-penalty 1.1    # 繰り返し防止

# パフォーマンスオプション
--q8-cache              # Q8 KV キャッシュ (VRAM 節約)
--device cuda           # GPU 使用 (デフォルト)
--device cpu            # CPU 使用

# Soul オプション
--soul onoko.soul       # Soul をロード
--system "You are..."   # カスタムシステムプロンプト

パフォーマンス

RTX 4060 Ti 8GB, Q4_K_M 量子化でテスト:

モデル BitLlama llama.cpp 比率
Llama-2 7B 45.4 tok/s 50.5 89.9%
Mistral 7B 42.1 tok/s 47.3 89.0%
Gemma-2 2B 75.1 tok/s 101.8 73.8%

Pure Rust + CUDA で llama.cpp の約 90% の速度。Soul ラーニングは BitLlama だけの機能。


Soul システム

Soul = LoRA ファインチューニングによる永続メモリ。

# テキストから Soul を作成
bitllama learn "私はカナメ。オノコを助けるために作られた AI アシスタントです。" \
  --model gemma-2-2b-it.gguf \
  --save kaname.soul \
  --epochs 50 \
  --lr 1e-4

# 既存 Soul に追加学習
bitllama learn "好きな食べ物は寿司です。" \
  --model gemma-2-2b-it.gguf \
  --load kaname.soul \
  --save kaname.soul

# チャットで使用
bitllama run gemma-2-2b-it.gguf --soul kaname.soul

Soul は safetensors 形式で保存 (rank-8 LoRA で約 50MB)。


対応モデル

モデル フォーマット 状態 チャットテンプレート
BitNet 2B4T safetensors bitnet
Llama-2 7B/13B GGUF llama2
Llama-3 8B GGUF llama3
Gemma-2 2B/9B GGUF gemma
Qwen2.5 0.5B/1.5B/7B GGUF chatml
Mistral 7B GGUF mistral
Phi-4 Mini GGUF phi

GGUF モデル: Q4_K_M, Q8_0, F16 量子化に対応。 BitNet 2B4T: ネイティブ 1.58-bit — 2B パラメータモデルがわずか 0.4 GB。


デスクトップ GUI

BitLlama Desktop — Tauri 2.0 + Svelte 5 で作られたネイティブアプリ。

  • ワンクリックでモデルダウンロード&管理
  • ストリーミングチャット(会話履歴付き)
  • チャット・ファイルドラッグ&ドロップ・修正学習から Soul を育成
  • Soul 管理 (一覧、アクティブ切替、成長チャート)
  • ハードウェア自動検出&モデル推奨
  • 初回ウィザードで迷わずスタート
  • 日本語 / 英語 完全対応

インストール: winget, GitHub Releases, またはソースからビルド:

cd bitllama-desktop && npm install && npx tauri build

TTT (Test-Time Training)

BitLlama の Test-Time Training は推論時にモデルを適応させます — コンテキストから学びながら生成します。

# CLI で TTT を有効化
bitllama run model.gguf --ttt

# デスクトップ GUI では設定パネルからトグル

TTT はすべての対応モデル (GGUF・safetensors) で動作します。


アーキテクチャ

Bit-TTT-Engine/
├── crates/
│   ├── bit_llama/           # 🖥️ CLI アプリケーション
│   │   └── src/
│   │       ├── commands/    # run, pull, learn, soul, serve, rag, eval, bench
│   │       └── cli.rs       # コマンドルーティング
│   ├── rust_engine/         # 🧠 コア推論エンジン
│   │   ├── model/           # GGUF ローダー、量子化推論
│   │   ├── kernels/         # CUDA カーネル (Flash Attention, RoPE)
│   │   └── layers/          # LoRA, KV Cache
│   └── bit_converter/       # 🔄 モデル変換ユーティリティ
├── bitllama-desktop/        # 🖼️ デスクトップ GUI (Tauri 2.0 + Svelte 5)
│   ├── src/                 # Svelte フロントエンド
│   └── src-tauri/           # Tauri バックエンド (Rust)
└── docs/                    # ドキュメント

コントリビュート

PR 歓迎!ガイドラインは CONTRIBUTING.md を参照。

# テスト実行
cargo test --no-default-features

# PR 前のチェック
cargo fmt --all
cargo clippy --no-default-features -- -D warnings

謝辞

  • candle — Rust 向け ML フレームワーク
  • ggml/llama.cpp — GGUF フォーマットのインスピレーション

ライセンス

MIT License — LICENSE を参照。


Rust 🦀 と CUDA ⚡ で構築 by @imonoonoko