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

相关文章
|
25天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
323 0
|
2月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
60 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
78 1
|
7天前
|
存储 人工智能 测试技术
【AI智能体】SuperAGI-开源AI Agent 管理平台
【4月更文挑战第9天】智能体管理平台SuperAGI简介及实践
|
9天前
|
人工智能 决策智能 C++
【AI Agent教程】【MetaGPT】案例拆解:使用MetaGPT实现“狼人杀“游戏(1)- 整体框架解析
【AI Agent教程】【MetaGPT】案例拆解:使用MetaGPT实现“狼人杀“游戏(1)- 整体框架解析
102 1
|
9天前
|
存储 人工智能 NoSQL
【AI Agent教程】【MetaGPT】由易到难,深入源码:看MetaGPT的长短时记忆如何实现
【AI Agent教程】【MetaGPT】由易到难,深入源码:看MetaGPT的长短时记忆如何实现
12 0
|
9天前
|
人工智能 机器人 Linux
超级炫酷的AI绘图工具—MidJourney入门使用教程
超级炫酷的AI绘图工具—MidJourney入门使用教程
|
人工智能 安全 Anolis
|
13天前
|
人工智能 安全 测试技术
[译][AI Meta Llama-3] 最强开源大模型Llama 3发布!
Meta发布开源大模型Llama 3,这是最先进的开放大型语言模型,将在多个云服务平台上线,并获多家硬件厂商支持。Llama 3致力于负责任的开发,提供新的信任和安全工具,如Llama Guard 2、Code Shield和CyberSec Eval 2。未来将推出新功能、更长上下文和增强性能。Llama 3基于文本的模型已发布,目标是与最佳专有模型竞争,并计划扩展至多语言和多模态。预训练模型在性能上树立新标准,展示出在各种基准测试中的优势。用户现可在Meta AI体验Llama 3技术。
[译][AI Meta Llama-3] 最强开源大模型Llama 3发布!
|
24天前
|
人工智能 弹性计算 算法
华人开源最强「AI 程序员」炸场,让 GPT-4 自己修 Bug!
普林斯顿大学推出开源软件工程代理SWE-agent,利用GPT-4转化成能修复GitHub错误的AI程序员。在某些基准测试中,SWE-agent的表现与Devin相当,甚至在修复Bug速度上超越Devin,平均只需93秒。其特点是拥有开源接口,支持代码编辑和执行,提高了与代码库的交互效率。