版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Transformers 是一個(gè)為 NLP的研究人員尋求使用 /研究/擴(kuò)展大型Transformers 模型的庫。該庫的設(shè)計(jì)有兩個(gè)強(qiáng)烈的目標(biāo):?盡可能簡單和快速使用:?我們盡可能限制了要學(xué)習(xí)的面向?qū)ο蟪橄蟮念惖臄?shù)量,實(shí)際上幾乎沒有抽象, 每個(gè)模型只需要使用三個(gè)標(biāo)準(zhǔn)類:配置、模型和tokenizer ,?所有這些類都可以通過使用公共的from_pretrained() 實(shí)例化方法從預(yù)訓(xùn)練實(shí) 例以簡單統(tǒng)一的方式初始化,該方法將負(fù)責(zé)從庫中下載,緩存和加載相關(guān)類提 供的預(yù)訓(xùn)練模型或你自己保存的模型。?因此,這個(gè)庫不是構(gòu)建神經(jīng)網(wǎng)絡(luò)模塊的工具箱。如果您想擴(kuò)展/構(gòu)建這個(gè)庫,只需使用常規(guī)的Python/PyT
2、orch模塊,并從這個(gè)庫的基類繼承,以重用諸如模型 加載/保存等功能。?提供最先進(jìn)的模型與性能盡可能接近的原始模型:?我們?yōu)槊總€(gè)架構(gòu)提供了至少一個(gè)例子,該例子再現(xiàn)了上述架構(gòu)的官方作者提供 的結(jié)果?代碼通常盡可能地接近原始代碼,這意味著一些PyTorch代碼可能不那么pytorch化,因?yàn)檫@是轉(zhuǎn)換TensorFlow代碼后的結(jié)果。其他幾個(gè)目標(biāo):?盡可能一致地暴露模型的內(nèi)部:?我們使用一個(gè)API來訪問所有的隱藏狀態(tài)和注意力權(quán)重,?對(duì)tokenizer和基本模型的API進(jìn)行了標(biāo)準(zhǔn)化,以方便在模型之間進(jìn)行切換。?結(jié)合一個(gè)主觀選擇的有前途的工具微調(diào)/調(diào)查這些模型:?向詞匯表和嵌入項(xiàng)添加新標(biāo)記以進(jìn)行微調(diào)的
3、簡單/一致的方法,?簡單的方法面具和修剪變壓器頭。主要概念該庫是建立在三個(gè)類型的類為每個(gè)模型:? model類是目前在庫中提供的8個(gè)模型架構(gòu)的PyTorch模型(torch.nn.Modules),例如 BertModel? configuration 類,它存儲(chǔ)構(gòu)建模型所需的所有參數(shù),例如 BertConfig。您不 必總是自己實(shí)例化這些配置,特別是如果您使用的是未經(jīng)任何修改的預(yù)訓(xùn)練的 模型,創(chuàng)建模型將自動(dòng)負(fù)責(zé)實(shí)例化配置(它是模型的一部分)? tokenizer類,它存儲(chǔ)每個(gè)模型的詞匯表,并在要輸送到模型的詞匯嵌入索引 列表中提供用于編碼/解碼字符串的方法,例如BertTokenizer所有
4、這些類都可以從預(yù)訓(xùn)練模型來實(shí)但J化,并使用兩種方法在本地保存 :? from_pretraining()允許您從一個(gè)預(yù)訓(xùn)練版本實(shí)例化一個(gè)模型/配置/tokenizer ,這個(gè)預(yù)訓(xùn)練版本可以由庫本身提供(目前這里列出了 27個(gè)模型), 也可以由用戶在本地(或服務(wù)器上)存儲(chǔ),? save_pretraining() 允許您在本地保存模型/配置/tokenizer ,以便可以使用 from_pretraining()重新加載它。我們將通過一些簡單的快速啟動(dòng)示例來完成這個(gè)快速啟動(dòng)之旅,看看如何實(shí)例化和使用這些類。其余的文件分為兩部分:?主要的類詳細(xì)介紹了三種主要類(配置、模型、tokenizer)的公
5、共功能/方法/屬 性,以及一些作為訓(xùn)練工具提供的優(yōu)化類,?包引用部分詳細(xì)描述了每個(gè)模型體系結(jié)構(gòu)的每個(gè)類的所有變體,特別是調(diào)用它 們時(shí)它們期望的輸入和輸出。快速入門:使用這里有兩個(gè)例子展示了一些 Bert和GPT琰以及預(yù)訓(xùn)練模型。BERTS 例讓我們首先使用BertTokenizer從文本字符串準(zhǔn)備一個(gè)標(biāo)記化的輸入(要輸入給BERT勺標(biāo)記嵌入索引列表)import torchf oil tran&foTiersftertTokenier, Sertftadel, BertForMaskedLM# M越;熊果想了解發(fā)生的值毯,逑捺以F步舞gqgr inprt logginglogging.
6、basicCcnfig(l«vel"laEginE.IhFO)# 段載箍郭繇曲橫螫證汜蕤阿匚及,tokenizer = BertTokenizer .fro(i_pretrained( ' bert-base-uncased' )# 標(biāo)注輸其test = "CLS Hho waw 3lit Hen&on ? SEP Jim Henson was a puppeteer SEP-tnkni 7 wi_tpict - tolr*mi zer tflkRni7P(tpvt)# 用萬EPtF門巾虻力自產(chǎn)磨盍我打閾睥承獺麻豆mas«ed_i
7、ndeK -toktnized_textmasked_indei - 1MASK(assert tokenized_text “ CLS', 'whc 'was小即5的,rrt ' SEP'f 'jim', 'MASKT,# 宣錦記鷲銖為間忙事累in dexed_t oken s = to ker ize r. c on uert_toke n s_to_£jd s (1 ok e nized_text J# 正義與第一總和第二同理茶的費(fèi)千4觸索求口8趨兄SepierrtS_iciS = 1% % % &,冉冉冉
8、 1,。1'1# 輯就A考辨力!摩“仁懺地蜃tak*ns_t*ntar * tarrh . tensor(ind<*sc#d_tair*n4)segnents_tenscrs = tcrc.tensor(segment5_i<i5 )讓我們看看如何使用BertModel在隱藏狀態(tài)下對(duì)輸入進(jìn)行編碼:# 期費(fèi)凈麒穗棗型費(fèi)型model BcrtHlodcl froffi_prctroincda bert t>a3e uncoicdi9 )# 遂掇蹩敵道為評(píng)宙篌式# 點(diǎn)的曲©閩特血甲窯麻鰭思持娼派承警南fodel.evalO# 命翼除南m5領(lǐng)營東盛群罐在7面上tDk
9、ers_tensor = tokens_ten5or.ta('cuda')segfliertt5_tensors = 5eenent5_teisora,to(' cjdah)nodeLto Fcuda")# 萌獨(dú)母黃套的救感次受狩回.i:h torch, no pradO:Jt看美麴A的舉就送息.嗨懿順2的寞百字舞挈outputs = KKlel(toKens_tenior, tot(efi_type_las=seements_tefisors)# Tzcm依rtam度電白逑 輸齒元遢*說尤府的靜圖為產(chǎn)業(yè)陶芭,請(qǐng)徵靠衰鎏式襠,餐聿、至北門的科子中,第一個(gè)通裁題
10、kt續(xù)整亳T脆穗薄檢 encodctilaiyrrs s outputs |# 我G己魯輸入存詞編碼為自褪瞿大小、齊到長度、極室隱港黎廢出幾stTmsnflSitr L luplefenLodUftlJidytjrh .hdptf) (1= leu(lhdeKt*J_tUcefni) > nodl * tonf . tildidtfn_h Ize)以及如何使用BertForMaskedLM預(yù)測屏蔽的標(biāo)記:# 那我潼詡森模型權(quán)重model = BertForMaskedLM. -froni_pretrained ( ' bert-be se-uncased ") mode
11、l.eval()# 由袈徐承用,怒部膏不成趣取彘um上tokensi_teri5or = tokens_ten5Qr ,to(' cuda 1 )5EgniEnt5_1:Efi5口占=seEi»ents_tensars.to( rcudaF)nodel.to( ' Cuda ")# 所戲濟(jì)薦掰記;t:L torch.nD_grad()!outputs model(tokens_tensorj tcke n_type_ids=sesRieiits_tenscrs)predictions = outputs0# 認(rèn)稔Q能檢拗飛55平廣predicted_irde
12、K = torcli. argriaK(predictiQnsfl, masked_irdex J) .iten()predi£ted_tok en = tza ke n Lze r. conve r t_id s_to_tokens ( pred i ct ed_indeM J ) 0J asser t predict&d_token = hhtnson'OpenAI GPT-2下面是一個(gè)快速開始的例子,使用 GPT2Tokenizer和GPT2LMHeadMod類以及OpenAI的預(yù)訓(xùn)練模型來預(yù)測文本提示中的下一個(gè)標(biāo)記。首先,讓我們使用GPT2TokenizerI
13、mport torch''rem tranjfornters If port GPTiTokenizer, GPTiLHHeadrtodel# 可越廣我果然箜了暮發(fā)生的陽息,樣膂以冗聲承2的“iirncrt 10g 日 in*Lt>g£ i 口艮.匚匚 rrf i g (1吧 ue 1=10£宮 in g.工 NFO)# 旗1春解翔零點(diǎn)鴛F程重?tokcri=er = GRTZJokenisert froiw_prttrflirted' epti')# 點(diǎn)闖修<text = "Wtio was Dui Hirson ?&
14、#163; Henson was a"indexed_ol<ens - tokenizer * enccde (test)» 然揍加yTorch tensortokcm5_jtensor - torch.tensor<ind-cxed_tokeri5)讓我們看看如何使用GPT2LMHeadModel成下一個(gè)跟在我們的文本后面的token :*方我演的粽靜安出卻mg = GPTZ LHhe 3 dModcl .fro<ii_p ret rained (F gpti')<售模壁罩答為諦德鐵式#在浮信烤闕有割爵境的結(jié)果逼是載里蒙的,model
15、87;evalC)#如果你有GPU,耙慶育東漁巡建金QAg上t9kcns_tensQr = tokcns_tcns&rAot' tudar)model Ao( 'cuda')*防闌癡蕾痂尼.lith torch.no_grad():cut puts - iiadelEtEJltenS_tanwx1)predictions " outputs0#拂利靛曲施產(chǎn)一手子聞姓我市同椰子字,是飛口才這個(gè)調(diào)predicted_inde> = torch.argmsK(predictions0-lt :3).itewf) predictMjtext = tok&
16、amp;ni2er_d«ode(ind«xed_jtokeri!: + pr&dieted_irbdex J)assert predicted_t«ct - 'Hhn was Jin Henson? Jim Henson was a man1每個(gè)模型架構(gòu)(Bert、GPT GPT-2 Transformer XL、XLNet和 XLM 的每個(gè)模 型類的示例,可以在文檔中找到。使用過去的GPT-2以及其他一些模型(GPT XLNet、Transfo XL、CTRL ,使用past或 memS!性,這些屬性可用于防止在使用順序解碼時(shí)重新計(jì)算鍵/值對(duì)。它
17、在生成序列時(shí)很有用,因?yàn)樽⒁饬C(jī)制的很大一部分得益于以前的計(jì)算。下面是一個(gè)使用帶past的GPT2LMHeadModei argmax解碼的完整工作示例(只能作為示例,因?yàn)閍rgmax decoding引入了大量重復(fù)):ft trarasfcnnersGPTiLHHeadHodel, GPTlTokenLzerimport toriitokenizer = CPT2T okenizer _f ron_pret r.ained (''gpti'1) model = GPTiLMIiea dftodel ."frcnjretra ircdt' gpth)E
18、cner司ted = tokenizer*en<Qde("The Manhattan bridge") context = torch.tensorfgenera±ed) pa 與七='Jonefur i in raneeCle):print(i)outputf past - mode1(context, pastpast) token = torch + argmax(output11 -1.:)generated +- taktn-tolist() context = tak en.unsqueezesequence - tokenizer, J
19、ecodefgenerate)print(seqiwnce)由于以前所有標(biāo)記的鍵/值對(duì)都包含在past,因此模型只需要一個(gè)標(biāo)記作為輸 入。Model2Model 示例編碼器-解碼器架構(gòu)需要兩個(gè)標(biāo)記化輸入:一個(gè)用于編碼器,另一個(gè)用于解碼 器。假設(shè)我們想使用Model2Model進(jìn)行生成性問答,從標(biāo)記將輸入模型的問答 開始。import torchFram transfomers mport BertTokeniztr Fto4el2Mod±l# 解逢論愛您想了解滋生前僖息,普薇數(shù)1江步import logginglogging.baicCo nfi g(leve1=logg ing.I
20、NFO)# 髓載旗掰舞、慰里搜里Jtokenizer = &ertTjkenizer.frai_fjretrained( * bert- ba5e-uncased4 )# 螭灣轍八,肉勒question = *Who k力 Jin Hecson?"er code d_q west ion = tolrenizcr, encode (quest ion)# 第得箍5 f答案)answer - "Jim Henson mds a puppeteer"馬力0門ri牡ri_ancidp r s tnlrpni 丁 尸 r, pnr檔Hrrh cwpf )# 警輟人
21、將悌加yTwx力點(diǎn)/questiontenscir = torch,tensor( fencodedquestian)an5wer_tensoir = torch. ten serf encoded_ansb*e r)讓我們看看如何使用Model2Model獲取與此(問題,答案)對(duì)相關(guān)聯(lián)的loss值:#為了時(shí)算費(fèi)先,我用祕要向解碼黑輾界語言暨林筌f橫壁生成的標(biāo)送G .liilabels = en coded.an swe rlabels_tensor - torch,temsor(lwi_labels)# 就載善謂鐮摟型31重model = ModellHodel ffrowi_pretrai
22、ned( 'bert-bsse-uncated1)# 代族型設(shè)鱉力評(píng)偌模式# 瓷請(qǐng)?jiān)拕¢}可再那的鰭案這走畿望要的,model.eval()# 先要徐斯孫,/君東西都教在3加上quest ion_ten sor = que5ti&n_tensor.to('cudd')anser_tensor - an3wer_temor*to( 'ccda1)label s_ter son = lat)els_tensor+to( 'cuda')model.to(1cudaF)# 預(yù)急譽(yù)個(gè)層的懿薄狀態(tài)將延,.ith -torch.nogrsciQ :# 有關(guān)鐮人的譚逑誨息,隨磐母Nels安擋學(xué)卷爭outputs - model(question_tensoranswer-tensor decoder_hi_label5-1ab#l!_tensor)# Transfarmers蜃密總是簿出元鋁.# 有頻簧輸出蚪諄輜苦息,喳馨畫ZelsM襠字智串#任反杓的物子盧,第一少元索星S'板失前值1*1_1O55 = OUtp(jtSB此損失可用于對(duì) Model2Model的問答任務(wù)進(jìn)行微調(diào)。假設(shè)我們對(duì)模型進(jìn)行了微 調(diào),現(xiàn)在讓我們看看如何生成答案:才過曳們里復(fù)舲儆的問趣question » "Who
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版煤炭開采權(quán)轉(zhuǎn)讓及安全生產(chǎn)保障服務(wù)合同3篇
- 二零二五年度高速公路交通安全警示標(biāo)志制作合同樣本2篇
- 二零二五版餐飲業(yè)店長任期管理與聘用合同3篇
- 二零二五版自來水廠自動(dòng)化控制系統(tǒng)升級(jí)合同3篇
- 二零二五版地鐵停車場車位租賃及公共交通服務(wù)合同2篇
- 二零二五版法院判決引導(dǎo)下的債務(wù)償還與追加借款合同3篇
- 二零二五版地下室出租合同(含倉儲(chǔ)物流)3篇
- 二零二五版深基坑降水井施工勞務(wù)分包合同2篇
- 二零二五年果園廢棄物資源化利用合同2篇
- 設(shè)備租賃公司2025年度租賃施工塔吊合同2篇
- 人教部編版七年級(jí)語文上冊《閱讀綜合實(shí)踐》示范課教學(xué)設(shè)計(jì)
- (正式版)QC∕T 1206.1-2024 電動(dòng)汽車動(dòng)力蓄電池?zé)峁芾硐到y(tǒng) 第1部分:通 用要求
- 《煤礦地質(zhì)工作細(xì)則》礦安﹝2024﹞192號(hào)
- 平面向量及其應(yīng)用試題及答案
- 消防控制室值班服務(wù)人員培訓(xùn)方案
- 《貴州旅游介紹》課件2
- 2024年中職單招(護(hù)理)專業(yè)綜合知識(shí)考試題庫(含答案)
- 無人機(jī)應(yīng)用平臺(tái)實(shí)施方案
- 挪用公款還款協(xié)議書范本
- 事業(yè)單位工作人員年度考核登記表(醫(yī)生個(gè)人總結(jié))
- 盾構(gòu)隧道施工數(shù)字化與智能化系統(tǒng)集成
評(píng)論
0/150
提交評(píng)論