使用 Sentence Transformers 開始機器學習之旅

概覽

Hugging Face 建議使用 Sentence Transformers(ST)套件作為初學者從教學過渡到自主機器學習專案的易於入門的入口。透過利用 ST,開發者可以實作諸如語意搜尋與句子相似度等複雜任務,而無需深厚的數學專業知識。

了解 Sentence Transformers

Sentence Transformers 是一個與 Hugging Face 整合的套件,能計算句子、段落與影像的密集向量表示——即嵌入向量(embeddings)。

嵌入向量的運作方式

Sentence Transformers 將文字視為多維向量空間中的點。例如,一段文字會被轉換成數值向量(例如 [0.2, 0.5, 1.3, 0.9])。當兩個不同的句子使用相同模型進行嵌入時,它們會共存於同一向量空間,從而可以進行數學比較。

使用餘弦相似度測量相似性

為了判斷兩個句子(包括同義詞)之間的相似程度,套件提供了 util.cos_sim 函式。此函式計算餘弦相似度,回傳介於 -1 到 1 的分數;分數越高表示嵌入後的句子相似度越高。

語意搜尋的應用

透過比較嵌入向量,開發者可以實作語意搜尋,以在句子或段落集合中找到最相關的查詢匹配。實際應用包括:

  • 建構 GitHub 程式碼搜尋工具。
  • 建立 FAQ 引擎。

學習 Sentence Transformers 的好處

Sentence Transformers 是通往最先進機器學習模型與更廣泛產業概念的低門檻入口。

教育價值

ST 讓使用者能實作嵌入向量的實務經驗,增進對現代模型如何處理文字的理解。它也提供了學習進階機器學習概念的途徑,例如:

  • 分群(Clustering)
  • 模型蒸餾(Model distillation)
  • 透過 CLIP 進行文字轉影像的工作

產業相關性

嵌入向量是許多大規模產業應用的基礎。來源指出 Google 使用它們進行文字對文字與文字對影像的匹配,Snapchat 利用它們進行廣告排序,Meta 則用於社交搜尋。這些功能使得聊天機器人、推薦系統、零樣本分類器與影像搜尋工具的開發成為可能。

開始第一個機器學習專案的框架

Hugging Face 建議使用四步驟的「火箭發射」策略來著手第一個自主專案:

  1. 功能腦力激盪:列出工具能執行的所有功能。對於 ST,這包括產生嵌入向量、比較句子、分群,以及檢索與重新排序任務。
  2. 資料來源反思:從 Hugging Face Hub、開放資料平台或公共資料集清單等來源中找出有趣的資料集。
  3. 次要工具整合:將主要的機器學習套件與使用者較熟悉的次要工具結合(例如使用 Gradio 來構建應用介面),以實踐「分散練習」。
  4. 構思發想:腦力激盪工具功能、選定資料與次要工具的組合,找出能激發好奇心的專案。

案例研究:播放清單產生器

舉例而言,作者結合歌曲歌詞資料集與 ST 的語意搜尋功能,打造了一個播放清單產生器。此專案使用 Gradio Blocks 建立使用者介面,當輸入文字提示(例如「我感到狂野且自由!」)時,會觸發對具有相符歌詞嵌入向量的歌曲進行搜尋。

實務應用的學習成果

構建專案迫使開發者解決實際的技術挑戰。在播放清單產生器的例子中,作者獲得了以下經驗:

  • 選擇符合特定使用情境的預訓練模型。
  • 在 Hugging Face Hub 上託管嵌入向量,並透過 Hugging Face Spaces 載入至應用程式。
  • 使用 Sentence Transformers 的多處理器支援,優化效能,加速大規模資料集的嵌入過程。

Sources