Hugging Face 如何加速 Witty Works 寫作助手的開發

釋出於 2023 年 3 月 1 日
在 GitHub 上更新

Witty Works 與 Hugging Face 專家加速計劃的成功故事。

如果您有興趣更快地構建機器學習解決方案,請訪問專家加速計劃登陸頁面,並在此處聯絡我們!

業務背景

隨著資訊科技的不斷發展和重塑我們的世界,在行業內創造一個更加多元化和包容的環境勢在必行。Witty Works 創建於 2018 年,旨在應對這一挑戰。Witty Works 最初是一家諮詢公司,為組織提供如何變得更加多元化的建議,最初幫助他們使用包容性語言撰寫招聘廣告。為了擴大這一努力,他們在 2019 年構建了一個 Web 應用,幫助使用者用英語、法語和德語撰寫包容性招聘廣告。他們迅速擴大了範圍,推出了一款作為瀏覽器擴充套件的寫作助手,可以自動修復和解釋電子郵件、領英帖子、招聘廣告等中潛在的偏見。其目的是提供一種內部和外部溝通的解決方案,透過提供解釋突出顯示的詞語和短語背後潛在偏見的微學習片段,來促進文化變革。


寫作助手建議示例

初步實驗

Witty Works 最初選擇了一種基本的機器學習方法,從零開始構建他們的助手。透過使用預訓練的 spaCy 模型進行遷移學習,該助手能夠:

  • 分析文字並將單詞轉換為詞元,
  • 進行語言學分析,
  • 從文字中提取語言特徵(複數和單數形式、性別)、詞性標籤(代詞、動詞、名詞、形容詞等)、詞語依賴關係標籤、命名實體識別等。

透過使用語言特徵,根據特定的知識庫檢測和過濾單詞,該助手可以即時高亮非包容性單詞並建議替代方案。

挑戰

詞彙庫中大約有 2300 個德語和英語的非包容性詞彙和習語。上述基本方法對 85% 的詞彙都行之有效,但對於依賴上下文的詞彙則失敗了。因此,任務是構建一個依賴上下文的非包容性詞彙分類器。這樣的挑戰(理解上下文而非識別語言特徵)促使他們使用 Hugging Face 的 Transformer 模型。

Example of context dependent non-inclusive words: 
Fossil fuels are not renewable resources. Vs He is an old fossil
You will have a flexible schedule. Vs You should keep your schedule flexible.

Hugging Face 專家提供的解決方案

  • 獲得指導以決定正確的機器學習方法。

最初選擇的方法是標準的 Transformer 模型(用於提取特定非包容性詞彙的詞元嵌入)。Hugging Face 專家建議從上下文詞嵌入切換到上下文句子嵌入。在這種方法中,句子中每個詞的表示都依賴於其周圍的上下文。

Hugging Face 專家建議使用 Sentence Transformers 架構。該架構為整個句子生成嵌入。語義相似的句子之間的距離被最小化,而語義疏遠的句子之間的距離被最大化。

在這種方法中,Sentence Transformers 使用孿生網路和三元組網路結構來修改預訓練的 Transformer 模型,以生成“具有語義意義的”句子嵌入。

由此產生的句子嵌入作為基於 KNN 或邏輯迴歸的經典分類器的輸入,以構建一個依賴上下文的非包容性詞彙分類器。

Elena Nazarenko, Lead Data Scientist at Witty Works: 
“We generate contextualized embedding vectors for every word depending on its 
sentence (BERT embedding). Then, we keep only the embedding for the “problem” 
word’s token, and calculate the smallest angle (cosine similarity)”  

要微調一個基於標準 Transformer 的分類器,例如一個簡單的 BERT 模型,Witty Works 需要大量的標註資料。每個被標記詞的類別都需要數百個樣本。然而,這樣的標註過程成本高昂且耗時,這是 Witty Works 無法承擔的。

  • 獲得指導以選擇正確的機器學習庫。

Hugging Face 專家建議使用 Sentence Transformers 微調庫(也稱為 SetFit),這是一個用於小樣本微調 Sentence Transformers 模型的高效框架。結合對比學習和語義句子相似性,SetFit 僅用極少的標註資料就能在文字分類任務上實現高準確率。

Julien Simon, Chief Evangelist at Hugging Face: 
“SetFit for text classification tasks is a great tool to add to the ML toolbox” 

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

Elena Nazarenko, Lead Data Scientist at Witty Works: 
“At the end of the day, we saved time and money by not creating this large data set”

減少句子數量對於確保模型訓練快速和模型執行高效至關重要。然而,這對於另一個原因也是必要的:Witty 明確採用高度監督/基於規則的方法來主動管理偏見。減少句子數量對於減少手動審查訓練句子的工作量非常重要。

  • 獲得指導以選擇正確的機器學習模型。

對於 Witty Works 來說,一個主要挑戰是部署一個低延遲的模型。沒有人期望等待 3 分鐘才能得到改進文字的建議!Hugging Face 和 Witty Works 都嘗試了幾個 Sentence Transformers 模型,並最終選擇了 mpnet-base-v2,並結合了邏輯迴歸和 KNN。

在 Google Colab 上進行初步測試後,Hugging Face 專家指導 Witty Works 在 Azure 上部署模型。由於模型速度足夠快,因此無需進行最佳化。

Elena Nazarenko, Lead Data Scientist at Witty Works: 
“Working with Hugging Face saved us a lot of time and money. 
One can feel lost when implementing complex text classification use cases. 
As it is one of the most popular tasks, there are a lot of models on the Hub. 
The Hugging Face experts guided me through the massive amount of transformer-based 
models to choose the best possible approach. 
Plus, I felt very well supported during the model deployment”

成果與總結

每個詞彙的訓練句子數量從 100-200 個減少到 15-20 個。Witty Works 實現了 0.92 的準確率,並以最小的 DevOps 投入成功在 Azure 上部署了自定義模型!

Lukas Kahwe Smith CTO & Co-founder of Witty Works: 
“Working on an IT project by oneself can be challenging and even if 
the EAP is a significant investment for a startup, it is the cheaper 
and most meaningful way to get a sparring partner“

在 Hugging Face 專家的指導下,Witty Works 透過採用 Hugging Face 的方式實施新的機器學習工作流,節省了時間和金錢。

Julien Simon, Chief Evangelist at Hugging Face: 
“The Hugging way to build workflows: 
find open-source pre-trained models, 
evaluate them right away, 
see what works, see what does not. 
By iterating, you start learning  things immediately” 

🤗 如果您或您的團隊有興趣透過 Hugging Face 專家加速您的機器學習路線圖,請訪問 hf.co/support 瞭解更多資訊。

社群

註冊登入 以發表評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.