关于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 应用

开发 Windows 10 应用程序

编写首个 Windows 10 应用

创建 Windows 10 应用的用户界面 (UI)

增强 Windows 10 应用的用户界面

在 Windows 10 应用中实现数据绑定

posted @ 2023-08-28 20:49  楼上那个蜀黍  阅读(605)  评论(1编辑  收藏  举报