案例: 利用 Hugging Face 進行復雜文本分類

如果你對如何更快構建 ML 解決方案感興趣,請訪問 專家加速計劃 登陸頁面并通過 填寫表單 聯(lián)系我們!
專家加速計劃:
https://hf.co/support
業(yè)務背景
隨著 IT 技術不斷地在發(fā)展并重塑我們的世界,在行業(yè)內(nèi)創(chuàng)造一個更加多樣化和包容性的環(huán)境勢在必行。旨在應對這一挑戰(zhàn),Witty Works 于 2018 年成立了。Witty Works 起初是一家為組織提供多元化建議的咨詢公司,主要幫助這些組織使用包容性語言撰寫招聘廣告。為了進一步拓展這項工作,Witty Works 在 2019 年構建了一個網(wǎng)絡應用程序,以幫助用戶用英語、法語和德語編寫包容性的招聘廣告。其寫作助手可以作為瀏覽器擴展程序使用,從而迅速擴大了使用范圍,人們可方便用它來自動修復和解釋電子郵件、Linkedin 帖子、招聘廣告等內(nèi)容中的潛在偏見。該程序為內(nèi)部和外部溝通提供了一種解決方案,通過一種循序漸進方式,高亮出有偏見的詞語和短語并解釋其存在的潛在偏見,從而促進文化變革。
Witty Works:
https://www.witty.works/

首次實驗
Witty Works 起初選擇了一種基礎的機器學習方法來從頭開始構建他們的助手。對預訓練的 spaCy 模型進行遷移學習,通過此方法,助手可以:
分析文本并將單詞轉換為詞干,
進行語言學分析,
從文本中提取語言學特征 (復數(shù)和單數(shù)形式、性別) 、詞性標簽 (代詞、動詞、名詞、形容詞等) 、詞依存標簽、命名實體識別等。通過使用語言學特征并用特定知識庫來檢測和過濾所有單詞,助手可以高亮非包容性詞匯并實時建議替代方案。
挑戰(zhàn)
Witty Works 建立了一個詞匯表,其中德語和英語兩種語言各有大約 2300 個非包容性的詞匯和短語。上述基礎方法對 85% 的詞匯有效,但對上下文相關的詞匯無效。因此,需要構建一個上下文相關的非包容性詞分類器。這樣的挑戰(zhàn) (理解上下文而不是僅識別語言學特征) 使得使用 Hugging Face transformers 變得必要。
上下文相關的非包容性詞示例:
Fossil fuels are not renewable resources.
?和?He is an old fossil.
?兩句中的?fossil
。You will have a flexible schedule.
?和?You should keep your schedule flexible.
?兩句中的?flexible
。
Hugging Face 專家計劃 提供的解決方案
獲取如何正確選擇 ML 方法的指導
最初選擇的方法是使用基本版 transformers 模型 (用于提取特定非包容性詞的嵌入)。Hugging Face 專家建議從上下文相關的詞嵌入切換到上下文相關的句子嵌入。在該方法中,句子中每個詞的表示取決于其上下文。
Hugging Face 專家建議使用 Sentence Transformers 架構為整個句子生成嵌入。使用該方法,語義相似的句子間的距離小,而語義差距大的句子間的距離也大。
Sentence Transformers:
https://www.sbert.net/
在該方法中,Sentence Transformers 使用 Siamese 網(wǎng)絡和三元組網(wǎng)絡結構來修改預訓練的 transformer 模型,以生成 “語義上有意義” 的句子嵌入。
生成的句子嵌入作為基于 KNN 或邏輯回歸的經(jīng)典分類器的輸入,以構建上下文相關的非包容性詞分類器。
我們根據(jù)每個詞的句內(nèi)上下文生成上下文相關的嵌入向量 (BERT 嵌入)。然后,我們只保留 “目標” 詞元的嵌入,計算最小角度 (余弦相似度)”—— Witty Works 首席數(shù)據(jù)科學家 Elena Nazarenko
要微調一個基于基本版 transformers 的分類器 (例如簡單的 BERT 模型),Witty Works 需要大量標注數(shù)據(jù)。每個類別的目標詞都需要數(shù)百個樣本。然而,這樣的注釋過程既昂貴又耗時,Witty Works 無法承受。
獲取如何正確選擇 ML 庫的指導
Hugging Face 專家建議使用 Sentence Transformers Fine-tuning 庫 (又名 SetFit),這是一個對 Sentence Transformers 模型進行少樣本微調的有效框架。結合對比學習和語義句子相似度,SetFit 在標注數(shù)據(jù)很少的文本分類任務上實現(xiàn)了高精度。
SetFit:
https://github.com/huggingface/setfit
用于文本分類任務的 SetFit 是一個值得添加到 ML 工具箱中的好工具?!?p>—— Hugging Face 的首席布道官 Julien Simon
Witty Works 團隊發(fā)現(xiàn)每個特定詞匯只需 15-20 個標注句子,精度就足夠了。
最終,因為不需要創(chuàng)建一個大型標注數(shù)據(jù)集,我們節(jié)省了時間和金錢。”—— Witty Works 首席數(shù)據(jù)科學家 Elena Nazarenko
減少句子數(shù)對于確保模型訓練快速和高效至關重要。同時,出于另一個原因,這也是必要的: Witty Works 采用了一個明晰的、高度受監(jiān)督的、基于規(guī)則的方法來 積極管理偏見。減少句子數(shù)對于減少人工審核訓練集中句子的工作量非常重要。
積極管理偏見:
https://www.witty.works/en/blog/is-chatgpt-able-to-generate-inclusive-language
獲取如何正確選擇 ML 模型的指導
Witty Works 面臨的一個主要挑戰(zhàn)是模型部署后需要達到低延遲。沒有人能容忍等待 3 分鐘才能獲得改進文本的建議!Hugging Face 和 Witty Works 雙方均試驗了多個 sentence transformer 模型,最終選擇了 mpnet-base-v2,將其與邏輯回歸和 KNN 結合使用。
mpnet-base-v2:
https://hf.co/sentence-transformers/all-mpnet-base-v2
在 Google Colab 上進行首次測試后,Hugging Face 專家指導 Witty Works 在 Azure 上部署該模型。由于模型本身已經(jīng)足夠快,因此無需額外的優(yōu)化。
與 Hugging Face 合作為我們節(jié)省了大量時間和金錢。在實施復雜的文本分類用例時,人們可能會感到迷茫。
由于它是最受歡迎的任務之一,因此 Hub 上有很多模型。
Hugging Face 專家指導我從大量基于 transformer 的模型中選擇出最合適的模型。
另外,模型部署過程中我也得到了很好的支持。”
—— Witty Works 首席數(shù)據(jù)科學家 Elena Nazarenko
結果和結論
訓練集中句子的數(shù)量從每個單詞 100-200 個減少到每個單詞 15-20 個。Witty Works 最終獲得了 0.92 的準確度,并以最少的 DevOps 工作量成功地在 Azure 上部署了自定義模型!
獨自從事 IT 項目可能具有挑戰(zhàn)性,即使是做一個嘗鮮版 (Early Access Product, EAP) 對初創(chuàng)企業(yè)來說是一項很大的投資,Hugging Face 專家計劃是一個便宜且有意義的獲取陪練和指導的途徑?!?p>—— Lukas Kahwe Smith 首席技術官兼 Witty Works 聯(lián)合創(chuàng)始人
在 Hugging Face 專家的指導下,Witty Works 以 Hugging Face 的方式實施了新的 ML 工作流程,節(jié)省了時間和金錢。
Hugging Face 式的工作流建立法:找到開源的預訓練模型,
立即評估它們,
看看哪些有效,哪些無效。
通過迭代,你上手新東西會更快”
—— Hugging Face 的首席布道官 Julien Simon
?? 如果你或你的團隊有興趣通過 Hugging Face 專家計劃加速你的 ML 路線圖,請訪問 hf.co/support 了解更多信息。
英文原文:?https://hf.co/blog/classification-use-cases
原文作者: Julien Simon,Violette Lepercq,F(xiàn)lorent Gbelidji,Elena Nazarenko,Lukas Kahwe Smith
譯者: Matrix Yao (姚偉峰),英特爾深度學習工程師,工作方向為 transformer-family 模型在各模態(tài)數(shù)據(jù)上的應用及大規(guī)模模型的訓練推理。
審校/排版: zhongdongy (阿東)