這篇文章是由 Fastweb 的 Marta Cavalleri 和 Giovanni Germani,以及 BIP xTech 的 Claudia Sacco 和 Andrea Policarpi 共同撰寫的。
人工智慧(AI)正在改變現代商業的面貌,電信業成為創新的重要領域之一。Fastweb 是義大利領先的電信運營商之一,早在 2019 年就認識到 AI 技術的巨大潛力,並開始在這個領域進行投資。Fastweb 希望建立一個基於義大利數據的大型語言模型(LLM),並開始了將這項強大的 AI 能力提供給第三方的旅程。
訓練一個 LLM 是一個需要大量計算資源和相當複雜的過程,因此 Fastweb 在 AI 旅程的第一步中,使用了 AWS 的生成 AI 和機器學習(ML)服務,例如 Amazon SageMaker HyperPod。
SageMaker HyperPod 可以提供和維護由數千個加速器(如 AWS Trainium 和 NVIDIA H200、H100 圖形處理單元(GPU))驅動的大規模計算集群,但它的靈活性使 Fastweb 能夠部署一個小型、靈活且按需的集群,以便有效利用資源和管理成本,這與項目的需求非常吻合。
在這篇文章中,我們將探討 Fastweb 如何利用尖端的 AI 和 ML 服務展開他們的 LLM 旅程,克服挑戰並開啟新的機會。
在 AWS 上微調 Mistral 7B
Fastweb 認識到開發適合義大利語言和文化的語言模型的重要性。為了達成這個目標,團隊建立了一個龐大的義大利語數據集,結合了公共來源和從出版商及媒體公司獲得的授權數據。利用這些數據,Fastweb 在第一次 LLM 訓練實驗中,成功微調了 Mistral 7B 模型,讓它能夠處理摘要、問答和創意寫作等任務,並在 LLM 的回應中運用對義大利文化的細緻理解,提供適當且具文化敏感性的輸出。
團隊選擇在 AWS 上進行微調。這一戰略決策受到幾個因素的驅動:
有效的數據準備 – 建立高品質的預訓練數據集是一項複雜的任務,涉及從各種來源(包括網絡來源和合作夥伴公司)收集和預處理文本數據。由於最終的綜合預訓練數據集仍在建設中,因此必須從一個能夠適應現有模型到義大利語的方式開始。
早期結果和見解 – 微調使團隊能夠在義大利語的模型訓練中取得早期成果,提供了有價值的見解和初步的義大利語模型。這使工程師能夠根據初步結果不斷改進方法。
計算效率 – 與完整模型的預訓練相比,微調需要的計算能力和時間顯著較少。這種方法簡化了開發過程,並使得在 AWS 上能在較短的時間內進行更多實驗。
為了促進這個過程,團隊創建了一個全面的數據集,涵蓋了各種任務,通過翻譯現有的英語數據集和生成合成元素來構建。這個數據集存儲在 Amazon Simple Storage Service(Amazon S3)桶中,作為集中式數據庫。在訓練過程中,我們的 SageMaker HyperPod 集群連接到這個 S3 桶,使得可以根據需要輕鬆檢索數據集元素。
Amazon S3 和 SageMaker HyperPod 集群的整合展示了 AWS 生態系統的強大,這裡的各種服務無縫協作以支持複雜的工作流程。
用翻譯和合成數據生成克服數據稀缺
在為義大利語微調 Mistral 7B LLM 的自定義版本時,Fastweb 面臨了一個主要障礙:高品質的義大利語數據集極為有限或無法獲得。為了解決這個數據稀缺的挑戰,Fastweb 必須從零開始建立一個全面的訓練數據集,以便有效地進行模型微調。
在建立戰略協議以從出版商和媒體公司獲取授權數據的同時,Fastweb 採用了兩種主要策略來創建多樣化且全面的數據集:將開放源代碼的英語訓練數據翻譯成義大利語,以及使用 AI 模型生成合成的義大利語數據。
為了利用英語中豐富的信息,Fastweb 將開放源代碼的英語訓練數據集翻譯成義大利語。這種方法使得有價值的數據能夠被用於義大利語的訓練。這個過程中使用了 LLM 和開放源代碼的翻譯工具。
開放源代碼的 Argos Translate 工具被用來批量翻譯內容較簡單的數據集。儘管 LLM 提供了更高的翻譯質量,但 Argos Translate 是免費的,速度非常快,適合高效處理大量簡單數據。對於準確性至關重要的複雜數據集,則使用 LLM 來提供高品質的翻譯。
為了進一步豐富數據集,Fastweb 使用 LLM 生成合成的義大利語數據。這涉及創建涵蓋與義大利語相關的各種主題和任務的文本樣本。高品質的義大利語網絡文章、書籍和其他文本作為訓練 LLM 的基礎,以生成聽起來真實的合成內容,捕捉語言的細微差別。
生成的子數據集涵蓋了多樣的主題,包括醫療信息、問答對話、對話、網絡文章、科學主題等。涵蓋的任務也非常多樣,包括問答、摘要、創意寫作等。
每個通過翻譯或合成數據創建的子集都經過仔細篩選,以保持質量和多樣性。進行了相似性檢查以去除重複數據;如果發現兩個元素過於相似,則會去掉其中一個。這一步對於保持變異性和防止重複或過於相似內容的偏見至關重要。
去重過程中,使用文本嵌入器對數據集元素進行嵌入,然後計算嵌入之間的餘弦相似度,以識別相似元素。Meta 的 FAISS 庫因其在相似性搜索和密集向量聚類中的高效性而被用作底層向量數據庫,能有效處理大規模數據集。
在篩選和去重後,剩餘的子集進行後處理並合併,形成最終的微調數據集,包含 300,000 個訓練元素。這個全面的數據集使 Fastweb 能夠有效地微調他們的 Mistral 7B 模型的自定義版本,在各種任務和主題上實現高性能和多樣性。
所有數據生成和處理步驟都在 SageMaker HyperPod 集群節點上並行運行,使用獨特的工作環境,突顯了集群在訓練模型之外的多種任務的靈活性。
以下圖表展示了創建最終數據集的兩個不同數據管道:上面的管道使用將現有英語數據集翻譯成義大利語,而下面的管道則使用自定義生成的合成數據。
訓練 LLM 的計算成本
訓練 LLM 的計算成本大約與參數的數量和訓練數據的量成正比。一般來說,對於每個正在訓練的模型參數,大約需要 24 字節的內存。這意味著要完全微調一個像 Mistral 7B 這樣的 70 億參數模型,至少需要 156 GB 的硬體內存,這還不包括加載訓練數據的額外開銷。
以下表格提供了額外的例子。
LLM 模型大小與訓練內存
參數數量
內存需求
5 億
12 GB
10 億
23 GB
20 億
45 GB
30 億
67 GB
50 億
112 GB
70 億
156 GB
100 億
224 GB
參數高效微調(PEFT)方法最小化可訓練參數的數量,而量化則減少每個參數的位數,通常對最終訓練結果的負面影響很小。
儘管這些節省內存的技術存在,但微調大型模型仍然需要大量的 GPU 內存和較長的訓練時間。這使得分佈式訓練變得至關重要,允許將工作負載分配到多個 GPU 上,從而有效處理這樣的大規模計算任務。
以下表格和圖形展示了 LLM 訓練每個階段的 GPU 內存分配。
解決方案概述
訓練 LLM 通常需要大量的計算資源,這可能超過單個 GPU 的能力。分佈式訓練是一種強大的技術,通過將工作負載分配到多個 GPU 和節點上來解決這一挑戰,實現並行處理並縮短訓練時間。SageMaker HyperPod 簡化了設置和運行分佈式訓練工作的過程,提供了專門為此目的設計的預配置環境和庫。
分佈式訓練有兩種主要技術:數據並行和模型並行。數據並行涉及將訓練數據分配到多個 GPU,而模型並行則將模型本身分割到不同的 GPU 上。
要利用分佈式訓練,需要一個互聯的 GPU 集群,通常分佈在多個物理節點上。SageMaker HyperPod 允許同時使用數據和模型並行技術,最大化可用的計算資源。此外,SageMaker HyperPod 通過自動故障檢測和恢復等功能提供了韌性,這對於長時間運行的訓練工作至關重要。SageMaker HyperPod 允許創建個性化的 Conda 環境,便於安裝分佈式訓練所需的庫和工具。
實現分佈式訓練的一個流行庫是 DeepSpeed,這是一個 Python 優化庫,通過啟用數據和模型並行化,使分佈式訓練變得內存高效且快速。選擇使用 DeepSpeed 是因為其擁有一個廣泛的、已開發的代碼庫,隨時可以用於訓練實驗。SageMaker HyperPod 的高靈活性和環境自定義能力使得能夠創建一個個性化的 Conda 環境,並安裝所有必要的庫,包括 DeepSpeed。
以下圖表展示了 DeepSpeed 提供的兩個關鍵並行化策略:數據並行和模型並行。數據並行涉及在多個設備上複製整個模型,每個設備處理一個不同的訓練數據批次。相比之下,模型並行則將單個模型的不同部分分配到多個設備上,使得能夠訓練超出單個設備內存容量的大型模型。
為了滿足訓練 LLM 的高計算需求,我們利用了 SageMaker HyperPod 集群的強大和靈活性,並使用 Slurm 進行協調。雖然 HyperPod 也支持與 Amazon EKS 的協調,但我們的研究團隊對 Slurm 有先前的專業知識。集群配置根據我們的具體訓練需求量身定制,提供最佳的資源利用和成本效益。
SageMaker HyperPod 集群架構包括一台控制機器,用於協調訓練工作的協調和資源分配。訓練任務由兩個計算節點運行,這些節點是 g5.12xlarge 實例,配備高性能 GPU。這些計算節點處理大部分計算工作負載,利用其 GPU 加速訓練過程。
安裝在節點上的 AWS 管理的高性能 Lustre 文件系統(Amazon FSx for Lustre)提供了高速數據訪問和傳輸速率,這對於高效的訓練操作至關重要。
SageMaker HyperPod 用於啟動大型集群,以預訓練大型語言模型(LLMs),擁有數千個 GPU,但其一個主要優勢是靈活性,實際上它還允許創建小型、靈活且按需的集群。SageMaker HyperPod 的多功能性使得能夠僅在需要時使用資源,避免不必要的成本。
對於 DeepSpeed 配置,我們遵循了標準推薦的設置,在集群的兩個 g5.12xlarge 節點之間啟用了數據和模型並行,總共使用了 8 個 GPU。
雖然有更先進的技術可用,例如在訓練過程中將一些計算卸載到 CPU,但我們的集群配置了足夠高的 GPU 邊際。擁有 192 GiB(206 GB)的可用 GPU 內存,即使考慮到在訓練過程中需要保持數據集批次在內存中的額外 GPU,我們也有足夠的資源來訓練一個 70 億參數的模型,而無需這些先進技術。以下圖形描述了我們訓練解決方案的基礎設施設置。
訓練結果和輸出示例
完成訓練過程後,Fastweb 的微調語言模型在義大利語任務上顯示出顯著的性能提升,與基礎模型相比,經過評估的內部基準數據集,微調模型在一系列任務上平均準確率提高了 20%。
基準任務集中於三個關鍵領域:問答、常識推理和下一個單詞預測。問答任務測試模型理解和提供義大利語查詢準確回答的能力。常識推理評估模型對常識知識的掌握及其根據現實情境進行邏輯推理的能力。下一個單詞預測評估模型對語言模式的理解及其預測在給定上下文中最可能出現的單詞的能力。
為了評估微調模型的性能,我們首先詢問它的能力。模型回答列舉了它的主要功能,強調了它處理 Fastweb 特定主題的能力。回應以正確的義大利語和非常自然的語法表達,如下例所示。
之後,我們要求模型生成五個有關 AI 主題的演示標題。
為了好玩,我們問了最著名的三明治是什麼。模型回答了一組典型的義大利成分,並補充說有許多不同的選擇。
最後,我們要求模型提供一個有用的鏈接,以了解最近的歐盟 AI 法案。模型提供了一個有效的鏈接,並附上了有用的描述。
結論
使用 SageMaker HyperPod,Fastweb 成功微調了 Mistral 7B 模型,作為他們生成 AI 旅程的第一步,顯著提高了其在義大利語任務上的性能。
展望未來,Fastweb 計劃在 Amazon Bedrock 上使用自定義模型導入功能來部署他們的下一代模型。這一戰略舉措將使 Fastweb 能夠快速構建和擴展新的生成 AI 解決方案,以滿足客戶的需求,利用 Amazon Bedrock 提供的廣泛功能。
通過利用 Amazon Bedrock,Fastweb 可以進一步增強其產品,推動客戶的數位轉型。這一舉措與 Fastweb 致力於在 AI 技術的前沿保持領先地位,並在各行各業促進創新的承諾相一致。
隨著他們的微調語言模型在 Amazon Bedrock 上運行,Fastweb 將能夠提供量身定制的尖端生成 AI 解決方案,滿足客戶的獨特需求。這將使企業能夠開啟新的機會,簡化流程,獲得有價值的見解,最終推動增長和在數位時代的競爭力。
Fastweb 決定在 Amazon Bedrock 中使用自定義模型導入功能,強調了該公司的前瞻性思維和為客戶提供最新、最先進的 AI 技術的承諾。這一與 AWS 的合作進一步鞏固了 Fastweb 作為數位轉型領導者的地位,並成為推動各行各業創新 AI 解決方案採用的力量。
要了解有關 SageMaker HyperPod 的更多信息,請參考 Amazon SageMaker HyperPod 和 Amazon SageMaker HyperPod 工作坊。
關於作者
Marta Cavalleri 是 Fastweb 人工智慧卓越中心(CoE)的經理,負責帶領數據科學家和工程師團隊實施企業 AI 解決方案。她專注於 AI 操作、數據治理和 AWS 上的雲架構。
Giovanni Germani 是 Fastweb 的架構與人工智慧 CoE 經理,利用他在企業架構和數位轉型方面的豐富經驗。擁有超過 12 年的管理諮詢經驗,Giovanni 專注於電信、媒體和保險行業的技術驅動項目。他在 IT 策略、網絡安全和人工智慧方面擁有深厚的專業知識,推動複雜的轉型計劃。
Claudia Sacco 是 BIP xTech 的 AWS 專業解決方案架構師,與 Fastweb 的 AI CoE 合作,專注於設計推動創新和運營卓越的先進雲和數據平台。她專注於提供可擴展、安全和未來準備的解決方案,與組織合作以釋放雲技術的全部潛力。除了專業技能外,Claudia 在戶外尋找靈感,通過攀岩和徒步旅行的冒險與家人一起接受挑戰。
Andrea Policarpi 是 BIP xTech 的數據科學家,與 Fastweb 的 AI CoE 合作。擁有計算機視覺和自然語言處理的堅實基礎,他目前正在探索生成 AI 的世界,利用其強大的工具為新興挑戰創造創新解決方案。在空閒時間,Andrea 是一位熱衷的讀者,喜歡彈鋼琴來放鬆。
Giuseppe Angelo Porcelli 是亞馬遜網絡服務的首席機器學習專家解決方案架構師。擁有多年軟體工程和機器學習背景,他與各種規模的客戶合作,了解他們的業務和技術需求,設計最佳利用 AWS 雲和亞馬遜機器學習堆棧的 AI 和 ML 解決方案。他參與了不同領域的項目,包括 MLOps、計算機視覺和自然語言處理,涉及廣泛的 AWS 服務。在空閒時間,Giuseppe 喜歡踢足球。
Adolfo Pica 在雲計算領域擁有強大的背景,擁有超過 20 年的經驗,設計、實施和優化複雜的 IT 系統和架構,並對快速發展的生成 AI 和基礎模型領域充滿興趣和實踐經驗。他在 AWS 雲服務、DevOps 實踐、安全性、數據分析和生成 AI 方面擁有專業知識。在空閒時間,Adolfo 喜歡跟隨他的兩個兒子在跆拳道和足球的運動冒險中。
Maurizio Pinto 是 AWS 的高級解決方案架構師,專注於電信的雲解決方案。擁有豐富的軟體架構和 AWS 服務經驗,他幫助組織導航其雲旅程,同時追求 AI 對技術和社會變革的影響的熱情。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!