北京2024年10月13日 /美通社/ -- 近日,浪潮信息源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實現源2.0大模型的步驟
Step 1 環境構建,安裝飛槳框架的軟硬件環境
Step 2 拉取源2.0權重
Step 3 測試
使用PaddleNLP與源2.0的交互示例
用戶在PaddleNLP平台上可以快速使用源2.0的推理能力,特別是使用源2.0進行張量並行推理時。在Torch平台上,源2.0使用transformers直接進行推理,是默認使用流水線並行推理的,計算流只有一條,因此推理性能相較於張量並行較慢。如果想使用張量並行,需要用戶自己編寫代碼按照並行數量提前對權重進行轉換,而這又需要用戶對模型和框架比較熟悉。但在PaddleNLP平台上,用戶無需提前處理權重即可一鍵啓動張量並行推理,上手門檻低。
以下是使用PaddleNLP與源2.0的交互示例。
1.代碼生成
問題:使用java實現冒泡排序算法
回答:冒泡排序是一種簡單但效率較低的排序算法,它通過比較相鄰的兩個元素,並交換它們的位置,從而逐步將最大的元素移動到列表的末尾。
下面是使用java實現冒泡排序算法的代碼:
在這個代碼中,int[]arr是輸入的整數數組,n是數組的長度。函數bubbleSort接受一個整數數組作爲參數,並返回排序後的數組。
使用上述代碼,你可以調用bubbleSort函數對數組[5,3,8, 2,1,6,4]進行排序。排序後的結果爲[1,2,3,4,5,6,8]。
2.文章生成
問題:寫一篇題爲AI帶給了人類什麼的文章。
回答:人工智能(AI)是一種技術,它可以讓計算機像人類一樣思考和行動。AI技術已經廣泛應用於各個領域,包括醫療、金融、交通、教育、娛樂等等。AI技術可以幫助我們解決許多問題,例如自動駕駛、語音識別、圖像識別、自然語言處理等等。AI技術還可以幫助我們提高工作效率,例如自動化生產線、智能客服等等。AI技術還可以幫助我們更好地了解世界,例如通過AI技術可以更好地預測天氣、分析市場趨勢等等。總之,AI技術已經成爲了我們生活中不可或缺的一部分。
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.
回答:然而隨着時間的推移,海明威已經步入中年,他的精力和創造力也不斷下降,但他的內心卻非常不安,但他從未失去希望和信心。
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)等。在不同的應用場景中,需要根據任務特點選擇適合的算法,並進行實驗和評估來驗證其有效性。
使用PaddleNLP對源2.0進行訓練
如果需要基於源2.0從頭進行訓練,可以參考預訓練部分;如果需要基於源2.0大模型,對特定的功能進行"優化",可以參考微調部分,使用特定領域的數據集做微調,利用相對較少的資源就能訓練出更適合實際應用場景的大模型。
1.預訓練
以源2.0-51B模型爲例,輸出如下:
Loss曲線如下,可收斂。用戶可以基於源2.0的模型結構,使用自己的數據集從頭進行預訓練,生成專屬基礎大模型。
2.微調
以源2.0-51B模型進行Lora微調爲例,輸出如下:
Loss曲線如下,可收斂。用戶可使用特定數據集對源2.0進行微調,訓練出更適合自身業務需求的大模型。