三、模型支持


LangChain-Chatchat默認使用的 LLM 模型為 THUDM/chatglm2-6b,默認使用的 Embedding 模型為 moka-ai/m3e-base 為例。?

3.1、LLM 模型支持圖片

目前最新的版本中基于 FastChat 進行本地 LLM 模型接入,目前已經(jīng)正式接入支持的模型達 30+,具體清單如下:

以上模型支持列表可能隨 FastChat 更新而持續(xù)更新,可參考 FastChat 已支持模型列表。除本地模型外,本項目也支持直接接入 OpenAI API,具體設置可參考?configs/model_configs.py.example?中的?llm_model_dict?的?openai-chatgpt-3.5?配置信息。?

3.2、Embedding 模型支持圖片

對于構建文本向量的模型,目前支持調(diào)用 HuggingFace 中的 Embedding 模型,目前已支持的 Embedding 模型達 15+,具體支持清單如下:

?四、項目部署

4.1、環(huán)境說明圖片

這里就用阿里云的海外GPU服務器來演示如何部署基于ChatGLM2-6B本地知識庫,服務器基本配置信息如下:

4.2、安裝 Conda圖片

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

使用以下命令運行安裝腳本:

bash Miniconda3-latest-Linux-x86_64.sh
 source ~/.bashrc

使用以下命令檢查conda是否成功安裝:

conda --version

如果conda成功安裝,您將看到conda的版本號,我這里安裝的是conda 23.5.2。

4.3、安裝 Python圖片

首先,確信你的機器安裝了 Python 3.8 – 3.11 版本

python --version 
Python 3.8.17

如果沒有安裝或者低于這個版本,可使用conda安裝環(huán)境

conda create -p /opt/langchain-chatchat/pyenv python=3.8
激活Python虛擬環(huán)境
conda activate /opt/langchain-chatchat/pyenv

關閉環(huán)境
conda deactivate /opt/langchain-chatchat/pyenv

# 刪除環(huán)境
conda env remove -p /opt/langchain-chatchat/pyenv

這里的路徑可根據(jù)大家的實際情況來調(diào)整即可

root@iZ6w:/opt/langchain-chatchat# conda activate /opt/langchain-chatchat/pyenv
(/opt/langchain-chatchat/pyenv) root@iZ6w:/opt/langchain-chatchat# python --version
Python 3.8.17
(/opt/langchain-chatchat/pyenv) root@iZ6w:/opt/langchain-chatchat#

更新py庫

pip3 install --upgrade pip

4.4、項目依賴

# 拉取倉庫
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git

# 進入目錄
$ cd Langchain-Chatchat

使用pypi源安裝全部依賴(默認依賴包括基本運行環(huán)境(FAISS向量庫)。如果要使用 milvus/pg_vector 等向量庫,請將 requirements.txt 中相應依賴取消注釋再安裝。

pip install -r requirements.txt -i https://pypi.python.org/simple

說明:默認安裝不指定鏡像[pip install -r requirements.txt]安裝過程可能會出現(xiàn)依賴或者其它奇怪的錯誤,建議指定鏡像源下載,國外的服務器用pypi鏡像,國內(nèi)的服務器可以用阿里源或者清華源。

# 使用阿里源
$ pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/

# 使用清華源
$ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

安裝依賴的時候可能會出現(xiàn)如下錯誤:Could not find a version that satisfies the requirement setuptools_scm (from versions: none)

這個錯誤通常在安裝或配置?setuptools_scm?包時遇到問題時出現(xiàn)。只需要重新安裝setuptools_scm。

pip install --index-url https://pypi.org/simple/ setuptools_scm

4.5、下載模型圖片


因為模型文件一般比較大(ChatGLM2-6B的模型權重文件差不多12G),首先需要先安裝Git LFS

# 添加Git LFS的APT存儲庫。運行以下命令將Git LFS的APT存儲庫添加到您的系統(tǒng)中:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

# 安裝Git LFS。運行以下命令來安裝Git LFS:
sudo apt-get install git-lfs

# 安裝完成后,您可以運行以下命令來驗證Git LFS是否已成功安裝:
git lfs version

# 如果成功安裝,您將看到Git LFS的版本信息。
git-lfs/3.4.0 (GitHub; linux amd64; go 1.20.6)

下載模型放入指定文件目錄中

# 下載 LLM 模型
$ git clone https://huggingface.co/THUDM/chatglm2-6b /your_path/chatglm-6b

# 下載 Embedding 模型
$ git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese /your_path/text2vec

# 模型需要更新時,可打開模型所在文件夾后拉取最新模型文件/代碼
$ git pull

your_path換成你模型的實際下載路徑即可,我這里將模型放在?/opt/langchain-chatchat/models?目錄。

$ git clone https://huggingface.co/THUDM/chatglm2-6b /opt/langchain-chatchat/models/chatglm-6b

$ git clone https://huggingface.co/moka-ai/m3e-base /opt/langchain-chatchat/models/m3e-base

4.6、設置配置項圖片


復制模型相關參數(shù)配置模板文件 configs/model_config.py.example 存儲至項目路徑下?./configs?路徑下,并重命名為?model_config.py

cp model_config.py.example model_config.py

復制服務相關參數(shù)配置模板文件 configs/server_config.py.example 存儲至項目路徑下 ./configs 路徑下,并重命名為?server_config.py

cp server_config.py.example server_config.py

在開始執(zhí)行 Web UI 或命令行交互前,請先檢查 configs/model_config.pyconfigs/server_config.py 中的各項模型參數(shù)設計是否符合需求:

llm_model_dict={
"chatglm2-6b": {
"local_model_path": "/opt/langchain-chatchat/models/chatglm-6b",
"api_base_url": "http://localhost:8888/v1", # "name"修改為 FastChat 服務中的"api_base_url"
"api_key": "EMPTY"
}
}

請確認已下載至本地的 Embedding 模型本地存儲路徑寫在 embedding_model_dict 對應模型位置,如:

embedding_model_dict = {
"m3e-base": "/opt/langchain-chatchat/models/m3e-base",
}

如果你選擇使用OpenAI的Embedding模型,請將模型的?key寫入?embedding_model_dict中。使用該模型,你需要鞥能夠訪問OpenAI官的API,或設置代理。?

4.7、知識庫初始化圖片

當前項目的知識庫信息存儲在數(shù)據(jù)庫中,在正式運行項目之前請先初始化數(shù)據(jù)庫(我們強烈建議您在執(zhí)行操作前備份您的知識文件)。

$ python init_database.py

如果您是第一次運行本項目,知識庫尚未建立,或者配置文件中的知識庫類型、嵌入模型發(fā)生變化,或者之前的向量庫沒有開啟?normalize_L2,需要以下命令初始化或重建知識庫:

$ python init_database.py --recreate-vs

4.8、啟動LLM服務圖片

如需使用開源模型進行本地部署,需首先啟動 LLM 服務,如果啟動在線的API服務(如 OPENAI 的 API 接口),則無需啟動 LLM 服務。

這里選擇基于多進程腳本 llm_api.py 啟動 LLM 服務的方式,在項目根目錄下,執(zhí)行 server/llm_api.py 腳本啟動?LLM 模型服務:

$ python server/llm_api.py

如果部署服務器具備單張或者多張GPU顯卡,只需在 llm_api.py 中修改 create_model_worker_app 函數(shù)中,修改如下三個參數(shù):

gpus=None, 
num_gpus=1,
max_gpu_memory="20GiB"

其中,gpus?控制使用的顯卡的ID,如果 “0,1”;num_gpus?控制使用的卡數(shù);max_gpu_memory?控制每個卡使用的顯存容量。?

4.9、啟動API服務圖片

在線調(diào)用API服務的情況下,直接執(zhí)執(zhí)行 server/api.py 腳本啟動?API?服務;

python server/api.py

啟動 API 服務后,可訪問?localhost:7861?或?{API 所在服務器 IP}:7861?FastAPI 自動生成的 docs 進行接口查看與測試。

4.9、啟動 Web UI 服務圖片

使用 Langchain-Chatchat 主題色啟動?Web UI?服務(默認使用端口?8501

$ streamlit run webui.py --theme.base "light" --theme.primaryColor "#165dff" --theme.secondaryBackgroundColor "#f5f5f5" --theme.textColor "#000000"

Web UI 對話界面:

Web UI 知識庫管理頁面:

五、Docker 環(huán)境部署

如果想快速部署?LangChain-Chatchat?產(chǎn)品來體驗,可以選擇Docker一鍵部署的方式,比較簡單,只需要先安裝Docker 容器,在Unbuntu環(huán)境中如何安裝 Docker & Docker Compose,可以參考文章 《Quivr 基于GPT和開源LLMs構建本地知識庫 (更新篇)中的3.2節(jié)。這里不過多贅述。Windows安裝Docker更簡單。
Docker鏡像使用的版本一般會稍微滯后一些,如果想快速體驗最新的版本按前面開發(fā)模式部署會更合適一點。LangChain-Chatchat?項目使用的 Docker 鏡像地址是:registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0

docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0

?六、References

本文章轉(zhuǎn)載微信公眾號@技術狂潮AI

上一篇:

基于LangChain+GLM搭建知識本地庫

下一篇:

AnalyticDB向量檢索+AI 實戰(zhàn): 聲紋識別
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費