首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第1章 SAI Framework 概述

第1章 SAI Framework 概述

1.1 SAI 是什么

SAI 是 Simulated Artificial Intelligence 的缩写,中文可以定义为:

模拟人工智能

SAI 的核心不是生成内容,而是模拟一个人工个体如何接收信息、感知环境、形成认知、保存记忆、进行推理、作出决策、产生行为,并通过反馈不断积累经验和学习的完整运行过程。

因此,SAI 的研究和开发重点不是某一个单独的算法,而是建立一个能够承载这些过程的完整软件框架

可以把 SAI 的基本运行过程表示为:

信息接收
    ↓
场景采集
    ↓
感知
    ↓
元素
    ↓
对象
    ↓
关系
    ↓
理解
    ↓
记忆
    ↓
推理
    ↓
决策
    ↓
行为
    ↓
行动 / 表现
    ↓
外部世界
    ↓
反馈
    ↓
经验
    ↓
学习
    ↓
更新
    ↓
再次接收信息

因此,SAI 最终形成的是一个闭环运行的模拟人工个体


1.2 SAI 的英文定义

SAI 的英文名称:

Simulated Artificial Intelligence

其中:

Simulated
    ↓
模拟的

Artificial
    ↓
人工的

Intelligence
    ↓
智能

组合起来就是:

Simulated Artificial Intelligence —— 模拟人工智能

这里的 Simulated 非常重要。

SAI 的目标不是简单模拟某一个人工智能功能,而是通过软件对象、状态、关系、规则、数学计算、记忆、经验和学习机制,模拟一个人工个体的智能运行过程

因此:

SAI
≠ 单一算法
≠ 单一模型
≠ 单一程序
≠ 单一聊天系统

而是:

SAI
=
模拟人工个体的完整软件运行体系

1.3 Simulated Artificial Intelligence 的含义

传统的软件通常按照预先确定的程序流程运行:

输入
 ↓
程序
 ↓
计算
 ↓
输出

例如:

输入:10 + 20

程序:
执行加法

输出:
30

这是确定性的程序计算。

而一个模拟人工个体需要面对更加复杂的运行过程:

外部世界
 ↓
获得信息
 ↓
识别信息
 ↓
形成对象
 ↓
理解对象关系
 ↓
结合已有记忆
 ↓
进行推理
 ↓
产生多个候选行为
 ↓
进行决策
 ↓
执行行为
 ↓
获得结果
 ↓
形成经验
 ↓
更新自身

因此 SAI 关注的是:

程序如何形成一个持续运行的人工个体。

例如,一个简单的 SAI 个体可以面对:

环境:
温度 = 32℃

已有规则:
温度 > 30℃ → 开启风扇

当前状态:
风扇 = OFF

经过:

信息
 ↓
感知
 ↓
对象
 ↓
状态
 ↓
规则匹配
 ↓
推理
 ↓
决策
 ↓
行为
 ↓
Action:开启风扇

最后:

风扇 = ON

这就是 SAI 所关注的基本运行方式。


1.4 SAI Framework 的定义

SAI Framework 可以定义为:

SAI Framework 是一套用于构建模拟人工个体的通用软件框架,以 PHP OOP、对象、元素、属性、关系、方法、规则、事实、状态、记忆、经验、数学计算和模块化机制为基础,为模拟人工个体提供统一的运行结构、对象体系、认知体系、行为体系以及外部交互能力。

简单来说:

SAI
    ↓
模拟人工智能

SAI Framework
    ↓
开发 SAI 的软件框架

就像:

Web Application
       ↓
需要
       ↓
Web Framework

而这里:

Simulated Individual
       ↓
需要
       ↓
SAI Framework

因此,SAI Framework 的最终服务对象不是网页,而是:

Simulated Individual —— 模拟人工个体。


1.5 SAI Framework 解决什么问题

如果没有统一框架,每开发一个模拟人工个体,都需要重新处理:

信息
场景
对象
状态
记忆
规则
推理
决策
行为
反馈
学习

这样容易产生大量重复代码。

SAI Framework 的作用,就是把这些通用能力抽象成框架。

例如:

SAI Framework
│
├── Information
├── Scene
├── Perception
├── Element
├── Object
├── Relation
├── Cognition
├── Memory
├── Reasoning
├── Decision
├── Behavior
├── Expression
├── Template
├── Renderer
├── Adapter
├── Device
├── Feedback
├── Experience
├── Learning
└── Maintenance

以后开发不同的人工个体时,不需要重新开发整个体系。

例如:

SAI Individual A
    ↓
环境监测

SAI Individual B
    ↓
机器人控制

SAI Individual C
    ↓
车辆环境处理

SAI Individual D
    ↓
Web 信息交互

它们都可以使用同一个 SAI Framework。


1.6 SAI Framework 与普通软件框架的区别

普通软件框架通常解决的是:

程序如何组织
模块如何调用
数据如何处理
请求如何进入
结果如何输出

SAI Framework 除了这些工程问题,还要解决:

人工个体如何存在
人工个体如何获得信息
如何感知
如何建立对象
如何理解关系
如何记忆
如何推理
如何决策
如何产生行为
如何获得反馈
如何形成经验
如何学习

因此两者的核心目标不同。

普通软件框架

程序
 ↓
业务逻辑
 ↓
结果

SAI Framework

外部世界
 ↓
信息
 ↓
感知
 ↓
认知
 ↓
记忆
 ↓
推理
 ↓
决策
 ↓
行为
 ↓
外部世界
 ↓
反馈
 ↓
学习

所以:

普通 Framework 主要组织程序,SAI Framework 进一步组织一个模拟人工个体的运行过程。


1.7 SAI Framework 与 Web Framework 的区别

这一点必须明确。

SAI Framework 不是 Web Framework

Web Framework 的核心对象通常是:

Request
 ↓
Controller
 ↓
Model
 ↓
View
 ↓
Response

而 SAI 的核心运行过程是:

Information
 ↓
Perception
 ↓
Cognition
 ↓
Memory
 ↓
Reasoning
 ↓
Decision
 ↓
Behavior
 ↓
Action
 ↓
External World
 ↓
Feedback

Web 可以成为 SAI 的一种外部接口:

Browser
 ↓
Web Request
 ↓
Controller
 ↓
SAI
 ↓
Expression
 ↓
SATE
 ↓
WebRenderer
 ↓
Response

但也可以完全不使用 Web:

Sensor
 ↓
SceneCollector
 ↓
SAI
 ↓
RobotAdapter
 ↓
Robot

甚至:

Machine
 ↓
DeviceAdapter
 ↓
SAI
 ↓
Action
 ↓
Machine

因此:

SAI 可以使用 Web 的工程思想,但 SAI 并不依附于 Web。


1.8 SAI Framework 与 ThinkPHP 的关系

ThinkPHP 可以作为 SAI Framework 在软件框架工程设计思想上的参考。

例如可以借鉴:

Application
Container
Controller
Model
Route
Middleware
Lifecycle
Extension

但是这些概念进入 SAI 后需要重新定义。

例如:

ThinkPHP
Controller
    ↓
处理 Web Request

SAI:

Controller
    ↓
作为一种外部入口
    ↓
把信息交给 Central / Individual

再例如:

ThinkPHP Model
    ↓
业务数据模型

SAI Model:

Object
Property
Relation
State
Memory
Experience

因此:

ThinkPHP 是工程思想参考,而不是 SAI 的基础身份。

SAI Framework 可以借鉴成熟 Framework 的:

  • OOP
  • MVC
  • Container
  • Lifecycle
  • Route
  • Component
  • Extension
  • Event
  • Middleware

但是最终组织目标仍然是:

Individual

而不是 Web Application。


1.9 SAI Framework 与 Smarty 的关系

Smarty 最核心的工程思想之一是:

把程序逻辑与表现模板分离。

这个思想对 SAI 同样有价值。

但 SAI 不直接使用 Smarty 作为自身模板系统。

SAI 可以建立自己的:

SATE —— SAI Template Engine

并进一步发展为开放的表现与映射机制。

基本结构:

Behavior
 ↓
Action
 ↓
Expression
 ↓
Template
 ↓
Renderer / Adapter
 ↓
外部世界

例如:

Action
    ↓
Light ON

可以通过不同方式表现:

WebRenderer
    ↓
灯已打开

ApiRenderer
    ↓
{"action":"light_on"}

DeviceAdapter
    ↓
发送开灯指令

因此 SATE 不应该被限制为:

HTML Template

而可以支持:

Web
UI
API
Terminal
Device
Robot
Machine
Custom

所以:

Smarty 提供了模板工程思想的参考,而 SATE 是 SAI 自己的开放模板与表现系统。


1.10 SAI Framework 的最终目标

SAI Framework 的最终目标不是开发一个“智能网页”。

也不是开发一个“聊天机器人”。

更不是开发一个单纯的规则引擎。

最终目标是:

建立一个可以持续运行的模拟人工个体。

这个个体应该具备:

Identity
    ↓
State
    ↓
Ability
    ↓
Information
    ↓
Perception
    ↓
Cognition
    ↓
Memory
    ↓
Reasoning
    ↓
Decision
    ↓
Behavior
    ↓
Action
    ↓
Expression
    ↓
External World
    ↓
Feedback
    ↓
Experience
    ↓
Learning
    ↓
Update

最终形成:

             ┌───────────────┐
             │   Individual  │
             └───────┬───────┘
                     │
                  Central
                     │
      ┌──────────────┼──────────────┐
      │              │              │
  Perception      Memory        Learning
      │              │              │
      └──────────────┼──────────────┘
                     │
                 Cognition
                     │
                 Reasoning
                     │
                  Decision
                     │
                  Behavior
                     │
                   Action
                     │
              External World
                     │
                  Feedback
                     │
                 Experience
                     │
                     └──────→ Learning

这就是 SAI Framework 的最终闭环。


1.11 本教程的学习路线

本教程不会直接从一个大型 SAI 开始。

而是采用从框架内核逐步构建完整人工个体的方式。

第一阶段:Framework Core

Application
Container
Bootstrap
Request
Response
Controller
Model
Engine

先把框架本身建立起来。

第二阶段:Individual

Individual
Identity
State
Ability
Central

建立人工个体。

第三阶段:Input

Information
InformationReceiver
Scene
SceneCollector
Sensor

建立信息接收和场景采集。

第四阶段:Cognition

Element
Object
Property
Relation
Method
Perception
Cognition
Understanding

建立认知基础。

第五阶段:Memory & Reasoning

Memory
Fact
Experience
Rule
Reasoning
Conclusion

建立记忆和推理。

第六阶段:Decision & Behavior

Decision
Risk
Priority
Behavior
Action
Expression

建立决策与行为。

第七阶段:SATE

Template
TemplateEngine
Compiler
Renderer

建立开放表现模板系统。

第八阶段:External World

Adapter
Device
Robot
Machine
Sensor

让 SAI 可以连接外部设备。

第九阶段:Feedback & Learning

Feedback
Experience
Learning
Update

形成学习闭环。

第十阶段:Self Maintenance

Detection
Risk
Conflict
Diagnosis
Repair
Verification

形成自我维护能力。

最终

把所有模块组合成:

SAI Framework
       ↓
Individual
       ↓
完整运行

1.12 本章完整示例:一个最简单的 SAI

为了理解整个框架,我们先不实现复杂系统。

假设建立一个最简单的 SAI:

Individual:SAI-001

它只有一个能力:

当温度超过 30℃时开启风扇。

外部环境提供:

温度 = 32℃

第一步:信息接收

Information
{
    type: "temperature",
    value: 32
}

第二步:感知

Perception
 ↓
发现:
温度

第三步:建立对象

Object
{
    name: "temperature",
    value: 32
}

第四步:认知

系统理解:

temperature
=
32℃

第五步:读取规则

Rule

IF temperature > 30
THEN fan = ON

第六步:推理

32 > 30

结果:

Conclusion
=
需要开启风扇

第七步:决策

Decision
=
TurnOnFan

第八步:行为

Behavior
=
TurnOnFan

第九步:Action

Action
{
    device: "fan",
    command: "ON"
}

第十步:执行

Fan
 ↓
ON

第十一步:反馈

设备返回:

Fan State
=
ON

第十二步:经验

SAI 保存:

Experience
{
    condition: "temperature > 30",
    action: "fan ON",
    result: "success"
}

最终形成:

温度 32℃
    ↓
Information
    ↓
Perception
    ↓
Object
    ↓
Cognition
    ↓
Rule
    ↓
Reasoning
    ↓
Decision
    ↓
Behavior
    ↓
Action
    ↓
Fan ON
    ↓
Feedback
    ↓
Experience

这就是一个最小的 SAI Individual 闭环

后面的章节,就是把这个非常简单的过程逐步扩展成真正的:

Information
+
Scene
+
Perception
+
Cognition
+
Memory
+
Reasoning
+
Decision
+
Behavior
+
Action
+
Expression
+
SATE
+
Renderer
+
Adapter
+
Device
+
Feedback
+
Experience
+
Learning
+
Maintenance

最终形成完整的 SAI Framework + Simulated Individual

Leave a Reply

Your email address will not be published. Required fields are marked *