统一嵌入模型(uniem):创建中文最佳通用文本嵌入模型

268次阅读
没有评论

🔗 GitHub 链接:wangyuxinwhy/uniem

引言

在自然语言处理(NLP)领域,文本嵌入是一项重要任务。它将文本转换成向量表示,使得计算机可以更好地理解和处理文本数据。最近,GitHub 上出现了一个令人瞩目的项目,名为统一嵌入模型(uniem)。该项目的目标是创建中文最佳的通用文本嵌入模型。在本博客文章中,我们将深入探讨 uniem 项目,了解其功能和优势。

uniem 项目概述

uniem 项目的主要目标是开发中文最佳的通用文本嵌入模型。该项目包括模型的训练、微调和评测代码。所有的模型和数据集都在 HuggingFace 社区上进行了开源。uniem 项目的重要更新如下:

🌟 2023.07.11,发布 uniem 0.3.0 版本。FineTuner 除了支持 M3E 模型外,还支持 sentence_transformers 和 text2vec 等模型的微调。同时,还支持使用 SGPT 的方式对 GPT 系列模型进行训练,以及使用 Prefix Tuning。FineTuner 的 API 有一些小的变化,不兼容 0.2.0 版本。
🌟 2023.06.17,发布 uniem 0.2.1 版本。该版本实现了 FineTuner 对模型微调的原生支持,只需几行代码即可适配。
📊 2023.06.17,发布正式版的 MTEB-zh,该版本支持 6 种 Embedding 模型和 4 种任务,共 9 个数据集的自动化评测。
🎉 2023.06.08,发布 M3E models,该模型在中文文本分类和文本检索方面优于 openai text-embedding-ada-002。

使用 M3E 模型

M3E 模型是 uniem 项目中的重要组成部分。M3E 模型完全兼容 sentence-transformers,因此您可以通过替换模型名称的方式在所有支持 sentence-transformers 的项目中无缝使用 M3E 模型。以下是使用 M3E 模型的安装和使用示例:

安装

pip install sentence-transformers uniem

使用

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("moka-ai/m3e-base")
embeddings = model.encode(['Hello World!', '你好, 世界!'])

微调模型

uniem 项目提供了非常易用的微调接口,只需几行代码即可完成微调。以下是微调模型的示例代码:

from datasets import load_dataset
from uniem.finetuner import FineTuner

dataset = load_dataset('shibing624/nli_zh', 'STS-B')
finetuner = FineTuner.from_pretrained('moka-ai/m3e-small', dataset=dataset)
finetuner.run(epochs=3)

如果您希望在本地运行微调代码,请按照以下步骤准备环境:

conda create -n uniem python=3.10
pip install uniem

MTEB-zh:中文嵌入模型评测

由于缺乏统一的评测标准,中文嵌入模型的性能评估一直是一个挑战。为了解决这个问题,uniem 项目引入了 MTEB-zh 评测标准。MTEB-zh 在多个数据集上对 6 种不同模型进行了评测,包括文本分类和文本检索任务。以下是 MTEB-zh 的一些亮点:

文本分类

MTEB-zh 选择了多个经典的中文文本分类数据集,如 THUCNews、LCQMC 等。通过在这些数据集上对不同模型进行评测,MTEB-zh 可以提供准确性和性能方面的评估。

文本检索

对于文本检索任务,MTEB-zh 选择了一些开源的中文搜索引擎数据集,如 TREC-CD-1、TREC-CD- 2 等。通过对这些数据集进行评测,MTEB-zh 可以衡量模型在返回相关文档方面的性能。

MTEB-zh 还提供了详细的评测报告,包括评估指标、模型对比和结果分析。这些报告可以帮助研究人员和开发者选择合适的模型,并了解其在不同任务上的性能。

结论

uniem 项目是一个令人兴奋的开源项目,旨在创建中文最佳的通用文本嵌入模型。通过使用 M3E 模型和微调接口,开发者可以轻松地将 uniem 集成到自己的项目中。同时,MTEB-zh 评测标准提供了一个公正、准确的评估平台,帮助研究人员和开发者选择最适合其应用场景的模型。

在未来,我们可以期待 uniem 项目的进一步发展,包括更多模型的加入和更广泛的数据集评测。这将为中文 NLP 领域的研究和应用带来更多的机遇和挑战。

无论是对 NLP 领域感兴趣的研究人员,还是想要在中文文本处理方面应用嵌入模型的开发者,uniem 项目都是一个值得关注的资源。通过参与该项目,我们可以共同推动中文 NLP 的发展,为更广泛的应用场景提供更好的解决方案。

🎉 让我们一起加入 uniem 项目,为中文文本嵌入模型的发展贡献自己的力量!🚀

正文完
 
评论(没有评论)