如何加載本地下載下來的BERT模型,pytorch踩坑!!


近期做實驗頻繁用到BERT,所以想着下載下來使用,結果各種問題,網上一搜也是簡單一句:xxx.from_pretrained("改為自己的路徑")
我只想說,大坑!!!
廢話不多說:

1.下載模型文件:

不管你是從hugging-face還是哪里下載來的模型(pytorch版)文件夾,應該包含以下三個文件:

  • config.json
  • vocab.txt
  • pytorch_model.bin

具體都是什么內容,不做介紹,你也不需要知道

2.更改文件名!!(坑點1)

很多下載的模型文件夾里面上述三個文件名字可能會有不同,一定要注意!以清華OpenCLaP上下載下來的民事BERT為例,其中包含了三個文件對應的名字為:

  • bert_config.json 看到沒有!!這個前面多了個bert_,一定要改掉!bert_config.json
  • vocab.txt
  • pytorch_model.bin

三個文件一定要與第一步中的結構一樣,名字也必須一樣

3.將文件放入自己的文件夾

這里我們在自己的工程目錄里新建一個文件夾:bert_localpath,將三個文件放入其中,最終結構如下:

bert_localpath

config.json
vocab.txt
pytorch_model.bin

4.加載(坑點2)

使用 .from_pretrained("xxxxx")方法加載,本地加載bert需要修改兩個地方,一是tokenizer部分,二是model部分:
step1、導包: from transformers import BertModel,BertTokenizer
step2、載入詞表: tokenizer = BertTokenizer.from_pretrained("./bert_localpath/") 這里要注意!!除了你自己建的文件夾名外,后面一定要加個/,才能保證該方法找到你的vocab.txt
step3、載入模型: bert = BertModel.from_pretrained("./bert_localpath") 然后,這個地方又不需要加上/

5.使用

至此,你就能夠使用你的本地bert了!!例如~outputs = bert(input_ids, token_type_ids, attention_mask)來獲得token的編碼輸出output

over,網上很多教程對小白很不友好,記錄一下自己的踩坑,希望能幫到你,如果覺得我寫的有問題的或者太簡單的,可以去看看其他人的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM