關於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 應用中實現數據綁定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章