国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題

這篇具有很好參考價(jià)值的文章主要介紹了解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題

LLM(Large Language Model)通常擁有大量的先驗(yàn)知識(shí),使得其在許多自然語言處理任務(wù)上都有著不錯(cuò)的性能。

但,想要直接利用 LLM 完成一些任務(wù)會(huì)存在一些答案解析上的困難,如規(guī)范化輸出格式,嚴(yán)格服從輸入信息等。

因此,在這個(gè)項(xiàng)目下我們參考 ChatGLM-Tuning 的代碼,嘗試對(duì)大模型 ChatGLM-6B 進(jìn)行 Finetune,使其能夠更好的對(duì)齊我們所需要的輸出格式。

1. 環(huán)境安裝

由于 ChatGLM 需要的環(huán)境和該項(xiàng)目中其他實(shí)驗(yàn)中的環(huán)境有所不同,因此我們強(qiáng)烈建議您創(chuàng)建一個(gè)新的虛擬環(huán)境來執(zhí)行該目錄下的全部代碼。

下面,我們將以 Anaconda 為例,展示如何快速搭建一個(gè)環(huán)境:

  1. 創(chuàng)建一個(gè)虛擬環(huán)境,您可以把 llm_env 修改為任意你想要新建的環(huán)境名稱:
conda create -n llm_env python=3.8
  1. 激活新建虛擬環(huán)境并安裝響應(yīng)的依賴包:
conda activate llm_env
pip install -r requirements.txt
  1. 安裝對(duì)應(yīng)版本的 peft
cd peft-chatglm
python setup.py install

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

在該實(shí)驗(yàn)中,我們將嘗試使用 信息抽取 + 文本分類 任務(wù)的混合數(shù)據(jù)集喂給模型做 finetune,數(shù)據(jù)集在 data/mixed_train_dataset.jsonl。

每一條數(shù)據(jù)都分為 contexttarget 兩部分:

  1. context 部分是接受用戶的輸入。

  2. target 部分用于指定模型的輸出。

context 中又包括 2 個(gè)部分:

  1. Instruction:用于告知模型的具體指令,當(dāng)需要一個(gè)模型同時(shí)解決多個(gè)任務(wù)時(shí)可以設(shè)定不同的 Instruction 來幫助模型判別當(dāng)前應(yīng)當(dāng)做什么任務(wù)。

  2. Input:當(dāng)前用戶的輸入。

  • 信息抽取數(shù)據(jù)示例

Instruction 部分告訴模型現(xiàn)在需要做「閱讀理解」任務(wù),Input 部分告知模型要抽取的句子以及輸出的格式。

{
    "context": "Instruction: 你現(xiàn)在是一個(gè)很厲害的閱讀理解器,嚴(yán)格按照人類指令進(jìn)行回答。\nInput: 找到句子中的三元組信息并輸出成json給我:\n\n九玄珠是在縱橫中文網(wǎng)連載的一部小說,作者是龍馬。\nAnswer: ", 
    "target": "```json\n[{\"predicate\": \"連載網(wǎng)站\", \"object_type\": \"網(wǎng)站\", \"subject_type\": \"網(wǎng)絡(luò)小說\", \"object\": \"縱橫中文網(wǎng)\", \"subject\": \"九玄珠\"}, {\"predicate\": \"作者\(yùn)", \"object_type\": \"人物\", \"subject_type\": \"圖書作品\", \"object\": \"龍馬\", \"subject\": \"九玄珠\"}]\n```"
}
  • 文本分類數(shù)據(jù)示例

Instruction 部分告訴模型現(xiàn)在需要做「閱讀理解」任務(wù),Input 部分告知模型要抽取的句子以及輸出的格式。

{
    "context": "Instruction: 你現(xiàn)在是一個(gè)很厲害的閱讀理解器,嚴(yán)格按照人類指令進(jìn)行回答。\nInput: 下面句子可能是一條關(guān)于什么的評(píng)論,用列表形式回答:\n\n很不錯(cuò),很新鮮,快遞小哥服務(wù)很好,水果也挺甜挺脆的\nAnswer: ", 
    "target": "[\"水果\"]"
}

3. 模型訓(xùn)練

3.1 單卡訓(xùn)練

實(shí)驗(yàn)中支持使用 LoRA Finetune 和 P-Tuning 兩種微調(diào)方式。

運(yùn)行 train.sh 文件,根據(jù)自己 GPU 的顯存調(diào)節(jié) batch_size, max_source_seq_len, max_target_seq_len 參數(shù):

# LoRA Finetune
python train.py \
    --train_path data/mixed_train_dataset.jsonl \
    --dev_path data/mixed_dev_dataset.jsonl \
    --use_lora True \
    --lora_rank 8 \
    --batch_size 1 \
    --num_train_epochs 2 \
    --save_freq 1000 \
    --learning_rate 3e-5 \
    --logging_steps 100 \
    --max_source_seq_len 400 \
    --max_target_seq_len 300 \
    --save_dir checkpoints/finetune \
    --img_log_dir "log/fintune_log" \
    --img_log_name "ChatGLM Fine-Tune" \
    --device cuda:0


# P-Tuning
python train.py \
    --train_path data/mixed_train_dataset.jsonl \
    --dev_path data/mixed_dev_dataset.jsonl \
    --use_ptuning True \
    --pre_seq_len 128 \
    --batch_size 1 \
    --num_train_epochs 2 \
    --save_freq 200 \
    --learning_rate 2e-4 \
    --logging_steps 100 \
    --max_source_seq_len 400 \
    --max_target_seq_len 300 \
    --save_dir checkpoints/ptuning \
    --img_log_dir "log/fintune_log" \
    --img_log_name "ChatGLM P-Tuning" \
    --device cuda:0

成功運(yùn)行程序后,會(huì)看到如下界面:

...
global step 900 ( 49.89% ) , epoch: 1, loss: 0.78065, speed: 1.25 step/s, ETA: 00:12:05
global step 1000 ( 55.43% ) , epoch: 2, loss: 0.71768, speed: 1.25 step/s, ETA: 00:10:44
Model has saved at checkpoints/model_1000.
Evaluation Loss: 0.17297
Min eval loss has been updated: 0.26805 --> 0.17297
Best model has saved at checkpoints/model_best.
global step 1100 ( 60.98% ) , epoch: 2, loss: 0.66633, speed: 1.24 step/s, ETA: 00:09:26
global step 1200 ( 66.52% ) , epoch: 2, loss: 0.62207, speed: 1.24 step/s, ETA: 00:08:06
...

log/finetune_log 下會(huì)看到訓(xùn)練 loss 的曲線圖:

解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題,NLP知識(shí)領(lǐng)域?qū)?人工智能,自然語言處理,chatglm,大語言模型,lora,NLP

3.2 多卡訓(xùn)練

運(yùn)行 train_multi_gpu.sh 文件,通過 CUDA_VISIBLE_DEVICES 指定可用顯卡,num_processes 指定使用顯卡數(shù):

# LoRA Finetune
CUDA_VISIBLE_DEVICES=0,1 accelerate launch --multi_gpu --mixed_precision=fp16 --num_processes=2 train_multi_gpu.py \
    --train_path data/mixed_train_dataset.jsonl \
    --dev_path data/mixed_dev_dataset.jsonl \
    --use_lora True \
    --lora_rank 8 \
    --batch_size 1 \
    --num_train_epochs 2 \
    --save_freq 500 \
    --learning_rate 3e-5 \
    --logging_steps 100 \
    --max_source_seq_len 400 \
    --max_target_seq_len 300 \
    --save_dir checkpoints_parrallel/finetune \
    --img_log_dir "log/fintune_log" \
    --img_log_name "ChatGLM Fine-Tune(parallel)"


# P-Tuning
CUDA_VISIBLE_DEVICES=0,1 accelerate launch --multi_gpu --mixed_precision=fp16 --num_processes=2 train_multi_gpu.py \
    --train_path data/mixed_train_dataset.jsonl \
    --dev_path data/mixed_dev_dataset.jsonl \
    --use_ptuning True \
    --pre_seq_len 128 \
    --batch_size 1 \
    --num_train_epochs 2 \
    --save_freq 500 \
    --learning_rate 2e-4 \
    --logging_steps 100 \
    --max_source_seq_len 400 \
    --max_target_seq_len 300 \
    --save_dir checkpoints_parrallel/ptuning \
    --img_log_dir "log/fintune_log" \
    --img_log_name "ChatGLM P-Tuning(parallel)"

相同數(shù)據(jù)集下,單卡使用時(shí)間:

Used 00:27:18.

多卡(2并行)使用時(shí)間:

Used 00:13:05.

4. 模型預(yù)測

修改訓(xùn)練模型的存放路徑,運(yùn)行 python inference.py 以測試訓(xùn)練好模型的效果:

device = 'cuda:0'
max_new_tokens = 300
model_path = "checkpoints/model_1000"           # 模型存放路徑

tokenizer = AutoTokenizer.from_pretrained(
    model_path, 
    trust_remote_code=True
)

model = AutoModel.from_pretrained(
    model_path,
    trust_remote_code=True
).half().to(device)
...

您也可以使用我們提供的 Playground 來進(jìn)行模型效果測試:

streamlit run playground_local.py --server.port 8001

在瀏覽器中打開對(duì)應(yīng)的 機(jī)器ip:8001 即可訪問。

解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題,NLP知識(shí)領(lǐng)域?qū)?人工智能,自然語言處理,chatglm,大語言模型,lora,NLP

5. 標(biāo)注平臺(tái)

如果您需要標(biāo)注自己的數(shù)據(jù),也可以在 Playground 中完成。

streamlit run playground_local.py --server.port 8001

在瀏覽器中打開對(duì)應(yīng)的 機(jī)器ip:8001 即可訪問。

項(xiàng)目鏈接:https://github.com/HarderThenHarder/transformers_tasks/blob/main/LLM/chatglm_finetune/readme.md文章來源地址http://www.zghlxwxcb.cn/news/detail-679143.html

到了這里,關(guān)于解鎖ChatGLM-6B的潛力:優(yōu)化大語言模型訓(xùn)練,突破任務(wù)困難與答案解析難題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 模型訓(xùn)練系列:1、用清華ChatGLM-6B模型部署自己的本地AI助手

    模型訓(xùn)練系列:1、用清華ChatGLM-6B模型部署自己的本地AI助手

    最近清華大學(xué)開源的ChatGLM-6B語言模型在國際上大出風(fēng)頭,僅僅62億參數(shù)的小模型,能力卻很強(qiáng)。很期待他們后續(xù)1300億參數(shù)模型130B的發(fā)布。 為什么一些能力較弱的小模型,這么受追捧?因?yàn)镃hatGPT、GPT-4雖好,畢竟被國外封鎖,而且還要付費(fèi),更重要的是,LLM要在各行業(yè)提高生

    2024年02月11日
    瀏覽(29)
  • 中英雙語對(duì)話大語言模型:ChatGLM-6B

    中英雙語對(duì)話大語言模型:ChatGLM-6B

    ChatGLM-6B 是一個(gè)開源的、支持中英雙語的對(duì)話語言模型,基于 General Language Model (GLM) 架構(gòu),具有 62 億參數(shù)。結(jié)合模型量化技術(shù),用戶可以在消費(fèi)級(jí)的顯卡上進(jìn)行本地部署(INT4 量化級(jí)別下最低只需 6GB 顯存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技術(shù),針對(duì)中文問答和對(duì)話進(jìn)行了優(yōu)

    2024年02月12日
    瀏覽(27)
  • 基于chatGLM-6B模型預(yù)訓(xùn)練,添加自己的數(shù)據(jù)集微調(diào)(linux版)(ptuning & lora)

    基于chatGLM-6B模型預(yù)訓(xùn)練,添加自己的數(shù)據(jù)集微調(diào)(linux版)(ptuning & lora)

    目錄 準(zhǔn)備工作 安裝7z ptuning預(yù)訓(xùn)練 ChatGLM-6B-Ptuning.7z 懶人包下載 上傳文件并解壓縮 拉取依賴 進(jìn)行訓(xùn)練 啟動(dòng)服務(wù) 注意事項(xiàng)(攬睿星舟云算力平臺(tái)) lora預(yù)訓(xùn)練 chatGLM-All-In-One.7z 懶人包下載 上傳文件并解壓縮 拉取依賴 進(jìn)行訓(xùn)練 啟動(dòng)服務(wù) 注意事項(xiàng)(攬睿星舟云算力平臺(tái)) 展示

    2024年02月07日
    瀏覽(24)
  • ChatGLM2-6B 大語言模型本地搭建

    ChatGLM2-6B 大語言模型本地搭建

    ChatGLM2-6B 是清華 NLP 團(tuán)隊(duì)于不久前發(fā)布的中英雙語對(duì)話模型,它具備了強(qiáng)大的問答和對(duì)話功能。擁有最大32K上下文,并且在授權(quán)后可免費(fèi)商用! ChatGLM2-6B的6B代表了訓(xùn)練參數(shù)量為60億,同時(shí)運(yùn)用了模型量化技術(shù),意味著用戶可以在消費(fèi)級(jí)的顯卡上進(jìn)行本地部署(INT4 量化級(jí)別下

    2024年01月21日
    瀏覽(47)
  • 自然語言處理 微調(diào)ChatGLM-6B大模型

    自然語言處理 微調(diào)ChatGLM-6B大模型

    bert的主要任務(wù)是隨機(jī)的去除掉某個(gè)單詞,使用上下文將其預(yù)測出來(相當(dāng)于完形填空任務(wù)); GPT的主要任務(wù)是根據(jù)前面一句話,預(yù)測下面的內(nèi)容; GLM結(jié)合了bert的強(qiáng)大雙向注意力與gpt的強(qiáng)大生成能力兩種能力,被nask的地方使用單向注意力,未被mask的地方使用雙向注意力 預(yù)測

    2024年02月09日
    瀏覽(22)
  • 【ChatGLM_01】ChatGLM2-6B本地安裝與部署(大語言模型)

    【ChatGLM_01】ChatGLM2-6B本地安裝與部署(大語言模型)

    ChatGLM2-6B是一個(gè)開源的、支持中英雙語的對(duì)話語言模型,基于General Language Model (GLM)架構(gòu)。 ChatGLM2-6B具備的能力: 自我認(rèn)知:“介紹一下你的優(yōu)點(diǎn)” 提綱寫作:“幫我寫一個(gè)介紹ChatGLM的博客提綱” 文案寫作:“寫10條熱評(píng)文案” 信息抽?。骸畯纳鲜鲂畔⒅谐槿∪?、時(shí)間、事件

    2024年02月14日
    瀏覽(22)
  • 【ChatGPT】預(yù)訓(xùn)練模型微調(diào)及其應(yīng)用(ChatGLM-6B、duckduckgo_search、GPT在科研的應(yīng)用等)

    【ChatGPT】預(yù)訓(xùn)練模型微調(diào)及其應(yīng)用(ChatGLM-6B、duckduckgo_search、GPT在科研的應(yīng)用等)

    instructGPT(基于提示學(xué)習(xí)的系列模型)——GPT3.5(大規(guī)模預(yù)訓(xùn)練語言模型)——ChatGPT模型(高質(zhì)量數(shù)據(jù)標(biāo)注+反饋學(xué)習(xí))。chatGPT三大技術(shù):情景學(xué)習(xí)、思維鏈、自然指令學(xué)習(xí)。 GPT4飛躍式提升:多模態(tài)、輸入字符數(shù)量、推理能力、文本創(chuàng)造,如poem、解釋圖片含義、圖表計(jì)算等

    2023年04月16日
    瀏覽(36)
  • 開源雙語對(duì)話語言模型 ChatGLM-6B 本地私有化部署

    開源雙語對(duì)話語言模型 ChatGLM-6B 本地私有化部署

    本文首發(fā)于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一個(gè)開源的、支持中英雙語的對(duì)話語言模型,基于 General Language Model (GLM) 架構(gòu),具有 62 億參數(shù)。結(jié)合模型量化技術(shù),用戶可以在消費(fèi)級(jí)的顯卡上進(jìn)行本地部署(INT4 量化級(jí)別下最低只需 6GB 顯存)。 ChatGL

    2024年02月10日
    瀏覽(105)
  • 【自然語言處理】【大模型】ChatGLM-6B模型結(jié)構(gòu)代碼解析(單機(jī)版)

    【自然語言處理】【大模型】ChatGLM-6B模型結(jié)構(gòu)代碼解析(單機(jī)版)

    ChatGLM-6B模型結(jié)構(gòu)代碼解析(單機(jī)版) ? 本文介紹ChatGLM-6B的模型結(jié)構(gòu),代碼來自https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py。 相關(guān)博客 【自然語言處理】【長文本處理】RMT:能處理長度超過一百萬token的Transformer 【自然語言處理】【大模型】MPT模型結(jié)構(gòu)源碼解析(單機(jī)

    2024年02月06日
    瀏覽(20)
  • CP03大語言模型ChatGLM3-6B特性代碼解讀(1)

    對(duì)話模式、工具模式、代碼解釋器模式例程閱讀理解。 ChatGLM3-6B已經(jīng)進(jìn)行了中文場景的訓(xùn)練,可以直接運(yùn)用于中文場景。本次學(xué)習(xí)的示例,提供了三種模式。包括: Chat: 對(duì)話模式,在此模式下可以與模型進(jìn)行對(duì)話; Tool: 工具模式,模型除了對(duì)話外,還可以通過工具進(jìn)行其他

    2024年02月22日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包