LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署

參考資料

1、LangChain + ChatGLM2-6B 搭建個人專屬知識庫中的LangChain + ChatGLM2-6B 構建知識庫這一節:基本的邏輯和步驟是對的,但要根據Windows和現狀做很多調整。

2、沒有動過model_config.py中的“LORA_MODEL_PATH_BAICHUAN”這一項內容,卻報錯:對報錯“LORA_MODEL_PATH_BAICHUAN”提供了重要解決思路,雖然還不是完全按文中的方式解決的。

3、[已解決ERROR: Could not install packages due to an OSError: [WinError 5] 拒絕訪問。: ‘e:\anaconda\install_r])(https://blog.csdn.net/yuan2019035055/article/details/127078460)

解決方案

一、下載源碼

采用git clone方式一直不成功,建議直接到github上搜索langchain-chatglm,在https://github.com/chatchat-space/langchain-ChatGLM頁面,點擊“CODE”->點擊“Download ZIP”,直接下載源碼,然后將文件夾改為名LangChain-ChatGLM,放到D:\_ChatGPT\langchain-chatglm_test目錄下:

二、安裝依賴

1、進入Anaconda Powershell Prompt

2、進入虛擬環境

conda activate langchain-chatglm_test

3、進入目錄

cd D:\_ChatGPT\langchain-chatglm_test\langchain-ChatGLM

4、安裝依賴

pip install -r requirements.txt --user     
pip install peft
pip install timm
pip install scikit-image
pip install torch==1.13.1+cu116 torchvision torchaudio  -f  https://download.pytorch.org/whl/cu116/torch_stable.html

三、下載模型

3.1、下載chatglm2-6b模型

1、進入Anaconda Powershell Prompt

2、創建保存chatglm2-6b的huggingface模型的公共目錄。之所以創建一個公共目錄,是因為這個模型文件是可以被各種應用共用的。注意創建目錄所在磁盤至少要有30GB的空間,因為chatglm2-6b的模型文件至少有23GB大小。并進入該目錄

mkdir -p D:\_ChatGPT\_common
cd D:\_ChatGPT\_common

3、安裝 git lfs

git lfs install

4、在這里下載chatglm2-6b的huggingface模型文件。

git clone https://huggingface.co/THUDM/chatglm2-6b

5、下載完成后,將模型文件的目錄名改為chatglm2-6b,因為Windows下目錄如果有減號,后續應用處理會出錯。

6、如果之前已下載該模型,則不必重復下載。

3.2、下載text2vec模型

1、進入Anaconda Powershell Prompt,進入公共目錄

cd D:\_ChatGPT\_common

2、安裝 git lfs

git lfs install

3、在這里下載text2vec的huggingface模型文件。

git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese

4、下載完成后,將目錄改為text2vev,因為Windows下目錄如果有減號,后續應用處理會出錯。

四、參數調整

4.1、model_config.py文件

1、進入configs目錄,修改其下的model_config.py文件,
對embedding_model_dict的參數

embedding_model_dict = {..."text2vec": r"D:\_ChatGPT\_common\text2vec",...
}

修改llm_model_dict參數。

llm_model_dict = {..."chatglm-6b": {..."pretrained_model_name": r"D:\_ChatGPT\_common\chatglm2_6b","...},...
}

將LLM_MODEL的值做修改:

LLM_MODEL = "chatglm2-6b"

4.2、loader.py文件

1、進入modes\loader目錄,修改loader.py文件

2、在if LORA_MODEL_PATH_BAICHUAN:前加一句LORA_MODEL_PATH_BAICHUAN = False,如下所示:

            if torch.cuda.is_available() and self.llm_device.lower().startswith("cuda"):# 根據當前設備GPU數量決定是否進行多卡部署num_gpus = torch.cuda.device_count()if num_gpus < 2 and self.device_map is None:# if LORA_MODEL_PATH_BAICHUAN is not None:LORA_MODEL_PATH_BAICHUAN = Falseif LORA_MODEL_PATH_BAICHUAN:

3、在每一個mode = XXX.from_pretrained(XXX)后面加上.quantize(8).cuda(),對模型進行量化,否則加載會報內存不夠的錯誤。

五、啟動

1、關閉fanqiang軟件
2、運行如下命令

python .\webui.py

3、訪問http://localhost:7860

六、上傳文檔進行問答

1、在http://localhost:7860界面,在請選擇要加載的知識庫,選擇samples

2、向知識庫中添加一個文件,點擊上傳文件并加載,等待幾分鐘以后,模型完成訓練,即可針對上傳的文件進行問答。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34912.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34912.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34912.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

validation之自定義注解@Constraint

前言&#xff1a; 首先&#xff0c;接口參數校驗應該都不陌生&#xff0c;大部分應該都會借助javax.validation進行快捷校驗&#xff0c;一般都是在入參字段上添加NotNull、NotEmpty等&#xff0c;對于一些特殊的入參校驗邏輯&#xff0c;可能不是很適用&#xff0c;現在介紹一…

【ECMAScript】ES6-ES11學習筆記

文章目錄 注意事項1.聲明變量2.定義常量3.解構賦值4.模板字符串5.簡化對象寫法6.箭頭函數7.參數默認值8.rest參數9.擴展運算符10.Symbol11.生成器函數12.Promise基本語法13.集合set14.Map15.類class16.數值擴展17.對象私有屬性18.對象方法擴展19.js文件模塊化20.async和await21…

數據庫操作不再困難,MyBatis動態Sql標簽解析

系列文章目錄 MyBatis緩存原理 Mybatis的CachingExecutor與二級緩存 Mybatis plugin 的使用及原理 MyBatis四大組件Executor、StatementHandler、ParameterHandler、ResultSetHandler 詳解 MyBatisSpringboot 啟動到SQL執行全流程 數據庫操作不再困難&#xff0c;MyBatis動態S…

Neo4j之MATCH基礎

1】基本匹配和返回&#xff1a;查找所有節點和關系&#xff0c;返回節點的標簽和屬性。 MATCH (n) RETURN n;2】條件篩選&#xff1a;查找所有名為 "Alice" 的人物節點。 MATCH (person:Person {name: Alice}) RETURN person;3】關系查詢&#xff1a;查找所有和 &q…

Centos7.6 安裝mysql過程全記錄

在centos 7.6上 離線安裝mysql 的步驟&#xff0c;可參考下文&#xff1a; 一、查看當前MySQL的安裝情況并卸載 1. 查看當前MySQL的安裝情況 查找之前是否安裝了MySQL rpm -qa|grep -i mysql 2.卸載mysql 如果已經安裝mysql&#xff0c;則需要先停止MySQL&#xff0c;再刪除…

YOLOv5、YOLOv8改進:MobileViT:輕量通用且適合移動端的視覺Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 論文&#xff1a;https://arxiv.org/abs/2110.02178 1簡介 MobileviT是一個用于移動設備的輕量級通用可視化Transformer&#xff0c;據作者介紹&#xff0c;這是第一次基于輕量級CNN網絡性…

LeetCode150道面試經典題--單詞規律(簡單)

1.題目 給定一種規律 pattern 和一個字符串 s &#xff0c;判斷 s 是否遵循相同的規律。 這里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每個字母和字符串 s 中的每個非空單詞之間存在著雙向連接的對應規律。 2.示例 pattern"abba" s "c…

SpingBoot-Vue前后端——實現CRUD

目錄??????? 一、實例需求 ? 二、代碼實現 &#x1f3cc; 數據庫 &#x1f440; 后端實現 &#x1f4eb; 前端實現 &#x1f331; 三、源碼下載 &#x1f44b; 一、實例需求 ? 實現一個簡單的CRUD&#xff0c;包含前后端交互。 二、代碼實現 &#x1f3cc; 數…

[樹莓派]ImportError: libcblas.so.3: cannot open shared object file

嘗試在樹莓派4b安裝opencv-python,出現以下錯誤,ImportError: libcblas.so.3: cannot open shared object file: No such file or directory 解決方法&#xff0c;安裝依賴 sudo apt install libatlas-base-dev 再次import cv2就不會報這個錯誤。

約束綜合中的邏輯互斥時鐘(Logically Exclusive Clocks)

注&#xff1a;本文翻譯自Constraining Logically Exclusive Clocks in Synthesis 邏輯互斥時鐘的定義 邏輯互斥時鐘是指設計中活躍&#xff08;activate&#xff09;但不彼此影響的時鐘。常見的情況是&#xff0c;兩個時鐘作為一個多路選擇器的輸入&#xff0c;并根據sel信號…

八、解析應用程序——分析應用程序(1)

文章目錄 一、確定用戶輸入入口點1.1 URL文件路徑1.2 請求參數1.3 HTTP消息頭1.4 帶外通道 二、確定服務端技術2.1 提取版本信息2.2 HTTP指紋識別2.3 文件拓展名2.4 目錄名稱2.5 會話令牌2.6 第三方代碼組件 小結 枚舉盡可能多的應用程序內容只是解析過程的一個方面。分析應用程…

小龜帶你敲排序之冒泡排序

冒泡排序 一. 定義二.題目三. 思路分析&#xff08;圖文結合&#xff09;四. 代碼演示 一. 定義 冒泡排序&#xff08;Bubble Sort&#xff0c;臺灣譯為&#xff1a;泡沫排序或氣泡排序&#xff09;是一種簡單的排序算法。它重復地走訪過要排序的數列&#xff0c;一次比較兩個元…

【深度學習】再談向量化

前言 向量化是一種思想&#xff0c;不僅體現在可以將任意實體用向量來表示&#xff0c;更為突出的表現了人工智能的發展脈絡。向量的演進過程其實都是人工智能向前發展的時代縮影。 1.為什么人工智能需要向量化 電腦如何理解一門語言&#xff1f;電腦的底層是二進制也就是0和1&…

Arduino+esp32學習筆記

學習目標&#xff1a; 使用Arduino配置好藍牙或者wifi模塊 學習使用python配置好藍牙或者wifi模塊 學習內容&#xff08;筆記&#xff09;&#xff1a; 一、 Arduino語法基礎 Arduino語法是基于C的語法,C又是c基礎上增加了面向對象思想等進階語言。那就只記錄沒見過的。 單多…

全國各城市-貨物進出口總額和利用外資-外商直接投資額實際使用額(1999-2020年)

最新數據顯示&#xff0c;全國各城市外商直接投資額實際使用額在過去一年中呈現了穩步增長的趨勢。這一數據為研究者提供了對中國外商投資活動的全面了解&#xff0c;并對未來投資趨勢和政策制定提供了重要參考。 首先&#xff0c;這一數據反映了中國各城市作為外商投資的熱門目…

Effective Java筆記(31)利用有限制通配符來提升 API 的靈活性

參數化類型是不變的&#xff08; invariant &#xff09; 。 換句話說&#xff0c;對于任何兩個截然不同的類型 Typel 和 Type2 而言&#xff0c; List<Type1 &#xff1e;既不是 List<Type 2 &#xff1e; 的子類型&#xff0c;也不是它的超類型 。雖然 L ist<String…

Oracle自定義函數生成MySQL表結構的DDL語句

1. 自定義函數fnc_table_to_mysql create or replace function fnc_table_to_mysql ( i_owner in string, i_table_name in string, i_number_default_type in string : decimal, i_auto_incretment_column_name in stri…

Linux 文件查看命令

一、cat命令 1.cat文件名&#xff0c;查看文件內容&#xff1a; 例如&#xff0c;查看main.c文件的內容&#xff1a; 2.cat < 文件名&#xff0c;往文件中寫入數據&#xff0c; Ctrld是結束輸入 例如&#xff0c;向文件a.txt中寫入數據&#xff1a; 查看剛剛寫入a.txt的…

Yolov5(一)VOC劃分數據集、VOC轉YOLO數據集

代碼使用方法注意修改一下路徑、驗證集比例、類別名稱&#xff0c;其他均不需要改動&#xff0c;自動劃分訓練集、驗證集、建好全部文件夾、一鍵自動生成Yolo格式數據集在當前目錄下&#xff0c;大家可以直接修改相應的配置文件進行訓練。 目錄 使用方法&#xff1a; 全部代碼…

解決監督學習,深度學習報錯:AttributeError: ‘xxx‘ object has no attribute ‘module‘!!!!

哈嘍小伙伴們大家好呀&#xff0c;很長時間沒有更新啦&#xff0c;最近在研究一個問題&#xff0c;就是AttributeError: xxx object has no attribute module 今天終于是解決了&#xff0c;所以來記錄分享一下&#xff1a; 我這里出現的問題是&#xff1a; 因為我的數據比較大…