你真的会跟 ChatGPT 聊天吗?(上)

news2024/11/14 0:27:01

前言:即使你对文中提及的技术不大了解,你也可以毫无压力地看完这篇描述如何更好地获得 ChatGPT 生成内容的文章。因为我也是利用 Azure OpenAI 等认知服务来学习,然后就这样写出来的。所以,舒服地坐下来,慢慢看吧~

相信看到标题点进来的你,已经试过跟 ChatGPT 聊天了。我猜,要么你曾惊叹于人工智能的强大,要么,你嘲笑过这是“人工智障”……

为什么有时候 GPT 会有看着很傻的回复呢?有没有一种可能,是我们问问题的方式不对?

请和我一起确认,你提问时是否有如下几种情况:

  • 是否试过在提示中提供示例?

  • 是否试过使用角色扮演提问?

  • 是否不让 ChatGPT 去猜猜猜?

如果你的回答是“否”,那请允许我为人工智能申个冤——是的,问对问题,人工智能会表现的更好。这也是提示工程(prompt engineering)的重要性所在。接下来,我们花点时间来搞清楚为什么问对问题很重要,以及怎样问问题更好。

微软MVP实验室研究员

胡浩

多年从事基础架构相关工作,熟悉全栈虚拟化、终端用户和边缘计算等,对多个技术方向有所涉猎。乐于学习并分享 Azure 和 AI,曾在很多大型研讨会演讲,如微软的 TechEd、MEDC、Tech Summit、Ignite,威睿的 VMworld、vForum、ENPOWER,以及苹果、戴尔等技术会议。同时也是很多社区大会如 Global AI Bootcamp、Global Azure Bootcamp、Global M365 Bootcamp 等活动的组织者和演讲者。

对话上下文

首先,ChatGPT 是可以使用上下文来持续优化语言理解和生成内容输出的。为了便于确定和理解,我选择了同源(使用相同的 API)的 Azure OpenAI 服务 [1]作为样例,因为在 Azure OpenAI Studio 里,你可以很容易地通过示例代码或 JSON 数据观察到来往你和模型之间的文本。

我们先看看使用 GPT-3 中 text-davinci-003 模型的对话样例。

GPT 这个大语言模型(LLM),从全局上下文模型 Transformer [2]发展而来,而没有使用局部上下文的传统长短期模型(LSTM [3])。上下文对模型能够准确了解提问和提供回答非常重要。因此每次通过 API 提交完成(Completion)请求的时候,我们能看到就连之前的交互文本,都被提交到了 API 接口。

这样,GPT 就能够根据之前的对话内容,生成更加相关的回复。

也许你已经知道,和 GPT 模型交互有个重要的概念,就是 token。我自己把它理解为“语素”,即构成词语的组成部分,按照通常计算,大约4个英文字符为1个 token。我们和 GPT 的交互,就需要消耗 token 并受到 token 数量的限制。

随着 GPT-3.5 和 GPT-4 的推出,新的模型调用 API 接口从 Completion [4]逐步转向 ChatCompletion [5](GPT-3.5 可以使用 Compleition 但必须提交 ChatML,GPT-4 只支持 ChatCompletion)。新的接口要求提交的 prompt 从以往的字符串改为包含系统(system)、用户(user)和助手(assistant)三种角色消息的数组。其中系统角色消息只需要在最开始声明一次即可,后面我们也会讨论这个有趣的设定。

通过这个样例,就可以看到具体三种角色消息的表现形式。我们打开“查看代码”,就能够很方便地看到这三种角色的消息数组是如何发送到 API 接口的。

那么我们的问题就来了——即使我们使用 GPT-4 的 8K 或 32K 模型,不断地发送整个会话,token 也有用完的时候吧?那是不是意味着 GPT 就会“失忆”?

理论上是的。人类也不可能记得对话的全部信息啊~那怎么解决这个问题呢?一般人我不告诉 Ta~ 我们完全可以对之前的对话内容进行小结,然后将小结作为后续会话的开始。

你问我怎么小结对话?问 GPT 啊!

不如来一发

 

有几个概念伴随 LLM 的流行为更多人所知:Zero Shot、One Shot 和 Few Shot。这几个概念或许可以翻译为零样本学习、单样本学习和少样本学习。

零样本学习、单样本学习和少样本学习某种意义上有相同的好处——模型不再需要进行繁杂的训练,就可以对新的类别进行识别判断。某些方面上,这其实和我们期待的人工智能有点类似,看上去具备了举一反三的能力。在机器学习的领域里,相关的词汇有模型泛化和迁移学习等,意味着从某些类别或样例的训练中,具备了将获得的推理扩展到其他类别或样例上的能力。

考虑到监督机器学习时需要的标签,这是一项包含巨大成本(人力和经济)的工作——也许你已经听说过数据标记师和数据标记工作的传闻,更别说标签有时无法提供合适的数据进行训练,比如样本分布或样本过少导致的偏差等等。

这也许就是大模型的威力:算力的强大使得巨量的语料数据能够进行无监督学习,由此产生了对语义的概率性推断,再体现到对输入的语义理解和内容生成,不断发展的神经网络(连接派)强大之后,却发现了对“意思”(符号派)的更好识别,简直是华山气宗和剑宗的殊途同归,扯远了,后续再写一篇聊这个吧!

我们从少样本学习到零样本学习一个一个聊。开始说这几个之前,先回顾一下以往的监督学习。在如下的 ImageNet 示例中,模型就是使用不同的狗狗的照片来训练,从而提取分辨狗狗的特征,作为判断今后图片中是否存在狗狗的依据。

是的,你得为狗狗的照片提供标签,说明这些训练数据(图片)是狗狗。这个训练过程你很容易通过 Azure 认知服务中的自定义机器视觉来体验和理解——你甚至不需要懂得写代码或配置模型,图形界面的工作室里提供图片和批量设置标签即可完成训练。

ImageNet 数据集的部分数据——狗的照片

OpenAI 通过 CLIP 模型发现了多模态模型的能力,利用互联网等语料数据集中对图片的文字描述,进行了交叉的训练,使得多模态大模型将图片的“意思”和图片的“显示”关联在一起。从而实现了对图片的无监督学习——这个过程不再需要我们给图片打标签了。这也是人工智能内容生成(AIGC)里,从文本提示自动生成图片的能力来源;亦可以说明 GPT-4 为什么懂人类在图片里玩的梗——AI 通过概率,明白了“意思”。

我们先举例来说明一下少样本学习。

▍少样本学习

一个从来没有见过无毛猫的小朋友,假设这个小朋友不是特别聪明,但已经知道通过分辨耳朵、鼻子、脸型等,分清楚是猫猫还是狗狗(比如通用预训练模型,GPT)。

有一说一,这小喵小汪真可爱

为了让他知道什么是无毛猫,我们也许需要提供以下两张照片:

然后告诉他,左边没有毛的但看得出猫脸的,是无毛猫,右边没有毛但是有狗脸的不是无毛猫。当然也许还可以再给他看几张照片加深印象。

于是,小朋友知道了,没有毛的狗,不是无毛猫;没有毛的猫,才是无毛猫。

 

▍单样本学习

那单样本学习的例子呢?很简单:

一个从来没有见过无毛猫的小朋友,假设这个小朋友比较聪明,我们只要给他看左边这张图,看,这只猫没有毛,它叫无毛猫。小朋友只要能认出这是猫,就认识了无毛猫。

 

▍零样本学习

那零样本学习的例子呢?更简单:

一个从来没有见过无毛猫的小朋友,假设这个小朋友很聪明,我们不需要给他看照片(我其实也怕吓到小朋友的),只要告诉他有一种猫没有毛。当他看到无毛猫的时候,他自己已经对猫有了概念(懂得猫的“意思”),一看没有毛,就明白了,这是你们说的无毛猫。

这个小朋友自己学习的能力,就叫做元学习。这个能力不像传统的监督学习,目标不是识别具体类别,而是学习本身——学会判断归类从未见过的对象(懂得“意思”)。

让我们倒过来想这个问题。如果一个模型还没那么聪明的时候,即使可能具备了零样本的能力,但单样本和少样本是不是也能帮助模型更好地推断、提高准确性呢?

我认为,是的。所以在 Azure OpenAI Studio 里面你能够找到这样的例子。

以下是一个例子:“通过少数的几个例子,从一句话中按照示例提取结构化的数据。

在这个对话中,通过提供两个属性的范例,实现了准确地从自然语言描述中,抽取结构化的数据以产生表格。这不就是少样本学习的例子吗?

目前,至少目前,我们还是比 AI 聪明的,比如下面这张图:

我的天呐,小喵小汪也玩《Face Off》这么神奇的吗?

当我们使用 Azure 视觉认知服务 [6]工作室来“逗”人工智能的时候,AI 就会很纠结这到底是猫是狗了。

对于全图,AI 能够一定程度上识别出狗和猫,但具体到换脸的猫,却被认成了狗。我们当然知道,它们既不是猫也不是狗,哈哈哈。

在本文的下半部分,我们将继续轻松地聊聊其他更好的 ChatGPT 聊天方式。欢迎大家持续关注!

 

参考链接:

[1] Azure OpenAI Service - Documentation, quickstarts, API reference - Azure Cognitive Services | Microsoft Learn[EB/OL]. [2023-04-11]. https://learn.microsoft.com/en-us/azure/cognitive-services/openai/?WT.mc_id=AI-MVP-33253.

[2] VASWANI A, SHAZEER N, PARMAR N, 等. Attention Is All You Need[M/OL]. arXiv, 2017[2023-04-11]. http://arxiv.org/abs/1706.03762.

[3] SHI X, CHEN Z, WANG H, 等. Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting[M/OL]. arXiv, 2015[2023-04-11]. http://arxiv.org/abs/1506.04214.

[4] Completions - OpenAI API[EB/OL]. [2023-04-11]. https://platform.openai.com/docs/api-reference/completions.

[5] Chat - OpenAI API[EB/OL]. [2023-04-11]. https://platform.openai.com/docs/api-reference/chat.

[6] 计算机视觉文档 - 快速入门、教程和 API 参考 - Azure 认知服务 | Microsoft Learn[EB/OL]. [2023-04-11]. https://learn.microsoft.com/zh-CN/azure/cognitive-services/computer-vision/?WT.mc_id=AI-MVP-33253.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络计算模式复习(三)

云计算和网格技术的差别 相对于网格计算,在表现形式上,云计算拥有明显的特点: 低成本,这是最突出的特点虚拟机的支持,得在网络环境下的一些原来比较难做的事情现在比较容易处理镜像部署的执行,这样就能够…

【微服务 | 学成在线】项目易错重难点分析(媒资管理模块篇·下)

文章目录 视频处理视频编码和文件格式文件格式和视频编码方式区别ProcessBuilder分布式任务调度XXL-JOBXXL-JOB配置XXL-JOB使用分片广播技术方案视频处理方案及实现思路分布式锁 视频处理 视频编码和文件格式 什么是视频编码? 同时我们还要知道我们为什么要对视频…

家用洗地机哪款好?2023入门级智能洗地机

现代社会对卫生日益重视,尤其是在工业、商业和公共场所要求越来越高。传统清洁方式不能满足人们的需求,清洁工作效率低且卫生难以保证。而洗地机的出现,正是为了解决这些问题。它能够深入清洁地面,有效防止不必要的污垢、细菌和病…

小满nestjs(第二十八章 nestjs 事务)

事务的四大特性 事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID ① 原子…

2023年5月产品经理认证NPDP线上班火热招生中

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

23年5月高项备考学习笔记 —— 信息系统治理

治理是管理的控制 IT治理:关注风险 治理的驱动因素: 信息孤岛 资源整合目的空泛,缺少规划 目标价值: 与业务目标一致 有效利用信息资源 风险管理 管理层次: 最高管理层:董事会、证实***、战略 执行管理…

数值分析-埃特金算法

目录 一、前言 二、什么是埃特金算法 三、埃特金算法的原理 四、埃特金算法的步骤 1.确定插值点和半方差函数模型 2.计算插值点与已知点之间的距离和半方差函数值 3.确定权重 4.进行插值计算 5.评估插值结果 五、埃特金算法的优缺点 一、前言 数值分析是数学中的一个…

CUDA Stream, Event 与 NVVP

文章目录 一、CUDA StreamAPI实战CUDA Stream和 Serial执行的对比:PCIE和NVLINKCUDA Stream 多流的收益和上限CUDA Kernel合并CUDA7中的Per-Thread编译选项 二、Event三、NVVP四、知识点四 一、CUDA Stream CUDA Stream是GPU上task的执行队列,所有CUDA操…

Mysql表索引(总结篇)

目录 前言 ✨✨✨大家好,我是会飞的鱼-blog,今天我来给大家介绍一下Mysql,有不足之处,请大家多多指教。感谢大家支持!!! 一、索引的概述 1.索引类型 2.索引存储 3.索引优缺点 4.使用建议…

如何在Windows上搭建NFS服务器实现开发板与Windows之间的文件共享

目录 1 安装nfs.exe 2 mounting 172.31.8.183:/f/nfs on /mnt/nfs failed: No such file or directory 3 mounting 172.31.8.183:/d/nfs on /mnt/nfs failed: Permission denied 1 安装nfs.exe 某项目中需要把程序放到Linux开发板中测试,刚开始使用tftp命令下载…

常见8大排序算法详解

常见8大排序算法 分别是冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序、基数排序(桶排序) 冒泡排序 思路 n个数字从小到大排序,每个数和它后面的数比较,小的放前面,大的放后面,…

微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)

H5嵌入微信小程序 一、H5页面地图1.H5地图加载2.标注事件 二、H5返回微信小程序1.H5页面核心代码2.微信小程序接收传参核心代码 三、开发中遇见的坑1.wx.openLocation调起地图后需要点击两次返回才到web-view页面2.H5无法调用百度定位new BMap.Geolocation对象3.安卓某些机型无…

Linux:《tar》归档命令

准备好4个文件然后使用tar命令进行归档 最常用的是 -c, --create(小写) 建立新的存档 -f, --file [HOSTNAME:]F 指定存档或设备 (缺省为 /dev/rmt0) -z, --gzip, --ungzip 用 gzip 对存档压缩或解压 -j&…

京东数据分析:2023年Q1白酒电商整体动销增长,中低端酒企压力大

早在年初就有白酒市场业内人士表示,2023年春节白酒消费市场整体景气度较高,白酒动销表现较为优秀,预计2023年一季度白酒动销有望实现一定的增长。 对于这一观点,我们在今年电商数据平台鲸参谋出炉的Q1白酒销售数据表现中得到了验证…

【软考高级】2019年系统分析师案例分析

1、阅读以下关于软件系统分析的叙述,在答题纸上回答问题1至问题3。 【说明】 某软件企业为电信公司开发一套网上营业厅系统,以提升服务的质量和效率。项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务&#xff…

1.0 Vue的编译和运行

1、编程范式:命令式和声明式 编程范式是指一种程序语言的代码风格、样式,每一种范式都包含了代码特征和结构,以及处理错误的方式。 例如现在需要实现生成一个div模块,其显示的文本内容为hello world,添加一个点击事件…

X3派caffe yolov3 部署demo

yolov3放置在docker中/open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/02_yolov3_darknet53/mapper 模型所需要的prototxt和caffe模型yolov3.caffemodel文件放置在docker中的/open_explorer/ddk/samples/ai_toolchain/model_zoo/mapper/de…

78页2023年智慧公安发展构思与建设解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 总体架构10 建设方案-网络系统11 物联网15 视频网系统16 视频专网主干网根据运营商链路分为若干个环网部署,市局两台核心交换机位于网络核心层;部分…

SpringCloud 分布式事务组件之Seata

目录 背景介绍什么是分布式事务什么叫做逆向补偿呢互联网最流行的分布式事务组件seata总结 背景 大家好,今天给大家分享一个在2022年出去面试Java几乎必问的一个技术,那就是seata。什么??你才看了第一句话心里有闪现了无数个问…

024 - C++ 虚函数

本期我们学习的是 C 中的虚函数。 过去的几期,我们一直在讨论类、面向对象编程、继承这些内容,所有的这些内容,包括本期我们将要学习的虚函数,对整个面向对象的概念都非常重要。 虚函数能干什么呢? 虚函数允许我们在子类中重写…