一、前言
生成式人工智能領域的發展繼續加速,大型語言模型 (LLM) 的用途范圍不斷擴大。這些用途跨越不同的領域,包括個人助理、文檔檢索以及圖像和文本生成。ChatGPT 等突破性應用程序為公司進入該領域并開始使用這項技術進行構建鋪平了道路。
大公司正在構建自己的模型,例如 Meta 及其新發布的 Llama 2,以及 Microsoft 與 OpenAI 和 Meta 的合作伙伴關系,這表明該領域存在大量投資。
Hugging Face 等獨角獸初創公司以 40 億美元的估值籌集資金,主導了開源領域,讓任何人都可以輕松部署模型。然而,由于成本高昂,小公司不太可能在從頭開始建立生產級的大語言模型與大型科技巨頭競爭。
像LangChain這樣的生態系統為開發人員與這些第三方 LLM 或通常所說的基礎模型進行交互提供了一組有用的實用程序。LangChain 類幫助開發人員利用具有 I/O 和內存的模型,并提供模型鏈來完成文檔檢索等特定任務。此外,LangChain建立了標準詞匯,引入了生態系統中具有明確含義的“RetrievalChain”和“MemoryStore”等術語,從而簡化了AI工程師之間的討論。
二、LLM模型集成問題
在前面我們介紹了一個名為Quivr的開源項目,它用于構建本地知識庫。然而,當需要擴展多個不同的模型時,功能開發變得非常復雜且難以維護。為了解決這個問題,作者 Stan Girard 開發了Genoss。Genoss通過創建一個簡單的API,允許使用任何模型都可以像使用OpenAI的ChatGPT API一樣使用相同的API接口。這樣一來,Quivr的模型擴展能力就完全解耦出來了,只需要使用Genoss調用統一的API接口即可完成其他模型的接入,包括本地LLM。
目前用于與LLM提供商進行集成的工具還存在明顯的差距。隨著新型和改進型模型的引入以及技術的進步,工程師們希望能夠自由快速地實現這些模型的新功能。
LangChain為許多模型提供了類,例如OpenAI和Hugging Face,這些類基于一個通用的LLM類。然而,對于每個提供商,需要使用不同的類。這些類具有各種方法和屬性,盡管你希望它們可以直接插拔使用,但實際解決方案很少是那么簡單的。
此外,模型流式傳輸和嵌套鏈等因素進一步復雜化了問題。雖然LangChain在構建可組合部件之間的互操作性方面做得很好(例如VectorStores、DocumentLoaders和Retrievers),但在切換LLM模型時,我們需要改進開發者的體驗。
三、GenossGPT 介紹
GenossGPT提供了與GPT模型交互的通用接口,使企業能夠控制模型的使用。同時,利用LangSmith在生產環境中提供增強的可觀察性和分析功能。
Genoss是一個由LangChain支持的模型網關。它將調用任何受支持的LLM(語言模型)的過程標準化為一個統一的接口,并與OpenAI API規范兼容。只需將基本URL更改為Genoss端點,就可以輕松獲得任何LLM模型的強大功能。它可以直接集成到任何支持OpenAI接口的第三方工具中。
Genoss簡化了與多個提供者之間的交互和嵌入模型的繁重工作。通過簡單地更改模型名稱,您可以在本地開源模型、OpenAI模型、AWS Bedrock模型或任何Hugging Face模型之間進行切換。
在企業環境中使用Genoss時,管理員可以通過儀表板上的單一更改來更新模型。無需更新任何應用程序代碼即可指向新的LLM提供者,所有映射都由Genoss處理。這對于需要針對不同任務或用戶層使用不同模型的應用程序非常有用。付費用戶可以選擇具有不同優勢的模型,例如增強隱私或使用特定知識進行微調,而演示用戶則可以使用通用且更便宜的模型。
四、Genoss 接入 Llama V2 LLM模型
Llama V2是一種先進的LLM(語言模型),旨在完成各種自然語言處理任務。Genoss是一個開源平臺,使我們能夠快速運行這樣的模型,而Hugging Face提供了一個生態系統來托管和管理模型。
接下來我們將介紹如何使用Genoss通過Hugging Face的推理端點來運行Llama V2 LLM模型,將其托管在Hugging Face服務器上。
4.1、下載項目源碼
git clone https://github.com/OpenGenerativeAI/GenossGPT.git
4.2、搭建開發環境
1)、安裝 Python 3.11 版本
安裝pyenv來管理您的 Python 版本和虛擬環境:
curl -sSL https://pyenv.run | bash
如果您在 MacOS 上使用 pyenv 安裝 python 時遇到錯誤,請按照此評論操作。
將這些行添加到您的~/.bashrc
或~/.zshrc
以便能夠激活pyenv virtualenv
:
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
eval "$(pyenv init --path)"
-
重新啟動Shell終端
-
安裝正確版本
Python
的pyenv
:
pyenv install 3.11.3
2)、安裝 Poetry
安裝Poetry來管理您的依賴項和工具配置:
curl -sSL https://install.python-poetry.org | python - --version 1.5.1
如果您之前沒有安裝過任何Python版本,您可能需要在安裝Poetry之前設置全局Python版本:
pyenv global 3.11.3
3)、創建虛擬環境
創建您的虛擬環境并將其鏈接到您的項目文件夾:
pyenv virtualenv 3.11.3 genoss-gpt
pyenv local genoss-gpt
這樣,每次進入項目目錄時,你的 virtualenv 都會被激活。
4)、通過poetry安裝Python依賴
poetry install --no-root
安裝Poetry,它可以輕松安裝處理 Genoss 后端所需的一切依賴。
4.3、更新配置文件
- demo文件夾內有一個
env.example
文件。
cp .env.example .env
-
進入
demo
文件夾并更新.env
文件。 -
添加 HuggingFace API 令牌,您可以在 HuggingFace 的 settings/token 下創建該令牌。
-
添加 OpenAI API 密鑰。前往https://platform.openai.com/account/api-keys
-
最后,指定自定義 HuggingFace 端點 URL。
4.4、部署模型
-
在 HuggingFace 上找到 Llama V2 型號。
-
將其部署在您選擇的區域和云提供商中。
-
選擇所需的 GPU 并保護它,然后創建端點。
4.5、運行 Genoss
-
將部署模型中的 URL 添加到
.env
文件中。 -
運行命令以啟動流。
PYTHONPATH=. streamlit run demo/main.py
4.6、訪問 Genoss
- 現在您可以通過推理端點訪問 Genoss、HuggingFace 和 Llama V2。
-
您還可以在本地托管其他模型。
GitHub地址:https://github.com/OpenGenerativeAI/GenossGPT
五、結論
模型接口的不一致性使得使用LLM變得比較復雜。商業和開源模型沒有統一的標準接口,而Genoss提供了統一的接口標準,使得商業和開源模型能夠更加方便地使用。通過使用Genoss,開發人員可以降低學習曲線,快速構建應用程序并擴展生成式AI功能的利用。
考慮到LLM的快速發展速度,開發人員可以使用Genoss來測試最新的模型,并在本地運行私有模型進行微調。企業可以使用Genoss來控制用戶在內部和生產應用程序中對模型的使用,并利用LangSmith進行可觀察性、調試和測試。
本文通過使用Genoss和Hugging Face的Llama V2模型,我們可以輕松地完成復雜的任務。Genoss提供了一種簡化模型部署和使用的方法,同時還能夠實現系統的可擴展性。此外,它還能與其他工具(如OpenAI SDK)無縫集成,為用戶提供更多的靈活性和便利性。