国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MLC-LLM: 具有ML編譯的通用LLM部署引擎 原創

發布于 2024-6-12 11:42
瀏覽
0收藏

介紹

我們正處在大型語言模型和生成式人工智能的時代,其應用場景有可能改變每個人的生活。開放式大型語言模型為提供定制化和領域特定部署帶來了重大機會。

我們正處在一個激動人心的開放模型開發年份。一方面,我們看到了在(云)服務器部署方面取得的令人振奮的進展,這些解決方案可以為具有多個GPU的更大模型提供同時服務的能力。同時,我們也開始看到在設備本地部署方面取得了進展,能夠將性能強大的量化模型部署到筆記本電腦、瀏覽器和手機上。未來將會走向何方?我們相信未來是混合的,因此重要的是要使任何人都能在云端和本地環境中運行LLM。

許多LLM推斷項目,包括我們過去版本的MLC LLM工作,為服務器和本地使用案例提供了不同的解決方案,具有不同的實現和優化。例如,服務器解決方案通常支持連續批處理和更好的多GPU支持,而本地解決方案則帶來了跨平臺更好的可移植性。然而,我們認為有必要將所有技術匯集到一起。在一個使用案例的一側出現的許多技術直接適用于另一側。雖然像連續批處理這樣的技術在當前某些本地使用案例中可能并不實用,但隨著LLM成為操作系統的關鍵組件并支持多個請求以啟用代理任務,它們將變得有價值。我們想提出一個問題:是否可能構建一個單一統一的LLM引擎,可在服務器和本地使用案例中運行?

在這篇文章中,我們介紹MLC LLM引擎(簡稱MLCEngine),這是一個通用的LLM部署引擎。MLCEngine引入了一個單一引擎,用于在服務器上進行高吞吐量、低延遲的服務,同時將小型而性能強大的模型無縫集成到多樣化的本地環境中。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖1. MLCEngine:通用LLM部署引擎 實現通用部署的路徑具有獨特的挑戰。首先,它需要支持廣泛的GPU編程模型和運行時,以在每個支持的平臺上實現加速。這樣的過程通常需要大量重復的工程工作。我們需要在可能的情況下利用有效的供應商庫,但也需要支持缺乏標準庫支持的新興平臺,如Vulkan或WebGPU。此外,每個應用平臺都有不同的編程語言環境,這增加了將引擎引入到Swift、Kotlin、Javascript等環境中的復雜性。

為了克服平臺支持的挑戰,我們利用了通過Apache TVM進行機器學習編譯的技術,自動生成便攜式GPU庫,以適用于各種硬件和平臺。此外,我們構建了一個便攜式運行時架構,將業界領先的LLM服務優化(如連續批處理、推測解碼、前綴緩存等)與對云端和本地平臺的最大可移植性相結合。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖2. MLC LLM工作流程 編譯的模型庫與一個通用運行時共同工作,該運行時在不同的主機應用語言中提供直接的語言綁定,這些語言共享相同的OpenAI風格的聊天完成API。所有本地應用環境共享與云服務器設置相同的核心引擎,但針對每個個體設置進行了專門配置。

通過Chat開始

開始使用MLCEngine的最簡單方式是通過聊天CLI界面。我們為此提供了一個命令行聊天界面。下面是一個示例命令,它在終端中啟動聊天CLI,運行一個4位量化的Llama3 8B模型。

mlc_llm chat HF://mlc-ai/Llama-3-8B-Instruct-q4f16_1-MLC

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖3. Chat CLI 在幕后,我們執行即時模型編譯,為每個平臺生成GPU代碼。因此,它可以跨GPU類型和操作系統工作。

我們支持廣泛的模型系列,包括Llama3、Mistral/Mixtral、Phi3、Qwen2、Gemma等等。

通過OpenAI風格API使用MLCEngine

隨著我們引入通用LLM引擎,設計一組開發人員熟悉且易于使用的API是非常重要的。我們選擇在所有環境中采用OpenAI風格API。本節將逐步介紹這些API。

  • 云端的REST API服務器

LLM服務是最典型的LLM應用之一。LLM服務器通過運行內部LLM引擎來處理從網絡接收到的所有請求。我們提供了一個具有完整OpenAI API的REST服務器,用于處理LLM生成請求。下面是一個示例命令,它在本地主機上啟動REST服務器,以提供4位量化的Llama3 8B模型。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖4. 啟動LLM服務器并發送聊天完成請求 為了適應不同的服務場景,我們為服務器提供了三種模式:“服務器”,“本地”和“交互式”。 “服務器”模式最大化了GPU內存的使用,并支持更高的并發性,而“本地”和“交互式”模式則限制了并發請求的數量,并且使用更少的GPU內存。我們建議在專用服務器GPU(如A100/H100)上使用“服務器”模式,利用完整的FP16模型和FP8變體。對于本地環境,建議使用“本地”模式和4位量化模型設置。

  • Python API

MLC LLM在Python中提供MLCEngine和AsyncMLCEngine,分別用于同步和異步LLM生成。這兩種引擎支持與OpenAI Python軟件包相同的API。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖5. AsyncMLCEngine的Python API

  • iOS SDK

為了使LLM在iPhone和iPad上運行,我們在Swift SDK中公開了MLCEngine。雖然沒有來自OpenAI的官方Swift API,但我們緊密模擬了Python API,因此我們可以找到與Python代碼鏡像的代碼,具有結構化的輸入和輸出。Swift API還有效地利用了AsyncStream,以啟用生成內容的異步流式傳輸。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖6. MLCEngine的iOS/Swift API

  • Android SDK

除了iOS,我們還希望為Android提供相同的體驗。我們選擇使用基于OpenAI API的Kotlin API。下面是一個在三星S23上運行4位量化Phi-3模型的聊天完成Kotlin API和MLC Chat應用程序截圖的示例。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖7. MLCEngine的Android/Kotlin API

  • WebLLM SDK

近年來,我們看到了WebGPU生態系統的不斷成熟。WebGPU通過將WGSL(WebGPU著色語言)著色器轉換為本地GPU著色器來工作。這使得在瀏覽器中執行GPU計算成為可能,這是快速的(本地GPU加速),方便的(無需任何環境設置)和私密的(100%客戶端計算)。MLCEngine也可以通過WebLLM項目在JavaScript中訪問。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖8. MLCEngine的JavaScript/TypeScript API

  • 討論

我們可能意識到的一件事是,這些API遵循完全相同的風格engine.chat.completions.create,因此我們可以在這些平臺上擁有相同的開發體驗。我們盡可能多地利用語言本地功能來創建結構化的輸入和輸出,并啟用異步流式傳輸,以便引擎活動不會阻塞UI。

高效的結構化生成

除了構建聊天應用程序外,我們還將使應用程序超越聊天。結構化生成大大提高了LLM的能力,超越了基本的聊天或純文本生成。通過可控的結構化生成,LLM能夠成為標準工具,并且可以更好地集成到生產中的其他應用程序中。在各種場景中,JSON是最常用的結構化格式之一,并且對于LLM引擎支持JSON字符串的結構化生成具有重要意義。

MLCEngine提供了最先進的JSON模式結構化生成。對于每個請求,MLCEngine運行和維護一個高性能的GrammarBNF狀態機,該狀態機在自回歸生成期間約束響應格式。

MLCEngine支持兩種級別的JSON模式:通用JSON響應和JSON模式定制。通用JSON模式將響應約束為符合JSON語法。要使用通用JSON模式,請將參數response_format={"type": "json_object"}傳遞給聊天完成。以下是使用JSON模式的請求示例:

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖9. MLCEngine中的JSON模式 

此外,MLCEngine允許為每個單獨的請求定制響應的JSON模式。當提供了JSON模式時,MLCEngine將生成嚴格符合該模式的響應。以下是帶有自定義JSON模式的請求示例:

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖10. MLCEngine中指定JSON模式的JSON模式 重要的是,結構化生成支持內置于引擎中,這意味著它可以在MLCEngine支持的所有API平臺上使用。

使LLM在各種平臺上可訪問

我們的使命之一是使LLM在各種平臺上可訪問。我們已經討論了服務器GPU、Android和iOS上的用例。我們驗證了MLCEngine可以在各種平臺上運行。包括但不限于:

  • NVIDIA RTX 4090,
  • NVIDIA Jetson Orin,
  • NVIDIA T4(在Google Colab中),
  • AMD 7900 XTX,
  • Steam Deck,
  • Orange Pi。

其中,Steam Deck是一個有趣的平臺,因為它只提供有限的GPU驅動程序支持。我們生成了Vulkan代碼,在其上運行了一個Llama3-8B模型。

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖11. MLCEngine在Steam Deck上運行Llama 3 8B

我們發現機器學習編譯幫助我們減少了在構建MLCEngine上的工程工作量,并幫助我們在更廣泛的硬件范圍內提供高性能解決方案,使這些模型對更多人可用。

優化引擎性能

雖然這是MLCEngine的第一個發布里程碑,但我們已經付出了大量努力來優化其性能。引擎結合了幾個關鍵的系統改進,如連續批處理、推測解碼、分頁KV管理、常見前綴緩存和級聯推斷。我們利用FlashInfer庫在CUDA平臺上計算快速的注意力,并通過編譯器代碼生成擴展其支持到更廣泛的平臺。

MLCEngine支持多GPU開箱即用。以下命令在兩個GPU上啟動REST服務器:

mlc_llm serve HF://mlc-ai/Qwen2-72B-Instruct-q0f16-MLC --overrides "tensor_parallel_shards=2"

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖12. 2個NVIDIA RTX 4090上的REST服務器

MLC-LLM: 具有ML編譯的通用LLM部署引擎 -AI.x社區

圖13. Python API 2x AMD 7900 XTX

MLCEngine在服務器使用案例中可以實現高競爭性的性能,特別是在高吞吐低延遲設置下,對多個GPU的強大擴展。我們還在維護著在蘋果GPU等平臺上的最新性能,并支持新興平臺,如WebGPU。

重要的是,我們發現在各平臺上構建統一的解決方案存在很多協同作用。例如,擁有相同的引擎使我們能夠將高級優化(如注意力管理、前綴緩存、推測執行和結構化生成)帶到這些平臺上,在過去的解決方案中由于有限的工程帶寬而缺乏支持。我們還可以通過利用代碼生成在平臺之間轉移優化知識。我們在WebGPU上的性能受益于本地GPU運行時的優化,然后直接編譯到目標WebGPU環境。

總結

我們介紹了MLCEngine,一個統一的高效LLM引擎,可以在不同的硬件和平臺上運行LLM,從云服務器到邊緣設備。這標志著MLC LLM項目的新篇章。我們樂于與社區合作,帶來更多改進,包括提供更好的模型覆蓋、更多的系統優化以及先進的機器學習編譯,以實現更加高效的通用部署。

本項目得以實現,多虧了開源社區的許多貢獻,包括CMU Catalyst、OctoAI、UW SAMPL、SJTU以及更廣泛的MLC社區的貢獻。我們計劃繼續與開源社區合作,為所有人帶來開放的基礎模型。

譯自(有刪改):https://blog.mlc.ai/2024/06/07/universal-LLM-deployment-engine-with-ML-compilation


本文轉載自公眾號AIGC最前線   

原文鏈接:??https://mp.weixin.qq.com/s/GAVn6vm_rWUBOACnm8_EHA??


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
国产精品老女人视频| 一区二区三区四区不卡在线 | 色哟哟一区二区三区| 丰满少妇久久久| 影音先锋日韩在线| 国产精品高潮呻吟久久| 欧美重口乱码一区二区| 精品国产乱码久久久久久蜜坠欲下 | 久久伊人免费视频| a天堂中文在线官网在线| 国产真实有声精品录音| 亚洲综合无码一区二区| 影音先锋在线亚洲| 狠狠综合久久av一区二区老牛| 久久人人爽人人| 另类小说第一页| 国产日韩中文在线中文字幕| 成人午夜av电影| 亚洲美女av在线播放| 中文字幕免费在线观看| 91在线观看地址| 亚洲视频在线观看日本a| 欧美日韩国产精品一区二区亚洲| 久久久久久久久久久免费| 天堂av中文在线观看| 欧美久久高跟鞋激| 一级视频在线免费观看| 欧美经典三级视频一区二区三区| 97国产精品久久| 日韩av免费| 亚洲新声在线观看| av中文在线资源| 在线视频中文字幕| 精品一区二区三区在线观看国产 | 777永久免费网站国产| 91成人短视频| 国产亚洲欧美激情| 国产91xxx| 国产成人精品免费视| 久久91精品国产| 视频免费一区二区| 色与欲影视天天看综合网| 精品69视频一区二区三区| 国产亚洲精品久久久优势| 日本不卡视频一二三区| 久久久久国产精品www| 亚洲青青一区| 中文字幕中文字幕一区二区| 久久精品99国产| 久久久不卡网国产精品二区| 日本老熟妇毛茸茸| 中文字幕一区二区三区视频| 91婷婷韩国| 亚洲国产一区在线观看| 国产精品影院在线| 99re在线精品| 在线观看视频一区二区| 欧美在线视频观看免费网站| 免费福利在线观看| 欧美日韩精品国产| 在线免费看黄| 亚洲精品美女视频| 国产精久久一区二区| 欧美专区在线视频| 一区二区日韩欧美| 视频在线一区二区三区| 国产超碰在线一区| 99热在线免费观看| 色偷偷成人一区二区三区91| 成全电影大全在线观看| 色噜噜国产精品视频一区二区| 欧美日韩麻豆| 91丨九色丨国产在线| 久久一二三四| 一级做a爰片久久毛片美女图片| 亚洲黄色免费看| 欧美人成在线视频| 精品亚洲成av人在线观看| 欧亚一区二区| 亚洲精品日韩丝袜精品| 欧美三级视频在线观看 | 久久婷婷一区二区三区| 国产资源一区| 午夜在线视频免费观看| 欧美亚洲第一页| 久久av老司机精品网站导航| 黄色在线小视频| 久久亚洲高清| 黑丝一区二区三区| 色综合久久网| 精品久久久久久久久久久aⅴ| 成人免费黄色| 九色一区二区| 伊人久久五月天| 91碰在线视频| 欧美另类中文字幕| 91高清视频在线| 91国内外精品自在线播放| 国产一区二区无遮挡| 成人精品国产免费网站| 国产卡一卡二在线| 精品精品欲导航| 欧美日韩精品免费观看视完整| 免费裸体美女网站| 欧美亚洲免费在线| 91久久久一线二线三线品牌| 草草视频在线| 精品国产91亚洲一区二区三区www| 亚洲综合色网| 粗大黑人巨茎大战欧美成人| 男人添女人下部高潮视频在观看| 91久久久久久久久久| 欧美喷水一区二区| 欧美国产日韩在线观看| 成人丁香基地| 99re视频在线观看| 久久久久久com| 久久久噜噜噜久久中文字幕色伊伊 | 91精品大全| 久久久久久免费看| 国产精品理论片在线观看| 色综合桃花网| 密臀av在线播放| 你懂的在线观看| 在线一区观看| 国产wwwxx| 少妇精品久久久久久久久久| 国产精品视频一区二区高潮| 亚洲国产精品va在线| 国产在线播放一区三区四| 国产精品乱码一区二区三区软件| 大片免费播放在线视频| 色综合久久九月婷婷色综合| 国产亚洲高清在线观看| 一区二区视频国产| 精品视频在线免费观看| 国产精品一区二区三区av麻| 欧美a v在线播放| 亚洲高清久久网| 欧美va亚洲va日韩∨a综合色| 亚洲国产日韩欧美在线观看| 亚洲一区二区三区在线| 成人在线分类| 一卡二卡三卡视频| 亚洲国产天堂网精品网站| 影音先锋国产精品| 日韩精品系列| 成人久久一区二区三区| 日日夜夜精品免费视频| 免费在线稳定资源站| 国产成人亚洲综合| 亚洲欧美日韩综合aⅴ视频| 婷婷视频一区二区三区| 成人综合视频在线| 日韩中文字在线| 99久久久免费精品国产一区二区| 欧美最新精品| 欧美高清中文字幕| 亚洲乱码国产乱码精品精可以看| 亚洲国产资源| 国产精品视频999| 亚洲激情自拍视频| 伊甸园亚洲一区| 神马午夜dy888| 国产精品1区2区在线观看 | 亚洲精品2区| 日本在线免费观看一区| 欧美日韩精品三区| 日韩免费在线电影| 97av中文字幕| 日韩网站免费观看高清| 91美女片黄在线观看91美女| 网站一区二区| 国产视频一二区| 欧美视频一区二区三区在线观看| 欧美91大片| 中文字幕在线观看播放| 欧美激情视频在线观看| 国产欧美一二三区| 免费黄色成人| 国产在线色视频| 亚洲高清视频在线观看| 亚洲天堂第一页| 国产精品伦一区| 伊人情人综合网| av福利导福航大全在线| 国产99久久九九精品无码| 国产成人精品久久亚洲高清不卡| 色综合久久中文综合久久牛| 美女爽到呻吟久久久久| 日本成人伦理电影| 成人漫画网站免费| 国产精品播放| 亚洲精品在线视频| 国产精品卡一卡二卡三| 欧美日韩p片| 国产综合av| 调教在线观看| 亚洲午夜精品久久久久久浪潮| 欧美激情一区二区三级高清视频|