这篇写的有点迟了,前阵子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分钟不等,想要补充基础知识的同学点这里: