一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大模型微調(diào)樣本構(gòu)造的trick

深度學(xué)習(xí)自然語言處理 ? 來源:包包算法筆記 ? 2023-07-10 11:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開局一道面試題。

面試官:大模型微調(diào)如何組織訓(xùn)練樣本?

你:大模型訓(xùn)練一問一答,一指令一輸出,問題和指令可以作為prompt輸入,答案作為輸出,計(jì)算loss的部分要屏蔽掉pad token。

面試官:多輪對(duì)話如何組織訓(xùn)練樣本呢?

你:假設(shè)多輪為Q1A1/Q2A2/Q3A3,那么可以轉(zhuǎn)化成 Q1—>A1, Q1A1Q2->A2, Q1A1Q2A2Q3->A3三條訓(xùn)練樣本。

面試官:這樣的話一個(gè)session變成了三條數(shù)據(jù),并且上文有依次重復(fù)的情況,這樣會(huì)不會(huì)有啥問題?

你:數(shù)據(jù)中大部分都是pad token,訓(xùn)練數(shù)據(jù)利用效率低下。另外會(huì)有數(shù)據(jù)重復(fù)膨脹的問題,訓(xùn)練數(shù)據(jù)重復(fù)膨脹為 session數(shù)量*平均輪次數(shù),且上文有重復(fù)部分,訓(xùn)練效率也會(huì)低下。

面試官:你也意識(shí)到了,有什么改進(jìn)的方法嗎?

你:有沒有辦法能一次性構(gòu)造一個(gè)session作為訓(xùn)練樣本呢?(思索)

面試官:提示你下,限制在decoder-only系列的模型上,利用模型特性,改進(jìn)樣本組織形式。

對(duì)于這個(gè)問題,我們思考下decoder-only模型有啥特點(diǎn),第一點(diǎn)很關(guān)鍵的是其attention形式是casual的,casual簡(jiǎn)單理解就是三角陣,單個(gè)token只能看到其上文的信息。

如圖所示:

c57439aa-1ece-11ee-962d-dac502259ad0.png

其二是postion_id是只有token次序含義而無需特定指代信息,(區(qū)別于GLM模型需要postion_id來標(biāo)識(shí)生成span的位置等特殊的要求)。

有了這兩點(diǎn)我們就可以設(shè)想,如果構(gòu)造多輪對(duì)話樣本的input為 Q1 A1 Q2 A2 Q3 A3 ,在計(jì)算loss的時(shí)候,只需要計(jì)算 A1 A2 和 A3 部分,豈不是就可以進(jìn)行session級(jí)別的訓(xùn)練了?

嗯為什么原來的chatglm不能用這種形式呢,雖然prefix attention可以推廣為適應(yīng)多輪訓(xùn)練的prefix attention形式,如圖:

c58d526e-1ece-11ee-962d-dac502259ad0.jpg

但是由于其postition id 無法簡(jiǎn)單按次序推廣,故不能高效訓(xùn)練,這也是chatglm初代的很大的一個(gè)問題,導(dǎo)致后續(xù)微調(diào)的效果都比較一般。

現(xiàn)在chatglm2的代碼針對(duì)這兩個(gè)問題已經(jīng)進(jìn)行了改善,可以認(rèn)為他就是典型的decoder-only模型了,具體表現(xiàn)為推斷時(shí)候attention 是casual attention的形式,position id也退化為token次序增長(zhǎng)。

那么好了,萬事具備,只欠東風(fēng)。我們據(jù)此實(shí)現(xiàn)了chatglm2-6b的代碼微調(diào)。其核心代碼邏輯為處理樣本組織的邏輯,其他的就是大模型微調(diào),大同小異了。

conversation=''
input_ids = []
labels = []
eos_id = tokenizer.eos_token_id
turn_idx = 0
for sentence in examples[prompt_column][i]:
    sentence_from = sentence["from"].lower()
    sentence_value = '[Round {}]

問:'.format(turn_idx) + sentence["value"] + '

答:' if sentence_from == 'human' else sentence["value"]+'

'
    conversation += sentence_value
    sentence_ids = tokenizer.encode(sentence_value, add_special_tokens=False)  
    label = copy.deepcopy(sentence_ids) if sentence_from != 'human' else [-100] * len(sentence_ids)               
    input_ids += sentence_ids 
    labels += label
    if sentence_from != 'human':
        input_ids += [eos_id]
        labels += [eos_id]
        turn_idx += 1
input_ids=tokenizer.encode('')+input_ids#addgmaskbos
labels =  [-100] * 2 + labels# #add padding
pad_len = max_seq_length - len(input_ids)
input_ids = input_ids + [eos_id] * pad_len 
labels = labels + [-100] * pad_len

其中有幾個(gè)關(guān)鍵的地方,就是在開頭要加上 bos和gmask,遵循模型原來的邏輯。問答提示詞和輪次prompt,還有兩個(gè) 保持和原模型保持一致,最后屏蔽掉pad部分的loss計(jì)算。

實(shí)測(cè)訓(xùn)練效果如下:

c5c0e598-1ece-11ee-962d-dac502259ad0.jpg

同樣的數(shù)據(jù)在chatglm1上 train loss只能降到2.x左右,同時(shí)評(píng)估測(cè)試集結(jié)果,在同樣的數(shù)據(jù)上rouge等指標(biāo)都有不小的提升。

我們?cè)僮屑?xì)回顧下,對(duì)話session級(jí)別訓(xùn)練和拆開訓(xùn)練從原理上有啥區(qū)別?

1.session級(jí)別訓(xùn)練,效果之一為等價(jià)batchsize變大(1個(gè)batch可以塞下更多樣本),且同一通對(duì)話產(chǎn)生的樣本在一個(gè)bs內(nèi)。

2. session級(jí)別的不同輪次產(chǎn)生的梯度是求平均的,拆開輪次構(gòu)造訓(xùn)練是求和的,這樣除了等價(jià)于lr會(huì)變大,還會(huì)影響不同輪次token權(quán)重的分配,另外還會(huì)影響norm的計(jì)算。

我們用一個(gè)簡(jiǎn)化地例子定量分析下,我們假設(shè)兩條訓(xùn)練樣本分為 1.問:A 答:xx 2.問: A答:xx 問: B答:xx問: C答:xx 則session級(jí)別訓(xùn)練影響梯度為 (Ga+(Ga +Gb + Gc)/3)/2。對(duì) A,B,C影響的權(quán)重分別為,2/3 1/6 1/6。 拆開訓(xùn)練為(Ga+Ga+ (Ga+Gb)/2+(Ga+Gb+ Gc)/3)/4。對(duì) A,B,C影響的權(quán)重分別為,17/24 5/24 1/12。 從上面的權(quán)重分布來看,session級(jí)別靠后的輪次影響權(quán)重要比拆開更大。這也是更合理的,因?yàn)榇蟛糠謭?chǎng)景下,開場(chǎng)白都是趨同和重復(fù)的。 一點(diǎn)小福利,以上面試題對(duì)應(yīng)的ChatGLM2-6B微調(diào)完整的代碼地址為: https://github.com/SpongebBob/Finetune-ChatGLM2-6B

實(shí)現(xiàn)了對(duì)于 ChatGLM2-6B 模型的全參數(shù)微調(diào),主要改進(jìn)點(diǎn)在多輪對(duì)話的交互組織方面,使用了更高效的session級(jí)別高效訓(xùn)練,訓(xùn)練效果相比原版ChatGLM-6B有較大提升。

這可能是目前全網(wǎng)效果最好的ChatGLM2-6B全參數(shù)微調(diào)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7254

    瀏覽量

    91780
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70634
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    3132

    瀏覽量

    4045

原文標(biāo)題:大模型微調(diào)樣本構(gòu)造的trick

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    千方科技推出AI大模型公路構(gòu)造物評(píng)定系統(tǒng)

    公路構(gòu)造物(橋梁、隧道、涵洞等)檢測(cè)評(píng)定是養(yǎng)護(hù)管理的核心環(huán)節(jié),通過量化構(gòu)造物的技術(shù)狀況評(píng)定等級(jí),可為養(yǎng)護(hù)資源分配決策提供技術(shù)支持。傳統(tǒng)公路構(gòu)造物技術(shù)狀況評(píng)定面臨“三座大山”:一是評(píng)定結(jié)果易受人
    的頭像 發(fā)表于 07-09 15:54 ?153次閱讀

    嵌入式AI技術(shù)漫談:怎么為訓(xùn)練AI模型采集樣本數(shù)據(jù)

    Q 需要為嵌入式AI模型提供多少樣本數(shù)據(jù)? 我在向客戶介紹如何使用AI方法設(shè)計(jì)一款客戶產(chǎn)品時(shí),客戶理解,AI嵌入式項(xiàng)目的開發(fā)都是圍繞數(shù)據(jù)展開的,如此,我經(jīng)常會(huì)被問到這樣的問題:客戶的工程師需要采集
    的頭像 發(fā)表于 06-11 16:30 ?569次閱讀

    西門子伺服電機(jī)簡(jiǎn)明樣本

    西門子伺服電機(jī)簡(jiǎn)明樣本
    發(fā)表于 04-14 15:36 ?0次下載

    請(qǐng)問是否有任何OpenVINO?樣本可以推斷批次大小大于1的檢測(cè)模型

    是否有任何OpenVINO?樣本可以推斷批次大小大于 1 的檢測(cè)模型?
    發(fā)表于 03-06 07:19

    OpenVINO?工具套件使用CRNN_CS模型運(yùn)行OpenCV* text_detection.cpp報(bào)錯(cuò)怎么解決?

    將 crnn_cs.onnx 文本識(shí)別模型轉(zhuǎn)換為中間表示 (IR): python mo.py --input_model crnn_cs.onnx 使用生成的 IR 文件運(yùn)行 OpenCV
    發(fā)表于 03-05 09:19

    使用OpenVINO?訓(xùn)練擴(kuò)展對(duì)水平文本檢測(cè)模型進(jìn)行微調(diào),收到錯(cuò)誤信息是怎么回事?

    已針對(duì)水平文本檢測(cè)模型運(yùn)行OpenVINO?訓(xùn)練擴(kuò)展中的 微調(diào) 步驟,并收到錯(cuò)誤消息: RuntimeError: Failed to find annotation files
    發(fā)表于 03-05 06:48

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀

    今天學(xué)習(xí)<基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學(xué)習(xí)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù),它指的是在已經(jīng)預(yù)訓(xùn)練好的大型深度學(xué)習(xí)模型基礎(chǔ)上,使用新的、特定任務(wù)相關(guān)的數(shù)據(jù)
    發(fā)表于 01-14 16:51

    《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型

    的應(yīng)用。MAML算法通過二階優(yōu)化找到對(duì)任務(wù)變化敏感的模型參數(shù),實(shí)現(xiàn)了快速適應(yīng)。上下文學(xué)習(xí)則引入了注意力機(jī)制,使模型能夠根據(jù)當(dāng)前場(chǎng)景動(dòng)態(tài)調(diào)整行為策略。在預(yù)訓(xùn)練-微調(diào)范式中,我們要注意任務(wù)表示的重要性:好的表示
    發(fā)表于 12-24 15:03

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.52】基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化

    你需要開發(fā)一個(gè)在線的自助產(chǎn)品咨詢工具,允許客戶使用自然語言進(jìn)行交互式的產(chǎn)品問答,比如“請(qǐng)介紹一下您公司這款產(chǎn)品與××產(chǎn)品的不同之處”。為了讓客戶有更好的體驗(yàn),你決定使用大模型構(gòu)造這樣的咨詢功能并將其嵌入
    發(fā)表于 12-04 10:50

    一種信息引導(dǎo)的量化后LLM微調(diào)新算法IR-QLoRA

    模型應(yīng)用開卷,連一向保守的蘋果,都已釋放出發(fā)展端側(cè)大模型的信號(hào)。 問題是,大語言模型(LLM)卓越的表現(xiàn)取決于“力大磚飛”,如何在資源有限的環(huán)境中部署大模型并保障性能,仍然頗具挑戰(zhàn)。
    的頭像 發(fā)表于 11-19 17:16 ?802次閱讀
    一種信息引導(dǎo)的量化后LLM<b class='flag-5'>微調(diào)</b>新算法IR-QLoRA

    大語言模型如何開發(fā)

    大語言模型的開發(fā)是一個(gè)復(fù)雜且細(xì)致的過程,涵蓋了數(shù)據(jù)準(zhǔn)備、模型架構(gòu)設(shè)計(jì)、訓(xùn)練、微調(diào)和部署等多個(gè)階段。以下是對(duì)大語言模型開發(fā)步驟的介紹,由AI部落小編整理發(fā)布。
    的頭像 發(fā)表于 11-04 10:14 ?601次閱讀

    同步與多個(gè)FPGA接口的千兆樣本ADC

    電子發(fā)燒友網(wǎng)站提供《同步與多個(gè)FPGA接口的千兆樣本ADC.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 11:32 ?0次下載
    同步與多個(gè)FPGA接口的千兆<b class='flag-5'>樣本</b>ADC

    CC13xx IQ樣本

    電子發(fā)燒友網(wǎng)站提供《CC13xx IQ樣本.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:12 ?0次下載
    CC13xx IQ<b class='flag-5'>樣本</b>

    chatglm2-6b在P40上做LORA微調(diào)

    背景: 目前,大模型的技術(shù)應(yīng)用已經(jīng)遍地開花。最快的應(yīng)用方式無非是利用自有垂直領(lǐng)域的數(shù)據(jù)進(jìn)行模型微調(diào)。chatglm2-6b在國(guó)內(nèi)開源的大模型上,效果比較突出。本文章分享的內(nèi)容是用
    的頭像 發(fā)表于 08-13 17:12 ?827次閱讀
    chatglm2-6b在P40上做LORA<b class='flag-5'>微調(diào)</b>

    示波器探頭補(bǔ)償微調(diào)旋鈕的作用

    示波器探頭補(bǔ)償微調(diào)旋鈕是一種用于調(diào)整示波器探頭性能的重要組件。 一、示波器探頭補(bǔ)償微調(diào)旋鈕的作用 校準(zhǔn)探頭性能 示波器探頭補(bǔ)償微調(diào)旋鈕的主要作用是校準(zhǔn)探頭的性能。由于探頭在生產(chǎn)過程中可能存在一定
    的頭像 發(fā)表于 08-09 11:31 ?1266次閱讀