初始化项目,由ModelHub XC社区提供模型

Model: DataPilot/ArrowCanaria-Llama-8B-SFT-v0.1
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-07-14 09:20:09 +08:00
commit 661b1ee2c7
12 changed files with 2718 additions and 0 deletions

246
README.md Normal file
View File

@@ -0,0 +1,246 @@
---
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