三、模型支持


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

3.1、LLM 模型支持圖片

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

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

3.2、Embedding 模型支持圖片

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

?四、項(xiàng)目部署

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

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

4.2、安裝 Conda圖片

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

使用以下命令運(yùn)行安裝腳本:

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

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

conda --version

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

4.3、安裝 Python圖片

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

python --version 
Python 3.8.17

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

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

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

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

這里的路徑可根據(jù)大家的實(shí)際情況來調(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、項(xiàng)目依賴

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

# 進(jìn)入目錄
$ cd Langchain-Chatchat

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

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

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

# 使用阿里源
$ 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/

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

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

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

4.5、下載模型圖片


因?yàn)槟P臀募话惚容^大(ChatGLM2-6B的模型權(quán)重文件差不多12G),首先需要先安裝Git LFS

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

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

# 安裝完成后,您可以運(yùn)行以下命令來驗(yàn)證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

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

your_path換成你模型的實(shí)際下載路徑即可,我這里將模型放在?/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è)置配置項(xiàng)圖片


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

cp model_config.py.example model_config.py

復(fù)制服務(wù)相關(guān)參數(shù)配置模板文件 configs/server_config.py.example 存儲(chǔ)至項(xiàng)目路徑下 ./configs 路徑下,并重命名為?server_config.py

cp server_config.py.example server_config.py

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

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

請(qǐng)確認(rèn)已下載至本地的 Embedding 模型本地存儲(chǔ)路徑寫在 embedding_model_dict 對(duì)應(yīng)模型位置,如:

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

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

4.7、知識(shí)庫初始化圖片

當(dāng)前項(xiàng)目的知識(shí)庫信息存儲(chǔ)在數(shù)據(jù)庫中,在正式運(yùn)行項(xiàng)目之前請(qǐng)先初始化數(shù)據(jù)庫(我們強(qiáng)烈建議您在執(zhí)行操作前備份您的知識(shí)文件)。

$ python init_database.py

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

$ python init_database.py --recreate-vs

4.8、啟動(dòng)LLM服務(wù)圖片

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

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

$ python server/llm_api.py

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

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

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

4.9、啟動(dòng)API服務(wù)圖片

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

python server/api.py

啟動(dòng) API 服務(wù)后,可訪問?localhost:7861?或?{API 所在服務(wù)器 IP}:7861?FastAPI 自動(dòng)生成的 docs 進(jìn)行接口查看與測試。

4.9、啟動(dòng) Web UI 服務(wù)圖片

使用 Langchain-Chatchat 主題色啟動(dòng)?Web UI?服務(wù)(默認(rèn)使用端口?8501

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

Web UI 對(duì)話界面:

Web UI 知識(shí)庫管理頁面:

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

如果想快速部署?LangChain-Chatchat?產(chǎn)品來體驗(yàn),可以選擇Docker一鍵部署的方式,比較簡單,只需要先安裝Docker 容器,在Unbuntu環(huán)境中如何安裝 Docker & Docker Compose,可以參考文章 《Quivr 基于GPT和開源LLMs構(gòu)建本地知識(shí)庫 (更新篇)中的3.2節(jié)。這里不過多贅述。Windows安裝Docker更簡單。
Docker鏡像使用的版本一般會(huì)稍微滯后一些,如果想快速體驗(yàn)最新的版本按前面開發(fā)模式部署會(huì)更合適一點(diǎn)。LangChain-Chatchat?項(xiàng)目使用的 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)載微信公眾號(hào)@技術(shù)狂潮AI

上一篇:

基于LangChain+GLM搭建知識(shí)本地庫

下一篇:

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

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

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

查看全部API→
??

熱門場景實(shí)測,選對(duì)API

#AI文本生成大模型API

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

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)