Files
ArrowCanaria-Llama-8B-SFT-v0.1/README.md
ModelHub XC 661b1ee2c7 初始化项目,由ModelHub XC社区提供模型
Model: DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1
Source: Original Platform
2026-07-14 09:20:09 +08:00

246 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- ja
- en
license:
- llama3.3
- gemma
library_name: transformers
base_model:
- tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5
tags:
- llama3
- sft
- japanese
- aituber
- roleplay
- chat
pipeline_tag: text-generation
---
# ArrowCanaria-Llama-8B-SFT-v0.1
## モデル概要
**ArrowCanaria-Llama-8B-SFT-v0.1** は、AItuber(AI VTuber)向けに雑談性能を重視して設計された日本語特化の8Bパラメータ言語モデルです。
多くの日本語LLMは翻訳調の硬い文体や、定型的なテンプレート応答に陥りがちです。本モデルは「AItuberとして視聴者と自然に雑談できるモデル」を目指し、**雑談・ロールプレイ(RP)・推論・日本語の自然さ**を高い水準で獲得することを目標に開発されました。テンプレート的・機械的な応答ではなく、**自然な日本語で人間らしく回答できること**が最大の特徴です。
本モデルは `tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5` をベースに、高品質な日本語合成小説データセットによる継続事前学習(CPT)でドメイン知識を拡張した後、Chat Vectorマージで対話能力を復元し、さらに17.5万件超の合成データセットによる3フェーズのカリキュラムSFTを実施して構築されています。独自のデータ生成フレームワーク **SDG_LOOM** によって作成された高品質なデータと、EQ(感情知性)を優先する段階的な学習率設計により、従来のモデルよりも効率的かつ効果的なトレーニングを実現しています。
### 想定ユースケース
- **AItuber / AI VTuber**: 配信中のリスナーとの雑談・コメント対応
- **チャットボット**: 自然な日本語での日常会話・悩み相談
- **ロールプレイ**: キャラクターを演じた対話・創作支援
- **汎用アシスタント**: 知識応答・推論・ツール呼び出しを含む幅広いタスク
### 主な特徴
- 🗣️ **自然な日本語応答** — 定型文や翻訳調を排した、人間らしい対話。相談・共感・傾聴といった感情的な応答にも対応し、会話相手に寄り添った回答を生成する
- 💬 **高い雑談性能** — 日常会話・相談・共感的応答に強く、AItuberとしてリスナーと自然にコミュニケーションできる対話能力を持つ
- 🎭 **RP・キャラクター対話** — 一貫した人格・感情表現を持ったロールプレイ対話が可能。キャラクターの感情の揺れや対話の駆け引きを表現できる
- 🧠 **推論力** — 論理的思考・数学的推論の基礎を保持。高難度推論データで学習しており、複雑な質問にも対応可能
- 🔧 **Tool Use / RAG** — Function Calling・検索拡張生成にも対応。日本語・英語両方でのツール呼び出しや、与えられたコンテキストに基づく正確な回答が可能
- ✍️ **クリエイティブ表現** — 文学的な比喩・暗喩・情景描写など、豊かな日本語表現力を持つ
### モデル仕様
| 項目 | 詳細 |
|---|---|
| **モデル名** | `DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1` |
| **ベースモデル** | `tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5` |
| **アーキテクチャ** | Llama 3.1 (Transformer decoder-only) |
| **パラメータ数** | 8B |
| **学習データ量** | 175,000件超(JP 70.9% / EN 29.1%) |
| **コンテキスト長** | 4,096 tokens |
| **精度** | BF16 |
| **ライセンス** | Llama 3.1 Community License + Gemma Terms of Use License |
---
## 推論方法
### 🤗 Transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="bfloat16",
device_map="auto",
)
messages = [
{"role": "system", "content": "あなたは親しみやすいAIアシスタントです。自然な日本語で会話してください。"},
{"role": "user", "content": "最近ちょっと疲れてるんだよね。何かリフレッシュできる方法ない?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
input_ids,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.05,
do_sample=True,
)
response = tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True)
print(response)
```
### ⚡ vLLM
```bash
# vLLM サーバーの起動
vllm serve DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1 \
--dtype bfloat16 \
--max-model-len 4096 \
--host 0.0.0.0 \
--port 8000
```
```bash
# リクエスト例(curl)
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1",
"messages": [
{"role": "system", "content": "あなたは親しみやすいAIアシスタントです。自然な日本語で会話してください。"},
{"role": "user", "content": "最近ちょっと疲れてるんだよね。何かリフレッシュできる方法ない?"}
],
"temperature": 0.7,
"max_tokens": 512
}'
```
---
## データ概要
### SDG_LOOM による高品質データ生成
本モデルの学習データは、独自の合成データ生成フレームワーク **[SDG_LOOM](https://github.com/foxn2000/sdg_loom)** を活用して作成されています。SDG_LOOM は、高品質な合成データを効率的に生成するためのパイプラインであり、データの品質管理・フィルタリングを体系的に行うことで、学習に最適なデータセットを構築します。
### データ構成
合計 **175,000件超** の合成データセットで学習を行いました。
| 言語 | 件数 | 比率 |
|---|---|---|
| 日本語 | 124,000件 | 70.9% |
| 英語 | 51,000件 | 29.1% |
| **合計** | **175,000件超** | **100%** |
### タスク別内訳
| カテゴリ | 内容 | 言語 |
|---|---|---|
| **知識応答** | シングルターン・マルチターンの知識QA | 🇯🇵 JP |
| **雑談・相談** | 日常会話・悩み相談・共感的応答(EQの中核) | 🇯🇵 JP |
| **Tool Use** | Function Calling(日本語/英語)・エージェント行動 | 🇯🇵🇬🇧 JP/EN |
| **RAG** | 検索拡張生成(コンテキスト参照→質問応答) | 🇬🇧 EN |
| **推論** | 高難度推論・数学的思考 | 🇬🇧 EN |
| **RP** | ロールプレイ対話・キャラクター感情表現 | 🇯🇵 JP |
| **AItuber RP** | 配信者↔リスナー対話・即興的なキャラクター応答 | 🇯🇵 JP |
| **クリエイティブ** | 文学的表現力(比喩・暗喩・描写) | 🇯🇵 JP |
---
## 学習概要
### モデル作成パイプライン
本モデルは以下の3段階で構築されています:
```
1. CPT(Continual Pre-Training)
tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5
+ 10k フィルタリング済み高品質日本語合成小説データセット
↓
2. Chat Vector マージ(Mergekit)
CPTモデルに元モデルの Chat Vector をマージし、
対話能力を復元
↓
3. SFT(Supervised Fine-Tuning)
175,000件超の合成データセットで LoRA による
3フェーズカリキュラム学習
```
### SFT 学習設計
#### カリキュラム学習(3フェーズ構成)
SFT は「声→能力→人格」の順序で段階的に学習する **カリキュラム学習** を採用しています。
```
Phase 1: 基盤構築 ──▶ Phase 2: 能力拡張 ──▶ Phase 3: 個性統合
65,000件 63,000件 47,000件
```
| フェーズ | データ件数 | 目的 | 学習率 |
|---|---|---|---|
| **Phase 1: 基盤構築** | 65,000件 | 日本語 EQ・知識応答・推論力の原型を確立 | `1e-4` |
| **Phase 2: 能力拡張** | 63,000件 | Tool Use / RAG / エージェント能力の獲得 | `3e-5` |
| **Phase 3: 個性統合** | 47,000件 | EQ・キャラクター性・対話人格の統合 | `5e-5` |
#### EQ優先の学習率設計
```
P1 (1e-4) >> P3 (5e-5) > P2 (3e-5)
```
- **Phase 1 (`1e-4`)**: 日本語EQ・知識応答の基盤を強く刻み込む
- **Phase 2 (`3e-5`)**: Tool/RAG は補助的能力のため控えめに学習し、Phase 1 の文体を最大限保護
- **Phase 3 (`5e-5`)**: 個性統合は EQ の中核目標のため Phase 2 より積極的に学習。ただし Phase 1 の基盤を上書きしない範囲に留める
#### 壊滅的忘却の防止
各フェーズでは **リプレイバッファ** を導入し、前フェーズのデータの一部を再混合することで壊滅的忘却を防止しています。
#### 主な学習パラメータ
| パラメータ | 値 |
|---|---|
| **LoRA rank (r)** | 32 |
| **LoRA alpha** | 64 |
| **LoRA target modules** | `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj` |
| **LoRA dropout** | 0.0(Unsloth 高速パッチ適用のため) |
| **最大シーケンス長** | 4,096 tokens |
| **実効バッチサイズ** | 16(batch=2 × grad_accum=8) |
| **Optimizer** | AdamW (torch fused) |
| **精度** | BF16 |
| **Packing** | 有効(GPU 利用率最大化) |
| **Loss** | NLL(標準 Negative Log-Likelihood) |
| **Warmup ratio** | 0.05(Phase 1/2)/ 0.10(Phase 3) |
| **Epochs** | 1.0(全フェーズ共通、packing により 1 エポックで十分) |
| **学習フレームワーク** | Unsloth + TRL `SFTTrainer` |
#### Phase 3 の工夫
Phase 3 では RP・クリエイティブという **スタイル転移力の強いデータ** を扱うため、以下の工夫を施しています:
- **Warmup ratio を 0.10 に倍増**(Phase 1/2 は 0.05):学習初期の急激なパラメータ変動を抑制し、Phase 1/2 で蓄積した能力を保護
- **学習率を Phase 1 の半分(5e-5)に設定**:スタイル転移の強度を適度に抑制しつつ、Phase 2 より積極的に個性を学習
---
## 謝辞
- 質の高い日本語モデルを作成してくれたSwallowチームに感謝します。 - [tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5](https://huggingface.co/tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.5)
- 高品質なベースモデルを作成してくれたMetaのLlamaチームに感謝します。 - [Meta Llama](https://www.llama.com)
- 高効率な学習フレームワークを作成してくださったUnslothに感謝します。 - [Unsloth](https://github.com/unslothai/unsloth)
- そのほか、高品質なデータを作成する際にDeepSeek-V3.2とkimi K2.5を使用しました。[DeepSeekチーム](https://www.deepseek.com)と[Kimiチーム](https://www.moonshot.ai)に感謝します。
Built by Kimi