项目介绍:OLMo-7B-0724-hf
项目背景
OLMo是由Allen Institute for AI(AI2)开发的一系列开放语言模型,目标是推动语言模型科学的研究。这个项目中的模型基于Dolma数据集进行训练。项目团队发布了所有相关的代码、训练结果以及详细的训练细节。
模型详情
最新发布的模型为OLMo 7B July 2024版本,规格如下:
- 参数量: 7B(70亿)
- 训练标记数: 2.75万亿
- 层数: 32
- 隐藏层大小: 4096
- 注意力头数: 32
- 上下文长度: 4096
模型采用Apache 2.0许可发布,主要用于英语自然语言处理任务。
技术支持与合作
开发该项目的团队包括Allen Institute for AI(AI2),并获得多家机构的支持,包括Databricks、哈佛大学Kempner Institute、AMD、CSC(Lumi超级计算机)以及华盛顿大学(UW)等。
项目资源
项目资源丰富,包括多种可用的代码库和详细的文档支持用户进行模型的训练、推理和微调。相关资源可以在以下链接中找到:
- 项目主页: OLMo 项目页面
- 核心代码库: GitHub 资源库
- 评估代码: GitHub 评估库
- 进一步微调代码: GitHub 微调库
- 相关论文: 论文链接
- 技术博客: 技术博客文章
模型使用
推理
用户可以使用HuggingFace库进行推理,只需按照以下代码进行初始化即可:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-7B-0724-hf")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-7B-0724-hf")
message = ["Language modeling is "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
微调
可从最终的检查点或很多中间检查点开始对模型进行微调。AI2提供了两种微调方式:
- 使用OLMo资源库进行微调。
- 使用Open Instruct资源库进行进一步微调。详细信息
模型评估
OLMo 7B July 2024模型在多个自然语言处理任务中的表现如下:
任务 | OLMo 7B July 2024 |
---|---|
arc_c | 43.8 |
arc_e | 68.8 |
boolq | 78.9 |
copa | 84.0 |
hellaswag | 77.4 |
openbookqa | 48.2 |
piqa | 78.2 |
sciq | 97.0 |
winogrande | 68.8 |
truthfulQA (MC2) | 36.5 |
MMLU (5 shot MC) | 53.4 |
GSM8k | 35.0 |
数据与训练
本模型使用更新的Dolma 1.7版本进行训练,经过更好的数据去重和质量过滤。训练采用两阶段的方法:第一阶段从头开始训练,第二阶段在高质量数据集上进行精细化训练。
结论
OLMo-7B-0724-hf项目通过两个阶段的训练策略,显著提高了模型在多项任务中的表现。这不仅反映在模型本身的训练细节中,还体现在其在不同任务中的测试结果上。项目研发团队详细记录了每一个步骤,为同行提供了详尽的工程文档以供研究。