使用 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 建議使用四步驟的「火箭發射」策略來著手第一個自主專案:
- 功能腦力激盪:列出工具能執行的所有功能。對於 ST,這包括產生嵌入向量、比較句子、分群,以及檢索與重新排序任務。
- 資料來源反思:從 Hugging Face Hub、開放資料平台或公共資料集清單等來源中找出有趣的資料集。
- 次要工具整合:將主要的機器學習套件與使用者較熟悉的次要工具結合(例如使用 Gradio 來構建應用介面),以實踐「分散練習」。
- 構思發想:腦力激盪工具功能、選定資料與次要工具的組合,找出能激發好奇心的專案。
案例研究:播放清單產生器
舉例而言,作者結合歌曲歌詞資料集與 ST 的語意搜尋功能,打造了一個播放清單產生器。此專案使用 Gradio Blocks 建立使用者介面,當輸入文字提示(例如「我感到狂野且自由!」)時,會觸發對具有相符歌詞嵌入向量的歌曲進行搜尋。
實務應用的學習成果
構建專案迫使開發者解決實際的技術挑戰。在播放清單產生器的例子中,作者獲得了以下經驗:
- 選擇符合特定使用情境的預訓練模型。
- 在 Hugging Face Hub 上託管嵌入向量,並透過 Hugging Face Spaces 載入至應用程式。
- 使用 Sentence Transformers 的多處理器支援,優化效能,加速大規模資料集的嵌入過程。