RAG中late chunking的实验效果测试(续)
前文使用了jina ai v2的模型,接下来我们看看v3版本late chunking的实际效果,为了快速,我直接使用官方的api!
# import requests # url = 'https://api.jina.ai/v1/embeddings' headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer jina_6d64bf72ad454523968ceea069b408fdBh53e8gP9Sn2gQv1H550eLROLRG4' } # data = { # "model": "jina-embeddings-v3", # "task": "text-matching", # "dimensions": 128, # "late_chunking": True, # "embedding_type": "float", # "input": [ # "Organic skincare for sensitive skin with aloe vera and chamomile: Imagine the soothing embrace of nature with our organic skincare range, crafted specifically for sensitive skin. Infused with the calming properties of aloe vera and chamomile, each product provides gentle nourishment and protection. Say goodbye to irritation and hello to a glowing, healthy complexion.", # "Bio-Hautpflege für empfindliche Haut mit Aloe Vera und Kamille: Erleben Sie die wohltuende Wirkung unserer Bio-Hautpflege, speziell für empfindliche Haut entwickelt. Mit den beruhigenden Eigenschaften von Aloe Vera und Kamille pflegen und schützen unsere Produkte Ihre Haut auf natürliche Weise. Verabschieden Sie sich von Hautirritationen und genießen Sie einen strahlenden Teint.", # "Cuidado de la piel orgánico para piel sensible con aloe vera y manzanilla: Descubre el poder de la naturaleza con nuestra línea de cuidado de la piel orgánico, diseñada especialmente para pieles sensibles. Enriquecidos con aloe vera y manzanilla, estos productos ofrecen una hidratación y protección suave. Despídete de las irritaciones y saluda a una piel radiante y saludable.", # "针对敏感肌专门设计的天然有机护肤产品:体验由芦荟和洋甘菊提取物带来的自然呵护。我们的护肤产品特别为敏感肌设计,温和滋润,保护您的肌肤不受刺激。让您的肌肤告别不适,迎来健康光彩。", # "新しいメイクのトレンドは鮮やかな色と革新的な技術に焦点を当てています: 今シーズンのメイクアップトレンドは、大胆な色彩と革新的な技術に注目しています。ネオンアイライナーからホログラフィックハイライターまで、クリエイティビティを解き放ち、毎回ユニークなルックを演出しましょう。" # ] # } # # response = requests.post(url, headers=headers, json=data) # print(response.text) import requests import numpy as np from typing import List, Tuple import re # ... existing code with API setup ... def get_embeddings(texts: List[str], late_chunking: bool = False) -> List[List[float]]: """获取文本的embeddings""" data = { "model": "jina-embeddings-v3", "task": "text-matching", "dimensions": 128, "late_chunking": late_chunking, "embedding_type": "float", "input": texts } response = requests.post(url, headers=headers, json=data) result = response.json() return [item["embedding"] for item in result["data"]] def chunk_text(text: str) -> List[str]: """将文本分割成完整的句子块""" # 清理文本,移除多余的空白字符 text = re.sub(r'\s+', ' ', text.strip()) # 定义句子结束符 sentence_endings = ['。', '?', '!', '.', '?', '!'] chunks = [] current_chunk = "" last_end = 0 # 遍历文本寻找句子结束符 for i in range(len(text)): if text[i] in sentence_endings: # 获取完整的句子(包含结束符) current_chunk += text[last_end:i + 1].strip() # 如果当前块已经包含了足够的句子,保存并重置 if len(current_chunk) >= 200 or any(text[i:i + 2] == ending for ending in ['。"', '!"', '?"']): chunks.append(current_chunk.strip()) current_chunk = "" last_end = i + 1 # 处理剩余的文本 if last_end < len(text): remaining = text[last_end:].strip() if current_chunk: current_chunk += " " + remaining else: current_chunk = remaining # 添加最后一个块(如果有的话) if current_chunk: chunks.append(current_chunk.strip()) return chunks def cosine_similarity(v1: List[float], v2: List[float]) -> float: """计算两个向量的余弦相似度""" v1, v2 = np.array(v1), np.array(v2) return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) def process_all_documents(documents: List[str]) -> Tuple[ List[str], List[List[float]], List[List[float]], List[Tuple[int, int]]]: """处理所有文档,返回分块、embeddings和文档边界""" all_chunks = [] doc_boundaries = [] start_idx = 0 # 对每个文档进行分块 for doc in documents: chunks = chunk_text(doc) all_chunks.extend(chunks) doc_boundaries.append((start_idx, start_idx + len(chunks))) start_idx += len(chunks) # 获取embeddings all_chunk_embeddings = get_embeddings(all_chunks, late_chunking=True) all_traditional_embeddings = get_embeddings(all_chunks, late_chunking=False) return all_chunks, all_chunk_embeddings, all_traditional_embeddings, doc_boundaries def search_across_documents(query: str, chunks: List[str], chunk_embeddings: List[List[float]], trad_embeddings: List[List[float]], top_k: int = 3) -> Tuple[List[Tuple[float, str, int]], List[Tuple[float, str, int]]]: """在所有文档中搜索相关内容""" # 获取查询的embeddings query_embedding_late = get_embeddings([query], late_chunking=True)[0] query_embedding_trad = get_embeddings([query], late_chunking=False)[0] # 计算相似度 late_similarities = [(cosine_similarity(query_embedding_late, chunk_emb), chunk, i) for i, (chunk_emb, chunk) in enumerate(zip(chunk_embeddings, chunks))] trad_similarities = [(cosine_similarity(query_embedding_trad, chunk_emb), chunk, i) for i, (chunk_emb, chunk) in enumerate(zip(trad_embeddings, chunks))] # 排序并返回top_k结果 late_results = sorted(late_similarities, key=lambda x: x[0], reverse=True)[:top_k] trad_results = sorted(trad_similarities, key=lambda x: x[0], reverse=True)[:top_k] return late_results, trad_results # ... rest of your existing code ... print("*"*88) context_test_documents = [ """ OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。 最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。 如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 """, """ 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 """, """ 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。 特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 """, ] # 测试查询,特别关注指代词相关的上下文 test_queries = [ # OpenAI相关查询 "OpenAI董事会解雇CEO的原因是什么", "OpenAI在AI领域的影响力体现在哪里", # 指代OpenAI "董事会的决定造成了什么后果", # Cybertruck相关查询 "Cybertruck的生产面临什么挑战", "Cybertruck的售价情况如何", # 指代Cybertruck "Cybertruck的竞争对手有哪些", # 指代Cybertruck # 说文解字相关查询 "说文解字的编撰过程", "说文解字的分类方法有什么特点", # 指代说文解字 "说文解字对后世产生了什么影响" # 指代说文解字 ] def context_understanding_with_references(documents, queries, top_k=3): """主函数:处理所有文档并执行查询""" print("\n===== 开始处理所有文档 =====") # 处理所有文档 all_chunks, all_chunk_embeddings, all_traditional_embeddings, doc_boundaries = process_all_documents(documents) print(f"\n总共处理了 {len(documents)} 个文档,产生了 {len(all_chunks)} 个文本片段") # 执行查询 for query in queries: print(f"\n\n查询: {query}") print("-" * 50) # 在所有文档中搜索 late_results, trad_results = search_across_documents( query, all_chunks, all_chunk_embeddings, all_traditional_embeddings, top_k ) # 显示Late Chunking结果 print(f"\n=== Late Chunking方法的top {top_k} 结果 ===") for sim, chunk, idx in late_results: # 找出该chunk属于哪个文档 doc_id = next(i for i, (start, end) in enumerate(doc_boundaries) if start <= idx < end) print(f"\n相似度 {sim:.4f} (文档 #{doc_id}, 片段 #{idx}):") print(f"内容: {chunk}") # 显示传统方法结果 print(f"\n=== 传统Embedding方法的top {top_k} 结果 ===") for sim, chunk, idx in trad_results: doc_id = next(i for i, (start, end) in enumerate(doc_boundaries) if start <= idx < end) print(f"\n相似度 {sim:.4f} (文档 #{doc_id}, 片段 #{idx}):") print(f"内容: {chunk}") # 使用示例 if __name__ == "__main__": context_understanding_with_references(context_test_documents, test_queries, top_k=3)
结果:
**************************************************************************************** ===== 开始处理所有文档 ===== 总共处理了 3 个文档,产生了 6 个文本片段 查询: OpenAI董事会解雇CEO的原因是什么 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.7322 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.7111 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6147 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 === 传统Embedding方法的top 3 结果 === 相似度 0.7948 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.6311 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.3688 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 查询: OpenAI在AI领域的影响力体现在哪里 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.6744 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.6548 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6330 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 === 传统Embedding方法的top 3 结果 === 相似度 0.6681 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.4662 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.4004 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 查询: 董事会的决定造成了什么后果 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.5911 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.5752 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.5616 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 === 传统Embedding方法的top 3 结果 === 相似度 0.6375 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.5744 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.5550 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 查询: Cybertruck的生产面临什么挑战 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.6443 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.6182 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.5143 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 === 传统Embedding方法的top 3 结果 === 相似度 0.7758 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.7038 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.4977 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 查询: Cybertruck的售价情况如何 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.5569 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.5319 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.4384 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 === 传统Embedding方法的top 3 结果 === 相似度 0.6935 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.6198 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.4084 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 查询: Cybertruck的竞争对手有哪些 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.5073 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.4922 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.4232 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 === 传统Embedding方法的top 3 结果 === 相似度 0.5176 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.5111 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.3920 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 查询: 说文解字的编撰过程 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.5607 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.5317 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.4459 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 === 传统Embedding方法的top 3 结果 === 相似度 0.6649 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.4909 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.3101 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 查询: 说文解字的分类方法有什么特点 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.5109 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.4832 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.3632 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 === 传统Embedding方法的top 3 结果 === 相似度 0.6631 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.5356 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.2236 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 查询: 说文解字对后世产生了什么影响 -------------------------------------------------- === Late Chunking方法的top 3 结果 === 相似度 0.6560 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.6266 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.4651 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 === 传统Embedding方法的top 3 结果 === 相似度 0.7162 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.7115 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.3249 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。
根据测试结果,我来分析一下late chunking和传统方法的区别:
- 传统方法通常给出更高的相似度分数
- 例如对于"Cybertruck的生产面临什么挑战"这个查询:
- 传统方法最高相似度:0.7758
- Late chunking方法最高相似度:0.6443
2、结果准确性:
- 两种方法返回的top结果通常是相同的,表明基本的相关性判断是一致的
- 但在排序上可能有细微差异
- 例如对于"说文解字的分类方法有什么特点":
- 两种方法都正确找到了包含部首分类信息的段落
- 但传统方法给出的相似度更高(0.6631 vs 0.5109)
3、排序稳定性:
- 传统方法的相似度分数跨度较大,区分度更明显
- Late chunking方法的分数相对更加集中,差异较小
- 这可以从"OpenAI董事会解雇CEO的原因"的查询中看出:
- 传统方法:0.7948 → 0.6311 → 0.3688
- Late chunking:0.7322 → 0.7111 → 0.6147
4、错误召回率:
- 两种方法在处理不相关内容时都表现不错
- 但传统方法似乎更善于过滤掉不相关内容
- 这体现在第三名结果的相似度分数上,传统方法给出的分数通常更低
5、整体评估:
- 传统方法可能更适合需要明确区分度的场景
- Late chunking方法的优势在于:
- 相似度分数更保守
- 结果更稳定
- 对上下文的保持更好
6. 建议使用场景:
- 如果需要严格的相关性排序,建议使用传统方法
- 如果更关注结果的稳定性和上下文完整性,可以考虑使用late chunking方法
- 在实际应用中,可以考虑结合两种方法的优势
总的来说,两种方法各有优势,选择哪种方法应该根据具体的应用场景和需求来决定。
和之前的v2版本相比,可以看到v3的实际效果较v2好了不少。有时候v2给出的结果明显不是我们想要的,而v3则没有这类低级错误发生!
为了比较jina ai和BGE这些模型的差异,我再度做了一个实验!
from FlagEmbedding import FlagModel import numpy as np from typing import List, Tuple import re model_name = r"D:\source\pythonProject\bge-base-zh-v1.5" # 初始化模型 model = FlagModel(model_name, query_instruction_for_retrieval="为这个句子生成表示以用于检索相关文章:", use_fp16=True) def chunk_text(text: str) -> List[str]: """将文本分割成完整的句子块""" # 清理文本,移除多余的空白字符 text = re.sub(r'\s+', ' ', text.strip()) # 定义句子结束符 sentence_endings = ['。', '?', '!', '.', '?', '!'] chunks = [] current_chunk = "" last_end = 0 # 遍历文本寻找句子结束符 for i in range(len(text)): if text[i] in sentence_endings: # 获取完整的句子(包含结束符) current_chunk += text[last_end:i + 1].strip() # 如果当前块已经包含了足够的句子,保存并重置 if len(current_chunk) >= 200 or any(text[i:i + 2] == ending for ending in ['。"', '!"', '?"']): chunks.append(current_chunk.strip()) current_chunk = "" last_end = i + 1 # 处理剩余的文本 if last_end < len(text): remaining = text[last_end:].strip() if current_chunk: current_chunk += " " + remaining else: current_chunk = remaining # 添加最后一个块(如果有的话) if current_chunk: chunks.append(current_chunk.strip()) return chunks def cosine_similarity(v1: List[float], v2: List[float]) -> float: """计算两个向量的余弦相似度""" v1, v2 = np.array(v1), np.array(v2) return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) def get_embeddings(texts: List[str], is_query: bool = False) -> np.ndarray: """获取文本的embeddings""" # 如果是查询文本,使用查询指令 if is_query: embeddings = model.encode(texts) else: # 如果是文档文本,不使用查询指令 embeddings = model.encode(texts) return embeddings def cosine_similarity(v1: np.ndarray, v2: np.ndarray) -> float: """计算两个向量的余弦相似度""" return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) def process_all_documents(documents: List[str]) -> Tuple[List[str], np.ndarray, List[Tuple[int, int]]]: """处理所有文档,返回分块和embeddings""" all_chunks = [] doc_boundaries = [] start_idx = 0 # 对每个文档进行分块 for doc in documents: chunks = chunk_text(doc) all_chunks.extend(chunks) doc_boundaries.append((start_idx, start_idx + len(chunks))) start_idx += len(chunks) # 获取embeddings all_embeddings = get_embeddings(all_chunks) return all_chunks, all_embeddings, doc_boundaries def search_across_documents(query: str, chunks: List[str], chunk_embeddings: np.ndarray, top_k: int = 3) -> List[Tuple[float, str, int]]: """在所有文档中搜索相关内容""" # 获取查询的embeddings query_embedding = get_embeddings([query], is_query=True) # 计算相似度 similarities = [] for i, chunk_emb in enumerate(chunk_embeddings): sim = cosine_similarity(query_embedding[0], chunk_emb) similarities.append((sim, chunks[i], i)) # 排序并返回top_k结果 results = sorted(similarities, key=lambda x: x[0], reverse=True)[:top_k] return results def context_understanding_with_references(documents, queries, top_k=3): """主函数:处理所有文档并执行查询""" print("\n===== 开始处理所有文档 =====") # 处理所有文档 all_chunks, all_embeddings, doc_boundaries = process_all_documents(documents) print(f"\n总共处理了 {len(documents)} 个文档,产生了 {len(all_chunks)} 个文本片段") # 执行查询 for query in queries: print(f"\n\n查询: {query}") print("-" * 50) # 在所有文档中搜索 results = search_across_documents(query, all_chunks, all_embeddings, top_k) # 显示结果 print(f"\n=== Top {top_k} 结果 ===") for sim, chunk, idx in results: # 找出该chunk属于哪个文档 doc_id = next(i for i, (start, end) in enumerate(doc_boundaries) if start <= idx < end) print(f"\n相似度 {sim:.4f} (文档 #{doc_id}, 片段 #{idx}):") print(f"内容: {chunk}") print("*" * 88) context_test_documents = [ """ OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。 最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。 如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 """, """ 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 """, """ 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。 特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 """, ] # 测试查询,特别关注指代词相关的上下文 test_queries = [ # OpenAI相关查询 "OpenAI董事会解雇CEO的原因是什么", "OpenAI在AI领域的影响力体现在哪里", # 指代OpenAI "董事会的决定造成了什么后果", # Cybertruck相关查询 "Cybertruck的生产面临什么挑战", "Cybertruck的售价情况如何", # 指代Cybertruck "Cybertruck的竞争对手有哪些", # 指代Cybertruck # 说文解字相关查询 "说文解字的编撰过程", "说文解字的分类方法有什么特点", # 指代说文解字 "说文解字对后世产生了什么影响" # 指代说文解字 ] # 使用示例 if __name__ == "__main__": context_understanding_with_references(context_test_documents, test_queries, top_k=3)
结果如下:
**************************************************************************************** ===== 开始处理所有文档 ===== 总共处理了 3 个文档,产生了 6 个文本片段 查询: OpenAI董事会解雇CEO的原因是什么 -------------------------------------------------- === Top 3 结果 === 相似度 0.8387 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.7132 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6087 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 查询: OpenAI在AI领域的影响力体现在哪里 -------------------------------------------------- === Top 3 结果 === 相似度 0.8632 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.7682 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6788 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 查询: 董事会的决定造成了什么后果 -------------------------------------------------- === Top 3 结果 === 相似度 0.6848 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 相似度 0.6734 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6525 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 查询: Cybertruck的生产面临什么挑战 -------------------------------------------------- === Top 3 结果 === 相似度 0.7932 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.7074 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.6990 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 查询: Cybertruck的售价情况如何 -------------------------------------------------- === Top 3 结果 === 相似度 0.8013 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.7047 (文档 #1, 片段 #3): 内容: 尽管如此,它仍然吸引了大量订单。有意思的是,它的外观设计虽然争议不断,但却因其独特性在社交媒体上 获得了超高关注度。分析师指出,它的成功与否将直接影响特斯拉在皮卡市场的地位。目前,它已经开始小批量 生产,但产能爬坡面临诸多挑战。马斯克表示,要到2024年底,它才能实现每周一万台的生产目标。与此同时, 它的竞争对手们也没有闲着。福特F-150 Lightning和雪佛兰Silverado EV都在积极扩大产能,这使得电动 皮卡市场的竞争更加激烈。 相似度 0.6998 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 查询: Cybertruck的竞争对手有哪些 -------------------------------------------------- === Top 3 结果 === 相似度 0.7557 (文档 #1, 片段 #2): 内容: 特斯拉的Cybertruck终于在2023年底开始交付,这款酷似科幻电影道具的电动皮卡让人过目难忘。从2019年 首次发布概念车到现在,它经历了无数次延期和设计改进。马斯克称它是一款革命性的产品,因为它采用了创新的 不锈钢外壳设计。然而,这种特殊的材料选择也给它的生产带来了巨大挑战。据工厂工人透露,它的组装过程 异常复杂,每一个焊接点都需要特殊处理。更具争议的是,它的实际售价远超最初承诺的39,900美元起步价。 相似度 0.7035 (文档 #0, 片段 #1): 内容: 有趣的是,在 随后的几天里,它又经历了戏剧性的反转。数百名员工威胁集体辞职,微软对这位被解雇的CEO伸出橄榄枝。最终,在各方压力下,董事会不得不收回成命。这一系列事件充分说明,它在AI领域的影响力已经远超一般科技公司。如今,它正在积极推进GPT-5的研发,据报道,这个新模型的性能将远超现有版本。业内专家预测,它可能会在 明年推出,届时必将再次改变AI行业格局。 相似度 0.6953 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 查询: 说文解字的编撰过程 -------------------------------------------------- === Top 3 结果 === 相似度 0.8292 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.7847 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.6644 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 查询: 说文解字的分类方法有什么特点 -------------------------------------------------- === Top 3 结果 === 相似度 0.8139 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.7405 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.6440 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。 查询: 说文解字对后世产生了什么影响 -------------------------------------------------- === Top 3 结果 === 相似度 0.7848 (文档 #2, 片段 #4): 内容: 中国最早的词典《说文解字》对汉字的研究影响深远。它由东汉许慎编撰完成,前后耗时数十载。这部巨著不仅 系统地分析了汉字的构造原理,更开创了形声字的理论体系。在古代文人的著作中,它常常被引用作为考据的 重要依据。值得注意的是,它采用了独特的部首分类法,按照540个部首将9353个字分门别类。这种分类方法影响了 后世众多字典的编撰。宋代的《类篇》就是在它的基础上改进而来。明清时期,它更是成为了科举考试的必备参考书。 相似度 0.7637 (文档 #2, 片段 #5): 内容: 随着时代发展,它的一些观点虽然被现代语言学家质疑,但它对汉字研究的系统性方法仍然具有重要的参考价值。特别是在考古发现中,它的许多论述都得到了甲骨文和金文的印证。现代学者在研究它的时候发现,许多当时被 认为是臆测的字源解释,竟然与后来出土的古文字材料相吻合。这种惊人的准确性,使得它在数字化时代依然 保持着极高的学术价值。近年来,随着人工智能技术的发展,它的数字化版本为计算机处理古文献提供了重要依据。 相似度 0.6261 (文档 #0, 片段 #0): 内容: OpenAI的发展历程充满戏剧性。这家公司成立于2015年,最初是作为非营利组织运营。随着GPT系列模型的推出, 它逐渐成为AI领域的领军企业。特别是在2022年底推出ChatGPT后,它的影响力达到了顶峰。然而,就在这个AI 助手风靡全球的时候,公司内部却出现了意想不到的变故。董事会突然宣布解雇CEO Sam Altman,这一决定在 科技界引起轩然大波。虽然它的这个决定充满争议,但董事会认为这是维护公司使命的必要之举。
让我们比较一下本地BGE模型和前面jina AI API (包含late chunking和传统方法)的结果差异:
1、相似度分数范围:
- BGE模型的相似度分数普遍更高,通常在0.7-0.8之间
- jina AI API的分数相对较低:
- 传统方法:通常在0.6-0.7之间
- Late chunking:通常在0.5-0.7之间
2、结果准确性:
- 三种方法在top1结果的选择上基本一致,都能准确找到最相关的段落
- 例如对于"jina AI董事会解雇CEO的原因":
- BGE: 0.8387
- jina AI传统: 0.7948
- jina AI Late chunking: 0.7322
- 都选择了同一段最相关文本
3、排序稳定性:
- BGE模型展现出最好的排序稳定性,相关性递减更合理
- 例如对于"Cybertruck的生产面临什么挑战":
- BGE的排序更符合逻辑:0.7932 → 0.7074 → 0.6990
- 相关段落排在前面,不相关段落的分数明显降低
4、错误召回控制:
- BGE模型对不相关内容的过滤效果最好
- 例如在"说文解字"相关查询中:
- BGE给出的jina AI相关段落的相似度明显较低(0.6440)
- 而其他方法可能给出较高的错误相似度
5、优势对比:
BGE模型优势:
- 相似度分数区分度更高
- 排序更合理
- 错误召回控制更好
jina AI API优势:
- Late chunking方法能更好保持上下文
- 处理长文本的能力可能更强
实际应用建议:
- 如果追求准确性和效率,本地BGE模型是很好的选择
- 如果需要处理复杂长文本或重视上下文,可以考虑jina AI API ==》我不太确定究竟多长才能体现出late chunking的优势。见后一个文章!
- 在资源允许的情况下,可以综合使用多种方法互补