当前位置: 首页 > news >正文

[论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models - ACL Anthology

NAACL-HLT 2024

在这项工作中,我们介绍了RePlug(Retrieve and Plug),这是一个新的检索增强型语言模型框架,其中语言模型被视为黑盒,检索组件被添加为一个可调优的即插即用模块。 给定一个输入上下文,RePlug首先使用一个现成的检索模型从外部语料库中检索相关的文档。 检索到的文档被添加到输入上下文的前面,并输入到黑盒语言模型中以进行最终预测。 由于语言模型上下文长度限制了可以添加的文档数量,我们还引入了一种新的集成方案,该方案使用相同的黑盒语言模型并行编码检索到的文档,使我们能够轻松地用计算换取准确性。 如图1所示,RePlug非常灵活,可以与任何现有的黑盒语言模型和检索模型一起使用。

还介绍了RePlug LSR(RePlug with LM-Supervised Retrieval),这是一种训练方案,它可以进一步改进RePlug中的初始检索模型,并利用来自黑盒语言模型的监督信号。 核心思想是使检索器适应语言模型,这与之前的工作(Borgeaud et al., 2022)相反,后者使语言模型适应检索器。 我们使用了一个训练目标,该目标更倾向于检索能够提高语言模型困惑度的文档,同时将语言模型视为一个冻结的黑盒评分函数。

REPLUG

新的检索增强型LLM范式,其中语言模型被视为黑盒,检索组件被添加为一个可能可调优的模块。

给定一个输入上下文,RePlug首先使用检索器从外部语料库中检索一小组相关文档。 把每个检索到的文档与输入上下文串联起来,通过LLM并行处理,并集成预测概率

文档检索

使用基于双编码器架构的稠密检索器,编码器把输入内容和文档进行编码:对待编码内容的token的最后一个隐藏层表示进行平均池化,实现编码映射

使用余弦相似度计算嵌入的相似度

输入重构

考虑到语言模型的上下文窗口大小,将所有top-k文档添加到问题x前面的方案从根本上受到我们能够包含的文档数量(即k)的限制。

 为了解决这个限制,我们采用了一种如下所述的集成策略。 

假设𝒟′⊂𝒟包含k个与x最相关的文档,将每个文档d∈𝒟′添加到x前面,分别将此连接传递给LM,然后集成所有k次的输出概率。 形式上,给定输入上下文x及其前k个相关文档𝒟′,下一个符元y的输出概率计算为加权平均集成:

其中∘表示两个序列的连接,权重λ​(d,x)基于文档d和输入上下文x之间的相似度得分:

虽然这种集成方法需要运行LLM的生成总共k次,但是在每个检索到的文档和输入上下文之间执行交叉注意力,因此相对把所有的k个内容添加到x前面来说,并不会产生额外的计算成本开销

REPLUG LSR:稠密检索器训练

进一步提出了RePlug LSR(使用LM监督检索的RePlug),它调整了RePlug中的检索器,利用LM本身来提供关于应该检索哪些文档的监督。

可以看作是调整检索文档的概率,以匹配语言模型输出序列困惑度的概率。

也就是说希望检索器找到导致困惑度得分更低的文档

检索器的训练包括四个步骤:

检索文档并计算检索似然;通过语言模型对检索到的文档进行评分;通过最小化检索似然和LM的评分分布之间的KL三度来更新检索模型参数;异步更新数据存储索引。

1.计算检索似然

从给定输入上下文x的语料库𝒟中检索k相似度得分最高的文档𝒟′⊂𝒟。 然后计算每个检索到的文档d的检索似然:

γ是一个控制softmax温度的超参数。 理想情况下,检索似然是通过对语料库𝒟中的所有文档进行边缘化计算的,但在实践中这是不可行的。 因此,我们通过仅对检索到的文档𝒟′进行边缘化来近似检索似然。

2.计算语言模型似然

使用LM作为评分函数来衡量每个文档在多大程度上可以改善LM的困惑度。 具体来说,我们首先计算P_L​M​(y∣d,x),即给定输入上下文x和文档d时,真实实况输出y的LM概率。概率越高,文档di在改善LM的困惑度方面就越好。 然后,我们计算每个文档d的语言模型似然值,如下所示:

其中β是另一个超参数。

3.损失函数

给定输入上下文x和相应的真实续写y,计算检索似然值和语言模型似然值。 密集检索器通过最小化这两个分布之间的KL散度进行训练:

ℬ是一组输入上下文。 在最小化损失时只能更新检索模型参数

4.数据存储索引的异步更新

因为检索器中的参数在训练过程中被更新,之前计算的文档嵌入不再是最新的。每T个训练步骤重新计算文档嵌入并使用新的嵌入重建高效的搜索索引。 然后我们使用新的文档嵌入和索引进行检索,并重复训练过程。

训练设置

使用Contriever作为RePlug的检索器

对RePlug LSR,还是使用Contriever检索器,使用GPT3作为监督语言模型来计算语言模型似然

训练数据:

使用从Pile训练数据(Gao等人,2020)中采样的80万个,每个包含256个符元的序列作为我们的训练查询。 每个查询被分成两部分:前128个符元用作输入上下文x,后128个符元用作真实延续y。 对于外部语料库D,我们从Pile训练数据中采样了3600万个,每个包含128个符元的文档。 为避免简单的检索,我们确保外部语料库文档与从中采样训练查询的文档不重叠。

训练细节

预先计算外部语料库D的文档嵌入,并创建一个FAISS索引以进行快速相似性搜索。

给定一个查询x,从FAISS索引中检索前20个文档,并使用0.1的温度计算检索似然和语言模型似然。

使用Adam优化器训练检索器,学习率为2e-5,批量大小为64,预热比例为0.1。每3000步重新计算一次文档嵌入,并对检索器进行总共25000步的微调。

实验

对语言建模和下游任务(MMLU,开放域问答)进行了评估

1.语言建模

数据集:Pile数据集(Gao et al., 2020)是一个语言建模基准,包含来自网页、代码和学术论文等不同领域的文本资源。 遵循先前的工作,我们报告每个子集域的每UTF-8编码字节比特数(BPB)作为指标。

基线:将GPT-3和GPT-2系列语言模型作为基线。 来自GPT-3的四个模型(Davinci、Curie、Baddage和Ada)是只能通过API访问的黑盒模型。

在基线上添加了RePlug和RePlug LSR。 我们随机下采样Pile训练数据(128个符元的3.67亿个文档),并将它们用作所有模型的检索语料库。 由于Pile数据集已努力对训练集、验证集和测试集中的文档进行去重(Gao et al., 2020),因此我们没有进行额外的过滤。 对于RePlug和RePlug LSR,我们使用长度为128符元的上下文进行检索,并采用集成方法在推理过程中整合前10个检索到的文档。

结果:

RePlug和RePlug LSR都显著优于基线。 这表明,仅仅向冻结的语言模型(即黑盒设置)添加检索模块就能有效提高不同大小的语言模型在语言建模任务上的性能。 此外,RePlug LSR始终比RePlug有较大优势。 具体来说,RePlug LSR在8个模型上的平均结果比基线提高了7.7%,而RePlug提高了4.7%。 这表明进一步使检索器适应目标语言模型是有益的。

2.MMLU

数据集:MMLU一个多项选择问答数据集,涵盖了来自57个任务的考试题,包括数学、计算机科学、法律、美国历史等。 这57个任务被分为4个类别:人文科学、STEM、社会科学和其他。 遵循 Chung等人 (2022a) 的方法,我们在5-shot上下文学习环境中评估 RePlug。

基线:第一组基线是包括Codex、PaLM和 Flan-PaLM在内的最先进的大语言模型 (LLM)。(这三个模型在MMLU排行榜上位列前三。)第二组基线由检索增强型语言模型组成。只包含Atlas因为没有其他检索增强型LLM在MMLU数据集上进行过评估。 Atlas同时训练检索器和语言模型,我们认为这是一个白盒检索LM设置。

只将RePlug和RePlug LSR添加到Codex,因为其他模型如PaLM和Flan-PaLM不对公众开放。 我们使用测试问题作为查询,从维基百科(2018年12月)中检索10个相关的文档,并将每个检索到的文档添加到测试问题前面,从而产生10个单独的输入。 然后将这些输入分别馈送到语言模型中,并将输出概率进行集成。

结果:

RePlug 和 RePlug LSR 分别将原始 Codex 模型的性能提高了 4.5% 和 5.1%。 此外,RePlug LSR 大大优于之前的基于检索的语言模型 Atlas,证明了我们提出的黑盒检索语言模型设置的有效性。 尽管我们的模型略微逊于 Flan-PaLM,但这仍然是一个不错的结果,因为 Flan-PaLM 的参数数量是它的三倍。 我们预计,如果我们能够访问该模型,RePlug LSR 可以进一步改进 Flan-PaLM。即使在 STEM 类别中,RePlug LSR 也比原始模型高出 1.9%。 这表明检索可以提高语言模型的解决问题的能力。

3.开放域问答

数据集:NQ和TriviaQA是两个开放域问答数据集,包含从维基百科和网络收集的问题和答案。考虑了少样本设置,其中模型只提供几个训练示例;以及全数据设置,其中模型提供所有训练示例。

基线:第一组模型由强大的大型语言模型组成,包括Chinchilla、PaLM和Codex。 所有这些模型都在少样本设置下使用上下文学习进行评估,其中Chinchilla和PaLM使用64个样本进行评估,Codex使用16个样本进行评估。第二组用于比较的模型包括检索增强型语言模型,例如RETRO、R2-D2和Atlas。所有这些检索增强型模型都在训练数据上进行了微调,无论是在少样本设置下还是使用全训练数据。 具体来说,Atlas在少样本设置下使用64个示例进行了微调。

在Codex中添加了RePlug和RePlug LSR,并使用维基百科(2018年12月)作为检索语料库,以在16样本的上下文学习中评估模型。 与语言建模和MMLU中的设置类似,我们使用我们提出的集成方法结合前10个检索到的文档。

结果:

RePlug LSR在NQ上将原始Codex的性能显著提高了12.0%,在TQA上提高了5.0%。 它优于之前的最佳模型Atlas(使用64个训练示例进行了微调),在少样本设置下达到了新的最先进水平。 但是,这个结果仍然落后于在完整训练数据上微调的检索增强型语言模型的性能。 这可能是由于训练集中存在近似重复的测试问题(例如,Lewis等人 (2021) 发现NQ中32.5%的测试问题与训练集重叠)。

相关文章:

[论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models REPLUG: Retrieval-Augmented Black-Box Language Models - ACL Anthology NAACL-HLT 2024 在这项工作中,我们介绍了RePlug(Retrieve and Plug),这是一个新的检索增强型…...

Matlab 基于共面螺旋管或共面亥姆霍兹谐振器的超薄低频吸声板

经典吸声材料的吸声性能严格依赖于材料的厚度,要达到完全吸声,至少需要四分之一波长。在本文中,我们报道了一种厚度约为波长百分之一的超薄吸声板,可以完全吸收声能。其策略是将四分之一波长的减声管弯曲并缠绕成二维共面减声管&a…...

济南国网数字化培训班学习笔记-第二组-4节-输电线路工程安全管理

输电线路工程安全管理 安全标识 颜色 禁止红、警示黄、指令蓝、提示绿 安全器具 定义 安全工器具通常专指“电力安全工器具”,是防止触电、灼伤、坠落、摔跌、腐蚀、窒息等事故,保障工作人员人身安全的各种专用工具和器具 分类 个体防护设备 防…...

【C语言】数据在内存中的存储:从整数到浮点数的奥秘

前言 在计算机的世界里,数据的存储和表示是编程的基础。今天,我们就来深入探讨一下数据在内存中的存储方式,包括整数和浮点数的存储细节,以及大小端字节序的奥秘。这些内容不仅对理解计算机系统至关重要,还能帮助我们…...

白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证

近日,北京白鲸开源科技有限公司与深圳计算科学研究院联合宣布,双方已完成产品兼容互认证。此次认证涉及深圳计算科学研究院自主研发的崖山数据库管理系统YashanDB V23和北京白鲸开源科技有限公司的核心产品WhaleStudio V2.6。经过严格的测试与验证&#…...

图论---朴素Prim(稠密图)

O( n ^2 ) 题目通常会提示数据范围&#xff1a; 若 V ≤ 500&#xff0c;两种方法均可&#xff08;朴素Prim更稳&#xff09;。 若 V ≤ 1e5&#xff0c;必须用优先队列Prim vector 存图。 // 最小生成树 —朴素Prim #include<cstring> #include<iostream> #i…...

借助deepseek和vba编程实现一张表格数据转移到多张工作簿的表格中

核心目标 将工作表中的内容按村社名称分类放入对应位置的目标工作簿的第一个工作表的对应位置 deepseek提问方式 你是一个擅长vba编程的专家&#xff0c;核心目标是奖工作表中的部分内容按下列要求写入对应工作簿的第一个工作表中。第一&#xff0c;在工作表A列中筛选出相…...

springboot整合redis实现缓存

一、redis 二、spring boot 整合redis 三、基于注解的Redis缓存实现 使用Cacheable、CachePut、CacheEvict注解定制缓存管理 对CommentService类中的方法进行修改使用Cacheable、CachePut、CacheEvict三个注解定制缓存管理&#xff0c;修改后的方法如下 Cacheable(cacheNam…...

git tag使用场景和实践

背景 每次上线一个迭代&#xff0c;为了区分本次代码的分支是哪个迭代&#xff0c;可以给分支打上tag&#xff0c;这样利于追踪分支所属迭代&#xff0c;如果devops没有自动给分支打tag&#xff0c;需要自己来打 操作 1.查看当前tag git tag2.给分支打tag git tag <tag…...

十分钟恢复服务器攻击——群联AI云防护系统实战

场景描述 服务器遭遇大规模DDoS攻击&#xff0c;导致服务不可用。通过群联AI云防护系统的分布式节点和智能调度功能&#xff0c;快速切换流量至安全节点&#xff0c;清洗恶意流量&#xff0c;10分钟内恢复业务。 技术实现步骤 1. 启用智能调度API触发节点切换 群联系统提供RE…...

国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目紫光同创FPGA相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx--Artix7系列FPGA上的应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上…...

最小生成树-prim、kruskal算法

目录 prim算法 kruskal算法 题目练习 &#xff08;1&#xff09;AcWing 858. Prim算法求最小生成树 - AcWing &#xff08;2&#xff09;859. Kruskal算法求最小生成树 - AcWing题库​编辑 学习之前建议温习一下迪杰斯特拉算法和并查集~ 先简单认识下最小生成树&#xff1a…...

【硬核干货】JetBrains AI Assistant 干货笔记

快进来抄作业&#xff0c;小编呕心沥血整理的 JetBrains AI Assistant 超干货笔记&#xff01; 原文链接&#xff1a;【硬核干货】JetBrains AI Assistant 干货笔记 关于晓数神州 晓数神州坚持以“客户为中心”的宗旨&#xff0c;为客户提供专业的解决方案和技术服务&#xff…...

强化学习核心原理及数学框架

1. 定义与核心思想 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是一种通过智能体&#xff08;Agent&#xff09;与环境&#xff08;Environment&#xff09;的持续交互来学习最优决策策略的机器学习范式。其核心特征为&#xff1a; ​​试错学习​​&#x…...

C# 综合示例 库存管理系统4 classMod类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 在《库存管理系统》中使用classMod类来保存全局变量。 变量定义和含义,请详见下面的源代码: public class classMod { //数据库路径...

[C] 第6章 C51函数

文章目录 C51函数函数概述从函数定义角度分类从函数有无返回值分类从函数有无参数 函数定义的一般形式C51无参函数的一般形式C51有参函数的一般形式 函数的形式参数和实际参数形式参数实际参数函数的返回值一般形式为&#xff1a; 函数的形参和实参的特点 函数的调用函数的调用…...

docker 配置代理

docker 配置代理有 2 中方法 1.Daemon configuration 直接在 /etc/docker/daemon.json 文件中配置 {"proxies": {"http-proxy": "http://proxy.example.com:3128","https-proxy": "https://proxy.example.com:3129",&quo…...

Redis 深度解析:从核心原理到生产实践

Redis 深度解析&#xff1a;从核心原理到生产实践 一、Redis 核心定位与数据结构 1. 核心能力矩阵深度解析 Redis 作为高性能内存数据库&#xff0c;核心能力覆盖缓存、数据存储、消息中间件等场景&#xff0c;其设计哲学围绕速度优先、内存高效、功能丰富展开&#xff1a; …...

从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践

一、需求背景与设计目标 在分布式系统中&#xff0c;面对突发流量时需要一种精准可控的流量控制手段。我们的组件需要具备&#xff1a; 多维度限流&#xff08;用户/IP/服务节点/自定义表达式&#xff09;分布式环境下精准控制开箱即用的Spring Boot Starter集成高扩展性的架…...

基于霍尔效应传感器的 BLDC 电机梯形控制方案详解

基于霍尔效应传感器的 BLDC 电机梯形控制方案解读 使用霍尔效应传感器的无刷直流(BLDC)电机梯形控制 一、系统核心架构与技术优势 (一)BLDC 电机与霍尔传感器控制原理 BLDC 电机作为永磁同步电机的一种,其核心特征是转子反电动势为梯形波,定子电流为 120 电角度宽度的矩…...

Pikachu靶场-File Inclusion

文件包含漏洞&#xff08;File Inclusion Vulnerability&#xff09;是Web应用程序中的一种常见安全漏洞&#xff0c;通常由于开发者未对用户输入进行严格过滤&#xff0c;导致攻击者能够包含并执行恶意文件。这种漏洞主要分为两种类型&#xff1a; 1. 漏洞类型 本地文件包含&a…...

如何模拟黑客攻击(Red Teaming)以测试服务器安全性

模拟黑客攻击&#xff08;Red Teaming&#xff09;是评估服务器安全性的有效方法&#xff0c;但需严格遵循**合法授权**和**道德准则**。以下是专业且安全的操作流程&#xff1a; --- ### **1. 前期准备** - **法律授权** - 获得目标系统的**书面授权**&#xff0c;明确测…...

分页查询优惠券

文章目录 概要整体架构流程技术细节小结 概要 接口分析 一个典型的带过滤条件的分页查询&#xff0c;非常简单。按照Restful风格设计即可&#xff0c;我们关注的点有两个&#xff1a; 请求参数 返回值格式 请求参数包含两部分&#xff0c;一个是分页参数&#xff0c;另一…...

QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信

在 Qt 中&#xff0c;您可以通过 QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信。以下是如何使用 Qt 实现这两种通信方式的简要示例。 1. TCP 网络通信 TCP 是面向连接的协议&#xff0c;确保数据的可靠传输。下面是一个简单的 TCP 客户端和服务器示例。 TCP …...

从岗位依附到能力生态:AI革命下“什么叫就业”的重构与价值

在人工智能(AI)技术深刻重塑社会生产关系的当下,“就业”这一概念正经历着从“职业绑定”到“能力变现”的范式转移。本文将从传统就业观的解构、AI赋能艺术教育的价值逻辑、以及未来就业形态的进化方向三个维度,探讨技术驱动下就业的本质变革,并揭示AI技术如何通过教育创…...

2025上海车展 | 移远通信全栈车载智能解决方案重磅亮相,重构“全域智能”出行新范式

2025年4月23日至5月2日&#xff0c;第二十一届上海国际汽车工业展览会在国家会展中心&#xff08;上海&#xff09;盛大启幕。作为车载智能解决方案领域的领军企业&#xff0c;移远通信以“全域智能 驭见未来”为主题&#xff0c;携丰富的车载解决方案及客户终端惊艳亮相8.2馆8…...

LVGL在VScode的WSL2中仿真

目录 一、前言 二、开始部署 1.拉取github的库 2.在WSL安装一些必要的库或者包 3.开始编译 三、注意事项 一、前言 相信有不少兄弟因为苦于没有外设而无法学习LVGL&#xff0c;这里我提供一种WSL中仿真LVGL工程的方法。结果图如下&#xff1a; 二、开始部署 1.拉取github…...

React-组件和props

1、类组件 import React from react; class ClassApp extends React.Component {constructor(props) {super(props);this.state{};}render() {return (<div><h1>这是一个类组件</h1><p>接收父组件传过来的值&#xff1a;{this.props.name}</p>&…...

驱动开发系列53 - 一个OpenGL应用程序是如何调用到驱动厂商GL库的

一:概述 一个 OpenGL 应用程序调用 GPU 驱动的过程,主要是通过动态链接库(libGL.so)来完成的。本文从上到下梳理一下整个调用链,包含 GLVND、Mesa 或厂商驱动之间的关系。 二:调用关系 1. 首先一个 OpenGL 应用程序(比如游戏或图形渲染软件)在运行时会调用 OpenGL 提供…...

【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、markitdown概述1.1 markitdown介绍1.2 MarkItDown支持的文件1.3 为什么是Markdown?二、markitdown安装2.1 pip方式安装2.2 源码安装2.3 docker方式安装三、基本使用3.1 命令行方式3.2 可选依赖项配置3.3 插件方…...

【网络入侵检测】基于Suricata源码分析NFQ IPS模式实现

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。 1. 概要 👋 本文聚焦于 Suricata 7.0.10 版本源码,深入剖析其 NFQ(Netfilter Queue)模式的实现原理。通过系统性拆解初始化阶段的配置流程、数据包监听机制的构建逻辑,以…...

驱动开发硬核特训 · Day 19:从字符设备出发,掌握 Linux 驱动的实战路径(含 gpio-leds 控制示例)

视频教程请关注 B 站&#xff1a;“嵌入式 Jerry” 一、背景说明&#xff1a;字符设备驱动的角色定位 在 Linux 内核驱动体系中&#xff0c;**字符设备驱动&#xff08;Character Device Driver&#xff09;**扮演着关键的桥梁作用&#xff0c;它直接向用户空间程序提供 read/…...

项目——高并发内存池

目录 项目介绍 做的是什么 要求 内存池介绍 池化技术 内存池 解决的问题 设计定长内存池 高并发内存池整体框架设计 ThreadCache ThreadCache整体设计 哈希桶映射对齐规则 ThreadCache TLS无锁访问 CentralCache CentralCache整体设计 CentralCache结构设计 C…...

几种查看PyTorch、cuda 和 Python 版本方法

在检查 PyTorch、cuda 和 Python 版本时&#xff0c;除了直接使用 torch.__version__ 和 sys.version&#xff0c;我们还可以通过其他方式实现相同的功能 方法 1&#xff1a;直接访问属性&#xff08;原始代码&#xff09; import torch import sysprint("PyTorch Versi…...

如何实现跟踪+分割的高效协同?SiamMask中的多任务损失设计

如何实现跟踪分割的高效协同&#xff1f;SiamMask中的多任务损失设计 一、引言二、三大分支损失函数详解2.1 分类分支损失2.2 回归分支损失2.3 Mask分支损失 三、损失加权策略与系数选择3.1 常见超参数设定3.2 动态权重&#xff08;可选&#xff09; 四、训练实践&#xff1a;平…...

MODBUS转EtherNetIP边缘计算网关配置优化:Logix5000与ATV340高效数据同步与抗干扰方案

一、行业背景 智能制造是当前工业发展的趋势&#xff0c;智能工厂通过集成各种自动化设备和信息技术&#xff0c;实现生产过程的智能化、自动化和高效化。在某智能工厂中&#xff0c;存在大量采用ModbusTCP协议的设备&#xff0c;如智能传感器、变频器等&#xff0c;而工厂的主…...

从代码学习深度学习 - 图像增广 PyTorch 版

文章目录 前言一、图像增广的基本概念二、PyTorch中的图像增广实现三、数据加载与处理四、模型训练与评估五、实验设置与执行六、实验结果与分析七、讨论总结前言 在深度学习中,数据是关键。尤其是在计算机视觉任务中,高质量且丰富多样的数据对模型性能有着决定性的影响。然…...

从机械应答到智能对话:大模型为呼叫注入智慧新动能

引言 在当今竞争激烈的商业环境中&#xff0c;高效和有效的客户沟通对于企业的成功至关重要。智能外呼系统已成为企业与潜在客户和现有客户互动的重要工具。最近&#xff0c;大模型&#xff08;如大型语言模型或 LLMs&#xff09;的出现为这些系统带来了显著的提升&#xff0c…...

深入浅出 Python 协程:从异步基础到开发测试工具的实践指南

Python 的异步编程近年来越来越受欢迎&#xff0c;尤其在需要同时处理大量 I/O 请求的场景中&#xff0c;它展现了出色的性能。而协程是异步编程的核心&#xff0c;也是开发高效异步测试工具的关键技术。 这篇文章将用通俗的语言带你快速入门 Python 协程&#xff0c;结合实际…...

算法之分支定界

分支定界 分支定界概述核心思想与步骤常见变体复杂度分析案例分析1. 0-1背包问题2. 最短路径问题&#xff08;分支定界法&#xff09;3. 旅行商问题&#xff08;TSP&#xff09; 分支定界 概述 分支定界&#xff08;Branch and Bound&#xff09;是一种用于解决组合优化问题的…...

Hugging Face上面找开源的embedding模型

问题 想找一个支持中文的embedding模型&#xff08;把一段文本转化成多维度的向量&#xff09;。Hugging Face平台上面共享了很多开源模型&#xff0c;算是这年头&#xff08;2025年&#xff09;&#xff0c;大家都把自己开源模式都往上放的地方了吧。现在去这个平台上面找一个…...

docker部署Jenkins工具

环境准备 1.当前安装在Windows系统下的Docker-Desktop 下载地址&#xff1a;Docker Desktop: The #1 Containerization Tool for Developers | Docker 2.下载后进行安装并进行配置启动docker 3.创建一个空的文件夹&#xff0c;用于后面的启动时做文件路径映射 下载镜像 d…...

Pgvector+R2R搭建RAG知识库

背景 R2R是一个采用Python编写的开源AI RAG框架项目&#xff0c;与PostgreSQL技术栈集成度高&#xff0c;运行需求资源少&#xff08;主要是本人的Macbook air m1内存只有8G&#xff09;的特点&#xff0c;对部署本地私有化化AI RAG应用友好。 Resource Recommendations Whe…...

Qt本地化 - installTranslator不生效

bool QCoreApplication::installTranslator(QTranslator *translationFile)注意这里输入的是QTranslator对象指针&#xff0c;如果QTranslator是局部变量&#xff0c;一旦离开其作用域就会导致翻译失效 错误代码示范&#xff1a; void ApplyTranslator(const QString& qmf…...

精益数据分析(19/126):走出数据误区,拥抱创业愿景

精益数据分析&#xff08;19/126&#xff09;&#xff1a;走出数据误区&#xff0c;拥抱创业愿景 在创业与数据分析的探索之旅中&#xff0c;我们都渴望获取更多知识&#xff0c;少走弯路。今天&#xff0c;我依然带着和大家共同进步的想法&#xff0c;深入解读《精益数据分析…...

六、初始化与清理(Initialization cleanup)

六、初始化与清理&#xff08;Initialization & cleanup&#xff09; 本章内容主要介绍C中的 构造函数 和 析构函数 的作用与用法&#xff0c;以及默认构造、聚合初始化等相关特性 封装 和 *访问控制 *在提升库使用的便捷性方面迈出了重要的一步。在安全性方面&#xff0…...

Python - 爬虫-网页解析数据-库lxml(支持XPath)

lxml是 Python 的第三方解析库&#xff0c;完全使用 Python 语言编写&#xff0c;它对 Xpath 表达式提供了良好的支持&#xff0c;支持HTML和XML的解析&#xff0c;支持XPath解析方式&#xff0c;而且解析效率非常高 XPath&#xff0c;全称XML Path Language&#xff0c;即XML…...

单片机 + 图像处理芯片 + TFT彩屏 触摸滑动条控件

触摸滑动条控件使用说明 一、项目概述 本项目基于单片机和RA8889/RA6809图形处理芯片的TFT触摸屏滑动条控件。该控件支持水平和垂直滑动条&#xff0c;可自定义外观和行为&#xff0c;并支持回调函数进行值变化通知。 硬件平台&#xff1a;51/ARM均可(测试时使用STC8H8K64U单…...

LeetCode每日一题4.24

2799. 统计完全子数组的数目 题目 问题分析 完全子数组 的定义&#xff1a;子数组中不同元素的数目等于整个数组不同元素的数目。 子数组 是数组中的一个连续非空序列。 思路 统计整个数组的不同元素数目&#xff1a; 使用 set 来获取整个数组的不同元素数目。 遍历所有子数…...

LeetCode238_除自身以外数组的乘积

LeetCode238_除自身以外数组的乘积 标签&#xff1a;#数组 #前缀和Ⅰ. 题目Ⅱ. 示例0. 个人方法一&#xff1a;暴力循环嵌套0. 个人方法二&#xff1a;前缀和后缀分别求积 标签&#xff1a;#数组 #前缀和 Ⅰ. 题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#…...