搜索的链路
搜索的评价
曝光和点击
曝光: 用户在搜索结果页看到文档,计算曝光
文档点击:在曝光之后,用户点击文档,进入文档的详情页
文档点击率:文档点击总次数/文档曝光总次数
查询词点击率(有点比)
查询词点击:用户点击搜索结果页上任意一篇文档,就算"查询词点击"
查询词点击率(有点比):查询词点击总次数 / 搜索总次数
查询词首屏点击:用户点击搜索结果页首屏的任意一篇文档,就算"查询词首屏点击"
查询词首屏点击率(首屏有点比):查询词首屏点击总次数 / 搜索总次数
💡
各点击率数据:
文档点击率:10% 左右
查询词点击率(有点比):70% 左右
查询词首屏点击率(首屏有点比):60% 左右
有点比重要性高于文档点击率
基础知识:用户满意度、评价指标、搜索链路。
相关性:定义与分档、评价指标、文本匹配、语义匹配。
查询词处理:分词、NER、词权重、类目、意图、改写。
召回:文本召回、向量召回、离线召回。
排序:排序模型、训练。
查询词推荐:推词场景、推词召回、推词排序。
相关性是查询词q和文档d两者的关系。
相关性是客观标准,不取决于 ...
文本检索技术
对话 API
请求参数说明
参数
类型
必填
描述
messages
Array
必填
包含对话的消息列表。
model
String
必填
要使用的模型的ID。
frequency_penalty
Number 或 null
可选
根据文本中已有令牌的频率对新令牌进行惩罚。取值范围在-2.0到2.0之间。
logit_bias
Map
可选
修改指定令牌在完成中出现的可能性。接受一个将令牌映射到偏置值(-100到100)的JSON对象。
logprobs
Boolean 或 null
可选
是否返回输出令牌的对数概率。
top_logprobs
Integer 或 null
可选
如果 logprobs 设置为 true,则返回每个令牌位置上最有可能的令牌数,每个都带有关联的对数概率。
max_tokens
Integer 或 null
可选
可以在聊天完成中生成的最大 令牌数 29。
n
Integer 或 null
可选
为每个输入消息生成的聊天完成选择的数量。
presence_penalty
Number 或 null
可选
根据 ...
高级RAG
高级 RAG 技术:图解概览
对高级检索增强生成技术和算法的全面研究,系统化各种方法。本文附带了我知识库中引用的各种实现和研究链接集合。
本文旨在概述和解释可用的 RAG 算法和技术,因此不会深入代码实现细节,仅引用它们,并将具体内容留给丰富的文档和教程。
简介
本文引用翻译自IVAN ILIN 在Medium上的博客文章
如果您熟悉 RAG 概念,请跳到高级 RAG 部分。
检索增强生成,即 RAG,为 LLMs 提供从某些数据源检索到的信息,以便将其生成的答案建立在信息的基础上。基本而言,RAG 是搜索+LLM 提示,即您要求模型在搜索算法找到的信息作为上下文的情况下回答查询。查询和检索到的上下文都被注入到发送给 LLM 的提示中。
RAG 是 2023 年基于LLM系统的最受欢迎的架构。许多产品几乎完全基于 RAG 构建——从结合网络搜索引擎的问答服务到数百个与数据聊天的应用程序。
即使矢量搜索领域也因那股炒作而备受关注,尽管基于嵌入的搜索引擎早在 2019 年就已经使用 faiss 构建。像 chroma、weavaite.io 和 pinecone 这样的矢量数据库初创公司, ...
RAG
RAG(检索增强生成)通过提供对知识来源的访问来减少幻觉,这些知识来源为用户查询提供了额外的上下文,即LLM(如 Claude3.5、 GPT-4o)。它还旨在克服语言模型的上下文限制。
但是如果我们稍微简化一下,它就没有什么特别之处了。想问LLM 巴拉克·奥巴马的生日是什么?为什么不先找到奥巴马的维基百科页面(检索),将其添加到提示中(增强),然后让LLM回答问题(生成)。就这样!我们构建了我们第一个 RAG 系统。
在其核心,RAG 系统包含 2 个组件:一个检索器,用于从外部源文档中检索信息,以及一个生成器,使用检索到的信息生成响应。
RAG 常常与基于语义搜索或嵌入构建索引同时出现。
信息检索已经存在一个世纪了。在那些日子里,我们是如何检索相关文档的?没错,就是我们的好朋友 BM25。简单、快速且有效。基于词的检索解决方案如 BM25 也成功地为许多搜索引擎提供了动力。
虽然 RAG 在减少幻觉方面显示出希望,但它并非没有挑战。传统 RAG 系统中的一个关键问题是,在将文档分割成更小的块进行检索时,可能会丢失上下文。这就是 Anthropic 引入了“上下文检索”这一简单概念 ...
QGControl 图像获取
Documentation
图像相关
📘 ImageProtocolManager是一个用于处理MAVLink图像传输协议的类,主要用于接收和处理来自光流相机等设备的图像数据。以下是其主要工作流程:
1. 基本组成
两个主要成员变量:
_imageHandshake: 存储图像传输握手信息
_imageBytes: 存储接收到的图像数据
2. 图像接收流程
握手阶段
1case MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE:
接收DATA_TRANSMISSION_HANDSHAKE消息
清空之前的图像数据
记录新图像的基本信息(类型、宽度、高度等)
数据传输阶段
1case MAVLINK_MSG_ID_ENCAPSULATED_DATA:
接收ENCAPSULATED_DATA消息
根据序号(seqnr)将数据放入正确的位置
通过_imageHandshake.packets计数追踪传输完成情况
当所有数据包接收完成时,发出imageReady信号
图像获取
1QImage ImageProtocolMan ...
LangGraph 核心概念
核心概念
LangGraph 的核心是将代理工作流程建模为图表。您可以使用三个关键组件定义代理的行为:
State:表示应用程序当前快照的共享数据结构。它可以是任何 Python 类型,但通常是TypedDict或 Pydantic BaseModel。
Nodes:对代理逻辑进行编码的 Python 函数。它们接收当前值State作为输入,执行一些计算或副作用,并返回更新的State。
[Edges](https://langchain-ai.github.io/langgraph/concepts/low_level/#edges)Node:根据当前情况确定下一步执行哪个操作的 Python 函数State。它们可以是条件分支或固定转换。
通过组合Nodes和Edges,您可以创建复杂的循环工作流,使工作流随时间推移而演变State。然而,真正的强大之处在于 LangGraph 如何管理工作流State。需要强调的是:Nodes和Edges只不过是 Python 函数 - 它们可以包含 LLM 或只是好的 Python 代码。
状态¶
定义图形时要做的第一件事是定义State图 ...
推荐系统学习笔记:召回
推荐系统学习笔记:召回
1 基于物品的协同过滤ItemCF
1.1 ItemCF的原理
推荐系统如何知道《笑傲江湖》与《鹿鼎记》相似?
看过《笑傲江湖》的用户也看过《⿅⿍记》
给《笑傲江湖》好评的用户也给《⿅⿍记》好评
1.2 ItemCF的实现
预估用户对候选物品的兴趣:
∑jlike(user,itemj)×sim(itemj,item)∑_jlike(user,item_j)×sim(item_j,item)
j∑like(user,itemj)×sim(itemj,item)
左边是用户对物品的兴趣,右边是两个物品之间的相似度
根据上面的公式进行计算即可得到:
2×0.1+1×0.4+4×0.2+3×0.6=3.22×0.1+1×0.4+4×0.2+3×0.6=3.2
2×0.1+1×0.4+4×0.2+3×0.6=3.2
表示用户对候选物品的兴趣,比如有多个候选物品,则可以计算用户对每一个物品的候选分数,然后选出分数较高的几个物品。
1.3 物品的相似度
两个物品的受众重合度越⾼,两个物品越相似。例如,喜欢《射雕英雄传》和《神雕侠侣》的读者重合度很⾼,则可以 ...
RAG从零开始构建教程15-18
从零开始的RAG:检索
环境
(1) 包
1! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain cohere
(2) LangSmith
https://docs.smith.langchain.com/
1234import osos.environ['LANGCHAIN_TRACING_V2'] = 'true'os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'os.environ['LANGCHAIN_API_KEY'] = <your-api-key>
(3) API 密钥
12os.environ['OPENAI_API_KEY'] = <your-api-key>os.environ['COHERE_API ...
RAG从零开始构建教程12-14
从零开始的RAG:索引
前言:分块
我们没有明确涵盖文档分块/拆分。
关于文档分块的优秀评论,请参阅Greg Kamradt的视频:
https://www.youtube.com/watch?v=8OJC21T2SL4
环境
(1) 包
1! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain youtube-transcript-api pytube
(2) LangSmith
https://docs.smith.langchain.com/
1234import osos.environ['LANGCHAIN_TRACING_V2'] = 'true'os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'os.environ['LANGCHAIN_API_KEY'] = ...
RAG从零开始构建教程10-11
从零开始的RAG:路由
环境
(1) 包
1! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain youtube-transcript-api pytube
(2) LangSmith
https://docs.smith.langchain.com/
1234import osos.environ['LANGCHAIN_TRACING_V2'] = 'true'os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'os.environ['LANGCHAIN_API_KEY'] = <your-api-key>
(3) API 密钥
1os.environ['OPENAI_API_KEY'] = <your-api-key>
第10部 ...