TÜLU 3:Ai2推出的系列开源指令遵循模型

128 阅读4分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

模型性能:TÜLU 3通过后训练技术显著提高语言模型在多种任务上的表现。
多任务处理:作为多技能的语言模型,能处理广泛的任务,从基础的问答到复杂的逻辑推理和编程问题。
技术创新:引入新的后训练方法,如直接偏好优化(DPO)和可验证奖励的强化学习(RLVR),进一步提升模型性能。

正文(附运行示例)

TÜLU 3是什么

公众号: 蚝油菜花 - open-instruct/blob/main/docs/tulu3.md

TÜLU 3是由艾伦人工智能研究所(Ai2)推出的开源指令遵循模型系列,包括8B和70B两个版本,未来计划推出405B版本。该模型在性能上超越了Llama 3.1 Instruct版本,提供了详细的后训练技术报告,公开数据、评估代码和训练算法。

TÜLU 3基于强化学习、直接偏好优化等先进技术,显著提升模型在数学、编程和指令遵循等核心技能上的表现,推动开源模型在多目标、多阶段训练框架内的研究进展。

TÜLU 3的主要功能

  • 提升语言模型性能:通过后训练技术显著提高语言模型在多种任务上的表现,包括知识回忆、推理、数学问题解决、编程和指令遵循等。
  • 多任务处理能力:作为多技能的语言模型,能处理广泛的任务,从基础的问答到复杂的逻辑推理和编程问题。
  • 后训练方法的创新:引入新的后训练方法,如直接偏好优化(DPO)和可验证奖励的强化学习(RLVR),进一步提升模型性能。
  • 数据集和评估工具:提供大量的训练数据集和评估工具,帮助研究人员评估和优化模型在特定任务上的表现。
  • 模型微调:基于监督微调(SFT)和偏好微调,让模型更好地适应特定的任务和指令。

TÜLU 3的技术原理

  • 后训练(Post-Training):在预训练模型的基础上进行后训练,包括监督微调、偏好微调和强化学习等阶段,提升模型在特定任务上的表现。
  • 监督微调(SFT):用精心挑选的数据集对模型进行微调,增强模型在特定技能上的表现,如数学和编程。
  • 直接偏好优化(DPO):基于偏好反馈的优化方法,直接从偏好数据中学习,无需额外的奖励模型,提高模型对用户偏好的适应性。
  • 可验证奖励的强化学习(RLVR):在可验证的任务(如数学问题解决)上,只有当模型的输出被验证为正确时,才给予奖励,提高模型在任务上的性能。
  • 数据质量和规模:基于合成数据和公开数据集的整合,确保训练数据的多样性和质量,对于提升模型的泛化能力至关重要。

如何运行 TÜLU 3

以下是TÜLU 3模型的微调示例代码,展示了如何在本地环境中运行模型微调。

Llama-3.1-Tulu-3-8B-SFT 微调示例

accelerate launch \
    --mixed_precision bf16 \
    --num_machines 1 \
    --num_processes 8 \
    --use_deepspeed \
    --deepspeed_config_file configs/ds_configs/stage3_no_offloading_accelerate.conf open_instruct/finetune.py \
    --model_name_or_path meta-llama/Llama-3.1-8B \
    --tokenizer_name meta-llama/Llama-3.1-8B \
    --use_slow_tokenizer \
    --use_flash_attn \
    --max_seq_length 4096 \
    --preprocessing_num_workers 128 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 2 \
    --learning_rate 5e-06 \
    --lr_scheduler_type linear \
    --warmup_ratio 0.03 \
    --weight_decay 0.0 \
    --num_train_epochs 2 \
    --output_dir output/sft_8b \
    --with_tracking \
    --report_to wandb \
    --logging_steps 1 \
    --reduce_loss sum \
    --model_revision main \
    --dataset_mixer_list allenai/tulu-3-sft-mixture 1.0 \
    --checkpointing_steps epoch \
    --dataset_mix_dir output/sft_8b \
    --exp_name tulu-3-8b-sft \
    --seed 123

Llama-3.1-Tulu-3-70B-SFT 微调示例

accelerate launch \
    --mixed_precision bf16 \
    --num_machines 1 \
    --num_processes 8 \
    --use_deepspeed \
    --deepspeed_config_file configs/ds_configs/stage3_no_offloading_accelerate.conf open_instruct/finetune.py \
    --model_name_or_path meta-llama/Llama-3.1-70B \
    --tokenizer_name meta-llama/Llama-3.1-70B \
    --use_slow_tokenizer \
    --use_flash_attn \
    --max_seq_length 4096 \
    --preprocessing_num_workers 128 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 2 \
    --learning_rate 2e-06 \
    --lr_scheduler_type linear \
    --warmup_ratio 0.03 \
    --weight_decay 0.0 \
    --num_train_epochs 2 \
    --output_dir output/sft_70B \
    --with_tracking \
    --report_to wandb \
    --logging_steps 1 \
    --reduce_loss sum \
    --model_revision main \
    --dataset_mixer_list allenai/tulu-3-sft-mixture 1.0 \
    --checkpointing_steps 1000 \
    --keep_last_n_checkpoints 20 \
    --gradient_checkpointing \
    --exp_name tulu-3-70b-sft \
    --seed 456

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦