在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在TorchServe上提供LLMs的分布式推理

jf_pmFSk4VX ? 來源:GiantPandaCV ? 2024-01-31 13:59 ? 次閱讀

這里是Hamid,我來自PyTorch合作伙伴工程部。我將跟隨Mark的討論,講解如何在TorchServe上提供LLMs的分布式推理和其他功能。首先,為什么需要分布式推理呢?簡單來說,大部分這些模型無法適應單個GPU

96b71488-b79a-11ee-8b88-92fbcf53809c.png

通常,GPU的內存介于16到40GB之間,如果考慮一個30B模型,在半精度下需要60GB的內存,或者70B Lama模型在半精度下至少需要140GB的內存。這意味著至少需要8個GPU。因此,我們需要一種解決方案將這些模型分區(qū)到多個設備上。我們來看看在這個領域有哪些模型并行化的解決方案和方法。

99a974ba-b79a-11ee-8b88-92fbcf53809c.png

目前有兩種主要方法。一種是張量并行,你基本上在op內部(如矩陣乘法)上切割你的模型,從而并行化計算。這會引入一個通信,就像全歸約一樣,如果你有足夠的工作負載,使用流水線并行計算會更快,但需要更高速的網絡。原因是要保持GPU忙碌,因為它是在操作并行化中。所以它更適用于單節(jié)點計算。

99cb3136-b79a-11ee-8b88-92fbcf53809c.png

另一種主要方法是流水線并行,基本上將模型水平切分成多個階段,每個階段包含一組層。所以你將第一個階段的輸出作為第二個階段的輸入。在這里,我們需要將這種技術與micro批處理結合使用,否則無法有效利用GPU。由于通信的性質,流水線并行更適用于多節(jié)點的擴展。

·ModifyModelCode
Megatron,TransformerNeuronx,Fairscale,etc.
DefineParallellayers-buildthemodelwithparallellayers
boundtospecifictrainers
·PyTorchAPIs
WraptheoriginalmodelwithAPIs
Automaticallypartitionthemodel
Traineragnostic

那么,我們今天在OSS空間實際上如何實現這些模型呢?這里有兩種主要方法。一種是修改你的模型代碼。基本上,定義你的并行層,并在這些并行層之上構建你的模型。這非常像transformers的風格。我們在不同的repo中也看到了這一點,比如megatron,Transformer,Neuronics來自AWS。而且大多數這種并行性都限定在特定的訓練上。而另一方面,我們有PyTorch的API,它采用了一種不同的策略。它大多數情況下不需要改變或只需進行最小的改動來適應您的模型,它只需要檢查您的模型,并自動對其進行分割。它也可以在訓練過程中保持中立。

99e4b750-b79a-11ee-8b88-92fbcf53809c.png

這里有一個修改模型代碼的例子,這是在Fairscale上構建的LLAMA2模型的例子。正如您在左側可以看到的那樣,我們實際上正在定義那些并行層,在注意層中,您可以看到我們正在在那些并行層之上構建模型。如我所說,這是Fairscale,但是Megatron,Transformer和AX都是相同的性質。另一方面,這是PyTorch的API,用于流水線并行。我們有一個名為PP的軟件包,它處于測試階段。它的作用是使用模型并行地進行計算

99f70dd8-b79a-11ee-8b88-92fbcf53809c.png

為了理解你的模型并將其分成多個階段,使用tracing方法是非常重要的。這個框架提供了一個非常簡單的API,只需要將你的模型輸入其中,就能得到一個已經在不同GPU上進行了分布的多個階段。它還支持延遲初始化,我們稍后會詳細討論。此外,我們還有適用于PyTorch的tensor并行API,與張量一起使用。

9a0d00fc-b79a-11ee-8b88-92fbcf53809c.png

如果你看一下這些代碼,基本上,你可以將你的分片策略傳遞給并行模塊,它會簡單地將你的模塊并行化到不同的設備上。這又是相同的策略,你不需要改變你的模型代碼。它們都是訓練無關的,所以你可以在從不同庫中導入任意的檢查點時進行推理。接下來,我來強調一下我們在分布式推理中所面臨的一些挑戰(zhàn)。首先,大多數的開源解決方案都與特定的訓練器綁定。

1. Most of the OS solutions are bound to specific trainers or require model changes:
-ExamplesincludeDeepSpeed,Accelerate,ParallelFormer,TGI,vLLM,etc.

2.Automaticpartitioningofarbitrarycheckpoints:
-APIstoautomaticallypartitionyourmodelcheckpoints(trainer-agnostic)
-Enablesautomaticpartitioningofarbitrarycheckpoints.

3.Deferredinitialization(loadingpretrainedweights):
-AvoidloadingthewholemodelonCPUordevice.
-Supportsdeferredinitializationtoloadpretrainedweightsondemand.

4.Checkpointconversion:
-Convertcheckpointstrained/savedwithdifferentecosystemlibrariestoPyTorchDistributedcheckpoints.

正如我提到的,他們需要模型的改變,比如deepspeed、VLLM等。所以這需要一種解決方案,能自動對模型和任意檢查點進行分區(qū)。所以無論你用哪個訓練器訓練過你的模型,它實際上應該能夠將你的模型進行分區(qū)。這里還有另外兩個挑戰(zhàn),就是延遲初始化,正如Mark所談的。它可以幫助你更快地加載模型,并在某些情況下避免在CPU和GPU上的開銷。而且,如果你必須將模型放在操作系統(tǒng)上,也可以使用這種方式。然后我們有一個檢查點轉換,我這里稍微談一下。這是今天的初始化方式。

9a261a4c-b79a-11ee-8b88-92fbcf53809c.png

所以你可以使用元設備來初始化你的模型。然后你請求模型并行API并行化你的模型。你必須手動地實現你的參數。但是在這里還有一個額外的步驟,你必須將你的模型檢查點轉換為PyTorch分布式可以理解的張量形式。所以,在它們之間有一個檢查點轉換的過程。你可以使用PyTorch分布式檢查點API來加載模型。這樣,你實際上可以使用延遲初始化。這里有一個額外的步驟,我們正在研究如何在這里去除檢查點轉換。

9a42be68-b79a-11ee-8b88-92fbcf53809c.png

好的,談論一下分布式推理和不同的模型并行化。現在讓我們轉向Torchserve,看看我們在Torchserve上支持什么。今天在Torchserve上,我們已經集成了分布式推理解決方案,我們與DeepSpeed、Hugging Face Accelerate、Neuron SDK與AWS自定義芯片都有集成。Torchserve原生API還具備PP和TP功能。我們還有微批處理、連續(xù)批處理和流式響應的API,這是我們團隊和AWS的Matias和Lee共同開發(fā)的。

9a558fa2-b79a-11ee-8b88-92fbcf53809c.png

現在讓我們來看一下PP。在這里,我們有高度流水線并行處理,我們已經初始化了這項工作,并啟用了路徑。我們的主要目標是專注于使用的便利性和功能。您可以看到,我們在這里提供了一個一行代碼的API,您可以輕松地將您的模型傳遞進去,特別是所有的Hugging Face模型,您實際上可以獲得階段并簡單地初始化您的模型。

9a7c08d0-b79a-11ee-8b88-92fbcf53809c.png

然后,我們最近還為Lama啟用了d-tensors來實現張量并行。這是初始的一步。我們已經啟用了這條路徑,但我們也正在努力優(yōu)化推理路徑。所以請繼續(xù)關注這里,很快就會有新的更新。

9a9dc3e4-b79a-11ee-8b88-92fbcf53809c.png

關于微批處理,如果您想要使用管道并行處理,微批處理非常重要。我們有一些非常好的微批處理示例,可以幫助您輕松入門。它既有助于更好地利用GPU,也可以在某些情況下并行化預處理,比如處理一些您正在處理的視覺模型。所以可以有一個繁重的預處理任務,我們可以在這里實現并行化,使用多線程。我們還有連續(xù)批處理和其他供LLM服務配置使用的成分。這里的想法是當一個請求完成時,將隊列中的請求連續(xù)添加到當前批次中作為一個請求。所以你不需要等待整個批次完成再發(fā)送下一個請求。

9abd87e2-b79a-11ee-8b88-92fbcf53809c.png

正如馬克所說的,基本上就是動態(tài)批處理。因此,這將有助于提高吞吐量和用戶體驗。我們來看下一個功能,即流式響應API。

9add9bae-b79a-11ee-8b88-92fbcf53809c.png

再次強調,當您向這些LLMs發(fā)送請求時,它們可能需要很長時間進行推理和生成令牌。因此,流式API將幫助您獲取每個令牌的生成,而無需等待整個序列的生成。您將逐個生成的令牌返回到客戶端。因此,這是一個很好的功能可以實現和集成到友好的環(huán)境中。在這里,您可以看到我們定義了兩個API。一個是發(fā)送中間預測響應的API,您可以使用該API。我們使用了HuggingFace文本迭代器來進行流式批處理。通過這兩個的組合,我們在這里實際上有LLAMA2的示例。

9af529ea-b79a-11ee-8b88-92fbcf53809c.png

再說一次,正如我所談到的,我們與所有這些功能進行了集成,包括所有這些不同的庫,如HuggingFace、PP、DeepSpeed、DeepSpeedM2、Inferentia2。在這里,我們實際上已經發(fā)布了一個很新的推理示例,并且我們在此發(fā)布了一個使用案例。

9b028da6-b79a-11ee-8b88-92fbcf53809c.png

你可以看到我們在這里使用了張量并行和并行預填充。它實際上幫助大大加快了推理速度。與等效的GPU相比,它使得Inferentia 2的成本大幅降低了。我們獲得了3倍更便宜的性能點。因此,我強烈建議你也看一看這個示例。

9b3754f0-b79a-11ee-8b88-92fbcf53809c.png

Mark談了很多不同的優(yōu)化,補充優(yōu)化方法使模型更快。他談到了內存限制、CPU限制,對于特定的LLMs來說,還有兩個重要的事情,即KV緩存。這非常重要。它可能會占用非常多的內存,并且會受到內存限制的影響。因此,類似于pageattention的想法在這里可能有幫助。另一個要考慮的因素是量化。

9b50df74-b79a-11ee-8b88-92fbcf53809c.png

到此結束,謝謝。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4760

    瀏覽量

    129128
  • 內存
    +關注

    關注

    8

    文章

    3040

    瀏覽量

    74169
  • 并行處理
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7769
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13281
  • LLM
    LLM
    +關注

    關注

    0

    文章

    295

    瀏覽量

    356

原文標題:《PytorchConference2023 翻譯系列》18-如何在TorchServe上提供LLMs的分布式推理

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分布式軟件系統(tǒng)

    三個特點:分布性、通信性和穩(wěn)健性。 分布式文件系統(tǒng)具有執(zhí)行遠程文件存取的能力,并以透明方式對分布在網絡的文件進行管理和存取。 分布式數據庫
    發(fā)表于 07-22 14:53

    LED分布式恒流原理

    分布式恒流源節(jié)點設置分布式恒流技術就是在需要恒流的節(jié)點串接,低壓差線性恒流驅動器。低壓差很重要,關系到產品驅動效率。做到恒流驅動有很多種,其中低壓差線性恒流就可以實現一切LED應用設計,即穩(wěn)定又簡單
    發(fā)表于 03-09 16:47

    分布式發(fā)電技術與微型電網

    幾種分布式發(fā)電簡介2.分布式發(fā)電與配電網互聯問題3.微型電網技術4.分布式發(fā)電(電源)技術應用的障礙和瓶頸5.分布式發(fā)電(電源)技術發(fā)展方向6.結語
    發(fā)表于 03-11 13:37

    使用分布式I/O進行實時部署系統(tǒng)的設計

    的8插槽機箱,與LabVIEW Real-Time的強大功能相結合,為確定性分布式I/O提供了便捷的解決方案。介紹當你需要在實時控制系統(tǒng)中設計分布式I/O時,你將怎么辦?首要問題就是如何在
    發(fā)表于 03-12 17:47

    分布式光伏發(fā)電安全性

    ,安全性得到了保障,為廣泛推廣提供了現實的可行性。但從運行維護的角度來說,分布式光伏發(fā)電也并非完全安全無隱患的。與獨立占地的大型地面電站不同,分布式光伏發(fā)電需要依附居民住宅、工業(yè)廠房、倉庫、商業(yè)大樓、學校
    發(fā)表于 10-12 15:35

    何在集群部署時實現分布式session?

    集群部署時的分布式 session 如何實現?
    發(fā)表于 07-17 06:57

    如何設計分布式干擾系統(tǒng)?

    ”的電子戰(zhàn)系統(tǒng),共同完成對敵信號的探測、定位、干擾任務。因此,嵌入網關是分布式干擾系統(tǒng)研究的關鍵技術之一。目前國內對分布式干擾系統(tǒng)的研究還停留在理論基礎,而對其關鍵技術的研究不多。
    發(fā)表于 08-08 06:57

    分布式系統(tǒng)的優(yōu)勢是什么?

    當討論分布式系統(tǒng)時,我們面臨許多以下這些形容詞所描述的 同類型: 分布式的、刪絡的、并行的、并發(fā)的和分散的。分布式處理是一個相對較新的領域,所以還沒有‘致的定義。與順序計算相比、并行的、并發(fā)的和
    發(fā)表于 03-31 09:01

    HarmonyOS應用開發(fā)-分布式設計

    不同終端設備之間的極速連接、硬件協同、資源共享,為用戶提供最佳的場景體驗。分布式設計指南可以幫助應用開發(fā)者了解如何充分發(fā)揮“One Super Device”的能力,提供獨特的跨設備交互體驗。說明:本設計指南后續(xù)舉例中將包括手機
    發(fā)表于 09-22 17:11

    HarmonyOS分布式應用框架深入解讀

    再局限于單臺設備,包管理還包括跨虛擬終端上的所有設備。分布式運行管理負責應用動態(tài)運行時管理,包括協同框架、遷移框架、服務卡片框架。應用接口層:是系統(tǒng)提供給廣大開發(fā)人員開發(fā)應用的接口層,不管系統(tǒng)底層實現有多
    發(fā)表于 11-22 15:15

    如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構師HarmonyOS是新一代的智能終端操作系統(tǒng),給開發(fā)者提供了設備發(fā)現、設備連接、跨設備調用等豐富的分布式API。隨著越來越多的開發(fā)者投入到
    發(fā)表于 12-13 18:07

    【學習打卡】OpenHarmony的分布式任務調度

    、同步、注冊、調用)機制。分布式任務調度程序是能夠跨多個服務器啟動調度作業(yè)或工作負載的軟件解決方案,整個過程是不需要人來值守的。舉個例子,我們可以在一臺或多臺機器安裝分布式調度器,用戶可以通過它在
    發(fā)表于 07-18 17:06

    常見的分布式供電技術有哪些?

    燃料電池將氫氣轉化為電能,具有高效率、清潔環(huán)保等優(yōu)勢,能夠提供高品質、高可靠性的電力供應。  5.燃氣發(fā)電技術:利用燃氣機等設備將燃氣轉化為電能,接入分布式電網進行供電,其優(yōu)點是反應速度快,且燃料相對便宜,但同時還需要考慮燃氣供應和排放問題。
    發(fā)表于 04-10 16:28

    Apache Spark分布式機器學習的介紹

    Apache Spark分布式機器學習
    的頭像 發(fā)表于 11-05 06:31 ?2926次閱讀

    tldb提供分布式鎖使用方法

    前言:分布式鎖是分布式系統(tǒng)中一個極為重要的工具。目前有多種分布式鎖的設計方案,比如借助 redis,mq,數據庫,zookeeper 等第三方服務系統(tǒng)來設計分布式鎖。tldb
    的頭像 發(fā)表于 11-02 14:44 ?914次閱讀
    tldb<b class='flag-5'>提供</b><b class='flag-5'>分布式</b>鎖使用方法
    主站蜘蛛池模板: 色最快国产| 色综合激情网| 日本不卡毛片一二三四| 欧美午夜寂寞影院安卓列表| 国产精品久久久久乳精品爆| 综合网 色天使| 天天操丝袜| 日本高清中文字幕在线观穿线视频| 在线播放免费| 伊人网综合视频| 色v在线| 国产天美| 中文字幕一区在线播放| 男女无遮挡在线完整视频| baoyu168成人免费视频| 午夜影视啪啪免费体验区深夜| 91av免费| 伊人久久成人爱综合网| 羞羞答答91麻豆网站入口| 日本卡一卡2卡3卡4精品卡无人区| 久久精品网站免费观看| 亚洲精品国产成人| 日本不卡免费新一区二区三区| 精品视频一区二区三区四区五区| l欧美18一19sex性| 97人人模人人揉人人捏| 手机看片国产高清| 日韩亚洲人成在线综合日本| 久久免费精品高清麻豆| 色妹子综合| 国产丝袜va丝袜老师| 天天爽爽| 欧美性白人极品1819hd高清| 午夜黄色剧场| 四虎国产精品永久免费网址| 狠狠色狠狠色| 色se01短视频永久免费| 91av免费| 色偷偷91综合久久噜噜噜男男| 国产一区二区三区美女图片| 手机看片免费福利|