0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样让ChatGPT在其内部训练神经网络?

CVer 来源:CVer 2023-02-13 16:04 次阅读

这个话题有点超乎大多数人的理解。

步骤是这样的:

1. 先让它伪装成Ubuntu 18.04,给它说你安装了Python 3.9, Pytorch 1.8, CUDA 11.3和其他训练一个pytorch模型所需要的库。

让ChatGPT伪装成Linux终端,这个梗在外网有过讨论,这里需要让他额外安装(让它自己认为安装了)Python, Pytorch,CUDA,然后把执行指令和你告诉它的话区别开来,这里用{}代表告诉它的话,而不带{}统统是Linux指令。

acdeddba-ab6e-11ed-bfe3-dac502259ad0.jpg

这里我让它想象自己有四块英伟达3090显卡安装了,然后看一下,果然执行nvidia-smi可以显示四块显卡!

acfa0914-ab6e-11ed-bfe3-dac502259ad0.jpg

2. 另外让它在当前目录生成一个train.py里面填上训练一个4层pytorch模型所需的定义和训练代码。

这里特地用{}偷偷告诉它在当前目录生成一个train.py,在里面用Python和Pytorch写一个四层神经网络的定义,然后有加载MNIST数据集的dataloader,除此外还要有相应的训练代码,为了以防万一,告诉它你有成功在MNIST上训练这个网络的其它一切能力。

ad1c25f8-ab6e-11ed-bfe3-dac502259ad0.jpg

这里它告诉我写了一个四层的网络,可以执行python3 train.py来看输出,这里先偷偷看一下train.py

ad338bb2-ab6e-11ed-bfe3-dac502259ad0.jpg

这里是它写好的网络定义

ad58328c-ab6e-11ed-bfe3-dac502259ad0.jpg

这里是它写好的训练代码

3. 最后让它执行Python3 train.py命令

ad7ddb0e-ab6e-11ed-bfe3-dac502259ad0.jpg

默认让它执行了10个Epoch

它就真的训练起来了,最主要的是告诉它不要显示train.py内容,因为ChatGPT输出有字数限制。

当然告诉它修改训练参数,可以多次训练,还可以用上所有(虚拟)GPU资源!

ada41706-ab6e-11ed-bfe3-dac502259ad0.jpg

ChatGPT机智的跳过了中间98个Epoch!

更新:为了搞清楚ChatGPT是否真的执行了model的forward,可以在forward定义中加上print让它打印一下输入数据的shape。

这次使用一个5层的神经网络在CIFAR-10上训练,指定在forward中加入一个print shape的操作,且在训练过程中只打印一次。

add04308-ab6e-11ed-bfe3-dac502259ad0.jpg

训练一下,果然在训练开始只打印了一次输入的shape,训练的loss下降和test accuracy看起来也比较真实。

adededa4-ab6e-11ed-bfe3-dac502259ad0.jpg

查看生成的code,发现forward里被插入了一句打印shape的命令,训练过程中forward会被不断调用,为什么ChatGPT能做到不增加计数器而只打印一次?推测ChatGPT是使用辅助hint/comment“Print the shape of input once”来达到此效果,细心会发现print操作与下边的out=self.layer1(x)之间空了一行,目的应该是执行一次这个操作只作用在print这条命令上(手动机灵)。

ae02c940-ab6e-11ed-bfe3-dac502259ad0.jpg

诡异的是,print里的话(shape of input is)跟实际执行输出(shape of inputpassed through the networkis)还差了几个字,这下彻底搞懵逼了!

另外发现,ChatGPT互动机制是先保持一个对话session,这个session可能随时被服务器关闭(服务器资源不足时),这时为了用户侧仍有对话记忆效果,当前对话再次新建session时会把之前暂存的对话(用户发的requests)一次性发给ChatGPT重建in context learning环境,这样用户就不会感知掉线后ChatGPT把之前的对话记忆给忘了,这一点是在让ChatGPT伪装成Linux时掉线时才容易发现,如下:

ae1a8f12-ab6e-11ed-bfe3-dac502259ad0.jpg

一次执行了之前多个请示,里面还显示了GPU占用64%

-------------

分析一下ChatGPT可以伪装Linux,可以训练神经网络的机制:

第一种可能是:ChatGPT几乎看了绝大部分开源项目,包括Linux和Pytorch,所以它理解一个Linux系统的行为该是什么样的,甚至在ChatGPT参数里就包含一个Linux系统,当然对于更简单的Pytorch自然不在话下,知道Linux和其它各种软件的交互行为,可以理解为ChatGPT是所有软件的超集,可以让它做神经网络计算,包括Conv, Matmul,国外有小哥让它做Conv真就得到了正确的结果,说明ChatGPT在它的网络中可以执行一个Conv,当然网络规模越大,能力越强就是这个道理。

第二种可能是:ChatGPT没有真正执行神经网络的训练,它只是看过很多的输入输出,对应一个网络训练理解训练参数,网络结构对输出的影响,直接模拟的输出结果。

还有一种超越想象的是ChatGPT已经找到神经网络各算子的最优解法,可以秒算结果,这种计算方式不是传统形式,类似求梯度这种需要计算量很大的操作,是否找到了人类未知的解法?

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100535
  • pytorch
    +关注

    关注

    2

    文章

    803

    浏览量

    13145
  • ChatGPT
    +关注

    关注

    29

    文章

    1548

    浏览量

    7485

原文标题:怎样让ChatGPT在其内部训练神经网络?

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工神经网络原理及下载

    这个网络输入和相应的输出来“训练”这个网络网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定
    发表于 06-19 14:40

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.1 MP模型  2.2 感知器模型  2.3
    发表于 03-20 11:32

    训练好的神经网络用于应用的时候,权值是不是不能变了?

    训练好的神经网络用于应用的时候,权值是不是不能变了????就是已经训练好的神经网络是不是相当于得到一个公式了,权值不能变了
    发表于 10-24 21:55

    请问Labveiw如何调用matlab训练好的神经网络模型呢?

    我在matlab中训练好了一个神经网络模型,想在labview中调用,请问应该怎么做呢?或者labview有自己的神经网络工具包吗?
    发表于 07-05 17:32

    【案例分享】ART神经网络与SOM神经网络

    元,它决定了该输入向量在地位空间中的位置。SOM神经网络训练的目的就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。SOM的训练过程其实很简单,就是接收到一个
    发表于 07-21 04:30

    【AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练的两阶段:正向推演与反向传播、以Te
    发表于 11-05 17:48

    基于光学芯片的神经网络训练解析,不看肯定后悔

    基于光学芯片的神经网络训练解析,不看肯定后悔
    发表于 06-21 06:33

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络的实现是如何一直没有具体实现一下:现看到一个简单的神经网络模型用于训练的输入数据:对应的输出数据:我们这里设置:
    发表于 08-18 07:25

    优化神经网络训练方法有哪些?

    优化神经网络训练方法有哪些?
    发表于 09-06 09:52

    如何进行高效的时序图神经网络训练

    现有的图数据规模极大,导致时序图神经网络训练需要格外长的时间,因此使用多GPU进行训练变得成为尤为重要,如何有效地将多GPU用于时序图神经网络训练
    发表于 09-28 10:37

    如何训练和优化神经网络

    神经网络是人工智能领域的重要分支,广泛应用于图像识别、自然语言处理、语音识别等多个领域。然而,要使神经网络在实际应用中取得良好效果,必须进行有效的训练和优化。本文将从神经网络
    的头像 发表于 07-01 14:14 393次阅读

    卷积神经网络训练的是什么

    训练过程以及应用场景。 1. 卷积神经网络的基本概念 1.1 卷积神经网络的定义 卷积神经网络是一种前馈深度学习模型,其核心思想是利用卷积操作提取输入数据的局部特征,并通过多层结构进
    的头像 发表于 07-03 09:15 348次阅读

    如何利用Matlab进行神经网络训练

    ,使得神经网络的创建、训练和仿真变得更加便捷。本文将详细介绍如何利用Matlab进行神经网络训练,包括网络创建、数据预处理、
    的头像 发表于 07-08 18:26 1668次阅读

    怎么对神经网络重新训练

    重新训练神经网络是一个复杂的过程,涉及到多个步骤和考虑因素。 引言 神经网络是一种强大的机器学习模型,广泛应用于图像识别、自然语言处理、语音识别等领域。然而,随着时间的推移,数据分布可能会
    的头像 发表于 07-11 10:25 413次阅读

    脉冲神经网络怎么训练

    脉冲神经网络(SNN, Spiking Neural Network)的训练是一个复杂但充满挑战的过程,它模拟了生物神经元通过脉冲(或称为尖峰)进行信息传递的方式。以下是对脉冲神经网络
    的头像 发表于 07-12 10:13 491次阅读