大模型提示词工程和落地思考

news2024/9/22 13:26:47

本文是一篇内部的个人分享(已无敏感信息) ,目的是增加产品、开发同学对 LLM 的理解,以降低沟通中的阻力,更好推进落地。

以下经脱敏后的原文:

大模型并不神奇

很多人听到’大模型’这个词可能会觉得很神秘,其实,LLM 就是神经网络,只是很大的神经网络,相对传统神经网络,大就是它的特点。我们用一个压缩算法的简单例子来帮助理解这个巨大的神经网络。

原始的压缩算法

  • 原始数据

首先,我们来看一下传统的压缩算法。假设我们手头有一段原始数据:AAABBBB。这些数据在未压缩的情况下占用1GB的存储空间。

  • 压缩过程

接下来,压缩算法会使用固定的规则,寻找数据中的重复模式,比如这里的连续’A’和’B’。通过这种方式,压缩算法可以将AAABBBB压缩成一个更短的形式:3A4B。

  • 压缩后

这样一来,压缩后的数据仅占用500MB的存储空间。通过更短的字符表示原始的数据,我们大大减少了存储需求。

需要用这个数据的时候,也是固定的规则,把数据解压还原成 AAA BBBB

  • 压缩率

压缩算法的一个重要特点是速度快和但压缩率低。这个例子中,我们通过寻找和表示数据中的重复模式,大幅减少了数据的存储需求。这个比例通常不会很高,但却是无损的。

图片

大模型的压缩

我们来看一下大模型的也是类似压缩过程。

  • 原始数据

首先,我们有大量需要学习的数据。就像我们刚才提到的传统压缩算法,大模型在训练之前也需要处理大量的原始数据,它可能包含世界上大部分书籍,网络中数亿语料。假设在海量数据中,我们有一首诗“对酒当歌,人生几何”,这些全世界搜罗的各类文本总的一起可能占用高达10T的存储空间,比如 llama3 使用的预训练数据高达15T。

  • 压缩过程

然后,大模型通过训练,不断迭代优化、调整参数,从数据中“学习”各种复杂的模式。这个过程有点像我们前面提到的压缩算法,只不过大模型的压缩更加复杂和智能。它通过调整模型的参数——包括权重和偏置——来捕捉数据中的模式和规律。也就是上一页 ppt 提到的重复部分。

  • 压缩后

最终,我们得到了一个经过训练的模型,它只需要10GB的存储空间。这就像是我们从原始的10TB数据中提取出的“压缩”版本。这个压缩版本包含了所有重要的信息,以便模型能够高效地进行推理和预测。

  • 压缩率

值得注意的是,这种过程相对较慢,需要耗费大量的时间和计算资源,但压缩率非常高。

我们可以看到,一个 10T的预料,可能被压缩到一个 10G 大小的模型中。llama3 8b 就是一个非常稠密的模型。

图片

LLM 不仅仅压缩了字符串

实际上,更重要的是它能够学习字符串之间的相关性,也就是抽象规律,甚至能够推理出原始数据中不存在的事物。

  • 抽象模式学习

我们来看一个例子。在训练过程中,大模型会学习大量类似的数据。例如,输入的数据可能包含“苏格拉底是人,人会死,苏格拉底会死”这样的句子。通过不断迭代优化,大模型能够学习到这些数据中的抽象模式,比如“三段论”这样的逻辑关系。

  • 训练过程

在这个过程中,大模型通过调整其参数——包括权重和偏置——来捕捉这些复杂的模式和规律。训练完成后,这些参数就固定下来,代表了模型对数据的理解。

  • 推理过程

经过训练后,大模型不仅能记住训练数据中的具体内容,还能根据学到的模式推理出新的信息。例如,当我们给模型输入“马顿是人,人会死”时,模型可以根据学到的模式推理出“马顿会死”这样的结论。但语聊中其实可以没有马顿这个人,你可以输入任何一个不存在,捏造的事物,让模型去推演这个模式,它能成功。

但模型的理解,和人类不一定一样,我们千万不要强行套用用人的模式,如果你把它带入太多人类思维,会失望。但如果你忽略掉模型学习到的特有能力,肯定会错过很多东西。这里有点玄学,没有理论,全都是实践出真知的结果。这个玄学的问题,即使是顶级的 AI 学者也是充满争议的,但不管怎么样,我们可以从实用主义出发解决工作的问题,包括我们后面讲的提示工程。

问题讨论

  • GPT采样的随机性

推理输出的结果是一个数学矩阵,理论上输入数据相同,参数不变的情况下,应该永远一样。但最终数学矩阵要转换成现实世界的真实文本。这一过程涉及到一些随机采样方法,使得每次生成的文本可能有所不同。

  • 贪心/波束算法

首先,我们来讲讲贪心算法。贪心算法会直接选择概率最高的词汇,这样可以保证每次输出都是一致的。然而,这种方法缺乏多样性,生成的文本可能显得单调。

gpt2 的出现,直接让更随机的采用方式,变成了 SOTA 业界最佳水平。后面随机采样成了主流,这一做法到底是不是最佳实践,也是有争议的,有人认为波束算法的问题还是数据训练国产导致的。

  • 温度缩放

接下来是温度缩放。温度参数决定了生成文本的多样性。温度越低,logit向量会被压缩得越尖锐,高概率的词汇更容易被选择。0温度相当于退化成贪心算法。温度越高,生成的文本越随机,适合生成更加丰富多样的内容。

  • top-k 采样

最后是 top-k 采样。这种方法限制了词汇表的选择范围,只从概率最高的k个词中进行选择。k值越大,选择空间越多,生成的文本也就越不确定。

在这个过程中,模型会根据输入生成一个输出向量矩阵。这个矩阵通过logit转换后,再映射到词汇表,生成可能的词汇。通过不同的采样策略,比如温度缩放和top-k,我们可以得到不同的输出文本。

图片简易版 gpt 推理

这里我想表达的是,训练后参数是固定的,在推理环节只是做矩阵乘法,相同输入,的推理的中间数学输出是确定的, 不存在随机和概率问题。

我们看到的不确定性是来源于输出矩阵转现实世界文本的最后环节,刻意设计了一个概率选词算法,原因仅仅这样效果,文本更流畅。模型的内在知识不存在不确定性。

之前的其他算法比如贪心算法,波束算法等效果不佳,openai 在 gpt2 中使用问题和 top-k 获得了更好效果。仅仅是目前的一个工程实践。

提示工程 is all your need

这个梗借用了 Attention Is All You Need。对于我们的大部分应用场景, 提示工程几乎是唯一的选择。

少量的业务知识,比如只是几百几千的内容,给到足够上下文是成本最低,性价比最高的方案

微调通常只适合大量垂直且固有的业务知识。针对特定场景,在基础模型上微调,会让通用能力下降,这个是已知的问题。这种又叫遗忘性灾难,后面的数据会对前面学到的知识产生影响。除非你的数据足够大,足够优质,抵消对原始能力的损失。

微调且无法快速适应业务知识变化, 对于我们的大部分场景是投入产出比非常低的事情。

精心构造提示词

首先,通过精心构造提示词,我们可以更好地还原被压缩的数据中的相关性。

一次性输出的局限性

其次,模型的一次性输出往往只提供有限的知识。

这里想表达的是,模型是认识这个世界的相关性,提示工程就是去挖掘和利用这个数据相关性

且模型训练的上下文有限,意味着学习到的相关性是有限的,通过工程化组合可以解决这个问题

这个工作的价值并不会随着模型性能提高而没有用,三个诸葛亮还是比三个臭皮匠厉害。提示工程不会因为底层模型能力的提高,而失效,相反会让应用场景性能变得更好。

一个分层

就好像用 typescript 语言很容易学,你可以很快用它写一个 hello word。

但也用 typescript 语言搭建复杂的工程系统工程不简单。vscode 这个软件就是一个基于 typescript 构建的大型工程。

提示工程类似。自然语言提示词虽然很容易学,可以快速写一个翻译指令。但搭建一个基于 LLM 的复杂的人机交互工程并不容易。

L1提示工程-问答

一问一答,一个具体任务由一次模型回答解决。

我本来是想以『简单提示工程』作为副标题,但这些一问一答的提示工程『不能算简单』,而是最底层。关于提示工程技巧,我们不展开,大家从去年一年应该都接受过各种信息。我们要看这种提示工程的落地场景。

常见应用落地场景:

聊天,翻译,代码生成,文字总结。

充当双语词典:“请充当帮助用户学习的词典,把用户给你的内容翻译成中文,给出发音、词语解释、双语示例和词源”。

目前调研的大部分英语学习软件都接入了llm,在 openai chatgpt3.5 刚刚出来的时候甚至出现过纯 llm 组成的英语学习软件,整个站点功能全部由大模型提示词组成。每个不同的模块就是一个独立的提示词,这种软件在 gpt 出现后大量涌现,极大的降低的英语软件的开发成本。

图片

L2 提示工程-组合

有时候任务很复杂,一个问题来回解决不了,或者解决的效果很差,怎么办。

想象我们解决一个问题,如果你直接灵感爆发,可以张口而来,比如:【这个需求还不容易,就这么定了】~。结局很可能是导致大大的延期,并且和产品预期不符合。

可以更理性的思考方式:这个需求需要哪些同学参与,涉及哪些工具,我应该选择和谁合作?这个思路对吗,然后我分别再按这些思路尝试。复杂的提示工程也是这样的。

我们可与把大模型假设成一个被关在房间里的人。假设每次这个人都会忘记之前说的话。每次你只能给它一个问题,并且可以带上之前的历史内容。

就这样: 精心构造提示词、通过 N个问题,让模型模拟人类推理和行动的过程。

来让我们来看应该典型的向模型多次提问方式。

将设我们的任务是让大模型『帮忙生成四大银行的最近 3 年的贷款利率,并生成图表』。我们可以下面一系列提示词组合。

这个场景我们假定每次都是独立的向模型提一个请求,同时假定有程序逻辑处理中介过程,但可以忽略细节。

2.1第一个提示词:

从现在开始你充当一个专家,你拥有调用不同工具的权限,每个工具都由它的作用,你必须模拟像人类一样思考。下面是你拥有的工具列表:搜索引擎:可以调用网络查询事实内容,参数是查询的“关键” 字。图表生成:可以生成各种图统计图标,你需要把数据按 xx 格式给它。

每次收到用户的问题,你都需要先思考,再采取行动。以如下格式返回:思考:我应该如何做这件事情呢,仔细思考它。
行动:我应该采取的方式是什么,可以调用其中的工具
观察:采取行动后观察到的结果是什么。
… … 你应该不断循环以上步骤,直到你认为最终完成任务
最终答案:……

【注:… 有 5 次调用细节,字太多,中间已省略……】

可以发现我们 5 次独立的调用模型,最终完成了这个任务。这里的核心点是什么呢?我们运用提示词技巧,让模型模拟人一样的思考方式,给出行动轨迹,程序再识别行动轨迹,最终得到结果。这实际上就是所谓的 reAct 技术简化版介绍,R 代码推理,A代表路径,就是让模型自己推理,生成路径。实际的情况会更复杂,我们不展开讨论。

我们看到了提示工程不仅仅是简单的提问,还可以把多个问题有巧妙的组合起来,让模型解决问题。这是大模型能够影响显示世界,变成强大生产力的关键。人类现实世界有大量的工作、任务、决策经验都是由文本记在案,而模型正好通过训练学习到了这些文字续写的能力,我们反过来加以利用,就变成了经验复用。

图片

L2 类应用的场景由很多,比如 RAG 信息检索、图表生成、PPT 生成、复杂任务等,任何尝试使用外部工具调用来增强 LLM 能力的都可以使用此类提示工程技术。

L3提示工程-架构

图片贴一个海外基于大模型做各种生态工具的图。

我们刚刚已经聊到 L2 级别的提示工程是可以通过多次提问,不断诱导模型生成解决问题的路径,对于一个问题的解决可能需要重复调用很多次才能完成。

试想下,如果一种更复杂的现实世界任务,比如请完成产品的这个需求,需求链接如下…要求完成编码,并通过测试,将代码 push 到仓库。

这样的一个任务对于人类而言都是有挑战的,它通过设计需求理解,git 仓库拉去,代码编写,测试用例编写,流水线部署,发布等研发流程。

如果我们继续尝试用上面的这种 reAct 方案,会发现要完成这项工作,可能准备几十个工具,并且把每个工具调用的推理、行动路径拼接到模型上下文,将会极大影响模型性能。

在 LLM 实践中,人们发现,即使是非常强的模型,让它一次专注理解并处理一个简单的任务,效果更佳

为了解决这个问题,将一项复杂的工作,拆分成不同的模块,每个模块由一个独立的模型去解决,**每个模型都拥有独立的上下文、并配置自己专属的工具。这些模型最终通过一个中介代理转发,这种模式就叫 Agent **。

Agent 可以代理更精细的模型分工,提示词可以对每个模块,甚至每次微小任务进行独立优化设计,reAct 只是被其使用的一种局部的技术而已。这样导致的问题则是调用会消耗更多 token,一项复杂的工作,可能会调用几十次,甚至上百次的 LLM 。

我为什么要把 Agent 作为提示工程标题一部呢?我要强调的是 虽然涉及 Agent 模型微调,以速度优化,但在不考虑响应速度的背景下,Agent 工程大部分工作将是围绕提示工程及其组合优化进行

我们今天不会介绍 Agent 细节,Agent 有各种各样的架构组合,业界和学术界的方案也层出不穷,大家可以基于兴趣自行探索。

L3 提示工程——性能案例

SWE-bench 是一个基准测试,用于评估从 GitHub 收集的真实软件问题上的大型语言模型。词比基于纯 gpt4 高出好几倍。

图片

容易点

  • 快速原型:大模型再复杂的调用都是一条一条 LLM api 组成,快速原型不复杂。我们很多原型都能在基本甚至半天搞定。
  • 有大量工具可以辅助:从开发者视角,到小白视角,有大量工具可以辅助。

图片这是我之前一个调研,可参考历史博文

——除 langchain 外,任何复杂的 L3 级别的构建都不推荐使用这类工具因为 L3 架构需要大量定制化调优,而这类工具通常是有自己的一套逻辑。

挑战点

提示词优化

提示词优化需要找到足够多的案例,才能反馈出你的效果 ,这里是需要花大量时间才能逐步提高。虽然有自动提示词这种工具,但想要达到不错的仍然是看人类专家。

组件交互

假设每个微小的提示词调整好了,组成成为一个更大的整体系统, 我们可能会效果不佳,因为每个局部的提示词是独立的。必需考虑到全局的效果。这种全局的效果调整,非常消耗时间和 token 资源。

效果优化

可以用 20% 的时间快速构建 80% 的功能,但必须花剩下 80的时间来提高剩下 20% 的效果。这里其就是我们上面讲的点,在不考虑效果,确实可以用20% 的时间,搭建个 77,88,但最终是需要花 80%的时间,才能让系统正常上线的。这里可以借鉴 linkedin 经验,他们花了1 个月快速出 demo ,但最终耗时 6 个月才大规模面向用户。

里面很多细节,比如为了让大模型更好理解接口,他们把全部的接口设计成给人类用的,和给大模型用的,后者面向大模型更友好,然后再这两者之间建立映射。

还有,比如我们的 json 解析通常会由于模型返回的格式不标准而异常,linkedin 编写一个非常巨大函数的把能够想得到的全部异常格式自动修复,做防御性解析。最终让解析报错率从5 % 降低到 0.005% ,极大的减少了重试的次数。

反馈评估

如果没有自动化工具评估,整个 LLM 工程系统很难得到最终反馈,我们目前大多靠人肉和用户反馈调研。

性能优化:

这里一个是底层的 LLM 响应优化,目前最主要的就是量化,缓存,gpu 加速,我们会设计比较少。

另一个应用层,可以通过流式、缓存、提示工程,及交互等提高体验。

举个流式例子:比如还有阿里钉钉为了可以让返回的 json 可以提前渲染前端 UI 组件,采用了流式提前解析, 在 json 没有完全返回的情况就进行自动补全, 渲染出 UI 轮廓和部分数据。

提示工程也和性能相关,因为不同的提示词,返回的 token 数量不一样,消耗的时间也会与差异。这里 linkedin 有一个有趣的例子。他们尝试在一些场景深度使用 COT 上线后,由于用户量大,马上带来了机器负载问题。反正,调整后,负载发生了变化。

当然,这些场景主要是面向海量 C 端用户需要采取的措施,我们内部工具系统可以酌情考虑,根据用户反馈和实际需要来做。

对于我们而言,目前最大的困难点还是在前面 3 个点。也是最基础和不可忽略的提示工程调优。

没有金科玉律

在结尾,我们来再次分享一个个人的想法,大模型、特别是工程化和应用场景落地是当下非常新的东西。

我们没有太多过去的经验,业界的标准和方案都不断在更新迭代,以至于它没有像传统行业那样太多的最佳实践可以参考和指导,不存在 java 最佳实践、前端最佳实践,也没有经典的 24 种设计模式。一切都是全新的。

这对我们而言既是挑战,也是机遇,我们并不需要被目前的这些已有技术优化、产品形态等思维约束,特别是提示工程,这里没有金科玉律。在将大模型技术和产品结合起来的路上,每个人都可以提出自己新的想法、去尝试新的方案,这能让自身和行业都得到繁荣和和发展。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2069761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 集成 swagger 3.0 指南

Spring Boot 集成 swagger 3.0 指南 一、Swagger介绍1.springfox-swagger 22.SpringFox 3.0.0 发布 二、Spring Boot 集成 swagger 3.01. 添加Maven依赖2. 创建配置类配置Swagger2.1 创建SwaggerConfig 配置类2.1 创建TestInfoConfig信息配置类 3. 在你的Controller上添加swagg…

【深度学习与NLP】——最全环境配置总指南

目录 一、Anaconda 的环境准备 1.下载和安装 1.1. 下载 1.1.1. 官网下载 1.1.2. 镜像站下载(官网下载速度慢可选) 1.2. 安装 2. 环境配置 2.1 Windows 平台 2.2 MacOS 和 Linux 平台 3. 环境验证 3.1 Windows 平台 3.2 MacOS 和 Linux 平台 …

34集-35集 【完整版小白上手环境搭建】玩转ESP-ADF实现AIGC大模型对话功能-1-《MCU嵌入式AI开发笔记》

34集-35集 【完整版小白上手环境搭建】玩转ESP-ADF实现AIGC大模型对话功能-1-《MCU嵌入式AI开发笔记》 参考文档: 1、ESP32-S3-Korvo-2 V3.0的说明文档: https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/design-guide/d…

浪潮信息AIStation V5:一站式解决大模型挑战

7月9日,浪潮信息在济南“元脑中国行”巡展上隆重发布了AIStation V5升级版人工智能开发平台,该平台凭借全面的大模型流程支持能力,旨在为企业用户简化大模型构建与微调流程,提供标准化、安全可靠的推理服务,并通过优化…

[创业之路-142] :生产 - 产品名称、型号、物料编码、批次、产品结构、BOM单、SN序列号、SOP、版本、回溯等常见概念之间的相互的结构化关系。

目录 一、概念定义 1. 产品型号 2. 批次 3. 产品结构 4. 编码 5. 序列号 6. 版本 7. 物料编码 8. BOM单(物料清单) 9. 回溯 二、命名规则 2.1 产品型号命名规则 1、基本原则 2、命名要素 3、命名规则示例 4、注意事项 2.2 产品批次命名…

开放式耳机的优缺点?2024五款性能出色产品力荐!

开放式耳机以其独特的设计和使用体验在市场上逐渐受到欢迎。它们的主要优点包括提供舒适的佩戴感受和自然的声音表现,允许外界声音进入,从而在享受音乐的同时保持对周围环境的感知,特别适合户外运动或需要对周围环境保持警觉的场合。此外&…

android studio iguana monitor

android stuido 更新后很多菜单找不到了 其实都在view里面 但是还是没有Monitor 看不到设备的存储 新版本中确实没有 不用找了 Android Device Monitor | Android Studio | Android Developers 用这个 To open the Device Explorer, select View > Tool Windows >…

深圳表哥告诉你“上位机和SCADA的区别”

1、啥是上位机 ‌上位机(Upper Computer)是指‌可以直接发出操控命令的计算机‌,通常是主控计算机或监控系统,用于对整个控制系统进行监控和操作。上位机通过通信接口与下位机进行数据交换,发送控制命令并接收反馈数据…

如何使用 SQL Server 内置函数实现MD5加密

目录 前言 一、MD5加密 1、MD5加密的特点 2、MD5加密的应用场景 3、为什么MD5有用 二、使用 MD5 三、MD5加密示例 四、SQL截取字符串substring 总结 最后 前言 在互联网时代,我们的数据基本都是在暴露在外面,数据安全变得越来越重要。我们经常需…

网络接口(2)

一、粘包问题 原因:tcp流式套接字,数据与数据之间没有边界感,导致可能多次的数据粘到一起 解决办法: (1)、规定间隔符,如:“ \r\n”等; (2)、…

河道漂浮物监测识别摄像机

近年来,河道和湖泊污染日益严重,漂浮物的监测与识别成为一项迫切需要解决的环境问题。针对这一问题,科技人员研发了河道漂浮物监测识别摄像机。 河道漂浮物监测识别摄像机利用先进的图像识别技术,通过智能算法,可以在河…

动态规划-打家劫舍Ⅱ

该题是打家劫舍Ⅰ的升级版并与其相关,如果对其感兴趣的话可以先看看打家劫舍Ⅰ 题目描述 一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈 ,这意味着第一个房屋和最后…

深度学习(10)---Vision Transformer详解

文章目录 一、简介二、模型结构2.1 整体架构2.2 Linear Projection of Flattened Patches2.3 Transformer Encoder2.4 MLP Head 三、ViT模型搭建参数四、思考题 一、简介 1. Vision Transformer(ViT)是一种基于Transformer架构的深度学习模型&#xff0c…

UE基础 —— Playing and Simulating

目录 Play In Editor 运行(Play) Play Modes PIE Console Simulate In Editor 可以随时在虚幻编辑器中预览游戏,无需将其构建为独立的应用程序;能快速调整游戏玩法和资产,并了解相应调整带来的结果; …

vue全局参数

/* eslint-disable no-new */ new Vue({el: #app,router,components: { App },template: <App/>,data:function(){return{wbWinList: [] // 定义的变量&#xff0c;全局参数}}, }) //使用全局参数 // this.$root.backgroundColor 666;其它页面如果想监听改变 //监听全…

【JAVA基础】this关键字与final关键字

文章目录 this关键字final关键字Java值传递 this关键字 this代表当前对象&#xff0c;有时候不太方便直接使用对象&#xff0c;可以用this **用法1&#xff1a;**this.属性名 在类中调用全局变量 举个例子&#xff1a; public class Student1 {public String name;public S…

密文域可逆信息隐藏与掩码自动编码器(MAE)

原文题目&#xff1a;Reversible data hiding in encrypted images based on pixel-level masked autoencoder and polar code Source: Signal Processing Authors: Zhangpei Cheng, Kaimeng Chen , Qingxiao Guan 发表年份&#xff1a;2024年 学习这篇文章主要原因是结合了…

Leetcode 46.全排列

注意的点&#xff1a; 1、回溯本质就是搜索树的树枝&#xff0c;维护三个核心变量&#xff1a;path&#xff08;需要恢复现场&#xff09;&#xff0c;visited&#xff08;需要恢复现场&#xff09;&#xff0c;以及res 解法&#xff1a;回溯算法 class Solution:def permut…

iphone问题笔记

拼音打字显示一些不相干的词 原因&#xff1a;开启了自动改正&#xff0c;傻逼iphone总以为你打错了。 计算器没有退格键&#xff1f; 解决方法&#xff1a;按住数字往右滑是退格。 关机重启必须去设置里&#xff1f; 连按五次锁屏可以选择关机。

[新手入门]1台电脑+1个电视+2个软件(sunshine+moonlight) 解决黑神话悟空没有hdmi线的痛...

sunshinemoonlight 解决黑神话悟空 本地串流投屏 背景:偶然间在B站发现了sunshinemoonlight方案,替代hdmi线,做本地串流...于是心灵手巧的我开始尝试踩坑之路:1.准备安装包2.开始安装2.1 笔记本windows安装sunshine2.2 遇到了第一个坑.Fatal: ViGEmBus is not installed or run…