关于ChatGPT的一些闲扯淡(1)
这篇写的有点迟了,前者子ChatGPT正火的时候,懒病发作一直拖延。今天对ChatGPT做一个简单的讨论,也是把学习的心得和大家分享一下。
首先什么是GPT,英文全称是Generative Pretrained Transformers (生成式预训练转换器)。GPT是一个预先训练好的,用生成的方式,把输入文字转化成输出文字的转换器。
这个转换的过程,有点完形填空,或是根据提示写一篇800字作文的意思。
GPT并不是横空出世的新鲜玩意,它已经经历了数代的演进,从GPT-1,GPT-2,GPT-3一直到现在最新的GPT-4。
那么GPT是如何工作的呢?一般认为至少需要两步。
- 一个训练好的模型(Model)
- 来自用户输入的提示(Prompt)
如下图的举例,用户输入的提示“Translate Hello to Spanish”,经过OpenAI预训练好的模型转换后,生成出文字“Hola”。

可能小伙伴会有疑问,Prompt在上面这个流程中,起到了哪些作用呢?大体上有三点:
- 由用户输入给到模型(Model)
- 指导模型(Model)如何生成Competions
- 提供上下文(Context)让模型(Model)更精确地输出
下面就是一个代码示例中的Prompt,首先定义了模型(Model)的角色上下文(Context),给定了输出的数量要求,以及语言的要求。
var system =
"""
You are a professional .NET programmer.
When you answer .NET questions, you always give examples.
You will speak in Chinese.
""";
上面这个提示(Prompt)其实还不完整,它只给出了上下文(Context),却没有对GPT提出问题或安排任务。
一个完整的提示(Prompt)的结构包含两部分:
- 上下文(Context)
- 问题或任务(Query / Task)
private string System { get; set; } = @"You are an AI assistant that helps people find information.";
private string Prompt { get; set; } = "明天的天气如何?";
上面是一个完整的提示(Prompt),但并不是一个高质量的提示(Prompt)。高质量的提示具有以下几点:
- 清晰且具体
- 给定输出的样例
- 提供有价值的上下文(Context)
上面这种模糊不明确的提示,会导致ChatGPT向你询问具体的地区……

所以一个清晰且具体的提示,至少要包含查询天气的地区,如果能给定输出的样例就更好了。

如果再提供有价值的上下文,回答又会变得不一样。

看过了提示(Prompt),让我们再来了解一下完成(Completions)。其实这里翻译成“补完”感觉更贴切。Completions是由GPT这样的模型根据提示生成的响应或者说结果。
所以GPT干的事情,总结下来就是:
模型(Model)根据人类给出的提示(Prompt),进行补完(Completions)。
所以GPT的原型应该是凌波丽?(大雾)


今天和各位小伙伴进行了GPT的一些闲扯淡,下一篇我们来学习ChatGPT又是个啥。
欢迎各位大佬批评指正。
以下链接,是MS Learn上Windows开发的入门课程,单个课程三十分钟到60分钟不等,想要补充基础知识的同学点这里:
开始使用 Visual Studio 开发 Windows 10 应用
关于ChatGPT的一些闲扯淡(1)的更多相关文章
- 闲扯淡json格式与对象
在这里推荐使用http://json.tongxiehui.net/ 这个在线解析jso格式 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保 ...
- 闲扯淡笔记 - Web的历史
这里的Web指的是万维网,就是World Wide Web. 文档和静态资源 通过URL组织 Tim Berners Lee (TimBL) 于1989发明这个概念,这丫55年出生,和我父亲一般大. ...
- Javascript Function()中的降龙十八掌
原文地址:http://tutorialzine.com/2014/08/what-does-this-function-do/ 下面列出十八个JS function,看你知道这些函数是干嘛用的,你能 ...
- 日志分析 第一章 ELK介绍
1 ELK各组件介绍? ELK Stack是elasticsearch.logstash.kibana是三个开源软件的组合, fielbeat是一个轻量级日志收集工具,类似于Linux系统中tail ...
- AndroidDriver原理初步--Android自动化测试学习历程
章节:自动化基础篇——AndroidDriver原理初步(第六讲) 主要讲解内容及笔记: 一.AndroidDriver核心原理 对上图的解析: PC端的端口通过adb,将android版的Remot ...
- C#利用WinForm调用WebServices实现增删改查
实习导师要求做一个项目,用Winform调用WebServices实现增删改查的功能.写下这篇博客,当做是这个项目的总结.如果您有什么建议,可以给我留言.欢迎指正. 1.首先,我接到这个项目的时候,根 ...
- springboot项目实现批量新增功能
这个困扰我一整天东西,终于解决了. 首先是mybatis中的批量新增sql语句. 注意:这里我给的是我需要新增的字段,你们改成你们需要的字段. <insert id="insertBa ...
- Claude:除ChatGPT外的另一种选择
前言 Claude 是 Anthropic 开发的人工智能产品.Anthropic 是由 11 名前 OpenAI 员工于 2022 年创立的人工智能公司,旨在构建安全.可解释和有益于人类的人工智能系 ...
- html5吹牛扯淡篇,闲话内容。
09年提出对媒体查询的草案,到今天的广泛运用,w3c带我们走进了个性化定制的殿堂.这些之所以会被认可会被写进世界级标准,因为他越来越适应广大用户的需求,需求就像一条锁链带动或者牵引整个互联网开发工作. ...
- POI获取excel单元格红色字体,淡蓝色前景色的内容
如果是Microsoft Excel 97-2003 工作表 (.xls) if(31 == cell.getCellStyle().getFillForegroundColor()) //判断单元格 ...
随机推荐
- R画韦恩图之总结
本文分享自微信公众号 - 生信科技爱好者(bioitee).如有侵权,请联系 support@oschina.cn 删除.本文参与"OSC源创计划",欢迎正在阅读的你也加入,一起分 ...
- js如何操作video标签
一.简介 在做web ui自动化时,遇到操作视频的时候有时比较让人头疼,定位时会发现只有一个<video>标签,用selenium来实现的话比较麻烦,使用js后我们只需定位到video标签 ...
- 阿里云 MongoDB 创建库添加用户并授权
先通过 root 进到 admin 库, 右击test 选择用户管理 测试连接
- iota简介
当声明枚举类型或定义一组相关常量时,Go语言中的iota关键字可以帮助我们简化代码并自动生成递增的值.本文档将详细介绍iota的用法和行为. iota关键字 iota是Go语言中的一个预定义标识符,它 ...
- 移动端APP组件化架构实践
前言 对于中大型移动端APP开发来讲,组件化是一种常用的项目架构方式.个人最近几年在工作项目中也一直使用组件化的方式来开发,在这过程中也积累了一些经验和思考.主要是来自在日常开发中使用组件化开发遇到的 ...
- HTML前端js
ajax请求方法书写 $.ajax({ type:"POST", url:CONTEXT_PATH+"/appAudit/insertSnDocCountAdmin&qu ...
- 音视频开发进阶——YUV与RGB的采样与存储格式
在上一篇文章中,我们带大家了解了视频.图像.像素和色彩之间的关系,还初步认识了两种常用的色彩空间,分别是大家比较熟悉的 RGB,以及更受视频领域青睐的 YUV.今天,我们将继续深入学习 RGB.YUV ...
- Kerberos、黄金票据与白银票据
kerberos Kerberos是一个网络认证协议,用于验证用户和服务之间的身份,解决分布式计算环境中的身份验证问题.它使用加密技术来提供安全的身份验证,并防止网络中的身份欺骗攻击.Kerberos ...
- 解决Oracle jdbc驱动包maven下载失败问题
由于Oracle版权限制,其jdbc驱动包不让人随便下载,这就给maven的下载和编译带来了麻烦. 解决办法是先获取jar包(方法一:去oracle官网下载,方法二:去oracle安装目录如produ ...
- PTA 21级数据结构与算法实验4—字符串和数组
目录 7-1 字符串模式匹配(KMP) 7-2 [模板]KMP字符串匹配 7-3 统计子串 7-4 好中缀 7-5 病毒变种 7-6 判断对称矩阵 7-7 三元组顺序表表示的稀疏矩阵转置运算Ⅰ 7-8 ...