《Prompt Engineering Guide》 提示工程 <一、 简介>

《Gemini for Google Workspace Prompting Guide 101》内容学习 写有效提示词需围绕“4大要素”和“6个快速技巧”,是后续所有场景的基础。每个场景均包含“任务目标+提示词要点+操作流程”,可直接参考复用。核心需求:品牌建设、市场调研、内容创作、 campaign 规划。核心需求:统筹事务(会议、差旅、文件管理),提升团队效率。核心需求:高效响应客户、标准化沟通、分析反馈。核心需求:客户关系维护、RFP处理、团队支持。核心需求:节省时间、高效决策、战略沟通。 阅读详情

原项目为:https://github.com/dair-ai/Prompt-Engineering-Guide

本文为个人学习翻译 记,结合工作遇到问题进行总结

指南

提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。

一、简介

1、大语言模型设置

        使用api的时候,配置参数获得不同的提示结果,调整这些设置对于提高响应的可靠性非常重要。

Temperature:简单来说,temperature 的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。(调小temperature)实质上,你是在增加其他可能的 token 的权重。在实际应用方面,对于质量保障(QA)等任务,我们可以设置更低的 temperature 值,以促使模型基于事实返回更真实和简洁的结果。 对于诗歌生成或其他创造性任务,适度地调高 temperature 参数值可能会更好。

譬如,可以用高温生成故事线,使用低温调整输出的结构

Top_p:同样,使用 top_p(与 temperature 一起称为核采样(nucleus sampling)的技术),可以用来控制模型返回结果的确定性。如果你需要准确和事实的答案,就把参数值调低。如果你在寻找更多样化的响应,可以将其值调高点。

使用Top P意味着只有词元集合(tokens)中包含top_p概率质量的才会被考虑用于响应,因此较低的top_p值会选择最有信心的响应。这意味着较高的top_p值将使模型考虑更多可能的词语,包括不太可能的词语,从而导致更多样化的输出。

一般建议是改变 Temperature 和 Top P 其中一个参数就行,不用两个都调整。

使用较少,如果希望做分类任务可以考虑使用这个

Max Length:您可以通过调整 max length 来控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。

容易被忽略的地方,早期很容易出现截断和报错

Stop Sequences:stop sequence 是一个字符串,可以阻止模型生成 token,指定 stop sequences 是控制大模型响应长度和结构的另一种方法。例如,您可以通过添加 “11” 作为 stop sequence 来告诉模型生成不超过 10 个项的列表。

Frequency Penalty:frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中已出现的次数成比例, frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复

如果是长对话,Frequency Penalty会很有必要

Presence Penalty:presence penalty 也是对重复的 token 施加惩罚,但与 frequency penalty 不同的是,惩罚对于所有重复 token 都是相同的。出现两次的 token 和出现 10 次的 token 会受到相同的惩罚。 此设置可防止模型在响应中过于频繁地生成重复的词。 如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty。

与 temperature 和 top_p 一样,一般建议是改变 frequency penalty 和 presence penalty 其中一个参数就行,不要同时调整两个

还有一些这个指南中没有提到的,比如有点api可以提供

response_format :用于确保输出的结构,比如json,十分稳定

stream=False,  # 确保使用非流式模式

……

2、基本概念

给LLM提示

你可以通过简单的提示词(Prompts)获得大量结果,但结果的质量与你提供的信息数量和完善度有关。一个提示词可以包含你传递到模型的指令或问题等信息,也可以包含其他详细信息,如上下文、输入或示例等。你可以通过这些元素来更好地指导模型,并因此获得更好的结果

看下面一个简单的示例:

提示词:

The sky is

输出

blue.

如果你正在使用OpenAI Playground或其他任何LLM Playground,你可以按照以下屏幕截图中的方式提示模型:

需要注意的是,当使用 OpenAI 的 gpt-4 或者 gpt-3.5-turbo 等聊天模型时,你可以使用三个不同的角色来构建 prompt: system、user 和 assistant。其中 system 不是必需的,但有助于设定 assistant 的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。上面的示例仅包含一条 user 消息,你可以使用 user 消息直接作为 prompt。为简单起见,本指南所有示例(除非明确提及)将仅使用 user 消息来作为 gpt-3.5-turbo 模型的 prompt。上面示例中 assistant 的消息是模型的响应。你还可以定义 assistant 消息来传递模型所需行为的示例。你可以在此处了解有关使用聊天模型的更多信息。

从上面的提示示例中可以看出,语言模型能够基于我们给出的上下文内容 "The sky is" 完成续写。输出可能是出乎意料的,或者与你想要完成的任务相去甚远。实际上,这个基本示例突出了提供更多上下文或明确指示你想要实现什么的必要性。这正是提示工程的核心所在。

让我们试着改进一下:

提示词:

Complete the sentence: 
The sky is

输出:

blue during the day and dark at night.

结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出结果看起来要好得多,因为它完全按照你告诉它要做的(“完善句子”)去做。在本指南中,这种设计有效的提示词以指导模型执行期望任务的方法被称为提示工程。

以上示例基本说明了现阶段的大语言模型能够发挥的功能作用。它们可以用于执行各种高级任务,如文本概括、数学推理、代码生成等。

当将LLM放入到项目中的时候,需要对上下文进行尽可能完善的描述,我总结下来可以概括为:信息有什么,需求是什么,要求是什么 ,输出要什么

提示词格式

前文中我们还是采取的比较简单的提示词。 标准提示词应该遵循以下格式:

<问题>?
或
<指令>

你可以将其格式化为问答(QA)格式,这在许多问答数据集中是标准格式,如下所示

Q: <问题>?
A: 

当像上面那样提示时,这也被称为零样本提示,即你直接提示模型给出一个回答,而没有提供任何关于你希望它完成的任务的示例或示范。一些大型语言模型具备进行零样本提示的能力,但这取决于手头任务的复杂性和知识,以及模型被训练以在其上表现良好的任务。

具体的零样本提示示例如下:

提示:

Q: What is prompt engineering?

对于一些较新的模型,你可以省略“Q:”部分,因为模型会根据序列(译注:输入的提示词)的构成将其理解为问答任务。换句话说,提示可以简化如下:

提示词

What is prompt engineering?

基于以上标准格式(format),一种流行且有效的提示技术被称为少样本提示,其中你提供示例(即示范)。你可以按照以下格式组织少样本提示:

<问题>?
<答案>

<问题>?
<答案>

<问题>?
<答案>

<问题>?
 或者
Q: <问题>?
A: <答案>

Q: <问题>?
A: <答案>

Q: <问题>?
A: <答案>

Q: <问题>?
A:

请记住,使用问答格式并非必须。提示格式取决于手头的任务。例如,你可以执行一个简单的分类任务,并给出如下所示的示例来给任务示范:

提示词:

This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! // Positive
What a horrible show! //

输出:

Negative

语言模型可以基于一些说明了解和学习某些任务,而小样本提示正好可以赋能上下文学习能力。我们将在接下来的章节中更广泛的讨论如何使用零样本提示和小样本提示。

随着现在技术的成熟,我更推荐使用自然语言进行表述

3、提示词要素

如果您接触过大量提示工程相关的示例和应用,您会注意到提示词是由一些要素组成的。

提示词可以包含以下任意要素:

指令:想要模型执行的特定任务或指令。

上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。

输入数据:用户输入的内容或问题。

输出指示:指定输出的类型或格式。

为了更好地演示提示词要素,下面是一个简单的提示,旨在完成文本分类任务:

提示词

请将文本分为中性、否定或肯定
文本:我觉得食物还可以。
情绪:

在上面的提示示例中,指令是“将文本分类为中性、否定或肯定”。输入数据是“我认为食物还可以”部分,使用的输出指示是“情绪:”。请注意,此基本示例不使用上下文,但也可以作为提示的一部分提供。例如,此文本分类提示的上下文可以是作为提示的一部分提供的其他示例,以帮助模型更好地理解任务并引导预期的输出类型。

注意,提示词所需的格式取决于您想要语言模型完成的任务类型,并非所有以上要素都是必须的。我们会在后续的指南中提供更多更具体的示例。

4、设计提示的通用技巧

以下是设计提示时需要记住的一些技巧:

从简单开始

在开始设计提示时,你应该记住,这实际上是一个迭代过程,需要大量的实验才能获得最佳结果。使用来自OpenAI或Cohere的简单的 playground 是一个很好的起点。

你可以从简单的提示词开始,并逐渐添加更多元素和上下文(因为你想要更好的结果)。因此,在这个过程中不断迭代你的提示词是至关重要的。阅读本指南时,你会看到许多示例,其中具体性、简洁性和简明性通常会带来更好的结果。

当你有一个涉及许多不同子任务的大任务时,可以尝试将任务分解为更简单的子任务,并随着结果的改善逐步构建。这避免了在提示设计过程中一开始就添加过多的复杂性。

指令

你可以使用命令来指示模型执行各种简单任务,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。

请记住,你还需要进行大量实验以找出最有效的方法。以不同的关键词(keywords),上下文(contexts)和数据(data)试验不同的指令(instruction),看看什么样是最适合你特定用例和任务的。通常,上下文越具体和跟任务越相关则效果越好。在接下来的指南中,我们将讨论样例和添加更多上下文的重要性。

有些人建议将指令放在提示的开头。另有人则建议是使用像“###”这样的清晰分隔符来分隔指令和上下文。

例如:

提示:

### 指令 ###
将以下文本翻译成西班牙语:

文本:“hello!”

具体性

要非常具体地说明你希望模型执行的指令和任务。提示越具描述性和详细,结果越好。特别是当你对生成的结果或风格有要求时,这一点尤为重要。不存在什么特定的词元(tokens)或关键词(tokens)能确定带来更好的结果。更重要的是要有一个具有良好格式和描述性的提示词。事实上,在提示中提供示例对于获得特定格式的期望输出非常有效。

在设计提示时,还应注意提示的长度,因为提示的长度是有限制的。想一想你需要多么的具体和详细。包含太多不必要的细节不一定是好的方法。这些细节应该是相关的,并有助于完成手头的任务。这是你需要进行大量实验的事情。我们鼓励大量实验和迭代,以优化适用于你应用的提示。

例如,让我们尝试从一段文本中提取特定信息的简单提示。

提示:

提取以下文本中的地名。

所需格式:
地点:<逗号分隔的公司名称列表>

输入:“虽然这些发展对研究人员来说是令人鼓舞的,但仍有许多谜团。里斯本未知的香帕利莫德中心的神经免疫学家 Henrique Veiga-Fernandes 说:“我们经常在大脑和我们在周围看到的效果之间有一个黑匣子。”“如果我们想在治疗背景下使用它,我们实际上需要了解机制。””

避免不明确

给定上述关于详细描述和改进格式的建议,很容易陷入陷阱:想要在提示上过于聪明,从而可能创造出不明确的描述。通常来说,具体和直接会更好。这里的类比非常类似于有效沟通——越直接,信息传达得越有效。

例如,你可能有兴趣了解提示工程的概念。你可以尝试这样做:

解释提示工程的概念。保持解释简短,只有几句话,不要过于描述。

从上面的提示中不清楚要使用多少句子以及什么风格。尽管你可能仍会从上述提示中得到较好的响应,但更好的提示应当是非常具体、简洁并且切中要点的。例如:

使用 2-3 句话向高中学生解释提示工程的概念。

做什么还是不做什么?

设计提示时的另一个常见技巧是避免说不要做什么,而应该说要做什么。这样(说要做什么)更加的具体,并且聚焦于(有利于模型生成良好回复的)细节上。

以下是一个电影推荐聊天机器人的示例,因为我写的指令——关注于不要做什么,而失败了。

提示:

以下是向客户推荐电影的代理程序。不要询问兴趣。不要询问个人信息。

客户:请根据我的兴趣推荐电影。
代理:

以下是更好的提示:

以下是向客户推荐电影的代理程序。代理负责从全球热门电影中推荐电影。它应该避免询问用户的偏好并避免询问个人信息。如果代理没有电影推荐,它应该回答“抱歉,今天找不到电影推荐。”。
```顾客:请根据我的兴趣推荐一部电影。
客服:

手把手教你用Python 3.11和Node.js 18在Windows 11上搭建Dify开发环境 本文提供了一份详尽的Windows 11本地Dify开发环境搭建指南。文章手把手教你完成从Python 3.11、Node.js 18的安装配置,到PostgreSQL、Redis数据库服务的部署,再到前后端服务的启动与联调的全过程,并包含常见问题排查与效能优化建议,旨在帮助开发者构建一个稳定、可调试的Dify本地开发环境。 阅读详情

相关推荐

避坑指南:Qwen2.5-VL图片预处理中常见的5个尺寸错误

本文深入解析了Qwen2.5-VL模型在图片预处理环节中开发者最常遇到的五个尺寸错误,包括动态分辨率对齐、宽高比超标、像素数限制等问题。文章结合源码解读,详细剖析了`process_vision_info`函数和`resize`逻辑,并提供了具体的排查流程图与参数设置建议,旨在帮助开发者构建健壮的预处理流水线,有效规避显存溢出与推理失败的风险。

weixin_29290379的博客 175

LLMs之Prompt:Prompt Engineering Guide(提示工程技术入门指南)的简介、使用方法、案例应用之详细攻略

​ LLMs之Prompt:Prompt Engineering Guide(提示工程技术入门指南)的简介、使用方法、案例应用之详细攻略 目录 相关文章 Prompt Engineering Guide的简介 Prompt Engineering Guide的使用方法 Prompt Engineering Guide的案例应用 相关文章 LLMs之PE:大模型核心技术—提示工程(Prompt Engineering)的简介、常用工具、使用方法之详细攻略 h

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 2281

OpenMontage:AI代理驱动的端到端视频生产系统实战指南

在当今内容创作领域,自动化视频生成技术正成为提升生产效率的关键。其核心原理在于通过智能体(Agent)架构,将复杂的视频制作流程拆解为可被AI理解和执行的标准化任务,从而实现从创意到成片的端到端自动化。这项技术的核心价值在于大幅降低了专业视频制作的门槛,使非专业用户也能快速产出具有一定专业度的内容。其典型应用场景包括社交媒体短片、产品演示、知识科普视频的批量生产。OpenMontage正是这一技术理念的杰出实践,它构建了一个完整的代理驱动视频生产系统,将AI编码助手转变为能自主规划并执行脚本撰写、素材检索、

weixin_35757191的博客 647

全网最全大型语言模型Prompt工程指南---其一:介绍

本指南涵盖了Prompt的基础知识,提供关于如何使用提示来互动和指导大型语言模型(LLM)的粗略概念。本章节主题包括:基础Prompt;有关大型语言模型的参数设置;标准Prompt;Prompt所包含的元素

Cosmops的博客 5055

车企自动泊车技术全解|纯视觉/多传感器融合双路线、端到端大模型革新 助力机械车位/无划线车位/极窄车位精准泊车落地

随着智能驾驶技术全面下沉,自动泊车已从高端车型专属配置,普及至十万级家用车型,成为车载核心刚需功能。但市面主流车企的泊车能力差距极大,核心差异源于传感器硬件架构、算法迭代逻辑、场景训练体系的全方位分化。传统规则式泊车算法仅适配标准划线车位,面对地库暗光、标线磨损、机械双层车位、极窄靠墙车位、无划线空地泊车等真实长尾场景极易失效。

getusushu的博客 105

滑块逆向及流程分析

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

pyzzd的博客 8005

阅读翻译Prompting Engineering Guides之Introduction(提示工程简介)

提示工程是一门相对较新的学科,旨在开发和优化提示词(Prompt),以便高效地应用和构建大语言模型(LLMs),以满足各种应用和使用场景的需求。提示工程技能有助于更好地了解大语言模型(LLMs)的能力和局限性。研究人员通过提示工程来提升大语言模型(LLMs)在广泛的常见和复杂任务(如问答和算术推理)上的安全性和能力。开发人员可通过提示工程设计健壮且有效的提示技术,来与大语言模型(LLMs)和其他工具进行交互(interface)。

shizidushu的博客 1351

基于YOLOv5的人脸识别系统:从构建到应用的全流程指南

本文详细介绍了基于YOLOv5的人脸识别系统开发全流程。首先阐述了YOLOv5模型的高效性和准确性优势,随后分步骤讲解了深度学习环境配置、数据集准备(推荐WIDER FACE数据集)和模型训练方法。重点展示了如何将训练好的模型集成到Tkinter开发的GUI界面中,实现图片上传、人脸检测和结果可视化功能。文章提供完整的代码示例和飞书文档链接(密码:946m22&8),帮助开发者快速构建可交互的人脸识别系统,适用于安防、门禁等多种应用场景。通过该项目,读者可掌握YOLOv5的实际应用和界面集成技术。

FJN110的博客 169

Prompt Engineering Guide笔记

Temperature:temperature的参数值越小,模型就会返回的结果确定性越高。Top_p:使用top_p(与temperature一起称为核采样的技术),控制模型返回结果的真实性。

m0_46268825的博客 1380

YOLOv8改进:基于EfficientNetV2均衡缩放网络的特征提取层优化【YOLOv8】

YOLO(You Only Look Once)系列模型以其高效的实时目标检测能力而闻名。YOLOv8作为该系列的最新版本,通过引入改进的网络结构和算法优化,进一步提升了目标检测的性能。然而,YOLOv8在特征提取阶段的网络结构仍有改进的空间。EfficientNetV2是一种基于均衡缩放的卷积神经网络,它通过优化网络的宽度、深度和分辨率来实现高效的特征提取。与之前的EfficientNet版本相比,EfficientNetV2在速度和精度上都有显著提升,尤其在处理复杂目标检测任务时表现尤为突出。

博客 1582

SAP GR(Group Reporting)配置篇(五)

1.5、合并的货币换算1.5.1指定折算比率菜单路径组报表的SAP S4HANA >合并的货币换算>-指定折算汇率事务代码GCRF说 明1.5.2维护汇率菜单路径组报表的SAP S4HANA >合并的货币换算>维护汇率事务代码CXCC/OB08说 明实际测试的时候根据实际情况维护汇率。输入换算比率。1.5.3定义汇率标识符菜单路径组报表的SAP S4HANA >合并的货币换算>定义汇率标识符事务代码OC41说 明配置了月末汇率和平均汇率。

weixin_43853754的博客 554

Prompt Engineering Guide: 探索人工智能时代的新兴学科

Prompt Engineering Guide是由DAIR.AI团队创建的一个全面的学习资源,旨在为对提示工程感兴趣的人提供最新、最全面的指南。提示工程的基本原理和技巧零样本、少样本等各种提示技术链式思考、自洽性等高级提示方法代码生成、数据生成等实际应用案例各种大型语言模型的特点和使用指南提示工程相关的工具和资源在AI时代,提示工程正成为一项越来越重要的技能。无论你是AI研究人员、开发者,还是对AI应用感兴趣的普通用户,学习提示工程都将为你打开一扇通向AI世界的大门。

m0_56734068的博客 877

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Prompt Engineering Guide

提示工程的学习笔记

LuM523的博客 1867

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Prompt Engineering Guide — 提示工程全方位指南

Prompt Engineering Guide 是一个由 DAIR AI Lab 维护的开源项目,致力于系统性地总结和分享提示工程(Prompt Engineering)的理论与实践方法。随着大语言模型(如 GPT 系列、Claude、Gemini 等)的广泛应用,如何设计有效提示以发挥模型最大能力,成为当前人工智能领域的重要研究和应用方向。该项目以教程、案例和最佳实践为核心,帮助开发者和研究者快速掌握提示设计技巧,提升大模型交互的效率和效果。

hello! 805

如何快速入门提示工程:Prompt-Engineering-Guide 完整实战指南

Prompt-Engineering-Guide 是一个开源教程项目,主打提示工程(Prompt Engineering),把提示词编写、上下文工程、RAG 检索增强、AI Agents 四块知识串成了一张完整地图,还配了大量论文索引、可运行的 Notebook 和分模型的教程。对刚入坑的人来说,它的价值在于:你不用满世界找零散博客,跟着它内置的章节从基础读到进阶,看完就能照着示例动手。 下面我

gitblog_00099的博客 1097

【GitHub项目推荐--Prompt Engineering Guide:AI提示工程权威指南】

​​ 是由dair-ai团队开发的开源项目,是AI提示工程领域的权威指南。该项目汇集了提示工程领域的最新研究成果、实用指南、讲座资源和工具,为开发者和研究人员提供了全面的提示工程知识体系。随着大型语言模型(LLMs)的广泛应用,如何设计有效的提示已成为AI应用开发的核心技能之一。🔗 ​GitHub地址⚡ ​核心价值​:提示工程知识库 · 多语言支持 · 持续更新 · 开源免费。

j8267643的博客 1794

5 分钟本地跑通 Prompt Engineering Guide:从零样本到 AI 智能体的提示工程资源

这是 Prompt Engineering Guide,一个提示工程(Prompt Engineering)的开源教程库,把提示工程、上下文工程、RAG 与 AI 智能体四大板块的论文、技巧、应用和笔记本汇总在一处。它基于 Nextra(Next.js 文档框架)构建,克隆后 3 条命令就能在浏览器里打开。 ## 还在凭感觉问大模型? 你有没有过这种体验:让模型"把这份年报总结成 100 字"

gitblog_00808的博客 671

Prompt Engineering Guide:用四条命令在本地跑起完整提示工程教程

Prompt Engineering Guide 是一个开源的 Prompt Engineering(提示工程,即组织自然语言指令让模型按要求输出的技术)教程站,收录技术章节、论文、工具和 AI 智能体资料。读完本文,你能把整套教程在本地跑起来,并能讲清每个章节的数据链路。全站支持 13 种语言,每章都配有可运行的示例。 ## 它替你省了哪几步 **找资料要一篇篇翻** 学提示技术时,你得在论

gitblog_00290的博客 803

15 分钟本地入门提示工程:Prompt Engineering Guide 实战上手指南

模型答非所问时,问题往往出在你"怎么问"——这正是提示工程(Prompt Engineering)要解决的。开源项目 Prompt Engineering Guide 把提示工程、上下文工程、RAG 和 AI Agent 的论文、教程、Notebook 与现成提示模板整合成一套可本地运行的完整文档站,适合想把"会聊天的 AI"变成"能干活工具"的工程师。读完这篇,你能在本地跑起这套资料,并拿到一条

gitblog_00049的博客 427

Prompt-Engineering-Guide实战:3步写出效果翻倍的提示词(附模板)

``` git clone https://gitcode.com/GitHub_Trending/pr/Prompt-Engineering-Guide ```

gitblog_00487的博客 902

【Prompt学习技能树地图】利用GitHub-Prompt Engineering Guide进阶学习Prompt工程指南

针对Prompt工程学习者的进阶需求,系统介绍了如何利用GitHub平台和Prompt Engineering Guide项目进行专业化学习。

致力于成为一名data scientist 的奋斗者 1190

Prompt Engineering Guide:5 分钟跑通提示工程完整实战指南

Prompt-Engineering-Guide 是一个开源文档站,主题就一件事:提示工程(把指令写得让模型答得准的那套方法)。它把 17 种提示技巧、各主流模型指南、RAG 与 Agent 章节、可运行的 notebook 全部整合在一起,clone 到本地跑起来就能读。 ## ⚡ 最短路径跑起来 1. 拿到源码,进到项目目录: ```bash git clone https://gitc

gitblog_00946的博客 389

【亲测免费】 Prompt-Engineering-Guide-Chinese:开启你的Prompt工程之旅

在人工智能领域,大型语言模型(LLMs)的应用日益广泛,而Prompt工程作为一门新兴学科,正逐渐成为开发者和研究人员关注的焦点。**Prompt-Engineering-Guide-Chinese**项目应运而生,旨在为中文用户提供一个全面、易懂的Prompt工程学习指南。该项目源自GitHub上最受欢迎的英文指南,经过精心翻译和本地化,以降低学习门槛,帮助更多人掌握Prompt工程的核心技能。...

gitblog_00862的博客 1072

10 分钟搭好提示工程学习站:Prompt-Engineering-Guide 实战指南

这篇文章带你 10 分钟跑起开源项目 Prompt-Engineering-Guide。它把提示工程(Prompt Engineering)、RAG 与 AI Agent 的指南、论文、课程笔记整合成一套可本地运行的知识库,解决"学提示工程去哪学、怎么练"的问题。 ## 当 AI 的回答总是差点意思 把这句话丢给任意一个大语言模型(LLM,即靠海量文本训练的 AI 模型)试试: > The

gitblog_00267的博客 434

如何本地运行 Prompt Engineering Guide:新手完整上手指南

Prompt Engineering Guide 是一个开源提示工程教程库,把论文、课程讲义和实操 notebook 整理成了系统化课程。想从零样本、少样本学到思维链(CoT)这些技术,先本地跑起来是最直接的一步。 ## 它到底解决了什么 这不是提示词模板合集,而是一套覆盖提示工程、上下文工程、RAG 和 AI Agent 的学习体系。目标人群是开发者、研究者,以及想把 LLM 应用从"能用"

gitblog_00592的博客 1159

Prompt Engineering 指南:3步本地跑通提示工程知识库

想让模型稳定按 JSON 输出、推理题分步作答、还能基于你自己的文档回答问题?靠的不只是换更贵的模型,而是提示词怎么写。《Prompt Engineering Guide》就是围绕这件事的开源知识库:把提示工程、上下文工程、RAG、AI Agent 的论文、教程和可运行 Notebook 整理成一套本地可跑的文档站,适合刚接触大模型应用、想把"调模型手感"变成方法的开发者和学生。 ## 📦 项

gitblog_00993的博客 975
上一篇: 少即是多:微型网络的递归推理 ——在没有蛮力的时候,我们有更多的路可以走
请站在我身后
博客等级 码龄8年 807粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请站在我身后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值