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

devtools/2024/11/18 11:41:07/

一、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.ppmy.cn/devtools/134947.html

相关文章

(干货)Jenkins使用kubernetes插件连接k8s的认证方式

#Kubernetes插件简介 Kubernetes 插件的目的是能够使用 Kubernetes 配合,实现动态配置 Jenkins 代理(使用 Kubernetes 调度机制来优化负载),在执行 Jenkins Job 构建时,Jenkins Master 会在 kubernetes 中创建一个 Sla…

面试篇-项目管理

⼀、构建管理 项目为什么选择Maven构建? 选择Maven进行项目构建有以下几个主要原因: 1. 依赖管理:Maven 提供了强大的依赖管理功能,可以自动下载项目所需的第三方库和依赖,并且可以管理这些依赖的版本、范围等信息。这简化了项…

Node.js事件循环:解锁异步编程的奥秘

Node.js的事件循环是实现高性能、异步编程的关键机制。了解Node.js事件循环的工作原理和使用方法对于开发高效的应用程序至关重要。本文将深入介绍Node.js事件循环的原理、阶段和最佳实践,帮助您充分利用这一强大功能。 Node.js事件循环概述 Node.js事件循环是Node…

HTTP 1.0、HTTP 1.1 和 HTTP 2.0 区别

HTTP 1.0、HTTP 1.1 和 HTTP 2.0 是超文本传输协议(HTTP)不同版本的规范,各自进行了多项更新和改进: 1. HTTP/1.0 单一请求-响应:每次请求都需要建立一个新的 TCP 连接,完成后立即断开。无状态连接&#…

Go 语言切片初始化与性能优化:使用 cap 参数的重要性

在 Go 语言中,切片是一种非常灵活且常用的数据结构,它提供了一种动态数组的抽象。在使用切片时,我们通常会使用 append 函数来添加元素。然而,很少有人意识到在初始化切片时指定其容量(capacity)可以显著提…

开源物业管理系统助力智能社区提升服务效率与用户体验

内容概要 开源物业管理系统是一种灵活、智能的解决方案,专为社区物业管理而生。随着智能社区的发展,这种系统变得越来越重要。它不仅帮助物业管理者高效地处理日常事务,还提升了居民的生活体验。在这个日新月异的时代,开源物业管…

AB矩阵秩1乘法,列乘以行

1. AB矩阵相乘 2. 代码测试 python 代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # FileName :ABTest.py # Time :2024/11/17 8:37 # Author :Jason Zhang import numpy as np from abc import ABCMeta, abstractmethodnp.set_printoptions(suppressTrue, pr…

A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持

热门大语言模型项目地址:www.suanjiayun.com/mirrorDetails?id66ac7d478099315577961758 近几个月来,我们目睹了大型语言模型(LLMs)和生成式人工智能强势闯入我们的视野,显然,这些模型在训练和运行时需要…