最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于prompt?tuning?v2訓練好一個垂直領域的chatglm-6b

 更新時間:2023年04月11日 09:07:09   作者:路人與大師  
這篇文章主要為大家介紹了基于prompt?tuning?v2訓練好一個垂直領域的chatglm-6b的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

首先先拋出一個問題,是不是所有的文本生成數(shù)據(jù)集都適合用chatglm 6B的模型進行微調(diào)。那我們今天找到了三個數(shù)據(jù)集,分別為百科數(shù)據(jù)集、法律問答數(shù)據(jù)集、論文題目與摘要數(shù)據(jù)集、專利名稱與專利摘要數(shù)據(jù)集。

官方廣告數(shù)據(jù)集結構

官方的廣告數(shù)據(jù)集是如下結構的

{
    "content": "類型#上衣*版型#寬松*版型#顯瘦*圖案#線條*衣樣式#襯衫*衣袖型#泡泡袖*衣款式#抽繩",
    "summary": "這件襯衫的款式非常的寬松,利落的線條可以很好的隱藏身材上的小缺點,穿在身上有著很好的顯瘦效果。領口裝飾了一個可愛的抽繩,漂亮的繩結展現(xiàn)出了十足的個性,配合時尚的泡泡袖型,盡顯女性甜美可愛的氣息。"
}

官方的多輪對話數(shù)據(jù)集是如下結構的

{
    "prompt": "是的。上下水管都好的",
    "response": "那就要檢查線路了,一般風扇繼電器是由電腦控制吸合的,如果電路存在斷路,或者電腦壞了的話會出現(xiàn)繼電器不吸合的情況!",
    "history": [
        [
            "長城h3風扇不轉(zhuǎn)。繼電器好的。保險絲好的傳感器新的風扇也新的這是為什么。就是繼電器缺一個信號線",
            "用電腦能讀數(shù)據(jù)流嗎?水溫多少"
        ],
        [
            "95",
            "上下水管溫差怎么樣???空氣是不是都排干凈了呢?"
        ]
    ]
}

探索單輪生成chatglm-6B上的適配性

今天的所有實驗都是探索單輪生成chatglm-6B上的適配性。

ptuning chatglm 6B中有兩個數(shù)據(jù)集作為標準的官方微調(diào)數(shù)據(jù)集案例

我們看一下ptuning chatglm 6B中的啟動參數(shù)有哪些。

PRE_SEQ_LEN=128
LR=2e-2
CUDA_VISIBLE_DEVICES=0 python3 main.py \
    --do_train \
    --do_eval \
    --train_file AdvertiseGen/patent_train.32.128.512.json \
    --validation_file AdvertiseGen/patent_dev.32.128.512.json \
    --prompt_column content \
    --response_column summary \
    --overwrite_cache \
    --model_name_or_path THUDM/chatglm-6b \
    --output_dir output/patent_dev-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \
    --overwrite_output_dir \
    --max_source_length 128 \
    --max_target_length 512 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 16 \
    --predict_with_generate \
    --max_steps 3000 \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate $LR \
    --fp16 False\
    --pre_seq_len $PRE_SEQ_LEN

PRE_SEQ_LEN 預序列長度

LR 學習率

do_train 是否進行訓練

do_eval 是否進行預測

train_file 訓練文件相對地址

validation_file 驗證文件相對地址

prompt_column prompt 提示信息字段

response_column 響應信息字段

overwrite_cache 重寫數(shù)據(jù)集緩存。

model_name_or_path 模型名稱或模型地址

output_dir 訓練好的模型保存的地址

per_device_train_batch_size 每個設備上的訓練批次大小 在實際的訓練過程中3090顯卡可以把這個參數(shù)開到4。

模型的指令輸入應該如何拼接才可以讓chatglm更好的服務。

train.sh 中的 PRE_SEQ_LENLR 分別是 soft prompt 長度和訓練的學習率,可以進行調(diào)節(jié)以取得最佳的效果。P-Tuning-v2 方法會凍結全部的模型參數(shù),可通過調(diào)整 quantization_bit 來被原始模型的量化等級,不加此選項則為 FP16 精度加載。 在默認配置 quantization_bit=4、per_device_train_batch_size=1、gradient_accumulation_steps=16 下,INT4 的模型參數(shù)被凍結,一次訓練迭代會以 1 的批處理大小進行 16 次累加的前后向傳播,等效為 16 的總批處理大小,此時最低只需 6.7G 顯存。若想在同等批處理大小下提升訓練效率,可在二者乘積不變的情況下,加大 per_device_train_batch_size 的值,但也會帶來更多的顯存消耗,請根據(jù)實際情況酌情調(diào)整。

調(diào)整batch size后的學習率應該如何調(diào)整。

chatglm的工作流程

編輯切換為居中

添加圖片注釋,不超過 140 字(可選)

基于openbayes的3090單卡,prompt tuning v2 訓練chatglm 6B模型。

訓練專利prompt的數(shù)據(jù)的時候基礎訓練參數(shù) 修改了 per_device_train_batch_size 為 4。

 ***** Running training *****
Num examples = 3384
Num Epochs = 58
Instantaneous batch size per device = 4
Total train batch size (w. parallel, distributed & accumulation) = 64
Gradient Accumulation steps = 16
Total optimization steps = 3000
Number of trainable parameters = 29360128

其中每一個設備的batch size設定為4,總共訓練的批次大小是64。這里的總批次是因為采用了梯度累計策略,所以總訓練批次大小是64。那如果是兩張卡的話這里是128。

訓練專利prompt的數(shù)據(jù)集的時候的損失表現(xiàn)

編輯切換為居中

添加圖片注釋,不超過 140 字(可選)

中國大百科數(shù)據(jù)集

編輯切換為居中

添加圖片注釋,不超過 140 字(可選)

PyTorch DataParallel和DDP是PyTorch提供的兩個數(shù)據(jù)并行擴展。 1. PyTorch Data Parallel PyTorch Data Parallel是PyTorch框架中的一個重要組成部分,它提供了一種高效的并行計算機制,使得在GPU上運行Torch模型變得更加容易。Data Parallel使用GPU上的多線程來并行計算多個輸入特征,從而提高計算效率。 Data Parallel的實現(xiàn)方式包括: - Data parallel器:負責將輸入特征按照一定的規(guī)則劃分成一組數(shù)據(jù) parallel,例如按照相似度、長度、形狀等特征進行劃分。 - 并行化操作:將數(shù)據(jù) parallel劃分為多個并行塊,并執(zhí)行相應的操作。 - 數(shù)據(jù)預處理:對數(shù)據(jù)parallel塊進行一些預處理,例如合并、排序、歸一化等操作。 使用Data Parallel可以大大簡化GPU編程,并提高模型的訓練效率。 2. DDP 官方建議用新的DDP,采用all-reduce算法,本來設計主要是為了多機多卡使用,但是單機上也能用,使用方法如下:

初始化使用nccl后端

torch.distributed.init_process_group(backend="nccl")

模型并行化

model=torch.nn.parallel.DistributedDataParallel(model)

需要注意的是:DDP并不會自動shard數(shù)據(jù) 1. 如果自己寫數(shù)據(jù)流,得根據(jù)torch.distributed.get_rank()去shard數(shù)據(jù),獲取自己應用的一份 2. 如果用Dataset API,則需要在定義Dataloader的時候用DistributedSampler 去shard:

sampler = DistributedSampler(dataset) # 這個sampler會自動分配數(shù)據(jù)到各個gpu上
DataLoader(dataset, batch_size=batch_size, sampler=sampler)

在chatglm 6B中訓練的并行是基于transformers架構實現(xiàn)的

from transformers.trainer import Trainer

trainer默認是用torch.distributed的api來做多卡訓練的,因此可以直接支持多機多卡,單機多卡,單機單卡。

目前autodl沒有多卡資源,所以也沒辦法驗證多卡這個如何可以更高效率的執(zhí)行出來有效的結果。

不同的云計算平臺

autodl 模型下載速度比較慢 可以通過在新建環(huán)境時候選擇合適的thuglm鏡像來減少模型下載上所需要的時間。實例初始化空間為20GB系統(tǒng)空間+50GB數(shù)據(jù)空間,數(shù)據(jù)空間可以擴容。

openbayes 模型下載速度比較快,環(huán)境每次重啟的時候都要執(zhí)行一遍pip install安裝步驟。啟動訓練是需要在命令行中加上 --fp16 False,不然會報錯。實例硬盤上限只有50GB,需要注意保存策略。存儲空間費用如下。

用我的專用邀請鏈接,注冊 OpenBayes,雙方各獲得 60 分鐘 RTX 3090 使用時長,支持累積,永久有效:

注冊 - OpenBayes

要不是autodl沒有卡,我也不會來openbayes租用顯卡。最吐槽的問題就是硬盤空間問題。作為個人研究者還要為硬盤按月付費實在是讓人不舒服。目前我付費了100GB的硬盤。一個月80多塊。

以上就是基于prompt tuning v2訓練好一個垂直領域的chatglm-6b的詳細內(nèi)容,更多關于prompt tuning v2訓練chatglm-6b的資料請關注腳本之家其它相關文章!

相關文章

  • 提高github下載速度的方法可達到2MB/s(100%有效)

    提高github下載速度的方法可達到2MB/s(100%有效)

    這篇文章主要介紹了提高github下載速度的方法可達到2MB/s(100%有效),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 三大UML建模工具Visio、Rational Rose、PowerDesign的區(qū)別比較

    三大UML建模工具Visio、Rational Rose、PowerDesign的區(qū)別比較

    UML建模工具相信大家有所了解,那么你對UML建模工具Visio 、Rational Rose、PowerDesign之間的區(qū)別和聯(lián)系是否了解,這里就像大家簡單介紹一下
    2013-02-02
  • VSCode常用知識小結

    VSCode常用知識小結

    本文給大家匯總介紹了vscode的下載,安裝,常用插件以及常用的快捷鍵,非常的詳細,希望對大家使用vscode能夠有所幫助
    2020-02-02
  • 在ubuntu18.04版本安裝vscode(2種)

    在ubuntu18.04版本安裝vscode(2種)

    這篇文章主要介紹了在ubuntu18.04版本安裝vscode,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • VSCode 最全實用插件小結

    VSCode 最全實用插件小結

    VSCode插件可以幫助你更方便的操作,本文主要介紹了VSCode 最全實用插件小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • vscode使用remote-ssh免密連接服務器

    vscode使用remote-ssh免密連接服務器

    本文主要介紹了vscode使用remote-ssh免密連接服務器
    2024-03-03
  • Unity項目優(yōu)化相關技巧

    Unity項目優(yōu)化相關技巧

    隨著項目越做越大,工作年限的增加,對項目的優(yōu)化方面要求也越來越高(面試必備),本文簡單羅列一些unity項目中的優(yōu)化技巧,有需要的朋友可以參考下
    2021-09-09
  • 如何查看git分支從哪個源分支拉的

    如何查看git分支從哪個源分支拉的

    這篇文章主要介紹了如何查看git分支從哪個源分支拉的,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vscode 打字特效插件Power Mode安裝使用介紹

    Vscode 打字特效插件Power Mode安裝使用介紹

    本文給大家推薦的是一款Vscode的打字特效的插件Power Mode的安裝使用說明,插件非常的炫酷,推薦給大家,希望大家能夠喜歡
    2020-02-02
  • 使用git處理github中提交有沖突的pull request的問題

    使用git處理github中提交有沖突的pull request的問題

    這篇文章主要介紹了使用git處理github中提交有沖突的pull request,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

象山县| 秭归县| 龙州县| 天镇县| 叶城县| 阿克苏市| 漠河县| 花垣县| 花垣县| 灵璧县| 彭阳县| 如东县| 宁远县| 乐都县| 扎兰屯市| 福州市| 南川市| 繁峙县| 彰化市| 会泽县| 沙河市| 寿宁县| 稻城县| 康乐县| 洛阳市| 营口市| 三江| 固阳县| 大宁县| 桦甸市| 凌海市| 教育| 柳林县| 武城县| 宁国市| 新乡县| 宝鸡市| 阳新县| 乐清市| 佛教| 府谷县|