使用 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 让用户能够亲手实践嵌入技术,增强对现代模型如何处理文本的理解。它还提供了学习高级机器学习概念的路径,例如:

  • 聚类
  • 模型蒸馏
  • 通过 CLIP 实现文本到图像的工作

工业相关性

嵌入是许多大规模工业应用的基础。资料指出,Google 将其用于文本到文本和文本到图像的匹配,Snapchat 将其用于广告排序,Meta 将其用于社交搜索。这些能力使得聊天机器人、推荐系统、零样本分类器和图像搜索工具的构建成为可能。

启动首个机器学习项目的框架

Hugging Face 建议采用四步“火箭发射”策略来开展首个自主项目:

  1. Capability Brain Dump:列出工具能够完成的所有功能。对于 ST,包括生成嵌入、比较句子、聚类,以及检索后重新排序任务。
  2. Data Source Reflection:从 Hugging Face Hub、开放数据门户或公共数据集列表等来源中识别有趣的数据集。
  3. Secondary Tool Integration:将主要的机器学习库与用户稍微熟悉的二次工具配对(例如,用于构建应用界面的 Gradio),以实现“分布式练习”。
  4. Ideation:头脑风暴工具的功能、所选数据和二次工具的组合,寻找能激发好奇心的项目。

案例研究:播放列表生成器

例如,作者通过将歌曲歌词数据集与 ST 的语义搜索功能相结合,创建了一个播放列表生成器。该项目使用 Gradio Blocks 构建用户界面,用户输入文本提示(例如 “I'm feeling wild and free!”)即可触发对匹配歌词嵌入的歌曲搜索。

实践应用的学习成果

构建项目迫使开发者解决真实的技术挑战。在播放列表生成器示例中,作者获得了以下经验:

  • 选择符合特定使用场景的预训练模型。
  • 在 Hugging Face Hub 上托管嵌入,并通过 Hugging Face Spaces 将其加载到应用中。
  • 使用 Sentence Transformers 的多处理器支持来优化性能,加速大规模数据集的嵌入过程。

Sources