# 通用的抽象

### 背景、需求

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. 定义一种简单的脚本语言，适用于通用的抽象表达

```Python
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运行