“零一万物”Yi系列魔搭最佳实践教程来了!

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 11 月 6 日,李开复博士带队创办的AI2.0公司零一万物正式开源发布首款预训练大模型 Yi-34B,模型开放商用申请,已在阿里云魔搭社区ModelScope首发。魔搭第一时间推出了模型部署相关教程,供开发者参考并快速上手。

导读

11 月 6 日,李开复博士带队创办的AI2.0公司零一万物正式开源发布首款预训练大模型 Yi-34B,模型开放商用申请,已在阿里云魔搭社区ModelScope首发。魔搭第一时间推出了模型部署相关教程,供开发者参考并快速上手。

零一万物此次开源的Yi系列模型包含34B和6B两个版本。据 Hugging Face英文开源社区平台和C-Eval中文评测的最新榜单,Yi-34B 预训练模型取得了多项 SOTA 国际最佳性能指标认可,成为全球开源大模型“双料冠军”。

零一万物创始人及 CEO 李开复博士表示:“零一万物坚定进军全球第一梯队目标,从招的第一个人,写的第一行代码,设计的第一个模型开始,就一直抱着成为‘World's No.1’的初衷和决心。”

模型效果

C-Eval排行榜:公开访问的模型(2023年11月5日)

国际中/英文权威评测数据集(2023年11月5日)

以下是魔搭社区的最佳实践教程:

环境配置与安装

  1. python 3.8及以上版本
  2. pytorch 1.12及以上版本,推荐2.0及以上版本
  3. 建议使用CUDA 11.4及以上

使用步骤

本文主要演示的模型为Yi-6B和Yi-34B模型,在ModelScope的Notebook的环境(这里以PAI-DSW为例)的配置下运行(显存24G) :

服务器连接与环境准备

1、进入ModelScope首页:modelscope.cn,进入我的Notebook

2、选择GPU环境,进入PAI-DSW在线开发环境

3、新建Notebook

模型链接和下载

Yi系列模型现已在ModelScope社区开源,包括:

Yi-6B模型:

https://modelscope.cn/models/01ai/Yi-6B/summary

Yi-34B模型:

https://modelscope.cn/models/01ai/Yi-34B/summary

社区支持直接下载模型的repo:

from modelscope import snapshot_download
model_dir1 = snapshot_download("01ai/Yi-6B", revision = "master")
model_dir2 = snapshot_download("01ai/Yi-34B", revision = "master")

YI系列模型推理

Yi-6B推理代码:

from modelscope import AutoModelForCausalLM, AutoTokenizer,snapshot_download
import torch
model_dir =snapshot_download("01ai/Yi-6B")
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
inputs = tokenizer("There's a place where time stands still. A place of breath taking wonder, but also", return_tensors="pt")
outputs = model.generate(inputs.input_ids.cuda(), max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

资源消耗:

YI系列模型微调和微调后推理

微调代码开源地址:

https://github.com/modelscope/swift/tree/main/examples/pytorch/llm

clone swift仓库并安装SWIFT(魔搭官方提供的训练推理框架)

# 设置pip全局镜像和安装相关的python包
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]
# 下面的脚本需要在此目录下执行
cd examples/pytorch/llm
# 如果你想要使用deepspeed.
pip install deepspeed -U
# 如果你想要使用基于auto_gptq的qlora训练. (推荐, 效果优于bnb)
# 使用auto_gptq的模型: qwen-7b-chat-int4, qwen-14b-chat-int4, qwen-7b-chat-int8, qwen-14b-chat-int8
pip install auto_gptq optimum -U
# 如果你想要使用基于bnb的qlora训练.
pip install bitsandbytes -U

模型微调脚本

由于6B的模型较小,因此不选用量化作为训练手段以防精度下降。我们使用基模型bfloat16+LoRA进行训练,下面是训练入口shell脚本:

# Experimental environment: A10
# 15GB GPU memory
PYTHONPATH=../../.. \
CUDA_VISIBLE_DEVICES=0 \
python llm_sft.py \
    --model_id_or_path 01ai/Yi-6B \
    --model_revision master \
    --sft_type lora \
    --tuner_backend swift \
    --template_type default-generation \
    --dtype bf16 \
    --output_dir output \
    --dataset dureader-robust-zh \
    --train_dataset_sample -1 \
    --num_train_epochs 1 \
    --max_length 2048 \
    --check_dataset_strategy warning \
    --lora_rank 8 \
    --lora_alpha 32 \
    --lora_dropout_p 0.05 \
    --lora_target_modules ALL \
    --gradient_checkpointing true \
    --batch_size 1 \
    --weight_decay 0.01 \
    --learning_rate 1e-4 \
    --gradient_accumulation_steps 16 \
    --max_grad_norm 0.5 \
    --warmup_ratio 0.03 \
    --eval_steps 100 \
    --save_steps 100 \
    --save_total_limit 2 \
    --logging_steps 10 \

使用上述脚本也可以训练01ai/Yi-34B模型,如果显卡显存较低,可以增加如下参数:

--quantization_bit 4
--bnb_4bit_comp_dtype bf16

来支持量化训练。

训练过程也支持本地数据集,需要指定如下参数:

--custom_train_dataset_path /path/to/local/train/file
--custom_val_dataset_path /path/to/local/val/file

数据集格式请参考:

https://github.com/modelscope/swift/blob/main/examples/pytorch/llm/README_CN.md#%E6%8E%A8%E8%8D%90%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E7%9A%84%E5%BD%A2%E5%BC%8F

模型微调后的推理脚本,这里的ckpt_dir需要修改为训练生成的checkpoint文件夹:

# Experimental environment: A10
PYTHONPATH=../../.. \
CUDA_VISIBLE_DEVICES=0 \
python llm_infer.py \
    --ckpt_dir "output/yi-6b/vx_xxx/checkpoint-xxx" \
    --load_args_from_ckpt_dir true \
    --eval_human false \
    --max_length 256 \
    --max_new_tokens 256 \
    --temperature 0.9 \
    --top_k 20 \
    --top_p 0.9 \
    --repetition_penalty 1.05 \
    --do_sample true \
    --merge_lora_and_save false \

微调的可视化结果

训练损失:

评估损失

训练后生成样例

Context: 爬行垫根据中间材料的不同可以分为:XPE爬行垫、EPE爬行垫、EVA爬行垫、PVC爬行垫;其中XPE爬行垫、EPE爬行垫都属于PE材料加保鲜膜复合而成,都是无异味的环保材料,但是XPE爬行垫是品质较好的爬行垫,韩国进口爬行垫都是这种爬行垫,而EPE爬行垫是国内厂家为了减低成本,使用EPE(珍珠棉)作为原料生产的一款爬行垫,该材料弹性差,易碎,开孔发泡防水性弱。EVA爬行垫、PVC爬行垫是用EVA或PVC作为原材料与保鲜膜复合的而成的爬行垫,或者把图案转印在原材料上,这两款爬行垫通常有异味,如果是图案转印的爬行垫,油墨外露容易脱落。当时我儿子爬的时候,我们也买了垫子,但是始终有味。最后就没用了,铺的就的薄毯子让他爬。
Answer: XPE
Question: [OUTPUT]爬行垫什么材质好好<|endoftext|>
[LABELS]爬行垫什么材质的好
--------------------------------------------------------------------------------
[PROMPT]Task: Question Generation
Context: 真实情况是160-162。她平时谎报的168是因为不离脚穿高水台恨天高(15厘米) 图1她穿着高水台恨天高和刘亦菲一样高,(刘亦菲对外报身高172)范冰冰礼服下厚厚的高水台暴露了她的心机,对比一下两者的鞋子吧 图2 穿着高水台恨天高才和刘德华谢霆锋持平,如果她真的有168,那么加上鞋高,刘和谢都要有180?明显是不可能的。所以刘德华对外报的身高174减去10-15厘米才是范冰冰的真实身高 图3,范冰冰有一次脱鞋上场,这个最说明问题了,看看她的身体比例吧。还有目测一下她手上鞋子的鞋跟有多高多厚吧,至少超过10厘米。
Answer: 160-162
Question: [OUTPUT]范冰冰真实身高高<|endoftext|>
[LABELS]范冰冰多高真实身高
--------------------------------------------------------------------------------
[PROMPT]Task: Question Generation
Context: 防水作为目前高端手机的标配,特别是苹果也支持防水之后,国产大多数高端旗舰手机都已经支持防水。虽然我们真的不会故意把手机放入水中,但是有了防水之后,用户心里会多一重安全感。那么近日最为火热的小米6防水吗?小米6的防水级别又是多少呢? 小编查询了很多资料发现,小米6确实是防水的,但是为了保持低调,同时为了不被别人说防水等级不够,很多资料都没有标注小米是否防水。根据评测资料显示,小米6是支持IP68级的防水,是绝对能够满足日常生活中的防水需求的。
Answer: IP68级
Question: [OUTPUT]小米6 防水级别别<|endoftext|>
[LABELS]小米6防水等级

资源消耗:

1 * 22G

点击直达Yi系列模型卡片:https://modelscope.cn/models/01ai/Yi-6B/summary

相关文章
|
6月前
|
数据可视化 Swift 开发者
零一万物开源Yi系列“理科状元”Yi-9B,消费级显卡可跑,魔搭社区最佳实践
零一万物发布并开源了Yi系列中的“理科状元”——Yi-9B,可在魔搭体验
|
6月前
|
人工智能 自然语言处理 机器人
Jina AI 发布中英和英德双语 8K 向量模型,魔搭社区开源最佳实践!
在 Jina Embeddings 英语向量模型突破百万下载后,今天,Jina AI正式开源了两款双语向量模型:中英双语(Chinese-English)和英德双语(English-German)向量模型,这也是全球首次推出支持 8K 双语文本的开源向量模型。
|
11月前
|
数据可视化 PyTorch 算法框架/工具
零一万物Yi-34B-Chat 微调模型及量化版开源!魔搭社区最佳实践教程!
11月24日,零一万物基正式发布并开源微调模型 Yi-34B-Chat,可申请免费商用。同时,零一万物还为开发者提供了 4bit/8bit 量化版模型,Yi-34B-Chat 4bit 量化版模型可以直接在消费级显卡(如RTX3090)上使用。魔搭社区已支持下载、推理训练体验,并推出相关教程,欢迎大家来玩!
|
6月前
|
自然语言处理 物联网 Swift
零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!
近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Datawhale AI夏令营第四期魔搭-AIGC文生图方向Task1笔记
这段内容介绍了一个使用Stable Diffusion与LoRA技术创建定制化二次元图像生成模型的全流程。首先,通过安装必要的软件包如Data-Juicer和DiffSynth-Studio准备开发环境。接着,下载并处理二次元图像数据集,利用Data-Juicer进行数据清洗和筛选,确保图像质量和尺寸的一致性。随后,训练一个针对二次元风格优化的LoRA模型,并调整参数以控制模型复杂度。完成训练后,加载模型并通过精心设计的提示词(prompt)生成一系列高质量的二次元图像,展示模型对细节和艺术风格的理解与再现能力。整个过程展示了从数据准备到模型训练及结果生成的完整步骤,为定制化图像提供了方向。
|
2月前
|
人工智能 测试技术 Serverless
小而强大,零一万物编程小能手Yi-Coder系列模型开源!
9 月 5 日,零一万物开源了 Yi-Coder 系列模型,它作为 Yi 系列模型家族中的“编程小能手”,展现了卓越的代码生成能力。这是继今年 5 月 13 日开源 Yi-1.5 系列模型之后,零一万物在开源方向上的又一重要成果。
小而强大,零一万物编程小能手Yi-Coder系列模型开源!
|
3月前
|
人工智能
Datawhale X 魔搭 AI夏令营task 2笔记
Datawhale X 魔搭 AI夏令营task 2笔记
58 1
Datawhale X 魔搭 AI夏令营task 2笔记
|
3月前
|
数据采集 人工智能 物联网
Datawhale X 魔搭 AI夏令营task 3笔记
Datawhale X 魔搭 AI夏令营task 3笔记
80 2
|
3月前
|
人工智能
DataWhale夏令营第四期魔搭- AIGC方向task01笔记
DataWhale夏令营,AIGC方向task1笔记。从平台注册到程序调试,最终生成一组古风小故事图片,并对其进行总结分析。
199 0
DataWhale夏令营第四期魔搭- AIGC方向task01笔记
|
3月前
|
人工智能
DataWhale AI夏令营 第四期魔搭- 大模型应用全栈开发task01笔记
DataWhale AI夏令营 第四期魔搭- 大模型应用全栈开发task01笔记
72 0

热门文章

最新文章