当前位置: 首页 > 科技观察

编码人员编写代码的方式即将改变,加入等待名单

时间:2023-03-22 11:21:16 科技观察

OpenAIAPI即将彻底改变编码。你能给我shell命令来显示当前文件夹的名称吗?好吧,那很容易;应该是密码。如果您想导航到/tmp文件夹怎么办?简单:cd/tmp。现在,你最想知道的是,统计当前文件夹下python文件个数的命令是什么?有点棘手:找到。输入f-name'*.py'|wc-l。这并不难,可以通过其他方式完成,但有时我们会忘记。如果我告诉您您可以编写一个可以用自然语言查询并取回您正在寻找的shell命令的脚本,您会怎么办?了解复杂的shell命令很有吸引力。我知道这也可以提升自尊。但是,如果我告诉您您可以编写一个可以用自然语言查询并取回您正在寻找的shell命令的脚本呢?例如,假设您有一个自然语言shell(nlsh)并且想要获取今天的日期。它可能看起来像这样:nlsh>Whatdayisit?>>>Wouldyouliketorun:date+%A[Y/n]:_第一行是shell的输入,而第二行显示可能的输出。那不是很酷吗?现在,如果我告诉您今天您可以使用Python在30行代码中完成此操作,您会怎样?我认为这是革命性的!一种访问OpenAI开发的新AI模型的方法。自然语言的外壳只是冰山一角。OpenAIAPIOpenAIAPI是一种访问OpenAI开发的新AI模型的方法。它提供了一个通用接口,您可以通过几个示例指定所需的操作。您可以将它集成到您??的产品中,对其进行微调并开发全新的应用程序,或者只是探索它的局限性。该API尚未向公众开放,但您可以加入候补名单。它是如何工作的?想象一下,您想要创建一个文本完成应用程序,例如自然语言shell(有人可能会说这也可以看作是一个问答应用程序)。首先,您应该通过向API展示您想做的事情来“编程”API。越多越好,特别是如果任务很复杂:输入:打印当前目录输出:pwdInput:列出文件输出:ls-lInput:将目录更改为/tmp输出:cd/tmpInput:计数文件输出:ls-l|wc-l...好吧,就是这样!没有第二步。第一天的结果可能并不完美,但您可以通过在更大的示例数据集上进行训练,或通过从用户提供的人工反馈中学习来提高其性能。OpenAI的研究将API设计得足够灵活,可以提高机器学习团队的工作效率。同时,它非常简单,任何人都可以使用它。在后台,API运行具有GPT-3系列权重的模型,这些模型在速度和吞吐量方面得到了改进,使此类应用程序变得实用。什么是GPT-3?GPT-3是OpenAI的GPT-2的演进,标志着自然语言处理的一个新里程碑。GPT代表GenerativePretrainedTransformer,它引用了2017年谷歌的一项名为Transformer的创新。它的主要目的是计算出特定单词在给定上下文中出现的可能性。在此基础上,我们现在可以创建完成文本、回答问题、总结文档等的应用程序。自然语言Shell示例在本节中,我们将使用Python和几行代码对我们在序言中看到的自然语言Shell进行编码。首先是python文件:prompt="""Input:PrintthecurrentdirectoryOutput:pwdInput:ListfilesOutput:ls-lInput:Changedirectoryto/tmpOutput:cd/tmpInput:CountfilesOutput:ls-l|wc-lInput:ReplacefoowithbarinalallpythonfilesOutput:sed-i.bak--'s/foo/bar/g'*.pyInput:PushtomasterOutput:gitpushoriginmaster"""template="""输入:{}输出:"""importos,click,openaiwhileTrue:request=input(click.style('nlsh>','red',bold=True))prompt+=template.format(request)result=openai.Completion.create(model='davinci',prompt=prompt,stop='/n',max_tokens=100,temperature=.0)command=result.choices[0]['text']prompt+=commandifclick.confirm(f'>>>Run:{click.style(command,"blue")}',default=True):os.system(command)在python脚本的开头,我们为API提供了一些我们希望它做什么的示例。然后我们创建一个完成任务并使用davinci模型。我们将max_tokens设置为100以获得足够的缓冲区,并将温度设置为0。将温度设置为0是一种很好的做法,只要我们遇到只有一个正确答案的问题。一般来说,温度越高,模型的创作自由度越高。最后,我们执行pythonnlsh.py来测试应用程序。>TheNaturalLanguageShell更多示例与OpenAI密切合作的组织已经在使用OpenAIAPI。让我们看一些非常聪明的例子。ChatroomAIChannels是一个面向人和人工智能代理的社交网络。AIChannels允许您与AI代理互动,这些代理可以帮助您产生想法、推荐书籍和电影、讲述互动故事,或者与朋友和一些历史上最伟大的思想家一起参加圆桌讨论,您可以在其中请求虚拟的阿尔伯特·爱因斯坦来解释相对论或从简·奥斯汀那里获得写作技巧。代码完成使用OpenAIAPI,我们可以生成有用的上下文感知代码建议。在对来自数千个开源GitHub存储库的代码进行微调后,API根据函数名称和注释完成代码。代码摘要通过其模式识别和生成功能,API可以将密集的文本转换为简化的摘要。在这里,我们展示了一个API,用于将NDA聚合到阅读级别2的内容中。结论在这个故事中,我们看到了OpenAIAPI的潜力和一些用例,这些用例重新定义了这种自然语言理解工具的可能性。语义搜索、客户支持、聊天机器人、文本处理应用程序和生产力工具将永远改变!关于作者我叫DimitrisPoulopoulos,是BigDataStack的一名机器学习研究员。我也是希腊比雷埃夫斯大学的博士生。我为欧盟委员会、欧盟统计局、国际货币基金组织、欧洲中央银行、经合组织和宜家等主要客户设计和实施了人工智能和软件解决方案。