关于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()) //判断单元格 ...
随机推荐
- uni-app介绍
"优你"框架 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/ ...
- python环境的安装与设置和oneforall的安装与使用
下载python: https://www.python.org/downloads/windows/ 安装python 如果不需要修改路径,下面两个√打开后,点击上面的install now 也可以 ...
- Qt+QtWebApp开发笔记(四):http服务器使用Session和Cookie实现用户密码登录和注销功能
前言 前面实现了基础的跳转,那么动态交互中登录是常用功能. 本篇实现一个动态交互的简单登录和注销功能,在Qt中使用Session和Cookie技术. Demo 下载地址 链接:ht ...
- CentOS Linux 7 安全基线设置
作为一个生信人,不管是日常的数据分析还是其他工具应用的开发,服务器的安全始终是一个无法避免的话题.尤其是当我们拿到一台新的服务器,我们需要怎样才能确保它是安全可靠,并最小限度降低它被攻击的可能性? 下 ...
- Vue——计算属性、监听属性、Vue生命周期、组件介绍和使用、组件间通信、ref属性
计算属性 // 1 计算属性是基于他们的依赖变量进行缓存的 // 2 计算属性只有在它的相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算) // 3 计算属性就像pyth ...
- 实例讲解Flink 流处理程序编程模型
摘要:在深入了解 Flink 实时数据处理程序的开发之前,先通过一个简单示例来了解使用 Flink 的 DataStream API 构建有状态流应用程序的过程. 本文分享自华为云社区<Flin ...
- 关于进程、线程、协程的概念以及Java中的应用
进程.线程.协程 本文将从"操作系统"."Java应用"上两个角度来探究这三者的区别. 一.进程 在我本人的疑惑中,我有以下3个问题. 1.1为什么要引入进程? ...
- git reset --hard 撤回后commit的代码消失了的解决办法
楼主在今天的工作中使用了这个命令 git reset --hard 撤回后commit的代码消失了,因为有commit,所以暂时得到了拯救,太不容易了,差点以为自己写的代码没了. 网上到处找帖子,看看 ...
- C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法有什么区别?
前言 今天我们将探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace.这两个方法在处理字符串时非常常见,但是它们之间存在一些细微的区别.在本文中,我们将 ...
- Vue-Element UI 文件上传与下载
项目结构 后端 前端 效果演示 上传文件 下载文件 Code 后端代码 跨域 /** * 跨域配置 * @author Louis * @date Jan 12, 2019 */ @Configura ...