該倉庫包含使用Azure機器學習服務的BERT(來自Transformers的雙向編碼器)語言表示模型的端到端配方。
更新於2020年7月7日:?在https://github.com/microsoft/onnxruntime-training-examples/tree/master/master/master/master/nvidia-bert上,可用於BERT預審計的最新實施速度要快於本倉庫中的實現。該實現使用ONNX運行時來加速培訓,並且可以在包括Azure機器學習服務在內的GPU環境中使用。有關使用ONNX運行時進行培訓和加速培訓諸如BERT和GPT-2之類的培訓的詳細信息,請訪問ONNX運行時培訓技術深水潛水。
伯特(Bert)是一種語言表示模型,其具有有效捕獲語料庫中深層和微妙的文本關係的能力而具有特色。在原始論文中,作者證明了BERT模型可以很容易地適應用於為許多NLP任務(包括文本分類,命名實體識別和問題答案)構建最新模型。在此存儲庫中,我們提供筆記本電腦,使開發人員可以從scratch上的BERT模型在語料庫中預算模型,並可以微調現有的BERT模型以解決專業任務。在此存儲庫中提供了BERT的簡要介紹,以便快速啟動Bert。
將BERT語言表示模型預處理到所需的準確性水平非常具有挑戰性。結果,大多數開發人員始於在標準語料庫(例如Wikipedia)中預先訓練的BERT模型,而不是從頭開始訓練它。如果對最終模型進行了類似於培訓步驟中使用的語料庫的語料庫的培訓,則此策略效果很好;但是,如果問題涉及與標準語料庫完全不同的專業語料庫,則結果將不會是最佳的。此外,要超越伯特的準確性,用戶將需要更改模型架構,培訓數據,成本功能,任務和優化程序。所有這些更改都需要以大參數和培訓數據大小進行探索。就Bert-large而言,這可能是相當大的,因為它具有3.4億個參數,並在非常大的文檔語料庫中進行了培訓。為了通過GPU進行支持,機器學習工程師將需要分佈式培訓支持來培訓這些大型模型。但是,由於配置這些分佈式環境的複雜性和脆弱性,即使是專家的調整也可能以受過訓練的模型的劣勢結果。
為了解決這些問題,此倉庫正在發布用於預處理伯特大型模型的工作流程。現在,開發人員可以使用自己的硬件或使用Azure Machine Learning Service在GPU上使用特定於GPU的域數據來構建自己的語言表示模型。此存儲庫中的預處理配方包括數據集和預處理腳本,因此任何人都可以嘗試建立自己的通用語言表示模型以外。總體而言,這是一個穩定的可預測的食譜,可以使研究人員自行嘗試探索的良好最佳選擇。
此存儲庫中的預處理食譜是基於pytorch預處理的bert v0.6.2包裝的包裝,這些包裹來自擁抱的臉。此預處理配方中的實現包括優化技術,例如gradient accumulation (在更新模型權重之前,累積了較小的迷你批次)和mixed precision training 。預處理的筆記本和Python模塊可在Pretrain Directory上找到。
數據準備是任何機器學習項目的重要步驟之一。對於BERT進行預訓練,需要文檔級語料庫。用於預處理的數據質量直接影響訓練有素的模型的質量。為了使數據預處理更加容易,為結果重複性,存儲庫中包含數據預處理代碼。它可用於預處理程序或其他數據集預處理。有關此詳細信息的詳細信息,請參閱數據準備中的其他信息。
此存儲庫中的Finetuning食譜顯示瞭如何使用Azure機器學習服務對BERT語言表示模型進行修訂。 Finetune目錄可在Finetune目錄中獲得用於固定的筆記本電腦和Python模塊。我們對以下內容進行了挑剔和評估我們的驗證檢查點:
一般語言理解評估(GLUE)基準是九個句子或句子的語言理解任務,用於評估和分析自然語言理解系統。 bert_eval_glue.ipynb jupyter筆記本允許用戶在Azure ML上針對這些任務運行一個驗證的檢查點。
Azure機器學習服務提供了一個基於雲的環境,以準備數據,訓練,測試,部署,管理和跟踪機器學習模型。該服務完全支持開源技術,例如Pytorch,Tensorflow和Scikit-Learn,可用於從經典ML到深度學習,監督和無監督的學習。
Jupyter筆記本可以用於使用Azureml Python SDK並提交前進和Finetune Jobs。此存儲庫包含以下不同活動的筆記本。
| 活動 | 筆記本 |
|---|---|
| 預認證 | bert_pretrain.ipynb |
| 膠合芬/評估 | bert_eval_glue.ipynb |
| 活動 | 筆記本 |
|---|---|
| 膠合芬/評估 | tensorflow-bert-azureml.ipynb |
該項目採用了Microsoft開源的行為代碼。有關更多信息,請參見《行為守則常見問題守則》或與其他問題或評論聯繫[email protected]。