您應該瞭解的三大LLM框架

PetterLiu發表於2024-10-30

您應該瞭解的三大LLM框架

image

LM 領域出現了很多庫和框架。對於開發人員來說,要跟蹤併為您的 LLM 專案選擇最合適的庫和框架是一件非常困難的事情。

在本文中,我們將深入探討整個生產 LLM 工作流程,重點介紹並批評這些技術:

  • Unsloth.ai(用於微調)
  • AdalFlow(用於預生產和最佳化)
  • vLLM(用於模型服務)

image

標準的 LLM 工作流程


第一步:微調

Hugging Face 是對專有資料進行微調的首選起點,我們選擇了 Unsloth.ai,因為它對較大模型的效能進行了最佳化,儘管與 FastAI 等替代方案相比,Unsloth.ai 較新,風險稍高。

第二步:最佳化和預生產

雖然 LangChain 和 LlamaIndex 在概念驗證方面很受歡迎,但我們發現了一個更輕量級的框架--Adalflow。與 DsPy 和 TexGrad 等並非基於生產級架構構建的工具相比,它有效地將預生產工作、最佳化和上下文學習結合在一起,並具有出色的除錯能力。

第三步:模型服務

雖然 Hugging Face 和 Ollama 仍然是模型服務的熱門選擇,尤其是在本地和內部推理方面,但由於 vLLM 令人印象深刻的吞吐量改進和高效的數學方法,我們選擇了 vLLM。


研究用於模型微調的 Unsloth.ai


LLM 需要大量 GPU,而且時間非常緊迫。這是不可避免的!訓練甚至微調某些模型可能需要幾個月的時間,這就成為一個巨大的可訪問性問題。
Unsloth 在模型訓練方法上具有創新性。他們採取了以下措施來儘量減少記憶體使用:

  • Unsloth 不使用預設的 autograd 實現梯度計算。他們在訓練 LoRA 介面卡的注意機制中手動計算梯度。
  • 他們還用 OpenAI 的 Triton 語言重寫了核心
  • 實施了其他記憶體最佳化和矩陣乘法最佳化。

透過所有這些最佳化,微調 LLM 的速度提高了 30 倍,所需的記憶體減少了 90%!這一切都不需要新的額外硬體,而且無論您擁有哪種 GPU 設定,都可以使用這些技術。

以下是其網站上的快速對比圖:

image

圖形處理器支援

Unsloth AI 提供廣泛的 GPU 支援,涵蓋英偉達(從 T4 到 H100)、AMD 和英特爾硬體,因此無論您是使用雲基礎設施還是本地機器,都可以使用 Unsloth AI。該平臺減少了 90% 的記憶體,可以靈活地使用不同的模型和批次大小進行實驗,從而更容易找到特定用例的最佳模型配置,而無需進行昂貴的硬體升級。

快閃記憶體注意實施

為了進一步提高訓練效率,Unsloth AI 透過使用 xFormers 和 Tri Dao 的實現,將 Flash Attention 納入其中。Flash Attention 是一種針對變壓器模型的最佳化注意力機制,可顯著降低訓練過程中的計算開銷和記憶體使用量。透過利用這一先進技術,Unsloth AI 加快了訓練過程並提高了可擴充套件性,從而可以更高效地處理大型資料集和複雜模型。


用於模型服務的 vLLM


眾所周知,LLM 訓練需要大量 GPU;但鮮為人知的是,LLM 服務也需要大量資源。對於一個 “僅 ”有 13B 引數的模型來說,單個 A100 GPU 每秒只能處理約 1 個請求。

為了更有效地管理虛擬記憶體,vLLM 建立了分頁關注(Paged Attention)

image

分頁關注方法視覺化示例


大多數轉換器實現都跳過了鍵值(KV)快取,但透過在不同請求之間有效共享記憶體,可以大大節省空間,這一點在他們的研究論文中已經得到了證明。vLLM 還使用了自動字首快取(APC)。APC 對現有查詢進行快取,因此如果查詢共享相同的字首,新查詢將跳過共享部分的計算,從而提高計算效率。

實用的 vLLM 功能

高吞吐量

vLLM 透過減少記憶體浪費(4% 對傳統的 60-80%)、高效的請求批處理和推測解碼(透過預測下一個最有可能的令牌來提高令牌生成速度),實現了比 HuggingFace Transformers 高 24 倍的吞吐量。

量化

vLLM 還支援各種模型最佳化技術,包括 INT4/INT8/FP8 量化和 LoRA 微調,以縮小模型尺寸並加快推理速度。

部署靈活性

vLLM 提供全面的部署選項,包括線上和離線推理、相容 OpenAI 的 API 以及對各種硬體(包括 Nvidia、AMD、Intel 和 AWS Neuron 加速器)的支援。


用於預生產和上下文學習最佳化的 AdalFlow


LLM 的興起造成了社群分裂,研究人員為基準測試編寫了難以生產的零抽象程式碼,而工程師則依賴於 LangChain 和 LlamaIndex 等過於抽象的框架,事實證明,這些框架難以定製,而且黑箱操作。

AdalFlow 從 PyTorch 中汲取靈感,讓工程師和研究人員無需從頭開始構建框架,就能研究重要的問題,同時提供 API 的靈活性和可觀測性。


AdalFlow 可以透過自動提示最佳化使您的提示更好
就像神經網路一樣,LLM 應用程式也可以使用自動微分功能,透過有向無環圖(DAG)將複雜的導數分解為可追蹤的基本操作,這是 Text-grad 首次提出的概念[4]。

AdalFlow 的創新建立在 Text-grad 的基礎之上,它透過元提示最佳化、令牌高效提示和統一架構內的少量學習支援來提高效能,最終達到比 Text-grad、DsPy 和類似庫更高的精度。

因此,想象一下您的 LLM 任務中的所有這些功能,同時還具有出色的除錯、輕量級設計、恰到好處的抽象平衡,以及在零次和少量學習情況下使用的能力。這就是 Adalflow 目前提供的功能!下面是一個自動最佳化的提示示例:

image

AdalFlow 提示最佳化前後的


Adalflow 功能

image\

Adalflow 工作流概述、無供應商鎖定以及統一框架中的最佳化
模型無關、令牌高效

Adalflow 支援所有主要 LLM 提供商(Mistral、OpenAI、Groq、Anthropic、Cohere),消除了供應商鎖定,同時最佳化令牌使用,最大限度地降低 API 成本,最大限度地提高提示效能。

統一的最佳化框架

Adalflow 強大的自動最佳化系統可透過簡單的引數到生成器管道實現全面的提示最佳化(包括指令和少量示例),推進 DsPy、Text-grad 和 OPRO 的研究,同時在統一框架內保持完整的除錯、視覺化和培訓功能。

模組化程式碼架構(除錯和培訓)

核心架構

Adalflow 的架構基於兩個基本類:用於 LLM 互動的 DataClass 和用於管道管理的 Component,它們共同提供了標準化介面、統一的視覺化、自動跟蹤和全面的狀態管理功能。

標準化介面

元件類透過同步呼叫(call)、非同步呼叫(acall)和初始化的標準化方法,確保所有元件的一致性。

統一的視覺化

透過 repr 方法簡化了管道結構視覺化,並可透過 extra_repr 進行擴充套件,以獲得更多特定元件的細節。

自動跟蹤

系統會遞迴監控並整合所有子元件和引數,從而建立一個用於構建和最佳化任務管道的綜合框架。

狀態管理

透過 state_dict 和 load_state_dict 方法實現了穩健的狀態處理,而 to_dict 則實現了跨各種資料型別的所有元件屬性序列化。

總結

Unsloth.ai、AdalFlow和vLLM分別在微調、預生產和最佳化以及模型服務方面展現了卓越的效能和靈活性。這些框架為開發人員提供了高效、易於使用和可擴充套件的工具,以支援整個LLM工作流程。選擇合適的框架將有助於提高LLM專案的效率和準確性,同時降低開發和維護成本。


今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管理,資訊保安,團隊建設 有參考作用 , 您可能感興趣的文章:
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
影片直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續整合/CD
網際網路電商購物車架構演變案例
網際網路業務場景下訊息佇列架構
網際網路高效研發團隊管理演進之一
訊息系統架構設計演進
網際網路電商搜尋架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
網際網路資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之效能實時度量系統演變

如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:

image_thumb2_thumb_thumb_thumb_thumb[1]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。

相關文章