微信扫码
与创始人交个朋友
我要投稿
检索增强生成(RAG)是生成式 AI (GenAI)中的一类应用,支持使用自己的数据来增强 LLM 模型(如 ChatGPT)的知识。
RAG 通常会用到三种不的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。
1 文本数据:MTEB 排行榜 HuggingFace 的 MTEB leaderboard 是一个一站式的文本 Embedding 模型榜!您可以了解每个模型的平均性能。 您可以将“Retrieval Average”列进行降序排序,因为这最符合向量搜索的任务。然后,寻找排名最高、占内存最小的模型。 Embedding 向量维度是向量的长度,即 f(x)=y 中的 y,模型将输出此结果。 最大 Token 数是输入文本块的长度,即 f(x)=y 中的 x ,您可以输入到模型中。 除了通过 Retrieval 任务排序外,您还可以根据以下条件进行过滤: 语言:支持法语、英语、中文、波兰语。(例如:task=retrieval, Language=chinese) 法律领域文本。 (例如:task=retrieval,Language=law) 值得注意的是,由于部分训练数据最近才得以公开,一些 MTEB 上的 Embedding 模型可能是看似合适但实际不合适的模型,排名虚高,实际表现可能会有所不同。因此,HuggingFace 发布了一篇博客,介绍了判断模型排名是否可信的要点。点击模型链接(称为“模型卡片”)后: 寻找解释模型如何训练和评估的博客和论文。仔细查看模型训练使用的语言、数据和任务。同时,寻找由知名公司创建的模型。例如,在 voyage-lite-02-instruct 模型卡片上,您会看到其他的 VoyageAI 模型列出,但不包括这个。这是一个提示!该模型是一 个overfitting 模型,不应使用! 在下面的截图中,我会尝试来自 Snowflake 的新模型“snowflake-arctic-embed-1”,因为它排名较高,体积小到足以在我的笔记本电脑上运行,并且模型卡片上有博客和论文的链接。
使用 HuggingFace 的好处就是,在选择完 Embedding 模型后,如果您需要更换模型,只需要在代码中修改 model_name 即可!import torch
from sentence_transformers import SentenceTransformer
# Initialize torch settings
torch.backends.cudnn.deterministic = True
DEVICE = torch.device('cuda:3' if torch.cuda.is_available() else 'cpu')
# Load the model from huggingface.
model_name = "WhereIsAI/UAE-Large-V1" # Just change model_name to use a different model!
encoder = SentenceTransformer(model_name, device=DEVICE)
# Get the model parameters and save for later.
EMBEDDING_DIM = encoder.get_sentence_embedding_dimension()
MAX_SEQ_LENGTH_IN_TOKENS = encoder.get_max_seq_length()
# Print model parameters.print(f"model_name: {model_name}")
print(f"EMBEDDING_DIM: {EMBEDDING_DIM}")
print(f"MAX_SEQ_LENGTH: {MAX_SEQ_LENGTH_IN_TOKENS}")
2 图像数据:ResNet50 有时候您可能想要搜索与输入图像相似的图片。比如,您可能在寻找更多苏格兰折耳猫的图片。在这种情况下,您可以上传一张苏格兰折耳猫的图片,并要求搜索引擎找到类似的图片。 ResNet50 是一种流行的 CNN 模型,最初由微软在 2015 年使用 ImageNet 数据训练。 同样,对于视频搜索,ResNet50 仍然可以将视频转换为 Embedding 向量。然后,对静态视频帧进行相似性搜索,返回给用户最相似的视频作为最匹配结果。
3 音频数据:PANNs 类似于以图搜图,您也可以基于输入的音频片段搜索相似音频。 PANNs(预训练音频神经网络)是常用的音频搜索 Embedding 模型,因为 PANNs 基于大规模音频数据集预训练,并且擅长音频分类和标记等任务。
4 多模态图像与文本数据: SigLIP 或 Unum 近几年,涌现了一批针对多种非结构化数据(文本、图像、音频或视频)混合训练的 Embedding 模型。这些模型能够在同一向量空间内同时捕获多种类型的非结构化数据的语义。 多模态 Embedding 模型支持使用文本搜索图像、为图像生成文本描述或以图搜图。 OpenAI 在 2021 年推出的 CLIP 是标准的 Embedding 模型。但由于其需要用户自行进行微调,难以使用,所以到了 2024 年,谷歌推出了的 SigLIP(Sigmoidal-CLIP)。该模型在使用 zero-shot prompt时取得了不错的表现。 小型 LLM 模型如今变得越来越流行。因为这些模型不需要大型云计算集群,可以在笔记本电脑上运行。小模型占用的内存较少,延时更低,运行速度比大型模型更快。Unum 提供了多模态小型 Embedding 模型。
5 多模态文本、音频、视频数据 多模态文本-音频 RAG 系统大多使用多模态生成型 LLM。这类应用首先将声音转换为文本,生成声音-文本对,然后将文本转换为 Embedding 向量。之后您可以像往常一样使用 RAG 来检索文本。在最后一步,文本被映射回音频。 OpenAI 的 Whisper 可以将语音转录为文本。此外,OpenAI 的 Text-to-speech (TTS) 模型也可以将文本转换成音频。 多模态文本-视频的 RAG 系统使用类似的方法首先将视频映射到文本,转换为 Embedding 向量,搜索文本,并返回视频作为搜索结果。 OpenAI 的 Sora 可以将文本转换成视频。与 Dall-e 类似,您提供文本提示,而 LLM 生成视频。Sora 还可以通过静态图像或其他视频生成视频。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
FastRAG半结构化RAG实现思路及OpenAI O1-long COT蒸馏路线思考
2024-11-23
检索增强生成(RAG):解密AI如何融合记忆与搜索
2024-11-23
如何提高RAG系统准确率?12大常见痛点及巧妙解!
2024-11-23
RAG 2.0性能提升:优化索引与召回机制的策略与实践
2024-11-22
RAG技术在实际应用中的挑战与解决方案
2024-11-22
从普通RAG到RAPTOR,10个最新的RAG框架
2024-11-22
如何使用 RAG 提高 LLM 成绩
2024-11-21
提升RAG性能的全攻略:优化检索增强生成系统的策略大揭秘 | 深度好文
2024-07-18
2024-05-05
2024-07-09
2024-05-19
2024-07-09
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21