8卡环境微调Grok-1实战

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭ModelScope开源社区推出的一套完整的轻量级训练推理工具,基于PyTorch的轻量级、开箱即用的模型微调、推理框架,让AI爱好者用自己的消费级显卡就能玩转大模型和AIGC。

本文为魔搭社区轻量级训练推理工具SWIFT微调实战教程系列:

SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭ModelScope开源社区推出的一套完整的轻量级训练推理工具基于PyTorch的轻量级、开箱即用的模型微调、推理框架,让AI爱好者用自己的消费级显卡就能玩转大模型和AIGC。

Grok-1自开源以来,因作为高达314B参数的基础模型,且采用Rust+JAX框架构建,不适配transformers生态,导致使用其进行微调训练成本较高。近期,Colossal-AI及时推出了解决方案,提供了更方便易用的 Python+PyTorch+HuggingFace Grok-1——grok-1-pytorch,目前模型已在HuggingFace、ModelScope上开源。目前,魔搭SWIFT模型训练框架已经率先支持对grok-1-pytorch 在8卡环境下的微调,训练脚本已完全开源。




环境准备

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e .[llm]



微调


实验环境

  • GPU:8*A100 80G
  • 镜像:ModelScope官方镜像1.13.1版本
  • peft:0.10.0


数据集准备

Grok是base模型,因此我们使用了问题生成数据集DuReader作为训练集。该数据集约15000条,max-length设置为512,训练数据约10000条(平均长度305±92 tokens)。


模型准备

Grok模型我们使用了ColossalAI提供的版本,其中我们额外准备了符合transformers标准的tokenizer


模型链接:


训练

由于Grok模型过大,device_map和deepspeed zero3非offload均无法运行训练,因此本次实验我们使用了LoRA+deepspeed zero3 offload模式运行训练。训练完整脚本如下:

# cd examples/pytorch/llm first
nproc_per_node=8

PYTHONPATH=../../.. \
torchrun \
    --nproc_per_node=$nproc_per_node \
    --master_port 29500 \
    llm_sft.py \
    --model_type grok-1 \
    --sft_type lora \
    --tuner_backend swift \
    --dtype bf16 \
    --output_dir output \
    --ddp_backend nccl \
    --dataset dureader-robust-zh \
    --train_dataset_sample -1 \
    --num_train_epochs 1 \
    --max_length 512 \
    --check_dataset_strategy warning \
    --lora_rank 8 \
    --lora_alpha 32 \
    --lora_dropout_p 0.05 \
    --lora_dtype bf16 \
    --lora_target_modules DEFAULT \
    --gradient_checkpointing true \
    --batch_size 2 \
    --weight_decay 0.1 \
    --learning_rate 1e-4 \
    --gradient_accumulation_steps $(expr 16 / $nproc_per_node) \
    --max_grad_norm 0.5 \
    --warmup_ratio 0.03 \
    --eval_steps 100 \
    --save_steps 100 \
    --save_total_limit 2 \
    --logging_steps 10 \
    --deepspeed_config_path scripts/grok-1/lora_ddp_ds/zero3.json \
    --save_only_model true \


改脚本需要一个zero3.json文件,完整的训练文件可以在这里找到。

下面是训练过程的一些benchmark:

指标

显存占用

8*21G

训练速度

45s/it

总iter数

340(10000(dataset_length)/16(gradient_accumulation)/2(batch_size))

企业微信截图_1712801643313.png


由于显存占用不到24G,理论上可以在RTX3090/A10环境中运行训练。

企业微信截图_17128016295445.png

企业微信截图_17128016216251.png


训练时长约4小时。



推理


SWIFT框架目前并不支持deepspeed推理,因此我们仍然使用transformers的device_map进行推理支持。但由于模型过大,因此部分layers会被offload到CPU上,并影响LoRA加载使推理出错,因此我们针对peft的实现进行了一定patch(原Linear在meta设备上时不迁移LoRA,并在运行时动态迁移weights)。


推理脚本如下:

# cd examples/pytorch/llm first
PYTHONPATH=../../.. \
python llm_infer.py \
    --ckpt_dir output/grok-1/vx-xxx-xxx/checkpoint-xxx \
    --dtype bf16 \
    --load_dataset_config true \
    --max_new_tokens 64 \
    --do_sample true \
    --dtype bf16 \
    --eval_human false \
    --merge_lora false \


推理结果:

[PROMPT]Task: Question Generation
Context: 我个人感觉是吕颂贤版,剧情和原著差别不大,虽然TVB演员颜值和风光没有大陆的好。但是香港特区人口和地域的限制,只能注重在演员的演技方面发挥很出色,楼主看过大陆排《笑傲江湖》吧!在台词上表现的很生硬没有香港的注重神色配台词,比如杜燕歌把吕颂贤表情和性格几乎和原著差别不大。武打几乎沿用徐克和程小东动作的风格很注重实际技巧,没有大陆版的在武打场面依靠电脑特效表现的太夸张了。李亚鹏版的武打动作和导演还是香港的元彬,大陆毕竟还是在武侠剧起步的比较晚,主要是还是靠明星大腕压阵而香港却是恰恰相反。
Answer: 吕颂贤版
Question:[OUTPUT]笑傲江湖哪个版本好看</s>

[LABELS]笑傲江湖哪个版本好看
--------------------------------------------------
[PROMPT]Task: Question Generation
Context: 这位朋友你好,女性出现妊娠反应一般是从6-12周左右,也就是女性怀孕1个多月就会开始出现反应,第3个月的时候,妊辰反应基本结束。而大部分女性怀孕初期都会出现恶心、呕吐的感觉,这些症状都是因人而异的,除非恶心、呕吐的非常厉害,才需要就医,否则这些都是刚怀孕的的正常症状。1-3个月的时候可以观察一下自己的皮肤,一般女性怀孕初期可能会产生皮肤色素沉淀或是腹壁产生妊娠纹,特别是在怀孕的后期更加明显。还有很多女性怀孕初期会出现疲倦、嗜睡的情况。怀孕三个月的时候,膀胱会受到日益胀大的子宫的压迫,容量会变小,所以怀孕期间也会有尿频的现象出现。月经停止也是刚怀孕最容易出现的症状,只要是平时月经正常的女性,在性行为后超过正常经期两周,就有可能是怀孕了。如果你想判断自己是否怀孕,可以看看自己有没有这些反应。当然这也只是多数人的怀孕表现,也有部分女性怀孕表现并不完全是这样,如果你无法确定自己是否怀孕,最好去医院检查一下。
Answer: 6-12周
Question:[OUTPUT]怀孕几个月开始反应</s>

[LABELS]怀孕多久会有反应
--------------------------------------------------



点击直达开源地址:

https://github.com/modelscope/swift/blob/main/docs/source/LLM/Grok%E8%AE%AD%E7%BB%83%E5%92%8C%E6%8E%A8%E7%90%86.md


相关文章
|
5天前
|
Shell 开发工具 git
DeepSeekV2-lite 昇腾8卡训练实验指导
昇腾8卡运行deepseek-v2训练
23 1
|
8天前
|
人工智能 算法 数据格式
DeepSeek 开源周第二弹!DeepEP:专为 MoE 训练和推理设计的并行通信库
DeepEP 是 DeepSeek 开源的首个专为混合专家模型(MoE)训练和推理设计的通信库,支持高吞吐量、低延迟通信,优化 NVLink 和 RDMA 网络性能。
69 3
|
2月前
|
人工智能 语音技术 iOS开发
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
MiniCPM-o 2.6 是面壁智能开源的多模态大模型,支持视觉、语音和多模态直播,性能媲美GPT-4o,能够在端侧设备上高效运行。
367 10
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
|
2月前
|
数据采集 传感器 人工智能
AgiBot World:智元机器人开源百万真机数据集,数据集涵盖了日常生活所需的绝大多数动作
AgiBot World 是智元机器人开源的百万真机数据集,旨在推动具身智能的发展,覆盖家居、餐饮、工业等五大核心场景。
169 9
AgiBot World:智元机器人开源百万真机数据集,数据集涵盖了日常生活所需的绝大多数动作
|
10月前
|
物联网 测试技术 API
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
|
5月前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
253 1
|
5月前
|
Shell Docker Python
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
157 2
|
6月前
|
数据可视化 Swift
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
旗舰端侧模型面壁「小钢炮」系列进化为全新 MiniCPM 3.0 基座模型,再次以小博大,以 4B 参数,带来超越 GPT-3.5 的性能。并且,量化后仅 2GB 内存,端侧友好。
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
ACL 2024:纯LLM实现符号逻辑推理能力,SymbCoT框架横空出世
【6月更文挑战第13天】在ACL 2024会议上,SymbCoT框架引起关注,它利用纯LLM实现符号逻辑推理。该框架结合符号表达式、逻辑规则与Chain-of-Thought,增强LLM处理逻辑推理任务的能力。通过Translator、Planner、Solver和Verifier四个模块,SymbCoT在多个逻辑推理数据集上表现出色,优于传统方法,提升了推理准确性和可解释性。尽管存在挑战,SymbCoT为AI在逻辑推理领域的应用开辟了新途径。[[1](https://arxiv.org/pdf/2405.18357.pdf)]
336 1
|
10月前
|
存储 机器学习/深度学习 人工智能
社区供稿 | Yuan2.0千亿大模型在通用服务器上的高效推理实现:以NF8260G7服务器为例
浪潮信息联合Intel在IPF大会上发布了可运行千亿参数大模型的AI通用服务器,首次实现了单机通用服务器,即可运行千亿参数大模型。并在发布现场演示了基于NF8260G7服务器进行yuan2.0-102B模型在代码编写、逻辑推理等高难度问题上的实时推理效果,引起了业界广泛的关注。本文将详细解读yuan2.0-102B模型在NF8260G7服务器上进行高效实时推理的原理和技术路径。

热门文章

最新文章