ChatGPT仿佛是Google、StackOverflow和Readthedocs三者的组合体
图片由James A. Molnar在“Unsplash”杂志上提供
或许,你已经听说过ChatGPT了。
这是一款由OpenAI开发的新型人工智能聊天机器人,OpenAI是GPT-3、DALL.E2及其他产品的幕后开发公司。
ChatGPT横空出世,它和以前的聊天机器人完全不同。令人难以置信的是:它能就各种主题生成详细而全面的答案。例如,它可以回答哲学、数学或计算机科学中的技术问题、可以和ChatGPT闲聊、写与机器学习相关的诗,甚至可以改变它的写作风格。
更为有趣的是, ChatGPT可以非常出色地编写和解释代码。
在本博中,将用一些涉及机器学习和软件工程的编程问题来挑战ChatGPT。
作者将要求它编写常用的代码片段和函数,看看它是否能自动完成。
笔者将在交互式GIF中提供ChatGPT对每个问题的答案以及它生成的代码。
来一探究竟吧!
为机器学习模型创建一个FastAPI
当需要搭建机器学习模型时,首选的web框架绝对是FastAPI。然而,当涉及编写基本例程时,往往总会忘记语法。
ChatGPT可以刷新我的记忆:当要求它创建一个预测端点时,它会生成以下内容。
GIF由作者提供
不错吧?它不仅能生成正确的API代码,而且还对代码进行注释,并通过示例进行详细解释。
它甚至使用Pydantic风格来进行输入和输入验证。
下面是代码。当然,可以根据实际用例进行调整。
使用Python和弹性搜索创建搜索引擎
当需要利用搜索引擎来查询文本数据时,通常依赖于弹性搜索。
当使用弹性搜索时,首先应创建一个索引和一个映射。
要了解如何定义和创建对象,无需通读文档(再一次强调!),让我们来看看ChatGPT说了些什么:
GIF由作者提供
不出所料,ChatGPT直接生成了文档和示例。
以下是ChatGPT生成的代码:
用PyTorch训练图像分类的卷积神经网络
当需要训练一个神经网络时,通常是从以前的项目中复制粘贴样板代码。
问一下ChatGPT不是更香吗?
GIF由作者提供
生成的代码几乎是完美的:出于某种原因,ChatGPT在前向阶段停止了,且没有使用梯度更新权重。
有趣的是,在训练中使用的参数值(学习率、epochs数目、内数目和核大小)都是真实的。
代码:
为NLP任务训练XGBoost模型
接下来,看是否能够要求ChatGPT利用XGBoost构建一个文本分类器,实现文本数据的特征工程。
ChatGPT对此做了下述响应,它使用了一个Tfidf矢量转换器,看上去不错!
GIF由作者提供
不知道它是否可以用词嵌入来修改答案
代码:
使用MLflow来跟踪机器学习实验
当需要运行不同的机器学习实验并对它们进行比较时,通常会用MLflow在中央服务器中跟踪机器学习实验。
以下是可重复使用多次的代码片段。(衷心感谢,ChatGPT )
GIF由作者提供
代码:
编写GitHub操作,以自动部署FastAPI应用程序
如果需要将应用程序投入生产,很可能依赖某些CI/CD管道来自动化部署,或在代码库上运行一套集成测试。
通常使用以下Github动作。
GIF由作者提供
这是ChatGPT对该话题的看法。
代码:
结论
ChatGPT提供了卓越的代码生成能力,预计很快会成为开发人员的工具箱。
然而,它无法提供(尚没有)推理或优化复杂问题的解决方案。如果出现了什么问题,不能依赖ChatGPT来修复错误代码。
在我看来,ChatGPT是一种浓缩的开放知识库,可以用自然语言来实现复杂的查询。但这并不意味着可以用它做一些过火的事,也不意味着可以盲目地依赖它。
用最好的判断力来提出正确的问题。