vivo AI全球研究院 BlueLM-7B系列开源!魔搭社区最佳实践教程来了!

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: BlueLM 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型,本次发布包含 7B 基础模型、7B 对话模型,4bits量化的7B对话模型,支持 32K 的长文本基础模型和对话模型。

导读

BlueLM 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型,本次发布包含 7B 基础模型、7B 对话模型,4bits量化的7B对话模型,支持 32K 的长文本基础模型和对话模型。

  • 更大量的优质数据:高质量语料库进行训练,规模达到了 2.6 万亿 的 token 数,该语料库包含中文、英文以及少量日韩数据。
  • 更优的效果:其中 BlueLM-7B-Chat 在 C-Eval 和 CMMLU 上均取得领先结果,对比同尺寸开源模型中具有较强的竞争力。
  • 长文本支持:BlueLM-7B-Base-32K 和 BlueLM-7B-Chat-32K 均支持 32K 长文本,在保持基础能力相当情况下,能够支持更长上下文理解。
  • 协议说明:BlueLM 系列欢迎开发者进行学术研究和商业应用。

BlueLM系列已全线在魔搭社区开源,以下是社区最新鲜的模型推理、微调最佳实践教程,欢迎开发者小伙伴们体验!

环境配置与安装

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

使用步骤

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

服务器连接与环境准备

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

1dbd4343-1e83-4ff1-9a17-5a3214bfc4b0[1].png

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

5e805984-9e3c-4925-b1af-a2c979de83a3[1].png

3、新建Notebook

1c4fe977-7b11-4e68-a6dc-fb6dcbe38a50[1].png

模型链接和下载

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

BlueLM-7B-Base模型:

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Base

BlueLM-7B-Chat模型:

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Chat

BlueLM-7B-Base-32K模型:

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Base-32K

BlueLM-7B-Chat-32K模型:

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Chat-32K

BlueLM-7B-Chat-4bits模型:

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Chat-4bits

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

from modelscope import snapshot_download
model_dir = snapshot_download("vivo-ai/BlueLM-7B-Chat", revision="v1.0.2")

模型推理

推理代码:

import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer, snapshot_download
model_dir = snapshot_download("vivo-ai/BlueLM-7B-Chat", revision="v1.0.2")
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="cuda:0", torch_dtype=torch.bfloat16, trust_remote_code=True)
model = model.eval()
inputs = tokenizer("[|Human|]:三国演义的作者是谁?[|AI|]:", return_tensors="pt")
inputs = inputs.to("cuda:0")
pred = model.generate(**inputs, max_new_tokens=64, repetition_penalty=1.1)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))

资源消耗:

cbab0903-3f63-4e53-bda6-a1a0805bff4b[1].png

BlueLM-7b-chat微调和微调后推理

微调代码开源地址:

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

以下微调脚本可以在ModelScope的免费算力DSW-PAI下运行.

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
# 如果你想要使用基于bnb的qlora训练.
pip install bitsandbytes -U

模型微调脚本 (lora)

# Experimental environment: A10, 3090
# 17GB GPU memory
PYTHONPATH=../../.. \
CUDA_VISIBLE_DEVICES=0 \
python llm_sft.py \
    --model_id_or_path vivo-ai/BlueLM-7B-Chat \
    --model_revision master \
    --sft_type lora \
    --tuner_backend swift \
    --template_type bluelm \
    --dtype bf16 \
    --output_dir output \
    --dataset blossom-math-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 AUTO \
    --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 \
    --push_to_hub false \
    --hub_model_id bluelm-7b-chat-lora \
    --hub_private_repo true \
    --hub_token 'your-sdk-token' \

模型微调后的推理脚本

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

微调的可视化结果

训练损失:

e5c18818-803d-41c9-ac0f-ff66c5c7804a[1].png

评估损失:

83e4af04-b71b-47ed-bb58-dbd8ac14df1d[1].png

训练后生成样例:

[PROMPT]<s> [|Human|]: 学校需新添28套课桌椅,共付款1820元,椅子每把17元,课桌每张多少元?[|AI|]:[OUTPUT]设课桌每张的价格为x元。
根据题意,椅子总价格为28 * 17 = 476元。
课桌的总价格为1820 - 476 = 1344元。
设课桌每张的价格为x元,则28 * x = 1344。
解方程得:x = 1344 / 28 = 48。
所以,课桌每张的价格为48元。
Answer:  48</s>
[LABELS]假设课桌的价格为x元每张。
根据题意可得方程:
28(17+x) = 1820
化简得:
476 + 28x = 1820
移项得:
28x = 1820 - 476
化简得:
28x = 1344
将等式两边同时除以28,得:
x = 1344 / 28
化简得:
x = 48
所以,每张课桌的价格为48元。
Answer: 48
--------------------------------------------------------------------------------
[PROMPT]<s> [|Human|]: 一种小家电,打0.8后的价格是160元,这种小家电原价多少元. [|AI|]:[OUTPUT]根据题意,打0.8后的价格为160元,我们可以表示为:
原价 × 0.8 = 160元
移项得:
原价 = 160元 / 0.8
计算可得:
原价 = 200元
因此,这种小家电的原价为200元。
Answer:  200</s>
[LABELS]设小家电的原价为x元。
根据题意,打0.8折扣后的价格为0.8x元。
根据题意,0.8x = 160。
解这个方程可以得到x = 200。
所以,这种小家电的原价为200元。
Answer: 200

资源消耗:

473dc37d-25e3-4b9e-bc68-2c4ee9f16000[1].png

点击阅读原文,直达BlueLM-7B开源链接

https://modelscope.cn/models/vivo-ai/BlueLM-7B-Base/summary

相关文章
|
29天前
|
人工智能 自然语言处理 机器人
Jina AI 发布中英和英德双语 8K 向量模型,魔搭社区开源最佳实践!
在 Jina Embeddings 英语向量模型突破百万下载后,今天,Jina AI正式开源了两款双语向量模型:中英双语(Chinese-English)和英德双语(English-German)向量模型,这也是全球首次推出支持 8K 双语文本的开源向量模型。
|
1月前
|
人工智能 缓存 关系型数据库
Mistral AI vs. Meta:顶级开源LLM比较
为了提高性能,大型语言模型(llm)通常会通过增加模型大小的方法来实现这个目标,但是模型大小的增加也增加了计算成本和推理延迟,增加了在实际场景中部署和使用llm的障碍。
51 2
|
26天前
|
人工智能 自然语言处理 开发工具
AI2 开源新 LLM,重新定义 open AI
艾伦人工智能研究所(Allen Institute for AI,简称 AI2)宣布推出一个名为 OLMo 7B 的新大语言模型,并开源发布了预训练数据和训练代码。OLMo 7B 被描述为 “一个真正开放的、最先进的大型语言模型”。
|
22小时前
|
人工智能
微软变“渣男”!据悉已投资法国开源 AI 独角兽Mistral,OpenAI成“备胎”了?
【2月更文挑战第8天】微软变“渣男”!据悉已投资法国开源 AI 独角兽Mistral,OpenAI成“备胎”了?
9 3
微软变“渣男”!据悉已投资法国开源 AI 独角兽Mistral,OpenAI成“备胎”了?
|
7天前
|
人工智能 数据可视化 测试技术
Meta AI开源CLIP-DINOiser | 如何将自监督DINO的Trick教给CLIP?这里就是答案!
Meta AI开源CLIP-DINOiser | 如何将自监督DINO的Trick教给CLIP?这里就是答案!
30 0
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
AI日报:苹果为使用Mac的人工智能开发者推出开源工具
AI日报:苹果为使用Mac的人工智能开发者推出开源工具
38 0
|
机器学习/深度学习 人工智能 自然语言处理
与世界同行 2017中国人工智能大会有感
与世界同行 2017中国人工智能大会有感
680 0
与世界同行 2017中国人工智能大会有感
|
人工智能 自动驾驶
2019年上半年收集到的中国人工智能发展详情文章
2019年上半年收集到的中国人工智能发展详情文章
|
人工智能 芯片
中国人工智能计划,我来说几句
中国人工智能计划,我来说几句
|
机器学习/深度学习 人工智能 自然语言处理

相关产品

  • 人工智能平台 PAI
  • 文字识别
  • 视觉智能开放平台