第一章:认识AI
一、AI发展史
1 什么是人工智能
AI,全名叫Artificial Intelegence,翻译过来就是人工智能,它的本意是让机器能够像人类一样思考、学习和解决问题。
2 人工智能的起源-图灵测试
其实人工智能并不是一个新的东西,很早以前就有了,最早可以追溯到1950年的图灵测试。
在图灵测试中,有两种角色,一种是被测试者,一种是测试者,其中被测试者又分为两种,一种是机器,一种是真人。测试者和被测试者通过文本进行沟通。在真实测试中,被测试者和测试者分别处在不同的房间中,这样测试者事先是无法知道被测试者是人还是机器。
在沟通的过程中,测试者需要根据接收到的文本信息,判断发送该文本信息的是机器还是人。假设机器给测试者发送了一段文本,但测试者判断的答案是人,这就说明测试者无法分辨清楚机器与人。这个时候,我们就可以说机器具有了人的智能。
3 人工智能的发展历程
我们人类想了各种各样的方法,总结起来,主要经过了这么三个阶段,分别是符号主义、连接主义还有神经网络。
⑴ 符号主义
符号主义实现人工智能,主要分为三个步骤:
A. 首先是将现实抽象为符号,比如我把天晴记为A,把打篮球记为B,把打游戏记为C
B. 其次是设置规则,比如我设置规则为如果A,执行B,否则执行C
C. 最后按照规则执行,假如A为true,则执行B,如果A为false,则执行C
大家有没有发现,这跟大家平时写的if-else特别像?没毛病,就是用if-else,根据不同的情况,执行不同的代码。正当大家以为符号主义无敌于天下,从而沾沾自喜时,大家发现一个非常致命的问题,符号主义能够实现的前提是先有符号,也就是说需要把现实世界中的万事万物都能抽象出具体的符号。大家想一想,能实现吗?
显然是不可能的,因为有很多东西,我们是无法很清楚的描述它的特征与性质,比如下面张图片,我们人一眼就能认出图片中是一只猫,但是我们却很难用具体的符号描述它。所以如果沿着符号主义的思路一直发展,注定是无法实现真正的人工智能。
那怎么办呢?
⑵ 连接主义
这个时候大家就想,既然要想让机器像人一样思考、学习,那我们就得研究人是怎么做到的?
其实我们人类的智能,都得归功于大脑,而我们的大脑是由一个一个的神经元组成的。
每一个神经元都有用于接收信息的树突、整合信息的细胞体、传递信息的轴突以及向其它神经元输出信息的突触。
而我们的大脑由上百亿个神经元组成,信息可以在这些神经元之间层层传递,每一个区域的神经元负责不同的事情,最后共同作用,产生了智能的效果。
比如我们的眼睛看到了一张图片,眼睛的视网膜会将光信号转化为电信号,这些电信号会在神经元之间层层传递,经过不断地处理整合,得到最终的结论,猫!这是我们人类大脑处理信息的过程。
如果我们想通过模拟人脑的方式实现人工智能,我们得先模拟出一个神经元。于是一个叫罗森布拉特的人提出了著名的感知机模型,用于模拟神经元。
在感知机模型中,
输入类比神经元的树突、
权重类比神经元的连接强度、
激活函数类比神经元的突触。
假设输入和激活函数都不变的情况下,我们可以通过调整权重值,得到不同的输出。
给大家举个例子,假设将来我需要设计一个感知机,用于识别水果。此时我们可以把水果的颜色、形状、味道等特征提取出来,作为感知机的输入,同时我们可以根据需求,给定不同的特征取值设置不同的权重,例如我们要识别香蕉,此时可以给黄色、长条、甜的这三个特征设置权重为1,其它特征设置权重为0。结合输入和对应的权重以及激活函数,我们可以计算出一个分数,假设我们设定一个阈值为3,如果计算的总分达到3,我们认为输入特征对应的水果就是香蕉,否则不是香蕉。
当然刚才我们识别的是香蕉,如果要识别苹果可不可以呢?也是可以的,我们只需要调整不同特征对应的权重值就可以了,比如把红色的权重设置为0.8、黄色的权重设置为0.2、圆形的权重设置为1、甜的权重设置为1,这样就可以识别苹果了。
⑶神经网络
我们刚才介绍的感知机模型还是有一些小问题的,因为它只能做一些简单的是或不是的二分类任务,对于复杂的任务,它就束手无策了。而我们人类的大脑是可以处理非常复杂的任务,咋办呢?既然单个感知机只能完成简单的任务,而任何复杂任务,都是由若干个简单任务叠加而成的,要解决复杂任务,简单点儿,就多搞一些感知机不就行了吗,由此,多层感知机模型应用而生。
简单点儿理解,多层感知机就是由多个单个感知机叠加而来的,每一层感知机都可以对输入的信息做整合处理并输出,输出的结果又作为下一层感知机的输入,这样层层传递,得到最终的输出。
理论上,只要多层感知机模型足够宽,足够深,就能够解决足够复杂的任务,而这也就是大名鼎鼎的神经网络的由来!大家现在所接触的AI,也都是在这个基础上发展而来的。
4 神经网络相关术语
回到咱们刚才介绍的感知机模型中,我们说单个感知机模型是用于模拟单个神经元的,每个感知机上都有输入、权重、和激活函数,将来结合用户的输入和权重以及激活函数,再与阈值比较,得到最终的输出,这里的阈值有一个更专业的叫法是偏置。每个神经元上使用的权重和阈值,我们都把它称为参数。每个神经元上的参数数量=权重数量+1,这里的1就是偏置。
那整个神经网络中有多少个参数呢?毫无疑问,特别多特别多,那这些参数都需要我们手动的设置吗?答案是不需要!
刚才我们所讲的多层感知机模型或者神经网络,它们都是数学意义上的模型,将来这些模型都需要通过代码去实现的,也就是说,将来我们会通过软件实现神经网络。
这种软件非常的特殊,它会像人一样,具备学习能力。我们可以事先准备好一些数据,交给软件,它就会自主去根据咱们提供的数据开始学习了,在学习的过程中,它会自动的设置好神经网络中需要的成千上万个参数。所以一定记住,这些参数不是手动设置的,而是软件通过学习自动设置的。
又由于这样的软件,本质上是实现了数学模型,所以在AI领域,我们一般不把它叫软件,而是称它为模型。
聊到这,就不得不提到AI领域非常之名的一家公司,OpenAI。这家公司成立于2015年,一直致力于人工智能方面的研究。
它们公司有一个比较出名的模型叫做GPT,原本这家公司并不出名,它能发展到现在,被广为人知,源于一个偶然的事件。GPT模型在处理一些任务的时候,表现的并没有那么好,它们的研发人员就想,实在不行,多加一些神经元试试。于是,它们就将参数的规模从原来的10B提高到100B,1B是10亿,所谓的100B就是1000亿,这一下不得了了,GPT模型不仅能够很完美的处理之前处理不好的任务,而且它展现出了通用任务的处理能力,这种现象连研究人员都无法很透彻的解释,简单点儿说,就是大力出奇迹!
于是,2022年11月30日,OpenAI把GPT的版本升级到了3.5,并且发布了基于GPT3.5的对话产品ChatGPT,从此,OpenAI爆火全球,还有一个词也随之爆火,就是我们现在常听说的大模型。模型刚才我们介绍了,就是实现了神经网络的软件,这里的大指的是参数规模,现在我们通常会把参数规模在1000亿以上的模型,称为大模型。
随着GPT模型的爆火,全球各大公司也纷纷跟进,推出了自己的大模型,比如智普AI的ChatGLM,阿里的Qwen,百度的Ernie,Anthropic公司的Cloude,元宇宙的Llma,马斯克的Grok等等等等,数不胜数,不同公司的不同模型,也有不同的擅长领域,比如文本生成、图片生成、视频生成、音频合成、音频理解、视频理解、图片处理、语音识别等等,目前整个AI领域,处于一种快速发展的状态,也就是咱们老话常说的风口,那咱们作为程序员,该怎么样拥抱AI,怎么样让咱们自己也能飞起来?别着急,下一节,AI市场分布告诉大家答案。
二、AI市场分布
目前AI这一块,主要有三个细分赛道的玩家,分别是基础算力、核心算法、还有智能应用。
1 基础算力
基础算力,顾名思义,它是为大模型提供计算能力,这个赛道的玩家不多,都是超大公司,因为小公司玩不起。比如英伟达、超威、寒武纪,这些公司是造芯片的,算力强不强,芯片是关键。还有亚马逊、阿里、微软,这些公司是玩云计算的,由于大模型对算力的要求很高,很多情况下,单台计算机并不能满足大模型对算力的要求,此时就得考虑分布式部署了,而这恰恰是阿里这些公司的强项。当然了,作为个人从业者,有关基础算力的岗位,对于学历的要求一般比较高,起码也得是个92硕。如果你符合这个条件,可以考虑往这方面发展。
2 核心算法
这个赛道的玩家主要研究开发大模型需要的算法以及算法框架,比如transformer、pytoch、Tensorflow等等,其中比较知名的公司有OpenAI、深度求索、Meta、Google等等这些公司,和基础算力类似,这个赛道相关的岗位,对于学历的要求也比较高,也得92硕起步。
3 智能应用
这个赛道的玩家是最多的,公司规模有几个人的到几万人的都有,而且涌入到这个赛到的公司越来越多。所谓的智能应用,核心是智能这两个字,借助于大模型的能力,我们可以对各行各业的软件进行智能化的升级、改造,比如零售、旅游、金融等等等等。由于这个赛道相关的岗位对于学历的要求没有那么高,只要你是个本科,即使民办二本,都能够得着,所以这也是将来大家想从事AI开发相关工作的主要赛道。
接下来给大家解释一下什么是智能应用。大模型就是实现了一些数学模型的软件,但是有个问题,这种软件普通人是无法直接使用的,比如我爷爷奶奶、儿子女儿,他们完全不懂代码,他们是无法直接使用大模型的。作为普通人来讲,使用的软件依然是传统的软件, 滴滴、淘宝、office等等这样的pc端软件或者移动端软件。如果我们要对传统的软件做智能化升级改造, 我们就需要将大模型接入到传统的软件中,借助于大模型的能力,让软件的功能变得更强大、更智能,这就是所谓的智能应用。也有另外一种主流的叫法:Agent,将来各行各业的系统都需要做智能化的升级,所以有关这方面的人才,需求量也会逐步增大,而咱们本套课程LangChain4j, 就是教大家如何将大模型接入到传统的软件中,开发智能应用,紧贴市场,主打一个时髦和实用,至于智能应用究竟该怎么开发,LangChain4j究竟该怎么用,别着急,跟着东哥走,永远不迷路,我们下一节接着讲。