最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【奶奶看了都會】云服務(wù)器ChatGLM模型fine-tuning微調(diào),讓你擁有自己的知識庫

2023-06-04 19:41 作者:卷福同學(xué)  | 我要投稿

1.背景

大家好啊,上次給大家寫了ChatGLM-6B的部署使用教程:https://zhuanlan.zhihu.com/p/621216632

但是因為模型比較小的問題,所以日常工作中可能用不上。而且大家更希望的是模型能訓(xùn)練自己的數(shù)據(jù),為自己服務(wù)。比如:公司內(nèi)部用自己的知識庫數(shù)據(jù)進(jìn)行微調(diào),訓(xùn)練成內(nèi)部知識問答機(jī)器人,這樣對于各種業(yè)務(wù)問題答疑,機(jī)器人立馬就能給出對應(yīng)的答案,比單純的問題搜索好太多了。

還是老規(guī)矩,先讓大家看看微調(diào)前后ChatGLM對不同業(yè)務(wù)問題的回答:


2.部署ChatGLM

詳細(xì)部署教程可以參考上一篇文章:【奶奶看了都會】云服務(wù)器部署開源ChatGLM-6B,讓你擁有自己的ChatGPT

這里我們簡單說說部署步驟,重點講微調(diào)教程

2.1創(chuàng)建空間

這里我們還是用攬睿星舟的云服務(wù)器進(jìn)行操作,主要還是便宜嘛,一臺3090-24G顯存的機(jī)器只需要1.9元/小時,適合咱們這種口袋不鼓的小白玩家。

注冊地址:https://www.lanrui-ai.com/register?invitation_code=4104


然后我們選擇一臺3090-24G的服務(wù)器,創(chuàng)建工作空間,鏈接:https://www.lanrui-ai.com/console/workspace/create?mode=after&resource_name=ark.gpu.3090

配置選擇可以看下圖,公有鏡像、掛載網(wǎng)盤即可


2.2部署ChatGLM-6B

1.創(chuàng)建完工作空間后,進(jìn)入jupyter頁面,并創(chuàng)建一個終端,然后我們開始下載代碼,執(zhí)行命令

?//1.進(jìn)入data目錄
?cd data
?
?//2.下載代碼
?git clone https://github.com/THUDM/ChatGLM-6B.git

2.下載代碼后,修改requirements.txt文件,加上需要安裝的依賴

?icetk
?chardet
?streamlit
?streamlit-chat
?rouge_chinese
?nltk
?jieba
?datasets

然后執(zhí)行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

安裝依賴

3.下載模型文件

?//下載小文件
?cd ChatGLM-6B
?
?git clone https://huggingface.co/THUDM/chatglm-6b
?
?// 刪除不用的空文件
?rm -rf ice_text.model
?rm -rf pytorch_model-0000*

接著進(jìn)入到chatglm-6b目錄下,新建一個down.py的文件,把下面的代碼拷貝進(jìn)去。我們準(zhǔn)備下載大文件了

import?requests
?
?url='https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fice_text.model&dl=1'
?save_path='ice_text.model'
?# 設(shè)置header
?headers?=?{'User-Agent':?'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
?# 獲取文件并寫入
?res?=?requests.get(url,headers=headers)
?file1?=open(save_path,'wb')
?file1.write(res.content)
?file1.close()
?
?url1='https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-0000'
?url2='-of-00008.bin&dl=1'
?save_path1='pytorch_model-0000'
?save_path2='-of-00008.bin'
?headers?=?{'User-Agent':?'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
?# 循環(huán)獲取models,總共有8個基礎(chǔ)模型
?for?i?in?range(8):
??? ?url=url1+str(i+1)+url2
??? ?save_path=save_path1+str(i+1)+save_path2
??? ?res?=?requests.get(url,headers=headers)
??? ?file1?=open(save_path,'wb')
??? ?file1.write(res.content)
??? ?file1.close()
??? ?print("第{}個模型下載已完成".format(i+1))

?

保存后,命令行執(zhí)行python3 down.py等待10分鐘左右,文件下載完成后如下圖:


下面我們開始微調(diào)的流程


3.模型微調(diào)

3.1數(shù)據(jù)集準(zhǔn)備

要想訓(xùn)練自己的數(shù)據(jù),需要準(zhǔn)備提問和回答的內(nèi)容,數(shù)據(jù)格式為Json,如下是示例:

ADGEN 數(shù)據(jù)集任務(wù)為根據(jù)輸入(content)生成一段廣告詞(summary)

?{"content": "類型#褲*版型#寬松*風(fēng)格#性感*圖案#線條*褲型#闊腿褲",
? "summary": "寬松的闊腿褲這兩年真的吸粉不少,明星時尚達(dá)人的心頭愛。畢竟好穿時尚,誰都能穿出腿長2米的效果寬松的褲腿,當(dāng)然是遮肉小能手啊。上身隨性自然不拘束,面料親膚舒適貼身體驗感棒棒噠。系帶部分增加設(shè)計看點,還讓單品的設(shè)計感更強(qiáng)。腿部線條若隱若現(xiàn)的,性感撩人。顏色敲溫柔的,與褲子本身所呈現(xiàn)的風(fēng)格有點反差萌。"}

當(dāng)然,我們想訓(xùn)練自己的數(shù)據(jù)時,也可以寫腳本將自己內(nèi)部數(shù)據(jù)洗成上面的Json格式,對于大批量數(shù)據(jù)可能需要用到大數(shù)據(jù)的知識了。

這里為了方便快速看到效果,我們直接用網(wǎng)上已有的數(shù)據(jù)集進(jìn)行測試

下載過程如下:

?//進(jìn)入到ptuning目錄下
?cd ChatGLM-6B/ptuning
?
?//下載數(shù)據(jù)集文件
?wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
?
?//解壓數(shù)據(jù)集
?tar -xzvf AdvertiseGen.tar.gz

解壓后在ptuning/AdvertiseGen目錄下能看到train.jsondev.json兩個文件,就是數(shù)據(jù)集了。

3.2修改訓(xùn)練腳本

詳細(xì)說明可以看官方Github說明:https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/README.md

我們使用train.sh腳本訓(xùn)練,需要修改2個參數(shù)

  • model_name_or_path 模型文件路徑,修改為/home/user/data/ChatGLM-6B/chatglm-6b即剛才下載的模型文件

  • per_device_train_batch_size 每臺設(shè)備訓(xùn)練的批處理大小,這里設(shè)成24,因為咱們的顯存有24G,充分利用

  • gradient_accumulation_steps 修改為2

修改完后,腳本如下:


3.3訓(xùn)練數(shù)據(jù)

執(zhí)行下面命令開始訓(xùn)練數(shù)據(jù)

?bash train.sh

訓(xùn)練時間大概4個小時,訓(xùn)練完成后會生成output文件夾,在該文件夾下可看到生成的checkpoint文件夾


3.4推理

小卷畢竟不是專業(yè)算法工程師,這一步簡單理解驗證模型與自己預(yù)想的輸出結(jié)果一致程度。我們這一步進(jìn)行evaluate過程,修改evaluate.sh腳本,需要修改的內(nèi)容如下:

?//修改模型路徑
?--model_name_or_path /home/user/data/ChatGLM-6B/chatglm-6b \

然后執(zhí)行bash evaluate.sh執(zhí)行推理腳本,等待1小時后,生成的結(jié)果保存在./output/adgen-chatglm-6b-pt-8-1e-2/generated_predictions.txt


我們運行ptuning文件夾下的web_demo.sh文件,通過網(wǎng)頁訪問使用模型,腳本文件需要修改模型路徑,修改后如下:

?PRE_SEQ_LEN=128
?
?CUDA_VISIBLE_DEVICES=0 python3 web_demo.py \
? ? ?--model_name_or_path /home/user/data/ChatGLM-6B/chatglm-6b \
? ? ?--ptuning_checkpoint output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-3000 \
? ? ?--pre_seq_len $PRE_SEQ_LEN
?

修改web_demo.py文件里的監(jiān)聽IP為0.0.0.0,端口號改為27777,方便我們從瀏覽器訪問

修改后的啟動代碼是

? ? ?demo.queue().launch(share=True, inbrowser=True, server_port=27777, server_name="0.0.0.0")

如圖:


接著命令行執(zhí)行bash web_demo.sh開始運行模型,出現(xiàn)http://0.0.0.0:27777字樣的日志說明運行成功

接著回到攬睿星舟的工作空間頁面,復(fù)制調(diào)試地址后在瀏覽器打開,就能用我們微調(diào)后的模型玩耍了

3.6測試效果

我們輸入預(yù)先設(shè)計的提問,對比微調(diào)前后的回答


可以看到微調(diào)后的回答,和我們喂給模型的回答是一樣的

3.7其他注意

通過上圖也可以發(fā)現(xiàn),模型微調(diào)后出現(xiàn)了災(zāi)難性的遺忘,輸入你好,開始胡言亂語了。

即除了你教它的東西外,它原本的知識已經(jīng)混亂了。所以微調(diào)后的模型只能用于單一的場景了,非常適合知識庫問答這種。


4.寫在最后

AI技術(shù)的發(fā)展真是太快了,距離我上次寫文才過去一個月,這個月的時間就涌現(xiàn)了各種新東西。AutoGPT、Midjourney、各種ChatGPT相關(guān)的課程、文心一言、訊飛大模型、Claude等等。

有微調(diào)需求的可以在站內(nèi)私信我聯(lián)系溝通




【奶奶看了都會】云服務(wù)器ChatGLM模型fine-tuning微調(diào),讓你擁有自己的知識庫的評論 (共 條)

分享到微博請遵守國家法律
沽源县| 二连浩特市| 林州市| 鸡东县| 象州县| 博客| 彭泽县| 游戏| 竹山县| 东安县| 陇南市| 西乡县| 同江市| 吉安市| 安远县| 封丘县| 龙岩市| 漳浦县| 三亚市| 屯昌县| 左贡县| 博乐市| 林甸县| 长兴县| 昔阳县| 开平市| 磴口县| 上林县| 锡林郭勒盟| 贵南县| 洛南县| 清徐县| 许昌市| 黎城县| 炉霍县| 泰顺县| 登封市| 威宁| 来安县| 蕲春县| 洛川县|