x10-500M-v1 (Base Model)

x10-500M-v1 は、ゼロから事前学習された 503M (0.5B) パラメータの日本語特化型言語モデルです。
標準的な Transformer / LLaMA と比較してFFNの隠れ層次元をベース次元の 10.0倍 に拡大した知識特化型 10x SwiGLU アーキテクチャを採用しています。

本モデルは Hugging Face 公式の LlamaForCausalLM と完全互換であり即座にロード・実行できます。

Features

  1. 知識特化型 10x SwiGLU FFN: パラメータ全体の約85% (425Mパラメータ) をFFNに割り当てています。
  2. 実験的プロトタイプ:
    • 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
  • ハードウェア: 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
Safetensors
Model size
0.5B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train rsu/x10-500M-v1