chatgpt算法的限制 ChatGPT研究分享:插件模式的利与弊

目录

近期公开了GPT-4,除了各方面性能的提升,最大的惊喜应该来自于插件模式的引入,GPT-4可以执行代码、搜索引擎、以及集成其他App的功能了。

这无疑是对于AI后续应用模式的一次突破性的尝试,同时,也引发了对于AI的讨论。因此,本篇文章基于插件模式展开讨论。

总的来说,插件模式的模型本身并没有创新,仍然保持着原有的局限性。而AI的安全性问题也仍然在探讨中,目前需要相信人大于AI。

1、插件的实现方式

并没有公开插件的具体实现原理。因此,对于原理的探究,可以从两个方面来展开:1)meta的公开论文;2)插件开发文档

下面分别展开:

1.1

我曾经说过,目前 GPT 的两大缺陷在于:没有记忆力和无法直接学习知识。

将LLM和一些其他工具相结合,显然是一种解决当前局限性的思路。就像人类学习中一样,我们往往不需要知道所有问题的答案,而是需要知道如何利用工具(书本、计算机、搜索引擎等答案)去寻找。

这个观点也并不绝对。将答案嵌入到思维中,对于提升效率和思考复杂度是至关重要的。就好比在做题过程中,如果所有公式都是临时查询的,那可能无法灵活应用,组合成精妙的答案。

因此,meta在2023年2月,发表了相关论文。具体原理其实相当符合直觉,因此推测其他LLM等也使用类似的原理。

回顾一下实现原理:

本文文章需要关注的部分是,输入输出的token化表示。GPT将一段文字,拆解成了几个token。说到token,大致对应英文语法中的词根,在汉中,应该是单个对应文字。而GPT的学习过程,就是依靠大量的训练集,学习token和token之间的去复杂。

因此本身可以应用在大部分领域,只要寻求一种token化表达方式即可。比如在图像领域,可以把一个3×3的像素认为是一个token。

显然,token可以是文字之外的许多东西。GPT本身就定义了类似的[START]、[END]等特征信息,用于方便去算法识别关键的位置。同样的,插件也被定义为一种token。

中的表达方式相当于:今天是(当前日期)

算法会根据训练集,学习什么时候应该调用API,并生成应答的调用语句,用包裹起来。在实际执行的时候,程序会识别到请求,并发起调用,返回执行结果。算法在接收到执行结果后,在执行依次、流程,就可以继续输出了。大致效果如下:

chat<a href=gpt算法的限制 ChatGPT研究分享:插件模式的利与弊">

个人认为,连续的插件功能可以实现,是因为架构极大的补充了可输入的令牌长度,从而可以增加很多上下文信息来进行更准确的应答。这些上下文信息包括:提出的结构化的信息,对话过程中的持续输入,以及插件执行返回的信息等。

1.2 插件文档

有了插件的执行方案,接下来就是让去算法学习去使用插件。

中,采用简单粗暴的训练逻辑,直接给予大量输入和带API执行的输出,让算法去学习什么时候该调用API。这显然需要增加训练量,在中,提到的,他们为每个API都设计了2.5万个训练数据。的,这种训练模式也存在一些缺陷:

而在GPT-4的效果表现中,似乎解决了上述的问题。因此,可以简单探究一下其实现原理。API文档:

一个插件的定义,大致会包含两个内容:

{
  "schema_version": "v1",
  "name_for_human": "TODO Plugin (no auth)",
  "name_for_model": "todo",
  "description_for_human": "Plugin for managing a TODO list, you can add, remove and view your TODOs.",
  "description_for_model": "Plugin for managing a TODO list, you can add, remove and view your TODOs.",
  "auth": {
    "type": "none"
  },
  "api": {
    "type": "openapi",
    "url": "PLUGIN_HOSTNAME/openapi.yaml",
    "is_user_authenticated": false
  },
  "logo_url": "PLUGIN_HOSTNAME/logo.png",
  "contact_email": "support@example.com",
  "legal_info_url": "https://example.com/legal"
}

openapi: 3.0.1
info:
  title: TODO Plugin
  description: A plugin that allows the user to create and manage a TODO list using ChatGPT. If you do not know the user's username, ask them first before making queries to the plugin. Otherwise, use the username "global".
  version: 'v1'
servers:
  - url: PLUGIN_HOSTNAME
paths:
  /todos/{username}:
    get:
      operationId: getTodos
      summary: Get the list of todos
      parameters:
      - in: path
        name: username
        schema:
            type: string
        required: true
        description: The name of the user.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getTodosResponse'
    post:
      operationId: addTodo
      summary: Add a todo to the list
      parameters:
      - in: path
        name: username
        schema:
            type: string
        required: true
        description: The name of the user.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/addTodoRequest'
      responses:
        "200":
          description: OK
    delete:
      operationId: deleteTodo
      summary: Delete a todo from the list
      parameters:
      - in: path
        name: username
        schema:
            type: string
        required: true
        description: The name of the user.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deleteTodoRequest'
      responses:
        "200":
          description: OK
components:
  schemas:
    getTodosResponse:
      type: object
      properties:
        todos:
          type: array
          items:
            type: string
          description: The list of todos.
    addTodoRequest:
      type: object
      required:
      - todo
      properties:
        todo:
          type: string
          description: The todo to add to the list.
          required: true
    deleteTodoRequest:
      type: object
      required:
      - todo_idx
      properties:
        todo_idx:
          type: integer
          description: The index of the todo to delete.
          required: true

因此,可以推断在 GPT-4 的插件功能中,应该是按照“通用 API 接口”的思路去进行的设计。GPT 在训练过程中,学习是如何阅读接口文档,并自行判断时去调用。推测大体的执行过程类似于:

值得注意的是,文档中并没有提到插件开发者需要提供良好的训练集,而是更加强调开发者需要设计合适的。

1.3 个人感觉

插件模式并不代表AI智能的提升,但会是短期内主流的应用方

从插件模式可以看出,GPT-4学会如何调用接口。但对于GPT-4是否“理解”调用接口背后的意义,我个人持否认观点。

从另一个角度来看,GPT的两个缺陷,没有记忆和无法直接学习知识,并没有被解决,而是通过外力弥补了。这就像在RNN之上外星人引入提升性能一样,并没有带来本质原理的革新,尚不能称之为革命性变化。

下一个阶段,我更期待看到GPT在研究领域内的积极作用(效果类似于钢铁在“贾维斯”的帮助下发现了新的元素)。GPT所储备的海量知识,结合专业研究人员的对抗互动,形成良性的观点碰撞。AI提效的作用从改善生活转变到促进思考,应该是一个非常值得期待的领域,甚至有可能让AI来帮助AI自身迭代算法,探索出下一阶段的算法模型。

功能的补充必然带来安全性的风险,人类在循环中仍然是需要遵守的原则。

chatgpt算法的限制 ChatGPT研究分享:插件模式的利与弊

初中教材中,有一篇《寡人之于国也》,里面有一句话:刺人而杀之曰:‘非我也,兵也’。本意是说,兵器是一种工具,没有思想,所以问题是出在使用兵器的人身上。

狗彘食人食而不知检,涂有饿莩而不知发,人死,则曰:'非我也,岁也。'是何异于刺人而杀之曰:'非我也,兵也'?王无罪岁,斯天下之民至焉

但随着人工智能的功能性逐步拓展,工具开始具备了一定的自控能力了。这个时候,应该去怪谁呢?这显然是一个暂时无解的问题。

关于AI的安全性问题探讨,本篇不做展开。在此,只要表达一个观点,无论当前的AI多么炫酷,人在循环中仍然是必须遵守的基准。尤其是在医学、法律、安全等敏感领域上,把决策权交由AI是一个不后果的做法(人的错误概率比AI高,但人能够负责,可能比AI可靠)。

2、一些音符的点

随着近期的AI热点大爆发,关于AI本身的各种讨论也稳定出来。对个人觉得要点的一些点,展开讨论。

2.1 知识和价值观

我们知道,GPT的整体训练模式是基础模型和精品。之前主要用来学习知识,今晚用来学习如何正确的作答(类比于“价值观”)。

而在GPT-4的技术文档中,提到了一些比价弹簧的研究:他们发现,如果不经过fine-,GPT回答的准确性是更高的。但是经过fine-之后,答案更合理了,但准确性却下降了,导致经常给出的答案(即GPT认为是正确的,但实际上是错误的认知)。

下面是针对该现象的具体描述

就像人类理性和感性的思考结果。GPT的预训练阶段,能够学会大量的知识,进行绝对理性的回答。但希望人们能够更加感性,判断正确,具备价值观,因此进行了强化学习,但反而牺牲了理性的判断结果。

从这一点上来看,GPT与人类思维的相似性,再次得到了印证。

2.2 算法的研究方向

这个话题源于上,知名教授ölkopf反应说,LLM的学生突然想转方向了。原因是觉得LLM已经到头了,剩下的都是小修改小补的工作,很难取得圆形突破性成果取得PhD危险方向了。

个人推测,部分原因也可能是大语言模型的训练成本越来越高,小玩家很难入场。只能学习学习理论,然后在这些AI大厂训练出来的结果上做了一些改变。

同样的,教授也表达了自己的看法,鼓励同学们继续努力。

相关文章

Copyright © 2025 IShouDao