-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Embedding 模型在 RAG 场景下的评估和微调 #104
Comments
微调效果不佳的原因是 bge 模型本身就在 T2Reranking 数据集上训练,重复训练没有突出提升是合理的。 在实际项目中,在行业专业知识上微调,有极大的效果提升。 |
@ninehills 您好,请问:
|
这种情况可以用HyDE 方法。
使用一个快速模型(如gpt-3.5-turbo或者自托管的10B以内模型),对query进行直接回答(可以指令要求简短回答)。
然后对回答进行embedding ,用回答来检索文档。
这个模型如果在行业知识上post-pretain或者sft就更好了。
…On Fri, Apr 26, 2024 at 15:57 liyunhan ***@***.***> wrote:
@ninehills <https://github.com/ninehills> 您好,请问:
1. 行业知识问答中,用户问题口语化严重,但是知识库专业名词偏多,这种情况BM25和BGE选择哪个更好?
2. 如果微调的话,数据是不是也要准备很多口语化的“问题”
—
Reply to this email directly, view it on GitHub
<#104 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACB7WQWQ6W72LLOOLODVVTY7ICHXAVCNFSM6AAAAAA64WF6PWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZYHAZTONRYGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
快速模型仅在行业知识上post-pretrain也可以?这样不是会丢失对齐能力吗 |
这个回答并不是用来直接提供的,而是用来检索的。
…On Fri, Apr 26, 2024 at 16:53 liyunhan ***@***.***> wrote:
这种情况可以用HyDE 方法。
使用一个快速模型(如gpt-3.5-turbo或者自托管的10B以内模型),对query进行直接回答(可以指令要求简短回答)。
然后对回答进行embedding ,用回答来检索文档。 这个模型如果在行业知识上post-pretain或者sft就更好了。
… <#m_-5074319437563760008_>
On Fri, Apr 26, 2024 at 15:57 liyunhan *@*.*> wrote: @ninehills
<https://github.com/ninehills> https://github.com/ninehills
<https://github.com/ninehills> 您好,请问: 1.
行业知识问答中,用户问题口语化严重,但是知识库专业名词偏多,这种情况BM25和BGE选择哪个更好? 2.
如果微调的话,数据是不是也要准备很多口语化的“问题” — Reply to this email directly, view it on
GitHub <#104 (comment)
<#104 (comment)>>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACB7WQWQ6W72LLOOLODVVTY7ICHXAVCNFSM6AAAAAA64WF6PWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZYHAZTONRYGY
<https://github.com/notifications/unsubscribe-auth/AACB7WQWQ6W72LLOOLODVVTY7ICHXAVCNFSM6AAAAAA64WF6PWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZYHAZTONRYGY>
. You are receiving this because you were mentioned.Message ID: @.*>
快速模型仅在行业知识上post-pretrain也可以?这样不是会丢失对齐能力吗
—
Reply to this email directly, view it on GitHub
<#104 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACB7WSPUPGJ6GM32SGMSZTY7IIZTAVCNFSM6AAAAAA64WF6PWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZYHE2DANZQGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@ninehills 谢谢您,还想请教您在检索中怎么先做一次信息过滤呢?比如很多无关的内容我希望直接过滤掉,缩小检索范围、提升检索精度 |
为检验 Embedding 模型在 RAG 应用中的性能,我们引入 C-MTEB 评测用来评估 Embedding 模型的性能。
已有的 Embedding 模型的 C-MTEB 分数在 MTEB Leaderboard 上可以通过选择
Chinese
选项卡查看。而针对有明确数据集的场景,我们也可以复用 C-MTEB 的评估方法,评估 Embedding 模型在特定数据集上的性能,从而为后续微调提供参考。
C-MTEB 评估任务
C-MTEB 有多种任务,其中和 RAG 能力相关是 Reranking 和 Retrieval 任务,其数据集格式如下:
Reranking 任务的数据集格式为:
目前通用场景的 Reranking 数据集主要是 T2Reranking。
在评测分数中,我们主要关心
map
分数,这是因为任务不涉及排序,而是看是否命中 positive 。而 Retrieval 任务的数据集以 T2Retrieval 为例,分为三个部分:
在评测分数中,我们主要关心
ndcg@10
分数,是检验 top10 检索结果中排序是否一致的指标。此外由于 Retrieval 数据集比较难构造,所以一般自定义数据集都是用 Reranking 数据集。Reranking 数据集的格式还和 FlagEmbedding fine-tune 所需的数据格式相同,方便用于微调后的评估。
自定义模型的通用任务评测
选择 T2Reranking 进行评测,评测目标是文心千帆上的 Embedding-V1 模型。
参见 Colab Notebook。
取 1000 条测试数据(总数据的 1/6,为了降低 token 使用),评测 map 得分为 66.54。超过了 Leaderboard 上的 SOTA 分数 66.46 分。(不过并不是全部数据,这个分数仅供参考,如果是全部数据,得分可能会低于 SOTA)
自定义数据集微调和评测
使用 T2Reranking 数据集拆分出训练集和测试集,对 BAAI/bge-small-zh-v1.5 模型进行微调和测试。
参见 Colab Notebook。
可以看到微调效果不尽如人意(第一个 checkpoint 就提升了 3% 的效果,然后后续无明显提升)。这可能是因为数据集的质量不高,导致模型无法学到有效的信息。
社区相关讨论:FlagOpen/FlagEmbedding#179
微调资源占用:small 模型,4090 显存占用 20G。
The text was updated successfully, but these errors were encountered: