Prodigy-HF 介紹
Prodigy 是由 Explosion 公司開發的一款標註工具,該公司也因其建立的 spaCy 而聞名。它是一款完全可指令碼化的產品,並擁有一個龐大的社群。該產品功能豐富,包括與 spaCy 的緊密整合和主動學習能力。但其主要特點是可以透過 Python 進行程式設計定製。
為了促進這種可定製性,Explosion 已經開始釋出外掛。這些外掛以開放的方式與第三方工具整合,鼓勵使用者開發定製化的標註工作流。其中,一項定製功能尤其值得特別慶祝。上週,Explosion 推出了 Prodigy-HF,它提供了一些程式碼配方(recipes),可以直接與 Hugging Face 技術棧整合。這是 Prodigy 支援論壇上使用者一直強烈要求的功能,所以我們非常高興它能面世。
功能特性
第一個主要功能是,該外掛允許您在已標註的資料上訓練和複用 Hugging Face 模型。這意味著,如果您一直在我們的介面中為命名實體識別(NER)任務標註資料,您可以直接用這些資料來微調 BERT 模型。

安裝外掛後,您可以從命令列呼叫 hf.train.ner
配方,直接在您自己的資料上訓練一個 Transformer 模型。
python -m prodigy hf.train.ner fashion-train,eval:fashion-eval path/to/model-out --model "distilbert-base-uncased"
這將在您儲存於 Prodigy 的資料集上微調 distilbert-base-uncased
模型,並將其儲存到磁碟。同樣地,該外掛也透過一個非常相似的介面支援文字分類模型。
python -m prodigy hf.train.textcat fashion-train,eval:fashion-eval path/to/model-out --model "distilbert-base-uncased"
這提供了很大的靈活性,因為該工具直接與 Hugging Face transformers 的 AutoTokenizer
和 AutoModel
類整合。Hub 上的任何 Transformer 模型都可以透過一條命令在您自己的資料集上進行微調。這些模型將被序列化並儲存在磁碟上,這意味著您可以將它們上傳到 Hugging Face Hub,或者複用它們來幫助您標註資料。這可以節省大量時間,尤其是對於 NER 任務。要複用一個訓練好的 NER 模型,您可以使用 hf.correct.ner
配方。
python -m prodigy hf.correct.ner fashion-train path/to/model-out examples.jsonl
這將為您提供一個與之前類似的介面,但現在模型的預測結果也會顯示在介面中。
上傳
第二個同樣令人興奮的功能是,您現在也可以將標註好的資料集釋出到 Hugging Face Hub 上。如果您有興趣分享其他人可能想使用的資料集,這將非常有用。
python -m prodigy hf.upload <dataset_name> <username>/<repo_name>
我們特別喜歡這個上傳功能,因為它鼓勵協作。人們可以獨立地標註自己的資料集,但在與更廣泛的社群共享資料時仍然可以從中受益。
未來展望
我們希望這種與 Hugging Face 生態系統的直接整合能讓更多使用者進行更多的實驗。Hugging Face Hub 為各種任務和多種語言提供了眾多模型。我們真誠地希望,這種整合能使資料標註變得更加容易,即使您的用例更具領域特定性和實驗性。
這個庫的更多功能正在開發中,如果您有更多問題,歡迎在 Prodigy 論壇上與我們聯絡。
我們還要感謝 Hugging Face 團隊對這個外掛的反饋,特別是 @davanstrien,他建議新增上傳功能。謝謝!