BAAI/Aquila-135M-Intermediate
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

简介

Aquila-135M 模型是一款小型中英双语语言模型,采用两阶段范式进行训练:预训练和退火训练。 该模型在预训练阶段使用了 1.66TB 的中英双语 token,在退火训练阶段使用了 100B 的 token。 在退火阶段,我们精选了 100B token 的高质量双语数据,最终得到了我们的模型。

Aquila-135M-Instuct 模型是基于 Infinity Instruct 进行微调得到的。

整个训练过程基于 Triton,使用 FlagGems 以及名为 FlagScale 的并行训练框架完成。

此外,我们还开源了所有 中间检查点。

最新动态

  • 2024/12/24: 我们发布了 Aquila-135M 和 Aquila-135M-Instruct。
  • 2024/12/24: 我们发布了训练过程中的所有数据集和中间检查点。欢迎大家使用这些模型进行分析和实验。

数据集

我们开源了预训练和退火阶段使用的所有 双语数据集。 数据集的构成和混合比例如下图所示。 datasets composition

评估

我们遵循 SmolLM 模型的评估设置,并使用 lighteval 工具对模型进行评估。

参数数量不包括嵌入部分,并且 Aquila-135M 与 SmolLM2-135M 具有相同的模型结构。Aquila-135M 在英文基准测试上达到了相当的性能,而在中文基准测试上则表现出显著更好的结果。

在总参数数量低于及约为 4 亿的小型模型中,Aquila-135M 在保持领先处理能力的同时,显著提升了中文语言能力。

指标(零样本)Aquila-135M (Trition)Aquila-135M (CUDA)SmolLM-135MSmolLM2-135Mgpt2-medium-360MTinyMistral-248MTinyMistral-248M-2.5OpenELM-270MWide-Sheared-LLaMA-290Mopt-350mMobileLLM-350Mpythia-410mSmolLM-360MSmolLM2-360M
HellaSwag41.1941.1241.1542.1037.0827.0626.8045.7424.9436.0826.2839.2251.7354.66
ARC (Average)44.7644.1542.3443.9334.3429.7127.6335.7426.2031.9127.7235.1449.9553.24
PIQA66.3867.5268.2868.4466.3857.4053.9269.7550.6064.3650.2767.1971.5571.98
MMLU (cloze)31.0730.6730.2631.5827.7525.8225.5927.8924.7526.5824.8628.8834.3236.09
CommonsenseQA32.1031.7032.0232.9231.7024.5721.4635.7116.5432.1017.5331.4536.6138.74
TriviaQA6.657.024.244.032.360.500.081.340.001.380.002.069.1916.92
Winograde51.0751.7051.2250.9949.4949.2549.0152.4149.7251.5449.4149.9653.1252.49
OpenBookQA34.4034.4033.8034.6031.4029.4027.4030.6026.0027.8024.8028.4037.2037.00
GSM8K (5-shot)2.122.121.001.520.000.000.000.000.000.000.000.000.002.81
SIQA41.8142.3241.1541.4541.3041.8639.7142.7339.7642.3737.1042.0243.4541.61
CEval29.2229.8228.2826.4125.4025.3826.8926.6926.3726.6725.6827.9727.6628.51
CMMLU29.4829.6326.0126.6627.2026.6725.5726.2526.3326.9325.6126.9127.0627.39
Average-English35.1635.2734.5535.1632.1828.5627.1634.1925.8531.4125.8032.4338.7140.55
Average-Chinese29.3529.7327.1526.5426.3026.0326.2326.4726.3526.8025.6527.4427.3627.95
Average32.2532.5030.8530.8529.2427.2926.7030.3326.1029.1125.7229.9433.0434.25

对于对比模型,评估是在本地环境中进行的,因此分数可能与论文中报告的略有不同。

如何使用

指令模型

from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "BAAI/Aquila-135M-Instruct"

device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
# for multiple GPUs install accelerate and do `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")`
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)

messages = [{"role": "user", "content": "什么是引力?"}]
input_text=tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(input_text)
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_new_tokens=500)
print(tokenizer.decode(outputs[0]))
## 引力是宇宙中的一个基本力,由多个物体相互作用而产生的。它由能量和质量组成,与引力定律密切相关。

messages = [{"role": "user", "content": "What is gravity?"}]
input_text=tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(input_text)
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_new_tokens=500)
print(tokenizer.decode(outputs[0]))
## Gravity is the force that keeps us on Earth as we orbit it. It pulls objects towards each other with a strength that depends on how far apart they are from each other, and how strong the gravitational pull is. The stronger the object's mass, the greater its gravitational pull.

未来规划

  • 我们计划进一步优化数据集的构成与比例。
  • 我们计划进一步探索小规模模型在特定场景下的应用。

引用

如果您觉得本项目有帮助,请引用以下成果

@misc{aquila-135m,
      title={Aquila-135M: A Bilingual Small Language Model in Chinese and English}, 
      author={BAAI},
      year={},
      eprint={},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={}, 
}