x10-500M-v1 (Base Model)
x10-500M-v1 は、ゼロから事前学習された 503M (0.5B) パラメータの日本語特化型言語モデルです。
標準的な Transformer / LLaMA と比較してFFNの隠れ層次元をベース次元の 10.0倍 に拡大した知識特化型 10x SwiGLU アーキテクチャを採用しています。
本モデルは Hugging Face 公式の LlamaForCausalLM と完全互換であり即座にロード・実行できます。
Features
- 知識特化型 10x SwiGLU FFN: パラメータ全体の約85% (425Mパラメータ) をFFNに割り当てています。
- 実験的プロトタイプ:
- 500M モデルの Chinchilla 最適である 10B トークンに対して約 33% (3.28B トークン) の事前学習段階ですが、10x FFN の恩恵により、このデータ規模でも高い事実想起能力を発揮します。
Architecture
| パラメータ | 設定値 | 備考 |
|---|---|---|
| アーキテクチャ | LlamaForCausalLM |
Hugging Face 公式互換 |
| 総パラメータ数 | 502,787,328 (≒ 503M) | 埋め込み層含む |
| 語彙数 (Vocab Size) | 28,000 | SentencePiece |
| 隠れ層次元 (Hidden Dim) | 768 | Attention のベース次元 |
| 中間層次元 (FFN Dim) | 7,680 | SwiGLU |
| アテンションヘッド数 | 12 | MHA |
| KV ヘッド数 | 12 | GQA無し |
| 層数 (Layers) | 24 | |
| 最大系列長 (Max Seq Len) | 1,024 (Position Embeddings: 2048) | RoPE |
| 正規化 (Normalization) | RMSNorm (eps=1e-6) | Pre-Norm |
| 活性化関数 | SwiGLU | |
| Tied Embeddings | True |
Pre-training Details
- 学習ステップ数: 25,000 steps
- 実効バッチサイズ: 128 (1 step = 131,072 tokens)
- 総消化トークン数: 3.28B tokens / コーパス 1.47周
- 最適化手法: AdamW (beta1=0.9, beta2=0.95, Weight Decay: 0.01)
- 学習率スケジューラ: WSD
- Peak LR:
2e-4 - Warmup: 1,000 steps
- Final LR:
1e-5
- Peak LR:
- ハードウェア: 1x NVIDIA A100 40GB (Google Colab Pro)
- 速度: 約 2.39 秒 / step
- 総学習時間: 16時間29分
- 最終 Loss:
- Train Loss: 3.08 〜 3.16
- Val Loss: 3.2951
Generation Examples
推論設定: temperature=0.5, top_p=0.7, top_k=20, repetition_penalty=1.08
Input: 日本の首都は
Output: 日本の首都は、東京。首都圏の交通網は、世界でも有数の規模を誇ります。その都心部にある東京駅周辺には、多くの飲食店やホテル、ショッピングモールなどが集まっています。
Input: 日本の四季にはそれぞれ特徴があり
Output: 日本の四季にはそれぞれ特徴があり、その季節の自然や風物、歴史などを感じることができる。また、日本の四季は、季節によって様々な表情を見せる。季節ごとに異なる風景を楽しみながら、四季の移り変わりを感じることができる。
Input: おいしいオムライスを作るために大事なことは
Output: おいしいオムライスを作るために大事なことは、材料の選び方です。オムライスは、お肉や野菜を炒めることで作ります。オムライスの材料は、お肉や野菜、お肉に合うものを選ぶのがポイントです。
Input: 人工知能が人間の知性を超える日は
Output: 人工知能が人間の知性を超える日は近い。人工知能が人間を超えた時、人類はどのような未来を迎えるのか。その未来を予測するヒントが、この本には隠されている。
Quick Start
Hugging Face の transformers ライブラリからそのままロードして推論できます:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "rsu/x10-500M-v1"
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
dtype = torch.bfloat16 if (torch.cuda.is_available() or torch.backends.mps.is_available()) else torch.float32
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=dtype,
).to(device)
prompt = "日本の首都は、"
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=60,
temperature=0.4,
do_sample=True,
top_p=0.7,
top_k=20,
repetition_penalty=1.08,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# 出力例: 日本の首都は、東京です。
Notes
- 事前学習データ規模: Chinchilla 最適である 10B トークンの内 33% (約 3.3B トークン)で学習しているため事前学習不足の可能性があります。
- 対話タスクについて: 本モデルは事前学習済みの Base モデルです。対話や指示応答(Q&A)には、指示チューニング済みの
x10-500M-v1-Instructの使用を推奨します。
License
本モデルは Apache License 2.0 のもとで公開されています。
- Downloads last month
- 332