版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章
BERT大語言模型下游任務應用案例案例介紹BERT模型輸入?yún)?shù)及案例數(shù)據(jù)集構造基于BERT模型的上市公司新聞標題情感分類案例介紹第7章
基于爬取的上市公司新聞標題數(shù)據(jù),使用BERT模型進行微調,實現(xiàn)對新聞標題的情感調性作出分類識別。情感調性標題來源積極日照港物流區(qū)塊鏈平臺上線大眾日報積極【申萬宏源中小盤周觀點】調整繼續(xù),持續(xù)看好調整企穩(wěn)后的優(yōu)質個股新浪積極依米康未來3~5年“成長無休”獲200億IDC機房總包服務新浪財經(jīng)中性云圖控股監(jiān)事曾桂菊辭職仍在公司擔任其他職務華北強電腦網(wǎng)消極雙林股份總經(jīng)理顧笑映因個人原因辭職華北強電腦網(wǎng)………………上市公司新聞標題訓練數(shù)據(jù)集(35287條記錄)標題來源長安汽車獲重慶市財政補貼7225萬元|長安汽車_新浪新聞新浪新聞
天津市河北區(qū)抽檢142批次食用農(nóng)產(chǎn)品樣品全部合格中國質量新聞網(wǎng)
重慶市市場監(jiān)督管理局:27批次食用農(nóng)產(chǎn)品不合格中國質量新聞網(wǎng)
天齊鋰業(yè)啟動配股發(fā)行降低財務負債
產(chǎn)能、業(yè)績提升有潛力
東方財富網(wǎng)
深度|奧馬電器資本賬單:沒有輸家的敗局平點經(jīng)濟
…………上市公司新聞標題測試數(shù)據(jù)集1322條記錄BERT模型輸入?yún)?shù)及分類標簽構造第7章
對訓練數(shù)據(jù)集的每一條上市公司新聞標題文本,經(jīng)過tokenize分詞,獲得其input_ids、token_type_ids、attention_mask這三個BERT輸入?yún)?shù)的表示,并分別用列表保存起來,同時把情感調性轉換為數(shù)值表示,即:“積極→0”,“中性→1”,“消極→2”importpandasaspdfromtransformersimportAutoTokenizer#定義BERT模型輸入?yún)?shù)及分類標簽存儲的列表input_ids_list=[]token_type_ids_list=[]attention_mask_list=[]label_list=[]data=pd.read_excel('./新聞標題訓練數(shù)據(jù).xlsx')……BERT微調模型的訓練集、驗證集和測試集構造第7章
這里取原始數(shù)據(jù)集的前25000條記錄作為微調模型的訓練集、25000~30000條記錄作為驗證集,剩下的作為測試集。設置模型訓練的批量大小batch_size=20,同時對訓練數(shù)據(jù)集作一定數(shù)量的緩存(取10000條記錄),以提高訓練速度。#定義一個Dataset數(shù)據(jù)類型的字典映射函數(shù)
defmap_example_to_dict(input_ids,attention_masks,token_type_ids,label):return{"input_ids":input_ids,"token_type_ids":token_type_ids,"attention_mask":attention_masks,'labels':label}#構建微調模型的訓練集、驗證集和測試集importtensorflowastftr_dataset=tf.data.Dataset.from_tensor_slices((input_ids_list[:25000],attention_mask_list[:25000],token_type_ids_list[:25000],label_list[:25000])).map(map_example_to_dict)……batch_size=20train_encoded=tr_dataset.shuffle(10000).batch(batch_size)val_encoded=val_dataset.batch(batch_size)test_encoded=test_dataset.batch(batch_size)BERT微調模型編譯、訓練與保存第7章
fromtransformersimportTFBertForSequenceClassificationimporttensorflowastfmodel=TFBertForSequenceClassification.from_pretrained('./bert-base-chinese',num_labels=3)#三分類問題#編譯與預訓練learning_rate=2e-5#學習速率number_of_epochs=2#迭代次數(shù)optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate,epsilon=1e-08,clipnorm=1)#優(yōu)化器loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)#損失函數(shù)metric=tf.keras.metrics.SparseCategoricalAccuracy('accuracy')#評估函數(shù)pile(optimizer=optimizer,loss=loss,metrics=[metric])bert_history=model.fit(train_encoded,epochs=number_of_epochs,validation_data=val_encoded)#訓練模型model.evaluate(test_encoded)#對測試集進行評估save_path='./save_model'#保持模型的文件夾,可自動創(chuàng)建tokenizer.save_pretrained(save_path)#編碼器也需要一起保持model.save_pretrained(save_path)#保存模型BERT微調模型加載及應用第7章
fromtransformersimportAutoTokenizer,TFBertForSequenceClassificationimporttensorflowastfimportpandasaspdimportnumpyasnptokenizer=AutoTokenizer.from_pretrained('./save_model')#加載微調后的tokenizermodel=TFBertForSequenceClassification.from_pretrained('./save_model')#加載微調后的modeldata=pd.read_excel('./新聞標題預測數(shù)據(jù).xlsx')#讀取預測集res=[]#預定義列表,用于存放預測結果foriinrange(len(data)):
#獲得每個預測集樣本的BERT模型輸入?yún)?shù)inputs=tokenizer.encode_plus(data.iloc[i,0],add_special_tokens=True,return_tensors="tf")
#調用加載的微調模型,并對預測樣本進行預測,返回預測結果
outputs=model(inputs)r=tf.argmax(outputs.logits,axis=1)
#print(outputs.logits),shape=(1,3)的張量,取其最大值的下標位置即為預測類別r=np.array(r)res.append(r[0])第7章BERT大語言模型下游任務應用案例案例背景與數(shù)據(jù)集解析數(shù)據(jù)預處理與標簽構建模型訓練與驗證流程模型加載與應用實踐案例背景與數(shù)據(jù)集解析第7章
中文閱讀理解是檢驗中文大模型能力的重要任務。本案例基于cmrc2018中文機器閱讀理解基準數(shù)據(jù)集(可從GitHub或百度AI開放平臺獲?。瑢ERT模型進行下游問答任務微調,構建簡體中文問答模型并檢驗其效果。案例背景與數(shù)據(jù)集解析第7章
訓練數(shù)據(jù)集為JSON格式,含2403篇文章,每篇包含ID(如TRAIN_440)、標題及段落列表;段落為列表,元素是字典,含Id、段落內容(context)和問答內容(qas);問答內容為列表,元素為字典,包含問答對,每個問答含問題ID(如TRAIN_440_QUERY_0)、問題內容(question)和答案(answers);答案為字典,含答案內容(text)及在段落中的起始位置(answer_start)。importpandasaspdA=pd.read_json('./cmrc2018_public/train.json')row11=A.iloc[11,1]數(shù)據(jù)預處理與標簽構建第7章
原始數(shù)據(jù)結構復雜,按問題ID解析為“問題ID、文章標題、段落內容、問題內容、答案(含起始位置和內容)”,統(tǒng)一保存為列表。defpre_data(A):data=[]fortinrange(len(A)):d=A.iloc[t,1]title=d['title']list_par=d['paragraphs']foriinrange(len(list_par)):d2=list_par[i]context=d2['context']qas=d2['qas']forjinrange(len(qas)):d3=qas[j]d4=d3['answers']d={'id':d3['id'],'title':title,'context':context,'question':d3['question'],'answers':{'answer_start':[d4[0]['answer_start']],'text':[d4[0]['text']]}}data.append(d)returndata#調用定義的數(shù)據(jù)解析處理函數(shù),獲得處理結果data=pre_data(A)數(shù)據(jù)預處理與標簽構建第7章
解析后數(shù)據(jù)集含10142個問題。以第11篇文章為例,含3個問題,第1個問題ID為“TRAIN_440_QUERY_0”,對應文章標題“2008年夏季奧林匹克運動會中國摔跤隊”,段落內容766字符,問題為“中國是什么時候參加奧運會摔跤項目的?”,答案為“摔跤是中國自2000年悉尼奧運會開始的參賽的項目”,起始位置56、結束位置79(需預測的標簽),可通過data[49]['context'][56:80]截取答案。數(shù)據(jù)預處理與標簽構建第7章
為了進一步理解數(shù)據(jù),也可以把第49個問題的完整信息在控制臺打印出來,在控制臺執(zhí)行命令print(data[49])。數(shù)據(jù)預處理與標簽構建第7章
BERT模型最大處理長度為512,因段落內容超長需截斷。以最大長度150、重疊步長50處理(輸入為問題+段落文本對),兼顧性能與效率。數(shù)據(jù)預處理與標簽構建第7章
截斷后原始文本分為9段,每段以“[CLS]”開頭、“[SEP]”結尾,問題與段落內容用“[SEP]”分隔,不足150長度的段落以“[PAD]”填充,段間重疊50字符(對應doc_stride=50)。數(shù)據(jù)預處理與標簽構建第7章
input_ids、token_type_ids、attention_mask、offsets_mapping等編碼信息為含9個元素的嵌套列表,每個元素長度150,與原文截成9段文本對應,后續(xù)進一步說明截斷前后編碼與文本的關系。#提取截斷后的文本與原文本的位置映射關系信息offsets=tokenized_example["offset_mapping"]#提取最后一個截斷(第9個截斷),下標67~72的位置信息index=offsets[8][67:73]#提取截斷后的字編碼信息input_ids=tokenized_example["input_ids"]#讀取原始文本contxt=example["context"]print(contxt)print('--'*30)print(contxt[index[0][0]:index[0][1]],contxt[index[1][0]:index[1][1]],contxt[index[2][0]:index[2][1]],contxt[index[3][0]:index[3][1]],contxt[index[4][0]:index[4][1]],contxt[index[5][0]:index[5][1]])print('--'*30)foriin[67,68,69,70,71,72]:
#第9個截斷的字編碼數(shù)據(jù),下標67~72的位置,解碼并輸出print(tokenizer.decode(input_ids[8][i]))數(shù)據(jù)預處理與標簽構建第7章
offsets_mapping返回截斷后文本token在原始文本中的起止位置。因原文被截成多段,若答案不在首段,其在新截斷文本中的位置需重新計算,offsets_mapping在此過程中起關鍵作用,后續(xù)將詳細說明。數(shù)據(jù)預處理與標簽構建第7章
以TRAIN_440_QUERY_0為例:問題為“中國是什么時候參加奧運會摔跤項目的?”,答案文本對應原始段落56-80位置(56起始,長度24)。因文本(問題+段落)被截為9段(每段150長度),其在截斷文本中的新起止位置可通過程序代碼及執(zhí)行結果分析獲取。數(shù)據(jù)預處理與標簽構建第7章
長文本截斷處理及答案在截斷文本中的起止位置獲取,是問答任務文本預處理的重要環(huán)節(jié)。在此基礎上,提取含答案的截斷文本的input_ids、token_type_ids、attention_mask作為BERT模型輸入?yún)?shù),同時獲取答案的起止位置作為預測標簽。模型訓練與驗證流程第7章
將輸入?yún)?shù)列表及答案起止位置標簽列表,轉化為tf.data.Dataset類型,設置batch_size=20,緩存10000條記錄以提速。數(shù)據(jù)集劃分:前8000條為訓練集,8000~10000條為驗證集,剩余為測試集。#定義一個Dataset數(shù)據(jù)類型的字典映射函數(shù)
defmap_example_to_dict(input_ids,attention_masks,token_type_ids,label1,label2):return{"input_ids":input_ids,"token_type_ids":token_type_ids,"attention_mask":attention_masks,'start_positions':label1,'end_positions':label2}#構建微調模型的訓練集、驗證集和測試集importtensorflowastftr_dataset=tf.data.Dataset.from_tensor_slices((input_ids_list[:8000],attention_mask_list[:8000],token_type_ids_list[:8000],模型訓練與驗證流程第7章
list_start_position[:8000],list_end_position[:8000])).map(map_example_to_dict)val_dataset=tf.data.Dataset.from_tensor_slices((input_ids_list[8000:10000],attention_mask_list[8000:10000],token_type_ids_list[8000:10000],list_start_position[8000:10000],list_end_position[8000:10000])).map(map_example_to_dict)
test_dataset=tf.data.Dataset.from_tensor_slices((input_ids_list[10000:],attention_mask_list[10000:],token_type_ids_list[10000:],list_start_position[10000:],list_end_position[10000:])).map(map_example_to_dict)#為訓練集、驗證集、測試集設置訓練的批量大小batch_size=20train_encoded=tr_dataset.shuffle(10000).batch(batch_size)val_encoded=val_data
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)ERP系統(tǒng)實施全流程方案
- 安全員A證考試考試押題密卷含答案詳解(滿分必刷)
- 安全員A證考試強化訓練題型匯編及完整答案詳解(有一套)
- 安全員A證考試強化訓練含完整答案詳解【各地真題】
- 安全員A證考試通關檢測卷【a卷】附答案詳解
- 積分系統(tǒng)運營方案及實施細則
- 混凝土施工技術及質量控制方案
- 安全員A證考試考前沖刺測試卷講解含完整答案詳解【奪冠系列】
- 2025年安全員A證考試預測試題附答案詳解【鞏固】
- 安全員A證考試試題(得分題)附答案詳解【預熱題】
- 生產(chǎn)安全管理三項制度
- 湖南省長沙市雨花區(qū)2025-2026學年上學期九年級物理檢測綜合練習試卷(含答案)
- 打火機工廠制度規(guī)范
- 拖欠工程款上訪信范文
- 語文-安徽省皖南八校2025屆高三上學期12月第二次大聯(lián)考試題和答案
- 《傳播學概論(第四版)》全套教學課件
- (正式版)JB∕T 7052-2024 六氟化硫高壓電氣設備用橡膠密封件 技術規(guī)范
- 單位車輛委托處理協(xié)議書
- 2024工傷免責承諾書
- DZ∕T 0321-2018 方解石礦地質勘查規(guī)范(正式版)
- 《上樞密韓太尉書》教學課件
評論
0/150
提交評論