Skip to main content

通用的抽象

背景、需求

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

要求

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

对象

  1. 所有都抽象为对象,对象的定义本身包含所有的约束,只要能生成出合格的对象就是符合约束
    1. 对象,定义一个符号
    2. 继承,分层级定义对象,定义公共属性,表达隐含的“是”
    3. 组合
      1. 对象可以组合形成新的对象
      2. 表示内部状态
      3. 对象的属性
    4. 转换,对象之间的转换关系,包括构造方法、初始化方法
      1. 参数:表示转换的条件
      2. 带1个返回值的方法:构造
      3. 不带返回值的方法:更新内部的状态
  2. 对任意事物的抽象,或者说约束。
  3. AI试图生成符合要求的合格对象及对象定义

实例

  1. 继承和组合,拓扑关系及层级结构
  2. 转换表达了符号之间的逻辑关系

编程语言/程序库/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

§§§§§§§§§§§§§§§§§§§§§§§§§§

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

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

初始化序列,层层构造

方法(变换)

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

引用-指针

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

构造函数是必须的吗?

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