OLMo3-190M-zh-v2-base

中文 from-scratch pretrain 教学模型。本模型使用自训 48k 中文 BPE tokenizer 和约 3.3907B tokens 中文语料,从零训练 OLMo3-190M 架构 1 epoch。

这是《零基础 AI 大模型研发训练营》第 04 讲作业模型。它是 base model,不是 instruction/chat model;适合用于中文续写、继续预训练和后续 SFT。

来源与动机

本模型的目标是完整走通小型中文 LLM 的基础预训练链路:

原始中文语料
  -> 自训 48k 中文 BPE tokenizer
  -> 构建 3.3907B tokenized base 数据
  -> 从零训练 OLMo3-190M base model 1 epoch
  -> 生成评估
  -> 推送 HuggingFace

这条 v2 链路没有直接复用老师旧版 tokenized 数据,而是重新训练 tokenizer、重新构建 tokenized 数据,并同步模型 config 的 vocab_size 与特殊 token id。

架构

基于 OLMo3-190M causal LM 架构:

字段
architectures ["Olmo3ForCausalLM"]
hidden_size 768
num_hidden_layers 12
num_attention_heads 12
intermediate_size 3072
vocab_size 48,000
max_position_embeddings 4096
training seq_len 2048
total params ~187M

使用

from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("Nwna/olmo3-190m-zh-v2-base")
model = AutoModelForCausalLM.from_pretrained("Nwna/olmo3-190m-zh-v2-base")

inputs = tok("人工智能是", return_tensors="pt")
outputs = model.generate(
    **inputs,
    max_new_tokens=120,
    do_sample=True,
    temperature=0.8,
    top_p=0.9,
)
print(tok.decode(outputs[0], skip_special_tokens=True))

用于继续预训练 / SFT

这是 base model,没有对话能力。推荐用途是:

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("Nwna/olmo3-190m-zh-v2-base")
# 继续做 continue pretrain 或作为 SFT 底座

训练配方

Tokenizer 与数据

项目
tokenizer Nwna/olmo3-190m-zh-v2-tokenizer
tokenizer 类型 中文 Byte-level BPE
vocab size 48,000
tokenized data Nwna/olmo3-190m-zh-v2-base-data
actual tokens 3,390,687,394
dtype uint16

数据主要来自:

数据源 作用
Ultra-FineWeb-zh 提供通用中文网页文本,覆盖面广
Fineweb-Edu-Chinese-V2.2 提供教育类文本,提高知识密度

超参

项目
GPU H100
precision bf16
attention SDPA
epochs 1.0
global steps 12,288
per-device batch 16
grad accumulation 8
effective batch 128 sequences
tokens / step 262,144
peak lr 5e-4
min lr 5e-5
scheduler warmup + cosine
optimizer AdamW
weight decay 0.1,embedding / norm / bias excluded

Loss 轨迹

step eval_loss eval_ppl
4,000 4.1429 63.0
8,000 3.9029 49.5
12,000 3.8042 44.9

最后 100 条训练日志的 train loss 平均约 3.797。训练结束在 step 12,288,最后一次 eval 发生在 step 12,000。

7-prompt 抽测表现

使用 src/eval.py 的采样生成设置:

max_new_tokens=120
do_sample=True
temperature=0.8
top_p=0.9
repetition_penalty=1.1
Prompt 表现 观察
人工智能是 🟡 能生成中文科普段落,但重复与套话明显
山里有座庙 🟡 可续写,容易转成虚构的文物/寺庙说明
今天天气不错,我准备 🟡 能续写日常文本,但上下文关系混乱
北京大学位于 🔴 地理事实不稳定,可能答到错误地点
四大发明是 🔴 不能稳定列出正确四大发明
《红楼梦》人物 🔴 容易生成标题式重复或人物混杂
Python 是一种 🟡 知道与编程相关,但定义不稳定

限制

  1. 不是 chat / instruction model:没有经过 SFT 或 RLHF,不具备稳定对话能力。
  2. 事实可靠性有限:190M 小模型在单轮 1 epoch 训练后仍会产生事实混淆。
  3. 采样输出会波动do_sample=True 时,同一 prompt 多次生成可能不同。
  4. 上下文控制较弱:开放式 prompt 可能漂移到网页、列表、故事或百科腔。

License

  • 模型权重:Apache-2.0
  • 训练数据:混合来源。请根据各原始数据源许可确认下游使用边界。

配套资源

Citation

@misc{nwna-olmo3-190m-zh-v2-base,
  title={OLMo3-190M-zh-v2-base: Chinese From-Scratch Pretrained Teaching Model},
  author={Nwna},
  year={2026},
  howpublished={\url{https://huggingface.co/Nwna/olmo3-190m-zh-v2-base}},
  note={LLM001 Course, Lecture 04 homework}
}
Downloads last month
96
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Nwna/olmo3-190m-zh-v2-base

Finetunes
1 model

Dataset used to train Nwna/olmo3-190m-zh-v2-base

Space using Nwna/olmo3-190m-zh-v2-base 1