OLMo 2 32B Instruct:针对不同任务的强大语言模型

艾伦人工智能研究所(Ai2)最近发布了一个名为 OLMo 2 32B Instruct 的新语言模型,它是 OLMo-2 32B March 2025 模型的后训练变体。该模型已在聊天、数学、GSM8K 和 IFEval 等多种任务中进行了微调,是适用于各种应用的通用工具。

在这里插入图片描述

模型说明

OLMo 2 32B Instruct 是一个混合了公开数据集、合成数据集和人工创建数据集的训练模型。它主要针对英语语言而设计,采用 Apache 2.0 许可。该模型在 allenai/OLMo-2-0325-32B-DPO 模型的基础上进行了微调,而 allenai/OLMo-2-0325-32B-DPO 模型本身是在 Dolma 数据集上预先训练的。

安装和使用

要使用 OLMo 2 32B Instruct,需要使用以下命令从主分支安装最新版本的 Transformers:

pip install --upgrade git+https://github.com/huggingface/transformers.git

安装完成后,您可以使用以下代码段用 HuggingFace 加载模型:

from transformers import AutoModelForCausalLM
olmo_model = AutoModelForCausalLM.from_pretrained(allenai/OLMo-2-0325-32B-Instruct)

聊天模板和系统提示

OLMo 2 32B Instruct 的聊天模板与以前的 OLMo 2 和 Tülu 3 型号略有不同。它在其余部分之前没有 bos 标记,Ai2 演示中使用的默认系统提示是

You are OLMo 2, a helpful and harmless AI Assistant built by the Allen Institute for AI.

中间检查点

为了促进对 RL 微调的研究,Ai2 在模型的 RLVR 训练过程中发布了中间检查点。这些检查点每 20 个训练步骤保存一次,可在 HuggingFace 存储库的修订版中访问。

偏差、风险和限制

与任何语言模型一样,OLMo 2 32B Instruct 在用户提示时可能会生成有害和敏感的内容。在应用这项技术时,必须考虑到风险,因为模型中的许多语句可能是不准确的。

性能

OLMo 2 32B Instruct 在各种任务中都表现出令人印象深刻的性能。它在平均指标上获得了 68.8 分,在 AlpacaEval 2 LC 上获得了 42.8 分,在 BBH 上获得了 70.6 分,在 DROP 上获得了 78.0 分,在 GSM8k 上获得了 87.6 分,在 IFEval 上获得了 85.6 分,在 MATH 上获得了 49.7 分,在 MMLU 上获得了 77.3 分,在 Safety 上获得了 85.9 分,在 PopQA 上获得了 37.5 分,在 TruthQA 上获得了 73.2 分。

ModelAverageAlpacaEval 2 LCBBHDROPGSM8kIFEvalMATHMMLUSafetyPopQATruthQA
Closed API models
GPT-3.5 Turbo 012559.638.766.670.274.366.941.270.269.145.062.9
GPT 4o Mini 2024-07-1865.749.765.936.383.083.567.982.284.939.064.8
Open weights models
Mistral-Nemo-Instruct-240750.945.854.623.681.464.531.970.052.726.957.7
Ministral-8B-Instruct52.131.456.256.280.056.440.068.556.220.255.5
Gemma-2-27b-it61.349.072.767.580.763.235.170.775.933.964.6
Qwen2.5-32B66.539.182.348.387.582.477.984.782.426.170.6
Mistral-Small-24B67.643.280.178.587.277.365.983.766.524.468.1
Llama-3.1-70B70.032.983.077.094.588.056.285.276.446.566.8
Llama-3.3-70B73.036.585.878.093.690.871.885.970.448.266.1
Gemma-3-27b-it-63.483.769.291.1--81.8-30.9-
Fully open models
OLMo-2-7B-1124-Instruct55.731.048.558.985.275.631.363.981.224.656.3
OLMo-2-13B-1124-Instruct61.437.558.472.187.480.439.768.677.528.863.9
OLMo-2-32B-0325-SFT61.716.969.777.278.472.435.976.193.835.461.3
OLMo-2-32B-0325-DPO68.844.170.277.585.783.846.878.091.936.473.5
OLMo-2-32B-0325-Instruct68.842.870.678.087.685.649.777.385.937.573.2

学习曲线

OLMo 2 32B Instruct 的训练曲线展示了其随时间推移的学习进度。该模型使用 5 个 8xH100 节点进行训练,学习曲线可在模型库中找到。

在这里插入图片描述
以下是 allenai/OLMo-2-0325-32B-Instruct 各步的核心评估分数(注意,我们将第 320 步作为最终检查点,对应第 573,440 集):

在这里插入图片描述
以下是 allenai/OLMo-2-0325-32B-Instruct 的其他评估分数:

在这里插入图片描述

复制命令

模型库中提供了 OLMo 2 32B Instruct 的复制命令,研究人员可以复制训练过程。

# clone and check out commit
git clone https://github.com/allenai/open-instruct.git
# this should be the correct commit, the main thing is to have the vllm monkey patch for
# 32b olmo https://github.com/allenai/open-instruct/blob/894ffa236319bc6c26c346240a7e4ee04ba0bd31/open_instruct/vllm_utils2.py#L37-L59
git checkout a51dc98525eec01de6e8a24c071f42dce407d738
uv sync
uv sync --extra compile

# note that you may need 5 8xH100 nodes for the training.
# so please setup ray properly, e.g., https://github.com/allenai/open-instruct/blob/main/docs/tulu3.md#llama-31-tulu-3-70b-reproduction
python open_instruct/grpo_vllm_thread_ray_gtrl.py \
    --exp_name 0310_olmo2_32b_grpo_12818 \
    --beta 0.01 \
    --local_mini_batch_size 32 \
    --number_samples_per_prompt 16 \
    --output_dir output \
    --local_rollout_batch_size 4 \
    --kl_estimator kl3 \
    --learning_rate 5e-7 \
    --dataset_mixer_list allenai/RLVR-GSM-MATH-IF-Mixed-Constraints 1.0 \
    --dataset_mixer_list_splits train \
    --dataset_mixer_eval_list allenai/RLVR-GSM-MATH-IF-Mixed-Constraints 16 \
    --dataset_mixer_eval_list_splits train \
    --max_token_length 2048 \
    --max_prompt_token_length 2048 \
    --response_length 2048 \
    --model_name_or_path allenai/OLMo-2-0325-32B-DPO \
    --non_stop_penalty \
    --stop_token eos \
    --temperature 1.0 \
    --ground_truths_key ground_truth \
    --chat_template_name tulu \
    --sft_messages_key messages \
    --eval_max_length 4096 \
    --total_episodes 10000000 \
    --penalty_reward_value 0.0 \
    --deepspeed_stage 3 \
    --no_gather_whole_model \
    --per_device_train_batch_size 2 \
    --local_rollout_forward_batch_size 2 \
    --actor_num_gpus_per_node 8 8 8 4 \
    --num_epochs 1 \
    --vllm_tensor_parallel_size 1 \
    --vllm_num_engines 12 \
    --lr_scheduler_type constant \
    --apply_verifiable_reward true \
    --seed 1 \
    --num_evals 30 \
    --save_freq 20 \
    --reward_model_multiplier 0.0 \
    --no_try_launch_beaker_eval_jobs \
    --try_launch_beaker_eval_jobs_on_weka \
    --gradient_checkpointing \
    --with_tracking

License and Use

OLMo 2 32B Instruct 采用 Apache 2.0 许可协议,用于研究和教育用途。该软件使用第三方模型生成的输出数据集进行了微调,这些输出数据集受附加条款约束。

结论

OLMo 2 32B Instruct 是一个功能强大的语言模型,针对各种任务进行了微调。它的性能、多功能性和开源性使其成为研究人员和开发人员开发基于语言的应用程序的宝贵资源。该模型的中间检查点、学习曲线和重现命令为进一步探索和实验提供了额外的工具。与任何语言模型一样,在使用 OLMo 2 32B Instruct 时必须考虑风险和局限性,尤其是生成有害或敏感内容方面。

https://huggingface.co/allenai/OLMo-2-0325-32B-Instruct

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值