大語言模型概述(二):基于亞馬遜云科技的研究分析與實踐

上期介紹了大語言模型的定義和發展歷史,本期將分析基于亞馬遜云科技的大語言模型相關研究方向,以及大語言模型的訓練和構建優化。

大語言模型研究方向分析

Amazon Titan

2023 年 4 月,亞馬遜云科技宣布推出 Amazon Titan 大語言模型。根據其以下官方網站和博客的信息(如下圖所示):一些亞馬遜云科技的客戶已經預覽了亞馬遜全新的 Titan 基礎模型。目前發布的 Amazon Titan 大語言模型主要包括兩個基礎模型:

針對總結、文本生成、分類、開放式問答和信息提取等任務的生成式大語言模型;

文本嵌入(embeddings)大語言模型,能夠將文本輸入(字詞、短語甚至是大篇幅文章)翻譯成包含語義的數字表達(jiembeddings 嵌入編碼)。

雖然這種大語言模型不生成文本,但對個性化推薦和搜索等應用程序卻大有裨益,因為相對于匹配文字,對比編碼可以幫助模型反饋更相關、更符合情境的結果。實際上,Amazon.com 的產品搜索能力就是采用了類似的文本嵌入模型,能夠幫助客戶更好地查找所需的商品。為了持續推動使用負責任AI的最佳實踐,Titan 基礎模型可以識別和刪除客戶提交給定制大語言模型的數據中的有害內容,拒絕用戶輸入不當內容,過濾模型中包含不當內容的輸出結果,如仇恨言論、臟話和語言暴力。

Alpaca: LLM Training LLM

2023 年 3 月 Meta 的?LLaMA 大語言模型發布,該大語言模型對標 GPT-3。已經有許多項目建立在 LLaMA 大語言模型的基礎之上,其中一個著名的項目是 Stanford 的羊駝(Alpaca)大語言模型。Alpaca 基于 LLaMA 大語言模型,是有 70 億參數指令微調的語言 Transformer。Alpaca 沒有使用人工反饋的強化學習(RLHF),而是使用監督學習的方法,其使用了 52k 的指令-輸出對(instruction-output pairs)。

LLaMA 大語言模型:

研究人員沒有使用人類生成的指令-輸出對,而是通過查詢基于 GPT-3 的 text-davinci-003 模型來檢索數據。因此,Alpaca 本質上使用的是一種弱監督(weakly supervised)或以知識蒸餾(knowledge-distillation-flavored)為主的微調。

這里值得關注的是羊駝(Alpaca)大語言模型的訓練數據,是通過查詢 GPT-3 大語言模型獲得的。通俗地來說,這是“用 LLM 來訓練 LLM”,或者稱之為“用 AI 來訓練 AI”。我覺得大多數人可能低估了這件事情對人類社會影響的意義,我覺得其意義非凡。這意味著:AI 之間的相互學習成長這件事,已經開始了。很多年后,當我們回望 AI 世代的演進史,這件事也許會是一個重要的時間節點。

PaLM-E: Multimodality

在 2023 年 3 月,PaLM-E 大語言模型發布,展示了在大語言模型和多模態數據模式(multimodality)融合的一些最新進展。這是大語言模型的另一個重要趨勢:通過視覺、多模態和多任務訓練來擴展能力。

如以上論文中的圖示,PaLM-E 大語言模型是一種用于具體推理任務、視覺語言任務和語言任務的單一通用多模態大語言模型。PaLM-E 大語言模型對多模態句子進行操作,即一系列標記,其中來自任意模式(例如圖像、神經三維表示或狀態,綠色和藍色)的輸入與文本標記(橙色)一起插入,作為 LLM 的輸入,經過端到端訓練。

該論文展示了 PaLM-E 在三個不同的機器人領域做遷移學習的測試結果對比圖。使用 PaLM-E 、ViT 預訓練、機器人和視覺語言的混合數據組合,與僅對相應的域內數據進行訓練相比,有顯著的性能提升。

值得注意的是,PaLM-E 繼續被訓練為一個完全基于解碼器的 LLM,它根據給定的前綴或提示自回歸生成文本補全。那么,它們如何啟用狀態表征或者圖像的輸入呢?他們對網絡進行了預訓練以將其編碼為 embeddings。對于圖像,他們使用 4B 和 22B 參數的視覺 Transformer (ViT) 來生成嵌入向量;然后對這些嵌入向量進行線性投影,以匹配單詞令牌嵌入的嵌入維度。

在訓練過程中,為了形成多模態的句子,他們首先使用特殊標記 Tokens,例如:<img1>、<img2> 等,然后將其與嵌入的圖像交換(類似于通過嵌入層嵌入單詞標記的方式)。

一些第三方領域學者對其論文和展示的性能提升也做了分析,如上圖所示。使用 PaLM-E 、ViT 預訓練、機器人和視覺語言的混合數據組合進行聯合訓練,與針對單個任務的訓練模型相比,可以實現兩倍以上的性能提升。

大語言模型的訓練和構建優化

訓練大語言模型的挑戰

訓練大語言模型涉及許多挑戰。這些挑戰概括來說,大致來自于六個方面,如下圖示:

硬件(Hardware)

健康檢查(Health Checks)

編排(Orchestration)

數據(Data)

規模擴展(Scaling up)

成本考慮(Cost)

首先是硬件。你想使用最新的硬件。最新的硬件通常可以讓你在各種基準測試中獲得更好的性能,因此,如果這些大語言模型需要數周或數月的時間來訓練,而你沒有利用最新硬件的性能優勢,那么你將無法訓練大語言模型以獲得最適合你的用例的結果。

第二個是健康檢查。您需要確保硬件運行良好,以便最大限度地減少大語言模型訓練期間的干擾。

我們還需要考慮編排,啟動集群,關閉集群,確保網絡和安全配置運行良好,機器學習團隊在運行各種工作負載時不會相互干擾。

我們需要考慮的其他事情是大數據集。存儲、處理和加載它們以進行機器學習訓練并不是一件容易的事,并且可能需要大量的開發工作才能高效完成。

我們擴大基礎設施的規模并設計算法以繞過基礎設施的局限性是另一個挑戰。我們今天談論的大語言模型通常不適用于單個 GPU,因此你必須考慮如何將該大語言模型拆分到 GPU 上。

最后,我們必須考慮成本。這些大語言模型的訓練成本可能高達數十萬甚至數百萬美元。所以,你想很好地利用機器學習團隊的時間。與其讓他們在基礎架構上工作,他們可以專注于嘗試新的大語言模型創意,這樣您的企業就可以利用該大語言模型取得最佳結果。

大語言模型的構建優化

幸運的是,Amazon SageMaker 可以幫助你應對所有這些挑戰,從而加速大語言模型的訓練。現在,Amazon SageMaker 可幫助您使用托管基礎設施、工具和工作流程為任何用例構建、訓練和部署機器學習模型。如下圖所示。

下圖中黃色的部分,例如:Amazon SageMaker 分布式訓練庫、Amazon SageMaker 訓練編譯優化等,我們還會在下一篇的動手實驗部分,用完整的代碼來演繹實現,讓你有更身臨其境的感受。

在下層,我們有基礎設施,Amazon SageMaker 可讓你訪問最新的硬件,包括 GPU 和 Trainium,以及實例之間的快速網絡互連,這對于分發訓練至關重要。

在中間層,有托管基礎設施和工具的能力。

Amazon SageMaker 會為你處理大規模集群編排,它加速了集群,最后它會向下旋轉。它有助于完成所有這些安全和網絡配置,因此你可以輕松保護客戶數據和 IP 的安全。

在訓練工作開始時還會進行健康檢查,以確保硬件有效運行,減少對訓練工作的干擾。編排還意味著你只需為所用的計算資源付費。你只需要在集群啟動時付費,為你訓練大語言模型,這樣你就不必全天候為所有昂貴的硬件付費。

還有用于分析、調試和監控實驗的工具,以及使用各種策略進行超參數優化的工具,以確保獲得盡可能好的大語言模型。

在頂層,有針對云端進行了優化的框架和庫,例如在 Amazon SageMaker 上非常易于使用的 PyTorch、TensorFlow 和 Hugging Face,以及可幫助你處理超大型數據集或超大語言模型的 Amazon SageMaker 分布式訓練庫。

我已經談了很多使用 Amazon SageMaker 進行訓練的能力和好處,讓我們來談談它是如何運作的。訓練大語言模型,我們需要一些計算資源,然后在某些數據集上運行我們編寫的訓練代碼。Amazon SageMaker 做到這一點的方法是:通過啟動短暫的訓練集群來完成任務。

當提交訓練作業時,Amazon SageMaker 將根據你選擇的集群配置啟動集群。它將從 ECR 加載訓練代碼,從 S3 加載數據,然后開始訓練。訓練過程中,它會將日志和指標輸出到 CloudWatch,將大語言模型檢查點(checkpoint)同步到 S3,并在任務結束時關閉集群。如果你編寫的代碼考慮了具有彈性,編寫成能夠從檢查點自動恢復,則你的訓練作業將無需手動干預即可自動重啟。

以下是用于開始訓練作業的核心代碼,即 estimator API:

from sagemaker.pytorch import PyTorch

estimator = PyTorch(entry_point = ‘./cifar10.py’,

role = role,

framework_version = ‘1.13’,

py_version = ‘py38’,

instance_count = 1,

instance_type = ‘ml.g5.xlarge’,

hyperparameters = {‘epochs’: 50, ‘batch_size’: 32},

metric_definitions = [{‘Name’: ‘train:loss’, ‘Regex’: ‘loss: (.*)’}]

estimator.fit(“s3://bucket/path/to/training/data”)

這里選擇了 PyTorch 估算器,并定義了入口點的函數文件:cifar10.py。這與我們在自己的本地電腦上運行用于訓練大語言模型的腳本非常相似,我們稱之為腳本模式。使用 Amazon SageMaker 訓練作業的方法有很多,靈活性更強,你可以提供自己的 docker 容器或一些內置算法。

然后定義想要使用的框架和 Python 版本,以及訓練作業的實例類型、實例數量和超參數。你現在可以隨時輕松更改這些內容,啟動其他訓練任務來嘗試不同的實例類型,看看哪種硬件最適合你的用例。

接下來將給出指標定義。這將告訴 Amazon SageMaker 如何解析從腳本中輸出的日志,Amazon SageMaker 會將這些指標發送到 CloudWatch,供你稍后查看。

?最后調用 estimator.fit(),其中包含訓練數據的路徑。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166245.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis運維(十七)事務

一 redis事務 事務核心參考 ① 基礎概念 1、場景引入核心&#xff1a;通過現象思考原因? 2、事務的概念 3、事務四大特性說明&#xff1a; redis只具備部分特性 重點1&#xff1a; 原子性和一致性 重點2&#xff1a; 隔離性和持久性 ② redis的事務 1、基礎鋪墊備注&…

runapi的學習記錄

安裝地址 git clone https://github.com/star7th/showdoc.git 默認賬號與密碼 showdoc 123456 首頁 訪問地址&#xff1a;http://192.168.51.2:4042/web/#/ 進入ShowDoc首頁 登錄showdoc文檔系統 http://192.168.51.2:4042/web/#/user/login 默認賬號密碼showdoc/12345…

unity Terrain 性能問題

在實踐過程中unity發生進入場景GPU爆顯存的情況&#xff0c;經過調查發現是使用Terrain造成的問題&#xff0c;這個問題在使用一個Terrain的時候并不會發生&#xff0c;但是在使用多個時會發生。 似乎在使用過程中Terrain會直接把Terrain的整個地圖加載&#xff0c;造成移動設…

? 一文帶你了解多文件混淆加密

?&#x1f512; 一文帶你了解多文件混淆加密 目錄 &#x1f512; 一文帶你了解 JavaScript 多文件混淆加密 ipaguard加密前 ipaguard加密后 ? &#x1f512; 一文帶你了解 JavaScript 多文件混淆加密 JavaScript 代碼多文件混淆加密可以有效保護源代碼不被他人輕易盜取。…

關閉vscode打開的本地服務器端口

vscode開了本地的一個端口“8443”當本地服務器端口&#xff0c;然后隨手把VScode一關&#xff0c;后來繼續做發現8443端口已經被占用了。 ??原來&#xff0c;即便關閉了編譯器VScode&#xff0c;服務器依然是被node.exe運行著的。那這個端口怎么才能關掉呢&#xff1f; ??…

Kotlin基礎——Lambda和函數式編程

Lambda 使用 { } 定義Lamba&#xff0c;調用run運行 run { println(1) }更常用的為 { 參數 -> 操作 }&#xff0c;還可以存儲到變量中&#xff0c;把變量作為普通函數對待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一個Lambda&#xff0c;傳…

EXIT外部中斷 HAL庫+cubeMX

一.cubeMX外部中斷配置 1.系統內核 2.中斷管理 3.選擇搶占優先級和響應優先級&#xff0c;共有5個等級&#xff0c;在這里就使用庫函數編寫代碼時最常用的2位搶占優先級2位響應優先級。 4.勾選使能選項&#xff0c;后面的兩個零&#xff0c;第一個代表搶占優先級的等級&#xf…

用于計算機屏幕安全攝像頭系統:Screen Anytime Crack

Screen Anytime 是一款軟件&#xff0c;旨在自動將整個用戶會話或 PC/服務器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 會話的屏幕活動記錄到視頻日志文件中&#xff0c;以用于記錄、審核和監控目的。通過重播其高度壓縮的視頻&#xff0c;您可以輕松回顧單臺計算機或一組服務器/PC …

基于C#實現并查集

一、場景 有時候我們會遇到這樣的場景&#xff0c;比如:M{1,4,6,8},N{2,4,5,7}&#xff0c;我的需求就是判斷{1,2}是否屬于同一個集合&#xff0c;當然實現方法有很多&#xff0c;一般情況下&#xff0c;普通青年會做出 O(MN)的復雜度&#xff0c;那么有沒有更輕量級的復雜度呢…

Vatee萬騰科技的獨特力量:Vatee數字時代創新的新視野

在數字化時代的浪潮中&#xff0c;Vatee萬騰科技以其獨特而強大的創新力量&#xff0c;為整個行業描繪了一幅嶄新的視野。這不僅是一場科技創新的冒險&#xff0c;更是對未來數字時代發展方向的領先探索。 Vatee萬騰將創新視為數字時代發展的引擎&#xff0c;成為推動行業向前的…

ubuntu 安裝python3.13

列出 /usr/bin/ 目錄下所有以 python 開頭的文件和目錄 ls /usr/bin/python* 添加Python軟件源。您可以通過以下命令將Python的軟件源添加到您的系統中 sudo add-apt-repository ppa:deadsnakes/ppa 然后運行以下命令以更新軟件包列表&#xff1a; sudo apt-get update 安…

vue每個階段的生命周期做了什么

Vue 實例的生命周期可以分為創建階段、掛載階段、更新階段和銷毀階段。下面是每個階段具體干了什么的說明和對應的代碼示例&#xff1a; 創建階段 beforeCreate&#xff1a; 此階段在實例初始化之后&#xff0c;數據觀測 (data observer) 和 event/watcher 事件配置之前被調用…

Spring AOP 底層原理

Spring AOP 底層原理 aop 底層是采用動態代理機制實現的&#xff1a;接口實現類 &#xff08;1&#xff09;如果要代理的對象&#xff0c;實現了某個接口&#xff0c;那么 Spring AOP 會使用 JDK Proxy&#xff0c;去創建代理對象。 &#xff08;2&#xff09;沒有實現接口的對…

下一代ETL工具:微服務架構的全新數據集成平臺

當前對于大型企業來說數據的整合和加工變得越來越重要。隨著業務需求的不斷增長&#xff0c;企業數據量越來越大&#xff0c;數據管道越來越多&#xff0c;現有的ETL&#xff08;抽取、轉換、加載&#xff09;工具已不再滿足實時、高性能和微服務架構等現代化需求。因此&#x…

基于C#實現Prim算法

圖論在數據結構中是非常有趣而復雜的&#xff0c;作為 Web 碼農的我&#xff0c;在實際開發中一直沒有找到它的使用場景&#xff0c;不像樹那樣的頻繁使用&#xff0c;不過還是準備仔細的把圖論全部過一遍。 一、最小生成樹 圖中有一個好玩的東西叫做生成樹&#xff0c;就是用…

前端項目搭建Webpack的配置

本人這次是在搭建一個Typescript項目時候配置的Webpack。但是Typescript的項目本人看來和往常的Web(Vue)項目類似點很多的。那么我們就可以通過對該Typescript項目的略微調整即可挪到Web項目中....... 首先說明一下為什么要依賴WebPack來搭建項目&#xff1f;&#xff1f;&…

ES 萬條以外分頁檢索功能實現及注意事項

背景 以 ES 存儲日志&#xff0c;且需要對日志進行分頁檢索&#xff0c;當數據量過大時&#xff0c;就面臨 ES 萬條以外的數據檢索問題&#xff0c;如何利用滾動檢索實現這個需求呢&#xff1f;本文介紹 ES 分頁檢索萬條以外的數據實現方法及注意事項。 需求分析 用 ES 存儲數…

Redis 反序列化失敗

文章目錄 問題原序列化配置修改配置解決方法 問題 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of org.springframework.security.core.authority.SimpleGrantedAuthority (although at least one Creator exists): cannot deser…

css圖片縮放屬性object-fit說明

object-fit 屬性可以設置以下值&#xff1a; 屬性值說明例子fill填充容器&#xff0c;可能會改變圖片的比例。object-fit: fill;contain保持圖片的原始比例&#xff0c;確保圖片完全包含在容器內。object-fit: contain;cover保持圖片的原始比例&#xff0c;確保圖片覆蓋整個容…

性能優化中使用Profiler進行頁面卡頓的排查及解決方式

文章目錄 一、前言二、頁面卡頓的排查方式1、耗時操作的監控2、頁面卡頓的監控 三、參考鏈接 一、前言 程序的優化在做過線上bug處理&#xff0c;布局層級優化&#xff0c;項目依賴庫版本更新&#xff0c;重復庫合并&#xff0c;刪除未使用的資源&#xff0c;刪除冗余的庫&…