AI大模型(一):Prompt AI编程

一、Prompt Engineering,提示工程

提示工程也叫指令工程:

  • Prompt是发给大模型的指令,比如【讲个睡前故事】、【用Python写个消消乐游戏】等;
  • 本质上大模型相关的工程工作,都是围绕prompt展开的;
  • 提示工程门槛低,天花板高,所以又有人戏称Prompt为咒语;
  • Prompt相当于是AGI时代的编程语言;
  • 高质量prompt核心:具体、丰富、少歧义;
  • Prompt是个逐步调优的过程,并不是一下子就好。

OpenAI官方提供的Prompt Engineering教程:

https://platform.openai.com/docs/guides/prompt-engineering

Prompt的典型构成

不要固守模板,模板的价值是提醒我们别漏掉什么,而不是必须遵守模板。

1. 角色:
  • 给AI定义一个最匹配任务的角色;
  • 比如:【你是一个软件产品经理】【你是一位小学语文老师】;
  • 先定义角色,就是在开头把问题域收窄,较少二义性;
2. 指令:
  • 对任务进行描述;
3. 上下文:
  • 给出与任务相关的其它背景信息;
4. 例子:
  • 必要时给出举例,学术中称为one-shot learning, few-shot learning或in-context learning;
5. 输入:
  • 任务的输入信息;再提示词中明确的标识出输入;
6. 输出:
  • 输出的格式描述,以便后续模块自动解析模型的输出结果,比如JSON、XML;

案例:推荐流量包的智能客服

需求:智能客服根据用户的咨询,推荐最合适的流量包。

 大模型应用于软件系统的核心思路:
  1. 把输入的自然语言对话,转成结构化的信息(自然语言理解NLU);
  2. 用传统软件的手段去处理结构化信息,得到处理策略;
  3. 把策略转成自然语言输出(NLG);
对话流程举例:

用Prompt实现
定义任务描述和输入:
"""
1. 任务描述                  
"""instruction = """你的任务是识别用户对手机流量套餐产品的选择条件。每种流量套餐产品包含三个属性:名称、月费价格和月流量。根据用户输入,识别用户在上述三种属性上的需求是什么""""""
2. 用户输入                 
"""input_text = """办理100G的套餐"""# prompt模板,instruction和input_text会被替换为上面的内容
prompt = f"""
{instruction}用户输入:{input_text}
""""""
3. 调用大模型                 
"""
response = get_completion(prompt)
print(response)
约定输出格式:
"""
1. 输出格式                  
"""output_format = """以 JSON 格式输出""""""
2. 稍微调整咒语,加入输出格式                 
"""
prompt = f"""
{instruction}{output_format}用户输入:
{input_text}
""""""
3. 调用大模型                 
"""
response = get_completion(prompt, response_format="json_object")
print(response)

二、用AI帮我写代码

认知AI最好的方式就是天天用。

问自己几个问题:

1. 我的时间都消耗在哪里?

  • 工作、学习、娱乐、锻炼
  • 工作&学习:学习新技术新知识,一方面了解发展水平和趋势,以及各个工具如何使用;另一方面结合以往和现在的工作场景、工作中的痛点,思考有哪些可以优化改进的地方。
  • 娱乐:找各种好看的下饭剧
  • 锻炼:根据个人喜好和身体反馈,不定期的调整运动项目和动作

2. 怎么让AI帮我省时间?

  • 重复脑力劳动都可以考虑AI化;
  • 【输入和输出都是文本】的场景,都值得尝试用大模型提效;

3. 如何找到落地场景?

  • 从最熟悉的领域入手
  • 尽量找能用语言描述清楚的任务
  • 别求大而全。将任务拆解,先解决小任务、小场景
  • 让AI学最厉害员工的能力,再让ta辅助其他员工,实现降本增效

AI Embedded模式 ———》Copilot模式——》Agent模式

Agent模式目前有点超前,Copilot是当前主流

实现Copilot的主流架构是多Agent架构,模仿人做事,将业务拆成工作流(workflow 、SOP、pipeline),每个Agent负责一个工作流节点。

【编程】是目前大模型能力最强的垂直领域,甚至超越了对【自然语言】本身的处理能力。因为训练数据质量高、结果可衡量、编程语言无二义性,且有论文证明编程训练能增强模型的推理能力,所以会特别训练这块。

知道怎么用好AI编程,了解它的能力边界、使用场景,就能类比出其他领域的AI怎么落地,能力上限在哪。

How to build an enterprise LLM application: Lessons from GitHub Copilot - The GitHub Blog

产品设计经验:在chat界面里用 @ 串联多个agent是一个常见的AI产品设计范式。

一些其他的使用方式:10 unexpected ways to use GitHub Copilot - The GitHub Blog

让AI在不影响用户原有工作习惯的情况下切入使用场景,接受度更高。例如,Copilot最开始使用的是问答,然后取消问答使用补全,最后恢复问答。

先以架构师的身份,让AI辅助你对架构进行选型;通过需求文档和业务文档,让AI给出架构的建议;然后以开发者的身份,让AI辅助你写业务代码(逐层拆分向下写)。

落地经验:新工具的引入,可能会有一些负面的因素要考虑,需要有足够的信心和耐心去应对。核心是调整好利益链

总结

不管是个人还是企业,都能借用AI提效。

  • 通过天天使用,总结使用大模型的规律,【输入和输出都是文本】的场景,都值得尝试用大模型提效。
  • 通过体验GitHub Copilot,认识到,AI产品的打磨过程、落地和如何打造盈利产品。
  • 基于落地的成功案例,理解基本原理,避免拍脑袋。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Ubuntu 上安装 Jellyfin 媒体服务器

Jellyfin 是一个开源的媒体服务器软件,让你可以整理、管理和流式传输你的个人媒体收藏,比如电影、音乐、电视节目和照片,而且完全免费,没有订阅费用或数据收集的担忧。 简介 媒体管理:Jellyfin 整理媒体库&#xff0…

数据结构(初阶4)---循环队列详解

循环队列 1.循环队列的结构  1).逻辑模式 2.实现接口  1).初始化  2).判断空和满  3).增加  4).删除  5).找头  6).找尾 3.循环队列的特点 1.循环队列的结构 1).逻辑模式 与队列是大同小异的, 其中还是有一个指向队列头的head指针, 也有一个指向尾…

Qwen2.5-Coder-32B-Instruct Docker 部署openai接口

Qwen2.5-Coder-32B-Instruct 模型下载,国内快捷方式: conda create -n modelscope python=3.10 conda activate modelscopepip install modelscopemodelscope download --model Qwen/Qwen2.5-Coder-32B-Instruct --local_dir /ssd/xiedong/Qwen/Qwen2.5-Coder-32B-I

图形几何之美系列:二维凸包艺术赏析

“凸包是计算几何中的概念,凸包在多个领域中有广泛的应用,主要包括几何计算、图形处理、优化问题、路径规划等。” 1.前言 凸包话题包括二维凸包、三维凸包以及高维凸包。对于平面点集,探究如何构造可以覆盖给定点集最小的凸多边形&#xff1…

速通前端篇 —— HTML

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:速通前端 目录 HTML的介绍 如何创建HTML文件 HTML 文件基本结构 HTML常用标签 title标签 标题标签 h1-h6 段落标签 p 换行标签 b…

shell编程--永久环境变量和字符串显位

环境变量 echo $HOME 在终端输出后会显示家目录有个root变量 我们会提出个疑问为什么平时我们在终端输入sl 或者which等等命令会输出一些内容呢,这是因为这些命令都有对应的环境变量。 我们查看一下环境变量 在终端输入: echo $PATH 我们看一下输出…

Python毕业设计选题:基于django+vue的二手物品交易系统

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 店铺管理 二手物品管理 广告管理 留言反馈 订单…

Spring:bean的配置

对于bean的配置中,主要会讲解bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容: bean基础配置 id与class配置 bean的name属性 bean的别名配置 bean作用范围scope配置 scope使用后续思考 介绍完scope属性以后,我们…

前端无感刷新token

摘要: Axios 无感知刷新令牌是一种在前端应用中实现自动刷新访问令牌(access token)的技术,确保用户在进行 API 请求时不会因为令牌过期而中断操作 目录概览 XMLHttpRequestAxiosFetch APIJQuni.request注意事项: 访问…

图形 2.6 伽马校正

伽马校正 B站视频:图形 2.6 伽马校正 文章目录 伽马校正颜色空间传递函数 Gamma校正校正过程为什么需要校正?CRT与转换函数 为什么sRGB在Gamma 0.45空间? 人对亮度的敏感韦伯定律中灰值 线性工作流不在线性空间下进行渲染的问题统一到线性空…

【redis】—— 环境搭建教程

上一节,我们大致了解了Redis的几个重要版本,在本教程中,我们选择了5.0版本,因为5.0已经具备了大部分的功能特性,并且与7.0版本相比,其安装使用过程更为简便。 Redis的官方并不直接支持微软的Windows操作系统…

Springboot采用jasypt加密配置

目录 前言 一、Jasypt简介 二、运用场景 三、整合Jasypt 2.1.环境配置 2.2.添加依赖 2.3.添加Jasypt配置 2.4.编写加/解密工具类 2.5.自定义加密属性前缀和后缀 2.6.防止密码泄露措施 2.61.自定义加密器 2.6.2通过环境变量指定加密盐值 总结 前言 在以往的多数项目中&#xff0…

【机器学习导引】ch6-支持向量机

参考链接 【数之道】支持向量机SVM是什么,八分钟直觉理解其本质 间隔与支持向量 **问题引入:**在样本空间中寻找一个超平面,将不同类别的样本分类 超平面:在支持向量机中,模型的目标是找到一个能够分开不同类别的平…

详解map与multimap容器

目录 一、map简介 1.map构成 2.map本质 3.map的优点 4.map和multimap区别:map不允许容器中有重复key值元素。multimap允许容器中有重复key值元素。 5.map的构建 6.map的赋值 1️⃣赋值法 2️⃣拷贝赋值法 7.map的成员函数 (1)inse…

PyAEDT:Ansys Electronics Desktop API 简介

在本文中,我将向您介绍 PyAEDT,这是一个 Python 库,旨在增强您对 Ansys Electronics Desktop 或 AEDT 的体验。PyAEDT 通过直接与 AEDT API 交互来简化脚本编写,从而允许在 Ansys 的电磁、热和机械求解器套件之间无缝集成。通过利…

ubuntu将firewall-config导出为.deb文件

firewall-config ubuntu是canonial 公司维护的,用wireshark测过,开机会给他们公司发遥测(开了ufw阻塞所有连接也一样,canonial在里面把代码改了)firewall-config是fedora(爱好者维护,公益版本)自带的防火墙…

LLMs之Code:Qwen2.5-Coder的简介、安装和使用方法、案例应用之详细攻略

LLMs之Code:Qwen2.5-Coder的简介、安装和使用方法、案例应用之详细攻略 导读:这篇论文介绍了Qwen2.5-Coder系列模型,这是一个针对代码生成的强大开源大型语言模型。 >> 背景痛点:现有代码大型语言模型的不足:虽然…

H3C NX30Pro刷机教程-2024-11-16

H3C NX30Pro刷机教程-2024-11-16 ref: http://www.ttcoder.cn/index.php/2024/11/03/h3c-nx30pro亲测无需分区备份 路由器-新机初始化设置路由器登录密码telnet进入路由器后台 刷机上传uboot到路由器后台在Windows环境下解压后的软件包中打开 tftpd64.exe在NX30Pro环境下通过以…

FPGA使用Verilog实现CAN通信

FPGA实现CAN通信(Verilog) 1.作者使用的方法是通过FPGA芯片(如Xilinx公司的型号为XC7K325TFFG676-2)控制SJA1000T芯片(CAN控制器芯片)实现CAN通信,如下图所示: 2.熟悉连接方式之后&…

27-压力测试

测试目标 & 测试数据 ● 测试目标 ○ 测试集群的读写性能 / 做集群容量规划 ○ 对 ES 配置参数进行修改,评估优化效果 ○ 修改 Mapping 和 Setting,对数据建模进行优化,并测试评估性能改进 ○ 测试 ES 新版本,结合实际场…