魔搭ModelScope社区 07月08日 14:15
文心4.5系列模型,正式开源!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

百度文心大模型4.5正式开源,魔搭社区快速接入,提供可用、好用、可落地的大模型解决方案。模型涵盖47B和3B参数的混合专家模型及0.3B稠密参数模型,采用创新的多模态异构模型结构,提升多模态理解能力。文心4.5系列模型使用飞桨框架,在大语言模型预训练中FLOPs利用率达47%,在多个基准测试中达到SOTA水平。模型权重按Apache 2.0协议开源,支持学术研究和产业应用。魔搭社区提供一站式模型服务,涵盖视觉、语音、自然语言处理等领域,是国内规模最大最活跃的模型开源社区。

🔍文心大模型4.5开源,包含47B和3B参数的混合专家模型及0.3B稠密参数模型,采用创新的多模态异构模型结构,提升多模态理解能力。

🚀基于飞桨框架,模型FLOPs利用率达47%,在指令遵循、世界知识记忆、视觉理解和多模态推理任务上表现突出。

🔗模型权重按Apache 2.0协议开源,支持学术研究和产业应用,魔搭社区提供一站式模型服务,涵盖视觉、语音、自然语言处理等领域。

💡魔搭社区是国内规模最大最活跃的模型开源社区,提供过亿小时GPU免费算力,吸引超1600万活跃用户。

🔧基于飞桨提供开源的产业级开发套件,广泛兼容多种芯片,降低后训练和部署门槛。


6月30日,百度文心大模型4.5正式开源,魔搭社区在开源首日快速接入文心大模型,提供真正可用、好用、可落地的大模型解决方案,现已面向广大企业、开发者下载体验!


模型链接:

https://modelscope.cn/collections/ERNIE-45-56f40e2777e348


代码链接:

https://github.com/PaddlePaddle/ERNIE



文心4.5系列开源模型共10款,涵盖了激活参数规模分别为47B和3B的混合专家(MoE)模型(最大的模型总参数量为424B),以及0.3B的稠密参数模型。


针对 MoE 架构,研究团队提出了一种创新性的多模态异构模型结构,通过跨模态参数共享机制实现模态间知识融合,同时为各单一模态保留专用参数空间。此架构非常适用于从大语言模型向多模态模型的持续预训练范式,在保持甚至提升文本任务性能的基础上,显著增强多模态理解能力。


文心4.5系列模型均使用飞桨深度学习框架进行高效训练、推理和部署。在大语言模型的预训练中,模型FLOPs利用率(MFU)达到47%。实验结果显示,该系列模型在多个文本和多模态基准测试中达到SOTA水平,在指令遵循、世界知识记忆、视觉理解和多模态推理任务上效果尤为突出。模型权重按照Apache 2.0协议开源,支持开展学术研究和产业应用。此外,基于飞桨提供开源的产业级开发套件,广泛兼容多种芯片,降低后训练和部署门槛。



    多模态混合专家模型预训练

    文心4.5 通过在文本和视觉两种模态上进行联合训练,更好地捕捉多模态信息中的细微差别,提升在文本生成、图像理解以及多模态推理等任务中的表现。为了让两种模态学习时互相提升,研究团队提出了一种多模态异构混合专家模型结构,结合了多维旋转位置编码,并且在损失函数计算时,增强了不同专家间的正交性,同时对不同模态间的词元进行平衡优化,达到多模态相互促进提升的目的。


    高效训练推理框架

    为了支持 文心4.5 模型的高效训练,研究团队提出了异构混合并行和多层级负载均衡策略。通过节点内专家并行、显存友好的流水线调度、FP8混合精度训练和细粒度重计算等多项技术,显著提升了预训练吞吐。推理方面,研究团队提出了多专家并行协同量化方法和卷积编码量化算法 ,实现了效果接近无损的4-bit 量化和2-bit 量化。此外,研究团队还实现了动态角色转换的预填充、解码分离部署技术,可以更充分地利用资源,提升文心4.5 MoE 模型的推理性能。基于飞桨框架,文心4.5 在多种硬件平台均表现出优异的推理性能。

    针对模态的后训练

    为了满足实际场景的不同要求,研究团队对预训练模型进行了针对模态的精调。其中,大语言模型针对通用语言理解和生成进行了优化,多模态大模型侧重于视觉语言理解,支持思考和非思考模式。每个模型采用了SFT、DPO或UPO(Unified Preference Optimization,统一偏好优化技术)的多阶段后训练。



魔搭社区是由阿里联合CCF开源发展委员会推出的模型开源社区,为开发者提供一站式的模型服务,包括模型的管理,下载,调优,训练,推理,部署,社区提供丰富的模型,数据集以及对应的版本管理能力。


魔搭社区目前有来自国内外著名的科技机构在魔搭上开源70000+模型,全面覆盖了视觉、语音、自然语言处理、多模态等领域,同时为开发者提供了过亿小时GPU免费算力,吸引了社区活跃用户超1600万,是国内规模最大最活跃的模型开源社区。



modelscope download PaddlePaddle/ERNIE-4.5-21B-A3B-PT --local_dir ./ERNIE-4.5-21B-A3B-PTmodelscope download PaddlePaddle/ERNIE-4.5-VL-28B-A3B-PT --local_dir ./ERNIE-4.5-VL-28B-A3B-PT

注:建议下载模型后,再使用transformers推理。

模型推理

使用transformers推理(ERNIE-4.5-21B-A3B-PT):

from modelscope import AutoModelForCausalLM, AutoTokenizermodel_name = "./ERNIE-4.5-21B-A3B-PT"tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)model = AutoModelForCausalLM.from_pretrained(model_name,device_map="auto", trust_remote_code=True)prompt = "Give me a short introduction to large language model."messages = [    {"role""user""content": prompt}]text = tokenizer.apply_chat_template(    messages,    tokenize=False,    add_generation_prompt=True)model_inputs = tokenizer([text], add_special_tokens=False, return_tensors="pt")generated_ids = model.generate(    model_inputs.input_ids,    max_new_tokens=1024)output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()generate_text = tokenizer.decode(output_ids, skip_special_tokens=True).strip("\n")print("generate_text:", generate_text)

使用transformers推理(ERNIE-4.5-VL-28B-A3B-PT)

import torchfrom modelscope import AutoProcessor, AutoTokenizer, AutoModelForCausalLMmodel_path = './ERNIE-4.5-VL-28B-A3B-PT'model = AutoModelForCausalLM.from_pretrained(    model_path,    device_map="auto",    torch_dtype=torch.bfloat16,    trust_remote_code=True)processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)processor.eval()model.add_image_preprocess(processor)messages = [    {        "role""user",        "content": [            {"type""text""text""Describe the image."},            {"type""image_url""image_url": {"url""https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example1.jpg"}},        ]    },]text = processor.apply_chat_template(    messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)image_inputs, video_inputs = processor.process_vision_info(messages)inputs = processor(    text=[text],    images=image_inputs,    videos=video_inputs,    padding=True,    return_tensors="pt",)device = next(model.parameters()).deviceinputs = inputs.to(device)generated_ids = model.generate(    inputs=inputs['input_ids'].to(device),    **inputs,    max_new_tokens=128    )output_text = processor.decode(generated_ids[0])print(output_text)

模型部署


https://github.com/CSWYF3634076/vllm/tree/ernie


部署代码:

vllm serve ./ERNIE-4.5-21B-A3B-PT --trust-remote-code



本文介绍使用ms-swift集成的megatron并行技术对ERNIE-4.5-21B-A3B-PT进行自我认知微调。ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架。


ms-swift开源地址:https://github.com/modelscope/ms-swift


在开始微调之前,请确保您的环境已准备妥当。

对megatron相关依赖的安装可以查看megatron-swift训练文档(可直接使用镜像):https://swift.readthedocs.io/zh-cn/latest/Instruction/Megatron-SWIFT%E8%AE%AD%E7%BB%83.html

git clone https://github.com/modelscope/ms-swift.gitcd ms-swiftpip install -e .

微调数据集准备格式如下(system字段可选),在训练脚本中指定`--dataset <dataset_path>`即可。

{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "浙江的省会在杭州。"}]}

    HF格式的权重转为Megatron格式,并测试转换精度:

4 * 20GiBCUDA_VISIBLE_DEVICES=0,1,2,3 \swift export \                    

2. 对ERNIE-4.5-21B-A3B-PT-mcore进行自我认知微调(全参数训练)。在4卡A800上所需显存资源为:4 * 51GiB,训练速度为16s/it。该脚本只是方便跑通测试,建议更换更好的通用数据集进行混合。

4 * 51GiB, 16s/itCUDA_VISIBLE_DEVICES=0,1,2,3 \megatron sft \                      'AI-ModelScope/alpaca-gpt4-data-en#500' \              'swift/self-cognition#500' \                                                                                                                    

训练显存占用:

3.将Megatron格式权重转为HF格式,并测试转换精度:

CUDA_VISIBLE_DEVICES=0,1,2,3 \swift export \    --mcore_model megatron_output/ERNIE-4.5-21B-A3B-PT/vx-xxx \    --to_hf true \    --torch_dtype bfloat16 \    --output_dir megatron_output/ERNIE-4.5-21B-A3B-PT/vx-xxx-hf \    --test_convert_precision true

4.训练完成后,使用以下命令进行推理:

CUDA_VISIBLE_DEVICES=0,1,2,3 \swift infer \                

5.推送模型到ModelScope:

swift export \    --adapters output/vx-xxx/checkpoint-xxx \    --push_to_hub true \    --hub_model_id '<your-model-id>' \    --hub_token '<your-sdk-token>'


点击阅读原文,即可跳转模型链接~




Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

文心大模型 飞桨框架 开源模型 魔搭社区 多模态AI
相关文章