ChatGPT回答的質量如何全靠Prompt輸入了,雖然GPT-3.5和GPT-4展現出來的能力差別很大,但是就輸入端講,你描述的越清晰,給AI的指令越準確,他提供的回答質量就越高,才有可能超越人類的生成質量,我常用的幾個技巧如下
Prompt的技巧非常多,如果你懶得記,也有一個經過實踐的萬能公式
Instruction(必須): 指令,即你希望模型執行的具體任務。 Context(選填): 背景信息,或者說是上下文信息,這可以引導模型做出更好的反應。 Input Data(選填): 輸入數據,告知模型需要處理的數據。 Output Indicator(選填): 輸出指示器,告知模型我們要輸出的類型或格式。
只要你按照這個框架寫 prompt ,模型返回的結果都不會差。 當然,你在寫 prompt 的時候,并不一定要包含所有4個元素,而是可以根據自己的需求排列組合。
學習如何顛覆性的AI聊天機器人將改變學校、工作和更多領域。 《ChatGPT入門》為你解密這個能回答問題、寫作文、生成幾乎任何被問到的文本的人工智能工具。這個強大的生成型AI被廣泛預測將顛覆教育和商業。在這本書中,你將學習ChatGPT是如何工作的,以及如何操作它以得到滿意的結果。你還將探討使用AI生成內容的各種目的的倫理問題。由一位在人工智能前線工作了十多年的記者撰寫,這本書深入探討了ChatGPT的潛力,讓你能做出明智的決定——而無需向ChatGPT尋求幫助。 了解ChatGPT的工作方式以及它如何適應生成型AI的世界 利用ChatGPT的力量來幫助你,并避免讓它阻礙你 編寫能得到你想要的回應類型的查詢 看看ChatGPT API如何與其他工具和平臺交互 這本及時的《入門》書籍非常適合任何生活或職業可能受到ChatGPT和其他AI影響的人。ChatGPT只是冰山一角,這本書可以幫助你為未來做好準備。
盡管你可以在YouTube、博客、文章、社交媒體和其他地方找到大量關于ChatGPT的內容,但這本書是首批,如果不是第一本,關于這個主題的全面性文本,特別是針對初學者或介紹級別。并且請不要誤解。在少數AI科學家之外,每個人在接觸ChatGPT時都是初學者。請安心,知道你正在和全球數百萬其他人一起學習。 如果你已經在嘗試或使用ChatGPT,你將在這本書中找到多種方法,利用你已經知道的內容,并將新事物融入到你的努力中,以便從ChatGPT中獲得更多。請注意,對ChatGPT的討論包括解釋和提及支持ChatGPT的GPT模型,但這些模型也被用作除此聊天機器人之外的其他應用的AI模型。對類似ChatGPT的模型的引用可能意味著它們在技術上與ChatGPT相似,也可能不相似。例如,競爭模型可能有也可能沒有大型語言模型(LLMs)作為其基礎,正如ChatGPT一樣,但它們仍然被稱為“類似”,因為它們的用戶界面和功能與ChatGPT的非常相似。這樣,你可以更容易地比較和理解市場上的各種生成型AI聊天機器人,而不需要深陷技術細節。一些網址可能會跨越兩行文本。如果你正在閱讀紙質版的這本書,并想訪問其中一個網頁,只需按照文本中記錄的方式準確輸入地址,忽略行間斷開的部分。如果你正在閱讀電子書,那就簡單了;只需點擊網址即可直接進入網頁。
歡迎來到“ChatGPT提示的掌握:制作清晰有效提示的指南”!在這個全面的指南中,你將了解關于制作清晰有效的ChatGPT提示,以推動參與和信息豐富的對話的一切。 無論你是聊天新手還是經驗豐富的ChatGPT用戶,本書對每個人都有幫助。從理解有效提示的原則到掌握構建清晰簡潔提示的藝術,您將獲得將ChatGPT對話帶到下一個層次所需的技能和知識。 想了解更多… 在這本ChatGPT的書中,你會發現: * 對ChatGPT有深入的了解 * 使用ChatGPT提高制作清晰有效提示的技能 * 掌握ChatGPT提示的藝術。 * 一步一步的指導和實際的例子 * 越來越多的提示
ChatGPT醫學領域表現杰出,專業性凸顯 ChatGPT是一個交互式人工智能模型,在醫學領域,ChatGPT可以用于輔助醫生進行疾病診斷、醫療保健管理等方面。從文獻上可以看出,ChatGPT專業性是有保障的。1.具備合格的醫學水平,GPT-4針對USMLE的測試準確率高達78.63%,能夠對患者的醫療咨詢問題提供準確的回復。2.ChatGPT能夠處理多科室的復雜病例,克服了不同科室之間的專業壁壘。3.ChatGPT在使用上沒有時間和空間的限制,回復速度快,內容豐富,患者滿意度較高。誠然,我們也應該注意到相關的劣勢,仍存在可提升的空間。目前ChatGPT在針對中國地區的醫療問題時,回復準確性還未達到最佳性能,存在繼續開發空間。此外,ChatGPT存在提供誤導性錯誤答案的可能性。最后,由于ChatGPT無法獲取醫學影像信息,其提出的建議可能存在局限性。 實用性測試:各類聊天AI達到實用級別,回復相對準確,還兼具患者安撫性 目前已進入市場的三種不同的主流AI交互軟件是ChatGPT(OpenAI),NewBing(Microsoft),文心一言(百度)。其中ChatGPT包含GPT-3.5和GPT-4兩種模式,NewBing(精準,平衡和創造三種模式)。因此我們用病例作為測試,以此來真實還原患者咨詢場景。我們選取的常見的高血壓,選取一個網上的病例作為樣本,分別將病例輸入到各模型,并結合指南和醫生意見做對比分析。綜合測試結果,各模型都有優劣,其中ChatGPT4.0表現亮眼。 ChatGPT4.0:GPT-4建議跟隨原醫生診斷用藥,同時向患者建議 要長期監測血壓和尿酸,并通過改變生活模式的方式來降低血壓。此外GPT-4提供的建議更具可讀性,建議內容與醫生基本一致,且建議內容更多,對患者的安撫性會更強,基本達到醫生水平。 GPT-3.5和文心一言均建議患者通過藥物控制高血壓,在此之外GPT-3.5也在生活習慣方面給到來患者建議。 相較于其它的AI交互軟件,NewBing并沒有直接給出診斷建議,而是通過搜索根據互聯網已有信息對患者的情況進行分析,并且提供了相關信息來源。 應用場景:AI使C端醫療可及性大大提升,有望帶來互聯網醫療、基層醫療服務質量升級 從以上兩章可以得出結論,ChatGPT類聊天AI在醫療端是兼具專業性與實用性的。 專業性上,ChatGPT4.0的論文測試顯示其在各地區考試中都能獲得良好的成績,并且綜合性和專科性醫學問題都有良好表現。可以說是初步具備合格的醫療水平,并且隨著影像/檢驗數據分析的迭代升級,提升空間巨大。 實用性上,從我們測試的高血壓患者病例中可以看到,主流的幾款聊天AI,無論是ChatGPT、Newbing還是文心一言,都能夠對患者做出相應的指導,并提示最終需要臨床醫生指導。但對于一般患者而言,醫療的可及性大大增加,因為其操作的方便性,使用體驗也大幅升級。
歡迎來到《ChatGPT提?的藝術:制作清晰和有效提?的指南》!在這本全?的指南中,您將學習到關于制作清晰和有效的ChatGPT提?的?切知識,以推動引??勝和信息豐富的對話。?論您是初學者還是有經驗的ChatGPT?戶,這本電?書都適合您。從理解有效提?的原則到掌握構建清晰簡潔提?的藝術,您將獲得所需的技能和知識,以將ChatGPT對話提升到更?的?平。在接下來的章節中,我們將涵蓋從ChatGPT的基礎知識和?作原理,到制作引??勝的提?和解決常?問題的?級技巧。在這個過程中,您將找到現實世界的例?和專家?解,幫助您掌握ChatGPT提?的藝術。
任務語義可以用一組輸入到輸出的例子或一條文本指令來表示。傳統的自然語言處理(NLP)機器學習方法主要依賴于大規模特定任務樣本集的可用性。出現了兩個問題: **首先,收集特定于任務的標記示例,不適用于任務可能太復雜或太昂貴而無法注釋,或系統需要立即處理新任務的場景;其次,這對用戶來說并不友好,因為最終用戶可能更愿意在使用系統之前提供任務描述,而不是一組示例。**因此,社區對NLP的一種新的監督尋求范式付出了越來越大的興趣: 從任務指令中學習。盡管取得了令人印象深刻的進展,但社區仍面臨一些共同的問題。本文試圖從以下幾個方面對當前的指令學習研究進行總結:(1)什么是任務指令,存在哪些指令類型?(ii)如何為指令建模?(iii)哪些因素影響和解釋指令的執行?(四)指令中還存在哪些挑戰?據我們所知,這是第一次對文本指令的全面調查。
1. 引言
人工智能的一個目標是建立一個可以普遍理解和解決新任務的系統。標記示例作為主流任務表示,不太可能大量可用,甚至不存在。那么,是否有其他任務表示可以有助于任務理解?任務指令為表達任務語義提供了另一個監督維度,指令往往包含比單個標記示例更抽象和全面的目標任務知識。如圖1所示,通過任務指令的可用性,可以快速構建系統來處理新任務,特別是在特定于任務的注釋稀缺的情況下。**指令學習是受典型的人類對新任務的學習啟發,**例如,小孩可以通過從指令和幾個例子中學習來很好地解決一個新的數學任務(Fennema et al., 1996;)。這種新的學習范式最近引起了機器學習和NLP社區的主要關注(Radford等人,2019;Efrat和Levy, 2020;Brown等人,2020年)。
當談到任務指令時,我們大多數人首先會將這個概念與提示聯系起來——使用一個簡短的模板將新的輸入重新格式化為語言建模問題,以便為啟動PLM回復響應 (Liu et al., 2023)。盡管提示在文本分類、機器翻譯等中普遍存在,但提示只是指令的一種特殊情況。本文對指令驅動的NLP研究進行了全面和更廣泛的看法。具體來說,我們試圖回答以下問題:
什么是任務指令,存在哪些指令類型?
給定任務指令,如何對其進行編碼以幫助完成目標任務?
哪些因素(如模型大小、任務數量)影響指令驅動系統的性能,以及如何設計更好的指令?
指令學習能帶來什么應用?
指令學習中存在哪些挑戰,未來的方向是什么?
**據我們所知,這是第一篇調研文本指令學習的論文。**與一些現有的側重于特定上下文指令的調研相比,例如提示(Liu等人,2023)、按輸出輸入的演示(Dong等人,2023)或推理(Huang和Chang, 2022;Qiao et al., 2022),我們提供了一個更廣泛的視角,以有組織的方式連接該領域的不同研究。希望本文能呈現一個更好的指令學習故事,吸引更多同行來研究這個具有挑戰性的人工智能問題。我們還發布了本次調研的相應閱讀清單。
2. 基礎知識
對于任務式學習,目標是通過遵循指令來驅動系統達到給定輸入的輸出。因此,一個數據集由三個元素組成: Input (X): 實例的輸入;它可以是一段文本(如情感分類)或一組文本(如文本蘊涵、問題回答等)。 Output (Y): 實例的輸出;在分類問題中,它可以是一個或多個預定義標簽;在文本生成任務中,它可以是任何開放形式的文本。
模板(T): 一種文本模板,試圖單獨表達任務的含義,或者充當X和y之間的橋梁。T可能還不是一種組件結構。
3. 什么是任務指令?
在之前的零樣本和少樣本NLP任務中已經使用了各種類型的文本指令,例如提示(Hendrycks等人,2021;Srivastava等人,2022;Bach等人,2022,除其他外),Amazon Mechanical Turk 指令(Mishra等人,2022b;王等,2022c;Yin等人,2022年),輔以演示的指令 (Khashabi等人,2020年;Ye等人,2021;Min等人,2022b,特別是)和思維鏈解釋(Wei等人,2022b;Lampinen等人,2022;Li et al., 2022c,等。不同的指令最初是為不同的目標設計的(例如,Mturk指令最初是為人類標注者理解而創建的,提示是為了控制PLM)。在本節中,如圖2所示,我們首先將這些指令總結為三個類別,它們執行T、X和?Y的不同組合(面向蘊含、面向PLM和面向人),然后比較它們并提供指令的正式定義。
3.1 I=T^+Y:Entailment主導的指令
處理分類任務的一個傳統方案是將目標標簽轉換為索引,并讓模型決定輸入屬于哪個索引。這種范式側重于對輸入語義進行編碼,同時丟失標簽語義。為了讓系統識別新標簽而不依賴于大量標記的示例,Yin等人(2019)提出為每個標簽建立一個假設——然后,推導標簽的真值被轉換為確定假設的真值。如表1所示,這種方法內置在指令(I)中,將模板(T)與標簽Y相結合,以解釋每個目標標簽(Y)。由于這種范式自然地滿足文本蘊含的格式(TE,其中任務輸入和指令可以分別被視為前提和假設),這些類型的指令被稱為"面向蘊含(Entailment)的指令"。面向蘊含(entailment)的指令學習方法具有以下4個方面的優勢:(i)保持了標簽語義,使得輸入編碼和輸出編碼在建模輸入輸出關系時得到同等的重視;(ii)形成了一個統一的推理過程——文本蘊含——來處理各種NLP問題;(iii)它創造了利用現有TE數據集的間接監督的機會,以便預訓練TE模型有望在不進行特定任務微調的情況下在這些目標任務上工作;(iv)將原始的閉集標簽分類問題擴展為具有少量甚至零類屬類樣本的開放域開放形式標簽識別問題。因此,它被廣泛應用于各種少樣本/零樣本分類任務中,如分類主題(Yin等人,2019)、情感(Zhong等人,2021)、姿態(Xu等人,2022b)、實體類型(Li等人,2022a)和實體關系(Murty等人,2020;Xia等,2021;Sainz等人,2021,2022)。
3.2 I=T^+X:面向PLM的指令(如?提示)
提示是面向PLM的指令的代表,它通常是一個簡短的語句,前面加上任務輸入(前綴提示),或者一個完形填空問題模板(完形填空提示)。它主要用于從預訓練的語言模型(PLM)中查詢中間響應(可以進一步轉換為最終答案)。由于提示輸入符合PLM的預訓練目標(例如,完形風格的輸入滿足掩碼語言建模目標(Kenton和Toutanova, 2019)),它有助于擺脫對傳統監督微調的依賴,并大大減輕人工標注的成本。因此,快速學習在大量之前的少量/零樣本NLP任務上取得了令人印象深刻的結果,例如問答(Radford等人,2019;Lin等人,2021)、機器翻譯(Li等人,2022d)、情感分析(Wu和Shi, 2022)、文本蘊含(Schick和Schütze, 2021a,b)和命名實體識別(Cui等人,2021;王等,2022a)。
3.3 以人為本指示
以人為本的指令基本上是指在人類注釋平臺上用于眾包的指令(例如Amazon MTurk指令)。與面向人的指令不同,面向人的指令通常是一些人可讀的、描述性的、段落式的任務特定文本信息,由任務標題、類別、定義、要避免的事項等組成。因此,以人為本的指令更加友好,可以理想地應用于幾乎任何復雜的NLP任務。
4 如何為指令建模?在本節中,我們總結了幾種最流行的指令學習建模策略。總體而言,本文介紹了四種不同的建模方案:對于早期的基于機器學習的系統,(i)基于語義解析器的策略是編碼指令的常用方法;隨著神經網絡和預訓練語言模型的出現,(ii)基于提示模板和(iii)基于前綴指令的指令學習模式成為兩種備受青睞的范式;最近,(iv).基于超網絡的方法也引起了更大的興趣。
5 應用
5.1人機交互
文本指令可以自然地視為一種人機交互方式。之前的許多工作使用自然語言指令來"指導"計算機執行各種現實世界的任務。
對于非NLP(多模態)任務,大多數專注于基于環境的語言學習,即驅動智能體將自然語言指令與環境相關聯,并做出相應的反應,例如從圖像/視頻中選擇提到的對象(Matuszek等人,2012;Krishnamurthy和Kollar, 2013;Puig等人,2018),按照導航指示移動智能體(Tellex等人,2011;Kim和Mooney, 2012;陳,2012;Artzi和Zettlemoyer, 2013;Bisk et al., 2016),在地圖上繪制相應的痕跡(Vogel和Jurafsky, 2010;Chen和Mooney, 2011),基于給定規則玩足球/紙牌游戲(Kuhlmann等人,2004;愛森斯坦等人,2009;Branavan等人,2011;Babe s-Vroman等人,2012;Goldwasser和Roth, 2014),生成實時體育廣播(Chen和Mooney, 2008;Liang et al., 2009)、控制軟件(Branavan et al., 2010)和查詢外部數據庫(Clarke et al., 2010)等。與此同時,指令也被廣泛適用于幫助與系統溝通,以解決NLP任務,例如,遵循操作字符串的指令(Gaddy和Klein, 2019),根據給定的解釋對電子郵件進行分類(Srivastava等人,2017,2018),以及文本到代碼生成(Acquaviva等人,2021)。近年來,越來越多的研究傾向于以迭代和模塊化的方式設計人機通信過程。例如,Li et al.(2020)構建了一個系統來幫助用戶處理日常任務(例如,點咖啡或請求Uber)。得益于用戶友好的圖界面,系統可以迭代地詢問有關任務的問題,用戶可以不斷改進他們的指令,以避免不明確的描述或模糊的概念。類似地,Dwivedi-Yu等人(2022)提出了一個基準來迭代地指導PLM改進文本,其中每次迭代只使用具有精確目的的一小段指令(例如,“簡化文本”或“使文本中性”)。此外,Chakrabarty等人(2022)構建了一個協作寫詩系統,用戶可以最初提供一個模棱兩可的指令(例如,“寫一首關于蛋糕的詩”),然后通過觀察模型的中間輸出,用更多的細節逐步完善指令(例如,“包含單詞-‘巧克力’”)。同時,Mishra和Nouri(2022)提出了一個傳記生成系統,該系統逐步從用戶那里收集必要的個人信息(通過在對話場景中提出問題來引導用戶),并最終生成一個段落式的傳記。針對非專家用戶難以一次性編寫完整的指令的問題,在基于指令的人工智能系統設計中采用迭代式、模塊化的設計范式,可以引導用戶逐步豐富任務指令,從而有效地緩解用戶的思維需求,使系統更加面向用戶。鑒于其實用價值,本文強調了這一分支工作的重要性。
5.2 數據和特征增強
任務指令被認為是一種間接的監督資源,其中有時包含一些膚淺且武斷的規則。這些規則也被稱為標記函數,可以直接應用于注釋(例如,句子“a very fair price”是情感積極的,因為“單詞‘price’之前直接有‘fair’”)。因此,現有的一些工作還將指令作為遠程監督來執行數據或特征增強(Srivastava等人,2018;Hancock等人,2018;Ye等人,2020)。例如,Srivastava等人(2017)使用語義解析器將自然語言解釋轉換為邏輯形式,并將它們應用于數據集中的所有實例以生成額外的二進制特征。而Wang et al.(2020)利用標簽解釋自動標注原始語料庫,并在產生的噪聲數據上訓練分類器。除了直接的擴充外,Su等人(2022)進一步使用任務指令來豐富模型表示,并實現了較強的跨任務泛化。具體來說,他們在具有對比學習的不同指令數據集上訓練了一個嵌入模型(單個編碼器),然后使用該模型為下游未見過的任務生成基于指令的特定任務表示。
5.3 通用語言模型
根據通用人工智能(Artificial General Intelligence, AGI)的定義,“通用模型”通常是一個能夠勝任不同任務并在多變環境中可擴展的系統,這將遠遠超出其創造者最初的預期(Wang and Goertzel, 2007;Goertzel寫到,2014)。雖然特定于NLP領域,但通用語言模型應該是一個優秀的多任務助手,能夠以完全零樣本/少樣本的方式熟練處理各種現實世界的NLP任務和不同的語言(Arivazhagan等人,2019;Pratap等人,2020;Wei等,2022a)。由于許多現有工作證明了在跨任務泛化中使用指令的驚人能力(Wei等人,2022a;Sanh等人,2022;Mishra等人,2022b;王等,2022c;Chung等人,2022,除其他外),該指令很可能成為實現這一最終目標的突破。
值得注意的是,最近指令的兩個顯著應用,即InstructGPT (Ouyang et al., 2022)和ChatGPT,也表明在構建通用語言模型方面邁出了一大步。然而,與其他主要采用指令學習的工作不同,ChatGPT還采用了一些其他組件,如人工反饋的強化學習(RLHF) 14。雖然“哪個組件對ChatGPT的出色結果貢獻更大”的答案仍然是模糊的,需要進一步調研,但我們介紹了一些最近的工作,以強調指令學習的關鍵作用。例如,Chung等人(2022)進行了廣泛的實驗來評估人類對PaLM的偏好對齊(Chowdhery等人,2022)。他們發現,即使沒有任何人類反饋,指令微調也顯著降低了PaLM開放式世代的毒性,比如性別和職業偏見。此外,其他一些工作也單獨采用創造性指導而不是人工反饋,并取得了顯著的跨任務結果(Bai等人,2022;Honovich等人,2022a;王志強等,2022b)。盡管ChatGPT仍然存在許多不令人滿意的方面,距離通用語言模型還很遠(Qin等人,2023;郭等,2023;Koco 'n等人,2023;Wang et al., 2023),我們希望AGI的目標可以通過采用和發展更強大的技術來繼續推動,包括指令學習。
提示工程是一門相對較新的學科,用于開發和優化提示,以有效地將語言模型(LM)用于各種應用和研究主題。提示工程技能有助于更好地理解大型語言模型(LLM)的能力和局限性。 **研究人員使用prompt engineering來提高LLM在廣泛的常見和復雜任務上的能力,如問答和算術推理。**開發人員使用提示工程來設計與LLM和其他工具交互的健壯和有效的提示技術。 提示工程不僅僅是設計和開發提示。它包含了對與LLM交互和開發有用的廣泛技能和技術。這是接口、構建和理解llm功能的一項重要技能。您可以使用prompt engineering來提高llm的安全性并構建新的功能,例如用領域知識和外部工具增強LLM。 由于對與LLM一起開發的高度興趣,我們創建了這個新的prompt工程指南,其中包含所有最新的論文、學習指南、模型、講座、參考資料、新的LLM功能和與prompt工程相關的工具。 視頻:
地址://github.com/dair-ai/Prompt-Engineering-Guide
1. 引言
提示工程是一門相對較新的學科,用于開發和優化提示,以有效地將語言模型(LM)用于各種應用和研究主題。提示工程技能有助于更好地理解大型語言模型(LLM)的能力和局限性。研究人員使用prompt engineering來提高LLM在廣泛的常見和復雜任務上的能力,如問答和算術推理。開發人員使用提示工程來設計與LLM和其他工具交互的魯棒和有效的提示技術。 本指南涵蓋了提示的基礎知識,對如何使用提示來交互和指示大型語言模型(LLM)提供了一個粗略的想法。 LLM設置
在處理提示時,您將通過API或直接與LLM交互。您可以配置一些參數以獲得不同的提示結果。 Temperature ——簡而言之,Temperature 越低,結果越確定,因為總是選擇可能性最高的下一個token。升高的Temperature可能導致更多的隨機性,鼓勵更多多樣化或創造性的輸出。我們實際上是在增加其他可能token的權重。在應用方面,我們可能希望對基于事實的QA等任務使用較低的Temperature,以鼓勵更事實和更簡潔的回答。對于詩歌生成或其他創造性任務,提高Temperature可能是有益的。 Top_p -類似地,使用Top_p(一種稱為核采樣的Temperature采樣技術),您可以控制模型生成響應的確定性程度。如果你正在尋找準確和事實的答案,請保持這個數字較低。如果您正在尋找更多樣化的響應,請增加到更高的值。 一般的建議是改變其中一個,而不是兩個都改變。 在開始使用一些基本示例之前,請記住,您的結果可能會因您使用的LLM版本而有所不同。 提示的基礎知識
提示的元素 隨著我們介紹提示工程可能提供的越來越多的示例和應用程序,您將注意到有一些組成提示的元素。 提示(prompt)可以包含以下任何一個組件。 * 指令(Instruction):希望模型執行的特定任務或指令 * 上下文 context ——可以包含外部信息或額外的上下文,這些信息可以引導模型做出更好的響應 * 輸入數據——是我們感興趣的輸入或問題 * 輸出指示器 Indicator :表示輸出的類型或格式。
提示并不需要所有組件,其格式取決于當前的任務。我們將在接下來的指南中接觸到更多具體的例子。 設計提示的一般技巧
提示示例
在前一節中,我們介紹并給出了如何提示LLMs的基本示例。 在本節中,我們將提供更多示例,說明如何使用提示來實現不同的任務,并介紹其中的關鍵概念。通常,學習概念的最好方法是通過示例。下面我們將介紹幾個示例,說明如何使用精心設計的提示來執行不同類型的任務。 主題: * 文本摘要 * 信息提取 * 問題回答 * 文本分類 * 談話 * 代碼生成 * 推理
2. 提示技術
在這一點上,很明顯,改進提示有助于在不同的任務上獲得更好的結果。這就是prompt engineering背后的全部思想。 雖然基本的例子很有趣,但在本節中,我們將介紹更高級的提示工程技術,使我們能夠實現更復雜和有趣的任務。 * **Zero-shot Prompting **
**Few-shot Prompting **
**Chain-of-Thought Prompting **
**Self-Consistency **
**Generate Knowledge Prompting **
**Automatic Prompt Engineer **
**Active-Prompt **
**Directional Stimulus Prompting **
**ReAct **
**Multimodal CoT **
Graph Prompting
3. 提示應用
Program-Aided Language Models * Generating Data
4. 模型
ChatGPT
在本節中,我們將介紹ChatGPT的最新提示工程技術,包括提示、應用、限制、論文和額外的閱讀材料。 主題:
ChatGPT介紹 * 回顧對話任務與ChatGPT的對話 * Python的筆記本 ChatGPT是OpenAI訓練的一種可以進行對話交互的新模型。該模型被訓練成遵循提示中的指示,在對話的上下文中提供適當的響應。ChatGPT可以幫助回答問題、建議食譜、以某種風格寫歌詞、生成代碼等等。
ChatGPT使用來自人類反饋的強化學習(RLHF)進行訓練。雖然這個模型比之前的GPT迭代更有能力(也經過訓練以減少有害和不真實的輸出),但它仍然有局限性。讓我們通過具體的例子來介紹一些功能和限制。 你可以在這里使用ChatGPT的研究預覽,但對于下面的示例,我們將使用OpenAI Playground上的聊天模式。 * GPT-4 在本節中,我們將介紹GPT-4最新的prompt工程技術,包括提示、應用、限制和其他閱讀材料。
GPT-4介紹 最近,OpenAI發布了GPT-4,這是一個大型多模態模型,可以接受圖像和文本輸入并發出文本輸出。它在各種專業和學術基準上實現了人類水平的表現。 書冊:
**
**
課件:
**本文對OpenAI的ChatGPT[1]在機器人應用中的使用進行了實驗研究。**本文概述了一種策略,將prompt工程的設計原則和高級函數庫的創建相結合,使ChatGPT能夠適應不同的機器人任務、模擬器和形狀因素。重點評估了不同的提示工程技術和對話策略對執行各種類型的機器人任務的有效性。探討了ChatGPT使用自由形式對話、解析XML標簽和合成代碼的能力,以及使用特定任務的提示函數和通過對話進行閉環推理的能力。**本文研究涵蓋了機器人領域的一系列任務,從基本的邏輯、幾何和數學推理一直到復雜的領域,如空中導航、操縱和具身智能體。**ChatGPT可以有效地解決其中的幾個任務,同時允許用戶主要通過自然語言指令與之交互。此外,本文還介紹了一個名為PromptCraft的開源研究工具,其中包括一個研究人員可以協作上傳并投票的機器人應用程序的良好提示方案示例的平臺,以及一個集成ChatGPT的機器人模擬器示例,使用戶更容易開始使用ChatGPT機器人。
自然語言處理(NLP)的快速發展導致了大型語言模型(LLMs)的發展,如BERT[2]、GPT-3[3]和Codex[4],這些模型正在對廣泛的應用程序進行革命。這些模型在文本生成、機器翻譯和代碼合成等各種任務中都取得了顯著的效果。這個模型集合的最新成員是OpenAI ChatGPT[1],這是一個預訓練的生成文本模型,使用人類反饋進行了微調。與以前主要基于單個提示符操作的模型不同,ChatGPT通過對話提供了特別令人印象深刻的交互技能,結合了文本生成和代碼合成。我們在本文中的目標是研究ChatGPT的能力是否以及如何推廣到機器人領域。我們將ChatGPT的功能擴展到機器人領域,并使用語言直觀地控制了多個平臺,如機器人手臂、無人機和家庭助理機器人。
你有沒有想過用你自己的語言告訴機器人該做什么,就像你對人類做的那樣?如果只是告訴你的家庭機器人助手:“請把我的午餐熱一下”,然后讓它自己找到微波爐,這不是很神奇嗎?盡管語言是我們表達意圖最直觀的方式,但我們仍然嚴重依賴手寫代碼來控制機器人。我們的團隊一直在探索如何改變這一現實,并使用OpenAI的新AI語言模型ChatGPT使自然的人-機器人交互成為可能。
ChatGPT是一個在大量文本和人類交互語料庫上訓練的語言模型,它可以對各種各樣的提示和問題生成連貫且語法正確的回答。我們這項研究的目標是看看ChatGPT是否能超越文本思考,并對物理世界進行推理,以幫助機器人任務。我們希望幫助人們更容易與機器人互動,而不需要學習復雜的編程語言或機器人系統的細節。這里的關鍵挑戰是教ChatGPT如何解決問題,考慮物理定律,操作環境的上下文,以及機器人的物理行為如何改變世界的狀態。
近年來,在將語言納入機器人系統方面有不同的嘗試。這些工作主要集中在針對特定形式因素或場景使用語言token嵌入模型、LLM特征和多模態模型特征。應用范圍從視覺-語言導航[5,6],基于語言的人機交互[7,8]和視覺-語言操作控制[9,10,11]。然而,盡管在機器人中使用LLMs有潛在的優勢,但大多數現有方法都受到嚴格的范圍和有限的功能集的限制,或其開環性質的限制,不允許從用戶反饋中進行流動交互和行為糾正。當被要求進行高層智能體規劃[12,13]或代碼生成[14,15]時,GPT-3、LaMDA和Codex等模型也在零樣本機器人場景中顯示出希望。這些早期的演示啟發我們研究ChatGPT,將其作為機器人領域的一個潛在的更多功能的工具,因為它結合了自然語言和代碼生成模型的優勢以及對話的靈活性。ChatGPT能夠參與自由形式的對話和捕獲長上下文,允許用戶以更自然的方式與模型交互,并靈活地進行行為矯正。
本文旨在展示ChatGPT在機器人應用中的潛力。我們概述了一個關鍵概念,它解鎖了用ChatGPT解決機器人應用程序的能力,這是創建一個高級函數庫。由于機器人是一個多樣化的領域,存在多種平臺、場景和工具,因此存在各種各樣的庫和api。我們創建了一個簡單的高級函數庫供ChatGPT處理,然后可以在后端鏈接到所選平臺的實際API,而不是要求LLM輸出特定于平臺或庫的代碼,這可能涉及大量的微調。因此,我們允許ChatGPT從自然對話框中解析用戶意圖,并將其轉換為高級函數調用的邏輯鏈。本文還概述了一些幫助ChatGPT解決機器人任務的提示工程指南。
事實證明,ChatGPT本身可以做很多事情,但它仍然需要一些幫助。我們的技術論文描述了一系列設計原則,可用于指導語言模型解決機器人任務。這些包括但不限于特殊的提示結構、高級API和通過文本的人工反饋。我們相信,我們的工作只是我們如何開發機器人系統的轉變的開始,我們希望激勵其他研究人員進入這個令人興奮的領域。繼續閱讀有關我們的方法和想法的更多技術細節。
當今機器人技術的挑戰,以及ChatGPT如何提供幫助
機器人系統與純文本應用不同,需要對現實世界的物理、環境上下文和執行物理動作的能力有深刻的理解。一個生成式機器人模型需要有一個強大的常識知識和一個復雜的世界模型,以及與用戶交互的能力,以物理上可行的方式解釋和執行命令,在現實世界中有意義。這些挑戰超出了語言模型的原始范圍,因為它們不僅必須理解給定文本的含義,還必須將意圖翻譯為物理動作的邏輯序列。
當前的機器人管道從工程師或技術用戶開始,他們需要將任務需求轉換為系統的代碼。工程師在循環中,這意味著他們需要編寫新的代碼和規范來糾正機器人的行為。總的來說,這個過程是緩慢的(用戶需要編寫低級代碼),昂貴的(需要具有深度機器人知識的高技能用戶),并且低效的(需要多次交互才能讓事情正常工作)。
ChatGPT開啟了一種新的機器人范式,并允許(潛在的非技術)用戶參與循環,在監視機器人性能的同時向大型語言模型(LLM)提供高級反饋。通過遵循我們的設計原則,ChatGPT可以為機器人場景生成代碼。在沒有任何微調的情況下,我們利用LLM的知識來控制不同的機器人形狀,以完成各種任務。在我們的工作中,我們展示了多個ChatGPT解決機器人難題的示例,以及在操作、空中和導航領域的復雜機器人部署。 ChatGPT機器人技術:設計原則
LLMs是一門高度經驗主義的科學。通過反復試驗,我們建立了一套方法和一套設計原則,用于為機器人任務編寫提示:
首先,我們定義一組高級機器人api或函數庫。這個庫可以特定于特定的機器人,并且應該映射到機器人的控制棧或感知庫中的現有底層實現。對高級api使用描述性的名稱非常重要,這樣ChatGPT可以推斷它們的行為; * 接下來,我們為ChatGPT編寫一個文本提示,它描述了任務目標,同時也明確說明了高級庫中的哪些函數可用。提示符還可以包含關于任務約束的信息,或者ChatGPT應該如何形成它的答案(使用特定的編碼語言,使用輔助解析元素); * 用戶停留在循環中來評估ChatGPT的代碼輸出,要么通過直接檢查,要么使用模擬器。如果需要,用戶可以使用自然語言向ChatGPT反饋答案的質量和安全。 * 當用戶對解決方案感到滿意時,就可以將最終代碼部署到機器人上。
ChatGPT到底能做什么?
零樣本任務規劃
我們讓ChatGPT訪問控制真正無人機的功能,事實證明,它是非技術用戶和機器人之間非常直觀的基于語言的界面。當用戶的指示模棱兩可時,ChatGPT會提出澄清性問題,并為無人機編寫復雜的代碼結構,如z字形模式以視覺檢查貨架。它甚至學會了自拍!???? 我們還在使用Microsoft AirSim模擬器的模擬工業檢測場景中使用ChatGPT。該模型能夠有效地解析用戶的高層意圖和幾何線索,從而準確地控制無人機。
循環中的用戶:當一個復雜的任務需要對話時
接下來,我們將ChatGPT用于機器人手臂的操作場景。我們使用對話反饋來教模型如何將最初提供的API組合成更復雜的高級函數:ChatGPT自己編碼。通過使用基于課程的策略,該模型能夠將這些學習到的技能邏輯地鏈接在一起,以執行堆疊積木等操作。 此外,當任務是用木塊構建微軟標志時,該模型展示了一個連接文本和物理域的有趣示例。它不僅能夠從其內部知識庫中回憶徽標,還能夠“繪制”徽標(作為SVG代碼),然后使用上述學到的技能來確定現有的機器人動作可以組成其物理形式。
接下來,我們委托ChatGPT編寫一個算法,使無人機在不撞到障礙物的情況下在太空中達到目標。我們告訴模型,這架無人機有一個面向前方的距離傳感器,ChatGPT立即為算法編寫了大多數關鍵的構建模塊。這項任務需要與人類進行一些對話,我們對ChatGPT僅使用語言反饋進行本地化代碼改進的能力印象深刻。
感知-行動循環:機器人在行動之前感知世界
在做某事(行動)之前感知世界(感知)的能力是任何機器人系統的基礎。因此,我們決定測試ChatGPT對這個概念的理解,并讓它探索一個環境,直到找到用戶指定的對象。我們允許模型訪問諸如對象檢測和對象距離API等函數,并驗證了它生成的代碼成功地實現了感知-動作循環。在實驗角色中,我們運行了額外的實驗來評估ChatGPT是否能夠根據傳感器實時反饋來決定機器人應該去哪里(而不是讓ChatGPT生成一個代碼循環來做出這些決定)。有趣的是,我們驗證了我們可以在每一步將相機圖像的文本描述輸入到聊天中,并且該模型能夠弄清楚如何控制機器人,直到它到達特定的對象。
OpenAI 新上線的 ChatGPT 可謂是火爆出圈,這個對話模型可以回答后續問題,承認錯誤,挑戰不正確的前提,還能幫你修改代碼中的 bug……只要和它聊上幾句,一會兒功夫它就能把問題給你解決了。例如用戶要求:「ChatGPT 幫我解釋一下文中正則表達式的含義。」ChatGPT:安排。密密麻麻的解釋了一大段內容,應該是解釋清楚了。
ChatGPT 使用與 InstructGPT 相同的方法——用人類反饋強化學習 (RLHF) 訓練模型,但數據收集設置略有不同。ChatGPT 使用監督微調訓練了一個初始模型:人類 AI 訓練員提供對話,他們在對話中扮演雙方——用戶和 AI 助手,AI 訓練員可以訪問模型編寫的對話回復,以幫助 AI 調整回復內容。
為了創建強化學習的獎勵模型,該研究需要收集比較數據,其中包含兩個或多個按質量排序的模型回復。該研究收集了 AI 訓練員與聊天機器人的對話,并隨機選擇一條模型編寫的消息,抽取幾個備選回復,讓 AI 訓練員對這些回復進行排名。此外,該研究還使用近端策略優化算法(PPO)微調模型,并對整個過程進行了幾次迭代。
ChatGPT 對 GPT-3.5 系列中的某個模型進行了微調,該模型于 2022 年初完成訓練。ChatGPT 和 GPT 3.5 在 Azure AI 超級計算基礎設施上進行了訓練。
臺大李宏毅老師:Chat GPT (可能)是怎么煉成的- GPT社會化的過程
參考鏈接:
有興趣的數據科學專業人士可以通過本書學習Scikit-Learn圖書館以及機器學習的基本知識。本書結合了Anaconda Python發行版和流行的Scikit-Learn庫,演示了廣泛的有監督和無監督機器學習算法。通過用Python編寫的清晰示例,您可以在家里自己的機器上試用和試驗機器學習的原理。
所有的應用數學和編程技能需要掌握的內容,在這本書中涵蓋。不需要深入的面向對象編程知識,因為工作和完整的例子被提供和解釋。必要時,編碼示例是深入和復雜的。它們也簡潔、準確、完整,補充了介紹的機器學習概念。使用示例有助于建立必要的技能,以理解和應用復雜的機器學習算法。
對于那些在機器學習方面追求職業生涯的人來說,Scikit-Learn機器學習應用手冊是一個很好的起點。學習這本書的學生將學習基本知識,這是勝任工作的先決條件。讀者將接觸到專門為數據科學專業人員設計的蟒蛇分布,并將在流行的Scikit-Learn庫中構建技能,該庫是Python世界中許多機器學習應用程序的基礎。
你將學習
這本書是給誰的