❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
模型性能:TÜLU 3通过后训练技术显著提高语言模型在多种任务上的表现。
多任务处理:作为多技能的语言模型,能处理广泛的任务,从基础的问答到复杂的逻辑推理和编程问题。
技术创新:引入新的后训练方法,如直接偏好优化(DPO)和可验证奖励的强化学习(RLVR),进一步提升模型性能。
正文(附运行示例)
TÜLU 3是什么
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
资源
- 项目官网:https://mimictalk.github.io/
- GitHub 仓库:https://github.com/allenai/open-instruct/blob/main/docs/tulu3.md
- HuggingFace 模型库:https://huggingface.co/collections/allenai/tulu-3-datasets-673b8df14442393f7213f372
- 技术论文:https://allenai.org/papers/tulu-3-report.pdf
- 在线体验 Demo:https://playground.allenai.org/
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦