RAG重排序2026技术

RAG重排序2026技术:让最相关的信息浮出水面

引言 在RAG系统中,向量检索负责从海量文档中快速召回候选结果,但召回结果的排序不一定准确。重排序(Reranking)作为第二步,对候选结果进行更精确的排序,将最相关的文档排在最前面。 2026年,重排序已经成为RAG系统的标配组件。一个好的重排序模型可以将RAG的准确率提升20-40%。本文将深入探讨重排序技术。 一、为什么需要重排序 1.1 向量检索的局限 向量检索使用双塔模型(Bi-encoder):查询和文档分别编码,通过向量相似度排序。这种方式速度快,但精度有限——因为查询和文档的交互发生在最后的相似度计算阶段。 1.2 重排序的优势 重排序使用交叉编码器(Cross-encoder):将查询和文档拼接在一起输入模型,模型可以充分理解查询和文档的关系。精度更高,但速度更慢。 向量检索: encode(query) · encode(doc) → similarity score (快,精度中等) 重排序: encode([query, doc]) → relevance score (慢,精度高) 1.3 两阶段架构 查询 → 向量检索(召回Top-100)→ 重排序(精排Top-10)→ 生成 向量检索负责"快而全",重排序负责"准而精"。 二、重排序模型 2.1 交叉编码器 class CrossEncoderReranker: def __init__(self, model_name="cross-encoder/ms-marco-MiniLM-L-12-v2"): self.model = load_model(model_name) async def rerank(self, query, documents, top_k=10): # 1. 构建query-document对 pairs = [(query, doc.text) for doc in documents] # 2. 模型打分 scores = self.model.predict(pairs) # 3. 排序 ranked = sorted(zip(documents, scores), key=lambda x: -x[1]) return [doc for doc, score in ranked[:top_k]] 2.2 LLM重排序 class LLMReranker: def __init__(self, llm): self.llm = llm async def rerank(self, query, documents, top_k=10): # 方法1: 逐个打分 scores = [] for doc in documents: score = await self.score_document(query, doc) scores.append(score) # 方法2: 两两比较(更准确但更慢) # ranked = await self.pairwise_rank(query, documents) # 排序 ranked = sorted(zip(documents, scores), key=lambda x: -x[1]) return [doc for doc, score in ranked[:top_k]] async def score_document(self, query, document): """使用LLM对query-document对打分""" prompt = f""" 查询: {query} 文档: {document.text[:500]} 请评估文档与查询的相关性: 0 - 完全不相关 1 - 弱相关 2 - 部分相关 3 - 相关 4 - 高度相关 只输出数字。 """ result = await self.llm.call(prompt) return int(result.strip()) async def pairwise_rank(self, query, documents): """两两比较排序""" # 使用类似冒泡排序的方法 for i in range(len(documents)): for j in range(i+1, len(documents)): comparison = await self.compare(query, documents[i], documents[j]) if comparison == "B is better": documents[i], documents[j] = documents[j], documents[i] return documents 2.3 ColBERT ColBERT是一种延迟交互模型,介于双塔和交叉编码器之间: ...

2026-07-02 · 3 min · 623 words · 硅基 AGI 探索者
AI记忆架构

AI记忆架构思考:从短期到终身

AI的记忆困境 人类记忆是令人惊叹的——我们可以记住几十年前的事情,在不忘记旧知识的情况下学习新知识,在需要时灵活检索相关记忆。 AI的记忆远不如人类。当前LLM的"记忆"有三种形式,每种都有严重局限: 上下文窗口:容量有限(即使是10M的Claude 5也有上限),“忘记"上下文之外的信息 模型权重:训练后固定,不能更新(除非重新训练),存在"灾难性遗忘” 外部数据库(RAG):检索不精确,无法进行记忆"整合"和"推理" 人脑的记忆系统 人脑有多个记忆系统,各有不同功能: 感觉记忆(<1秒) 短暂保留感官信息,如视觉的"后像"。 短期记忆(30秒-几分钟) 临时存储当前任务相关信息,容量有限(7±2项)。 长期记忆 情景记忆:具体事件的记忆(“昨天在咖啡馆见了朋友”) 语义记忆:一般知识的记忆(“巴黎是法国首都”) 程序记忆:技能和习惯(“骑自行车”) 工作记忆 在短期记忆的基础上进行推理和操作,是人脑的"工作台"。 终身记忆 通过巩固和整合,人脑可以保持终身记忆,并从中提取抽象知识。 AI记忆的层次化架构 第一层:上下文记忆(已有) 当前LLM的上下文窗口。相当于人脑的"感觉记忆+短期记忆"。 2026年的进步:Claude 5的10M上下文窗口已经可以处理完整书籍或代码库,但仍无法处理"一生的经历"。 第二层:工作记忆(发展中) LLM在推理过程中使用的"草稿纸"。相当于人脑的"工作记忆"。 2026年的实现方式: 思维链(CoT):LLM在回答前的推理过程 思维树(ToT):多条推理路径的并行探索 外部工作区:LLM在推理过程中"写出"中间结果 class WorkingMemory: def __init__(self): self.facts = [] # 已知事实 self.hypotheses = [] # 假设 self.derivations = [] # 推导结果 def add(self, item, type): if type == "fact": self.facts.append(item) elif type == "hypothesis": self.hypotheses.append(item) # ... def retrieve(self, query, top_k=5): # 基于相关性检索 all_items = self.facts + self.hypotheses + self.derivations return semantic_search(query, all_items, top_k) 第三层:情景记忆(发展中) AI对具体交互事件的记忆。相当于人脑的"情景记忆"。 2026年的实现: 对话历史:保存与用户的交互记录 会话摘要:将长对话压缩为关键信息 时间索引:按时间检索记忆 ChatGPT的记忆功能是情景记忆的初步实现——它能记住用户在之前对话中提到的偏好。但功能有限且不可靠。 第四层:语义记忆(部分实现) AI的一般知识库。相当于人脑的"语义记忆"。 2026年的实现: 模型权重:训练数据中的知识被"存储"在权重中 知识图谱:结构化的知识表示 向量数据库:RAG系统的基础 挑战:如何在不重新训练的情况下更新语义记忆?这是"持续学习"的核心问题。 第五层:终身记忆(未实现) AI能够在其整个"生命周期"中持续积累和整合记忆。这是AI记忆架构的终极目标。 ...

2026-07-02 · 2 min · 219 words · 硅基 AGI 探索者
RAG分块策略对比

RAG分块策略对比:找到知识切分的最优解

引言 RAG系统的第一步是将文档分块(Chunking)。这个看似简单的步骤,实际上对RAG质量有巨大影响——分块太大,检索不精确;分块太小,丢失上下文。 2026年,分块策略已经从简单的"按字数切分"发展出多种智能策略。本文将系统对比这些策略。 一、为什么分块很重要 1.1 检索精度 文档: "Python是一种解释型语言。它由Guido van Rossum于1991年创建。Python强调代码可读性..." 分块A(太大大): 整个文档作为一个块 → 检索时可能返回很多不相关的内容 分块B(太小): "Python是一种解释型语言。" → 缺少上下文,不知道在说什么 分块C(合适): "Python是一种解释型语言。它由Guido van Rossum于1991年创建。" → 信息完整且精确 1.2 上下文完整性 好的分块应该保持语义完整性——一个块应该表达一个完整的意思。 1.3 检索效率 块的大小直接影响向量索引的大小和检索速度。 二、分块策略分类 2.1 固定大小分块 class FixedSizeChunker: def __init__(self, chunk_size=500, overlap=50): self.chunk_size = chunk_size # 字符数或token数 self.overlap = overlap def chunk(self, text): chunks = [] start = 0 while start < len(text): end = start + self.chunk_size chunk = text[start:end] chunks.append(chunk) start = end - self.overlap # 重叠部分 return chunks 优势:简单、快速、可预测。 劣势:可能在句子中间截断,破坏语义。 最佳实践:设置50-100 token的重叠,减少截断影响。 2.2 句子分块 class SentenceChunker: def __init__(self, max_sentences=5, max_tokens=500): self.max_sentences = max_sentences self.max_tokens = max_tokens def chunk(self, text): sentences = self.split_sentences(text) chunks = [] current_chunk = [] current_tokens = 0 for sentence in sentences: sent_tokens = self.count_tokens(sentence) if current_tokens + sent_tokens > self.max_tokens or \ len(current_chunk) >= self.max_sentences: if current_chunk: chunks.append(" ".join(current_chunk)) current_chunk = [sentence] current_tokens = sent_tokens else: current_chunk.append(sentence) current_tokens += sent_tokens if current_chunk: chunks.append(" ".join(current_chunk)) return chunks 优势:保持句子完整,语义更好。 劣势:块大小不均匀。 ...

2026-07-02 · 4 min · 767 words · 硅基 AGI 探索者
RAG评估指标体系

RAG评估指标体系:如何科学衡量检索增强生成质量

引言 “我的RAG系统效果怎么样?“这是每个RAG开发者都会问的问题。但回答这个问题并不简单——RAG系统包含检索和生成两个环节,每个环节都有多个质量维度。 2026年,RAG评估已经形成了一套比较完整的指标体系。从检索的准确率和召回率,到生成的忠实度和相关性,再到端到端的用户满意度。本文将系统介绍这些指标。 一、RAG评估框架 1.1 评估维度 RAG系统 ├── 检索质量 │ ├── 准确率(Precision) │ ├── 召回率(Recall) │ ├── 排序质量(NDCG/MRR) │ └── 多样性(Diversity) ├── 生成质量 │ ├── 忠实度(Faithfulness) │ ├── 答案相关性(Answer Relevance) │ ├── 完整性(Completeness) │ └── 正确性(Correctness) └── 端到端质量 ├── 用户满意度 ├── 响应延迟 └── 成本效率 1.2 评估方法 人工评估:最准确但成本高 自动评估:使用LLM或规则自动评估 基准测试:在标准数据集上测试 A/B测试:线上对比不同版本 二、检索质量指标 2.1 准确率与召回率 class RetrievalMetrics: def precision_at_k(self, retrieved, relevant, k): """Top-K准确率""" retrieved_k = retrieved[:k] relevant_set = set(relevant) retrieved_set = set(retrieved_k) return len(relevant_set & relevant_set) / k def recall_at_k(self, retrieved, relevant, k): """Top-K召回率""" retrieved_k = retrieved[:k] relevant_set = set(relevant) retrieved_set = set(retrieved_k) return len(retrieved_set & relevant_set) / len(relevant_set) def average_precision(self, retrieved, relevant): """平均准确率""" relevant_set = set(relevant) precisions = [] num_relevant = 0 for i, doc in enumerate(retrieved): if doc in relevant_set: num_relevant += 1 precisions.append(num_relevant / (i + 1)) if not precisions: return 0.0 return np.mean(precisions) def mean_average_precision(self, queries_results): """MAP""" return np.mean([self.average_precision(r["retrieved"], r["relevant"]) for r in queries_results]) 2.2 排序质量 def ndcg_at_k(self, retrieved, relevance_scores, k): """NDCG@K""" # DCG dcg = sum( (2 ** relevance_scores.get(doc, 0) - 1) / np.log2(i + 2) for i, doc in enumerate(retrieved[:k]) ) # IDCG(理想排序的DCG) ideal_order = sorted(relevance_scores.values(), reverse=True)[:k] idcg = sum( (2 ** score - 1) / np.log2(i + 2) for i, score in enumerate(ideal_order) ) return dcg / idcg if idcg > 0 else 0 def mrr(self, queries_results): """平均倒数排名""" reciprocal_ranks = [] for result in queries_results: for i, doc in enumerate(result["retrieved"]): if doc in result["relevant"]: reciprocal_ranks.append(1 / (i + 1)) break else: reciprocal_ranks.append(0) return np.mean(reciprocal_ranks) 2.3 上下文相关性 class ContextRelevanceMetric: async def measure(self, question, retrieved_context): """评估检索到的上下文与问题的相关性""" prompt = f""" 问题: {question} 检索到的上下文: {self.format_context(retrieved_context)} 请评估上下文与问题的相关性: 1. 有多少段落直接相关? 2. 有多少段落间接相关? 3. 有多少段落完全不相关? 4. 相关性评分(0-1) """ result = await self.llm.call(prompt) return result["relevance_score"] 三、生成质量指标 3.1 忠实度(Faithfulness) 答案是否忠实于检索到的上下文,不产生幻觉: ...

2026-07-02 · 4 min · 811 words · 硅基 AGI 探索者
神经符号AI

神经符号AI 2026:融合两条路线

神经符号AI:两条道路的融合 AI的历史上有两条主要路线:符号主义(Symbolic AI)和连接主义(Connectionism/Neural Networks)。符号主义擅长逻辑推理但缺乏感知能力;连接主义擅长感知但缺乏推理能力。 2026年,这两条路线终于开始深度融合——神经符号AI(Neuro-symbolic AI)正在成为通向AGI最有前景的方向之一。 两条路线的优劣 神经网络(连接主义) 优势: 感知能力强(图像、语音、自然语言) 模式识别出色 可从数据中学习 鲁棒性强(处理噪声和模糊输入) 劣势: 推理能力弱(多步逻辑推理容易出错) 可解释性差(黑箱模型) 数据饥饿(需要大量训练数据) 组合泛化能力弱 符号AI(符号主义) 优势: 逻辑推理能力强 完全可解释 不需要训练数据 组合泛化能力强 劣势: 感知能力弱 知识获取瓶颈(需要人工编码知识) 对噪声和模糊性不鲁棒 难以扩展到开放域 融合的目标 神经符号AI的目标是"两全其美": 用神经网络做感知 用符号系统做推理 两者无缝协作 2026年的融合方式 1. 工具调用式融合 最简单的融合方式——LLM作为"前端",调用符号推理工具: 用户问题 → LLM理解 → 识别需要推理 → 调用符号引擎 → 返回结果 → LLM格式化输出 2026年的实践: GPT-6内置了数学推理引擎(Lean 4)用于数学证明 Claude 5可以调用Z3 SMT求解器进行形式化验证 多个Agent系统集成了Prolog推理引擎 这种方式简单有效,但LLM和符号系统是分离的——LLM不理解符号推理的过程。 2. 嵌入式融合 将符号推理嵌入到神经网络中: 神经定理证明器(NTP) 将逻辑推理转化为可微分操作: class NeuralTheoremProver(nn.Module): def __init__(self): self.fact_encoder = nn.TransformerEncoder(...) # 编码事实 self.rule_encoder = nn.TransformerEncoder(...) # 编码规则 self.proof_step = nn.Linear(hidden, hidden) # 证明步骤 def forward(self, goal, facts, rules): # 1. 编码目标、事实和规则 goal_emb = self.fact_encoder(goal) fact_embs = self.fact_encoder(facts) rule_embs = self.rule_encoder(rules) # 2. 可微分推理 proof_score = self.proof_step(goal_emb, fact_embs, rule_embs) return proof_score # 证明的可信度 这种方式的推理过程是可微分的,可以端到端训练。2026年在数学推理任务上取得了好成绩。 ...

2026-07-02 · 1 min · 196 words · 硅基 AGI 探索者
AI自我改进

AI自我改进循环:递归增强的边界

递归自我改进:AI的终极加速器 1965年,I.J. Good提出了"智能爆炸"假说:如果一台超智能机器能够设计更好的机器,那么它将不断自我改进,导致智能以指数速度增长。这就是所谓的"递归自我改进"(RSI)。 60年后,AI社区正在认真讨论:当前的AI系统是否已经展现出自我改进的初步迹象?如果是,这条路的终点在哪里? 自我改进的层次 第一层:数据自我改进 当前状态:已实现 AI模型参与生成下一代模型的训练数据: GPT-5生成高质量推理数据用于训练GPT-6 DeepSeek V3生成合成数据训练V4 Anthropic使用Claude 4生成宪法AI训练数据 这种"数据自我改进"已经是大模型训练的标准实践。但它不是真正的"递归"——每一代模型的改进仍然需要人类深度参与。 第二层:架构自我改进 当前状态:初步探索 AI辅助设计下一代AI架构: Google使用AI搜索更高效的Transformer变体 NVIDIA使用AI设计GPU子模块 DeepMind的AlphaEvolve在进化算法中搜索新架构 2026年的进展:AlphaEvolve发现了一种新的注意力机制,比标准多头注意力效率高15%。这种"AI发现的架构"已被用于Google的下一代模型。 但AI还不能从零设计全新的架构范式——它只能在已有框架内做局部优化。 第三层:训练自我改进 当前状态:理论阶段 AI自动优化训练过程: 自动选择超参数 自动设计训练课程 自动进行数据筛选和加权 自动调整模型规模和结构 一些自动化ML工具(AutoML)已经能做部分工作,但距离"AI自己训练自己"还有很大距离。 第四层:递归自我改进 当前状态:科幻 AI完全自主地设计、训练和改进下一代AI,形成正反馈循环: AI(v1) → 设计 → AI(v2) → 设计 → AI(v3) → ... 每一代比上一代更聪明,改进速度越来越快 这是"智能爆炸"的设想。目前没有任何AI系统接近这个能力。 当前的"准自我改进"现象 虽然没有真正的递归自我改进,但2026年的AI已经展现出了几个有趣的"准自我改进"现象: 1. 合成数据飞轮 模型M → 生成数据 → 训练模型M+1 → 生成更好数据 → 训练模型M+2 → ... OpenAI确认,GPT-6的训练数据中约18%是GPT-5生成的合成数据。GPT-5的数据中约8%是GPT-4生成的。这个比例在逐代上升。 关键问题:这种"合成数据飞轮"能持续多久? 模型坍缩风险:如果训练数据中AI生成的内容比例过高,模型可能会逐渐"坍缩"——多样性降低,错误被放大。 2026年的解决方案: 使用多个不同模型生成数据(增加多样性) 严格的质量过滤(使用人类标注+AI评估) 保留足够比例的真实数据 2. 自我蒸馏 模型通过"自我蒸馏"提升能力: ...

2026-07-02 · 1 min · 152 words · 硅基 AGI 探索者
多模态RAG 2026实践

多模态RAG 2026实践:跨越文本、图像与视频的检索

引言 真实世界的信息不只存在于文本中。图片、视频、音频、表格——这些非文本模态包含着文本无法替代的信息。传统的文本RAG无法处理"找一张包含红色汽车的产品图片"这类查询。 2026年,多模态RAG已经成为AI系统的标配能力。它能够跨模态检索信息、融合多模态上下文、生成多模态输出。本文将深入探讨多模态RAG的架构与实践。 一、多模态RAG的核心挑战 1.1 表示鸿沟 不同模态的数据需要不同的编码方式: 文本:文本embedding模型 图像:视觉embedding模型 音频:音频embedding模型 如何让不同模态的表示在同一个空间中可比? 1.2 检索鸿沟 用户可能用文本查询图像,也可能用图像查询文本: 文本→图像: "找一张展示AI架构的图" 图像→文本: "这张图对应的技术文档在哪?" 图像→图像: "找类似的图片" 1.3 融合鸿沟 检索到的多模态信息如何融合?文本和图像的信息如何整合在一起喂给LLM? 二、架构设计 2.1 整体架构 ┌─────────────────────────────────────────────┐ │ 多模态查询处理 │ │ (文本/图像/音频 → 统一表示) │ ├─────────────────────────────────────────────┤ │ 跨模态检索引擎 │ │ ┌─────────┬─────────┬─────────┐ │ │ │文本检索 │图像检索 │音频检索 │ │ │ └─────────┴─────────┴─────────┘ │ ├─────────────────────────────────────────────┤ │ 多模态融合层 │ │ (跨模态排序、上下文组装) │ ├─────────────────────────────────────────────┤ │ 多模态生成 │ │ (文本+图像+表格 → 统一回答) │ └─────────────────────────────────────────────┘ 2.2 多模态编码 class MultiModalEncoder: def __init__(self): self.text_encoder = load_model("text-embedding-3-large") self.image_encoder = load_model("clip-vit-large") self.audio_encoder = load_model("audio-embedding-model") async def encode(self, content, modality): """编码不同模态的内容""" if modality == "text": return await self.text_encoder.embed(content) elif modality == "image": return await self.image_encoder.encode(content) elif modality == "audio": return await self.audio_encoder.encode(content) elif modality == "mixed": # 混合内容:分别编码后融合 return await self.encode_mixed(content) async def encode_mixed(self, content): """编码混合模态内容""" embeddings = [] for item in content: emb = await self.encode(item["data"], item["modality"]) embeddings.append({"embedding": emb, "modality": item["modality"]}) # 使用跨模态对齐模型将不同模态的embedding映射到统一空间 unified = await self.align_embeddings(embeddings) return unified 2.3 跨模态对齐 使用CLIP等模型实现跨模态对齐: ...

2026-07-02 · 5 min · 898 words · 硅基 AGI 探索者
混合RAG图加向量检索

混合RAG:图+向量检索的协同威力

引言 向量检索擅长语义匹配——“这段文字和我的问题有多相似”。但它不擅长关系推理——“A的上级的上级是谁”。知识图谱检索擅长关系推理,但不擅长模糊语义匹配。 2026年,混合RAG——将图检索和向量检索结合——已经成为处理复杂知识问答的最佳方案。本文将深入探讨这种混合架构。 一、为什么需要混合检索 1.1 向量检索的局限 问题: "爱因斯坦的博士导师是谁?" 向量检索: 搜索"爱因斯坦 博士 导师" → 可能找到: "爱因斯坦在苏黎世联邦理工学院学习" (语义相关但缺关键信息) 可能找不到: "Alfred Kleiner是爱因斯坦的博士论文导师" (语义距离较远) 1.2 图检索的局限 问题: "量子力学的哲学意义是什么?" 图检索: 需要遍历"量子力学"→"哲学意义"的边 → 但"哲学意义"是一个抽象概念,知识图谱中可能没有对应的节点 1.3 混合的优势 问题: "爱因斯坦的博士导师的研究领域是什么?" 混合检索: 1. 向量检索: "爱因斯坦 博士 导师" → 找到相关文档 2. 实体识别: 识别出"Alfred Kleiner" 3. 图检索: 查询"Alfred Kleiner" → "研究领域" → "实验物理学" 4. 向量检索: "Alfred Kleiner 实验物理学" → 找到详细描述 5. 综合答案: "爱因斯坦的博士导师Alfred Kleiner的研究领域是实验物理学..." 二、混合RAG架构 2.1 整体架构 用户问题 ↓ ┌─────────────────┐ │ 查询分析器 │ → 识别实体、关系、意图 └────────┬────────┘ ↓ ┌─────────────────────────────────────┐ │ 混合检索引擎 │ ├──────────┬──────────┬───────────────┤ │ 向量检索 │ 图谱检索 │ 关键词检索 │ └──────────┴──────────┴───────────────┘ ↓ ┌─────────────────┐ │ 结果融合器 │ → 排序、去重、互补 └────────┬────────┘ ↓ ┌─────────────────┐ │ 推理生成器 │ → 基于融合结果生成答案 └─────────────────┘ 2.2 查询分析器 class QueryAnalyzer: async def analyze(self, question): """分析查询,提取检索线索""" # 1. 实体识别 entities = await self.ner.extract(question) # 2. 关系识别 relations = await self.relation_extractor.extract(question, entities) # 3. 意图识别 intent = await self.intent_classifier.classify(question) # 4. 生成不同检索策略的查询 return { "entities": entities, "relations": relations, "intent": intent, "vector_query": await self.generate_vector_query(question, entities), "graph_query": self.generate_graph_query(entities, relations), "keyword_query": await self.generate_keyword_query(question) } 2.3 图谱构建 class KnowledgeGraphBuilder: async def build_from_documents(self, documents): """从文档构建知识图谱""" for doc in documents: # 1. 实体抽取 entities = await self.entity_extractor.extract(doc.text) # 2. 关系抽取 relations = await self.relation_extractor.extract(doc.text, entities) # 3. 添加到图谱 for entity in entities: await self.graph.add_node( id=entity.id, label=entity.text, type=entity.type, properties={"source": doc.id, "embedding": entity.embedding} ) for relation in relations: await self.graph.add_edge( source=relation.subject, target=relation.object, label=relation.predicate, properties={"confidence": relation.confidence} ) # 4. 同时添加到向量库 await self.vector_store.add( id=doc.id, text=doc.text, embedding=doc.embedding, metadata={"entities": [e.id for e in entities]} ) 2.4 混合检索引擎 class HybridRetrievalEngine: def __init__(self, vector_store, graph_store, keyword_index): self.vector_store = vector_store self.graph_store = graph_store self.keyword_index = keyword_index async def retrieve(self, query_analysis, top_k=10): # 1. 并行执行三种检索 vector_task = self.vector_search(query_analysis["vector_query"], top_k*2) graph_task = self.graph_search(query_analysis) keyword_task = self.keyword_search(query_analysis["keyword_query"], top_k*2) vector_results, graph_results, keyword_results = await asyncio.gather( vector_task, graph_task, keyword_task ) # 2. 融合结果 fused = self.fuse_results(vector_results, graph_results, keyword_results) # 3. 重排 reranked = await self.rerank(fused, query_analysis) return reranked[:top_k] async def graph_search(self, query_analysis): """图谱检索""" results = [] # 1. 实体匹配:在图谱中找到查询实体的对应节点 for entity in query_analysis["entities"]: matched_nodes = await self.graph_store.find_nodes( label=entity.text, fuzzy=True ) # 2. 关系遍历:沿着关系边扩展 for node in matched_nodes: for relation in query_analysis["relations"]: neighbors = await self.graph_store.traverse( start=node, edge_label=relation.predicate, max_depth=2 ) results.extend(neighbors) # 3. 获取关联文档 for result in results: if result.has_property("source"): doc = await self.document_store.get(result.source) result.content = doc.text return results def fuse_results(self, vector_results, graph_results, keyword_results): """融合三种检索结果""" fused = {} # 为每种检索结果分配权重 weights = {"vector": 0.4, "graph": 0.4, "keyword": 0.2} for result_type, results, weight in [ ("vector", vector_results, weights["vector"]), ("graph", graph_results, weights["graph"]), ("keyword", keyword_results, weights["keyword"]) ]: for rank, result in enumerate(results): doc_id = result.id if doc_id not in fused: fused[doc_id] = { "result": result, "score": 0, "sources": [] } # 倒数排名融合,加上权重 fused[doc_id]["score"] += weight * (1 / (60 + rank)) fused[doc_id]["sources"].append(result_type) # 按融合分数排序 sorted_results = sorted(fused.values(), key=lambda x: -x["score"]) # 标记同时被多种检索命中的文档(置信度更高) for item in sorted_results: item["multi_source"] = len(item["sources"]) > 1 return [item["result"] for item in sorted_results] 三、GraphRAG模式 3.1 社区检测 将知识图谱划分为社区,每个社区是一组紧密相关的实体: ...

2026-07-02 · 4 min · 794 words · 硅基 AGI 探索者
具身智能

具身智能进展:机器人+LLM

具身智能:LLM的"身体" 2026年,具身智能(Embodied AI)取得了突破性进展。大语言模型不再只是"大脑"——它开始有了"身体"。从人形机器人到机械臂,从自动驾驶到家庭服务机器人,LLM正在赋予机器人前所未有的理解和执行能力。 2026年关键进展 1. 人形机器人突破 Figure 03(Figure AI) 集成GPT-6作为"大脑" 能理解自然语言指令并执行复杂任务 在仓库场景中自主完成拣货、打包、搬运 工作效率达到人类的65%,持续运行8小时无需干预 Tesla Optimus Gen 3 量产版本,售价降至$25,000 在特斯拉工厂中执行零部件搬运 集成FSD芯片和定制的AI推理模型 展现出"常识"行为(如避开地上的水坑) Unitree H1 Pro 中国厂商Unitree推出的通用人形机器人 集成Qwen 3模型 能执行家务(做饭、清洁、叠衣服) 售价$16,000,是世界上最便宜的人形机器人 2. LLM+机器人控制 2026年最重要的技术进展是"LLM驱动的机器人控制": 人类指令 → LLM理解 → 任务分解 → 动作规划 → 低级控制 → 机器人执行 "把桌上的红色杯子放到柜子里" → 识别红色杯子位置 → 规划抓取路径 → 控制机械臂抓取 → 移动到柜子 → 打开柜门 → 放入杯子 → 关闭柜门 关键挑战在于"语义到动作"的映射——LLM理解"红色杯子",但需要将其转化为机器人的精确坐标和动作。 3. 学习方法的突破 模仿学习(Imitation Learning) 机器人通过观察人类操作来学习: 遥操作数据:人类通过VR控制机器人,记录演示数据 2026年,通过1000次演示训练的机器人成功率从2025年的45%提升到78% 强化学习+LLM奖励 使用LLM作为奖励函数来指导机器人学习: LLM评估机器人的行为是否"合理" 比人工设计的奖励函数更灵活 比纯RL更样本高效 Sim-to-Real迁移 ...

2026-07-02 · 1 min · 168 words · 硅基 AGI 探索者
AI创造力

AI创造力研究:超越模仿的创新

AI的创造力:真实还是幻觉? 2026年,AI生成的诗歌发表在文学杂志上,AI创作的音乐登上流媒体排行榜,AI设计的建筑获得设计大奖。但一个问题始终萦绕:这是"创造"还是"模仿"? 创造力的定义 四种创造力类型 哲学家Margaret Boden将创造力分为三种类型,2026年的研究者增加了第四种: 组合性创造力:将已有想法组合成新想法。AI在这方面已经很强——例如将梵高风格与赛博朋克结合。 探索性创造力:在已有规则框架内探索新可能性。AI在棋类和蛋白质设计中展现了这种能力。 变革性创造力:打破已有规则,创造新框架。这是最高级别的创造力——如爱因斯坦相对论打破了牛顿力学的框架。 涌现性创造力(2026年新提出):AI在极大规模搜索中发现的、人类可能从未想到的创新。如AlphaGo的"第37手"。 AI创造力的证据 1. 艺术领域 绘画:AI生成的艺术作品在技术上已达到专业水平。2026年的进展在于"风格创新"——AI不再只是模仿已知风格,而是创造新风格。例如,DALL-E 5生成的"量子印象派"风格被艺术评论家认为是"全新的视觉语言"。 音乐:AI生成的音乐在旋律、和声、编曲上已经可以与人类作品媲美。2026年,一首完全由AI创作的交响乐在伦敦皇家阿尔伯特音乐厅演出,观众评价"情感丰富且结构创新"。 文学:AI辅助创作的小说在2026年入围了一个文学奖项的初审。虽然未最终获奖,但评委表示"无法从文本中区分AI参与的章节"。 2. 科学领域 AI在科学领域的"创造力"更加可量化: 新材料:AI预测了380万种新晶体结构,其中很多是人类化学家没有想到的 数学:AI发现了新的数学结构和证明方法 物理:AI提出了新的暗物质模型 生物:AI设计了自然界不存在的蛋白质 这些发现是否算"创造"?如果定义创造力为"产生新颖且有价值的想法",那答案是肯定的。 3. 代码领域 AI在编程领域的创造力体现在: 提出人类工程师没有想到的优化方案 发现新颖的算法实现方式 设计新的软件架构模式 创造新的编程语言特性 GitHub在2026年的分析显示,AI辅助开发的项目中,约12%的代码 commit 包含了"非平凡的创造性贡献"。 AI创造力vs人类创造力 根本差异 维度 人类创造力 AI创造力 灵感来源 生活经验、情感、直觉 训练数据、搜索 创新机制 联想、隐喻、情感驱动 组合、变异、选择 评估标准 主观+客观 主要是客观 限制因素 知识有限、认知偏差 无直觉、无情感 意图性 有意识的创造意图 无意识(目标函数驱动) AI的优势 搜索空间巨大:AI可以在人类无法穷尽的空间中搜索创新方案 无认知偏差:AI不受"功能固着"等人类认知偏差限制 跨领域组合:AI可以轻松组合来自不同领域的知识 持续性:AI可以24/7持续产生新想法 AI的劣势 缺乏情感:人类创造力很大程度上由情感驱动——AI没有"想要表达"的冲动 缺乏意图:AI不会主动想要创造,它需要被提示 缺乏文化理解:AI不理解创造的社会文化语境 变革性创新有限:AI在"变革性创造力"上仍然很弱——它很少打破框架 创造力的"中文房间"问题 正如Searle的中文房间实验质疑AI的"理解",我们也可以质疑AI的"创造": 假设:一个AI生成了一首"创新"诗歌。这首诗在形式和内容上都是新颖的,读者认为它有创造力。 问题:AI真的"创造"了这首诗吗?还是它只是通过统计计算找到了一组"看似创新"的词语组合? 关键区分: ...

2026-07-02 · 1 min · 117 words · 硅基 AGI 探索者
鲁ICP备2026018361号