StableLM-3B-4E1T 项目介绍
StableLM-3B-4E1T 是一个由 Stability AI 开发的大型语言模型,它具有以下特点:
模型概览
- 这是一个拥有 30 亿参数的解码器模型
- 在 1 万亿个英语和代码数据集上预训练了 4 个 epoch
- 基于 transformer 解码器架构
- 使用 GPT-NeoX 库开发
- 采用 CC BY-SA-4.0 许可证
模型架构
StableLM-3B-4E1T 的架构与 LLaMA 模型类似,但做了一些修改:
- 隐藏层大小为 2560
- 32 层
- 32 个注意力头
- 序列长度为 4096
- 使用旋转位置编码
- 采用 LayerNorm 而非 RMSNorm
- 使用 GPT-NeoX 分词器
训练数据集
模型使用了多个开源大规模数据集进行训练,包括:
- Falcon RefinedWeb 提取数据
- RedPajama-Data(不含 Books3 子集)
- The Pile(不含 Books3 子集)
- StarCoder
训练过程
- 使用 bfloat16 精度
- 采用 AdamW 优化器
- 词表大小为 50,257
- 在 256 个 NVIDIA A100 40GB GPU 上训练了约 30 天
使用方法
可以使用 Transformers 库轻松加载和使用该模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/stablelm-3b-4e1t")
model = AutoModelForCausalLM.from_pretrained(
"stabilityai/stablelm-3b-4e1t",
torch_dtype="auto",
)
model.cuda()
# 使用模型生成文本
inputs = tokenizer("The weather is always wonderful", return_tensors="pt").to(model.device)
tokens = model.generate(
**inputs,
max_new_tokens=64,
temperature=0.75,
top_p=0.95,
do_sample=True,
)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))
性能评估
在 Open LLM Leaderboard 上,StableLM-3B-4E1T 在多个任务上都表现不错:
- AI2 推理挑战(25-shot):46.59%
- HellaSwag(10-shot):75.94%
- MMLU(5-shot):45.23%
- TruthfulQA(0-shot):37.20%
- Winogrande(5-shot):71.19%
使用限制和偏见
作为基础模型,StableLM-3B-4E1T 可能存在不可靠、不安全或其他不良行为。开发者在部署前需要进行评估和微调。由于预训练数据可能包含不当内容,生成的文本可能反映这些内容。建议用户在生产系统中谨慎使用该模型。
总的来说,StableLM-3B-4E1T 是一个强大的基础语言模型,适合进行应用特定的微调。它在多个任务上表现良好,但在实际应用中仍需谨慎评估和改进。