写点什么

PaddleNLP 上新!浪潮信息源 2.0 全面接入,大模型生态加速进化!

作者:百度Geek说
  • 2024-10-24
    上海
  • 本文字数:2830 字

    阅读完需:约 9 分钟

PaddleNLP上新!浪潮信息源2.0全面接入,大模型生态加速进化!

近日,源 2.0 开源大模型与百度 PaddleNLP 完成全面适配。用户通过 PaddleNLP,可快速调用源 2.0 预训练大模型,使用源 2.0 在语义、数学、推理、代码、知识等方面的推理能力,也可以使用特定领域的数据集对源 2.0 进行微调,训练出适合自身业务需求的大模型。


大语言模型的快速发展对训练和推理技术带来了更高的要求,企业在大模型开发过程往往面临多种难题:如何实现高效训练和推理,如何降低算力资源消耗,如何适配多种硬件……


PaddleNLP 是百度基于飞桨框架打造的大语言模型套件,聚合业界优质预训练模型并提供开箱即用的开发体验,覆盖 NLP 多场景的模型库,搭配产业实践范例,提供极致的训练与推理性能,可满足灵活定制的开发需求。


源 2.0 系列基础大模型是首个全面开源的千亿参数模型,包括 1026 亿、518 亿、21 亿三种参数规模的模型,在对话问答、编程、逻辑推理等方面展示出了领先的能力。


此次适配标志源 2.0 大模型迁移到飞桨生态中,丰富了 PaddleNLP 的大模型库,方便用户在 PaddleNLP 内快速使用源 2.0 大模型的能力,并能使用特定领域的数据集做微调,利用相对较少的资源就能训练出更适合实际应用场景的大模型。源 2.0 基于 PaddleNLP 内置的预训练-微调-推理全流程,支持大模型数据并行、数据分组切片并行和模型并行,提供高性能分布式训练与推理技术,同时无需修改即可适配多种硬件,从而给用户带来开箱即用的开发体验,实现高效训练和推理。


在微调阶段,利用 PaddleNLP 中 Zero Padding 零填充数据流优化技术,通过分组贪心的数据填充策略,可最大程度消除无效填充的比例。通过上述优化,相比 LLaMA-Factory,PaddleNLP 在 SFT(Supervised Fine-Tuning,监督微调)环节性能提升,可以更快训练出适合客户应用场景的专属源 2.0 大模型。


目前,相关代码已提交至 PaddleNLP 开源项目,项目地址:


https://github.com/PaddlePaddle/PaddleNLP/tree/develop/paddlenlp/transformers/yuan


01 基于 PaddleNLP 实现源 2.0 大模型的步骤


Step 1 环境构建,安装飞桨框架的软硬件环境


Step 2 拉取源 2.0 权重


Step 3 测试


具体步骤请参考:


https://github.com/PaddlePaddle/PaddleNLP/tree/develop/llm/config/yuan/README.md


02 使用 PaddleNLP 与源 2.0 的交互示例


用户在 PaddleNLP 平台上可以快速使用源 2.0 的推理能力,特别是使用源 2.0 进行张量并行推理时。在 Torch 平台上,源 2.0 使用 transformers 直接进行推理,是默认使用流水线并行推理的,计算流只有一条,因此推理性能相较于张量并行较慢。如果想使用张量并行,需要用户自己编写代码按照并行数量提前对权重进行转换,而这又需要用户对模型和框架比较熟悉。但在 PaddleNLP 平台上,用户无需提前处理权重即可一键启动张量并行推理,上手门槛低。


以下是使用 PaddleNLP 与源 2.0 的交互示例。


2.1 代码生成


问题:使用 java 实现冒泡排序算法


回答:冒泡排序是一种简单但效率较低的排序算法,它通过比较相邻的两 个元素,并交换它们的位置,从而逐步将最大的元素移动到列表的末尾。


下面是使用 java 实现冒泡排序算法的代码:


public static void bubbleSort( int[]arr){int n=arr.length;for(int i=0;i<n-1;i++){for(int j=0;j<n-i-1;j++){  if (arr[j]>arr[j+1]){    int temp=arr[j];    arr[j]=arr[j+1];    arr[j+1]=temp;  }  }}}
复制代码


在这个代码中,int[]arr 是输入的整数数组,n 是数组的长度。函数 bubbleSort 接受一个整数数组作为参数,并返回排序后的数组。


使用上述代码,你可以调用 bubbleSort 函数对数组[5,3,8, 2,1,6,4]进行排序。排序后的结果为[1,2,3,4,5,6,8]。


2.2 文章生成


问题:写一篇题为 AI 带给了人类什么的文章。


回答:人工智能(AI)是一种技术,它可以让计算机像人类一样思考和行动。AI 技术已经广泛应用于各个领域,包括医疗、金融、交通、教育、娱乐 等等。AI 技术可以帮助我们解决许多问题,例如自动驾驶、语音识别、图像识别、自然语言处理等等。AI 技术还可以帮助我们提高工作效率,例如自动化生产线、智能客服等等。AI 技术还可以帮助我们更好地了解世界,例如通过 AI 技术可以更好地预测天气、分析市场趋势等等。总之,AI 技术已经成为了我们生活中不可或缺的一部分。


2.3 翻译


问题:将下面的文字翻译成中文:But with the passage of time, Hemingway has reached middle age,and his energy and creativity have also declined. In Hemingway's inner world, he was very upset, but he never lost hope and confidence.


回答:然而随着时间的推移,海明威已经步入中年,他的精力和创造力也不断下降,但他的内心却非常不安,但他从未失去希望和信心。


2.4 对话


问题:目前最先进的机器学习算法有哪些?


回答:当前最先进的机器学习算法包括以下几种:


  1. 卷积神经网络(Convolutional Neural Networks,CNN):CNN 是近年来在图像处理领域中非常成功的一种算法, 可以用于图像分类、目标检测、图像分割等任务。

  2. 循环神经网络(Recurrent Neural Networks,RNN):RNN 常常用于序列数据处理,例如自然语言处理、语音识别、机器翻译等任务。其中,长短时记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)是两种常用的 RNN 变体。

  3. 自编码器(AutoEncoder,AE): AE 是无监督学习中一种重要的算法,目标是学习一种压缩表示形式,能够把输入压缩到较 小的范围。目前应用于信号处理、图像压缩、数据压缩等领域。

  4. 对抗生成网络(Generative Adversarial Networks,GAN):GAN 是由两个神经网络组成的对抗模型,一个生成器网络用于生成新的数据,另一个判别器网络用于判别生成的数据是否真实,引导生成器 学习生成新的数据。GAN 广泛应用于图像生成、视频生成等场景中。

  5. 迁移学习(Transfer Learning):将过去在训练集上训练而得到的知识应用到新任务中,可以加速模型的 训练和提高效果。


总之,当前最先进的机器学习算法包括卷积神经网络(CNN)、循环神经网络(RNN)、自编码器(AE)、对抗生成网络(GAN)等。在不同的应用场景中,需要根据任务特点选择适合的算法,并进行实验和评估来验证其有效性。


03 使用 PaddleNLP 对源 2.0 进行训练


如果需要基于源 2.0 从头进行训练,可以参考预训练部分;如果需要基于源 2.0 大模型,对特定的功能进行“优化”,可以参考微调部分,使用特定领域的数据集做微调,利用相对较少的资源就能训练出更适合实际应用场景的大模型。


3.1 预训练


以源 2.0-51B 模型为例,输出如下:


Loss 曲线如下,可收敛。用户可以基于源 2.0 的模型结构,使用自己的数据集从头进行预训练,生成专属基础大模型。



3.2 微调


以源 2.0-51B 模型进行 Lora 微调为例,输出如下:



Loss 曲线如下,可收敛。用户可使用特定数据集对源 2.0 进行微调,训练出更适合自身业务需求的大模型。



————END————


推荐阅读


百度利用 DATAPILOT 及 NVIDIA RAPIDS Accelerator 实现数据分析变革


ClickHouse在百度MEG数据中台的落地和优化


用增结算数仓化改造:在/离线调度系统的构建与应用


百度视觉搜索架构演进实践


智算基石全栈加速,百度百舸 4.0 的技术探索和创新

用户头像

百度Geek说

关注

百度官方技术账号 2021-01-22 加入

关注我们,带你了解更多百度技术干货。

评论

发布
暂无评论
PaddleNLP上新!浪潮信息源2.0全面接入,大模型生态加速进化!_百度_百度Geek说_InfoQ写作社区