# 文字生成講義 ## 1. 原理 ### CHATGPT是什麼 CHAT:聊天 G:生成式(Generative) P:預訓練(Pre-trained) T:變換器(Transformer) * **大型語言模型** 基於大量資料進行預訓練的超大型深度學習模型。早期是將字詞轉換成數值,但看不出字詞間的關係,現在則是使用多維向量儲存(字詞嵌入),使用一系列編碼器及解碼器檢驗字詞間上下文的關係。 * **自然語言處理** 是一種機器學習技術,讓電腦能夠解譯、操縱及理解人類語言。結合運算語言學理解人類語言,透過機器學習訓練期理解語句中含意(暗諷),使用深度學習模型讓他像人類大腦般思考。 簡單來說,CHATGPT是一款基於大型語言模型的系統,並且適用於各種有關自然語言處理方面的事務。 :::spoiler CHATGPT能做什麼 (參考)可以生成文本、回答問題、翻譯...,處理各種有關語言上面的事務。 ::: ### Token Token語言文本的基本單位。把一串字串分成好幾小節,每一小節稱為一個token。 * **unforgiven** 1. 模型一:un + forg + iven = 3個token 2. 模型二:un + for + giv + en = 4個token * **清水高中** 1. 模型一:清 + 水 + 高 + 中 = 4個token 2. 模型二:清水 + 高中 = 2個token ### 大型語言模型運作 依據不同模型,每個字串得出的token數量會不一樣。 1. **訓練資料** 訓練機器知道怎麼接龍,例如輸入「床前明月」,機器就知道要輸出「光」;輸入「疑似地上」,機器就知道要輸出「霜」。 2. **機器學習** 透過訓練的資料找出函式所需要的參數,接著帶入函式使用。第一個過程稱為學習、訓練,第二個過程則是測試、推論。 3. **輸入問題** 以「海線一中是哪個高中為例」。 4. **過程** 每個句子可以接的token有複數個可能,每個token有它的出現機率,接著CHATGPT會像擲骰子選出輸出符號,像是「清」就有40%的機率被選種。  CHATGPT生成答案的方式就像接龍一樣,不斷加入新的token,直到輸出為END時停下並輸出。   5. **輸出結果** 以這個例子會輸出「清水高中」。 ### CHATGPT學習方式 * **一般機器學習(監督式學習)** 機器運用人類的資料來學習,人類提供一些指令,機器學習該如何根據這些指令做出正確回應,稱為監督式學習。像是詢問「台灣最高的山是哪座山?」,AI會將「玉」、「山」串起來,並輸出,這些都是人類事先整理過的資料,然而我們沒有這麼多時間及人力整理好所有資料並提供機器學習。 * **預訓練(pre-train)** 透過網路上龐大的資料來學習,產生最初始的參數,以此做為訓練的第一階段。接著第二階段使用人類整理的資料,並將第一階段的參數丟給第二階段當初始參數,在第二階段進行最佳化,即微調(fine-tuning),第一階段與第二階段的參數不會相差太遠,第一階段的過程稱為預訓練,也稱為自監督式學習。  * **適配器(Adapter)** 為了讓第一階段與第二階段參數相差不要太遠,還有減少運算量,因此第二階段的過程中,只在第一階段的參數後加入少量的新未知數,並找出他們的參數。 * **監督是學習重要性** 若今天只使用第一段,蒐集大量網路資料學習,可能會出現機器不知道要回答的問題,如下圖。因此第二階段使用監督式學習,教導機器對指令做出正確回應將非常重要。  ## 2. 提示工程 ### 提示(prompt) 當我們prompt只下「撰寫一篇作文」時,CHATGPT會這樣回答  如果再將我們的prompt變得更細節,「撰寫一篇"隙縫的聯想"的作文」時,會得到這樣的回覆  因此如何下prompt是非常關鍵的,以下為一個關於prompt的小遊戲可以玩玩看 https://gandalf.lakera.ai/ ### 提示工程-基礎技法 1. **策略一:撰寫清晰的指令** * 技巧一:提供更多詳盡的資訊 把問題寫的詳細一點,,要確保所有重要資訊即要求皆有提到,否則模型只能猜測你的意思。假設我們今天要在Excel中計算一行數字的總和,如果只問「我該如何在 Excel 中進行加法計算?」,那模型只能猜測你想要加一列還是一行的總和。或許可以改成「我該如何在 Excel 中自動計算一行中的美元總額?我想要的是自動為整張表格的每行進行計算,最終所有的總計數都顯示在右側名為“總計”的列中。」,明確的告訴模型你想要在Excel中做的事,這樣模型就不需要猜測你的目的。 1. 我該如何在 Excel 中進行加法計算?  2. 我該如何在 Excel 中自動計算一行中的美元總額?我想要的是自動為整張表格的每行進行計算,最終所有的總計數都顯示在右側名為“總計”的列中。  * 技巧二:讓模型扮演一個角色 我們可以讓模型模仿一個角色來回答我們的問題。假設我們今天要面試,如果只問「如何準備面試?」,那模型不知道你是一位面試官還是面試著,也不知道你要進行怎樣的面試。如果改成「我是一位高三的學生,即將準備面試,而你是一位XX系的教授,請幫我模擬面試,你需要問我一連串的問題,我回答後需要給我一個分數(滿分十分)並給我一些意見進行修改。」讓他模擬一個角色將更好幫助他進入狀況。 1. 如何準備面試?  3. 我是一位高三的學生,即將準備面試,而你是一位XX系的教授,請幫我模擬面試,你需要問我一連串的問題,我回答後需要給我一個分數(滿分十分)並給我一些意見進行修改。  * 技巧三:利用分隔符號清晰區分輸入的不同部分 利用"""來標記重點,能更好的讓模型了解問題的重點。假設我們今天想請模型撰寫一篇文章的大意,這樣詢問「請幫以下文章進行總結:"""文章"""」會比「請總結文章: 文章」讓模型更了解重點內容。 * 技巧四:明確說明完成任務所需的每個步驟 有時候需要會想要讓模型回答一連串相關問題,我們可以用列點的方式讓模型更清楚該如何回答問題。  * 技巧五:明確輸出長度要求 有時候會覺得模型回答得太過冗長或是太過簡短,或許我們可以限制模型的回答長度來得到理想的答案。   2. **策略二:提供參考文本** * 技巧: 使用參考文本來構建答案 1.    2.    3. **策略三:把複雜的任務拆分成簡單的子任務** * 技巧一:把問題分類定義操作 我們可以先把問題分類好,讓模型可以理解問題內容。 1. 假設今天要製作一個客服,我們可以定義以下問題。  * 技巧二:總結或過濾之前的對話 因為模型的記憶有限,所以可以讓他先總結之前的對話。  4. **策略四:使用外部工具** * 技巧一:使用外掛程式(Plugin)  * 技巧二:使用程式執行來進行更準確的計算 每個機器都有他計算精確值的有效位數,或許我們能讓模型使用程式計算,使他的精確值位數變多。 1. 如果只讓模型計算會發現答案是錯的  2. 正確答案  3. 讓模型運用程式來計算,就會是正確答案   ### 提示工程-進階技法 * **In-Context Learning(在上下文學習)** 透過prompts來引導模型,而不需要重新訓練模型,像是我們想教模型一個新的詞語或概念,可以在prompts提供一些關於這個詞語或概念的描述,然後再問模型,AI就可以根據這個特定的上下文進行學習和回應。  然而In-Context Learning真的會教會模型新知識嗎?根據研究顯示,模型是學會這種回答風格而不是學會新知識。例子中是「動物->食性」,假設今天輸入的沒關聯性,這樣模型就無法表現好。  1. Zero shot 一般的一問一答方式,是透過模型的預訓練來完成回答。  2. One shot 給一個範例讓模型學習  3. Few shot 給少量範例,讓模型根據prompt所提供的資料學習   * **Chain of Thought(CoT)** 透過提供模型推理步驟讓模型模仿,進而提高模型答案的準確率。我們可以在提問中加入「That's think step by step.」,讓模型一步步思考,得出準確率較高的結果。    ## 應用 ### CHATGPT * 公司: OPENAI * 免費: GPT3.5 * 付費: GPT4/GPT4 Turbo (附DALL·E) * 優點: 較穩定、安全 * 缺點: 須付費才能使用更多功能 ### Copilot * 公司: Microsoft * 免費: Copilot App/網頁版 * 付費: Copilot with Office 365 * 優點: 免費GPT4、可聯網、可看圖/生圖、可連接Microsoft自家產品 * 缺點: 生成速度較慢   ### Gemini * 公司: Google * 免費: Gemini 1.0 * 付費: Gemini 1.5 * 優點: 生成速度很快、可聯網、可讀圖、對中文較熟悉 * 缺點: 不能生圖 ### Claude * Claude * 公司: Anthropic * 免費: Claude 3 * 付費: Claude 3 Haiku、Claude 3 Sonnet、Claude 3 Opus * 優點: 可讀很多資料、可讀檔、免費版能力堪比GPT4 * 缺點: 無聯網、無生圖  ### Coze * 公司: 字節跳動 * 免費: Coze * 付費: 無 * 優點: 可免費使用GPT4幾乎所有功能 * 缺點: GPT4生成速度慢 1. **登入**   2. **建立機器人**  * Workplace: 選Personal * Bot name: 自行定義機器人名字  3. **設定機器人** * Model: 語言模型 * Temperature: 結果與事實的接近度 * Response max length: AI可回答的最大長度 * Dialog round: AI的記憶力 * 調整模型參數   * 選取外掛程式  * 加入這些    4. **建立自己資料庫** 假設今天是一位律師,他就可以把各種法律條文加入這裡,方便AI查閱。     * 加入資料 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up