北京2024年10月13日 /美通社/ -- 近日,浪潮信息源2.0開源大模型與百度PaddleNLP完成全面適配。用戶通過(guò)PaddleNLP,可快速調(diào)用源2.0預(yù)訓(xùn)練大模型,使用源2.0在語(yǔ)義、數(shù)學(xué)、推理、代碼、知識(shí)等方面的推理能力,也可以使用特定領(lǐng)域的數(shù)據(jù)集對(duì)源2.0 進(jìn)行微調(diào),訓(xùn)練出適合自身業(yè)務(wù)需求的大模型。
大語(yǔ)言模型的快速發(fā)展對(duì)訓(xùn)練和推理技術(shù)帶來(lái)了更高的要求,企業(yè)在大模型開發(fā)過(guò)程往往面臨多種難題:如何實(shí)現(xiàn)高效訓(xùn)練和推理,如何降低算力資源消耗,如何適配多種硬件……
PaddleNLP是百度基于飛槳框架打造的大語(yǔ)言模型套件,聚合業(yè)界優(yōu)質(zhì)預(yù)訓(xùn)練模型并提供開箱即用的開發(fā)體驗(yàn),覆蓋NLP多場(chǎng)景的模型庫(kù),搭配產(chǎn)業(yè)實(shí)踐范例,提供極致的訓(xùn)練與推理性能,可滿足靈活定制的開發(fā)需求。
源2.0系列基礎(chǔ)大模型是首個(gè)全面開源的千億參數(shù)模型,包括1026億、518億、21億三種參數(shù)規(guī)模的模型,在對(duì)話問(wèn)答、編程、邏輯推理等方面展示出了領(lǐng)先的能力。
此次適配標(biāo)志源2.0大模型遷移到飛槳生態(tài)中,豐富了PaddleNLP的大模型庫(kù),方便用戶在PaddleNLP內(nèi)快速使用源2.0大模型的能力,并能使用特定領(lǐng)域的數(shù)據(jù)集做微調(diào),利用相對(duì)較少的資源就能訓(xùn)練出更適合實(shí)際應(yīng)用場(chǎng)景的大模型。源2.0基于PaddleNLP內(nèi)置的預(yù)訓(xùn)練-微調(diào)-推理全流程,支持大模型數(shù)據(jù)并行、數(shù)據(jù)分組切片并行和模型并行,提供高性能分布式訓(xùn)練與推理技術(shù),同時(shí)無(wú)需修改即可適配多種硬件,從而給用戶帶來(lái)開箱即用的開發(fā)體驗(yàn),實(shí)現(xiàn)高效訓(xùn)練和推理。
在微調(diào)階段,利用PaddleNLP中Zero Padding零填充數(shù)據(jù)流優(yōu)化技術(shù),通過(guò)分組貪心的數(shù)據(jù)填充策略,可最大程度消除無(wú)效填充的比例。通過(guò)上述優(yōu)化,相比LLaMA-Factory,PaddleNLP在SFT(Supervised Fine-Tuning,監(jiān)督微調(diào))環(huán)節(jié)性能提升,可以更快訓(xùn)練出適合客戶應(yīng)用場(chǎng)景的專屬源2.0大模型。
基于PaddleNLP實(shí)現(xiàn)源2.0大模型的步驟
Step 1 環(huán)境構(gòu)建,安裝飛槳框架的軟硬件環(huán)境
Step 2 拉取源2.0權(quán)重
Step 3 測(cè)試
使用PaddleNLP與源2.0的交互示例
用戶在PaddleNLP平臺(tái)上可以快速使用源2.0的推理能力,特別是使用源2.0進(jìn)行張量并行推理時(shí)。在Torch平臺(tái)上,源2.0使用transformers直接進(jìn)行推理,是默認(rèn)使用流水線并行推理的,計(jì)算流只有一條,因此推理性能相較于張量并行較慢。如果想使用張量并行,需要用戶自己編寫代碼按照并行數(shù)量提前對(duì)權(quán)重進(jìn)行轉(zhuǎn)換,而這又需要用戶對(duì)模型和框架比較熟悉。但在PaddleNLP平臺(tái)上,用戶無(wú)需提前處理權(quán)重即可一鍵啟動(dòng)張量并行推理,上手門檻低。
以下是使用PaddleNLP與源2.0的交互示例。
1.代碼生成
問(wèn)題:使用java實(shí)現(xiàn)冒泡排序算法
回答:冒泡排序是一種簡(jiǎn)單但效率較低的排序算法,它通過(guò)比較相鄰的兩個(gè)元素,并交換它們的位置,從而逐步將最大的元素移動(dòng)到列表的末尾。
下面是使用java實(shí)現(xiàn)冒泡排序算法的代碼:
在這個(gè)代碼中,int[]arr是輸入的整數(shù)數(shù)組,n是數(shù)組的長(zhǎng)度。函數(shù)bubbleSort接受一個(gè)整數(shù)數(shù)組作為參數(shù),并返回排序后的數(shù)組。
使用上述代碼,你可以調(diào)用bubbleSort函數(shù)對(duì)數(shù)組[5,3,8, 2,1,6,4]進(jìn)行排序。排序后的結(jié)果為[1,2,3,4,5,6,8]。
2.文章生成
問(wèn)題:寫一篇題為AI帶給了人類什么的文章。
回答:人工智能(AI)是一種技術(shù),它可以讓計(jì)算機(jī)像人類一樣思考和行動(dòng)。AI技術(shù)已經(jīng)廣泛應(yīng)用于各個(gè)領(lǐng)域,包括醫(yī)療、金融、交通、教育、娛樂(lè)等等。AI技術(shù)可以幫助我們解決許多問(wèn)題,例如自動(dòng)駕駛、語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理等等。AI技術(shù)還可以幫助我們提高工作效率,例如自動(dòng)化生產(chǎn)線、智能客服等等。AI技術(shù)還可以幫助我們更好地了解世界,例如通過(guò)AI技術(shù)可以更好地預(yù)測(cè)天氣、分析市場(chǎng)趨勢(shì)等等??傊?,AI技術(shù)已經(jīng)成為了我們生活中不可或缺的一部分。
3.翻譯
問(wèn)題:將下面的文字翻譯成中文: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.
回答:然而隨著時(shí)間的推移,海明威已經(jīng)步入中年,他的精力和創(chuàng)造力也不斷下降,但他的內(nèi)心卻非常不安,但他從未失去希望和信心。
4.對(duì)話
問(wèn)題:目前最先進(jìn)的機(jī)器學(xué)習(xí)算法有哪些?
回答:當(dāng)前最先進(jìn)的機(jī)器學(xué)習(xí)算法包括以下幾種:
1. 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN):CNN是近年來(lái)在圖像處理領(lǐng)域中非常成功的一種算法, 可以用于圖像分類、目標(biāo)檢測(cè)、圖像分割等任務(wù)。
2. 循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN):RNN常常用于序列數(shù)據(jù)處理,例如自然語(yǔ)言處理、語(yǔ)音識(shí)別、機(jī)器翻譯等任務(wù)。其中,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)和門控循環(huán)單元(Gated Recurrent Unit,GRU)是兩種常用的RNN變體。
3. 自編碼器(AutoEncoder,AE): AE是無(wú)監(jiān)督學(xué)習(xí)中一種重要的算法,目標(biāo)是學(xué)習(xí)一種壓縮表示形式,能夠把輸入壓縮到較小的范圍。目前應(yīng)用于信號(hào)處理、圖像壓縮、數(shù)據(jù)壓縮等領(lǐng)域。
4. 對(duì)抗生成網(wǎng)絡(luò)(Generative Adversarial Networks,GAN):GAN是由兩個(gè)神經(jīng)網(wǎng)絡(luò)組成的對(duì)抗模型,一個(gè)生成器網(wǎng)絡(luò)用于生成新的數(shù)據(jù),另一個(gè)判別器網(wǎng)絡(luò)用于判別生成的數(shù)據(jù)是否真實(shí),引導(dǎo)生成器學(xué)習(xí)生成新的數(shù)據(jù)。GAN廣泛應(yīng)用于圖像生成、視頻生成等場(chǎng)景中。
5. 遷移學(xué)習(xí)(Transfer Learning):將過(guò)去在訓(xùn)練集上訓(xùn)練而得到的知識(shí)應(yīng)用到新任務(wù)中,可以加速模型的 訓(xùn)練和提高效果。
總之,當(dāng)前最先進(jìn)的機(jī)器學(xué)習(xí)算法包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、自編碼器(AE)、對(duì)抗生成網(wǎng)絡(luò)(GAN)等。在不同的應(yīng)用場(chǎng)景中,需要根據(jù)任務(wù)特點(diǎn)選擇適合的算法,并進(jìn)行實(shí)驗(yàn)和評(píng)估來(lái)驗(yàn)證其有效性。
使用PaddleNLP對(duì)源2.0進(jìn)行訓(xùn)練
如果需要基于源2.0從頭進(jìn)行訓(xùn)練,可以參考預(yù)訓(xùn)練部分;如果需要基于源2.0大模型,對(duì)特定的功能進(jìn)行"優(yōu)化",可以參考微調(diào)部分,使用特定領(lǐng)域的數(shù)據(jù)集做微調(diào),利用相對(duì)較少的資源就能訓(xùn)練出更適合實(shí)際應(yīng)用場(chǎng)景的大模型。
1.預(yù)訓(xùn)練
以源2.0-51B模型為例,輸出如下:
Loss曲線如下,可收斂。用戶可以基于源2.0的模型結(jié)構(gòu),使用自己的數(shù)據(jù)集從頭進(jìn)行預(yù)訓(xùn)練,生成專屬基礎(chǔ)大模型。
2.微調(diào)
以源2.0-51B模型進(jìn)行Lora微調(diào)為例,輸出如下:
Loss曲線如下,可收斂。用戶可使用特定數(shù)據(jù)集對(duì)源2.0進(jìn)行微調(diào),訓(xùn)練出更適合自身業(yè)務(wù)需求的大模型。