Showing posts with label Design. Show all posts
Showing posts with label Design. Show all posts

Thursday, January 04, 2024

Design Ideas for the Next Generation of Artificial Intelligence

Large models reversed the thinking of previous artificial intelligence research, giving up interpretability and beginning to embrace complex networks and large-scale parameters.

These make the capabilities of modern neural networks surpass those of previous generations, but they also bring many problems.

  • Huge costs: Training models require massive amounts of data and computing power, often tens of millions, which raises the threshold for using AI;
  • Not scalable: Once the model is trained, it is difficult to expand and can only be fine-tuned through limited means.

Rethinking the evolutionary history of artificial intelligence technology may give us some inspiration.

Just as Huashan martial arts has a dispute between air sect and sword sect, artificial intelligence also has a dispute over routes. It can be roughly divided into two major schools: the reasoning school vs. the probability school.

The reasoning school believes that machine learning can be used to summarize and summarize knowledge in advance to achieve a level of intelligence that surpasses human intelligence.

The probabilistic school of thought believes that humans cannot correctly express the complete knowledge of the entire world, and that more primitive data should be directly fed into the machine, allowing the machine to discover the rules on its own.

In an era when computing power is scarce, the reasoning school has the upper hand. After all, relying on people's prior knowledge can save the time of machine learning.

Later, with the abundance of computing resources and data, the probabilistic approach relied on ultra-large-scale neural networks and has now become mainstream.

From hundreds of billions to trillions, the network model is approaching the limit of what human civilization can achieve, so where is the future?

In sharp contrast to the large models are ordinary children. They observe and receive data from the world and train the brain network, but it is much more efficient than software. What's the difference?

The most critical differences are 3 points:

  • The human brain is dynamic. Neural connections are constantly being created and destroyed. They do not stop after training is completed, but are constantly expanding.
  • The human brain can generalize. Humans can not only learn bare data, but also learn rules, and can even reason about rules and learn high-level concepts that transcend rules.
  • The human brain can be partitioned. The human brain is divided into multiple areas, some focus on memory storage, some focus on rational reasoning, and some focus on emotional management.

Perhaps, if the next generation of artificial intelligence wants to be more efficient, it should learn from the human brain. Adopt dynamic link model and partition structure to strengthen generalization ability. Only in this way can it be possible to design a super brain that can continuously learn and bring benefits to all mankind.



Monday, August 15, 2022

Mastering Systematic Thinking

The whole is greater than the sum of its parts, and structure determines system behavior.

What is System Thinking?

System thinking is an approach to problem solving by thinking holistically.

Different from the simple way of thinking about the problem itself intuitively, systematic thinking often needs to observe the behavior, structure, and association of complex systems, summarize its internal laws from different levels, and understand its operation. Furthermore, the internal laws can be changed by adjusting the structure of the system to achieve the goal of changing the behavior of the system.

Focus on the whole, not the parts. Focus on connections, not things.

For example, seeing an apple falling to the ground, the intuitive way of thinking is that the apple will fall to the ground when it is ripe.

Systems thinking may need to consider:

What is the connection between apples, fruit trees and the ground?

What internal law causes the behavior of the apple falling to the ground?

What factors can be changed to prevent apples from falling to the ground?

......

Another example is to see inflation, intuitive thinking may think that it is due to additional currency issuance. New systems thinking takes into account the cyclical laws and distribution mechanisms of the economy.

Why master systems thinking?

The world itself is a complex system, and many problems in real life are dealing with complexity. For example, designing a bridge, building an assembly line, implementing an enterprise software, and so on.

Simple systems tend to be linear, i.e. 1+1=2, while complex systems are usually nonlinear, i.e. 1+1>2.

Usually, due to the limitations of knowledge, cognition, and way of thinking, it is difficult for humans to intuitively see the whole of things.

Also, it's hard to understand it directly for most complex objects.

These all require dissection and thinking using systems thinking, which can help us analyze problems more comprehensively.

How to Master System Thinking

Systematic thinking can be mastered through training, which mainly includes the following steps:

First, to observe the dynamic behavior of the system, including system events, behavior characteristics, and summarize the behavior rules of the system.

Afterwards, its possible internal structure is predicted through behavioral laws.

Further, the divide-and-conquer system is divided into multiple small-scale simple systems according to the structure.

To verify that the predicted structures are accurate, prototypes can be built to conduct experiments. Make adjustments through experimental feedback.

Sunday, October 26, 2014

云计算时代应用设计十二要素

云计算时代应用设计十二要素

  • 什么样的软件才是可用性和可维护性好的软件?
  • 什么样的代码才能避免后续开发的上手障碍?
  • 什么样的实行才能稳定的运行在分布式的环境中?
Heroku (一家 PaaS 服务提供者,2010 年被 Salesforce 收购)平台创始人 Adam Winggins 提出了推荐的应用十二风格,对我们设计和实现云时代(特别是 PaaS 和 SaaS 上)高效的应用都有很好的参考意义。

代码

每个子系统都用一个代码库管理,使用版本管理,实现独立的部署。

依赖

显式声明依赖,通过环境来严格隔离不同依赖。

配置

在环境变量中保存配置信息,而避免放在源码或配置文件中。

后端服务

后端服务作为可挂载资源来使用,这样系统跟外部依赖尽量松耦合。

生命周期

区分不同声明周期的运行环境,包括创建、发布、部署,各个步骤要相互隔离。

进程

以一个或多个无状态的进程来运行应用,即尽量实现无状态,不要在进程中保存数据。

端口

通过端口绑定来对外提供服务。

并发

通过进程控制来扩展,即以多进程模型进行扩展。

可丢弃性

快速启动,优雅关闭,并尽量鲁棒(随时 kill,随时 crash)。

开发与生产环境的差异性

尽量保持从开发到生产部署环境的相似性。

日志

将日志当作事件流来进行统一的管理和维护(使用 Logstash 等工具)。

管理

将管理作为一次性的系统服务来使用。

Friday, February 11, 2011

How to give an academic presentation

A book on how to give an academic presentation. 
(CN, updated on 06/11/2010, alpha version).


Download.