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

2023-03-30 12:00:25

Witty 與 Hugging Face 專家加速計劃的成功案例

如果你對如何更快構建 ML 解決方案感興趣,請存取 專家加速計劃 登陸頁面並通過 填寫表單 聯絡我們!

業務背景

隨著 IT 技術不斷地在發展並重塑我們的世界,在行業內創造一個更加多樣化和包容性的環境勢在必行。旨在應對這一挑戰,Witty Works 於 2018 年成立了。 Witty Works 起初是一家為組織提供多元化建議的諮詢公司,主要幫助這些組織使用包容性語言撰寫招聘廣告。為了進一步拓展這項工作,Witty Works 在 2019 年構建了一個網路應用程式,以幫助使用者用英語、法語和德語編寫包容性的招聘廣告。其寫作助手可以作為瀏覽器擴充套件程式使用,從而迅速擴大了使用範圍,人們可方便用它來自動修復和解釋電子郵件、Linkedin 貼文、招聘廣告等內容中的潛在偏見。該程式為內部和外部溝通提供了一種解決方案,通過一種循序漸進方式,高亮出有偏見的詞語和短語並解釋其存在的潛在偏見,從而促進文化變革。

首次實驗

Witty Works 起初選擇了一種基礎的機器學習方法來從頭開始構建他們的助手。對預訓練的 spaCy 模型進行遷移學習,通過此方法,助手可以:

  • 分析文字並將單詞轉換為詞幹,
  • 進行語言學分析,
  • 從文字中提取語言學特徵 (複數和單數形式、性別) 、詞性標籤 (代詞、動詞、名詞、形容詞等) 、詞依存標籤、命名實體識別等。
    通過使用語言學特徵並用特定知識庫來檢測和過濾所有單詞,助手可以高亮非包容性詞彙並實時建議替代方案。

挑戰

Witty Works 建立了一個詞彙表,其中德語和英語兩種語言各有大約 2300 個非包容性的詞彙和短語。上述基礎方法對 85% 的詞彙有效,但對上下文相關的詞彙無效。因此,需要構建一個上下文相關的非包容性詞分類器。這樣的挑戰 (理解上下文而不是僅識別語言學特徵) 使得使用 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 使用 Siamese 網路和三元組網路結構來修改預訓練的 transformer 模型,以生成 「語意上有意義」 的句子嵌入。

生成的句子嵌入作為基於 KNN 或邏輯迴歸的經典分類器的輸入,以構建上下文相關的非包容性詞分類器。

「我們根據每個詞的句內上下文生成上下文相關的嵌入向量 (BERT 嵌入)。然後,我們只保留 「目標」 詞元的嵌入,計算最小角度 (餘弦相似度)」

—— Witty Works 首席資料科學家 Elena Nazarenko

要微調一個基於基本版 transformers 的分類器 (例如簡單的 BERT 模型),Witty Works 需要大量標註資料。每個類別的目標詞都需要數百個樣本。然而,這樣的註釋過程既昂貴又耗時,Witty Works 無法承受。

獲取如何正確選擇 ML 庫的指導

Hugging Face 專家建議使用 Sentence Transformers Fine-tuning 庫 (又名 SetFit),這是一個對 Sentence Transformers 模型進行少樣本微調的有效框架。結合對比學習和語意句子相似度,SetFit 在標註資料很少的文字分類任務上實現了高精度。

「用於文字分類任務的 SetFit 是一個值得新增到 ML 工具箱中的好工具。」

—— Hugging Face 的首席佈道官 Julien Simon

Witty Works 團隊發現每個特定詞彙只需 15-20 個標註句子,精度就足夠了。

「最終,因為不需要建立一個大型標註資料集,我們節省了時間和金錢。」

—— Witty Works 首席資料科學家 Elena Nazarenko

減少句子數對於確保模型訓練快速和高效至關重要。同時,出於另一個原因,這也是必要的: Witty Works 採用了一個明晰的、高度受監督的、基於規則的方法來 積極管理偏見。減少句子數對於減少人工稽核訓練集中句子的工作量非常重要。

獲取如何正確選擇 ML 模型的指導

Witty Works 面臨的一個主要挑戰是模型部署後需要達到低延遲。沒有人能容忍等待 3 分鐘才能獲得改進文字的建議! Hugging Face 和 Witty Works 雙方均試驗了多個 sentence transformer 模型,最終選擇了 mpnet-base-v2,將其與邏輯迴歸和 KNN 結合使用。

在 Google Colab 上進行首次測試後,Hugging Face 專家指導 Witty Works 在 Azure 上部署該模型。由於模型本身已經足夠快,因此無需額外的優化。

「與 Hugging Face 合作為我們節省了大量時間和金錢。

在實施複雜的文字分類用例時,人們可能會感到迷茫。

由於它是最受歡迎的任務之一,因此 Hub 上有很多模型。

Hugging Face 專家指導我從大量基於 transformer 的模型中選擇出最合適的模型。

另外,模型部署過程中我也得到了很好的支援。」

—— Witty Works 首席資料科學家 Elena Nazarenko

結果和結論

訓練集中句子的數量從每個單詞 100-200 個減少到每個單詞 15-20 個。 Witty Works 最終獲得了 0.92 的準確度,並以最少的 DevOps 工作量成功地在 Azure 上部署了自定義模型!

「獨自從事 IT 專案可能具有挑戰性,即使是做一個嚐鮮版 (Early Access Product, EAP) 對初創企業來說是一項很大的投資,Hugging Face 專家計劃是一個便宜且有意義的獲取陪練和指導的途徑。」

—— Lukas Kahwe Smith 技術長兼 Witty Works 聯合創始人

在 Hugging Face 專家的指導下,Witty Works 以 Hugging Face 的方式實施了新的 ML 工作流程,節省了時間和金錢。

「Hugging Face 式的工作流建立法:

找到開源的預訓練模型,

立即評估它們,

看看哪些有效,哪些無效。

通過迭代,你上手新東西會更快」

—— Hugging Face 的首席佈道官 Julien Simon