图片来自 Miguel Á. Padriñán 的 Pexels
GPT-3 是由 Open AI 在去年末发布的一种语言机器学习模型。它因能够撰写文章、歌曲、诗歌甚至代码而受到广泛的媒体关注!该工具可免费使用,只需提供电子邮件即可注册。
GPT-3 是一种称为 Transformer 的机器学习模型。具体而言,它是 Generative Pre-training Transformer 的扩展,因此被称为“GPT”。Transformer 架构使用自我注意力和强化学习来模拟对话文本。通常,它通过逐个处理文本单词来工作,并使用前面的单词来预测序列中的下一个单词。
GPT-3 在所有领域中都有大量的应用,包括科学、艺术和技术。它可以用于回答有关科学和数学的基本问题。它甚至可以回答与研究生级数学和科学概念相关的问题,而且准确度还不错。更令人惊讶的是,我询问了一些有关化学物理学博士研究的问题,它能够为一些研究生级别的概念提供合理的解释。但它也有其局限性。当我询问 GPT-3 关于化学物理学中更新颖的研究方法时,它无法提供合理的答案。因此,在将 GPT-3 用作教育和研究搜索引擎时,应谨慎使用。GPT-3 没有事实核查能力。随着事实核查能力的提高,我可以想象 GPT-3 在未来对研究生甚至研究方面非常有用。
除了我的个人经验外,我还看到了许多其他很酷的应用程序。例如,一位开发者使用 GPT-3 来协调云服务以完成复杂任务。其他用户使用 GPT-3 生成了 Python 和 SQL 等语言的工作脚本。在艺术方面,用户要求 GPT-3 撰写有关现代和当代艺术的文章。GPT-3 的潜在应用程序在基本上任何领域中都很丰富。
GPT-3 在回答有关网络上有大量准确内容的主题的基本问题方面表现非常出色。例如,它可以很好地解释光合作用。但是,对于回答有关光合作用的尖端研究问题,它的表现就不那么好了。例如,它无法描述光合作用的机械过程和涉及的量子粒子。虽然它可以给出合理的高级响应,但不太可能深入了解大多数研究问题的技术细节。同样,GPT-3 可以编写一些简单的工作代码,但随着任务复杂性的增加,生成的代码越来越容易出错和错误。它也无法生成政治观点、伦理价值观、投资建议、准确的新闻报道和其他通常由人类生成的内容。
虽然 GPT-3 有其局限性,但其广泛的适用性令人印象深刻。我认为,通过一些有趣的数据科学和机器学习提示,我们可以看到它是否可以补充数据科学工作流程的某些部分。
首先,我们将从一些简单的提示中生成一些与数据科学相关的文本。一旦我们更熟悉这个工具,我们将看看是否可以提出一些有助于某些数据科学任务的问题。我们可以向 GPT-3 提出几个有趣的数据科学和机器学习问题。例如,我们可以使用 GPT-3 来获取公开可用的数据集吗?GPT-3 的训练数据包含截至 2021 年的数据,因此它应该知道过去 1-2 年内的公共数据集。另一个有趣的应用是问题框架。GPT-3 能否帮助用户构建良好的机器学习研究问题?虽然它很难给出具体的技术答案,但也许它可以很好地构建好的未回答的研究问题。
另一个很酷的应用是使用 GPT-3 来决定在特定应用程序中使用哪种 ML 模型。这将是不错的,因为对于那些已经被广泛接受且有大量在线文献的技术,它应该能够帮助用户选择模型,并解释为什么所选的模型最有效。最后,我们可以尝试使用 GPT-3 为某些数据科学任务编写一些 Python 代码。例如,我们可以看看它是否可以编写用于特定用例的生成合成数据的代码。
注意:GPT-3 API 的结果不是确定性的。因此,你得到的结果可能与此处显示的输出略有不同。此外,由于 GPT-3 没有事实核查机制,我建议你在使用任何事实结果进行工作、学校或个人项目之前进行双重检查。
对于这项工作,我将在 Deepnote 中编写代码,这是一种协作式数据科学笔记本,可使运行可重复的实验非常容易。
设置 GPT-3
首先,让我们转到 Deepnote 并创建一个新项目(如果你还没有帐户,可以免费注册)。
让我们创建一个名为“GPT3”的项目,并在其中创建一个名为“GPT3_ds”的笔记本。
接下来,让我们在第一个笔记本单元格中使用 pip 安装 OpenAI:
嵌入式代码
一些简单的数据科学和机器学习提示
询问 Python 库
让我们开始将密钥存储在 openAI 对象的 api_key 属性中:
import openai
openai.api_key = "your-key"
现在让我们询问一些众所周知的 Python 库。如果我们问“什么是 Pandas 库?”,GPT-3 将给出一个响应:
嵌入式代码
我们甚至可以询问更具体的问题,例如“Pandas 的一些常见用例是什么?”它给出合理的答案,列出数据整理、数据可视化、数据聚合和时间序列分析:
嵌入式代码
让我们问一下“最常见的深度学习库是什么?”:
嵌入式代码
我们甚至可以问类似“什么是深度神经网络?”的问题:
嵌入式代码
需要谨慎使用 GPT-3 进行事实搜索,因为没有事实核查机制。在大多数情况下,如果你想获得关于数据科学和机器学习中众所周知的概念(有许多在线博客和论坛)的表面理解,GPT-3 应该可以很好地工作。## 特征工程
GPT-3的另一个有趣的应用场景是将其用作指导数据科学工作的辅助工具。例如,GPT-3是否能够提供一些特征变换的想法,以改善模型性能?让我们来问问GPT-3:
作者创建的嵌入
我们看到它提供了一些很好的特征变换建议以及每个建议的解释。
让我们看看是否可以进一步。让我们让它编写一些Python代码,其中它执行标准化:
作者创建的嵌入
我们将其复制并粘贴到新的单元格中并运行它:
作者创建的嵌入
接下来,让我们为归一化做同样的事情:
作者创建的嵌入
让我们运行这段代码:
作者创建的嵌入
模型选择
模型选择是另一个很酷的应用场景。让我们看看GPT-3是否能够指导我们选择机器学习模型。让我们问“如何选择时间序列模型?”
作者创建的嵌入
这些答案是合理的,列出了检查平稳性、季节性、趋势和模型性能评估。让我们问一个更具体的问题,例如“何时使用ARIMA vs Prophet?”
作者创建的嵌入
完整的回答是:
ARIMA和FB Prophet都用于时间序列预测。ARIMA是线性模型,适用于预测具有稳定数据的长期趋势。FB Prophet是非线性模型,适用于预测具有非稳态数据的短期趋势。因此,当你主要关注预测长期趋势时,应使用ARIMA,而当你主要关注预测短期趋势时,应使用FB Prophet。-GPT-3
生成合成数据
我们可以使用GPT-3生成合成数据吗?让我们来看看!我们将查看医疗保健再入院数据和交易数据的知名示例。
医疗保健再入院
让我们让GPT-3“编写示例Python代码,生成存储在数据帧中的合成医疗保健再入院数据”:
作者创建的嵌入
让我们运行这段代码:
作者创建的嵌入
让我们看看是否可以让它在这些合成数据上构建一个分类模型来预测再入院并评估性能。提示如下:
“编写示例Python代码,生成存储在数据帧中的合成医疗保健再入院数据。从这个数据上编写代码,构建一个CatBoost模型来预测再入院结果。还编写计算和打印性能的代码。”
作者创建的嵌入
让我们复制并运行这段代码:
作者创建的嵌入
交易数据
让我们让GPT-3“编写示例Python代码,生成存储在数据帧中的合成交易数据”:
作者创建的嵌入
让我们将此代码复制并在新单元格中运行:
作者创建的嵌入
现在我们有商品ID、客户和购买金额。让我们变得更加具体。让我们要求包括年龄、性别和位置:
作者创建的嵌入
然后让我们运行代码:
作者创建的嵌入
非常令人印象深刻!
公共数据集提示
另一个应用是查询GPT-3的公共数据集。让我们让GPT-3列出一些公共数据集:
作者创建的嵌入
让我们看看是否可以找到在Apache 2.0下许可的公共数据。我们还要求提供源的链接:
作者创建的嵌入
虽然并非所有链接都是正确的,但它做得相当不错,找到了源链接。Google Ngrams、common crawl和NASA数据非常好。如果它没有提供数据的确切位置,在大多数情况下,它提供了一个链接到可以找到数据的网页的链接。
让我们也要求提供描述。请注意,虽然结果可能重叠,但每次运行时它们都略有不同。据我所知,结果并不总是可重现的:
作者创建的嵌入
结果是:
- OpenStreetMap:OpenStreetMap是世界上一个免费、可编辑的地图,由志愿者创建和维护,并可在开放许可下使用。它包含数百万个数据点,包括道路、建筑物和兴趣点。源:https://www.openstreetmap.org/
- Google Books Ngrams:Google Books Ngrams是来自Google Books的500多万本书的数据集,跨越从1500年到2008年。它包含每年的单词计数,允许研究人员跟踪单词的使用情况随时间变化。来源:https://aws.amazon.com/datasets/google-books-ngrams/
- Wikipedia:Wikipedia是一部免费、开源的百科全书,拥有数百万篇文章,涵盖数百种语言。它可在Creative Commons Attribution-ShareAlike许可下使用。源:https://www.wikipedia.org/
- Common Crawl:Common Crawl是一个大规模的网络爬虫,从超过50亿个网页中收集数据。它可在Apache 2.0许可下使用。源:https://commoncrawl.org/
- Open Images Dataset:Open Images Dataset是一个包含900万张图像的集合,注释有超过6000个类别的标签。它可在Apache 2.0许可下使用。源:https://storage.googleapis.com/openimages/web/index.html-GPT-3
Open streetmaps、Google Ngrams和开放图像数据集的链接是合理的。
机器学习问题框架提示
对于我们的最后一个示例,我们将看看GPT-3是否可以帮助我们构建机器学习问题的框架。我们将考虑用例制定以及研究问题的构建。
用例提示
虽然GPT-3只包含截至2021年的数据,但它仍然可以帮助我们构思当今相关的ML用例。让我们问“社交媒体中的一些新兴机器学习用例是什么?”
作者创建的嵌入
-
自动内容策展:从社交媒体平台自动策展内容,为用户创建个性化的内容源。2. 情感分析:从社交媒体帖子中分析用户情感,以获取客户意见和偏好方面的见解。
-
社交媒体监测:使用机器学习算法监测社交媒体对话并检测潜在问题或趋势。
-
社交媒体广告:利用机器学习优化社交媒体广告活动并针对正确的受众群体。
-
社交媒体推荐:利用机器学习根据用户的兴趣和偏好向用户推荐内容。
接下来让我们看看针对医疗保健的响应:
由作者创建的嵌入式对象
研究问题提示
现在让我们看看如何构建一些研究问题。让我们问:“如何使用深度学习进行图像检测的一些好的研究问题是什么?”
由作者创建的嵌入式对象
“与NLP变压器模型相关的一些好的研究问题是什么?”
由作者创建的嵌入式对象
本文中的代码可在GitHub上找到。
结论
在本文中,我们讨论了如何将GPT-3用于各种数据科学和机器学习任务。首先,我们给API一些与Python库、特征工程和模型选择相关的简单提示。接下来,我们讲解了如何使用GPT-3 API生成合成医疗保健和合成交易数据。我们还能够生成一个查询,以在合成医疗保健数据的基础上构建一个再入院模型。然后,我们讨论了如何查询API以获取公开可用数据集的信息。最后,我们查询API以获取新兴的机器学习用例和研究问题。希望你喜欢本文。请随意下载代码,看看是否可以将GPT-3纳入你的数据科学工作流程中。
译自:https://medium.datadriveninvestor.com/mastering-chatgpt-in-python-a53814e834b0
评论(0)