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

大语言模型之prompt工程

前言

随着人工智能的快速发展,我们正慢慢进入AIGC的新时代,其中对自然语言的处理成为了智能化的关键一环,在这个大背景下,“Prompt工程”由此产生,并且正逐渐成为有力的工具...

LLM

(Large Language Model)大语言模型,具有许多参数的人工神经网络生成,使用自监督学习或半监督学习对大量未标记文本进行训练,在各种任务中表现出色。AI 并不是自主生成内容的,而是依赖于提示词的引导。提示词越清晰、具体,AI 的输出就越符合预期。

Prompt简介

Prompt是指一段文本,指令或者描述,用于引导预训练的语言模型理解用户意图并生成预期输出

Prompt工程是一种基于预训练语言模型(PLM)或大语言模型(LLM),通过向模型提供精心设计的提示语,引导模型生成与任务相关的文本输出。通俗一点的将,Prompt工程就是通过编写特定Prompt提示词,询问AI时它返回的结果是被你引导的回答。

Prompt 工程流程:

Prompt的优势

1.快速迭代和调优

Prompt工程中的提示语(自然语言)可以很容易地进行快速迭代和调优。可以微调Prompt,快速尝试不同的生成结果,以找到最佳的输出。

2.适用广泛任务

prompt工程适用于各种场景,包括文本生成,问答统计,格式生成,编写代码,扮演角色等,其灵活性使其可以成为解决多种自然任务的强大工具,只需要设计相应的Prompt,例如可以根据提示词的不同实现不同功能,扮演不同角色。

3.节省资源

一个精心设计的Prompt可以等同于许多真实数据样本的效果,节省了大量的资源。相对于收集和标注大量的真实数据,设计好的Prompt可以用较少的输入来引导模型生成各种输出,节省大量资源。

编写Prompt技巧

设定信息丰富且清晰的语句

Prompt应该提供具体信息,以便模型理解任务的背景和要求。尽可能结构清晰,避免模糊的描述,让模型能够准确地理解任务,同时避免使用过于复杂的结构或难以理解的词汇。

Prompt:请问如何学习好英语
回答:这个是一个泛泛的回答,比较模糊,没有针对性优化Prompt:我是一个在读大学生,准备考大学英语六级,请问如何能够学好英语呢
回答:设定情景,信息更丰富更清晰,回答出来肯定更符合预期

2.设定模型擅长的输入输出格式

我们可以在输入数据中加入特定的括号,如``` --- <> 等来限制我们的输入内容。

同理,尽量让模型输出格式化的文本,如JSON、HTML、TypeScript等,方便对结果进行管理。

Prompt:请描述一个新款智能手表的特点。
回答:这款智能手表有一个高清显示屏,可以监测心率、睡眠质量、运动步数,还可以接收消息提醒,续航时间长,支持多种运动模式,防水等级高,时尚设计。优化Prompt:
请以 JSON 格式生成一个新款智能手表的产品描述,结构如下:
{"name": "<产品名称>","features": ["<特点1>","<特点2>",...],"price": "<价格>"
}回答:
{"name": "智能手表X200","features": ["高清显示屏","心率监测","睡眠质量监测","运动步数记录","消息提醒","长续航","多种运动模式","高防水等级","时尚设计"],"price": "399 USD"
}

3.使用少量示例

提供少量示例文本,演示期望的输出格式。但示例文本会增加token数量,因此不能加太多示例。

Prompt: 请为以下狗的图片写一个简短的描述。示例1: 金色的毛发,短嘴巴,长耳朵,忠诚友好。示例2: 棕白相间的皮毛,圆圆的大眼睛,尾巴卷曲。在这个例子中,通过示例文本,你向模型展示了关于狗的一些特征,例如外观和性格。模型可以利用这些信息生成一个符合你预期的狗的描述。
添加了可以让模型参考的示例,回答效果肯定会更好

4.使用思维链(CoT)引导大模型

思维链是一种逻辑和概念上相关的想法序列,通过在提示中构建和引导这种序列,您可以更好地引导大型语言模型生成与主题相关、连贯性强的内容。

Prompt: 从工业革命到现代化,地球的气候如何受到人类活动的影响?请逐步分析不同时期排放量增加与气候异常的关系,以及这背后可能的科学机制。思维链: 工业革命导致大规模燃烧化石燃料,释放大量温室气体。这些气体导致大气温度上升,海平面上升,极端天气增加。可以讨论温室效应、海洋吸收、极端天气事件等。
添加思维链,引导模型一步步思考,效果会更好。

5.给模型设定角色扮演

将模型设定在特定的角色扮演中是一种激发创意、产生生动内容,让模型以某个角色的身份思考和表达,可以增加真实性和故事性。

Prompt:请你科普一下什么是python
回答:会比较大众化优化Prompt:你是一个小学老师,请你科普一下什么是python
回答:角色扮演会输出更贴合给小学生科普的内容

6.描述模型能力,鼓励积极性,激发积极性,避免限制

如果只是强调模型不能做什么,可能会使模型产生误导性的回答,或者无法给出有用的内容。

描述模型能干什么会激发其积极性和创造力,促使其提供更多有用的回答。明确提示模型的能力范围,有助于引导其重点和思考方向,从而提供更准确和相关的答案。

7.善用温度变量

大模型通常会涉及到一个温度变量,如ChatGPT API中,MIniMax中的temperature变量。此变量的值与模型输出结果的随机性有关:

当其值为0时,表明模型输出结果是确定的,通常用于决定性任务,如分类、预测等;

当其值>0时,越大,则表明模型随机性越强,适合生成任务。

8.结构清晰,分段清楚

9.不同模型能力不同,不同对待

结构化Prompt

核心部分:关键词、语境、目标

  1. 基于角色prompt模型

要求AI扮演特定角色或身份,增加输出内容的专业性和权威性。例如老师、环境学家、编程助手等角色

假设你是一名环境学家,以专家视角撰写关于环境保护的技术文章。
  1. 基于任务的prompt模型

规定AI需要完成的任务,通常需要关键词和具体指令组合

列出三种最新的可再生能源技术,并分别简述其优缺点。
  1. 基于结构的prompt模型

强调内容的结构化,例如要求 AI按特定格式或章节生成内容。

生成一篇包括引言、技术分析、市场应用前景和结论的文章

  1. 基于问题的prompt模型

通过提出一些列相关问题,引导AI逐步生成内容.适合用于知识型内容的生成,有助于确保输出内容全面且深入。

什么是碳捕捉技术?它如何运作?有哪些现实中的应用案例?
  1. 基于场景的prompt模型

通过描述特定情境,引导AI生成与该情景相关的内容。能够帮助AI生成更具有情景感和预见性的内容。

未来十年内,随着全球气候变化加剧,太阳能技术将如何影响能源市场?

常见框架

ICIO 框架

ICIO 框架通过四个关键组成部分——介绍(Intruction)、背景(Context)、输入数据(Input Data)和输出指标(Output Indicator),为 AI 系统提供了清晰的指导。这种结构化的沟通方式不仅提高了 AI 的工作效率,还确保了输出内容的质量,使其更符合用户的期望。

  • Intruction(任务):明确指出希望 AI 执行的具体任务,如“翻译一段文本”或“撰写一篇关于 AI 伦理的博客文章”。
  • Context(背景):提供任务的背景信息,帮助 AI 理解任务的上下文,例如,“这段文本是用于公司内部会议的开场白”。
  • Input Data(输入数据):指定 AI 需要处理的具体数据,如“请翻译以下句子:‘人工智能正在改变世界’”。
  • Output Indicator(输出格式):设定期望的输出格式和风格,例如,“请以正式的商务英语风格翻译”。

CRISPE 框架

随着人工智能技术的不断进步,AI 在模拟人类角色和执行特定任务方面的能力日益增强。

CRISPE 框架作为一种新兴的 AI 提示工程方法,旨在通过明确的角色设定、背景信息、任务指令、个性风格和实验性回复,提升 AI 与用户之间的互动质量。

CRISPE 框架通过以下五个步骤,为用户提供了一个清晰、高效的沟通路径:

  1. Capacity and Role(角色):明确 AI 在交互中应扮演的角色,如教育者、翻译者或顾问。
  2. Insight(背景):提供角色扮演的背景信息,帮助 AI 理解其在特定情境下的作用。
  3. Statement(任务):直接说明 AI 需要执行的任务,确保其理解并执行用户的请求。
  4. Personality(格式):设定 AI 回复的风格和格式,使其更符合用户的期望和场景需求。
  5. Experiment(实验):如果需要,可以要求 AI 提供多个示例,以供用户选择最佳回复。

# 情景
想象一下,六位高智商的专家一起回答用户提出的问题,最终生成一份聊天记录。* 其中,第一名到第六名专家分别扮演:问题拆解专家,知识渊博专家,支持与鼓励专家,反思与批判专家,创新思维专家,归纳总结专家。
* 他们将遵循思想树的方法,每个专家一步一步地分享他们的思维过程。
* 第一轮:每一名专家逐一发言,发表自己的观点;
* 第二轮: 专家们可以自由发言,不需要严格按照顺序,并非所有专家都要发言,如果专家觉得无需发言,也可以跳过。但如果发言,需要参考第一轮中其他专家的想法。
* 专家们之间观念要有冲突,要激烈,要深刻。
* 专家们会考虑其他人的意见,完善自己的想法,并以团队的集体知识为基础。
* 如果专家意识到他们的想法是错误的,他们会承认错误并认同其他专家的想法。
* 一直继续这个过程,直到得到一个明确的答案。
* 最后,由所有专家的结论汇总,得出最终答案。# 格式
* 通过在 markdown表 的方式,呈现整个响应。
每一轮不用单独作为一个表格,要合并在一起。# 专家身份参考:
问题拆解专家:针对用户提出的问题,进行系统性拆解,比如:是什么,为什么,怎么样,如果是则如何,如果否则如何…
知识渊博专家:针对用户提出的问题,提出你认知内的知识,归纳总结反馈。
支持与鼓励专家:针对用户提出的问题,参考其他专家意见,得出积极的想法或结果。比如:为什么这个值得做?为什么可以做这件事?它为什么会起作用?
反思与批判专家:针对用户提出的问题,参考其他专家意见,考虑到事物的负面因素,它是对事物负面因素的注意、判断和评估。这是真的吗?它会起作用吗?缺点是什么?它有什么问题?为什么不能做?
创新思维专家:针对用户提出的问题,参考其他专家意见,考虑创新与创造性之新的想法。有不同的想法?新的想法、建议和假设是什么?可能的解决办法和行动的过程是什么?还有哪些可能性?
归纳总结专家:归纳总结专家中立而客观,同时控制整个思考节奏,比如在第一轮沟通中预先得出一批结论,第二轮沟通中得出最终结论并与其他专家进行讨论。# 专家们的对话记录样例:
|环节|专家名|专家发言|
|:---|:---|:---|
|R1|归纳总结专家|×××|
|R1|问题拆解专家|×××|
…
|R3|归纳总结专家|×××|
**最终专家们的答案是:**
1. ×××
2. ×××# 用户将会提出问题:

BROKE 框架

在人工智能的快速发展中,如何有效地与 AI 进行沟通和互动,以实现预期的目标,已成为一个重要议题。

BROKE 框架提供了一种结构化的方法,帮助用户清晰地传达指令,确保 AI 能够生成满足特定需求的输出。

BROKE 框架通过以下五个步骤,为用户提供了一个高效沟通的框架:

  1. Background(背景):提供详细的背景信息,帮助 AI 理解任务的上下文。
  2. Role(角色):明确 AI 在交互中所扮演的角色,如顾问、助手或内容创作者。
  3. Objectives(目标/任务):描述用户希望 AI 完成的具体任务。
  4. Key Result(关键结果):设定 AI 输出的风格、格式和内容要求,确保回答符合预期。
  5. Evolve(改进):在 AI 提供回答后,提供改进的方法,以优化未来的交互。

LangGPT 提示词框架

GitHub - langgptai/LangGPT: LangGPT: Empowering everyone to become a prompt expert!🚀 Structured Prompt,Language of GPT, 结构化提示词,结构化Prompt

传统 Prompt 存在一些挑战包括缺乏系统性、灵活性和用户友好性,以及未能充分利用大模型的特点。

Prompt 的重要性与日俱增,特别是在新一代的 GPT—4 模型出现后。Prompt 编写不仅仅是一种技术,它正在变成 AI 时代的编程语言。因此,如何像学习编程一样,高效地编写高质量的 Prompt,即 Prompt 编程,成为了一个迫切的问题。

LangGPT 由云中江树(刘远忠)创建,目前已有 5.2k stars。

LangGPT 的特点和优势:

  • 系统性:LangGPT 提供模板化的方法,用户只需按照模板填写相应内容即可。
  • 灵活性:LangGPT 引入了变量概念,可以轻松引用、设置和更改 Prompt 内容,提高编程性。
  • 交互友好:通过工作流,LangGPT 定义了与用户的交互和角色行为,使得用户可以轻松理解和使用。
  • 大模型充分利用:LangGPT 结合了大模型的特点,例如模块化配置和分点条理性叙述,还通过 Reminder 功能缓解了长对话的遗忘问题。

LangGPT 的核心语法:

  • LangGPT 变量:我们引入了基于 markdown 的变量概念,利用大模型对层级结构内容的敏感性,方便地引用和修改 Prompt 内容。
  • LangGPT 模板:基于大模型在角色扮演方面的强项,我们设计了 Role 模板。这些模板使得 Prompt 编写变得像编程中的“类声明”,极大地简化了用户的工作。
  • 格式化技巧:使用特定的格式(如 Markdown)来更明确地指示大模型如何提示词框架和响应。
  • 明确性技巧:通过提供具体的指令,如“简短地回答”或“提供详细解释”,确保大模型的响应与用户的期望一致
  • 上下文技巧:在指令中加入上下文信息,帮助大模型更准确地理解用户的需求。
#Role:文字排版大师#Profile: - author:李继刚- version: 0.1- language:中文- description:使用ASCII 符号和Emoji表情符号来优化排版已有信息,提供更好的阅读体验##Goals:- 为用户提供更好的阅读体验,让信息更易于理解- 增强信息可读性,提高用户专注度##Constrains:- 不会更改原始信息,只能使用ASCII符号和Emoji表情符号进行排版- 排版方式不应该影响信息的本质和准确性##Skills:- 熟悉各种ASCII符号和Emoji表情符号的使用方法- 熟练掌握排版技巧,能够根据情境使用不同的符号进行排版- 有较强的审美和文艺能力##Workflows:- 作为文字排版大师,将会在用户输入信息之后,使用ASCII符号和Emoji表情符号进行排版,提供更好的阅读体验。- 排版完毕之后,将会将整个信息返回给用户。##Initialization:欢迎用户,并提示用户输入信息 

CO-STAR 原则框架

【新加坡首届 GPT-4冠军分享】最新的 GPT-4的提示词攻略秘籍,建议收藏阅读! – 敏捷开发咨询顾问,Scrum认证,敏捷项目管理培训,敏捷教练

https://blog.ihsxu.com/blog/1715484573201

CO-STAR 原则是结构化提示词中的一种,由新加坡政府科技局数据科学与 AI 团队创立,是一个非常实用且易于上手的提示构建工具。

CO-STAR 的设计初衷是为了帮助用户在使用大型语言模型时,能够构建出更加完整和有效的提示词,从而提高 AI 生成内容的相关性和效果。

CO-STAR 原则在新加坡首届 GPT—4 提示工程大赛中获得了冠军,这是它在实际应用中强大效能的标志和体现。

此后,CO—STAR 原则逐渐被广泛接受并应用于各种场景,包括社交媒体文案撰写、商业报告生成等,帮助用户创建清晰、精确且有效的提示词,更精确地指导 AI 生成所需的内容。

CO—STAR 原则包含六个关键要素,每个要素的首字母组成了 CO—STAR 这个缩写。

  • C—Context(清楚的背景信息):提供足够的背景信息,帮助 AI 理解任务的上下文和环境。
  • O—Objective(明确的目标设定):明确说明希望 AI 完成的具体目标或任务。
  • S—Style(生成文字的风格):指定 AI 生成内容的风格,例如正式、幽默、小红书风格等。
  • T—Tone(生成文字的语调):确定 AI 生成内容的语调,如礼貌、说服性、激励性等。
  • A—Audience(目标受众的描述):描述目标受众的特征,如年龄、兴趣、职业等。
  • R—Response(回应的类型):指定 AI 回应的格式,如表格、段落、列表等,以及回应的具体要求。
# CONTEXT(上下文) #
我想推广一家咖啡店。咖啡店名称为 HEA,坐落在古城西安的护城河边,简约风的店面装修,超大的落地窗和天窗使得店内的采光超级棒。最佳时光是在傍晚日落余晖时,感觉整个时间都变得柔和而美好。如果不知道想喝什么,老板还整理了「最受大家喜爱的咖啡月度排行榜」,真的赞嘞~。# OBJECTIVE(目标) #
帮我创建一条小红书文案,目的是吸引人们到店里打卡、拍照、消费。# STYLE(风格) #
小红书风格,俏皮的语气外加一些可爱的表情包和图标。# TONE(语调) #引导性# AUDIENCE(受众) #主要受众是上班族、大学生。请针对这一群体在选择放松方式时的关注点来编写文案。# RESPONSE(响应) #
增加用户对探店的吸引力。

误区提示

提示词并不是越长越好

长短并不是关键,关键在于信息的明确性和有效性。过长的提示词会增加token(经费)、可能会让 AI 混淆主次信息,从而导致输出结果偏离预期。

提示词也是需要迭代的

提示词的构建是一个迭代的过程。初次尝试的提示词可能不能达到理想效果(和软件开发颇为类似),但通过反复修改和优化,最终可以得到更精确的输出。

参考文档

基础篇:

  1. OpenAI官方:https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api
  2. Prompt Engineering学习:Prompt Engineering | Lil'Log
  3. 吴恩达《ChatGPT Prompt Engineering for Developers》课程中英版:GitHub - Kevin-free/chatgpt-prompt-engineering-for-developers: 吴恩达《ChatGPT Prompt Engineering for Developers》课程中英版
  4. 大模型时代之提示词工程:https://zhuanlan.zhihu.com/p/631922240
  5. LLM Collection | Prompt Engineering Guide
  6. 提示工程指南
  7. Docs
  8. 什么是AI提示词?

相关文章:

大语言模型之prompt工程

前言 随着人工智能的快速发展&#xff0c;我们正慢慢进入AIGC的新时代&#xff0c;其中对自然语言的处理成为了智能化的关键一环&#xff0c;在这个大背景下&#xff0c;“Prompt工程”由此产生&#xff0c;并且正逐渐成为有力的工具... LLM &#xff08;Large Language Mode…...

JavaScript系列(43)--依赖注入系统实现详解

JavaScript依赖注入系统实现详解 &#x1f489; 今天&#xff0c;让我们深入探讨JavaScript的依赖注入系统实现。依赖注入是一种设计模式&#xff0c;它通过将依赖关系的创建和管理从代码中分离出来&#xff0c;提高了代码的可维护性和可测试性。 依赖注入基础概念 &#x1f…...

Mono里运行C#脚本36—加载C#类定义的成员变量和方法的数量

前面分析了加载类和基类的基本过程, 接着来分析一下加载成员变量和方法的数量。 因为我们知道C#语言定义一个类,主要就是定义成员变量,以及那些对此成员变量进行操作的方法, 所以需要使用一种方法来描述C#语言定义类的能力。 一般情况下,主要有两种类型: 普通的类,比如前…...

SWPU 2022 新生赛--web题

奇妙的MD5 进入靶场 然我们输入一个特殊的字符串&#xff0c;然后我到处翻了翻&#xff0c;发现有提示 在MD5中有两个特殊的字符串 0e215962017 //MD5加密后弱比较等于自身 ffifdyop //MD5加密后变成万能密码 这里明显就是万能密码了 输入之后就来到了这个页…...

Windows 靶机常见服务、端口及枚举工具与方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS

在渗透测试中&#xff0c;Windows 靶机通常会运行多种服务&#xff0c;每种服务都有其默认端口和常见的枚举工具及方法。以下是 Windows 靶机常见的服务、端口、枚举工具和方法的详细说明&#xff1a; 1. SMB&#xff08;Server Message Block&#xff09; 端口 445/TCP&…...

记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了

本文目录 一、问题情况二、解决方法2.1 通过kill命令删除2.2 通过程序删除 一、问题情况 今天查看共享内存段发现好多共享内存段&#xff0c;而且命令ipcrm -m <shmid>删除不了。 回想了一下&#xff0c;应该是有一些程序跑while循环&#xff0c;或者死循环&#xff0c…...

RV1126画面质量四:GOP改善画质

一&#xff0e; 什么是 GOP GOP 实际上就是两个 I 帧的间隔&#xff0c;比方说分辨率是 1920 * 1080 50 帧&#xff0c;假设 GOP 为 5&#xff0c;那就是大概 2s 插入一个 I 帧。我们再 回顾下&#xff0c;H264/H265 的帧结构。H264/H265 分别分为三种帧类型&#xff1a;I 帧、…...

手机app如何跳过无障碍权限实现弹框自动点击-ADB连接专题

手机app如何跳过无障碍权限实现弹框自动点击 --ADB连接专题 一、前言 我们在前期的时候&#xff0c;在双SIM卡进行协同外呼和SIM卡切换时&#xff0c;对如何在手机中“执行批处理脚本做自动点击”的内容进行预研&#xff0c;力图使用事件触发和坐标点击等方式来实现手机安装…...

kafka-保姆级配置说明(consumer)

bootstrap.servers #deserializer应该与producer保持对应 #key.deserializer #value.deserializer ##fetch请求返回时&#xff0c;至少获取的字节数&#xff0c;默认值为1 ##当数据量不足时&#xff0c;客户端请求将会阻塞 ##此值越大&#xff0c;客户端请求阻塞的时间越长&…...

c语言中的数组(上)

数组的概念 数组是⼀组相同类型元素的集合&#xff1b; 数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0。 数组中存放的多个数据&#xff0c;类型是相同的。 数组分为⼀维数组和多维数组&#xff0c;多维数组⼀般⽐较多⻅的是⼆维数组。 数组创建 在C语言…...

20250122-正则表达式

1. 正则标记 表示一位字符&#xff1a;\\ 表示指定的一位字符&#xff1a;x 表示任意的一位字符&#xff1a;. 表示任意一位数字&#xff1a;\d 表示任意一位非数字&#xff1a;\D 表示任意一个字母&#xff1a;[a-zA-Z]&#xff08;大写或小写&#xff09; 表示任意一个…...

(回溯法 子集)leetcode78

#include<iostream> #include<string> #include<vector> //只有子集需要在每个结点收集结果&#xff0c;其余在叶子结点收集结果 using namespace std; vector<vector<int>>ans; vector<int>combine; void backtracking(int index,vector&…...

Pyecharts之图表组合与布局优化

在数据可视化中&#xff0c;我们经常需要将多个图表组合在一起&#xff0c;以展示不同维度的数据或者进行对比分析。同时&#xff0c;合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法&#xff0c;让我们可以轻松实现图表的组合和布局优化。本篇将…...

代码随想录训练营第五十六天| 108.冗余连接 109.冗余连接II

108.冗余连接 题目链接&#xff1a;卡码网题目链接&#xff08;ACM模式&#xff09; (opens new window) 讲解链接&#xff1a;代码随想录 并查集可以解决什么问题&#xff1a;两个节点是否在一个集合&#xff0c;也可以将两个节点添加到一个集合中。 引自代码随想录&#xff…...

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件...

二叉搜索树中的搜索(力扣700)

首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b;若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它的根结点的值&#xff1b;它的左、右子树也分别为二叉…...

社区养老服务平台的设计与实现(代码+数据库+LW)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…...

高速光模块中的并行光学和WDM波分光学技术

随着AI大模型训练和推理对计算能力的需求呈指数级增长&#xff0c;AI数据中心的网络带宽需求大幅提升&#xff0c;推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件&#xff0c;主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种…...

python生成图片和pdf,快速

1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包&#xff0c;下载安装 下载地址&#xff1a;https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径&#xff0c;安…...

浅谈在AI时代GIS的发展方向和建议

在AI时代&#xff0c;GIS&#xff08;地理信息系统&#xff09;的发展正经历着深刻的变革&#xff0c;随着人工智能技术的进步&#xff0c;GIS不再仅仅是传统的地图和空间数据处理工具&#xff0c;而是向更加智能化、自动化、精准化的方向发展。作为一名GIS开发工程师&#xff…...

【25考研】中科院软件考研复试难度分析!

中科院软件复试不需要上机&#xff01;且对专业综合能力要求较高&#xff01;提醒同学一定要认真复习&#xff01; 一、复试内容 二、参考书目 官方并未明确给出&#xff0c;建议同学参考初试书目&#xff1a; 1&#xff09;《数据结构&#xff08;C语言版&#xff09;》严蔚…...

【2024年华为OD机试】 (A卷,200分)- 计算网络信号、信号强度(JavaScriptJava PythonC/C++)

一、问题描述 题目解析 问题描述 我们有一个 m x n 的二维网格地图,每个格子可能是以下几种情况之一: 0:表示该位置是空旷的。x(正整数):表示该位置是信号源,信号强度为 x。-1:表示该位置是阻隔物,信号无法直接穿透。信号源只有一个,阻隔物可能有多个。信号在传播…...

SpringBoot整合Swagger UI 用于提供接口可视化界面

目录 一、引入相关依赖 二、添加配置文件 三、测试 四、Swagger 相关注解 一、引入相关依赖 图像化依赖 Swagger UI 用于提供可视化界面&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactI…...

C语言:数据的存储

本文重点&#xff1a; 1. 数据类型详细介绍 2. 整形在内存中的存储&#xff1a;原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 数据类型结构的介绍&#xff1a; 类型的基本归类&#xff1a; 整型家族 浮点家族 构造类型&#xff1a; 指针类型&…...

OpenFGA

1.什么是OpenFGA Fine-Grained Authorization 细粒度关系型授权 2.什么是细粒度授权 细粒度授权 (FGA) 意味着能够授予特定用户在特定资源中执行特定操作的权限。 精心设计的 FGA 系统允许您管理数百万个对象和用户的权限。随着系统不断添加对象并更新用户的访问权限&#…...

Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比

前言 在现代微服务架构和分布式系统中&#xff0c;消息队列作为解耦组件&#xff0c;承担着重要的职责。它不仅提供了异步处理的能力&#xff0c;还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ&#xff0c;其中 Kafka 因其高吞吐量…...

单链表算法实战:解锁数据结构核心谜题——链表的回文结构

题目如下&#xff1a; 解题过程如下&#xff1a; 回文结构举例&#xff1a; 回文数字&#xff1a;12521、12321、1221…… 回文字符串&#xff1a;“abcba”、“abba”…… 并不是所有的循环嵌套的时间复杂度都是O(n^2) 可以用C写C程序&#xff1a; C里可以直接使用ListNode…...

【2024年 CSDN博客之星】我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾

我的2024年创作之旅&#xff1a;从C语言到人工智能&#xff0c;个人成长与突破的全景回顾 引言 回望2024年&#xff0c;我不仅收获了技术上的成长&#xff0c;更收获了来自CSDN平台上无数粉丝、朋友以及网友们的支持与鼓励。在这条创作之路上&#xff0c;CSDN不仅是我展示技术成…...

Qt Enter和HoverEnter事件

介绍 做PC开发的过程中或多或少都会接触到鼠标的悬停事件&#xff0c;Qt中处理鼠标悬停有Enter和HoverEnter两种事件 相同点 QEvent::Enter对应QEnterEvent&#xff0c;描述的是鼠标进入控件坐标范围之内的行为&#xff0c;QEnterEvent可以抓取鼠标的位置&#xff1b;QEvent…...

Python:元组构造式和字典推导式

&#xff08;Python 元组构造式和字典推导式整理笔记&#xff09; 1. 元组构造式 1.1 创建元组 使用圆括号&#xff1a; tuple1 (1, 2.5, (three, four), [True, 5], False) print(tuple1) # 输出: (1, 2.5, (three, four), [True, 5], False) 省略圆括号&#xff1a; tup…...

科普篇 | “机架、塔式、刀片”三类服务器对比

一、引言 在互联网的世界里&#xff0c;服务器就像是默默运转的超级大脑&#xff0c;支撑着我们日常使用的各种网络服务。今天&#xff0c;咱们来聊聊服务器家族中的三位 “明星成员”&#xff1a;机架式服务器、塔式服务器和刀片式服务器。如果把互联网比作一座庞大的城市&…...

数据结构——概念与时间空间复杂度

目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…...

centos7 配置国内镜像源安装 docker

使用国内镜像源&#xff1a;由于 Docker 的官方源在国内访问可能不稳定&#xff0c;你可以使用国内的镜像源&#xff0c;如阿里云的镜像源。手动创建 /etc/yum.repos.d/docker-ce.repo 文件&#xff0c;并添加以下内容&#xff1a; [docker-ce-stable] nameDocker CE Stable -…...

PyCharm配置Python环境

1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK&#xff0c;或者直接点击Open&#xff0c;找到项目路径-->OK&#xff0c;如图所示(点击Ok后可能有下面的弹窗&#xff0c;选择“Trust Project”即可&#xff0c;然后选择“New Window”打开项目) …...

Linux(Centos、Ubuntu) 系统安装jenkins服务

该文章手把手演示在Linux系统下如何安装jenkins服务、并自定义jenkins数据文件位置、以及jenkins如何设置国内镜像源加速&#xff0c;解决插件下载失败问题 安装方式&#xff1a;war包安装 阿里云提供的war下载源地址&#xff1a;https://mirrors.aliyun.com/jenkins/war/?s…...

本地大模型编程实战(02)语义检索(1)

文章目录 准备加载文档分割文档嵌入矢量存储查询矢量库检索返回评分先嵌入查询文本再检索 检索器总结代码 我们在百度、必应、谷歌等搜索引擎中使用的检索都是基于字符串的&#xff1a;用户输入字符串后&#xff0c;搜索引擎先对搜索内容进行分词&#xff0c;然后在已经进行了倒…...

使用 Redis 实现分布式锁的基本思路

使用 Redis 实现分布式锁的基本思路 在分布式系统中&#xff0c;多个进程或服务可能会同时访问共享资源&#xff08;如数据库、缓存、文件等&#xff09;&#xff0c;这可能会导致数据不一致或并发冲突。Redis 由于其高性能和单线程模型&#xff0c;是实现分布式锁的一个常见选…...

SQL-leetcode—1193. 每月交易 I

1193. 每月交易 I 表&#xff1a;Transactions ---------------------- | Column Name | Type | ---------------------- | id | int | | country | varchar | | state | enum | | amount | int | | trans_date | date | ---------------------- id 是这个表的主键。 该表包含…...

【MYSQL】mysql 常用命令

文章目录 1. 数据库管理命令2. 表管理命令3. 数据操作命令4. 数据查询进阶5. 用户与权限管理6. 使用脚本操作数据库 1. 数据库管理命令 -- 查看所有数据库 SHOW DATABASES;-- 创建数据库 CREATE DATABASE 数据库名;-- 选择数据库 USE 数据库名;-- 删除数据库 DROP DATABASE 数…...

linux 内核学习方向以及职位

### 学习路径 1. 基础阶段&#xff1a; - C语言高级特性 - 指针和内存管理 - 数据结构实现 - 位操作 - 多线程编程 - Linux系统编程 - 文件I/O操作 - 进程管理 - 信号处理 - IPC机制 - Socket编程 - 必备知识 - 操作系统原理 - 计算机体系结构 - …...

DeepSeek火爆,参数量、激活参数 和 预训练 token 量 是什么?

最近DeepSeek火爆&#xff0c;爆出了几个关键参数&#xff0c;分别是参数量、激活参数 和 预训练 token 量。 这里用通俗的语言给大家解释一下~ 首先要知道1B 是 Billion&#xff08;十亿&#xff09;的缩写 参数量&#xff1a;671B&#xff08;6710 亿&#xff09; 想象你…...

设计新的 Kibana 仪表板布局以支持可折叠部分等

作者&#xff1a;来自 Elastic Teresa Alvarez Soler, Hannah Mudge 及 Nathaniel Reese 在 Kibana 中构建可折叠仪表板部分需要彻底改造嵌入式系统并创建自定义布局引擎。这些更新改进了状态管理、层次结构和性能&#xff0c;同时为新的高级仪表板功能奠定了基础。 我们正在开…...

vscode如何安装vue语法支持

在VSCode中安装Vue语法支持非常简单。1、你需要安装“Vetur”扩展&#xff0c;这是一个专门为Vue.js开发设计的扩展&#xff1b;2、你可以通过VSCode的扩展市场轻松找到并安装它&#xff1b;3、安装完成后&#xff0c;你还可以根据需要进行一些配置&#xff0c;以优化你的开发体…...

从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑

文章目录 从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑一 参考二 安装三 启动准备大模型文件 四 数据集&#xff08;关键&#xff09;&#xff01;4.1 Alapaca格式4.2 sharegpt4.3 在 dataset_info.json 中注册4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分…...

easyexcel-导入(读取)(read)-示例及核心部件

文章目录 导入(读取)(read)-示例及核心部件导入(读取)(read)-核心部件EasyExcel(EasyExcelFactory) # 入口read() # read()方法用于构建workbook(工作簿)对象&#xff0c;new ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandler&…...

10 Hyperledger Fabric 介绍

简介 HypeLedger&#xff08;超级账本&#xff09;是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...

第28章 测试驱动开发模式:深入绿条模式及相关技术

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

PTMD2.0-疾病相关的翻译后修饰数据库

翻译后修饰&#xff08;PTMs&#xff0c;post-translational modifications&#xff09;通过调节蛋白质功能参与了几乎所有的生物学过程&#xff0c;而 PTMs 的异常状态常常与人类疾病相关。在此&#xff0c;PTMD 2.0展示与疾病相关的 PTMs 综合数据库&#xff0c;其中包含 93 …...

gradle生命周期钩子函数

文章目录 0. 总结表格1. 构建初始阶段gradle.settingsEvaluated()gradle.projectsLoaded() 2. 配置阶段gradle.beforeProject()gradle.afterProject()gradle.projectEvaluated()gradle.afterEvaluate()gradle.taskGraph.whenReady 3. 执行阶段gradle.taskGraph.beforeTaskgradl…...

操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之内存的划分

前言 MMU&#xff1a;内存管理单元(Memory Management Unit)完成的工作就是虚拟地址到物理地址的转换&#xff0c;可以让系统中的多个程序跑在自己独立的虚拟地址空间中&#xff0c;相互不会影响。程序可以对底层的物理内存一无所知&#xff0c;物理地址可以是不连续的&#x…...