面壁智能联合清华开源端侧语言大模型面壁MiniCPM,魔搭最佳实践来啦!

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 面壁智能正式发布了 2B 旗舰端侧大模型面壁 MiniCPM

导  读

大模型的一条发展路径是小尺寸的大语言模型,因为尺寸小,有可能以更小的显存运行更强的大模型,并可以和移动端做更好的结合。

今天下午,面壁智能正式发布了 2B 旗舰端侧大模型面壁 MiniCPM。

MiniCPM是一系列端侧语言大模型,主体语言模型MiniCPM-2B具有2.4B的非词嵌入参数量。在综合性榜单上与Mistral-7B相近(中文、数学、代码能力更优),整体性能超越Llama2-13B、MPT-30B、Falcon-40B等模型。在当前最接近用户体感的榜单MTBench上,MiniCPM-2B也超越了Llama2-70B-Chat、Vicuna-33B、Mistral-7B-Instruct-v0.1、Zephyr-7B-alpha等众多代表性开源大模型。

同时,面壁智能发布了多模态小模型的MiniCPM-V(OmniLMM-3B该模型基于MiniCPM-2B和SigLip-400M构建,通过感知器重采样器连接。多模态小模型带来了更大的想象空间,让我们看到了小型视觉 DIY 机器人项目上运行的实用性,PC端,移动端桌面GUI自动化操作的可行性。

开源地址(内含技术报告)如下:

MiniCPM GitHub:https://github.com/OpenBMB/MiniCPM

OmniLMM GitHub:https://github.com/OpenBMB/OmniLMM

模型链接和下载

MiniCPM系列模型现已在ModelScope魔搭社区开源:

MiniCPM-2B-dpo-fp16:

https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-fp16

MiniCPM-2B-dpo-bf16:

https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-bf16

MiniCPM-2B-dpo-fp32:

https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-fp32

MiniCPM-2B-sft-fp32:

https://modelscope.cn/models/OpenBMB/MiniCPM-2B-sft-fp32

MiniCPM-V:

https://modelscope.cn/models/OpenBMB/MiniCPM-V

OmniLMM-12B:

https://modelscope.cn/models/OpenBMB/OmniLMM-12B

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

from modelscope import snapshot_download
model_dir = snapshot_download("OpenBMB/MiniCPM-2B-dpo-bf16", revision = "master")

以下为大家带来魔搭社区推理、微调最佳实践教程。

环境配置与安装

本文使用的模型为 MiniCPM-2B-dpo-bf16 模型,在ModelScope的Notebook的环境(这里以PAI-DSW为例)的配置下运行(显存24G) 。

环境配置与安装

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :

点击模型右侧Notebook快速开发按钮,选择GPU环境

模型推理

模型推理

from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
path = 'OpenBMB/MiniCPM-2B-dpo-bf16'
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map='auto', trust_remote_code=True)
dialog = [{'role': 'user', 'content': '请问中国哪几个城市最适合旅游?'}]
input = tokenizer.apply_chat_template(dialog, tokenize=False, add_generation_prompt=False)
enc = tokenizer(input, return_tensors='pt').to('cuda')
output = model.generate(**enc, max_length=1024)
print(tokenizer.decode(output[0]))

资源消耗:

模型微调和微调后推理

我们使用SWIFT来对模型进行微调, SWIFT是魔搭社区官方提供的LLM&AIGC模型微调推理框架.

微调代码开源地址: https://github.com/modelscope/swift

我们使用数据集jd-sentiment-zh进行微调. 任务是: 对文本进行情感分类.

环境准备:

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

微调脚本: LoRA

# https://github.com/modelscope/swift/tree/main/examples/pytorch/llm/scripts/openbmb_minicpm_2b_chat
# Experimental environment: 2 * A10
# 2 * 12GB GPU memory
nproc_per_node=2
CUDA_VISIBLE_DEVICES=0,1 \
NPROC_PER_NODE=$nproc_per_node \
MASTER_PORT=29500 \
swift sft \
    --model_id_or_path OpenBMB/MiniCPM-2B-sft-fp32 \
    --model_revision master \
    --sft_type lora \
    --template_type AUTO \
    --dtype AUTO \
    --output_dir output \
    --ddp_backend nccl \
    --dataset jd-sentiment-zh \
    --train_dataset_sample -1 \
    --val_dataset_sample 1000 \
    --num_train_epochs 1 \
    --max_length 2048 \
    --check_dataset_strategy warning \
    --lora_target_modules ALL \
    --gradient_checkpointing true \
    --batch_size 1 \
    --weight_decay 0.01 \
    --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_only_model true \
    --save_total_limit 2 \
    --logging_steps 10 \
    --use_flash_attn false \

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

--custom_train_dataset_path xxx.jsonl \
--custom_val_dataset_path yyy.jsonl \

自定义数据集的格式可以参考:

https://github.com/modelscope/swift/blob/main/docs/source/LLM/自定义与拓展.md

微调后推理脚本:

(这里的ckpt_dir需要修改为训练生成的checkpoint文件夹)

# Experimental environment: A10
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --ckpt_dir "output/openbmb-minicpm-2b-sft-chat/vx_xxx/checkpoint-xxx" \
    --load_dataset_config true \
    --max_length 2048 \
    --use_flash_attn false \
    --max_new_tokens 2048 \
    --do_sample false \

训练loss图:


训练后生成样例:

[PROMPT]<s> <用户>Task: Sentiment Classification
Sentence: 口感相当的好 都想买第二次了
Category: negative, positive
Output:<AI>[OUTPUT]positive</s>
[LABELS]positive
--------------------------------------------------
[PROMPT]<s> <用户>Task: Sentiment Classification
Sentence: 质量不错,大小合适,应当是正品!但是我买的是黑灰,发来的却是纯黑,懒得换了,给个差评,希望以后改进!
Category: negative, positive
Output:<AI>[OUTPUT]negative</s>
[LABELS]negative
--------------------------------------------------
[PROMPT]<s> <用户>Task: Sentiment Classification
Sentence: 一般吧,冰糖太多了
Category: negative, positive
Output:<AI>[OUTPUT]negative</s>
[LABELS]negative
--------------------------------------------------

点击直达模型卡片modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-bf16/summary

相关文章
|
8月前
|
人工智能 自然语言处理 机器人
Jina AI 发布中英和英德双语 8K 向量模型,魔搭社区开源最佳实践!
在 Jina Embeddings 英语向量模型突破百万下载后,今天,Jina AI正式开源了两款双语向量模型:中英双语(Chinese-English)和英德双语(English-German)向量模型,这也是全球首次推出支持 8K 双语文本的开源向量模型。
|
1月前
|
人工智能 算法 测试技术
Insight-V:腾讯联合南洋理工、清华大学推出提升长链视觉推理能力的多模态模型
Insight-V是由南洋理工大学、腾讯公司和清华大学联合推出的多模态模型,旨在提升长链视觉推理能力。通过渐进式数据生成、多智能体系统和两阶段训练流程,Insight-V在多个视觉推理基准测试中表现出色,展现出强大的视觉推理能力。
97 42
Insight-V:腾讯联合南洋理工、清华大学推出提升长链视觉推理能力的多模态模型
|
1月前
|
数据采集 人工智能 编解码
书生·万象InternVL 2.5:上海 AI Lab 开源的多模态大语言模型,超越了目前许多商业模型
书生·万象InternVL 2.5是由上海AI实验室OpenGVLab团队推出的开源多模态大语言模型系列。该模型在多模态理解基准(MMMU)上表现优异,超越了许多商业模型,适用于图像和视频分析、视觉问答、文档理解和多语言处理等多个领域。
110 7
书生·万象InternVL 2.5:上海 AI Lab 开源的多模态大语言模型,超越了目前许多商业模型
|
1月前
|
存储 人工智能 缓存
Mooncake:月之暗面Kimi联合清华等机构推出的大模型推理架构
Mooncake是由月之暗面Kimi联合清华大学等机构共同开源的大模型推理架构。该架构以KVCache为中心,通过分布式设计和资源优化,显著提升了大模型推理的吞吐量和效率,同时降低了算力开销。Mooncake在长上下文场景中表现出色,支持多种应用场景,如自然语言处理、内容推荐系统和搜索引擎等。
161 6
Mooncake:月之暗面Kimi联合清华等机构推出的大模型推理架构
|
2月前
|
人工智能 数据处理 异构计算
LongRAG:智谱联合清华和中科院推出的双视角鲁棒检索框架
LongRAG是由智谱、清华大学和中国科学院联合推出的双视角鲁棒检索增强生成框架,专为长文本问答设计。该框架通过混合检索器、LLM增强信息提取器、CoT引导过滤器和LLM增强生成器等组件,有效解决了长文本问答中的全局上下文理解和事实细节识别难题。LongRAG在多个数据集上表现优异,提供了自动化微调数据构建管道,增强了系统的“指令跟随”能力和领域适应性。
78 1
LongRAG:智谱联合清华和中科院推出的双视角鲁棒检索框架
|
2月前
|
存储 人工智能 缓存
官宣开源 阿里云与清华大学共建AI大模型推理项目Mooncake
近日,清华大学和研究组织9#AISoft,联合以阿里云为代表的多家企业和研究机构,正式开源大模型资源池化项目 Mooncake。
|
2月前
|
存储 人工智能 缓存
官宣开源|阿里云与清华大学共建AI大模型推理项目Mooncake
2024年6月,国内优质大模型应用月之暗面Kimi与清华大学MADSys实验室(Machine Learning, AI, Big Data Systems Lab)联合发布了以 KVCache 为中心的大模型推理架构 Mooncake。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
元象XVERSE发布 中国最大MoE开源模型:XVERSE-MoE-A36B,加速AI应用低成本部署,将国产开源提升至国际领先水平。
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
|
5月前
|
人工智能 安全 搜索推荐
AI智能体研发之路-模型篇(三):中文大模型开、闭源之争
AI智能体研发之路-模型篇(三):中文大模型开、闭源之争
93 1
|
6月前
|
人工智能 自然语言处理 数据可视化
书生·浦语2.5开源,推理能力再创新标杆,怎么玩都在这里了!
上海人工智能实验室秉持“以持续的高质量开源赋能创新”理念,在为社区始终如一地提供高质量开源模型的同时,也将继续坚持免费商用授权。

热门文章

最新文章