91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用spaCy v3.0微調BERT變壓器

發布時間:2022-02-28 16:31:16 來源:億速云 閱讀:170 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么使用spaCy v3.0微調BERT變壓器”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么使用spaCy v3.0微調BERT變壓器”文章能幫助大家解決問題。

BERT架構

微調變壓器需要具有并行處理功能的強大 GPU。為此,我們使用 Google Colab,因為它提供免費可用的帶有 GPU 的服務器

在本教程中,我們將使用新發布的spaCy v3.0 庫來微調我們的轉換器。以下是有關如何在 spaCy v3.0 上微調 BERT 模型的分步指南。Github repo中提供了代碼和必要的文件。

要使用 spaCy v3.0 微調 BERT,我們需要以 spaCy v3.0 JSON 格式(請參閱此處)提供訓練和開發數據,然后將其轉換為.spacy二進制文件。我們將提供包含在 TSV 文件中的 IOB 格式的數據,然后將其轉換為 spaCy JSON 格式。

我只標記了 120 個職位描述,其中包含培訓數據集的技能、文憑、文憑專業和經驗等實體,以及開發數據集的大約 70 個職位描述。

在本教程中,我使用了UBIAI注釋工具,因為它具有廣泛的功能,例如:

  • 機器學習自動注釋

  • 字典、正則表達式和基于規則的自動注釋

  • 團隊協作共享注釋任務

  • 直接注釋導出為 IOB 格式

使用 UBIAI 中的正則表達式功能,我預先注釋了所有遵循“\d.*\+.*”模式的經驗提及,例如“5 + 年的 C++ 經驗”。然后我上傳了一個包含所有軟件語言的 CSV 字典并分配了實體技能。預注釋可以節省大量時間,并將幫助您最大限度地減少手動注釋。

有關 UBIAI 注釋工具的更多信息,請訪問文檔頁面。

導出的注釋將如下所示:

Python:

MS B-DIPLOMA
in O
electrical B-DIPLOMA_MAJOR
engineering I-DIPLOMA_MAJOR
or O
computer B-DIPLOMA_MAJOR
engineering I-DIPLOMA_MAJOR
. O
5+ B-EXPERIENCE
years I-EXPERIENCE
of I-EXPERIENCE
industry I-EXPERIENCE
experience I-EXPERIENCE
. I-EXPERIENCE
Familiar O
with O
storage B-SKILLS
server I-SKILLS
architectures I-SKILLS
with O
HDD B-SKILLS

為了從 IOB 轉換為 JSON(請參閱此處的文檔),我們使用 spaCy v3.0 命令:

Python:

!python -m spacy convert drive/MyDrive/train_set_bert.tsv ./ -t json -n 1 -c iob
!python -m spacy convert drive/MyDrive/dev_set_bert.tsv ./ -t json -n 1 -c iob

轉換為 spaCy v3.0 JSON 后,我們需要.spacy使用此命令將訓練和開發 JSON 文件都轉換為二進制文件(使用您自己的更新文件路徑):

Python:

!python -m spacy convert drive/MyDrive/train_set_bert.json ./ -t spacy!python -m spacy convert drive/MyDrive/dev_set_bert.json ./ -t spacy

模型訓練

打開一個新的 Google Colab 項目,并確保在筆記本設置中選擇 GPU 作為硬件加速器。

為了加速訓練過程,我們需要在 GPU 上運行并行處理。為此,我們安裝了 NVIDIA 9.2 CUDA 庫:

Python:

!wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 -O cuda-repo-ubuntu1604–9–2-local_9.2.88–1_amd64.deb!dpkg -i cuda-repo-ubuntu1604–9–2-local_9.2.88–1_amd64.deb!apt-key add /var/cuda-repo-9–2-local/7fa2af80.pub!apt-get update!apt-get install cuda-9.2

要檢查是否安裝了正確的 CUDA 編譯器,請運行: !nvcc --version

安裝 spacy 庫和 spacy 轉換器管道:

Python:

pip install -U spacy
!python -m spacy download en_core_web_trf

接下來,我們安裝為 CUDA 9.2 配置的 PyTorch 機器學習庫:

Python:

pip install torch==1.7.1+cu92 torchvision==0.8.2+cu92 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

安裝 PyTorch 后,我們需要安裝針對 CUDA 9.2 調整的 spaCy 轉換器并更改CUDA_PATH和LD_LIBRARY_PATH如下。最后,安裝 CuPy 庫,它相當于 NumPy 庫,但適用于 GPU:

Python:

!pip install -U spacy[cuda92,transformers]
!export CUDA_PATH=”/usr/local/cuda-9.2"
!export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH
!pip install cupy

SpaCy v3.0 使用config.cfg包含所有模型訓練組件的配置文件來訓練模型。在spaCy 訓練頁面,您可以選擇模型語言(本教程中為英文)、組件(NER)和硬件(GPU)使用并下載配置文件模板。

我們唯一需要做的就是填寫 train 和 dev.spacy文件的路徑。完成后,我們將文件上傳到 Google Colab。

現在我們需要使用 BERT 模型所需的其余參數自動填充配置文件;你所要做的就是運行這個命令:

Python:

!python -m spacy init fill-config drive/MyDrive/config.cfg drive/MyDrive/config_spacy.cfg

如果出現錯誤,我建議調試您的配置文件:

Python:

!python -m spacy debug data drive/MyDrive/config.cfg

我們終于準備好訓練 BERT 模型了!只需運行此命令即可開始訓練:

Python:

!python -m spacy train -g 0 drive/MyDrive/config.cfg — output ./

注意:如果出現錯誤,cupy_backends.cuda.api.driver.CUDADriverError: CUDA_ERROR_INVALID_PTX:則表示 PTX JIT 編譯失敗。只需卸載cupy并重新安裝它,它應該可以解決問題。

如果一切順利,您應該開始看到模型得分和損失正在更新。

在訓練結束時,模型將保存在文件夾下model-best。模型分數位于meta.json文件model-best夾內的文件中:

Python:

“performance”:{“ents_per_type”:{“DIPLOMA”:{“p”:0.5584415584,“r”:0.6417910448,“f”:0.5972222222},“SKILLS”:{“p”:0.6796805679,“r”:0.6742957746,“f”:0.6769774635},“DIPLOMA_MAJOR”:{“p”:0.8666666667,“r”:0.7844827586,“f”:0.8235294118},“EXPERIENCE”:{“p”:0.4831460674,“r”:0.3233082707,“f”:0.3873873874}},“ents_f”:0.661754386,“ents_p”:0.6745350501,“ents_r”:0.6494490358,“transformer_loss”:1408.9692438675,“ner_loss”:1269.1254348834}

由于訓練數據集有限,這些分數肯定遠低于生產模型水平,但值得在示例工作描述中檢查其性能。

使用 Transformer 提取實體

要在示例文本上測試模型,我們需要加載模型并在我們的文本上運行它:

Python:

nlp = spacy.load(“./model-best”)
text = ['''Qualifications- A thorough understanding of C# and .NET Core- Knowledge of good database design and usage- An understanding of NoSQL principles- Excellent problem solving and critical thinking skills- Curious about new technologies- Experience building cloud hosted, scalable web services- Azure experience is a plusRequirements- Bachelor's degree in Computer Science or related field(Equivalent experience can substitute for earned educational qualifications)- Minimum 4 years experience with C# and .NET- Minimum 4 years overall experience in developing commercial software''']for doc in nlp.pipe(text, disable=["tagger", "parser"]):    print([(ent.text, ent.label_) for ent in doc.ents])

僅使用 120 個培訓文檔就令人印象深刻!我們能夠正確提取大部分技能、文憑、文憑專業和經驗。

隨著更多的訓練數據,模型肯定會進一步改進并產生更高的分數。

關于“怎么使用spaCy v3.0微調BERT變壓器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳州市| 边坝县| 龙陵县| 志丹县| 乐山市| 烟台市| 油尖旺区| 锡林郭勒盟| 融水| 徐闻县| 革吉县| 农安县| 金阳县| 五家渠市| 三门县| 宾阳县| 达日县| 鄂伦春自治旗| 和田市| 大洼县| 高青县| 即墨市| 卫辉市| 马山县| 西丰县| 昭苏县| 青神县| 铅山县| 枣强县| 蓬安县| 大城县| 修文县| 灵石县| 黔江区| 伊金霍洛旗| 博野县| 鹿邑县| 云林县| 莲花县| 东安县| 精河县|