文章主题:ACM CHI, ChatGPT, Austin Z. Henley, LRS
新智元报道
编辑:LRS
【新智元导读】让ChatGPT成为人机交互的新接口。
ChatGPT 的问世,标志着人工智能技术正式成为我们生活中的一部分。然而,要想有效地利用这一强大的工具,非英语母语者和非AI行业的专业人士仍然面临着一个难以逾越的挑战——编写合适的提示词。
在最近的ACM CHI(Conference on Human Factors in Computing Systems)2023会议上,人们展示了许多基于大型语言模型的研究和工具,旨在降低类似ChatGPT这类工具的应用难度。
在人机交互领域,前田纳西大学教授Austin Z. Henley挑选出八篇研究论文,涵盖了从设计提示、培训过程,到优化编程教学、实施结构化日志管理等多个方面,助你深入理解并正确操作ChatGPT!
程序员和语言模型之间的概念匹配
在编程领域,大型语言模型的一个重要应用就是将自然语言文本转换为相应的代码。然而,尽管自然语言空间极为庞大,但能够精确指导代码生成的指令却仅占其中一小部分。
对于非AI专业的终端用户,即普通程序员来说,学习提示输入的难题主要是抽象概念之间的匹配。
在本文中,我们将重点探讨如何提高论文的质量和影响力。为了达到这一目标,我们需要关注以下几个方面:首先,我们要确保论文的研究问题具有实际意义和价值,能够解决现实生活中的问题;其次,我们要在论文中提出具有创新性的观点和方法,能够为相关领域带来新的启示;此外,我们还需要注重论文的结构和语言表达,保证论文的可读性和逻辑性;最后,我们要积极传播论文的成果,通过各种途径提升论文的影响力。具体来说,我们可以从以下几个方面着手提高论文的质量:首先,我们要在选题阶段就充分考虑研究问题的实际意义和价值,避免盲目追求热点和低质量的研究课题;其次,我们要在论文中详细阐述我们的观点和方法,并通过实例或案例加以佐证,使论文更具说服力;同时,我们还要注意论文的结构安排,确保论文各部分之间的逻辑关系清晰、条理分明,让读者能够顺畅地理解我们的研究成果;最后,我们要通过各种渠道和途径传播论文的成果,如参加学术会议、发布研究预印本、与同行交流等,以提升论文的影响力和社会认可度。总之,要提高论文的质量与影响力,我们需要在选题、观点、结构以及传播等方面下功夫,力求使论文成为有价值的学术成果,为相关领域的发展做出贡献。
这篇论文深入探讨了在电子表格数据分析中面临的挑战,通过采用Codex代码生成器,实现了将用户 natural language query 转换为 Python 代码并执行的功能,同时呈现出了分析结果。
研究人员提出了grounded抽象匹配,通过将代码翻译成系统的和可预测的自然语言,来弥补抽象的差距。
在一项受试者之间的思考-朗读研究(n=24)中,研究人员将grounded抽象匹配与基于先前建立的查询框架原则的ungrounded的替代方案进行了比较。
结果发现,有基础的方法提高了终端用户对代码生成模型的范围和能力的理解,以及有效使用所需要的语言种类。
总结:为了帮助终端用户编写 LLM 提示,研究人员设计了一个系统,将用户的自然语言输入映射到一系列系统操作,可以准确地向用户传达系统如何解释他们的提示,并给出一个可编辑的细粒度操作列表。
非 AI 专家如何尝试(失败)设计 LLM 提示
像GPT-3这样预训练的大型语言模型可以进行开箱即用的多轮指导,可以作为设计自然语言交互工具的基础。
使用自然语言来引导语言模型的输出(即提示prompt)已经成为一种重要的设计技术,非人工智能专家也需要学习使用。
不过制作有效的提示是具有挑战性的,而且基于提示的交互是很脆弱的。
这篇论文探讨了非人工智能专家是否可以使用design probe成功地参与「终端用户提示工程」,一个基于LLM的聊天机器人设计工具原型,支持开发和系统评估提示策略。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581388
最终,研究中的probe参与者对提示设计进行了机会性的探索而非系统性的探索,但仍然很难让参与者掌握终端用户编程系统和交互式机器学习系统。
研究人员发现,源自人与人之间的教学经验的期望,以及过度泛化的倾向,是有效提示设计的障碍,实验结果对于非人工智能专家面对的基于LLM的工具设计以及提高程序员和公众的LLM和提示素养都有影响,并为进一步研究提供了机会。
总结:提示工程现在相当流行,但是非人工智能专家能写出有效的提示吗?研究人员调查了人们在写提示时面临的挑战,并设计了一个工具来帮助这些非专业人士。
VizProg: 通过可视化学生的编码过程识别误解
程序设计课的老师经常在课堂上进行练习,以帮助他们发现进度落后的学生,找出学生错误理解的概念。
不过研究人员在采访编程导师时发现,在练习中监控学生的进度是很困难的,特别是对于大班学生。
这篇论文提出了VizProg,允许教师在课堂练习中实时监控和检查学生编程进度的系统。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581516
VizProg将学生的状态表现为二维欧几里得空间图,实时编码学生的解决问题的方法和进度。
VizProg使老师能够浏览学生代码的时间和结构演变,了解代码之间的关系,并确定何时提供反馈。
对比实验表明,与基线系统相比,VizProg有助于发现更多学生的问题;VizProg还为识别重要的学生行为提供了更丰富、更全面的信息。
通过大规模地管理学生的活动,这项工作为提高现场学习的质量提出了一个新的范式。
总结:对于教师来说,理解学生在课堂活动中的表现是一个挑战。研究人员设计了一个工具,实时可视化学生的不同手段,展示全班的编辑距离视图,同时也允许教师检查特定的提交。
基于人工智能的笔记本代码助手设计
人工智能驱动的代码助手,如Copilot,正在迅速成为当代编码环境中无处不在的组成部分。
在这些环境中,计算笔记本如Jupyter提供了丰富的界面,能够进行探索性和展示性工作的方式将代码和输出同时展示。
尽管笔记本很受欢迎,但人们对笔记本中代码助手的适当设计知之甚少。
研究人员通过创建一个设计空间(从对现有工具的调查中得出),并通过采访设计研究(与15位实践中的数据科学家),来研究计算型笔记本中代码助手的潜力。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580940
通过这项工作,研究人员为这个空间中的未来系统确定了挑战和机会,如数据可视化等任务的消歧义价值,严格范围的特定领域工具(如linters)的潜力,以及礼貌助手的重要性。
总结: 这是对计算机笔记本中 AI 代码助手的设计空间的探索,为人工智能的用户体验提供了一个有用的框架,包括用户如何迭代他们的输入,如何改进输出,等等。
Colaroid: 一个创作可探索的多阶段教程的文学编程方法
多阶段编程教程是程序员的关键学习资源,使用渐进的增量步骤来教用户如何构建更大的软件系统。
一个好的多阶段教程能清楚地描述代码,解释每一步的理由和代码的变化,并允许读者在学习教程的过程中进行实验。
在实践中,作者创建具有这些属性的教程是非常耗时的。
这篇论文介绍了Colaroid,一个用于创建高质量的多阶段教程的交互式创作工具。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581525
Colaroid教程是一个增强的计算笔记本,其中的片段和输出代表了一个项目的快照,突出了源代码的差异,每个片段都有完整的源代码背景,并且能够在一个链接的IDE中加载和修补项目的任何阶段。
在两项实验室研究中,研究人员发现Colaroid使创建多阶段教程变得容易,同时与视频和基于网络的教程相比,为读者提供了更多优势。
总结: 即使是一个简短的编程教程也需要花费很多时间才能做好。研究人员设计了一个用于创建基于交互式笔记本的教程的工具,可以让作者从代码库的历史中获取代码块,然后重新混合以获得更好的解释。
AI代码生成器对初学者的支持
像OpenAI Codex这样的人工智能代码生成器有可能通过从自然语言描述中生成代码来帮助新手程序员,然而,过度依赖可能会对学习和保持产生负面影响。
为了探索人工智能代码生成器对编程入门的影响,这篇论文对69名新手(10-17岁)进行了对照实验。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580919
学习者进行了45个Python代码编写任务,其中一半的学习者可以使用Codex,每个任务之后都有一个代码修改的任务。
实验结果显示,使用Codex可以显著提高代码编写的成绩(完成率提高了1.15倍,分数提高了1.8倍),同时不会降低手动修改代码任务的成绩。
此外,在训练阶段使用Codex的学习者在一周后进行的评估后测试中表现略好,尽管这一差异没有达到统计学意义。
值得注意的是,如果事先接触过Codex,Scratch前测分数较高的学习者在保留后测中的表现明显要好。
总结: 世界想知道人工智能将如何改变教育。过度依赖会妨碍学习吗?研究人员进行了一项为期3周的研究,发现使用人工智能工具完成任务的学生在手工编码任务或测试中的表现并不差,也许人工智能终究是新的计算器。
Log-it: 支持使用交互式、上下文、结构化和可视化日志进行编程
日志(logging)是一种广泛使用的检查和理解程序的技术。
不过日志的表现形式仍然经常采用其古老的形式,即驻留在终端、控制台或日志文件中的线性文本流,尽管很简单,但由于大量缺乏结构和上下文的文本日志,解释日志输出往往具有挑战性。
这篇论文进行了内容分析和专家访谈,以了解日志中固有的做法和挑战。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3581403
活动结果表明,目前对日志的表述并没有提供程序员解释日志或程序行为所需的丰富结构。
研究人员提出了Log-it,一个使程序员能够在现场交互式地结构化和可视化日志的日志界面。
一项针对新手和专家的用户研究表明,Log-it的语法和界面具有最小的学习曲线,日志的交互式表示和组织可以帮助程序员轻松定位、综合和理解日志。
总结: Print 语句仍然是一种流行的调试方法,但它并不总是最有效的技术。研究人员设计了一个时髦的工具来构造和可视化输出。
从语法中获得可用的结构化编辑器
结构化编辑在编程的可学习性、工具建设和编辑效率方面都有好处。
不过创建一个可用的结构化编辑器是很费力的,通常需要工具建设者手动创建或调整编辑交互关系。
这篇论文提出了Sandblocks,允许用户为每一种有形式化语法的语言自动生成结构化编辑器的系统。
论文链接:https://dl.acm.org/doi/pdf/10.1145/3544548.3580785
该系统的输入调和过程可以作用于任意的语法树,为生成的编辑器提供一致的交互方式。
该编辑器的编辑体验被设计成用户熟悉的文本编辑,但与以前的工作相比,不需要在语法中进行手动标注。
文中通过一项用户研究(N=18)来证明该编辑器在不同语言中的可用性。
与传统的文本编辑器相比,参与者平均只花了21%(JS)、34%(Clojure)和95%(RegExp)的时间,并报告说编辑感觉很自然,得分是6/7。
总结: 结构化编辑是那些似乎每个人都喜欢的想法之一,研究人员致力于开发一个结构化的编辑器,可用于所有的编程语言,同时仍然具有很高的可用性;提供了一个一致的用户界面,可以在给定形式语法的几乎任何语言上使用。
参考资料:
https://austinhenley.com/blog/futureofprogramming2023.html
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号AIGC666aigc999或上边扫码,即可拥有个人AI助手!