OLMo-7B-0724-Instruct-hf项目简介
OLMo-7B-0724-Instruct-hf是由AI2(Allen Institute for AI)开发的一系列开放语言模型(Open Language Models,简称OLMo)之一,旨在推动语言模型的科学研究。该项目特别关注于模型的自适应版本,以提高问答性能,并在2024年7月进行了更新。
模型概述
OLMo模型是基于Transformer架构的自回归语言模型,主要使用英语进行自然语言处理(NLP)。其基础版本使用Dolma数据集进行训练,而自适应版本则增加使用Tulu SFT混合数据集和UltraFeedback清理版数据集进行训练。模型的代码及模型文件在Apache 2.0许可下发布。
项目支持
该项目得到了多机构的支持,包括Databricks、哈佛大学Kempner自然与人工智能研究所、AMD、CSC(Lumi超级计算机)以及华盛顿大学。
模型详细信息
我们发布了两个不同的模型版本,每个版本均经过特别训练,以提高问答能力:
-
OLMo 7B 2024 SFT
- 使用SFT(顺序微调)训练方法。
- 使用的主要数据集为Tulu 2 SFT Mix。
- 上下文长度:4096。
-
OLMo 7B 2024 Instruct
- 使用SFT + DPO(Direct Preference Optimization)训练方法。
- 使用数据集包括Tulu 2 SFT Mix和UltraFeedback Cleaned。
- 上下文长度:4096。
模型评估
多个评估指标体现了该模型在不同任务中的性能提升。例如:
- 在零样本多任务语言理解(MMLU 0-shot)中,OLMo 7B 2024 Instruct表现为52.8。
- 在AlpacaEval评估中,该模型实现了83.5%的胜率。
使用指南
用户可以使用最新版本的Transformers库运行这些模型。以下代码段展示了如何加载和使用该模型进行推理:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-7B-0724-Instruct-hf")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-7B-0724-Instruct-hf")
chat = [
{ "role": "user", "content": "What is language modeling?" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
response = olmo.generate(input_ids=inputs.to(olmo.device), max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
为了提高推理速度,可以对模型进行量化处理。
偏见、风险与限制
尽管OLMo在ToxiGen评估中相较于同类模型表现良好,但仍可能因用户输入产生有害或敏感内容。开发者需谨慎使用,并对应用中的技术风险予以充分考虑。为减少潜在的偏见、隐私等问题,建议实施相应的安全措施。
总体而言,OLMo-7B-0724-Instruct-hf为研究社区在探索LLM的安全性、构建安全工具等方面提供了强有力的支持和便利。