譯者 | 核子可樂
審校 | 重樓
不同提供商發(fā)布的大語(yǔ)言模型(LLM)層出不窮——包括 Anthropic、谷歌、Meta、微軟、英偉達(dá)、OpenAI 等等——這為開發(fā)者提供了豐富的選擇,但也令復(fù)雜性一路攀升。每家提供商都有其獨(dú)特的API特性和響應(yīng)格式,使得在同一個(gè)應(yīng)用中切換模型或支持多個(gè)后端變得愈發(fā)困難。作為一個(gè)開源項(xiàng)目,LiteLLM提供統(tǒng)一接口(和網(wǎng)關(guān))以直接應(yīng)對(duì)這種碎片化問題,可使用單一且一致的格式調(diào)用超百種大模型API。
本質(zhì)上,LiteLLM就像是大模型的“萬(wàn)能遙控器”,讓開發(fā)者可以像調(diào)用 OpenAI API那樣整合各種不同模型,無(wú)需為底層提供商的差異分神。
自發(fā)布以來,LiteLLM在AI開發(fā)者社區(qū)迅速獲得關(guān)注。該項(xiàng)目的GitHub倉(cāng)庫(kù)(由Y Combinator支持的BerriAI團(tuán)隊(duì)維護(hù))已獲得超過20K 顆星和2600次分叉。之所以人氣爆棚,部分原因在于它能夠切實(shí)解決需求。Netflix、Lemonade和Rocket Money等組織都已采用LiteLLM,在最小開銷下實(shí)現(xiàn)對(duì)新模型的即時(shí)訪問。通過推動(dòng)開發(fā)者與大模型提供商間交互方式的標(biāo)準(zhǔn)化,LiteLLM承諾加快最新模型的集成速度,并在整個(gè)不斷演進(jìn)的大模型生態(tài)中提供順暢體驗(yàn)。
本文將探討LiteLLM的起源和目標(biāo),包括其核心功能和關(guān)鍵特性,并通過實(shí)際示例展示它如何簡(jiǎn)化大模型使用。我們還將介紹面向商業(yè)用途的LiteLLM企業(yè)版,并將其與其他同類方案進(jìn)行比較。
項(xiàng)目綜述——LiteLLM
LiteLLM 本質(zhì)上是一種通用的大模型API適配器,允許開發(fā)者通過標(biāo)準(zhǔn)化接口與各類提供商進(jìn)行交互。該項(xiàng)目支持多家主流大模型提供商,包括Anthropic、AWS Bedrock、AWS SageMaker、Azure OpenAI、DeepSeek、Google Vertex AI、OpenAI以及Ollama。
該項(xiàng)目圍繞兩個(gè)核心組件構(gòu)建:Python SDK和代理服務(wù)器。Python SDK為開發(fā)者提供了一個(gè)易于使用的庫(kù),用于將多種大模型整合到他們的應(yīng)用程序中。與此同時(shí),代理服務(wù)器作為生產(chǎn)級(jí)網(wǎng)關(guān),主要面向大規(guī)模大模型管理用例。它提供了集中式的成本跟蹤、訪問控制和對(duì)API調(diào)用的實(shí)時(shí)監(jiān)控。
LiteLLM的設(shè)計(jì)初衷在于簡(jiǎn)化多模型應(yīng)用程序的開發(fā)過程,并減少平臺(tái)團(tuán)隊(duì)在管理多個(gè)模型提供商時(shí)所面臨的摩擦。根據(jù)項(xiàng)目維護(hù)者的說法,LiteLLM簡(jiǎn)化了模型訪問、支出追蹤以及跨百余個(gè)大語(yǔ)言模型的故障轉(zhuǎn)移機(jī)制。
從實(shí)踐角度來看,LiteLLM旨在為開發(fā)團(tuán)隊(duì)節(jié)省時(shí)間和精力。與其為每個(gè)新的模型API編寫定制化的集成代碼,或者等待廠商發(fā)布特定SDK,開發(fā)者可以利用LiteLLM提供的統(tǒng)一SDK和代理服務(wù)器實(shí)現(xiàn)即刻兼容。
LiteLLM解決了什么問題?
當(dāng)開發(fā)者試圖將多個(gè)大模型集成到應(yīng)用程序中時(shí),往往面臨重大挑戰(zhàn)。其中最主要的問題之一就是API異構(gòu)性,因?yàn)椴煌峁┥叹哂胁煌妮斎?輸出格式和認(rèn)證機(jī)制,這可能使開發(fā)過程變得復(fù)雜。此外,為了應(yīng)對(duì)提供商宕機(jī)或請(qǐng)求頻率限制,故障轉(zhuǎn)移機(jī)制中需要編寫大量定制代碼,而這往往既易出錯(cuò)又相當(dāng)耗時(shí)。
另一個(gè)常見的痛點(diǎn)是成本透明度不足。當(dāng)多個(gè)大模型被用于不同項(xiàng)目或團(tuán)隊(duì)時(shí),準(zhǔn)確追蹤支出變得更為困難。如果沒有適當(dāng)?shù)墓ぞ撸M織可能會(huì)超出預(yù)算,或無(wú)法有效優(yōu)化成本。
LiteLLM 通過提供統(tǒng)一API來標(biāo)準(zhǔn)化所有受支持提供商之間的交互,順利解決了這些問題。此外,它還內(nèi)置有失敗請(qǐng)求自動(dòng)重試和實(shí)時(shí)成本分析等功能,使開發(fā)者能夠?qū)W⒂跇?gòu)建應(yīng)用程序,而不必分神管理基礎(chǔ)設(shè)施。
深入了解LiteLLM
LiteLLM的設(shè)計(jì)既靈活又強(qiáng)大。它的核心能力在于無(wú)論選擇哪家基座模型提供商,都能將所有API調(diào)用轉(zhuǎn)換為OpenAI熟悉的completion()語(yǔ)法。這意味著開發(fā)者可以在不大幅修改代碼庫(kù)的前提下輕松地在不同模型之間切換。
例如,一位開發(fā)者希望在某個(gè)任務(wù)中使用Anthropic Claude 3而不是 OpenAI GPT-4,那么他只需在請(qǐng)求中指定模型名稱即可。LiteLLM會(huì)接手處理其余事項(xiàng),包括身份驗(yàn)證和格式轉(zhuǎn)換。
除了統(tǒng)一API,LiteLLM還提供多項(xiàng)高級(jí)功能,如動(dòng)態(tài)故障轉(zhuǎn)移和結(jié)構(gòu)化輸出。動(dòng)態(tài)故障轉(zhuǎn)移允許請(qǐng)求在主模型故障或不可用時(shí)自動(dòng)路由到備用模型上,確保即使在提供商宕機(jī)期間也能保持高可用性。結(jié)構(gòu)化輸出則允許開發(fā)者使用Pydantic模式驗(yàn)證響應(yīng),從而減少下游處理中的錯(cuò)誤。
以下是如何使用LiteLLM以O(shè)penAI格式調(diào)用Anthropic Claude 3:
from litellm import completion
response = completion(
model="anthropic/claude-3",
messages=[{"role": "user", "content": "Explain quantum computing"}]
)
print(response.choices[0].message.content) # Outputs Claude's response
對(duì)于生產(chǎn)環(huán)境,LiteLLM代理服務(wù)器可被部署為集中式網(wǎng)關(guān)。這允許多個(gè)團(tuán)隊(duì)或應(yīng)用程序共享對(duì)大模型的訪問權(quán)限,同時(shí)仍能控制成本和用量上限:
litellm --model openai/gpt-4 --api_key sk-xyz
如此一來,客戶端就可以使用標(biāo)準(zhǔn)OpenAI庫(kù)與代理服務(wù)器交互:
import openai
client = openai.OpenAI(base_url="http://localhost:8000")
client.chat.completions.create(model="gpt-4", messages=[...])
LiteLLM關(guān)鍵用例
LiteLLM 提供多項(xiàng)適合企業(yè)場(chǎng)景的功能。其中最受歡迎的應(yīng)用之一是多云大模型編排。企業(yè)通常會(huì)使用多家提供商來確保冗余或基于特定任務(wù)優(yōu)化成本。借助LiteLLM,開發(fā)者可以無(wú)縫地在不同提供商之間分配請(qǐng)求:
response = completion(
model=["azure/gpt-4", "aws-bedrock/claude-3"],
messages=[{"role": "user", "content": "What are black holes?"}]
)
對(duì)企業(yè)而言,另一項(xiàng)關(guān)鍵功能是成本治理。LiteLLM通過代理服務(wù)器儀表板提供實(shí)時(shí)成本分析。組織可以為不同團(tuán)隊(duì)或項(xiàng)目設(shè)置月度預(yù)算,并監(jiān)控所有受支持模型的支出情況。這種級(jí)別的透明度有助于防止預(yù)算超支并確保資源得到高效配置。
審計(jì)合規(guī)性也是LiteLLM的強(qiáng)項(xiàng)之一。代理服務(wù)器會(huì)安全記錄所有輸入/輸出元數(shù)據(jù),幫助組織輕松滿足監(jiān)管要求或開展內(nèi)部審查。
總結(jié)
LiteLLM 不僅僅是開源項(xiàng)目,更是一種用于對(duì)多提供商大模型部署進(jìn)行規(guī)模化部署的全面解決方案。通過簡(jiǎn)化API交互并添加諸如動(dòng)態(tài)故障轉(zhuǎn)移和成本分析等強(qiáng)大功能,LiteLLM使開發(fā)者能夠構(gòu)建穩(wěn)健的生成式AI應(yīng)用程序,而不必分神于基礎(chǔ)設(shè)施的管理復(fù)雜性。
LiteLLM將Python SDK與代理服務(wù)器的優(yōu)勢(shì)相結(jié)合,使其既適合小型團(tuán)隊(duì)進(jìn)行AI實(shí)驗(yàn),又適合運(yùn)行關(guān)鍵任務(wù)負(fù)載的大型企業(yè)。憑借活躍的社區(qū)支持和BerriAI團(tuán)隊(duì)的持續(xù)更新,LiteLLM有望在未來幾年內(nèi)成為統(tǒng)一大模型接入的首選方案。
原文標(biāo)題:LiteLLM: An open-source gateway for unified LLM access,作者:Janakiram MSV