【深度学习: ChatGPT 】经验教训:使用 ChatGPT 作为 ML 工程师一天

2024-02-10 13:12

本文主要是介绍【深度学习: ChatGPT 】经验教训:使用 ChatGPT 作为 ML 工程师一天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

【深度学习: ChatGPT 】经验教训:使用 ChatGPT 作为 ML 工程师一天

    • 介绍
    • 设置
    • 过程
    • 标杆
    • ChatGPT 做机器学习
    • ChatGPT 能否真正实施这些解决方案?
    • 结果
    • 结论

TLDR;在最近使用 AI 应用程序 ChatGPT 的用例激增中,我们询问它是否可用于改进其他 AI 系统。我们在未经过训练的人工智能模式(计算机视觉)中对实际问题进行了测试,并报告了结果。与我们的随机样本相比,ChatGPT 建议的平均精度平均提高了 10.1%,召回率提高了 34.4%,使用纯粹以数据为中心的指标驱动方法。帖子的代码在这里。

介绍

很少有技术发展能像 OpenAI 发布 ChatGPT 那样迅速和鲜明地抓住公众的想象力。

在推出后的两个月内,它就获得了超过 1 亿用户,这是历史上最快的公共应用程序。虽然许多人认为 ChatGPT 在技术上是一次飞跃,但它真正的火花并不是基于巨大的技术进步(GPT3,它所基于的模型已经存在了近 3 年),而是因为它是一个人工智能应用程序,完美地针对个人人类互动进行了校准。

正是它作为一个人工智能系统的炫耀性,可以展示现实世界的价值,让公众如此敬畏。人工智能的形式存在于现代生活的各个方面,但大多隐藏在后台(谷歌搜索、Youtube 推荐、垃圾邮件过滤器、身份识别)。

ChatGPT 是为数不多的公然人工但也很智能的之一。人工智能成为众人瞩目的焦点,催生了大量的思想文章、文章、视频、博客文章和播客。

在这种内容热潮中,围绕人工智能进步、人工智能意识的进步、通用人工智能 (AGI) 和技术奇点的更具挑衅性的影响,人们重新提出了问题和担忧。在最具投机性的场景中,人们担心(或希望取决于你问谁)是我们模型的复杂性、强大性和复杂性最终会突破分离智能的事件视界,在这种视界中,系统发展出迭代自我改进其核心功能和自身自我改进能力的能力。这可以创造一个指数级增长的正强化循环,刺激我们所知道的社会和人类存在的不可知和不可逆转的转变。

在这里插入图片描述
还没有,ChatGPT

需要明确的是…那不是我们所处的位置。

ChatGPT并不是终结者的曙光。预测一项仍处于快速发展中的技术方向往往是愚蠢的,而对其更广泛的影响则更是如此。然而,在面对一个迫在眉睫且无法回答的大问题时,我们仍然可以通过提出更小、更可口的问题来发展洞察力和直觉。

本着这种精神,我们寻找一个可以提出并随后测试人工智能自我改进主题的更简单的问题:

我们能否找到一种途径来检查一个人工智能系统是否可以迭代改进另一个人工智能系统?

我们观察到,目前人工智能发展的主要推动者是从事机器学习工作的人,他们是工程师和研究人员。一个明智的代理子问题可能是:

ChatGPT 可以成为一名称职的机器学习工程师吗?

设置

如果 ChatGPT 要充当 ML 工程师,最好对角色所需的任务进行清点。ML工程师的日常生活包括:

  • 手动检查和浏览数据
  • 训练模型和评估模型结果
  • 管理模型部署和模型监视过程。
  • 编写自定义算法和脚本。

将这个角色联系在一起的线索是,机器学习工程师必须是多才多艺的技术问题解决者。因此,与其遍历 ChatGPT 的全部 ML 任务,不如专注于角色中更抽象和创造性的问题解决元素。
我们将通过 ChatGPT 以几种方式缩小范围:

专门研究计算机视觉:我们之所以选择计算机视觉,既是因为这是我们的专长,也是因为作为一种大型语言模型,ChatGPT(据我们所知)在其训练过程中无法直接访问任何视觉媒体。因此,它从纯粹的概念角度来研究这个领域。

一个具体的玩具问题:为了纪念我们都知道和喜爱的 Python 库以及我们都知道和喜爱的濒临灭绝的动物,我们选择我们的玩具问题来构建一个强大的熊猫物体检测器。我们将使用来自开源 YouTube-VOS 数据集的数据,这些数据是我们独立重新标记的,并且故意犯了错误。

采用明确的以数据为中心的方法:我们选择以数据为中心的方法,因为我们发现这种方法通常对实际模型开发具有最高的杠杆作用。我们可以消除模型和参数选择的大部分复杂性,这样我们就可以更专注于改进输入到模型中进行训练的数据和标签。采用更以模型为中心的方法来运行超参数和模型架构虽然很重要,但对 ChatGPT 的抽象推理能力的测试将减少。

使用现有工具:为了进一步简化任务,我们消除了对 ML 工程师经常为自己构建的内部工具的任何依赖。ChatGPT(不)幸运的是不能花时间在 Jupyter Notebook 上。我们将利用 Encord 平台,通过使用 Encord 的微模型并通过开源工具 Encord Active 运行数据、标签和模型评估来简化模型训练/推理。下面提供了用于运行模型训练的代码。

在这里插入图片描述
考虑到这个缩小的范围,我们的方法是使用 ChatGPT 通过 Encord Active 编写自定义质量指标,我们可以运行数据、标签和模型预测,以过滤和清理熊猫问题中的数据。

质量指标是对数据、标签和模型的额外参数化;它们是以语义上有趣且相关的方式索引训练数据和预测的方法。示例可以包括从更一般的属性(如图像的模糊度)到任意特定的属性(如图像中行人之间的平均距离数)的所有内容。

ChatGPT 作为我们的 ML 工程师的工作是提出想法来分解和整理我们的标签和数据,以提高下游模型的性能,通过它可以自行编程的有形质量指标进行调解。

示例质量指标的代码如下:

在这里插入图片描述
这个简单指标计算数据集中边界框的纵横比。使用此指标遍历数据集,我们看到了一种分解数据的方法:

在这里插入图片描述

ChatGPT 的目标是找到其他相关指标,我们可以用这些指标来改进数据。

我们还必须考虑的最后一点是,ChatGPT 作为 ML 工程师处于很大的劣势。它无法直接看到它正在处理的数据。它的实现能力也很有限。最后,ChatGPT 作为自身成功的受害者,经常出现中断和无响应的情况。ChatGPT 是贵公司的一名 ML 工程师,他住在一个 wifi 非常糟糕的荒岛上,他们唯一可以运行的软件是 Slack。因此,出于实际原因,我们需要一种人机交互的方法。在这个项目中,我们将充当 ChatGPT 的眼睛、耳朵和手指,以及它的探索同事。

过程

在上述约束条件下,我们的策略如下:

  1. 对随机抽样的数据运行初始基准模型
  2. 向 ChatGPT 寻求改进数据和标签选择过程的想法
  3. 让它编写自定义质量指标来实例化这些想法
  4. 使用改进的数据训练新模型
  5. 评估模型并进行比较

通过以数据为中心的方法,我们将 ChatGPT 必须试验的变量限制为仅质量指标。所有模型和超参数将保持不变。总结一下:

在这里插入图片描述

与被困在OpenAI服务器上的神经网络相比,我们作为人类所拥有的奢侈之一(目前)是我们可以直接查看数据。通过一些轻微的目视检查,快速发现标签错误(我们特意引入的)并不难。在整个过程中,我们将尽最大努力将我们所看到的内容与 ChatGPT 进行沟通,为其解决方案提供足够的背景信息。一些(无可争议的可爱)数据示例包括:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有一些明显的标签错误:

在这里插入图片描述

在这里插入图片描述
不完全是熊猫

标杆

建立所有这些后,我们可以从运行一个初始模型开始,对 ChatGPT 的努力进行基准测试。对于我们的基准测试,我们随机抽取 25% 的训练数据集样本,并通过上述模型训练循环运行它。我们的初步结果得出的平均精度 (mAP) 为 0.595,平均召回率为 0.629。

在这里插入图片描述

我们现在可以尝试 ChatGPT 下一步去哪里。

ChatGPT 做机器学习

通过我们的基准集,我们与 ChatGPT 合作,探讨如何通过质量指标改进我们的数据集。我们的第一种方法是建立对问题的高级描述并引出初步建议。

在这里插入图片描述
在这里插入图片描述

一系列的来回讨论产生了一个相当富有成效的头脑风暴会议:

在这里插入图片描述
我们已经对指标有一些有趣的想法。为了继续提出想法,我们进行了一系列长时间的对话,包括在休息时玩 Wordle 的命运多舛的尝试。

在这里插入图片描述
在这里插入图片描述
经过多次互动(并建立了稳固的融洽关系),我们可以回顾一下 ChatGPT 提出的一些示例指标建议:

对象邻近度:参数化帧中熊猫边界框之间的平均距离。如果熊猫彼此非常接近,这可能会混淆对象检测模型,这可能很有用。

对象置信度分数:这是一种标准方法,使用现有模型对标签的置信度与初始模型本身进行排名。

对象计数:一个简单的指标,与帧中的熊猫数量影响模型精度的情况相关。

边界框松紧度:计算边界框内轮廓的纵横比与框本身的纵横比的偏差,以衡量框是否紧紧地贴合在感兴趣的对象周围

除了指标的想法外,我们还希望它就如何在实践中使用这些指标提出建议。

数据选择:

让我们问问 ChatGPT 对使用指标提高数据质量的看法。

在这里插入图片描述

标签错误

我们还可以询问当指标发现潜在的标签错误时该怎么办。

在这里插入图片描述
总而言之,根据 ChatGPT 改进我们的模型的一些具体策略是:

  • 数据分层:使用指标对数据集进行分层以实现平衡
  • 错误消除:从训练数据中过滤出我们的指标指示的潜在错误
  • 重新标记:将潜在的标签错误发回以重新注释

我们现在通过 ChatGPT 构思编制了许多可行的指标和策略。下一个问题是:

ChatGPT 能否真正实施这些解决方案?

下一步,它将把自己的想法实例化为自己的自定义指标。让我们通过输入一些示例度量代码和 Encord Active 文档中关于示例度量的说明来尝试一下:

在这里插入图片描述
在这里插入图片描述
从表面上看,它看起来不错。我们浏览了 ChatGPT 建议的各种其他指标,并找到了类似的看似合理的代码片段,我们可以通过复制/粘贴来尝试。将这些指标插入 Encord Active 以查看其运行情况,我们会得到:

在这里插入图片描述
看来这里需要改进一下。让我们问问 ChatGPT 在这方面能做些什么。

在这里插入图片描述
呃哦。尽管多次刷新,我们还是发现了一个阻碍性的响应。就像一个不可靠的同事一样,ChatGPT 编写了有缺陷的代码,然后当天就注销了,没有任何反应。

似乎仍然需要人工输入才能让事情正常运行。经过大量的手动调试后,我们终于让 ChatGPT 的指标得以运行。我们现在可以回去实施它的建议。

与任何数据科学计划一样,关键是对候选想法进行多次迭代。我们将运行多个 ChatGPT 指标并对结果进行平均,但为了简洁起见,我们将仅尝试它建议的过滤策略。我们让 ChatGPT 不再运行这些实验,让它在完成迄今为止的工作后休息一下。我们在此处共享 Colab 笔记本中的一些实验和 ChatGPT 指标的示例代码。

结果

我们使用 ChatGPT 的指标和策略进行了多项实验。通过查看指标,我们可以在下面看到 ChatGPT 的模型性能。

在这里插入图片描述
在这里插入图片描述
使用纯粹以数据为中心的指标驱动方法,与我们的随机样本相比,ChatGPT 指标建议的平均精确度平均提高了 10.1%,召回率平均提高了 34.4%。

虽然 ChatGPT 不是一个完美的同事,但它在构思合理的指标方面做了值得称赞的工作。它的想法对我们的熊猫探测器做出了重大改进。那么 ChatGPT 会是下一个杰弗里·辛顿吗?

不完全是。其一,其代码需要大量人工干预才能运行。如果我们忽略这样一个观察结果,那就是我们的疏忽:在整个对话过程的背景中,隐含地注入了一定量的人类判断力。事实上,我们最成功的指标,即对减少标签错误和提高模型性能影响最大的指标,在​​很大程度上受到了人类建议的影响:

在这里插入图片描述
这个“边界框紧密度”指标是早期定义的,是通过一系列提示和响应得出的。通往指标的道路不是由 ChatGPT 雕刻的,而是由人手雕刻的。

ChatGPT 也错过了一些简单的特定问题指标的机会。人类对熊猫的一个明显观察是它们的黑白颜色。尝试测量标签错误的一个简单指标是用白色和黑色边界框像素的数量除以框中的像素总数。该指标的数值较低表明边界框可能没有紧密封装熊猫。虽然对我们来说显而易见,但尽管我们尽了最大努力,我们还是无法哄骗这样的想法。

结论

总体而言,ChatGPT 似乎确实对计算机视觉有着深入的了解。它能够针对不熟悉的问题和框架生成有用的建议和初始模板代码片段。在它的帮助下,我们能够显着改进我们的熊猫检测器。创建代码模板的能力而不必从头开始编写所有内容,还可以显着加快(人类)ML 工程师的迭代周期。

然而,它的不足之处在于它没有能力在没有指导的情况下建立自己以前的想法和结论。它从来没有通过集中推理来更深入地研究问题的特殊性。

对于人类来说,重要的见解并不容易获得,它们来自于经验和其他以前艰苦奋斗的见解的基础上。 ChatGPT 似乎还没有开发出这种能力,仍然依赖于“即时工程师”的指导。虽然它可以成为机器学习思想和策略的一个强有力的起点,但它还不具备独立机器学习工程的深度认知能力。

ChatGPT 可以用来改进人工智能系统吗?是的。

我们会聘请他作为我们的下一个独立机器学习工程师吗?不。

等GPT4吧。

这篇关于【深度学习: ChatGPT 】经验教训:使用 ChatGPT 作为 ML 工程师一天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697194

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;