我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告,不像常识类问题,它的相关Document更多而且更分散,日常报告代表数据库里有很多它的内容,而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度,目前是top-10/15,明显一个月的情况都没法正常枚举,而且上下文中也有很多无关内容,既会干扰大模型又会占着token,所以必需对上下文进行过滤,到这一步后再压缩下文本...
原理:Context Relevance 指标用于评估一个回答的句子是否受到提供的上下文支持,以及上下文是否受到回答的支持。其核心思想是:
拆分回答:将回答分解为独立的句子。
判定支持度:对于每个句子,判断它是否可以在上下文中找到支持。
计算支持度精度:通过统计支持的句子占比,衡量回答对上下文的依赖性。
目的:
确保模型的回答是基于给定的上下文,而非凭空生成。
评估回答对上下文的利...
在RAG系统评估场景下,“计算RAG返回有效文档的平均top-k命中率” 旨在衡量系统检索相关信息的能力,在只有一次查询的情况下,具体解释如下:
背后直觉:在实际运用RAG系统进行单次查询时,用户希望能高效获取有效文档。如果系统能在返回结果的前几个位置(如top-1、top-2)就展示有效文档,说明其检索精准度高、效率好;若有效文档位置靠后,获取有效信息的效率就会降低。计算平均top-k命...
回答相关性是指生成的答案应该针对所提出的实际问题进行作答。以下从正面和反面分别给出一些例子:
正面例子:
问题为“苹果有哪些营养价值?”,
答案“苹果富含维生素C、纤维素和抗氧化物质,维生素C有助于增强免疫力,纤维素能促进肠道蠕动,抗氧化物质有利于身体健康”。该
答案直接针对问题,全面阐述了苹果的营养价值,无多余或不相关内容,回答相关性高。
反面例子:
同样问题“苹果有哪些营养价值?”...
忠实度是指答案应基于给定的上下文。这对于避免幻觉至关重要,同时也能确保检索到的上下文可作为生成答案的依据。实际上,检索增强生成(RAG)系统常用于对生成文本与事实来源的一致性要求很高的应用场景,例如在信息不断更新的法律等领域。
如果答案中的主张能够从上下文中推断出来,我们就认为该答案忠实于上下文。为了评估忠实度,我们首先使用大语言模型(LLM)提取一组陈述 。这一步的目的是将较长的句子分解为...
白盒大模型最基础的指标就是困惑度 perplexity (PPL)。低 PPL 表示模型对输出序列 y 的概率分布预测更精确,模型对数据的“困惑”更低。高 PPL 表示模型对输出序列 y 的概率分布预测不准确,困惑程度较高。同时 PPL 是长度归一化的,可以避免直接受到长度的影响。
给定输入序列 x ,白盒大模型输出序列 y 的 PPL 的计算公式如下:类似于指令微调,x 是给定的,无需大模...
这种情况下一般指的是文本理解能力很强的黑盒api大模型,如chatgpt。这种情况下,大模型对文本理解不会有什么大的问题,因此对于嵌套数据也能理解,例如我让大模型执行指令微调数据打分,以一个任务的prompt和output为输入。小模型可能会对这种包含了两个指令的文本理解错误,强模型基本能理解。因此,可以以强模型来直接对指令微调数据进行打分。
评分指令如下:
123给定一组指令、输入和输出...
The difference between DistributedDataParallel and DataParallel is: DistributedDataParallel uses multiprocessing where a process is created for each GPU, while DataParallel uses multithreading.By ...
数据并行 vs. 模型并行
数据并行:模型拷贝(per device),数据 split/chunk(batch 上)
the module is replicated on each device, and each replica handles a portion of the input.
During the backwards pass, gradients from ea...
本笔记本演示了训练一个卷积神经网络(CNN)来对 MNIST 数据集中的手写数字进行分类的过程。工作流程包括:
数据准备:加载和预处理 MNIST 数据集。
模型定义:使用 PyTorch 构建 CNN 模型。
模型训练:在 MNIST 训练数据集上训练模型。
模型评估:在 MNIST 测试数据集上测试模型并评估其性能。
可视化:展示样本图像及其对应的标签。
参考 pytorch 官方示...