資源編號(hào)
15771最后更新
2025-05-02《怎么讓英文大語(yǔ)言模型支持中文(2)》電子書下載: 這篇文章詳細(xì)介紹了如何對(duì)英文大語(yǔ)言模型進(jìn)行繼續(xù)預(yù)訓(xùn)練以支持中文,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、訓(xùn)練過(guò)程和使用方法……
哈嘍!伙伴們,我是小智,你們的AI向?qū)?。歡迎來(lái)到每日的AI學(xué)習(xí)時(shí)間。今天,我們將一起深入AI的奇妙世界,探索“《怎么讓英文大語(yǔ)言模型支持中文(2)》電子書下載”,并學(xué)會(huì)本篇文章中所講的全部知識(shí)點(diǎn)。還是那句話“不必遠(yuǎn)征未知,只需喚醒你的潛能!”跟著小智的步伐,我們終將學(xué)有所成,學(xué)以致用,并發(fā)現(xiàn)自身的更多可能性。話不多說(shuō),現(xiàn)在就讓我們開始這場(chǎng)激發(fā)潛能的AI學(xué)習(xí)之旅吧。
《怎么讓英文大語(yǔ)言模型支持中文(2)》電子書下載:
這篇文章詳細(xì)介紹了如何對(duì)英文大語(yǔ)言模型進(jìn)行繼續(xù)預(yù)訓(xùn)練以支持中文,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、訓(xùn)練過(guò)程和使用方法。
一、繼續(xù)預(yù)訓(xùn)練的必要性
在將英文大語(yǔ)言模型用于中文任務(wù)時(shí),由于新增了中文詞匯到詞表中,這些新詞匯未經(jīng)過(guò)訓(xùn)練,因此需要在指令微調(diào)之前進(jìn)行繼續(xù)預(yù)訓(xùn)練。
二、數(shù)據(jù)預(yù)處理
??數(shù)據(jù)來(lái)源??
使用斗破蒼穹小說(shuō)數(shù)據(jù),位于data目錄下的corpus.txt和test_corpus.txt文件,每行包含一句或多句話。
??處理步驟??
??Tokenize處理??
在test_dataset.py文件中,首先嘗試使用不同的tokenizer進(jìn)行初始化,最終確定使用IDEA – CCNL/Wenzhong2.0 – GPT2 – 110M – BertTokenizer – chinese。
定義tokenize_function函數(shù),對(duì)輸入文本進(jìn)行tokenize操作,注意文本開頭可能會(huì)添加特殊標(biāo)記(如bos_token_id),這里input_ids前后添加了21134和21133兩個(gè)標(biāo)記。
??數(shù)據(jù)拼接與分塊??
定義group_texts函數(shù),將所有文本的input_ids、attention_mask、token_type_ids分別拼接起來(lái)(展開后拼接),然后設(shè)定最大長(zhǎng)度block_size(示例中為128),將拼接后的數(shù)據(jù)按此長(zhǎng)度分塊,得到最終的輸入。
對(duì)每個(gè)文件進(jìn)行處理,先嘗試從緩存目錄加載已處理的數(shù)據(jù)集,若失敗則進(jìn)行預(yù)處理并保存到緩存目錄,最后將所有處理后的數(shù)據(jù)集合并,并按比例劃分為訓(xùn)練集和驗(yàn)證集(示例中驗(yàn)證集占比0.1)。
三、模型構(gòu)建
??模型選擇與初始化??
在test_model.py文件中,嘗試使用BertTokenizer和GPT2LMHeadModel,最終使用AutoModelForCausalLM從指定路徑(IDEA – CCNL/Wenzhong2.0 – GPT2 – 110M – BertTokenizer – chinese)加載預(yù)訓(xùn)練模型。
??模型調(diào)整??
如果是自定義tokenizer,需要重新設(shè)置模型的嵌入層和lm_head層的詞表數(shù)目,通過(guò)model.resize_token_embeddings(len(tokenizer))實(shí)現(xiàn)。
使用參數(shù)有效微調(diào)方法lora進(jìn)行微調(diào),設(shè)置額外保存的參數(shù)為transformer.wte和lm_head,可通過(guò)find_lora_names.py獲取相關(guān)名稱。
對(duì)原始chinsee – llama – alpaca使用lora保存參數(shù)存在問(wèn)題,已進(jìn)行修改并只保存一份lora權(quán)重。
使用torchrun命令進(jìn)行分布式訓(xùn)練,相關(guān)參數(shù)包括節(jié)點(diǎn)數(shù)、每個(gè)節(jié)點(diǎn)的進(jìn)程數(shù)、數(shù)據(jù)加載配置、訓(xùn)練參數(shù)(如最大步數(shù)、學(xué)習(xí)率、權(quán)重衰減等)、日志記錄策略、保存策略等,同時(shí)使用deepspeed的ZeRo以減少顯存占用。
四、模型使用
??模型加載與推理??
在test_pretrained_model.py文件中,加載經(jīng)過(guò)繼續(xù)預(yù)訓(xùn)練的模型和tokenizer。
定義generate_word_level函數(shù),對(duì)輸入文本進(jìn)行tokenize處理后,使用模型的generate方法生成文本,設(shè)置相關(guān)參數(shù)如max_length、do_sample、top_p、eos_token_id、pad_token_id和num_return_sequences。
對(duì)生成的input_ids進(jìn)行batch_decode得到最終的句子輸出。
??
結(jié)果示例??
展示了經(jīng)過(guò)繼續(xù)預(yù)訓(xùn)練的模型和使用未繼續(xù)預(yù)訓(xùn)練的模型針對(duì)相同輸入文本的生成結(jié)果對(duì)比。經(jīng)過(guò)繼續(xù)預(yù)訓(xùn)練的模型生成的句子在語(yǔ)義上更符合中文表達(dá)習(xí)慣,而未繼續(xù)預(yù)訓(xùn)練的模型生成的句子存在一些不合理的內(nèi)容(如出現(xiàn)無(wú)關(guān)的人物信息、語(yǔ)句不通順等)。
嘿,伙伴們,今天我們的AI探索之旅已經(jīng)圓滿結(jié)束。關(guān)于“《怎么讓英文大語(yǔ)言模型支持中文(2)》電子書下載”的內(nèi)容已經(jīng)分享給大家了。感謝你們的陪伴,希望這次旅程讓你對(duì)AI能夠更了解、更喜歡。謹(jǐn)記,精準(zhǔn)提問(wèn)是解鎖AI潛能的鑰匙哦!如果有小伙伴想要了解學(xué)習(xí)更多的AI知識(shí),請(qǐng)關(guān)注我們的官網(wǎng)“AI智研社”,保證讓你收獲滿滿呦!
微信掃一掃
支付寶掃一掃