近日,浪潮信息源2.0開源大模型與百度PaddleNLP完成全面適配。用戶通過PaddleNLP,可快速調(diào)用源2.0預(yù)訓(xùn)練大模型,使用源2.0在語義、數(shù)學(xué)、推理、代碼、知識等方面的推理能力,也可以使用特定領(lǐng)域的數(shù)據(jù)集對源2.0 進(jìn)行微調(diào),訓(xùn)練出適合自身業(yè)務(wù)需求的大模型。

大語言模型的快速發(fā)展對訓(xùn)練和推理技術(shù)帶來了更高的要求,企業(yè)在大模型開發(fā)過程往往面臨多種難題:如何實(shí)現(xiàn)高效訓(xùn)練和推理,如何降低算力資源消耗,如何適配多種硬件……

PaddleNLP是百度基于飛槳框架打造的大語言模型套件,聚合業(yè)界優(yōu)質(zhì)預(yù)訓(xùn)練模型并提供開箱即用的開發(fā)體驗(yàn),覆蓋NLP多場景的模型庫,搭配產(chǎn)業(yè)實(shí)踐范例,提供極致的訓(xùn)練與推理性能,可滿足靈活定制的開發(fā)需求。

源2.0系列基礎(chǔ)大模型是首個全面開源的千億參數(shù)模型,包括1026億、518億、21億三種參數(shù)規(guī)模的模型,在對話問答、編程、邏輯推理等方面展示出了領(lǐng)先的能力。

此次適配標(biāo)志源2.0大模型遷移到飛槳生態(tài)中,豐富了PaddleNLP的大模型庫,方便用戶在PaddleNLP內(nèi)快速使用源2.0大模型的能力,并能使用特定領(lǐng)域的數(shù)據(jù)集做微調(diào),利用相對較少的資源就能訓(xùn)練出更適合實(shí)際應(yīng)用場景的大模型。源2.0基于PaddleNLP內(nèi)置的預(yù)訓(xùn)練-微調(diào)-推理全流程,支持大模型數(shù)據(jù)并行、數(shù)據(jù)分組切片并行和模型并行,提供高性能分布式訓(xùn)練與推理技術(shù),同時無需修改即可適配多種硬件,從而給用戶帶來開箱即用的開發(fā)體驗(yàn),實(shí)現(xiàn)高效訓(xùn)練和推理。

在微調(diào)階段,利用PaddleNLP中Zero Padding零填充數(shù)據(jù)流優(yōu)化技術(shù),通過分組貪心的數(shù)據(jù)填充策略,可最大程度消除無效填充的比例。通過上述優(yōu)化,相比LLaMA-Factory,PaddleNLP在SFT(Supervised Fine-Tuning,監(jiān)督微調(diào))環(huán)節(jié)性能提升,可以更快訓(xùn)練出適合客戶應(yī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 測試

使用PaddleNLP與源2.0的交互示例

用戶在PaddleNLP平臺上可以快速使用源2.0的推理能力,特別是使用源2.0進(jìn)行張量并行推理時。在Torch平臺上,源2.0使用transformers直接進(jìn)行推理,是默認(rèn)使用流水線并行推理的,計(jì)算流只有一條,因此推理性能相較于張量并行較慢。如果想使用張量并行,需要用戶自己編寫代碼按照并行數(shù)量提前對權(quán)重進(jìn)行轉(zhuǎn)換,而這又需要用戶對模型和框架比較熟悉。但在PaddleNLP平臺上,用戶無需提前處理權(quán)重即可一鍵啟動張量并行推理,上手門檻低。

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

1.代碼生成

問題:使用java實(shí)現(xiàn)冒泡排序算法

回答:冒泡排序是一種簡單但效率較低的排序算法,它通過比較相鄰的兩個元素,并交換它們的位置,從而逐步將最大的元素移動到列表的末尾。

面是使用java實(shí)現(xiàn)冒泡排序算法的代碼:

在這個代碼中,int[]arr是輸入的整數(shù)數(shù)組,n是數(shù)組的長度。函數(shù)bubbleSort接受一個整數(shù)數(shù)組作為參數(shù),并返回排序后的數(shù)組。

使用上述代碼,你可以調(diào)用bubbleSort函數(shù)對數(shù)組[5,3,8, 2,1,6,4]進(jìn)行排序。排序后的結(jié)果為[1,2,3,4,5,6,8]。

2.文章生成

問題:寫一篇題為AI帶給了人類什么的文章。

回答:人工智能(AI)是一種技術(shù),它可以讓計(jì)算機(jī)像人類一樣思考和行動。AI技術(shù)已經(jīng)廣泛應(yīng)用于各個領(lǐng)域,包括醫(yī)療、金融、交通、教育、娛樂等等。AI技術(shù)可以幫助我們解決許多問題,例如自動駕駛、語音識別、圖像識別、自然語言處理等等。AI技術(shù)還可以幫助我們提高工作效率,例如自動化生產(chǎn)線、智能客服等等。AI技術(shù)還可以幫助我們更好地了解世界,例如通過AI技術(shù)可以更好地預(yù)測天氣、分析市場趨勢等等。總之,AI技術(shù)已經(jīng)成為了我們生活中不可或缺的一部分。

3.翻譯

問題:將下面的文字翻譯成中文:But with the passage of time, Hemingway has reached middle age,and his energy and creativity have also declined. In Hemingways inner world, he was very upset, but he never lost hope and confidence.

回答:然而隨著時間的推移,海明威已經(jīng)步入中年,他的精力和創(chuàng)造力也不斷下降,但他的內(nèi)心卻非常不安,但他從未失去希望和信心。

4.對話

問題:目前最先進(jìn)的機(jī)器學(xué)習(xí)算法有哪些?

回答:當(dāng)前最先進(jìn)的機(jī)器學(xué)習(xí)算法包括以下幾種:

1.       卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN):CNN是近年來在圖像處理領(lǐng)域中非常成功的一種算法, 可以用于圖像分類、目標(biāo)檢測、圖像分割等任務(wù)。

2.       循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN):RNN常常用于序列數(shù)據(jù)處理,例如自然語言處理、語音識別、機(jī)器翻譯等任務(wù)。其中,長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)和門控循環(huán)單元(Gated Recurrent Unit,GRU)是兩種常用的RNN變體。

3.       自編碼器(AutoEncoder,AE): AE是無監(jiān)督學(xué)習(xí)中一種重要的算法,目標(biāo)是學(xué)習(xí)一種壓縮表示形式,能夠把輸入壓縮到較小的范圍。目前應(yīng)用于信號處理、圖像壓縮、數(shù)據(jù)壓縮等領(lǐng)域。

4.       對抗生成網(wǎng)絡(luò)(Generative Adversarial Networks,GAN):GAN是由兩個神經(jīng)網(wǎng)絡(luò)組成的對抗模型,一個生成器網(wǎng)絡(luò)用于生成新的數(shù)據(jù),另一個判別器網(wǎng)絡(luò)用于判別生成的數(shù)據(jù)是否真實(shí),引導(dǎo)生成器學(xué)習(xí)生成新的數(shù)據(jù)。GAN廣泛應(yīng)用于圖像生成、視頻生成等場景中。

5.       遷移學(xué)習(xí)(Transfer Learning):將過去在訓(xùn)練集上訓(xùn)練而得到的知識應(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)、對抗生成網(wǎng)絡(luò)(GAN)等。在不同的應(yīng)用場景中,需要根據(jù)任務(wù)特點(diǎn)選擇適合的算法,并進(jìn)行實(shí)驗(yàn)和評估來驗(yàn)證其有效性。

使用PaddleNLP對源2.0進(jìn)行訓(xùn)練

如果需要基于源2.0從頭進(jìn)行訓(xùn)練,可以參考預(yù)訓(xùn)練部分;如果需要基于源2.0大模型,對特定的功能進(jìn)行"優(yōu)化",可以參考微調(diào)部分,使用特定領(lǐng)域的數(shù)據(jù)集做微調(diào),利用相對較少的資源就能訓(xùn)練出更適合實(shí)際應(yī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ù)集對源2.0進(jìn)行微調(diào),訓(xùn)練出更適合自身業(yè)務(wù)需求的大模型。