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

解锁AI语言模型的秘密武器 - 提示工程

文章目录

  • 一、LLM概念
    • 1.1 什么是LLMs
    • 1.2 LLMs类别
    • 1.3 如何构建LLM
  • 二、提示工程简介
    • 2.1 基础提示
    • 2.2 使用提示词的必要性
  • 三、 提示
    • 3.1 如何写好提示词
      • 3.1.1 使用分隔符
      • 3.1.2 结构化输出
      • 3.1.3 风格信息
      • 3.1.4 给定条件
      • 3.1.5 给出示例
      • 3.1.6 步骤分解
      • 3.1.7 不断迭代
    • 3.2 提示工程
      • 3.2.1 使用角色
      • 3.2.2 使用示例
      • 3.2.3 思维链
      • 3.2.4 zero shot chain
    • 3.3 提示的组成部分
  • 四、 实际应用案例
    • 4.1 编程助手
    • 4.2 写邮件
    • 4.3 学习伙伴
  • 五、大模型的局限性
  • 六、 大模型参数设置

想让你的AI变成聊天高手?掌握提示工程,让你的AI不仅仅是个回答机器,而是你智能的生活小助手! ‍

首先,你得知道什么是LLMs(大型语言模型),它们是怎么构建的,以及为什么我们需要提示工程。然后,你会学到如何用分隔符来区分数据和提示,怎样要求结构化输出(比如JSON, XML, HTML等),以及如何通过包含风格信息来调整输出的语调。

不仅如此,你还会学到如何写出好的提示,比如角色提示、少量示例提示、思考链提示,甚至是零示例思考链和由少到多的提示。这些技巧就像是给AI的思维加上了翅膀,让它们飞得更高、更远。

最后,不要忘了调整那些神秘的LLM设置,比如温度和Top P,还有其他超参数。这就像是调整你的AI食谱,让它做出最美味的数据大餐。

一、LLM概念

LLM全称是“Large Language Model”,大语言模型。它通过大量的文本数据训练,理解输入,处理语言相关任务,如回答问题、进行对话、总结文本、翻译语言等。

1.1 什么是LLMs

LLM是为了理解生成人类语言而设计的人工智能模型。这些模型通常基于深度学习框架(如Transformer)训练。

LLM可以处理多种NLP任务。如机器翻译、情感分析、摘要等。可以根据给定的输入生成连贯文本,在聊天机器人、问答系统、内容生成领域应用广泛。

例如OpenAI的GPT就是一个LLM,可以通过最小的微调执行各种语言任务。

1.2 LLMs类别

LLMs可以分为两类,基础LLM(Base LLM),指令调整LLM(Instruciton tuned LLM)

  • 基础LLM

基础LLM是根据当前文本预测下一词,它不是用来回答问题、对话、解决问题的。

例如你输入

在这篇关于LLMs的文中,我们将讨论

LLM可能会完成这个句子

在这篇关于LLMs的文中,我们将讨论LLMs是什么,它们是如何工作的,以及如何在应用程序中使用他们…

基础LLM可以提供相关文本,但不会回答问题。

  • 指令调整LLM

与基础LLM相反,指令调整LLM不会尝试补全文本,而是根据训练数据尝试完成指令内容,例如回答问题。

例如输入

LLM是什么?

它将根据训练数据给出答案。

指令调整LLM建立在基础LLM之上。

指令调整LLM = 基础LLM + 微调 + RLHF(人类反馈强化学习)

构建指令调整LLM,首先需要基础LLM,然后使用数据微调,数据集中包含了指令以及指令对应的反馈结果。然后使用RLHF(Reinforcement Learning with Human Feedback)技术微调,这一技术可以从人类反馈中不断学习,随着时间推移不断优化其性能。

1.3 如何构建LLM

训练LLM包含三个步骤:数据收集、训练、评估

  • 数据收集

数据来源可以是网站、博客、书籍、新闻、百科等。

  • 训练

训练需要很长时间以及很大的算力。

  • 评估

看输出的模型在回答、摘要、翻译等任务上的表现。

二、提示工程简介

提示工程是为模型提供“提示”或指令,以执行你希望其执行的任务的过程。

例如将一段文本翻译成法语,可以这样写提示词:

Translate the text delimited by triple quotes from English to french: """Hello, how are you?"""

(将三引号内的文本从英文翻译成法语。)

也可以以简洁的方式这样写:

Translate the following to French:Hello, how are you?

(将下面的内容翻译成法语)

模型将生成对应的输出:

Bonjour, comment allez-vous?

但最好是明确使用分隔符将提示内容与说明分开。

2.1 基础提示

指示模型执行任务所需的只是提示。提示是你提供给模型以执行任务的一段文本。例如:

这里是文章内容..........
.......................为我总结上面的文章内容。

或者只是一条生成新文本的指令

为我写一段关于提示工程的简介。

但是只使用纯文本作为指令并不能充分利用LLM的能力。为了充分挖掘LLM的能力,就涉及到了提示工程。

2.2 使用提示词的必要性

提示的需求源于其在引导AI模型行为、提高文本质量和相关性、引出特定输出、对齐AI和人类意图以及减少生成内容中的不准确性和模糊性方面的作用。通过理解和掌握提示的艺术,用户可以释放AI语言模型的真正潜力。

三、 提示

前面说明了什么时提示,以及提示的重要性。本节介绍常见的提示技巧。

3.1 如何写好提示词

3.1.1 使用分隔符

使用分隔符来标记提示和数据之间的边界。

  • 选择适当的分隔符

    可以使用三重大括号{{{ }}}或特殊标记(如 <|data|> )作为分隔符。

  • 正确放置分隔符

    将分隔符放置在数据部分的开头和结尾,同时确保与提示清晰分开。提示部分应位于分隔符之前,为模型提供必要的说明或上下文。

  • 始终使用一致的分隔符

示例

总结三花括号内的文本。{{{这里是你的文本}}}

3.1.2 结构化输出

有时我们需要结构化输出结果,如JSON、XML、HTML等,这对于处理数据、网页抓取、内容生成很有帮助。

该如何请求结构化输出呢?

  • 指定输出格式

  • 定义结构和字段

    概述所需输出的结构并指定所需字段。这有助于指导模型生成符合所需结构的响应。可以提供示例或模板来说明预期的格式。

  • 提供输入上下文

示例

帮助我从<review>标签中包含的文本中生成一个JSON对象,其中包含键' product '(产品名称),' isPositive '(布尔值),' summary '(评论的一句话摘要)。<review>令人遗憾的是,“XYZ ProTech 2000”产品甚至没有达到最基本的期望。从它平淡无奇的构建质量和令人困惑的用户界面到它糟糕的性能和令人失望的客户支持,这个产品让我非常不满意。如果您正在考虑购买“XYZ ProTech 2000”,我强烈建议您探索提供卓越质量和可靠性的替代选项。
</review>

输出结果:

{"product": "XYZ ProTech 2000","isPositive": false,"summary": "Failed to meet expectations due to lackluster build quality, confusing user interface, abysmal performance, and disappointing customer support."
}

3.1.3 风格信息

通过提供有关所需语气的明确说明,可以影响语言模型的写作风格并确保其符合您的特定要求。

在提示中清楚地传达所需的语气、风格或情绪。无论是正式的、休闲的、幽默的、专业的还是任何其他特定的风格,明确提及它都有助于指导模特的写作。另外,请考虑合并反映所需风格的关键字或短语。例如,如果您想要正式的语气,请添加**“以专业方式”或“使用正式语言”**等短语。这为模型提供了有关您期望的语气的附加上下文。

示例

写一封正式的电子邮件来拒绝工作邀请。

3.1.4 给定条件

给出条件,然后要求模型遵循这些条件,有助于引导模型对特定行为或结果做出反应。

示例

您将获得由三引号分隔的文本。
如果它包含一个指令序列,则\
将这些说明改写为以下格式:步骤1 -…
步骤2 -…
…
步骤N -…如果文本不包含指令序列,则\
然后只需写上“没有提供步骤。"""在这里插入你的食谱文本"""

3.1.5 给出示例

向模型提供示例,然后要求它继续该行为。

示例:

仔细阅读示例并将其作为回答的基础。输入:香蕉
输出:水果输入:苹果
输出:水果输入:胡萝卜
输出:蔬菜根据提供的示例,为以下输入生成适当的回答:萝卜
橙子
梨
土豆
黄瓜
芹菜
西兰花
花椰菜

输出:

萝卜:蔬菜
橙子:水果
梨:水果
土豆:蔬菜
黄瓜:蔬菜
芹菜:蔬菜
西兰花:蔬菜
花椰菜:蔬菜

3.1.6 步骤分解

有时直接向模型询问某些内容可能不会产生最佳输出。这时可以分解这些步骤。
下面展示一个示例,提取故事中出现的名词和数量。有两种方式,一种是直接问,还有一种是步骤分解。

示例:

# 直接法给我一个JSON对象,带有以下键:`nouns_count`(出现在故事中的名词数量)和`nouns_french`(法语名词数组)。故事以"""隔开。"""In a charming village, siblings Jack and Jill set out on a quest to fetch water from a hilltop well. As they climbed, singing joyfully, misfortune struck—Jack tripped on a stone and tumbled down the hill, with Jill following suit. Though slightly battered, the pair returned home to comforting embraces. Despite the mishap, their adventurous spirits remained undimmed, and they continued exploring with delight."""

输出

{"nouns_count": 10,"nouns_french": ["village","siblings","Jack","Jill","quest","water","hilltop","well","stone","hill"]
}

可以看到输出不是法语。

#步骤分解法对以"""分隔的故事执行以下步骤。步骤1 翻译成法语
步骤2 列出译文中的每个名词。
步骤3 输出JSON对象,包含'nouns_count'法语故事中的名词数量和'nouns_french',即翻译中出现的名词数组。只输出JSON,我对其余步骤不感兴趣。"""In a charming village, siblings Jack and Jill set out on a quest to fetch water from a hilltop well. As they climbed, singing joyfully, misfortune struck—Jack tripped on a stone and tumbled down the hill, with Jill following suit. Though slightly battered, the pair returned home to comforting embraces. Despite the mishap, their adventurous spirits remained undimmed, and they continued exploring with delight."""

输出

{"nouns_count": 10,"nouns_french": ["village","frères","Jack","Jill","quête","eau","sommet de la colline","bien","pierre","colline"]
}

3.1.7 不断迭代

不要将写提示词视为一个一劳永逸的过程。应该不断的迭代,直到达到准确、一致结果。

3.2 提示工程

3.2.1 使用角色

角色提示是提示工程中使用的一种技术,旨在鼓励人工智能通过假设特定的角色、角色或观点来处理问题。根据给定的角色,这种策略可以带来更加专注、创造性或同理心的反应。

  • 确定处理任务的角色
  • 提供上下文,描述场景,介绍角色。
  • 提出问题或任务。

示例:

作为一名气候科学家,您将如何解决森林砍伐问题以尽量减少其对环境的影响?

3.2.2 使用示例

新的相关输入之前,可以先用少量的示例演示输入、输出。

  • 示例数量:2-10 个示例(但可能会有所不同),具体取决于任务的清晰度和复杂性。
  • 上下文和相关性:示例应与所需任务相关,并为塑造模型的输出提供充分的基础。
  • 平衡:力求在示例太少(规格不足)和示例过多(重复和规格过高)之间取得平衡。

3.2.3 思维链

这种方法将复杂的主题或问题分解为更小的、可管理的部分。假设我们希望模型分析在家工作的优点和缺点。我们可以通过一系列相互关联的提示来探讨这个主题。

“列出人们可能更喜欢在家工作的三个原因。”
“对于您提到的每个原因,请解释对个人和/或组织的好处和积极影响。”
“现在,考虑一下在家工作的挑战。确定三个潜在的缺点或负面影响。”
“对于每一个挑战,讨论个人和组织如何减轻或解决这些挑战。”

3.2.4 zero shot chain

  • 首先定义一个明确的初始问题或问题,将其作为链的起点。
  • 设计一个提示,不仅要求模型提供最初问题的答案,还要求模型逐步解释其推理。
  • 鼓励模型在其响应中明确考虑中间步骤、可能的替代方案或想法之间的联系。

示例:

请解释一下太阳能电池板的工作过程,从阳光照射到电池板表面开始,到产生电能结束。将你的回答组织成一个循序渐进的思维链,注意清楚每一步是如何通向下一步的。

3.3 提示的组成部分

  • 上下文
  • 说明/指令
  • 示例

四、 实际应用案例

LLM可以应用在

  • 自然语言处理
  • 信息检索
  • 问答
  • 文本生成
  • 文本摘要
  • 学习工具
  • 聊天机器人

4.1 编程助手

  • 代码生成
扮演一个初级python程序员。请编写代码,从3个数组生成madlib,每个数组6个项:介词,动词和名词,其中名词也用作直接对象。写完之后,执行代码。
  • 注释和重新格式化代码
请在Python代码中添加行注释并重新格式化以提高可读性:import math
amplitude = 30
frequency = 2
num_points = 50
for i in range(num_points):y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))print(' ' * (amplitude + y) + '*')
  • 调试
请调试下面的python代码:  pizza_cost = 100
partygoers = 10
while partygoers = 0:cost_per_person = pizza_cost / partygoersprint("the cost per person is $", "{:.2f}".format(cost_per_person))partygoers -= 2
  • 优化代码
扮演非常资深的python开发人员。请优化这个脚本:for num in range(1, 101):if num  1:for i in range(2, num):if (num % i) == 0:breakelse:print(num)
  • 编程语言之间的翻译
扮演一个既懂COBOL又懂Python的有经验的开发人员。请将这个COBOL程序转换为Python:IDENTIFICATION DIVISION.
PROGRAM-ID.  CALCULATE-SS-TAX.DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALARY PIC 9(7)V99.
01 SS-TAX PIC 9(7)V99.PROCEDURE DIVISION.
DISPLAY "Enter employee's salary: ".
ACCEPT SALARY.COMPUTE SS-TAX = SALARY * 0.062.DISPLAY "Social Security tax is: $", SS-TAX.
STOP RUN.

4.2 写邮件

写一封电子邮件,通知客户他们的询价已经收到,并将很快得到答复。在电子邮件中包括订单号和客户姓名。

4.3 学习伙伴

  • 术语解释

    可以让LLM解释论文阅读中的术语。

  • 自测

    如,让LLM生成5个计算题。

其他的还有推理、聊天机器人等。这里不再举例说明。

五、大模型的局限性

  1. 无法完全理解提示的意图,生成通用响应。为了缓解这种情况,需要使提示更加明确或要求模型在提供最终答案之前逐步思考。
  2. 对提示措辞的敏感性,这可能会导致完全不同或不一致的回答。确保提示措辞恰当且清晰,以最大程度地减少混乱。
  3. 模型生成看似合理但不正确的答案。解决这个问题的一种方法是为模型添加一个步骤来验证其响应的准确性,或者提示模型提供给定信息的证据或来源。
  4. 冗长或过于技术性的回复。为了避免这种情况,请通过使提示更具体、要求更简单的响应或请求特定格式来明确指导模型。
  5. 当面临模棱两可的提示时,LLMs可能会尝试回答而不要求澄清。为了鼓励模型寻求澄清,可以在提示前面加上“如果问题不清楚,请要求澄清”。
  6. 模型无法执行多部分任务。为了避免这种情况,请考虑将任务分解为更小、更易于管理的子任务,或者确保在提示中清楚地标识任务的每个部分。
  7. LLMs大多数情况无法正确引用来源,因为他们无法访问网络。使用搜索增强LLMs
  8. 数学能力不及格
  9. 用户输入不规范。构建内容过滤器和精心设计的提示模板等安全机制,以防止模型生成有害或不需要的输出。

六、 大模型参数设置

LLM参数设置在提示工程中起着至关重要的作用,因为它们直接影响语言模型的行为和输出。在本节中,我们将讨论设计提示时需要考虑的一些重要的 LLM 设置。

  1. temperature

温度是一个超参数,控制语言模型生成的输出的随机性。较高的温度会产生更加多样化和创造性的反应,而较低的温度会产生更加集中和确定性的反应。

  1. Max Tokens

最大标记决定模型生成的输出的长度。通过控制响应中标记的数量,可以影响语言模型的详细程度。

  1. Top-K

Top-K 采样是一种限制语言模型可以考虑的预测单词数量的方法。通过指定较小的K值,可以限制输出的重点,防止模型生成不相关的信息。一般top-k和temperature设置一个就行了。


【参考】

  • https://roadmap.sh/prompt-engineering
  • Chat-GPT4

相关文章:

解锁AI语言模型的秘密武器 - 提示工程

文章目录 一、LLM概念1.1 什么是LLMs1.2 LLMs类别1.3 如何构建LLM 二、提示工程简介2.1 基础提示2.2 使用提示词的必要性 三、 提示3.1 如何写好提示词3.1.1 使用分隔符3.1.2 结构化输出3.1.3 风格信息3.1.4 给定条件3.1.5 给出示例3.1.6 步骤分解3.1.7 不断迭代 3.2 提示工程3…...

qt手撕菜单栏

最近有个项目需要手写菜单栏。 就写了一个简单的程序,供大家参考! #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include...

UE5——网络——RPC

RPC&#xff08;这个是官方文档的资料&#xff09; 要将一个函数声明为 RPC&#xff0c;您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如&#xff0c;若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC&#xff0c;您可以…...

基于ASP.NET MVC + Bootstrap的仓库管理系统

基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用&#xff0c;含有简单的说明文档。 适合单仓库&#xff0c;基本的仓库入库管理&#xff0c;出库管理&#xff0c;盘点&#xff0c;报损&#xff0c;移库&#xff0c;库位等管理&#xff0c;有着可视化图表。 系统采用Bo…...

Jetson NX FFmpeg硬件编解码实现

最近在用Jetson Xavier NX板子做视频处理&#xff0c;但是CPU进行视频编解码&#xff0c;效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看&#xff0c;发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改&#xff0c;因此需…...

5.2用队列实现栈(LC225-E)

算法&#xff1a; 其实这道题不用像上一道题一样&#xff0c;用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候&#xff1a; 比如队列[1,2,3]&#xff0c;要模拟一个栈入栈就是直接append&#xff08;其实就是C中的push&#xff0…...

项目上线前发现严重Bug怎么办?

今天分享一个面试问题&#xff0c;现在有一个面试场景&#xff1a; 项目计划明天发布&#xff0c;但是在今天你作为测试人员发现了一个严重的bug&#xff0c;市场相关人员又在催发布的事情&#xff0c;这个时候你应该怎么办&#xff1f; 这是测试工程师不管是在面试&#xff0…...

【WPF系列】- Application详解

【WPF系列】- Application详解 文章目录 【WPF系列】- Application详解一、Application简介Application 类具体有以下功能: 二、初始App.xaml二、自定义Main方法启动WPF应用程序第一种&#xff1a;启动应用程序的代码第二种&#xff1a;启动应用程序的代码第三种&#xff1a;启…...

常见的内置方法:__call__,__getitem__,__iter__,__next__

1.__call__方法 在创建好一个实例后&#xff0c;直接调用一个实例会报错。但使用__call__后&#xff0c;可以让这个实例可以像方法一样被调用&#xff08;就是一个函数后面加个括号的函数调用形式&#xff09; class Person:passp1 Person() p1() # 实例这样无法直接被调…...

python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候&#xff0c;通常需要画很多辅助几何形状&#xff08;比如bounding box等&#xff09;。基于opencv的几何图形绘制具有易用性&#xff0c;而且天然能和numpy数组交互。 本文总结了几种常用的cv2画几何图形的方法&#xff0c;当一个简易的手册使用&a…...

解决方案中word中分页符的使用

在投标方案中要善于使用“分页符”&#xff0c;尽可能少使用分节符号&#xff0c;没有分页符前&#xff0c;你每次修改你的标书或者文件&#xff0c;增加或者修改内容后。你的格式字段前后都是会发生变化&#xff0c;如何稳定的保证结构呢&#xff0c;那就是分页符的使用&#…...

ubuntu20.04下apache启用php7.4-fpm

默认的apache不解析php文件&#xff1a; 直接安装提示依赖有问题&#xff1a; libapache2-mod-php7.4 : Depends: php7.4-common ( 7.4.3-4ubuntu2.19) but 1:7.4.33-8ubuntu20.04.1deb.sury.org1 is to be installed rootfv-az1492-145:/tmp# sudo apt install libapache2-…...

在 CentOS 服务器上部署 JAR 文件到 Docker 容器

标题&#xff1a;在 CentOS 服务器上部署 JAR 文件到 Docker 容器的详细步骤 步骤 1: 确保 Docker 已安装 在开始之前&#xff0c;确保在 CentOS 服务器上已经安装了 Docker。如果没有安装&#xff0c;可以使用以下命令进行安装&#xff1a; sudo yum install docker步骤 2:…...

vector类模拟实现(c++)(学习笔记)

vector 构造函数析构函数[]push_backsize()capacity()reserve()push_back() 迭代器实现非const和const版本 pop_back()resize()insert()***重点erase()***重点再谈构造函数&#xff01;拷贝构造函数****&#xff08;重点&#xff09;运算符重载***&#xff08;重点&#xff09;…...

Redis Sentinel 哨兵模式

Sentinel 哨兵模式 Redis Sentinel 官网 Redis 的 Sentinel 文档 -- Redis中国用户组&#xff08;CRUG&#xff09; Sentinel Redis 命令参考&#xff08;红色&#xff09; Sentinel 通过监控的方式获取主机的工作状态是否正常&#xff0c;当主机发生故障时&#xff0c; Senti…...

实用篇-MQ消息队列

一、初识MQ 通讯分为同步通讯和异步通讯&#xff0c;同步通讯就比如我们日常生活中的打电话&#xff0c;看直播&#xff0c;能够得到及时的反馈。而异步通讯则类似于聊天软件聊天&#xff0c;不需要建立实时的连接&#xff0c;并且可以进行建立多个业务一起异步执行 1. 同步通…...

springboot打包时依赖jar和项目jar分开打包;jar包瘦身

概述 最近感觉项目在部署时时jar包传输太慢了&#xff1b; 看了下jar包内容&#xff0c;除了项目代码&#xff0c;其余大部分都是依赖jar&#xff1b; 平时改动较多的只是项目代码&#xff0c;依赖jar改动比较少&#xff1b; 所以就在想能不能分开打包&#xff1b;这样只部署项…...

嵌入式系统的元素

注意&#xff1a;关于嵌入式系统的元素这一块儿内容&#xff0c;定义太多了。例如&#xff1a;吉姆莱丁 著&#xff0c;陈会翔 译&#xff0c;由清华大学出版社出版的《构建高性能嵌入式系统》中提到&#xff1a;嵌入式系统通常由电源、时基、数字处理、内存、软件和固件、专用…...

提升ChatGPT答案质量和准确性的方法Prompt engineering实用的prompt灵感和技巧

文章目录 1. 实用的prompt灵感和技巧小技巧常用prompt保存到输入法中普通promptprompt通用公式保存到输入法快捷指令中尝试用英语去写prompt沉浸式翻译软件3. 补充1. 实用的prompt灵感和技巧 解释***,并且给出暗喻/隐喻/类比(解释术语、专业名称,用一个词或短语指出常见的一…...

[Machine Learning] Learning with Noisy Labels

文章目录 随机分类噪声 (Random Classification Noise, RCN)类别依赖的标签噪声 (Class-Dependent Noise, CCN)二分类多分类 实例和类别依赖的标签噪声 (Instance and Label-Dependent Noise, ILN) 标签噪声是指分类任务中的标签被错误地标记。这可能是由于各种原因&#xff0c…...

集简云slack(自建)无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统

slack是一个工作效率管理平台&#xff0c;让每个人都能够使用无代码自动化和 AI 功能&#xff0c;还可以无缝连接搜索和知识共享&#xff0c;并确保团队保持联系和参与。在世界各地&#xff0c;Slack 不仅受到公司的信任&#xff0c;同时也是人们偏好使用的平台。 官网&#x…...

Idea 对容器中的 Java 程序断点远程调试

第一种&#xff1a;简单粗暴型 直接在java程序中添加log.info()&#xff0c;根据需要打印信息然后打包覆盖&#xff0c;根据日志查看相关信息 第二种&#xff1a;远程调试 在IDEA右上角点击编辑配置设置相关参数在Dockerfile中加入 "-jar", "-agentlib:jdwp…...

vscode设置保存后,自动格式化代码

第一步&#xff1a;打开setting.json文件 第二步&#xff1a;在setting.json中加入以下代码 "editor.formatOnType": true, "editor.formatOnSave": true, "editor.formatOnPaste": true...

datagrip出现 java.net.ConnectException: Connection refused: connect.

出现这样的情况要看一下hadoop有没有启动 start-all.sh nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 & scp -r /export/server/apache-hive-3.1.2-bin/ node3:/export/server/ /export/server/apache-hive-3.1.2-bin/bin/hive show databa…...

Docker 安装ELK7.7.1

(在安装之前&#xff0c;本方法必须安装jdk1.8以上版本) 一、安装elasticsearch 1、下载elasticsearch7镜像&#xff1a;docker pull elasticsearch:7.7.1 2、创建挂载目录&#xff1a;mkdir -p /data/elk/es/{config,data,logs} 3、赋予权限&#xff1a;chown -R 1000:100…...

决策树算法

决策树算法是一种用于分类和回归问题的机器学习算法。它通过构建树形结构来进行决策&#xff0c;每个内部节点代表一个特征或属性&#xff0c;每个叶子节点代表一个类别或值。 下面是决策树算法的一般步骤&#xff1a; 数据准备&#xff1a;收集相关的训练数据&#xff0c;并对…...

maven之pom文件详解

一、maven官网 maven官网 maven官网pom文件详解链接 二、maven之pom 1、maven项目的目录结构 pom文件定于了一个maven项目的maven配置&#xff0c;一般pom文件的放在项目或者模块的根目录下。 maven的遵循约定大于配置&#xff0c;约定了如下的目录结构&#xff1a; 目录目…...

深度学习之基于Python+OpenCV+dlib的考生信息人脸识别系统(GUI界面)

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在人脸识别领域的应用已经取得了显著的进展。Python是一种常用的编程语言&#xff0c;它提供了许多强大的库…...

创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解

一、Servlet和jsp 0.创建web项目(无maven)&#xff1a; 1.创建一个普通的java项目 2.项目根目录右键&#xff0c;添加模板 3.配置tomcat服务器 4.配置项目tomcat依赖 1.Servlet(Server Applet)服务端小程序 用户通过浏览器发送一个请求&#xff0c;服务器tomcat接收到后&…...

BIOS开发笔记 - HDA Audio

在PC中,音频输出是一个重要的功能之一,目前大多数采用的是英特尔高清晰音效(英语:Intel High Definition Audio,简称为HD Audio或IHD)方案,它是由Intel于2004年所提出的音效技术,能够展现高清晰度的音质效果,且能进行多声道的播放,在音质(音效质量)上超越过去的其他…...