关于Prompt Engineering你该了解啥?OpenAI应用研究负责人帮你梳理了

news2024/11/25 1:08:14
‍来源 | 机器之心 微信号:almosthuman2014

随着 ChatGPT、GPT-4 等模型的兴起,人们对如何创建提示以获得想要的输出越来越感兴趣。研究者对特定提示的响应可能很难预测,并且会因模型的不同而不同。本文来自 OpenAI 的翁丽莲(Lilian Weng) 撰文介绍了关于提示的一些内容,包括基础提示、指令提示等内容。

Prompt 工程,也称为 In-Context Prompt,是指在不更新模型权重的情况下如何与 LLM 交流以引导其行为来获得所需结果的方法。这是一门经验科学,Prompt 工程方法的效果在模型之间可能会有很大差异,因此需要大量的实验和启发式方法。本文来自 OpenAI 的 Lilian Weng (翁丽莲) 介绍了一些关于提示工程的知识。翁丽莲为 OpenAI 人工智能应用研究的负责人,2018 年加入 OpenAI,在 GPT-4 项目中主要参与预训练、强化学习 & 对齐、模型安全等方面的工作。

主要内容包含以下章节,下面我们看看本文主要内容。

基础 PromptZero-shot 和 few-shot 学习是 prompt 模型的两种最基本的方法,许多关于 LLM 论文都有涉及,并常用于评估 LLM 的性能。Zero-Shot 学习Zero-Shot 学习是简单地将任务文本输入模型并要求其返回结果。(所有情感分析示例均来自 SST-2)

Text: i'll bet the video game is a lot more fun than the film.

Few-shot 学习Few-shot 学习提供了一组关于目标任务的高质量的演示,每个演示都包含目标任务的输入和期望的输出。当模型首先看到好的例子时,它可以更好地理解人类的意图和对所需答案的标准。因此,与 zero-shot 学习相比,few-shot 学习通常会导致更好的性能。然而,这样的代价是消耗更多的 token,并且当输入和输出文本很长时,可能会达到上下文长度限制。

Text: (lawrence bounces) all over the stage, dancing, running, sweating, mopping his face and generally displaying the wacky talent that brought him fame in the first place.

许多研究探讨了如何构建上下文示例以最大限度地提高性能,并观察到 prompt 格式、训练示例和示例顺序的选择可能导致截然不同的性能,从接近随机猜测到接近 SOTA。Zhao 等人的研究调查了 few-shot 分类情况,并提出几个导致高方差的原因(他们在实验中使用 GPT-3):(1)如果标签在示例之间的分布不平衡,会导致 Majority label 偏差;(2) Receny 偏差是指模型可能在最后重复标签的趋势;(3) Common token 偏差表明 LLM 倾向于生成常见的 token 而不是罕见的 token。为了克服这类偏差,他们提出了一种方法来校准模型输出的标签概率,使得当输入字符串为 N/A 时,标签的概率输出变为均匀分布。样本选择小技巧

  • 在 embedding 空间中使用 k-NN 聚类选择与测试示例在语义上相似的示例 (Liu et al., 2021);
  • 为了选择多样化且具有代表性的示例集,[Su et al. (2022)] 提出使用基于图的方法:(1) 首先,构造一个有向图 G=(V,E) 基于嵌入(例如通过 SBERT 或其他嵌入模型)样本之间的余弦相似度,其中每个节点指向其 k 个最邻近节点;(2) 从一组选定样本 L=∅ 和一组剩余样本 U 开始。每个样本 u∈U 的 score 表示为:

,如果选择了 v 的许多邻近节点,则 s (v) 很低,因此评分鼓励选择不同的样本;

  • [Rubin et al. (2022)] 提出通过特定于一个训练数据集的对比学习来训练 embedding,以进行上下文学习样本选择。给定每个训练对 (x,y),一个示例 e_i(格式化的输入 - 输出对)的质量可以通过 LM 分配的条件概率来衡量:

,可以将其他具有 top-k 和 bottom-k 分数的示例识别为每个训练对的正负候选集,并将其用于对比学习;

  • 一些研究人员尝试使用 Q-Learning 来进行样本选择 (Zhang et al. 2022);
  • 受基于不确定性的主动学习的启发,[Diao et al. (2023)] 建议在多次抽样试验中识别熵较大的例子。然后注释这些示例以用于 few-shot prompt。

关于样本排序的小技巧

  • 建议保持样本选择的多样性、与测试样本相关并以随机顺序排列,以避免 Majority Label bias 和 Recency bias;
  • 增加模型大小或包含更多训练样本并不能减少不同上下文样本排列的方差。同一顺序可能适用于一个模型,但对另一个模型效果不佳。当验证集有限时,考虑选择顺序,使得模型不会产生极不平衡的预测或对其预测过于自信 (Lu et al. 2022)。

指令 prompt在 prompt 中使用 few-shot 示例的目的是向模型解释我们的意图,换句话说,以演示的形式向模型描述任务指令。然而,few-shot 样本在标记使用方面可能很昂贵,并且由于上下文长度有限,它会限制输入长度。那么,为什么不直接给出指令呢?Instructed LM 模型(例如 InstructGPT、自然指令)通过高质量的元组(任务指令,输入,正确输出)来微调预训练模型,以使 LM 更好地理解用户意图并遵循指令。RLHF(来自人类反馈的强化学习)是一种常用的方法。指令跟随式微调的好处在于,它使模型更加符合人类意图,大大降低通信成本。与指令模型交互时,应该详细描述任务要求,尽量具体和精确,避免说 “不要做某事”,而是具体说明要做什么。

Please label the sentiment towards the movie of the given movie review. The sentiment label should be "positive" or "negative". 

向指定群体解释是另一种聪明的指示方式,例如为孩子们制作教育资料

Describe what is quantum physics to a 6-year-old.

以及安全的内容

... in language that is safe for work.

情境指令学习 [Ye et al. 2023] 将 few-shot 学习与指令 prompt 相结合。它在 prompt 中包含多个跨不同任务的演示示例,每个演示都由指令、任务输入和输出组成。请注意,他们的实验仅针对分类任务,指令 prompt 包含所有标签选项。

Definition: Determine the speaker of the dialogue, "agent" or "customer".

自洽采样自洽采样 [Wang et al. 2022a] 是对 temperature > 0 的多个输出进行采样,然后从这些候选中选择最好的一个。选择最佳候选的标准因任务而异。一般的解决方案是选择多数票。对于易于验证的任务,例如带有单元测试的编程问题,可以简单地运行解释器并通过单元测试验证正确性。思维链 (CoT)思维链 (CoT) prompt (Wei et al. 2022) 生成一系列短句来逐步描述推理逻辑,称为推理链,最终得出最终答案。CoT 的好处对于复杂的推理任务更为明显,同时使用大型模型(例如,参数超过 50B)。简单的任务从 CoT 的 prompt 中获益甚微。CoT prompt 的类型CoT prompt 的两种主要类型:few-shot CoT:通过一些演示来给模型 prompt,每个演示都包含人类编写(或模型生成)的高质量推理链。(所有数学推理例子均来自 GSM8k)

Question: Tom and Elizabeth have a competition to climb a hill. Elizabeth takes 30 minutes to climb the hill. Tom takes four times as long as Elizabeth does to climb the hill. How many hours does it take Tom to climb up the hill?

Zero-shot CoT:使用像「让我们一步一步来思考」这样的自然语言语句来明确鼓励模型首先生成推理链,然后 prompt「因此答案是」来生成答案 (Kojima et al. 2022)。或者类似的陈述「让我们一步一步地解决这个问题,以确保我们有正确的答案」(Zhou et al. 2022)。

Question: Marty has 100 centimeters of ribbon that he must cut into 4 equal parts. Each of the cut parts must be divided into 5 equal parts. How long will each final cut be?

小技巧和扩展

  • 自洽采样可以通过抽取多个不同的答案然后进行多数表决来提高推理的准确性。(Wang et al. 2022a);
  • 集成学习的另一种方法是改变样本顺序或使用模型生成的基本原理来代替人工编写的基本原理,以在多个样本试验中引入随机性。然后聚合模型根据多数投票的结果获得最终答案。(Wang et al. 2022b);
  • 如果训练样例只与真实答案相关联,但没有基本推理,可以遵循 STaR(Self-Taught Reasoner;Zelikman et al. 2022)方法:(1)让 LLM 生成推理链,只保留那些导致正确答案的链;(2) 然后用生成的基本推理微调模型并重复该过程直到收敛。需要注意的是,较高的 temperature 更有可能产生错误的基本原理和正确的答案。如果训练样本没有真实答案,可以考虑使用多数票作为 “正确” 答案;
  • Prompt 具有更高推理复杂性的演示可以实现更好的性能,其中复杂性由链中推理步骤的数量来衡量。分隔推理步骤时,换行符 \n 比 “步骤 i”、句号或分号等要好 (Fu et al. 2023);
  • Complexity-based 的一致性是通过仅在前 k 个复杂链中进行多数投票表决,选出 k 个中明确表现较好的复杂链 (Fu et al. 2023);
  • [Shum et al. (2023) ] 发现在他们的实验中,仅使用复杂示例的 CoT 提示可以提高复杂问题的准确性,但在简单问题中表现不佳 (GSM8k 上的表现就是明显的证据);
  • 将 Q: 更改为 Question: 发现很有帮助 (Fu et al. 2023);
  • [Ye & Durrett (2022) ] 发现,对于涉及文本推理的 NLP 任务(即 QA 和 NLI),在 prompt 中包含解释的好处有用处但是不大,并且效果因模型而异。他们观察到解释更可能是非事实的而不是不一致的(即解释是否需要预测)。非事实的解释很可能导致错误的预测;
  • [Self-Ask (Press et al. 2022) ] 是一种反复 prompt 模型提出后续问题以迭代构建思维过程的方法。可以通过搜索引擎结果回答后续问题。同样,IRCoT [Interleaving Retrieval CoT;Trivedi et al. 2022] 和 ReAct [Reason + Act;Yao et al. 2023] 将迭代 CoT 提示与维基百科 API 查询相结合,以搜索相关实体和内容,然后将其添加回语境中。

图 1. Self-Ask 如何与外部搜索查询一起使用(图源:Press et al. 2022)。自动 Prompt 设计Prompt 是一系列前缀 token,可增加在给定输入的情况下获得所需输出的概率。因此,可以将它们视为可训练参数,并通过梯度下降直接在嵌入空间上对其进行优化,例如 AutoPrompt [Shin et al., 2020, Prefix-Tuning (Li & Liang (2021)],P-tuning [Liu et al. . 2021)] 和 Prompt-Tuning [Lester et al. 2021]。从 AutoPrompt 到 Prompt-Tuning 的趋势是设置逐渐简化。APE [Automatic Prompt Engineer;Zhou et al. 2022] 是一种搜索模型生成的候选指令池,然后根据所选得分函数过滤候选集以最终选择得分最高的最佳候选的方法。

1、Prompt LLM 根据 input-output 对形式的演示集合生成候选指令。例如。{{Given desired input-output pairs}}\n\nThe instruction is;

2、给定 Dtrain={(x,y)} 的数据集,想要找到一条指令 ρ 使得 ρ∗=arg⁡maxρE (x,y)∈Dtrain [f (ρ,x,y)],其中 f (.) 是每个样本的得分函数,比如如执行精度 [LM (.|ρ, x)=y] 或对数概率:Plm (y|ρ,x);

3、使用迭代蒙特卡洛搜索方法通过 prompt 提出语义相似的变体来改进最佳候选,例如 Generate a variation of the following instruction while keeping the semantic meaning.\n\nInput: ...\n\nOutput:...

为了自动构建 CoT prompt [ Shum et al. (2023) ] 建议 augment-prune-select,包含三个步骤的过程:

1.Augment:使用 few-shot 或 zero-shot CoT prompt 生成给定问题的多个伪 CoT;

2.Prune:根据生成的答案是否与基本事实相匹配来修剪伪链;

3.Select:应用 variance-reduced 梯度策略来学习所选示例的概率分布,同时将示例的概率分布作为策略,将验证集的准确性作为奖励。

[Zhang et al. (2023) ] 采用聚类技术对问题进行抽样,然后生成链。他们观察到 LLM 倾向于犯某些类型的错误。一种类型的错误在嵌入空间中可能相似,因此被组合在一起。通过只从频繁错误的集群中抽取一个或几个样本,可以防止对一种错误类型的过多错误演示,并收集一组不同的例子。

1. 问题聚类:嵌入问题并运行 k-means 聚类的方法;

2. 示例选择:从每个簇中选择一组有代表性的问题;即来自一个簇的一个示例。每个簇中的样本按到簇质心的距离排序,最接近质心的样本首先被选择;

3. 生成推理链:使用 zero-shot CoT 为选定的问题生成推理链,并构建 few-shot prompt 来运行推理。

增强语言模型[Mialon et al. (2023) ] 对增强语言模型进行的一项调查。涵盖了多类增强推理技能和使用外部工具能力的语言模型。推荐读者可以读一下。检索通常,我们需要在模型预训练时间截止或内部 / 私有知识库之后,完成需要最新知识的任务。在这种情况下,如果不在 prompt 中显式提供上下文,模型将不知道上下文。开放领域问答的许多方法都依赖于首先在知识库上进行检索,然后将检索到的内容作为 prompt 的一部分。这个过程的准确性取决于检索和生成步骤的质量。[Lazaridou et al. (2022) ] 研究了如何使用谷歌搜索进行文档检索以增强 LLM。给定一个问题 q,从谷歌返回的 20 个 URL 中提取文本,得到一组文档。由于这些文档很长,因此每个文档被拆分为 6 个句子的段落,{p}。段落是根据证据段落和查询之间基于 TF-IDF 的余弦相似性进行排序的。在 prompt 中只使用最相关的段落来产生答案 a.对于闭卷问答,每个演示的格式如下,以构建 few-shot prompt。发现将问题与证据交换(问题和答案之间的距离更长)在所有数据集中始终产生较低的结果。

Evidence: ...

答案的概率以三种方式计算:

1.RAG 风格,

,其中

是 TF-IDF 段落和问题表示之间的归一化余弦相似度。

2. 噪声信道推断:

3.Product-of-Experts (PoE),结合上面使用的所有概率,但不包括

根据他们在生成和分类任务的实验,在三个答案的重新排序得分中,PoE > 噪声信道推断 > RAG。在所有概率中,pLM (a|q,pi) 和 pLM (q|pi,a) 提供的信息最多。pLM (q|pi,a) 捕捉到 LM 在给定证据段落和答案的情况下对问题的解释有多好,并且可以可靠地用于对候选答案进行重新排序。针对基于不同日期的问题的 SituatedQA 数据集进行的一项观察是,尽管 LM(预训练截止日期为 2020 年)可以通过 Google 搜索访问最新信息,但其在 2020 年后问题上的表现仍然比 2020 年前问题差很多。这表明上下文信息和模型内部知识之间存在一些差异或参数冲突。 有趣的是,即使只有 “内部检索” 也是有益的,即在回答问题之前生成关于某个主题的知识 [Liu et al. 2022]。首先可以使用下面的模板来抽取知识:

Generate some knowledge about the input. Examples:

然后用模型生成的知识,进一步给 LM 进行 prompt 得到答案。编程语言既有 PAL(程序辅助语言模型) [ Gao et al. 2022] 和 PoT (Program of Thoughts prompting [Chen et al. 2022] 要求 LLM 生成编程语言语句来解决自然语言推理问题,从而将解决方案步骤转移到运行时,如 Python 解释器。这样的设置解耦了复杂的计算和推理。该方法依赖于具有足够好的编程技能的 LM。

图 2. 比较 CoT 和 PoT.(图片源自: Chen et al. 2022)。外部 APITALM(Tool Augmented Language Models [ Parisi et al. 2022])是一种通过文本到文本 API 调用增强的语言模型。LM 被引导生成以任务输入文本为条件的工具调用和工具输入文本,以构建 API 调用请求。当 result 出现时,调用指定的工具 API,并将返回的结果附加到文本序列。最终输出是在 output token 之后生成的。

图 3. TALM 中调用 API 的格式 (图片源自: Parisi et al. 2022)。TALM 采用 self-play 的方法来迭代引导工具使用示例的数据集,并用它来微调 LM。这个迭代的 self-play 模仿了一个 RL 过程,其中 LM 是策略网络,它由带有二元奖励信号的策略梯度训练。

图 4. Self-play 迭代提升模型的性能 (图片源自: Parisi et al. 2022)。Toolformer [Schick et al. 2023] 是一种可以通过简单的 API 使用外部工具的 LM,通过自我监督的方式构建,每个 API 只需要少量的演示。Toolformer 的工具箱包括:

  • 计算系统:帮助 LM 缺乏精确的数学技能;
  • 问答系统:帮助解决无效内容;
  • 搜索引擎:在预训练截止时间后提供最新信息;
  • 翻译系统:提高低资源语言性能;
  • 日历系统:使 LM 了解时间进程。

图 5. 如何构建 Toolformer.(图片源自: Schick et al. 2023)。Toolformer 的训练过程如下:1.Prompt 注释下的 API 调用。要求预训练的 LM 通过带有 API 调用使用示例的 few-shot 学习来注释数据集。格式化示例:

图 6. 数据集如何在调用 API 的时候注释 (图片源自: Schick et al. 2023)。每个 API 调用都表示为一个元组(API 名称,相应的输入),

其对应的结果记为 r。有结果和无结果的 API 调用序列分别标注如下:

基于概率

的 API 调用,如果概率大于某个阈值,则选择前 k 个候选在位置 i 进行 API 调用;然后,从 LM 中采样潜在的 API 调用,其中序列 [prompt (x),x1,…,xi−1,〈API〉] 作为前缀,〈/API〉 作为后缀。2. 根据 API 调用是否有助于模型预测未来 token 来过滤注释。使用自监督损失来确定哪些 API 调用产生实际的帮助。执行每个 API 调用 c_i 得到对应的结果 r_i;计算 LM 在 token 序列 xi,...,xn 上的加权交叉熵损失,当模型以 prompt 为前缀时。计算了两个版本,一个带有 API 结果,另一个带有空序列 ε;

仅保留

大于阈值的 API 调用,这表示添加此 API 调用及其结果有助于模型预测未来的 token。3. 在注释数据集上微调 LM。新的训练序列构造为

训练数据是原始数据集(例如论文中的 CCNet 子集)及其增强版。在推理时,解码会一直运行,直到模型产生 “→”token,表明它期待接下来来自 API 调用的响应。Toolformer 目前不支持在链中使用工具(即使用一个工具的输出作为另一个工具的输入)或以交互方式(即在人工选择后采用 API 响应)。两者都是未来扩展模型的方向。原文链接:https://lilianweng.github.io/po

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

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

相关文章

【C语言】深度剖析数据在内存中的存储

简单不先于复杂,而是在复杂之后。 目录 1. 数据类型介绍 1.1 类型的基本归类 2.整型在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 2.3 练习 2.3.1 练习1 2.3.2 练习2 3.2.3 练习3 2.3.4 练习4 2.3.5 练习5 2.3.6 练习6 2.3.7 练习7 …

linux jstat 简介

本文目录一览: 1、Linux使用jstat命令查看jvm的GC情况2、linux怎么监控 jvm内存 jstat3、Linux系统监控要用到哪些命令4、linux上如何安装jstatd服务 Linux使用jstat命令查看jvm的GC情况 Linux 使用jstat命令查看jvm的GC情况 命令格式 jstat命令命令格式&#…

【Linux】3. 基本权限与文件指令

1. 用户概念 sudo提权配置 2. 权限的定义 3. 文件权限 角色和文件属性是一一对应的关系: 拥有者-所属组-其他人 rwx - rwx - rwx 4. 文件类型 5. chmod 修改文件属性 6. chown/chgrp 修改文件所属角色 7. umask 8. file指令 9. 目录的权限 10. 粘滞位 首先要明确…

Arduino ESP8266 基于本地搭建MQTT服务运行

Arduino ESP8266 基于本地搭建MQTT服务运行 📌相关篇《Arduno ESP8266接入OneNET实时显示DHT11数据》 🔨本地架设MQTT服务端软件:EMQX:https://www.emqx.io/zh/downloads?os=Windows - 🔧MQTT本地客户端软件:mqttx:https://mqttx.app/ 📺服务端接收设备段上传的数据…

人群计数:技术难点、商业产品化成功案例、现状、传统做法、硬件设备、

现状: 比较成熟了,准确率已经很高了(有多高,后面我搞懂metrics高到什么程度,再汇报过来) 商业公司基本把这个领域做的很透彻了,performance基本到了一一个无法提高的位置了(和图像…

卡尔曼滤波器简介——多维卡尔曼滤波

原文:多维卡尔曼滤波 (kalmanfilter.net) 目录 前言 基本背景 状态外推方程 示例 - 飞机 - 无控制输入 示例 - 带控制输入的飞机 示例 – 坠落物体 状态外推方程维度 线性时不变系统 线性动态系统建模 状态外推方程的推导 状态空间表示形式 示例 - 等速…

大数据Doris(六):BE部署及启动

文章目录 BE部署及启动 一、上传安装包并解压 二、修改be.conf 配置文件 三、上传apache-doris-java-udf 对应 jar 四、启动BE 五、将 node3 BE 安装包发送其他 BE 节点 六、配置其他 BE 节点 七、启动其他 BE 节点 BE部署及启动 本集群中我们在node3、node4、node5上…

C S S

目录 1.样式定义方式 1.1行内样式表 1.2内部样式表 1.3外部样式表 2.注解 3.选择器 3.1标签选择器 3.2 id选择器 3.3 类选择器 3.4 派生选择器 3.5 伪类选择器 链接伪类选择器: 位置伪类选择器: ​编辑 目标伪类选择器: 复合选…

数据治理在学术上的发展史以及未来展望

数据治理是大数据领域中非常重要的一环,从早期的学术研究到如今的各大企业落地实践,经历了漫长的过程,数据治理的实践落地本身也是一场马拉松。 从百度学术通过精确关键词匹配,搜索中文期刊的“数据治理” 和外文期刊的“data gov…

Apache安装与基本配置

1. 下载apache 地址:www.apache.org/download.cgi,选择“files for microsoft windows”→点击”ApacheHaus”→点击”Apache2.4 VC17”,选择x64/x86,点击右边download下面的图标。 2. 安装apache (1)把…

flutter集成Mob推送(Android)

Mob推送 Flutter对接文档 1、在pubspec.yaml文件中加入下面依赖 mobpush_plugin: ^1.2.2 # MOB推送2、导入 MobPush 相关依赖 在项目根目录的build.gradle中添加以下代码: buildscript {repositories {// 配置Mob Maven库maven {url "https://mvn.mob.com/an…

4月份读书学习好文记录

4月份学习记录 找到自己感兴趣的方向,而不是人云亦云,知道自己想要的是什么,而不是一直得过且过! 差距是怎么出现的,四年来的点点滴滴!!! 一个前端大佬的十年回顾 | 漫画前端的前世…

Confidential Containers发布0.5.0版本,龙蜥将基于八大特性构建开箱即用的机密容器解决方案

文/段勇帅 01 前言 机密容器(Confidential Containers,简称CoCo)是 Cloud Native Computing Foundation(CNCF)Sandbox 项目。目前机密容器项目的核心参与者包括阿里云、AMD、ARM、IBM、Intel、Microsoft、Red Hat、R…

OpenGL(三)——着色器

目录 一、前言 二、Shader 2 Shader 2.1 顶点着色器 2.2 片段着色器 三、APP 2 Shader 四、顶点颜色属性 五、着色器类C 一、前言 着色器Shader是运行在GPU上的小程序,为图形渲染管线的某个特定部分而运行。各阶段着色器之间无法通信,只有输入和输…

uniapp 截图或者生成海报

需求:uniapp移动端需要生成一张当前界面的海报 方案一:类似于手机按钮截图效果。实现代码如下: doSaveScreen() { let $this this; uni.showLoading({ //加载框 title: 保存中..., …

Sqlmap手册—史上最全

Sqlmap手册—史上最全 一.介绍 开源的SQL注入漏洞检测的工具,能够检测动态页面中的get/post参数,cookie,http头,还能够查看数据,文件系统访问,甚至能够操作系统命令执行。 检测方式:布尔盲注、…

css中的background属性

文章目录 一:background-repeat二:background-position三:background缩写方式三:background-size四:background-origin五:background-clip 在日常前端开发中,经常需要进行背景或背景图的处理。但…

国民技术N32G430开发笔记(10)- IAP升级 Application 的制作

IAP升级 Application 的制作 1、App程序跟Bootloader程序最大的区别就是, 程序的执行地址变成了之前flash设定的0x08006000处, 大小限制为20KB 所以修改Application工程的ld文件 origin 改成 0x08006000 length 改成0x5000 烧录是起始地址也要改为x0x…

【chapter30】【PyTorch】[动量与学习率衰减】

前言: SGD的不足: ①呈“之”字型,迂回前进,损失函数值在一些维度的改变得快(更新速度快),在一些维度改变得慢(速度慢)- 在高维空间更加普遍 ②容易陷入局部极小值和鞍点…

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开…