percent4/embedding_rerank_retrieval

本项目是针对RAG中的Retrieve阶段的召回技术及算法效果所做评估实验。使用主体框架为LlamaIndex.

Jupyter Notebook

298

24 commits

updated Jul 24, 2025

See the code

README

本项目是针对RAG中的Retrieve阶段的召回技术及算法效果所做评估实验。使用主体框架为LlamaIndex,版本为0.9.21.

Retrieve Method:

  • BM25 Retriever
  • Embedding Retriever(OpenAI, BGE, BGE-Finetune)
  • Ensemble Retriever
  • Ensemble Retriever + Cohere Rerank
  • Ensemble Retriever + BGE-BASE Rerank
  • Ensemble Retriever + BGE-LARGE Rerank

参考文章(也可查看docs文件夹):

  1. NLP(八十二)RAG框架中的Retrieve算法评估
  2. NLP(八十三)RAG框架中的Rerank算法评估
  3. NLP(八十四)RAG框架中的召回算法可视化分析及提升方法
  4. NLP(八十六)RAG框架Retrieve阶段的Embedding模型微调
  5. NLP(一百零一)Embedding模型微调实践
  6. NLP(一百零二)ReRank模型微调实践
  7. NLP(一百零九)Embedding中的Late Chunking(迟分)策略

数据

参考data/doc_qa_test.json文件,格式以LlamaIndex框架为标准。

评估结果

BM25 Retriever Evaluation:

retrievershit_ratemrrcost_time
bm25_top_1_eval0.79750778816199370.7975077881619937461.2770080566406
bm25_top_2_eval0.85358255451713390.8255451713395638510.3020668029785
bm25_top_3_eval0.90031152647975080.8411214953271028570.6708431243896
bm25_top_4_eval0.91588785046728970.8450155763239875420.72606086730957
bm25_top_5_eval0.9408099688473520.8500000000000001388.5960578918457

Embedding(OpenAI) Retriever Evaluation:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.60747663551401860.607476635514018667.68369674682617
embedding_top_2_eval0.69781931464174450.652647975077881660.84489822387695
embedding_top_3_eval0.73208722741433020.664070612668743659.905052185058594
embedding_top_4_eval0.7788161993769470.675752855659397863.54880332946777
embedding_top_5_eval0.7943925233644860.678868120456905667.79217720031738

Ensemble Retriever Evaluation:

retrievershit_ratemrrcost_time
ensemble_top_1_eval0.70093457943925230.70093457943925231072.7379322052002
ensemble_top_2_eval0.85358255451713390.77414330218068541088.8781547546387
ensemble_top_3_eval0.89408099688473520.7928348909657321980.7949066162109
ensemble_top_4_eval0.91900311526479750.8016614745586708935.1701736450195
ensemble_top_5_eval0.93769470404984420.8078920041536861868.2990074157715

Ensemble Retriever + Rerank Evaluation:

retrievershit_ratemrrcost_time
ensemble_rerank_top_1_eval0.83489096573208720.83489096573208722140632.404088974
ensemble_rerank_top_2_eval0.90342679127725860.87850467289719622157657.287120819
ensemble_rerank_top_3_eval0.93457943925233640.90083073727933532200800.935983658
ensemble_rerank_top_4_eval0.94704049844236760.90784008307372782150398.734807968
ensemble_rerank_top_5_eval0.96573208722741430.90986500519210812149122.938156128

Hit Rate

MRR

不同Rerank算法之间的比较

bge-rerank-base:

retrievershit_ratemrr
ensemble_bge_base_rerank_top_1_eval0.82550.8255
ensemble_bge_base_rerank_top_2_eval0.87850.8489
ensemble_bge_base_rerank_top_3_eval0.93460.8686
ensemble_bge_base_rerank_top_4_eval0.9470.872
ensemble_bge_base_rerank_top_5_eval0.95640.8693

bge-rerank-large:

retrievershit_ratemrr
ensemble_bge_large_rerank_top_1_eval0.82240.8224
ensemble_bge_large_rerank_top_2_eval0.88470.8364
ensemble_bge_large_rerank_top_3_eval0.93770.8572
ensemble_bge_large_rerank_top_4_eval0.95020.8564
ensemble_bge_large_rerank_top_5_eval0.96260.8537

ft-bge-rerank-base:

retrievershit_ratemrr
ensemble_ft_bge_base_rerank_top_1_eval0.84740.8474
ensemble_ft_bge_base_rerank_top_2_eval0.90030.8816
ensemble_ft_bge_base_rerank_top_3_eval0.94080.9102
ensemble_ft_bge_base_rerank_top_4_eval0.95330.9180
ensemble_ft_bge_base_rerank_top_5_eval0.96570.9240

ft-bge-rerank-large:

retrievershit_ratemrr
ensemble_ft_bge_large_rerank_top_1_eval0.84740.8474
ensemble_ft_bge_large_rerank_top_2_eval0.90030.8769
ensemble_ft_bge_large_rerank_top_3_eval0.94390.9024
ensemble_ft_bge_large_rerank_top_4_eval0.95640.9029
ensemble_ft_bge_large_rerank_top_5_eval0.96880.9028

不同Rerank模型的Hit Rate

不同Embedding模型之间的比较

jina-base-zh-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.53894080996884730.538940809968847334.9421501159668
embedding_top_2_eval0.64485981308411210.591900311526479735.04490852355957
embedding_top_3_eval0.71651090342679120.615784008307372940.548086166381836
embedding_top_4_eval0.74766355140186910.623572170301142341.40806198120117
embedding_top_5_eval0.76947040498442370.627933541017653243.450117111206055

bge-base-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.60436137071651090.604361370716510940.014028549194336
embedding_top_2_eval0.70716510903426790.655763239875389438.26403617858887
embedding_top_3_eval0.75389408099688470.671339563862928439.404869079589844
embedding_top_4_eval0.79127725856697820.680685358255451743.24913024902344
embedding_top_5_eval0.80996884735202490.68442367601246153.58481407165527

bge-large-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.59190031152647970.591900311526479750.39501190185547
embedding_top_2_eval0.71339563862928350.652647975077881652.02889442443848
embedding_top_3_eval0.77258566978193140.672377985462097651.7120361328125
embedding_top_4_eval0.7943925233644860.677829698857736151.872968673706055
embedding_top_5_eval0.8224299065420560.683437175493250256.67304992675781

bge-m3-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.68224299065420560.682242990654205643.41626167297363
embedding_top_2_eval0.7788161993769470.730529595015576344.278860092163086
embedding_top_3_eval0.81931464174454830.744029075804776745.64094543457031
embedding_top_4_eval0.85046728971962620.751817237798546146.158790588378906
embedding_top_5_eval0.87227414330218070.756178608515057150.23527145385742

bce-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.57943925233644860.579439252336448642.510032653808594
embedding_top_2_eval0.68535825545171340.63239875389408142.72007942199707
embedding_top_3_eval0.72274143302180680.644859813084112141.066884994506836
embedding_top_4_eval0.75077881619937690.651869158878504743.18714141845703
embedding_top_5_eval0.76635514018691590.654984423676012544.08693313598633

bge-base-embedding-finetune:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.72897196261682240.728971962616822448.82097244262695
embedding_top_2_eval0.85981308411214950.79439252336448642.237043380737305
embedding_top_3_eval0.90031152647975080.807892004153686342.33193397521973
embedding_top_4_eval0.90654205607476630.809449636552440445.35722732543945
embedding_top_5_eval0.91588785046728970.81131879543094550.804853439331055

bge-large-embedding-finetune:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.75700934579439250.757009345794392547.14798927307129
embedding_top_2_eval0.8816199376947040.819314641744548344.70491409301758
embedding_top_3_eval0.91900311526479750.831775700934579446.12398147583008
embedding_top_4_eval0.93769470404984420.836448598130841249.448251724243164
embedding_top_5_eval0.93769470404984420.836448598130841257.805776596069336

google-embedding(gemini-embedding-001)

retrievershit_ratemrrcost_time
gemini-embedding-001_top_1_eval0.7196261682242990.719626168224299145.71285247802734
gemini-embedding-001_top_2_eval0.82866043613707160.774143302180685496.75407409667969
gemini-embedding-001_top_3_eval0.8816199376947040.791796469366562899.96414184570312
gemini-embedding-001_top_4_eval0.90654205607476630.7980269989615782107.85269737243652
gemini-embedding-001_top_5_eval0.92834890965732090.8023883696780895106.5373420715332

不同Embedding模型之间的Hit Rate比较

不同Embedding模型之间的MRR比较

google-embedding-001模型不同向量维度的Hit Rate与MRR比较

可视化分析

retrieval_website.png

检索类型优点缺点
向量检索 (Embedding)1. 语义理解更强。
2. 能有效处理模糊或间接的查询。
3. 对自然语言的多样性适应性强。
4. 能识别不同词汇的相同意义。
1. 计算和存储成本高。
2. 索引时间较长。
3. 高度依赖训练数据的质量和数量。
4. 结果解释性较差。
关键词检索 (BM25)1. 检索速度快。
2. 实现简单,资源需求低。
3. 结果易于理解,可解释性强。
4. 对精确查询表现良好。
1. 对复杂语义理解有限。
2. 对查询变化敏感,灵活性差。
3. 难以处理同义词和多义词。
4. 需要用户准确使用关键词。
  • query: "NEDO"的全称是什么?

Embedding召回优于BM25

在这个例子中,Embedding召回结果优于BM25,BM25召回结果虽然在top_3结果中存在,但排名第三,排在首位的是不相关的文本,而Embedding由于文本相似度的优势,将正确结果放在了首位。

  • query: 日本半导体产品的主要应用领域是什么?

BM25召回优于Embedding

在这个例子中,BM25召回结果优于Embedding。

  • query: 《美日半导体协议》对日本半导体市场有何影响?

ensemble算法提升了排名

在这个例子中,正确文本在BM25算法召回结果中排名第二,在Embedding算法中排第三,混合搜索排名第一,这里体现了混合搜索的优越性。

  • query: 80年代日本电子产业的辉煌表现在哪些方面?

Rerank的优越性

在这个例子中,不管是BM25, Embedding,还是Ensemble,都没能将正确文本排在第一位,而经过Rerank以后,正确文本排在第一位,这里体现了Rerank算法的优势。

改进方案

  1. Query Rewrite
  • 原始query: 半导体制造设备市场美、日、荷各占多少份额?
  • 改写后query:美国、日本和荷兰在半导体制造设备市场的份额分别是多少?

改写后的query在BM25和Embedding的top 3召回结果中都能找到。该query对应的正确文本为:

全球半导体设备制造领域,美国、日本和荷兰控制着全球370亿美元半导体制造设备市场的90%以上。其中,美国的半导体制造设备(SME)产业占全球产量的近50%,日本约占30%,荷兰约占17%%。更具体地,以光刻机为例,EUV光刻工序其实有众多日本厂商的参与,如东京电子生产的EUV涂覆显影设备,占据100%的市场份额,Lasertec Corp.也是全球唯一的测试机制造商。另外还有EUV光刻胶,据南大光电在3月发布的相关报告中披露,全球仅有日本厂商研发出了EUV光刻胶。

从中我们可以看到,在改写后的query中,美国、日本、荷兰这三个词发挥了重要作用,因此,query改写对于含有缩写的query有一定的召回效果改善。

  1. HyDE

HyDE(全称Hypothetical Document Embeddings)是RAG中的一种技术,它基于一个假设:相较于直接查询,通过大语言模型 (LLM) 生成的答案在嵌入空间中可能更为接近。HyDE 首先响应查询生成一个假设性文档(答案),然后将其嵌入,从而提高搜索的效果。

比如:

  • 原始query: 美日半导体协议是由哪两部门签署的?
  • 加上回答后的query: 美日半导体协议是由哪两部门签署的?美日半导体协议是由美国商务部和日本经济产业省签署的。

加上回答后的query使用BM25算法可以找回正确文本,且排名第一位,而Embedding算法仍无法召回。

正确文本为:

1985年6月,美国半导体产业贸易保护的调子开始升高。美国半导体工业协会向国会递交一份正式的“301条款”文本,要求美国政府制止日本公司的倾销行为。民意调查显示,68%的美国人认为日本是美国最大的威胁。在舆论的引导和半导体工业协会的推动下,美国政府将信息产业定为可以动用国家安全借口进行保护的新兴战略产业,半导体产业成为美日贸易战的焦点。1985年10月,美国商务部出面指控日本公司倾销256K和1M内存。一年后,日本通产省被迫与美国商务部签署第一次《美日半导体协议》。

从中可以看出,大模型的回答是正确的,美国商务部这个关键词发挥了重要作用,因此,HyDE对于特定的query有召回效果提升。

Late Chunking探索

  1. 中文Late-Chunking例子: late_chunking/jina_zh_late_chunking.ipynb
  2. 使用Gradio实现中文Late-Chunking服务: late_chunking/late_chunking_gradio_server.py
  3. 在RAG过程中,使用Late-Chunking提升召回效果,保证回复质量: late_chunking/my_late_chunking_exp.ipynb

Query Rewrite对于Retrieve效果影响的探索

percent4/embedding_rerank_retrieval

本项目是针对RAG中的Retrieve阶段的召回技术及算法效果所做评估实验。使用主体框架为LlamaIndex.

Jupyter Notebook

298

24 commits

updated Jul 24, 2025

See the code

README

本项目是针对RAG中的Retrieve阶段的召回技术及算法效果所做评估实验。使用主体框架为LlamaIndex,版本为0.9.21.

Retrieve Method:

  • BM25 Retriever
  • Embedding Retriever(OpenAI, BGE, BGE-Finetune)
  • Ensemble Retriever
  • Ensemble Retriever + Cohere Rerank
  • Ensemble Retriever + BGE-BASE Rerank
  • Ensemble Retriever + BGE-LARGE Rerank

参考文章(也可查看docs文件夹):

  1. NLP(八十二)RAG框架中的Retrieve算法评估
  2. NLP(八十三)RAG框架中的Rerank算法评估
  3. NLP(八十四)RAG框架中的召回算法可视化分析及提升方法
  4. NLP(八十六)RAG框架Retrieve阶段的Embedding模型微调
  5. NLP(一百零一)Embedding模型微调实践
  6. NLP(一百零二)ReRank模型微调实践
  7. NLP(一百零九)Embedding中的Late Chunking(迟分)策略

数据

参考data/doc_qa_test.json文件,格式以LlamaIndex框架为标准。

评估结果

BM25 Retriever Evaluation:

retrievershit_ratemrrcost_time
bm25_top_1_eval0.79750778816199370.7975077881619937461.2770080566406
bm25_top_2_eval0.85358255451713390.8255451713395638510.3020668029785
bm25_top_3_eval0.90031152647975080.8411214953271028570.6708431243896
bm25_top_4_eval0.91588785046728970.8450155763239875420.72606086730957
bm25_top_5_eval0.9408099688473520.8500000000000001388.5960578918457

Embedding(OpenAI) Retriever Evaluation:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.60747663551401860.607476635514018667.68369674682617
embedding_top_2_eval0.69781931464174450.652647975077881660.84489822387695
embedding_top_3_eval0.73208722741433020.664070612668743659.905052185058594
embedding_top_4_eval0.7788161993769470.675752855659397863.54880332946777
embedding_top_5_eval0.7943925233644860.678868120456905667.79217720031738

Ensemble Retriever Evaluation:

retrievershit_ratemrrcost_time
ensemble_top_1_eval0.70093457943925230.70093457943925231072.7379322052002
ensemble_top_2_eval0.85358255451713390.77414330218068541088.8781547546387
ensemble_top_3_eval0.89408099688473520.7928348909657321980.7949066162109
ensemble_top_4_eval0.91900311526479750.8016614745586708935.1701736450195
ensemble_top_5_eval0.93769470404984420.8078920041536861868.2990074157715

Ensemble Retriever + Rerank Evaluation:

retrievershit_ratemrrcost_time
ensemble_rerank_top_1_eval0.83489096573208720.83489096573208722140632.404088974
ensemble_rerank_top_2_eval0.90342679127725860.87850467289719622157657.287120819
ensemble_rerank_top_3_eval0.93457943925233640.90083073727933532200800.935983658
ensemble_rerank_top_4_eval0.94704049844236760.90784008307372782150398.734807968
ensemble_rerank_top_5_eval0.96573208722741430.90986500519210812149122.938156128

Hit Rate

MRR

不同Rerank算法之间的比较

bge-rerank-base:

retrievershit_ratemrr
ensemble_bge_base_rerank_top_1_eval0.82550.8255
ensemble_bge_base_rerank_top_2_eval0.87850.8489
ensemble_bge_base_rerank_top_3_eval0.93460.8686
ensemble_bge_base_rerank_top_4_eval0.9470.872
ensemble_bge_base_rerank_top_5_eval0.95640.8693

bge-rerank-large:

retrievershit_ratemrr
ensemble_bge_large_rerank_top_1_eval0.82240.8224
ensemble_bge_large_rerank_top_2_eval0.88470.8364
ensemble_bge_large_rerank_top_3_eval0.93770.8572
ensemble_bge_large_rerank_top_4_eval0.95020.8564
ensemble_bge_large_rerank_top_5_eval0.96260.8537

ft-bge-rerank-base:

retrievershit_ratemrr
ensemble_ft_bge_base_rerank_top_1_eval0.84740.8474
ensemble_ft_bge_base_rerank_top_2_eval0.90030.8816
ensemble_ft_bge_base_rerank_top_3_eval0.94080.9102
ensemble_ft_bge_base_rerank_top_4_eval0.95330.9180
ensemble_ft_bge_base_rerank_top_5_eval0.96570.9240

ft-bge-rerank-large:

retrievershit_ratemrr
ensemble_ft_bge_large_rerank_top_1_eval0.84740.8474
ensemble_ft_bge_large_rerank_top_2_eval0.90030.8769
ensemble_ft_bge_large_rerank_top_3_eval0.94390.9024
ensemble_ft_bge_large_rerank_top_4_eval0.95640.9029
ensemble_ft_bge_large_rerank_top_5_eval0.96880.9028

不同Rerank模型的Hit Rate

不同Embedding模型之间的比较

jina-base-zh-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.53894080996884730.538940809968847334.9421501159668
embedding_top_2_eval0.64485981308411210.591900311526479735.04490852355957
embedding_top_3_eval0.71651090342679120.615784008307372940.548086166381836
embedding_top_4_eval0.74766355140186910.623572170301142341.40806198120117
embedding_top_5_eval0.76947040498442370.627933541017653243.450117111206055

bge-base-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.60436137071651090.604361370716510940.014028549194336
embedding_top_2_eval0.70716510903426790.655763239875389438.26403617858887
embedding_top_3_eval0.75389408099688470.671339563862928439.404869079589844
embedding_top_4_eval0.79127725856697820.680685358255451743.24913024902344
embedding_top_5_eval0.80996884735202490.68442367601246153.58481407165527

bge-large-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.59190031152647970.591900311526479750.39501190185547
embedding_top_2_eval0.71339563862928350.652647975077881652.02889442443848
embedding_top_3_eval0.77258566978193140.672377985462097651.7120361328125
embedding_top_4_eval0.7943925233644860.677829698857736151.872968673706055
embedding_top_5_eval0.8224299065420560.683437175493250256.67304992675781

bge-m3-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.68224299065420560.682242990654205643.41626167297363
embedding_top_2_eval0.7788161993769470.730529595015576344.278860092163086
embedding_top_3_eval0.81931464174454830.744029075804776745.64094543457031
embedding_top_4_eval0.85046728971962620.751817237798546146.158790588378906
embedding_top_5_eval0.87227414330218070.756178608515057150.23527145385742

bce-embedding:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.57943925233644860.579439252336448642.510032653808594
embedding_top_2_eval0.68535825545171340.63239875389408142.72007942199707
embedding_top_3_eval0.72274143302180680.644859813084112141.066884994506836
embedding_top_4_eval0.75077881619937690.651869158878504743.18714141845703
embedding_top_5_eval0.76635514018691590.654984423676012544.08693313598633

bge-base-embedding-finetune:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.72897196261682240.728971962616822448.82097244262695
embedding_top_2_eval0.85981308411214950.79439252336448642.237043380737305
embedding_top_3_eval0.90031152647975080.807892004153686342.33193397521973
embedding_top_4_eval0.90654205607476630.809449636552440445.35722732543945
embedding_top_5_eval0.91588785046728970.81131879543094550.804853439331055

bge-large-embedding-finetune:

retrievershit_ratemrrcost_time
embedding_top_1_eval0.75700934579439250.757009345794392547.14798927307129
embedding_top_2_eval0.8816199376947040.819314641744548344.70491409301758
embedding_top_3_eval0.91900311526479750.831775700934579446.12398147583008
embedding_top_4_eval0.93769470404984420.836448598130841249.448251724243164
embedding_top_5_eval0.93769470404984420.836448598130841257.805776596069336

google-embedding(gemini-embedding-001)

retrievershit_ratemrrcost_time
gemini-embedding-001_top_1_eval0.7196261682242990.719626168224299145.71285247802734
gemini-embedding-001_top_2_eval0.82866043613707160.774143302180685496.75407409667969
gemini-embedding-001_top_3_eval0.8816199376947040.791796469366562899.96414184570312
gemini-embedding-001_top_4_eval0.90654205607476630.7980269989615782107.85269737243652
gemini-embedding-001_top_5_eval0.92834890965732090.8023883696780895106.5373420715332

不同Embedding模型之间的Hit Rate比较

不同Embedding模型之间的MRR比较

google-embedding-001模型不同向量维度的Hit Rate与MRR比较

可视化分析

retrieval_website.png

检索类型优点缺点
向量检索 (Embedding)1. 语义理解更强。
2. 能有效处理模糊或间接的查询。
3. 对自然语言的多样性适应性强。
4. 能识别不同词汇的相同意义。
1. 计算和存储成本高。
2. 索引时间较长。
3. 高度依赖训练数据的质量和数量。
4. 结果解释性较差。
关键词检索 (BM25)1. 检索速度快。
2. 实现简单,资源需求低。
3. 结果易于理解,可解释性强。
4. 对精确查询表现良好。
1. 对复杂语义理解有限。
2. 对查询变化敏感,灵活性差。
3. 难以处理同义词和多义词。
4. 需要用户准确使用关键词。
  • query: "NEDO"的全称是什么?

Embedding召回优于BM25

在这个例子中,Embedding召回结果优于BM25,BM25召回结果虽然在top_3结果中存在,但排名第三,排在首位的是不相关的文本,而Embedding由于文本相似度的优势,将正确结果放在了首位。

  • query: 日本半导体产品的主要应用领域是什么?

BM25召回优于Embedding

在这个例子中,BM25召回结果优于Embedding。

  • query: 《美日半导体协议》对日本半导体市场有何影响?

ensemble算法提升了排名

在这个例子中,正确文本在BM25算法召回结果中排名第二,在Embedding算法中排第三,混合搜索排名第一,这里体现了混合搜索的优越性。

  • query: 80年代日本电子产业的辉煌表现在哪些方面?

Rerank的优越性

在这个例子中,不管是BM25, Embedding,还是Ensemble,都没能将正确文本排在第一位,而经过Rerank以后,正确文本排在第一位,这里体现了Rerank算法的优势。

改进方案

  1. Query Rewrite
  • 原始query: 半导体制造设备市场美、日、荷各占多少份额?
  • 改写后query:美国、日本和荷兰在半导体制造设备市场的份额分别是多少?

改写后的query在BM25和Embedding的top 3召回结果中都能找到。该query对应的正确文本为:

全球半导体设备制造领域,美国、日本和荷兰控制着全球370亿美元半导体制造设备市场的90%以上。其中,美国的半导体制造设备(SME)产业占全球产量的近50%,日本约占30%,荷兰约占17%%。更具体地,以光刻机为例,EUV光刻工序其实有众多日本厂商的参与,如东京电子生产的EUV涂覆显影设备,占据100%的市场份额,Lasertec Corp.也是全球唯一的测试机制造商。另外还有EUV光刻胶,据南大光电在3月发布的相关报告中披露,全球仅有日本厂商研发出了EUV光刻胶。

从中我们可以看到,在改写后的query中,美国、日本、荷兰这三个词发挥了重要作用,因此,query改写对于含有缩写的query有一定的召回效果改善。

  1. HyDE

HyDE(全称Hypothetical Document Embeddings)是RAG中的一种技术,它基于一个假设:相较于直接查询,通过大语言模型 (LLM) 生成的答案在嵌入空间中可能更为接近。HyDE 首先响应查询生成一个假设性文档(答案),然后将其嵌入,从而提高搜索的效果。

比如:

  • 原始query: 美日半导体协议是由哪两部门签署的?
  • 加上回答后的query: 美日半导体协议是由哪两部门签署的?美日半导体协议是由美国商务部和日本经济产业省签署的。

加上回答后的query使用BM25算法可以找回正确文本,且排名第一位,而Embedding算法仍无法召回。

正确文本为:

1985年6月,美国半导体产业贸易保护的调子开始升高。美国半导体工业协会向国会递交一份正式的“301条款”文本,要求美国政府制止日本公司的倾销行为。民意调查显示,68%的美国人认为日本是美国最大的威胁。在舆论的引导和半导体工业协会的推动下,美国政府将信息产业定为可以动用国家安全借口进行保护的新兴战略产业,半导体产业成为美日贸易战的焦点。1985年10月,美国商务部出面指控日本公司倾销256K和1M内存。一年后,日本通产省被迫与美国商务部签署第一次《美日半导体协议》。

从中可以看出,大模型的回答是正确的,美国商务部这个关键词发挥了重要作用,因此,HyDE对于特定的query有召回效果提升。

Late Chunking探索

  1. 中文Late-Chunking例子: late_chunking/jina_zh_late_chunking.ipynb
  2. 使用Gradio实现中文Late-Chunking服务: late_chunking/late_chunking_gradio_server.py
  3. 在RAG过程中,使用Late-Chunking提升召回效果,保证回复质量: late_chunking/my_late_chunking_exp.ipynb

Query Rewrite对于Retrieve效果影响的探索

Significant stargazers

michael1589

10 followers · starred Feb 2024

Tianye Song

9 followers · starred Dec 2025