八个用于R编程的ChatGPT工具

译者 | 李睿
审校 | 重楼
ChatGPT无需进行微调或接受特定主题的训练,就可以回答有关各种技术主题的问题——包括如何编写R代码 。这意味着任何R语言编程人员都可以使用ChatGPT的功能,即使是那些对大型语言模型知之甚少的编程人员也是如此 。大型语言模型(LLM)是AI target=_blank class=infotextkey>OpenAI公司的ChatGPT等人工智能聊天机器人的基础技术 。
围绕ChatGPT和R语言的生态系统正在形成,这使得将人工智能技术整合到R语言工作流程中变得很容易 。但是在人们开始在R中使用ChatGPT和与之相关的工具之前,有一些重要的事情需要记住:
(1)用户对这些工具的所有要求都会被发送到OpenAI公司的服务器,因此不要使用ChatGPT工具处理敏感信息 。
(2)ChatGPT可以自信地返回错误的答案 。即使是错误的响应也可以作为节省时间的起点,但不要假设代码将完全按照用户的期望执行 。德克萨斯基督教大学副教授、流行的tidycensus R软件包的开发者Kyle Walker最近在推特上表示,“ChatGPT可以在用户很好地理解一个主题的情况下为其工作提供助力,也可能让用户暴露出他们不知道自己在做什么” 。其区别在于知道什么时候人工智能输出不正确 。而用户需要检查ChatGPT的响应 。
(3)ChatGPT可以对同一个查询生成不同的响应,有些答案可能是准确的,而另一些则不是 。例如,当多次请求一个带有蓝色条形图的ggplot2条形图时,其代码有时会生成一个带有蓝色条形图,但有时不会,即使提交了完全相同的请求 。如果需要一个可再现的工作流,这种结果显然不太理想 。
(4)如果用户正在使用的软件包最近进行了更新,ChatGPT也不会知道,因为它的训练数据截止到2021年 。
(5)本文中的大多数资源都要求用户拥有自己的OpenAI API密钥,并且这一API并不是免费使用的 。虽然目前价格很低,但不能保证它会一直保持这种状态 。ChatGPT 3.5涡轮模型目前的定价是每10,000个令牌为0.2美分 。那么令牌能带来什么?例如,从234行mpg数据集创建散点图的请求花费38个令牌 。
(6)向ChatGPT寻求编码帮助不太可能让用户陷入人工智能种族和性别偏见的伦理困境 。然而,关于向OpenAI公司提供更多数据是否明智的讨论也很激烈 。例如,训练数据如何被抓取和重新利用的伦理问题;如果使用开源的大型语言模型(例如H2O.ai的h2oGPT)而不是OpenAI公司的问题 。这些问题需要组织和个人自己去分析 。然而在撰写本文时,根本没有特定于R语言的大型语言模型(LLM)工具可以与围绕ChatGPT构建的工具相媲美 。
现在了解目前可用的一些最著名的以R为中心的ChatGPT资源 。
1.RTutor这个应用程序是一种优雅而简单的方法来对ChatGPT和R进行采样 。用户上传一个数据集,问一个问题,然后看着它生成R代码和结果,其中包括图形 。虽然它被命名为RTutor,但这个应用程序也可以生成Python/ target=_blank class=infotextkey>Python代码 。
RTutor的网址是https://rtutor.ai/ 。它是目前列出的唯一一个不需要ChatGPT API密钥使用的应用程序或软件包,但用户需要为大量使用提供自己的密钥,以免向创建者的帐户收费 。

八个用于R编程的ChatGPT工具

文章插图
图1要求RTutor创建条形图时的结果
该应用程序的“关于”页面解释说,“RTutor的主要目标是帮助有R语言使用经验的人学习R或提高工作效率……RTutor可以用来加快使用R的编码过程 。它为用户提供了一个测试和完善的代码草案 。小心出现漏洞和错误 。”
RTutor的代码是开源的,可以在Github上找到,所以用户可以安装自己的本地版本 。然而,许可只允许用户使用应用程序用于非营利或非商业用途,或用于商业测试 。RTutor是南达科他州立大学生物信息学教授Steven Ge博士个人创建的项目 。
2.CodeLingo这个多语言应用程序可以将代码从一种编程语言“翻译”到另一种语言 。可用的语言包括JAVA、Python、JavaScript、C、C++、php等,包括R 。这只是一个Web应用程序,可在https://analytica.shinyApps.io/codelingo/上获得 。用户需要输入OpenAI API密钥才能使用它(用户可能希望在测试后重新生成密钥) 。
八个用于R编程的ChatGPT工具

文章插图
图2 CodeLingo应用程序中的ChatGPT尝试将ggplot2图形代码转换为Python
将ggplot2 R图的代码转换为JavaScript生成输出的请求使用相当难学的D3 JavaScript库,而不是JavaScript新手更可能想要的内容,例如Observable Plot或Vega-Lite 。


推荐阅读