接《你真的會跟 ChatGPT 聊天嗎?(上)》,本文下半部分沒有無毛貓那么搞笑的內(nèi)容啦!即使如此,哪怕你對文中提及的技術(shù)不大了解,也可以毫無壓力地看完這篇,描述如何更好地獲得 ChatGPT 生成內(nèi)容的文章。因為我也是利用 Azure OpenAI 等認知服務來學習,然后就這樣寫出來的。所以,舒服地坐下來,慢慢看吧~
微軟MVP實驗室研究員
胡浩
多年從事基礎(chǔ)架構(gòu)相關(guān)工作,熟悉全棧虛擬化、終端用戶和邊緣計算等,對多個技術(shù)方向有所涉獵。樂于學習并分享 Azure 和 AI,曾在很多大型研討會演講,如微軟的 TechEd、MEDC、Tech Summit、Ignite,威睿的 VMworld、vForum、ENPOWER,以及蘋果、戴爾等技術(shù)會議。同時也是很多社區(qū)大會如 Global AI Bootcamp、Global Azure Bootcamp、Global M365 Bootcamp 等活動的組織者和演講者。
玩角色扮演
GPT 使用了如此龐大的語料庫數(shù)據(jù)集,以至于任何人類個體基本上都無法望其項背。那么問題也就來了——對于人來說,同一個問題,不同角色不同場景的理解和回答會大相徑庭。那我們?nèi)绾纹诖?GPT 能夠以更準確的方式回答我們的問題呢?
答案是,為 AI 分配角色。我們也可以將之視為角色扮演(Cosplay)。這樣 GPT 會以你定義的角色,更加合適地回答你的問題。
我們先向 GPT 模型提一個問題:“如果我面試人工智能專家,你會提出什么樣的問題?”?
可以看到,GPT 回答得還蠻不錯,但是不太像人工智能公司的 HR 提的問題,感覺沒那么專業(yè)。
以下是一個例子:“你是一個人事的專家,已經(jīng)從事招聘工作超過10年,幫助企業(yè)面試候選人。你的任務是提出常見的問題來確認候選人是否滿足要求,并且愿意入職。如果你理解你的角色,請回復‘知道了’。”
這一輪提問感覺就更專業(yè)、更注重實際 AI 工作經(jīng)驗了。
實際上 GPT-3.5 和 GPT-4 模型已經(jīng)使用新的 ChatCompletion 接口取代之前模型使用的 Completion 接口,它們的差別在第一小節(jié)的截圖中其實已經(jīng)展示了。ChatCompletion 在會話開始的時候,會使用一個系統(tǒng)消息來配置模型的角色:
{"role":?"system",?"content":?"You?are?a?helpful?assistant."}
在這條消息里,我們就可以用文本來設(shè)置對話模型的角色扮演,讓后續(xù)的對話更加準確合適。
以下是一個例子:為了把神經(jīng)語音接入到 GPT,我需要生成的代碼支持 SSML。于是我們甚至可以在這里提出對回復文本的格式要求。
{"role":"system","content":"You?are?a?Chinese?poet?and?must?use?Speech?Synthesis?Markup?Language?to?answer?questions?to?help?people?find?the?beauty?of?language."}
正如你看到的,我在系統(tǒng)角色中要求回答問題必須使用 SSML。于是,GPT-4 模型給了我如下的答復:
我其實已經(jīng)可以直接把回復的文本提供給?Azure Speech?認知服務?[1]來生成語音(TTS,Text To Speech),讓基于神經(jīng)語音的人工智能聲音抑揚頓挫了。
個性化生成
?
實際上,我們前一節(jié)的內(nèi)容已經(jīng)涉及到一點個性化了,其實我們完全可以通過個性化的設(shè)定和要求獲得完全不同的人工智能生成內(nèi)容。
以下是一個例子:我們使用小學生的語氣,生成一段話,說明人工智能為什么不會取代人類。
可以發(fā)現(xiàn),這位 GPT-3“小學生”看過一些人工智能的書,回答的很準確,知道目前人工智能還不具備創(chuàng)造力和情感。但更多的知識可能就有限了。我們換一個方式。
以下是一個例子:我們冒充非常有經(jīng)驗的人工智能專家,以比較詼諧的例子回答這個問題。
這次生成的內(nèi)容,就和前面的內(nèi)容有些不同。GPT-3 通過一個便于理解的例子,說明了創(chuàng)造性是目前人工智能所無法實現(xiàn)的。
我們不能指望一次就從 GPT 獲得期望的回答,按照我們的期望去調(diào)整提問,不斷嘗試。個性化的回答會更“不像”人工智能生成的,甚至更容易通過檢測 ChatGPT 生成內(nèi)容的測試。
一步一步來
?
▍思考鏈
大語言模型(LLM)在回答一些比如計算類的邏輯問題時,經(jīng)常會出現(xiàn)啼笑皆非的結(jié)果。這時候使用思考鏈(CoT,Chain of Thought)來幫助 LLM 解釋其推理過程會有幫助。
簡單來說,思考鏈就是引導模型把一個問題的描述拆分為一系列更能說明邏輯的問題,以此加強模型處理更復雜的算術(shù)、常識和符號推理能力。
以下的例子來自于論文?Chain-of-Thought Prompting Elicits Reasoning in Large Language Models?[2]。
在這篇論文中,作者使用了 GSM8K 的數(shù)據(jù)集。這個數(shù)據(jù)集包含了一些根據(jù)兩三句話寫算式算答案的樣例——這不就是小學應用題嘛,但 GPT-3 在此數(shù)據(jù)集上回答問題的準確率非常感人。
和人一樣,如果將一個“復雜”問題或者沒有“完全”描述的問題,誘導產(chǎn)生中間推理步驟,就能夠有效提高對問題的理解。
僅僅通過將 CoT 指令“讓我們一步一步考慮”添加到 MultiArith 數(shù)據(jù)集的每個輸入查詢中,GPT-3 的準確性就從17.7%提高到了78.7%[3]。由此可見,當人工智能還不那么“智能”的時候,使用思考鏈將一個問題分解為邏輯聯(lián)系的多個問題將會幫我們獲得更準確的回復。
GPT-4 的訓練提高了模型的高級推理能力,簡單地說,考試成績就好多了!所以 CoT 的幫助可能不是那么明顯,但仍然值得試試。
?
▍自洽 CoT
在 CoT 的基礎(chǔ)上,其實還有繼續(xù)提升的做法,比如,在前文說的思考鏈做法上,生成多個思考鏈(推理路徑),然后對答案進行多數(shù)投票,票高者稱為答案。
這個做法本身是無監(jiān)督的,它從語言模型的譯碼器來生成一組不同的推理路徑;每個推理路徑可能導致不同的最終答案,所以我們通過邊緣化采樣推理路徑,在最后的答案集中,找到最一致的答案來確定最優(yōu)答案。這種方法類似于人類經(jīng)驗:如果多個不同的思維方式導致同樣的答案,會給我們更大的信心——最終的答案估計是正確的。
這個操作可以顯著提高思考鏈的性能。以結(jié)合到 GPT-3 模型為例,在前文談到的 GSM8K 數(shù)據(jù)集上獲得了+17.9%絕對精度增長[4]。
?
▍問題分解
在介紹從少到多(L2M,Least-to-Most)方法之前,我們花一點時間看看 OpenAI 的一個里程碑研究成果——用人類反饋總結(jié)書籍[5]。這篇文章其實是為了機器學習模型對齊人類意圖,但舉的例子很有意思:對一本書進行總結(jié)的模型。
我的理解是分為幾層過程,先對書的小節(jié)進行總結(jié),然后對這些總結(jié)的結(jié)果再做一層總結(jié),依次類推幾次,就實現(xiàn)了對書籍甚至電影等作品的內(nèi)容總結(jié)。
我們把這個方法反過來用,不就正好可以拿來解決復雜推理問題嗎?
首先將復雜的推理問題拆分為一系列相關(guān)的子問題(問題簡化),然后按順序解決這些子問題(問題解決)。提示在解決子問題時包含三個部分:
?(1) 演示如何解決子問題的常量示例;
?(2) 可能為空的、已回答先前子問題和生成的解決方案列表;
?(3) 下一個要回答的問題。
傳遞給模型的提示,包含演示如何減少復雜問題的示例,后跟要減少的特定問題。換個角度想想,每個子問題的解決都將推動解決下一個問題,就像我們小時候老師教我們的一樣:解答題目的每個子問題都能得分,并提高我們解答最終題目的信心,最后解答出整個題目。
?
▍生成知識提示
生成知識提示(Generated Knowledge Prompting)涉及兩個步驟:
?(1) 使用少樣本學習,演示從語言模型生成與問題相關(guān)的知識陳述;
?(2) 使用第二語言模型對每個知識陳述進行預測,然后選擇置信度最高的預測。
其核心思想是從語言模型中生成有用的知識,然后將這些知識作為輸入提示與問題一起提供。這種方法不需要任務特定的監(jiān)督來進行知識集成,也不需要訪問結(jié)構(gòu)化的知識庫。其性能受到三個因素的影響:知識質(zhì)量、知識數(shù)量和推理過程中集成知識的策略。
生成知識提示可以提高大規(guī)模、最先進的模型在四個常識推理任務上的性能,包括 NumerSense、CSQA(CommonsenseQA)、CSQA 2.0 和 QASC 基準測試。突出了大規(guī)模語言模型作為改進常識推理的外部知識的靈活來源,使得模型回復問題不再顯得那么缺乏常識。
關(guān)于如何跟 ChatGPT 聊天我們就先聊到這里啦!回憶一下,雖然我們參考了很多比較前沿的論文和文章,但大道至簡,其中的道理卻很容易為人理解。那么,就讓我們用更好的提問方式,釋放 GPT 模型的能力吧!
參考鏈接:
[1] ERIC-URBAN. 語音服務文檔 - 教程和 API 參考 - Azure 認知服務 - Azure Cognitive Services[EB/OL]. [2023-04-11]. https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/?WT.mc_id=AI-MVP-33253.
[2] WEI J, WANG X, SCHUURMANS D, 等. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models[M/OL]. arXiv, 2023[2023-04-09]. http://arxiv.org/abs/2201.11903.
[3] CHEN J, CHEN L, HUANG H, 等. When do you need Chain-of-Thought Prompting for ChatGPT?[M/OL]. arXiv, 2023[2023-04-10]. http://arxiv.org/abs/2304.03262.
[4] WANG X, WEI J, SCHUURMANS D, 等. Self-Consistency Improves Chain of Thought Reasoning in Language Models[M/OL]. arXiv, 2023[2023-04-09]. http://arxiv.org/abs/2203.11171.文章來源:http://www.zghlxwxcb.cn/news/detail-446321.html
[5] Summarizing books with human feedback[EB/OL]. [2023-04-11]. https://openai.com/research/summarizing-books.文章來源地址http://www.zghlxwxcb.cn/news/detail-446321.html
到了這里,關(guān)于你真的會跟 ChatGPT 聊天嗎?(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!