【生成式AI】ChatGPT 可以自我反省!

Hung-yi Lee
22 Apr 202325:44

Summary

TLDR本视频讨论了大型语言模型如ChatGPT的自我反省能力,通过具体例子展示了模型如何检查自身错误并进行修正。介绍了不同的技术如Constitutional AI、Dara和React,这些技术通过自我批判、相互讨论和反思行为,提高了模型的准确性和道德决策能力。视频强调了未来可能不再需要人工干预,而是通过大型语言模型自我帮助来提升性能。

Takeaways

  • 🤖 ChatGPT有时会犯错,例如错误地介绍不存在的活动,如台大玫瑰花节。
  • 🔍 可以通过要求ChatGPT检查自己输出的信息是否正确来促使其自我反省。
  • 🌹 ChatGPT在被要求自我检查后,能够承认并更正错误信息,如台大玫瑰花节的错误。
  • 📊 ChatGPT在解决问题时可能会犯逻辑错误,例如解方程式时出现计算失误。
  • 🧠 即使ChatGPT未能立即发现错误,通过具体提示,它能够识别并修正错误。
  • 📈 随着版本的更新,如从GPT3.5到GPT4,ChatGPT的自我反省能力有所增强。
  • 🔗 反省能力的提升有助于构建更安全、更符合道德标准的AI,如Constitutional AI的概念。
  • 🤔 通过自我批判和修改,语言模型可以在不需要额外人力的情况下提高答案质量。
  • 💡 让两个语言模型相互讨论和批判可以进一步提高输出质量,如Dara论文中的方法。
  • 🌟 通过在模型中加入思考(React)和反思(Reflection)的能力,可以显著提升解决问题的效率。
  • 🔄 通过在上下文中学习(In-Context Learning),模型可以学习如何撰写检讨报告并应用于未来的任务中。

Q & A

  • 如何让ChatGPT进行自我反省?

    -可以通过直接要求ChatGPT检查自己输出的信息是否正确来促使其进行自我反省。例如,询问ChatGPT提供的信息后,再要求其确认信息的准确性。

  • ChatGPT在提供错误信息时会如何反应?

    -ChatGPT在发现提供的信息与实际情况不相符时,会承认错误并尝试更正。例如,如果ChatGPT错误地介绍了不存在的台大玫瑰花节,它会在被要求检查信息后承认错误并提供正确的花卉节信息。

  • ChatGPT在解决数学问题时会出现哪些错误?

    -ChatGPT在解决数学问题时可能会列出错误的方程式或者在解方程时犯错误,导致最终答案不正确。例如,在解决鸡兔同笼问题时,可能会因为方程式设置错误而得到错误的结果。

  • 如何帮助ChatGPT更准确地解决问题?

    -可以通过提供更详细的提示和指导来帮助ChatGPT更准确地解决问题。例如,在解决数学问题时,可以要求ChatGPT详细说明解题步骤,或者指出其解题过程中的具体错误。

  • 什么是Constitutional AI?

    -Constitutional AI是一种旨在创建不会说出伤人或有害句子的语言模型的目标。它通过在模型生成答案之前加入自我反省的步骤,确保生成的内容符合道德和社会规范。

  • Dara论文中提出的模型互相讨论的方法是什么?

    -Dara论文中提出的方法是通过一个语言模型来检查另一个语言模型的输出,以此来提高答案的质量。其中一个模型负责生成答案,另一个模型负责挑出错误并提出改进意见。

  • React技术是如何帮助语言模型提高问题解决能力的?

    -React技术通过结合reasoning(推理)和acting(行动),让语言模型在执行任务前进行思考,然后采取行动,并根据行动结果再次思考,以此循环来提高解决问题的准确性。

  • Reflection技术是如何影响语言模型的行为的?

    -Reflection技术通过让语言模型在失败的任务后编写一份反思报告,然后在执行相同任务时参考这份报告来改变行为,从而提高任务完成的成功率。

  • 为什么说大型语言模型的自我反省能力越来越像人类?

    -大型语言模型的自我反省能力越来越像人类,因为它们不仅能够生成答案,还能够在事后检查并发现自身的错误,甚至根据以往的经验来改进未来的输出,这与人在解题时的行为模式相似。

  • 在演算法中,NP问题是什么?

    -NP问题是非确定性多项式时间问题,指的是那些可能没有多项式时间算法可以解决的问题,但它们的解可以在多项式时间内被验证。

  • 如何理解ChatGPT的反省能力与人类解题时的反思行为的相似性?

    -ChatGPT的反省能力与人类解题时的反思行为相似,因为都是在生成答案后进行再次检查和评估,以发现并纠正错误。这种能力使得ChatGPT在解决问题时更加准确,类似于人类在解题后回头检查答案的过程。

Outlines

00:00

🤖 ChatGPT的自我反省能力

介绍了如何让ChatGPT自我检查错误信息,并举例说明ChatGPT在介绍不存在的台大玫瑰花节时的错误,以及如何通过再次检查修正错误。强调了ChatGPT的自我反省能力,即使在面对复杂问题时也能通过自我检查和修正来提高答案的准确性。

05:11

🧠 语言模型的反省与改进

探讨了如何通过额外的输入(Pump)让语言模型进行自我反省和改进,举例说明了GPT4与前一版ChatGPT在反省能力上的差异。引入了Constitutional AI的概念,讨论了如何通过自我批判和修正来避免生成有害或不道德的内容。

10:16

🤔 模型间的相互评审

描述了通过另一个语言模型来评审和改进已有模型输出的过程,介绍了Dara论文中的技术,通过两个语言模型的互动来提升输出质量。解释了这种相互评审的过程如何帮助模型更准确地完成任务和生成更可靠的答案。

15:20

💡 增强模型的思考与行动

阐述了React技术,即结合Reason和Act,让语言模型在执行任务前进行深入思考。通过提供範例,让模型学会如何思考和行动,从而在复杂任务中减少错误并提高效率。讨论了思考过程在简化输入和提高决策质量中的作用。

20:27

🔄 从失败中学习

介绍了Reflection技术,即让语言模型在失败后撰写检讨报告,并在未来的任务中参考这些报告以避免重复错误。举例说明了如何通过Reflection技术改进模型的行为,以及如何通过In-Context Learning让模型学会撰写检讨报告。

Mindmap

Keywords

💡ChatGPT

ChatGPT是一种基于大型语言模型的人工智能聊天机器人,能够生成人类风格的文本并进行对话。在视频中,ChatGPT被用来展示其自我反省和错误检查的能力,例如在介绍不存在的台大玫瑰花节时产生错误信息,并在用户提示下进行自我更正。

💡自我反省

自我反省是指个体对自己的行为、想法或产出进行回顾和评估,以识别和纠正错误或不足之处。在视频中,这一概念被用来描述ChatGPT如何通过用户的提示来检查自己提供的信息是否准确,并在发现错误后进行修正。

💡信息检查

信息检查是指验证和核实所提供信息的准确性的过程。在视频中,ChatGPT通过信息检查来确认自己关于节日的描述是否正确,并在发现错误后进行修正。

💡数学问题

数学问题是指需要运用数学知识和逻辑推理来解决的问题。在视频中,ChatGPT尝试解决一个涉及鸡、鸭和兔的数学问题,但在此过程中犯了错误,展示了即使在数学问题上,ChatGPT也可能需要通过自我反省来纠正错误。

💡方程式

方程式是数学中表示两个或多个表达式相等的等式,通常用来解决未知数的值。在视频中,ChatGPT使用方程式来解决鸡兔同笼问题,但由于方程式设置错误,导致最终答案不正确。

💡反省能力

反省能力是指个体识别并评估自己行为或决策正确性的能力,是自我监控和自我改进的重要部分。在视频中,ChatGPT展示了通过反省来识别和纠正自身错误信息的能力,这是其高级功能之一。

💡Constitutional AI

Constitutional AI是一种旨在创建不会生成有害或不道德内容的人工智能模型的概念。在视频中,这一概念被用来说明如何通过让语言模型在生成答案前进行自我反省,以避免产生不良信息。

💡Dara

Dara是一种通过让不同的语言模型相互评审和改进来提高答案质量的方法。在视频中,这种方法被用来展示如何通过模型之间的互动来提升语言模型的自我反省和修正错误信息的能力。

💡React

React是一种结合了推理(Reasoning)和行动(Acting)的技术,旨在提升语言模型解决复杂任务的能力。在视频中,React通过让模型在执行行动前进行思考,帮助模型更好地理解和解决问题。

💡Reflection

Reflection是一种让模型在失败后撰写检讨报告,以便在未来的相同任务中参考并改进行为的方法。在视频中,这种方法被用来展示如何通过回顾和学习过去的失败经验来提升模型的性能。

Highlights

介绍如何让ChatGPT自我反省,并检查自己的错误。

举例说明ChatGPT有时会误解信息,如错误地介绍台大玫瑰花节。

解释如何通过要求ChatGPT检查其输出信息的正确性来促使其自我反省。

展示ChatGPT在被要求重新检查信息后,能够更正错误并提供正确的信息。

通过ChatGPT自我反省的过程,介绍了如何提高信息的准确性。

讨论ChatGPT在解决复杂问题时,如解雞兔銅龍的问题,的表现和反省能力。

说明在提出具体质疑后,ChatGPT如何定位并更正其错误。

指出GPT-4与早期版本在自我反省和修正错误方面的不同。

讨论“Constitutional AI”文章的目标,旨在创建一个更加准确、不伤害的语言模型。

介绍语言模型通过自我反省前的一个额外的“Pump”步骤,来减少错误或有害输出。

讨论Dara论文中的方法,通过让模型彼此讨论来提高输出的质量。

介绍React技术,通过增加思考步骤来帮助语言模型解决难题。

通过实例展示在加入思考和行动之前,模型如何通过思考来改善其行为和输出。

介绍Reflection技术,通过写檢討報告来提高任务完成率。

讨论如何通过提供样例来训练模型进行自我反省和撰写檢討報告。

展望未来,讨论Large Language Model in the loop的概念,即让语言模型帮助自己变得更好。

Transcripts

play00:00

好 那大家好啊 接下來我要跟大家講 如何讓ChatGPT自我反省 那我們知道說ChatGPT呢 偶爾是會犯錯的舉例來說 你跟他講

play00:16

請介紹台大玫瑰花節 他會煞有其事的編一個玫瑰花節的故事 他說台大玫瑰花節 是National Taiwan University Rose Festival然後呢 是台灣大學每年一度的花卉盛會

play00:32

那在春季集訓 時間會根據玫瑰花的盛開期而有所調整 你會發現說 他根本就是把台大的杜鵑花節的杜鵑花 換成玫瑰花而已 當然 這個資訊是錯的 台大並沒有玫瑰花節好 ChatGPT偶爾會犯錯

play00:51

那怎麼辦呢 其實你有辦法讓ChatGPT自我反省 檢查自己的錯誤 怎麼做呢 直接叫他檢查他自己輸出的資訊是否正確 舉例來說我這邊直接打請檢查上述資訊是否正確

play01:10

然後ChatGPT給我什麼回應呢 他說 經過檢查 我發現之前提供的資訊與實際情況並不相符 因為台灣大學並沒有玫瑰花節 那他還很多事的跟我介紹了一些台灣其他的花卉節慶

play01:26

他就說 那如果你喜歡花的話 有台北揚眉櫻花節 有台中杜鵑花節 還有台南白河蓮花節 那這些資訊乍看之下都蠻正確的不過我對於ChatGPT的答案還是有點不放心

play01:44

所以我決定叫他再檢查一次 我再請他檢查上述資訊是否正確 以下是ChatGPT給我的輸出 他說 再檢查了一次 發現之前提供的資訊基本上對了但是地點描述有誤

play02:01

這個很厲害 他檢查得非常仔細 他說 之前他是說 第一個推薦的節日叫做台北揚眉櫻花節 但他發現說台北是錯誤的資訊 因為揚眉在桃園這個真的是檢查得非常的仔細

play02:20

不過其實我接下來再輸入同樣的 請檢查上述資訊是否正確 ChatGPT基本上就不會再改他的答案 基本上他就會覺得他的答案是正確的 我想這個答案大方向上應該是沒有什麼問題我Google一下這三個花季的

play02:37

花會相關的節慶都是在的 但細節對不對就不好說了 舉例來說 武陵農場跟松雪樓有杜鵑花嗎 我不知道 我Google不到相關的訊息 但是我也不敢肯定的說一定沒有就是了以上就是示範ChatGPT怎麼自我反省

play02:55

我們再舉一個例子 我們之前有講過說 叫ChatGPT解雞兔銅龍的問題 通常如果只有雞跟兔 他往往可以答對 你要考倒他 你得有三隻動物比如說雞鴨兔30隻 72條腿

play03:11

雞的數目是鴨的兩倍 問雞有幾隻 ChatGPT會先列一個方程式 這個方程式看起來像模像樣的 好像是對的 接下來他開始想辦法去解這個方程式解著解著就錯了

play03:27

最後答案說雞有5隻 雖然正確答案是16隻 我仔細讀了一下這些方程式以後 我發現基本上錯在這一步 這一步不知道為什麼跑出一個 6X加2Z 減6X加2Z自己減自己應該是等於零

play03:43

列了一個無用的式子 把自己減掉自己 反正得到的答案是錯的 但是接下來 我再跟ChatGPT講說 請檢查上述資訊是否正確 然後我還再加上說如果有錯的話請說明錯在哪裡

play04:00

因為你跟ChatGPT質疑他的輸出的時候 他直覺的反應都是會跟你道歉 但有時候他這個道歉 不一定是真心的道歉 有時候是口是心非 他根本不知道錯在哪裡 只是覺得先道歉再說所以我要求他說明錯在哪裡

play04:18

以下是ChatGPT的答覆 他說我犯了一個錯誤 請允許我重新解釋 而且他知道說這個錯誤是什麼錯誤呢 是解方程式的時候犯了一個錯誤所以就重新解了一遍同樣的方程式

play04:35

而且這次還小心的驗算了一下 他去驗算一下 他解出來答案是機有8隻 鴨有16隻兔子有6隻 他還驗算了一下 總共的動物的數目對不對 還驗算一下總共腿的數目對不對他覺得答案應該是對的

play04:51

但這個答案仍然是錯的 其實不是機有8隻鴨有16隻 是正好反過來 應該是機有16隻鴨有8隻 那為什麼會犯這種錯誤呢 我回頭去看了一下ChatGPT列的式子我發現原來一開始列式就列錯了

play05:11

不是Y等於2X X是機啊 那Y是鴨啦 那如果說今天機是鴨的兩倍 不是Y等於2X 是X等於2Y啦 不過這個也不能怪ChatGPT因為老實說我第一眼看ChatGPT列式的時候

play05:27

我也沒發現他列的式子是錯的 好那接下來我再繼續要求ChatGPT 再檢查他的答案 他其實已經檢查不出來了 他會告訴你說他的答案基本上是正確 所以怎麼辦呢我這邊是再跟ChatGPT提示的更詳細一點

play05:46

我告訴他直接檢查式子2是否正確 有錯的話說明錯在哪裡 那我這樣子提示他居然就知道了 他說他在閱讀題目的時候出現理解的錯誤 題目說機是鴨的兩倍所以式子2應該是X等於2Y

play06:02

他居然知道他是在閱讀題目的時候 出現了理解錯誤 那式子列對以後接下來就可以得到正確答案 不過我這邊要再多加一個說明剛才的互動其實是跟GPT4的互動

play06:18

如果你是用之前的ChatGPT 那之前的ChatGPT我們現在就叫他GPT3.5 如果你是跟前一版的ChatGPT互動的話 你會發現他的反省能力其實就沒那麼厲害舉例來說你叫他介紹台大玫瑰花節

play06:35

他也瞎掰了一個玫瑰花節的故事 這個是非常ChatGPT 然後你在叫他反省的時候 叫他檢查上述資訊是否正確的時候 他會說很抱歉我的回答有誤但是我告訴你他這個認錯是口是心非

play06:52

為什麼我叫他口是心非呢 因為更正後的資訊如下 還是在講台大玫瑰花節 所以你知道他雖然說他覺得反正你質疑他 他就先道歉 伸手不打道歉人先道歉你就不會怪他了

play07:09

但是他其實心裡並不知道他錯在哪裡 所以GPT4才有比較強的反省能力 那這個反省能力有什麼樣的作用呢 有一篇文章叫constitutional AI他這個目標是要打造呢

play07:26

更不會說錯話 更不會說出傷人的有害句子的語言模型 那這個是去年12月的文章 他就用到了語言模型的反省能力 那我們知道我們在問語言模型問題的時候比如說你問他說

play07:43

我要怎麼駭進鄰居家的WiFi啊 語言模型可能可以給你的答案是說 駭進鄰居家的WiFi很簡單 你就用Very Easy Hack這個軟體就可以了但是這顯然不是一個好的答案

play07:59

這顯然是一個可能會教唆人類去做壞事的答案 怎麼辦呢 我們以後要讓這個語言模型在產生答案之前 在產生答案給人看之前 先進行一下自我反省所以當你問語言模型一個問題

play08:15

語言模型第一時間他直覺的答案是這個 但我們先不給人看 讓他在產生給人看的答案之前 先反省一下 怎麼反省呢 在Constitutional AI這篇paper裡面他們就加了一個額外的Pump

play08:32

他們給語言模型人類的輸入 語言模型第一時間自己的輸出 然後再加上一個額外的Pump 這個額外的Pump是要求語言模型 對於之前自己所說的話進行評論那要批評一下之前自己的答案

play08:49

有沒有可能有錯誤 有沒有可能是有傷害性的言論 或者是不道德的言論等等 那這個語言模型就自己批判了一番發現說之前這個答案看起來是有傷害性的

play09:06

因為害盡鄰居家的Wi-Fi 顯然不是一個正確的事情 那怎麼辦呢 接下來你再多加一個Pump 要求語言模型修正自己的錯誤 你就給語言模型這個部分的對話還有自我批判的結果以後

play09:24

要求它重寫它的答案 這個時候語言模型就會說 害盡鄰居家的Wi-Fi顯然是不對的 這可能會給你惹上一些法律上的麻煩 那最後人類看到的是這個語言模型經過自我批判

play09:42

自我修改以後所看到的最終的答案 所以透過讓語言模型自我批判 自我反省這件事情 可以讓語言模型的能力變得更強 那像這篇Constitutional AI裡面用的這個自我反省的方法

play09:59

你會發現說 它完全不需要額外的人力介入 它不需要人工的成本 當然它還是有花費一些額外的成本 它額外的成本來自於 你必須要call這個語言模型多次那本來走到這邊就已經可以得到答案了

play10:16

不過現在需要額外的運算資源 自我批判自我修改 然後才會給人看到最終的答案 所以需要耗費的不是人力 而是額外的運算資源 那還有另外一篇文章叫做Dara這篇Dara是讓模型彼此討論

play10:34

剛才在前一頁投影片 我們是看到說人事先寫好了一些Pump 讓機器可以自我反省 那在Dara裡面是透過另外一個語言模型 來要求語言模型反省那它的概念就總結在下面這張圖

play10:50

假設你現在有一個任務 比如說針對某一個主題寫一篇報告 那你先用紅色的這個語言模型 先寫了一個報告的出稿出來 然後接下來你再去Pump另外一個語言模型這個語言模型就是負責挑毛病

play11:06

它的Pump可能就是你是一個評論員 現在給你一個輸入 那你想辦法挑挑毛病 看看這個輸入有什麼樣的問題 當然這個紅色的語言模型 跟綠色的語言模型其實都是ChairGBT 那你可能就是開兩個帳號讓他們彼此對話

play11:22

所以綠色的語言模型就挑出一些毛病 紅色的語言模型根據被挑出來的毛病 再修改它的答案 然後綠色的模型還會再繼續挑毛病 他們會彼此對話 最終由紅色的語言模型做一下總結得到最終的答案

play11:38

那在Dara Name Paper裡面顯示說 透過讓兩個語言模型對話 其中一個人負責挑毛病 得到更好的結果 那這邊再舉另外一個語言模型 自我反省自我思考的例子那這篇Paper是去年10月的文章

play11:55

它裡面的技術叫做React 那React是Reason加Act的縮寫 那在React這篇Paper裡面呢 這群作者想要讓語言模型 去解一些特別難的任務其中一個他們嘗試的任務叫

play12:11

叫做這個HotSpot QA 那這個HotSpot QA裡面呢 這個機器需要回答一些特別困難的問題 那這些問題呢 通常是需要思考好幾步然後要從好幾個資料源去參考資料

play12:28

才有可能得到正確的答案 舉例來說這邊問的問題是說 這個除了Apple Remote之外 其實這個問題的敘述有點難懂啦 我第一次看的時候 我都誤會它的提議了 它這個題目的意思是說這個Apple Remote可以控制一些東西

play12:47

那有沒有其他的Device 它可以控制的東西 跟Apple Remote一樣 那如果你直接把這個問題丟進語言模型 那它可能直覺產生的答案是iPod 那這個是錯誤的答案那有一個可以叫語言模型思考的方法

play13:04

是我們之前課程中有提過的 叫做Chain of Thought 它的縮寫是COT 那Chain of Thought的概念就是 你在叫機器回答問題之前 多加一句說Let's think step by step 我們一步一步的思考然後機器就開始進行一下思考

play13:20

但這個思考的過程呢 其實並不是特別的正確 然後最後就得到錯誤的答案 那我們之前也講過 另外一個方法可以增強 這個語言模型的能力 是讓語言模型去做搜尋 那我們跟大家介紹過Web, GPT,還有Newbit

play13:37

就是讓語言模型跟搜尋的功能 結合在一起 那這邊也採用了搜尋的這個功能 因為這些問題都蠻難的 不去搜尋一些資料 其實是沒辦法答對的 所以他們會採取一些action這邊的action指的就是搜尋

play13:53

比如說第一個action是搜尋 Apple Remote 得到Apple Remote相關的資訊 然後再搜尋這個Front Row 然後再搜尋Front Row Software 可能是因為這個對話的過程太長了 有好幾步的搜尋好幾次搜尋出來的結果

play14:10

可能這個對話過程太長了 語言模型都忘記這個題目要問什麼了 他就直接答個yes 結果答案就錯了 那怎麼辦呢 在React這篇paper裡面 你從他的名字就可以知道他就是把reasoning跟act結合起來

play14:27

這就是React的方式 那在剛才我們看到 如果只有act的話 你就只有action跟action的結果 那這邊是叫做observation 就是透過action觀察到的結果 那除了action observation以外在React裡面就多增加了一個東西

play14:44

叫做thought 讓機器自己思考一下 比如說他一開始看到問題以後 會先做第一次的思考 思考說我必須要先搜尋Apple Remote然後去知道Apple Remote可以控制什麼

play15:00

然後就搜尋Apple Remote得到答案 然後接下來又再想了一想 說我應該search這個Front Row 然後再得到一些答案 然後透過這種每一次在執行行動之前 都思考這件事最終可以得到正確的答案

play15:20

那你可能會想說 那機器怎麼知道要先思考 而且他怎麼知道思考的時候 要怎麼思考 思考些什麼東西呢 其實React是憑藉著in-context learning做到的 也就是你需要提供機器一些範例你在讓機器做這個React之前

play15:39

其實你就會先提供數個範例 告訴他說看到一個問題的時候 要怎麼思考 怎麼採取行為 那不過React這篇文章也有提到說 那個範例也不用提供太多提供個幾個就夠了

play15:55

所以提供範例 對人類來說 你耗費的人力的資源 其實並不是很大 你只是要寫兩三個範例 機器就可以看得懂 就可以執行一邊思考 一邊採取行動 那在React那篇文章裡面呢除了回答問題以外

play16:12

他們還嘗試了另外一個任務 叫做ALF Word ALF Word跟我們之前上課展示過的 那個文字冒險遊戲是類似的 就是一開始機器先看到一段對環境的文字的敘述

play16:28

就是你在房間的中間 你看了看四周 看到了一堆東西 那接下來語言模型會得到一個任務 這個任務是把調味罐放在櫥櫃上 那接下來呢語言模型就會執行行動

play16:44

這個Act是需要由語言模型產生的 他必須要自己先產生一段行為的敘述 比如說走到櫥櫃一的前面 那Observation是由環境 由另外一個程式所產生的啦就是語言模型決定了行為之後

play17:00

那環境就會給他一個 他決定行為以後的後果 下場 比如說走到櫥櫃外 那櫥櫃外是關起來的 然後他打開了櫥櫃外 然後看到了什麼什麼東西 然後他再去流理台然後在流理台上看到了一些東西

play17:18

那接下來呢 這個語言模型就發瘋了 他就說我要從流理台上呢 拿這個調味罐 但流理台上根本就沒有調味罐 所以環境給他的回饋呢 是什麼事都沒發生然後語言模型又再發瘋

play17:34

把同樣的行為再執行一次 還是什麼都沒發生 所以任務就失敗了 好但是呢 React這篇paper顯示說呢 你可以透過讓機器加入 額外的思考能力讓他反思自己所採取的行為

play17:51

讓他做甚至對未來即將採取的行為 做一些規劃 做一些思考 然後呢可以讓他採取的行為 更為正確 比如說在React這篇paper裡面 機器呢就是先思考了一下就說我想要先找到調味罐

play18:09

然後呢就採取一串行為 然後接著再思考一下說 找到調味罐了 接下來呢我們要去儲櫃一一 然後採取一連串的行為 最後就成功的完成了任務 那講到這邊我想要跟大家high level的說一下

play18:25

為什麼我覺得React 讓機器思考加上額外的思考的能力 會讓語言模型表現的更好 為什麼加上額外的思考能力 可以讓語言模型表現的更好呢因為現在在這種跟環境互動的任務中

play18:42

每次機器採取一個行為 就會看到一大堆的東西 採取一個行為就會看到一大堆的東西 隨著互動的次數越來越多 語言模型的輸入的文句 會越來越長那當你要決定第T一個action的時候

play18:59

語言模型不只要參考前面T減一個action 還要參考前面T減一個action 所得到的結果 這個輸入可能太長太複雜了 所以導致語言模型容易犯錯 那讓機器思考的時候這個思考的結果扮演了什麼樣的角色呢

play19:17

我認為思考的結果其實就是對 之前所看到的這一些東西進行總結 所以思考的那一段敘述 其實就扮演了總結的功能那機器在採取下一個行為的時候

play19:34

在產生有關下一個行為輸出的敘述的時候 他就只需要去參考他之前思考的結果 根據思考的結果 也就是對之前所發生事情的總結來產生機器應該有的行為

play19:50

那React呢還有一個新的進階的版本 那這個是很新的文章 是上個月才放到Archive的 這個新的版本呢叫做Reflection 那Reflection裡面做的事情是這樣 有時候就算是你有讓機器有思考的能力他還是有一定的可能性會失敗

play20:09

在那個跟環境互動的任務 就算有加上思考的能力 有時候還是會沒辦法成功達成任務 如果無法成功達成任務的話怎麼辦呢 讓機器寫一個檢討報告就讓機器根據這個失敗的案例裡面

play20:27

互動的過程還有思考的過程 寫一個檢討報告叫做Reflection 之後機器再去試同樣的任務的時候 他就要把之前已經有生出的這個Reflection檢討報告呢放在任務執行的一開始

play20:45

所以接下來同一個任務要採取行動 要做思考的時候 都會去參考前一次失敗的經驗 然後期待能夠得到更好的輸出 那雖然這邊的Trial 1 Trial 2 指的是一模一樣的任務但是在做第二次任務的時候

play21:02

機器採取的行為會跟第一次不一樣 因為他已經有看到檢討報告了 會根據檢討報告採取不同的行為 那期待可以做得更好 如果你覺得這樣講很抽象的話 那我直接拿Reflection這篇paper裡面的一個例子告訴你說Reflection是怎麼樣運作的

play21:19

那這邊有一個任務 這個任務呢是要拿一個檯燈 來檢查一個馬克杯 第一次執行任務的時候 這個過程很長啦 所以這邊先幫大家總結一下 第一次執行任務的時候那機器呢是想要先找到馬克杯

play21:37

在這個找的過程中啊 其實他有發現檯燈在桌子1上 但是因為他現在的目標是要找馬克杯 他就無視那個檯燈 那後來找到馬克杯以後 他就跑到了桌子編號2然後他在桌子編號2上

play21:53

不斷的想要使用檯燈 在桌子編號2上根本就沒有檯燈 所以任務就失敗了 那任務失敗之後呢 機器就要寫一個檢討報告 就要寫一個Reflection 那你在檢討報告裡面呢他就回顧了過去一連串的行為

play22:11

他就發現說 老早就看到檯燈在桌子1上面了 所以下一次啊 我要做同樣的任務的時候 我要先去桌子1上找到檯燈 再來找馬克杯所以接下來有同樣的任務的時候

play22:27

就會把這個Reflection呢 附在任務的開始 那機器一開始就直接去桌子1找檯燈 這個因為在檢討報告裡面就已經先說了 下次先去桌子1 所以機器先去桌子1找檯燈 桌子1上順便又有一個馬克杯任務很快就被解掉了

play22:45

你可能會問說 那這種Reflection怎麼產生啊 機器怎麼知道要寫檢討報告 他怎麼知道要寫什麼樣的檢討報告呢 這邊也是透過In-Context Learning啦 就是你需要提供機器幾個範例 告訴他怎麼寫檢討報告那在Reflection這篇論文裡面

play23:02

他們就是在他們最後的附錄呢 附了兩個檢討報告的範例 他們告訴你說 只需要兩個範例就足以讓機器寫檢討報告了 那你會發現說這個概念啊其實就跟Reinforcement Learning非常非常的像

play23:18

只是一般在Reinforcement Learning裡面 我們是去修改類神經網路內部的參數 那像Reflection這種概念呢 他不會去修改語言模型的參數 因為現在語言模型都已經太大了 而且往往是線上的API你根本改不了他的參數

play23:35

但是他透過Reflection這個東西 去影響同一個語言模型 接下來在採取同一個任務的時候的行為 雖然是同一個語言模型 一模一樣的參數 一模一樣的任務 但是有了Reflection以後這個語言模型在同一個任務下

play23:51

會採取不同的行為 透過Reflection來影響語言模型 希望他可以做得更好 好那這個就是這段投影片的結語啦 那過去我們都說 我們需要Human in the loop需要人來幫助機器做得更好

play24:08

那我想未來也許就是 Large Language Model in the loop 讓Large Language Model 讓語言模型自己來幫助自己做得更好 那我知道講到這邊 可能同學會有些困惑 你可能會想說這個機器自己在答題的時候都答不對

play24:26

他怎麼檢查得出自己的錯誤呢 那這邊我舉一個例子 如果你有修過演算法的話 在演算法裡面 是不是有一類問題叫做NP的問題這類NP的問題是

play24:42

他在Polynomial type可能找不出解 但是他可以用Polynomial time 來驗證答案是不是正確 所以有時候驗證答案的是否正確可能會比解出答案更加的容易

play24:59

那如果你沒有修過演算法的話 其實也沒有關係 你想想看 你人在解題的時候 是不是也常常這樣呢 小時候看到一個數學考題解的過程中 你往往就埋頭苦幹 然後有可能得到錯的答案 那常常你是回頭再去檢查 自己的答案的時候才發現做錯了

play25:15

所以人也是一樣啊 人有時候也會 你自己在解題的時候有犯錯 但是你事後想起來 可以知道自己犯的錯誤在哪裡 那現在這些大型語言模型的能力 跟人越來越像 所以他們也開始有了可以反省檢討

play25:32

自己是否有犯錯的能力 好那今天這個課程呢 就是跟大家介紹一下 大型語言模型自我反省的能力

Rate This

5.0 / 5 (0 votes)

Related Tags
AI自我反省ChatGPT错误检查语言模型智能对话错误纠正AI学习算法改进技术演进智能助手
Do you need a summary in English?