大佬教你玩轉(zhuǎn)ChatGPT!精選八篇「人機交互頂會CHI」論文:普通程序員如何吃上AI紅利?
ChatGPT的發(fā)布,讓AI正式加入工具箱,不過寫prompt對于非英語母語者、非AI從業(yè)者來說仍然是一個難題。
在最近召開的人機交互領(lǐng)域頂級會議ACM CHI (Conference on Human Factors in Computing Systems)2023上,發(fā)表了大量基于大型語言模型的研究及工具,能夠拉低ChatGPT類工具的使用門檻。
從事人機交互工作的前田納西大學(xué)教授Austin Z. Henley精選了八篇論文,從提示的設(shè)計、訓(xùn)練,到改善編程教學(xué)、結(jié)構(gòu)化日志管理等,打開ChatGPT的正確玩法!
程序員和語言模型之間的概念匹配
「代碼生成」大型語言模型可以把用戶輸入的自然語言翻譯為代碼,不過在近乎無限的自然語言輸入空間中,只有一小部分指令可以準確指導(dǎo)代碼生成。
對于非AI專業(yè)的終端用戶,即普通程序員來說,學(xué)習提示輸入的難題主要是抽象概念之間的匹配。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580817
這篇論文在電子表格中的數(shù)據(jù)分析的特定背景下研究了這一難題,使用Codex代碼生成器將用戶的自然語言query映射為Python代碼、執(zhí)行代碼并顯示結(jié)果。
研究人員提出了grounded抽象匹配,通過將代碼翻譯成系統(tǒng)的和可預(yù)測的自然語言,來彌補抽象的差距。
在一項受試者之間的思考-朗讀研究(n=24)中,研究人員將grounded抽象匹配與基于先前建立的查詢框架原則的ungrounded的替代方案進行了比較。
結(jié)果發(fā)現(xiàn),有基礎(chǔ)的方法提高了終端用戶對代碼生成模型的范圍和能力的理解,以及有效使用所需要的語言種類。
總結(jié):為了幫助終端用戶編寫 LLM 提示,研究人員設(shè)計了一個系統(tǒng),將用戶的自然語言輸入映射到一系列系統(tǒng)操作,可以準確地向用戶傳達系統(tǒng)如何解釋他們的提示,并給出一個可編輯的細粒度操作列表。
非 AI 專家如何嘗試(失敗)設(shè)計 LLM 提示
像GPT-3這樣預(yù)訓(xùn)練的大型語言模型可以進行開箱即用的多輪指導(dǎo),可以作為設(shè)計自然語言交互工具的基礎(chǔ)。
使用自然語言來引導(dǎo)語言模型的輸出(即提示prompt)已經(jīng)成為一種重要的設(shè)計技術(shù),非人工智能專家也需要學(xué)習使用。
不過制作有效的提示是具有挑戰(zhàn)性的,而且基于提示的交互是很脆弱的。
這篇論文探討了非人工智能專家是否可以使用design probe成功地參與「終端用戶提示工程」,一個基于LLM的聊天機器人設(shè)計工具原型,支持開發(fā)和系統(tǒng)評估提示策略。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581388
最終,研究中的probe參與者對提示設(shè)計進行了機會性的探索而非系統(tǒng)性的探索,但仍然很難讓參與者掌握終端用戶編程系統(tǒng)和交互式機器學(xué)習系統(tǒng)。
研究人員發(fā)現(xiàn),源自人與人之間的教學(xué)經(jīng)驗的期望,以及過度泛化的傾向,是有效提示設(shè)計的障礙,實驗結(jié)果對于非人工智能專家面對的基于LLM的工具設(shè)計以及提高程序員和公眾的LLM和提示素養(yǎng)都有影響,并為進一步研究提供了機會。
總結(jié):提示工程現(xiàn)在相當流行,但是非人工智能專家能寫出有效的提示嗎?研究人員調(diào)查了人們在寫提示時面臨的挑戰(zhàn),并設(shè)計了一個工具來幫助這些非專業(yè)人士。
VizProg: 通過可視化學(xué)生的編碼過程識別誤解
程序設(shè)計課的老師經(jīng)常在課堂上進行練習,以幫助他們發(fā)現(xiàn)進度落后的學(xué)生,找出學(xué)生錯誤理解的概念。
不過研究人員在采訪編程導(dǎo)師時發(fā)現(xiàn),在練習中監(jiān)控學(xué)生的進度是很困難的,特別是對于大班學(xué)生。
這篇論文提出了VizProg,允許教師在課堂練習中實時監(jiān)控和檢查學(xué)生編程進度的系統(tǒng)。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581516
VizProg將學(xué)生的狀態(tài)表現(xiàn)為二維歐幾里得空間圖,實時編碼學(xué)生的解決問題的方法和進度。
VizProg使老師能夠瀏覽學(xué)生代碼的時間和結(jié)構(gòu)演變,了解代碼之間的關(guān)系,并確定何時提供反饋。
對比實驗表明,與基線系統(tǒng)相比,VizProg有助于發(fā)現(xiàn)更多學(xué)生的問題;VizProg還為識別重要的學(xué)生行為提供了更豐富、更全面的信息。
通過大規(guī)模地管理學(xué)生的活動,這項工作為提高現(xiàn)場學(xué)習的質(zhì)量提出了一個新的范式。
總結(jié):對于教師來說,理解學(xué)生在課堂活動中的表現(xiàn)是一個挑戰(zhàn)。研究人員設(shè)計了一個工具,實時可視化學(xué)生的不同手段,展示全班的編輯距離視圖,同時也允許教師檢查特定的提交。
基于人工智能的筆記本代碼助手設(shè)計
人工智能驅(qū)動的代碼助手,如Copilot,正在迅速成為當代編碼環(huán)境中無處不在的組成部分。
在這些環(huán)境中,計算筆記本如Jupyter提供了豐富的界面,能夠進行探索性和展示性工作的方式將代碼和輸出同時展示。
盡管筆記本很受歡迎,但人們對筆記本中代碼助手的適當設(shè)計知之甚少。
研究人員通過創(chuàng)建一個設(shè)計空間(從對現(xiàn)有工具的調(diào)查中得出),并通過采訪設(shè)計研究(與15位實踐中的數(shù)據(jù)科學(xué)家),來研究計算型筆記本中代碼助手的潛力。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580940
通過這項工作,研究人員為這個空間中的未來系統(tǒng)確定了挑戰(zhàn)和機會,如數(shù)據(jù)可視化等任務(wù)的消歧義價值,嚴格范圍的特定領(lǐng)域工具(如linters)的潛力,以及禮貌助手的重要性。
總結(jié): 這是對計算機筆記本中 AI 代碼助手的設(shè)計空間的探索,為人工智能的用戶體驗提供了一個有用的框架,包括用戶如何迭代他們的輸入,如何改進輸出,等等。
Colaroid: 一個創(chuàng)作可探索的多階段教程的文學(xué)編程方法
多階段編程教程是程序員的關(guān)鍵學(xué)習資源,使用漸進的增量步驟來教用戶如何構(gòu)建更大的軟件系統(tǒng)。
一個好的多階段教程能清楚地描述代碼,解釋每一步的理由和代碼的變化,并允許讀者在學(xué)習教程的過程中進行實驗。
在實踐中,作者創(chuàng)建具有這些屬性的教程是非常耗時的。
這篇論文介紹了Colaroid,一個用于創(chuàng)建高質(zhì)量的多階段教程的交互式創(chuàng)作工具。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581525
Colaroid教程是一個增強的計算筆記本,其中的片段和輸出代表了一個項目的快照,突出了源代碼的差異,每個片段都有完整的源代碼背景,并且能夠在一個鏈接的IDE中加載和修補項目的任何階段。
在兩項實驗室研究中,研究人員發(fā)現(xiàn)Colaroid使創(chuàng)建多階段教程變得容易,同時與視頻和基于網(wǎng)絡(luò)的教程相比,為讀者提供了更多優(yōu)勢。
總結(jié): 即使是一個簡短的編程教程也需要花費很多時間才能做好。研究人員設(shè)計了一個用于創(chuàng)建基于交互式筆記本的教程的工具,可以讓作者從代碼庫的歷史中獲取代碼塊,然后重新混合以獲得更好的解釋。
AI代碼生成器對初學(xué)者的支持
像OpenAI Codex這樣的人工智能代碼生成器有可能通過從自然語言描述中生成代碼來幫助新手程序員,然而,過度依賴可能會對學(xué)習和保持產(chǎn)生負面影響。
為了探索人工智能代碼生成器對編程入門的影響,這篇論文對69名新手(10-17歲)進行了對照實驗。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580919
學(xué)習者進行了45個Python代碼編寫任務(wù),其中一半的學(xué)習者可以使用Codex,每個任務(wù)之后都有一個代碼修改的任務(wù)。
實驗結(jié)果顯示,使用Codex可以顯著提高代碼編寫的成績(完成率提高了1.15倍,分數(shù)提高了1.8倍),同時不會降低手動修改代碼任務(wù)的成績。
此外,在訓(xùn)練階段使用Codex的學(xué)習者在一周后進行的評估后測試中表現(xiàn)略好,盡管這一差異沒有達到統(tǒng)計學(xué)意義。
值得注意的是,如果事先接觸過Codex,Scratch前測分數(shù)較高的學(xué)習者在保留后測中的表現(xiàn)明顯要好。
總結(jié): 世界想知道人工智能將如何改變教育。過度依賴會妨礙學(xué)習嗎?研究人員進行了一項為期3周的研究,發(fā)現(xiàn)使用人工智能工具完成任務(wù)的學(xué)生在手工編碼任務(wù)或測試中的表現(xiàn)并不差,也許人工智能終究是新的計算器。
Log-it: 支持使用交互式、上下文、結(jié)構(gòu)化和可視化日志進行編程
日志(logging)是一種廣泛使用的檢查和理解程序的技術(shù)。
不過日志的表現(xiàn)形式仍然經(jīng)常采用其古老的形式,即駐留在終端、控制臺或日志文件中的線性文本流,盡管很簡單,但由于大量缺乏結(jié)構(gòu)和上下文的文本日志,解釋日志輸出往往具有挑戰(zhàn)性。
這篇論文進行了內(nèi)容分析和專家訪談,以了解日志中固有的做法和挑戰(zhàn)。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581403
活動結(jié)果表明,目前對日志的表述并沒有提供程序員解釋日志或程序行為所需的豐富結(jié)構(gòu)。
研究人員提出了Log-it,一個使程序員能夠在現(xiàn)場交互式地結(jié)構(gòu)化和可視化日志的日志界面。
一項針對新手和專家的用戶研究表明,Log-it的語法和界面具有最小的學(xué)習曲線,日志的交互式表示和組織可以幫助程序員輕松定位、綜合和理解日志。
總結(jié): Print 語句仍然是一種流行的調(diào)試方法,但它并不總是最有效的技術(shù)。研究人員設(shè)計了一個時髦的工具來構(gòu)造和可視化輸出。
從語法中獲得可用的結(jié)構(gòu)化編輯器
結(jié)構(gòu)化編輯在編程的可學(xué)習性、工具建設(shè)和編輯效率方面都有好處。
不過創(chuàng)建一個可用的結(jié)構(gòu)化編輯器是很費力的,通常需要工具建設(shè)者手動創(chuàng)建或調(diào)整編輯交互關(guān)系。
這篇論文提出了Sandblocks,允許用戶為每一種有形式化語法的語言自動生成結(jié)構(gòu)化編輯器的系統(tǒng)。
論文鏈接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580785
該系統(tǒng)的輸入調(diào)和過程可以作用于任意的語法樹,為生成的編輯器提供一致的交互方式。
該編輯器的編輯體驗被設(shè)計成用戶熟悉的文本編輯,但與以前的工作相比,不需要在語法中進行手動標注。
文中通過一項用戶研究(N=18)來證明該編輯器在不同語言中的可用性。
與傳統(tǒng)的文本編輯器相比,參與者平均只花了21%(JS)、34%(Clojure)和95%(RegExp)的時間,并報告說編輯感覺很自然,得分是6/7。
總結(jié): 結(jié)構(gòu)化編輯是那些似乎每個人都喜歡的想法之一,研究人員致力于開發(fā)一個結(jié)構(gòu)化的編輯器,可用于所有的編程語言,同時仍然具有很高的可用性;提供了一個一致的用戶界面,可以在給定形式語法的幾乎任何語言上使用。