Skip to main content

通用的抽象

背景、需求

  1. 自动根据输入信息进行结构化建模
  2. 让AI进行一种更通用,哲学上完备的方法,类似于,面向对象对编程技术的抽象
  3. 自然语言等抽象概念的结构化
  4. 通用抽象引擎, 通用NP问题解决
  5. 通用基础计算单元,算法基础范式

要求

  1. 怎么表达“抽象的程度” ,“抽象的能力”
  2. 怎么表达“对象”的行为(“方法”),对象除了属性还有方法
  3. 标准的抽象定义方法和通用的逻辑运行和表达方法

对象

  1. 所有都抽象为对象,对象的定义本身包含所有的约束,只要能生成出合格的对象就是符合约束

    1. ****对象,****定义一个符号

    2. 继承,分层级定义对象,定义公共属性,表达隐含的“是”

      1. 拓扑关系及层级结构
    3. 组合

      1. 对象可以组合形成新的对象,表达“包含”语义
      2. 表示内部状态
      3. 对象的属性
    4. 转换,对象之间的转换关系、转换逻辑,包括构造方法、初始化方法

      1. 参数:表示转换的条件
      2. 带1个返回值的方法:构造
      3. 不带返回值的方法:更新内部的状态
  2. 对任意事物的抽象,或者说约束。

  3. AI试图生成符合要求的合格对象及对象定义

实例

  1. 层级式的笔记的需求

    1. 表示包含可以拆分、解释的子项
    2. 表示需要的步骤
    3. 罗列一个项目形成的原因

编程语言/程序库/API

  1. 定义一个对象,对象的组合

  2. 对象之间的转换的方法

    1. 逻辑判断、运算
  3. 可以友好得使用深度模型和梯度下降进行训练、求解

LLM大模型的抽象解释

  1. 可以直接实现现在的LLM的需求

    1. 每个token就是一个基础对象
    2. 每个固定的句子就是组合之后的对象
    3. token的输出就是转换之后的对象
  2. tensor:对象的属性

  3. dot/gemm:对象的转换

  4. 对象的组合:attention

  5. 文生图的工作分析

    1. 输入一串的文本,经过抽象成内部的表达:一堆的“语言抽象出来的对象(不同层级)”的组合
    2. 转换成图像的抽象对象的表达
    3. 通过“图像对象”转换成图像
    4. 语言 -> 语言对象 -> 图像对象 -> 图像
    5. 端到端的训练,同时训练中间的3次转换的模型
  6. 示例

    1. NetList -> 对象 -> 对象 -> PR结果
    2. sequence -> 语言对象 -> sequence

应用

设计一个通用的思维方式,对基础模型进行按照通用的思维方式进行微调

以设计的固定关键字作为通用的接口,遵循一个通用的“模版接口”

作为AI的专用思考语言,思考的方式

作为人类和AI交互的接口,避免自然语言的不精确

在生产环境下描述需求是非常复杂的。他们不知道如何写提示词,描述不准确会导致 AI 的回复质量低下,进而使开发者失去信心。其次,是 context(上下文)的处理。在复杂工程中,如果 context 给得不对或给得太少,AI 就无法理解整个架构,可能会出现一些幻觉,比如新增错误的类或改错地方,这会导致准确率下降。

避免和解决,“许愿”式的交互——目前大模型的用户无法清晰描述具体需求,更像是在表达愿望

目前AI只能理解和生成一些低层级的抽象,不能生成和设计高层级的设计

对于辅助编程来说,只能实现一些固定简单功能的函数,对于复杂的类抽象设计不能实现,高层次的功能不容易描述和表达。

工程化接口

  1. 通用的抽象方法

    1. 派生/继承/重写:对基础对象进行扩展,复用公共的定义

    2. 对象的初始化的表达

      1. 构造函数,基类的构造
      2. 成员变量的实例化
    3. 引用-指针

    4. 组合:一个对象可以包含多个不同类型的定义/抽象,组合形成新的定义/抽象

    5. 变换:成员函数,定义一个支持一个或者多个定义/抽象的输入,输出一个或者多个定义/抽象

    6. 适用场景:isa的定义,建模的定义,

  2. 扩展到所有的抽象工作

  3. 定义一种简单的脚本语言,适用于通用的抽象表达

class A:
  pass

class B:
  pass

class C(A):
  C()
  B b
  A ToA(B):
    return A

Backup

继承, 初始化参数 构造函数 static

组合(实例化) 及初始化 调用构造函数

初始化序列,层层构造

方法(变换)

1. 构造函数也是方法的一种

引用-指针

1. 所有的成员变量都是被使用都是采用指针或者引用

构造函数是必须的吗?

1. python 作为config 被解析成ast,只是利用了python的语法,替代toml
2. 动态解析python model + model运行