AIGC|AGI究竟是什么?为什么大家都在争先入场?
一、AI大语言模型进入爆发阶段
2022年12月ChatGPT突然爆火,原因是其表现出来的智能化已经远远突破了我们的常规认知。虽然其呈现在使用者面前仅仅只是一个简单的对话问答形式,但是它的内容化水平非常强大,甚至在某些方面已经超过人类了,这是人工智能板块的重大突破。
近半年来,整个行业都在致力于研发和应用大型模型。这涉及到算力的提升、大型模型算法的优化以及相关语料和数据的准备。行业对此非常关注,各个参与者都铆足干劲,特别是一些大型企业纷纷下水,担心被AI浪潮拍在沙滩上。
在这张图中,我们可以看到一些主要的玩家,比如Meta(即Facebook)、OpenAI和谷歌,以及国内的华为、阿里巴巴和百度。尤其是在大型模型领域,它们都在做相应的投入和研发。最近,有一个名为Stable Diffusion的技术非常令人震撼。它可以让你无限地放大和缩小一张图片,甚至将其放大到地球的大小,这对整个行业都是一个巨大的挑战。
另外值得一提的是Meta,两年前,Facebook将其名称改为Meta,并宣布将全力发展元宇宙。但是为什么元宇宙还没有崛起呢?因为元宇宙需要人们用工具去创造其中的3D内容。但是现在,如果将Stable Diffusion技术与元宇宙技术结合起来,所有的场景都不需要手动创造了。这是非常令人震撼的,也可能会推动元宇宙的爆发。因为在这之前,元宇宙最大的瓶颈就是内容。如果人工智能能够与之很好地结合并生成内容,对元宇宙的推动将是非常巨大的。所以,我们可以无限地想象这个技术将如何改变我们的生活。
二、什么是大语言模型?
大语言模型是AI中的一个重要组成部分,它主要用于生成内容。我们可以通过这个模型给定一段文字,然后生成相应的文字、图片或图生图,以及将文字转换为声音或视频等等。这个模型的架构被称为Transformer,它是一种深层次的生成式模型。在卷积神经网络中,有许多层和参数,通过降维计算和权重来生成每个节点的可能性。虽然理解这个模型可能对于数学不太好的人来说有些复杂,但我们可以大致了解它的工作原理、功能和优势,以便在后续的应用开发中打下基础。
总结下来大模型其实就是三块大的能力:自然语言理解与生成,推理能力以及通识能力。
首先最重要的是自然语言的理解能力。在过去,我们经常进行各种搜索,包括在电商网站上进行搜索。当你在输入框中输入想要购买的物品,比如电脑,系统会给你返回一大堆相关的结果。这种搜索的本质是什么呢?其实它是通过给每个商品打上标签的方式进行的,比如只要是电脑,系统就会给它打上电脑的标签。当你输入电脑时,系统会命中所有带有电脑标签的商品,然后给你返回搜索结果。所以从本质上说,这种搜索是基于你的输入进行分词和命中,而没有理解你的意图。
但现在,自然语言理解的技术已经得到了很大的进步,在搜索层面上可以实现更多的功能。我们可能都尝试过ChatGPT、文心一言等等,当你输入一段话时,它会给你返回一系列相关的信息。这是因为它真正地理解了你的语言含义,理解了你的意图,然后才进行相应的操作。所以在搜索方面,实现这种真正的理解并提供相关结果是可能的。
比如你要去购买电脑,你可以对着AI输入“我是一个程序员,平时主要用来写Python程序,现在要购买一台1万元左右的电脑”,这是会自动给你推荐符合的商品,这就是体验方式的不一样。这个模型他理解了你的需求,然后再去完成特定的任务。
第二个很重要的是推理能力。同样是上文买电脑的例子,我只是描述了我的职业属性以及使用需求,而大语言模型会根据我提供的信息来推理出我需要购买电脑或者电脑的配件。这是它在基于我的语言理解去做的推理。
很典型的一个例子是ChatGPT-4发布时的一个举例,将一个有气球的图片传给ChatGPT,这时候你问ChatGPT
“如果我把气球的绳子剪断会怎样?”
“气球会飞走”
对于人类来说,这些回答很正常,但对于机器来说却是令人震撼的,这意味着AI已经能够理解物理世界的一些现象。
例如,当给AI展示一张烧红的铁的图片,并问它如果用手去碰会怎样,它能回答“你要当心受伤”。这个回答展示了AI的通识能力,它知道烧红的铁温度很高,然后进行推理得出碰到它会受伤的结论,并知道人的手不能碰高温物体。这些都属于通识知识,对我们来说很基本。但在这个大型模型出现之前,这个问题一直困扰着科学界很长时间,即使像AlphaGo这样的强大AI也不知道烧红的铁不能用手碰。
但现在这个问题已经得到解决。
三、大语言模型的核心要素
算法和模型是区分大语言模型研发的核心要素。算法和模型影响的模型丰富度、模型准确性、能力涌现等都成为评价大语言模型优劣的核心指标。
目前LLM市场有三大方向,分别是OpenAI、Google和Meta。
ChatGPT的回答更注重模拟人类表达,因此在准确性方面可能会有一定欠缺,有时会出现所谓的“一本正经的胡说八道”,这在专业术语中称为“幻觉”。相比之下,Google追求100%的准确性,所以它的训练更加困难。这也解释了为什么OpenAI先出现并且更快流行,因为它的回答相对更巧妙,难度没有那么大。
而Meta的LLaMA则是另一条完全不同的路线,它是完全开源并且可以商用的,因此围绕这一个模型会出现成百上千的模型,很多个人或者大厂都会基于这个模型进行一定的改进,比如ChatGLM等等。
四、如何构建大语言模型
大模型的本质除了是Transformer算法,它还需要进行数据训练。这与人类类似,孩子出生后就自然拥有了算力,而随着大脑中的神经元不断增长,算力也会增强。
无论是对于人类还是对于大模型来说,学习都是一个过程。实质上,对于大模型来说,学习的过程就是消耗数据和语料的过程。在训练中,所有的数据都被称为语量。
将大语言模型从一个Transformer算法训练成一个类似ChatGPT的模型需要经过三步:预训练、指令微调和RLHF。
预训练是指进行大量的无监督学习,这个概念可以用一个例子来解释。就像训练一个鹦鹉一样,你给它一个开着的电视,让它去看,不管电视上放什么内容,只要鹦鹉看着就好。经过一段时间,鹦鹉就会学会很多话。当然,这种训练资料不是完全随机,还是会进行一定的选择。
指令微调是一种技术,通过向模型提供特定的指令或约束来进一步调整模型的行为和生成结果。通常用于去除预训练过程中不安全数据,这些数据包括但不限于黄赌毒等等违法内容。AI在面对关于违法行为的问题时,会避免回答。同时,指令微调还涉及一些伦理问题,它会尽量排除对人类有害的内容。
然而,传统数据库中可以查找到有害数据的位置,但在大模型中,由于存储的内容太多,不知道具体位置。因此,无法通过穷举的方式检查出所有有害内容,特别是在开源大模型中,隐藏的有害内容更难察觉,需要更加小心谨慎。
RLHF是Reinforcement Learning From Human Feedback的缩写,意为从人类反馈中进行强化学习。这是整个过程的最后一步,引入专家或其他人在不同时间点问同样的问题,观察回答的差异,尽管可能有些微差别,但意思可能是一样的。然后需要评估回答,选择最好的回答,并给予相应的权重。这实际上是一个强化学习的过程。
五、大模型时代下企业应用痛点
随着进入大模型时代,越来越多的企业将加入这一浪潮,现有的几家独大的局面必将很快被打破。在这个时代,企业应用发展同样面临着众多挑战。
例如ChatGPT在通识领域表现出很强的能力,这是因为ChatGPT的语料来源于公开网络,所以它会成长为通识领域的领先选手。
然而,每个行业最专业的资料都是在企业或行业协会的私域中,不对外公开的。所以ChatGPT在回复中经常会存在事实性错误,部分原因就是这些特定的行业机密是无法在公有网络中获取的。这些行业协会或企业可以使用自己的数据来训练模型,从而成为该领域的专家,专注解决特定问题。可以预见的是,未来将会有各种大模型涌现,如医生模型、投资模型、生产制造模型等。我们可以想象将各种大模型与各个行业结合,从而对传统应用进行重构和升级,实现更好的效果。
另一方面是企业应用面临着数据和信息泄露的风险。由于AI大模型的应用无法签订保密协议,无法保证企业数据的安全性,也无法保证内容不会外流。这给企业带来了一定的安全隐患和控制风险。
六、大模型究竟能做什么
大模型应用可以轻松生成文字,比如广告文案、客服等。虽然目前大多数应用将其用于客服问答,但它的能力远不止于此,特别是在企业场景中,它具有强大的推理和分析能力。例如在自动驾驶领域,人工智能也发挥了重要作用,但目前仍存在100%正确性的问题,因此智能驾驶还不能完全取代人类控制。然而,一旦突破了这一问题,将对整个行业产生颠覆性的影响,释放出与蒸汽机一样重要的生产力,实现机器设备的无人驾驶和操控。
我们现在才刚进入大模型时代,更多的应用可能其实还需要不断地去尝试挖掘。
七、AI企业应用开发
(一)开发工具及资源
目前我们已经拥有了很多模型,回到我们的本质,我们要开发一些应用,更重要的是如何去运用它们。现在业界有一些框架、思路和工具来开发这些AI应用。在这个过程中,我们可以看到有一些层次顺序。最底层是模型的能力,它是不可或缺的,而它的算力则是由CPU支撑,在这之上还有一些框架。
//脚手架
AI应用脚手架软件是一种用于构建和部署AI应用的工具。它提供了一个基本框架,帮助开发者快速搭建AI应用的基础结构。
很火的脚手架如AutoGPT和LangChain其实都采用了同一种代理思路,即基于"思维链"的循环往复过程。当面对复杂任务时,大模型具备拆解能力,将任务拆解为小任务,并提前包装好API工具,让模型知道每个API的功能。整个过程相当于自动化的步骤,模型会根据任务的拆解和工具的匹配来完成相应的任务。
//向量数据库
在传统的应用中,我们使用了Claude框架和Java语言。然而,这些还不够,我们还需要记忆体,也就是关系型数据库。在AI应用中,它也有相应的记忆体,即向量。在大型模型中,它通过计算来存储自然的向量,并通过向量来表示各个节点之间的关系。向量数据库并不是现在才出现的,它的优势在于处理非结构化的数据,因为我们知道结构化数据对机器来说更友好。非结构化数据是指文档、文字、声音、视频等无固定格式的数据。与之相对的是结构化数据,例如表格或数据库中的数据。在过去,我们能够录制和存储视频、音频等非结构化数据,但一直没有一种基于这些数据进行计算的方式。
为了解决这个问题,我们引入了向量数据。向量数据库将现实中的非结构化数据转化为向量形式,每个数据都成为一个向量。当进行计算时,将数据转化为向量的原因是它已经变成了数值,可以进行计算。可以计算两个向量之间的距离,这个距离在向量化过程中具有实际意义,它表示相似度。
例如,如果将两句话“今天天晴”和“今天天气很好”存储在向量数据库中,它们将成为两个不同的向量。但是,这两个向量之间的距离非常接近,通过使用向量引擎将它们向量化,可以得到非常接近的距离。这具有实际意义,可以对非结构化的数据进行大量计算。
//大模型运行环境
大模型通常需要大量的计算资源来进行训练和推理。强大的硬件算力,如高性能的CPU、GPU或TPU,可以提供更快速和高效的计算能力,加速大模型的运行。较低的算力可能会导致运行速度变慢或无法完成任务。
目前市场上提供的算力服务包括Google Colab、Hugging Face以及国内公有云等等,可为学习和开发提供长期算力支持。
业界中有很多大厂正在努力降低AI和大模型对算力的要求,有人表示这一趋势符合摩尔定律,将会迅速下降。同时,还有各种算法优化和并行处理的可能性。虽然这些可能超出了我们目前个人的能力范围,但我们可以关注未来的发展,说不定哪一天在笔记本上都能够运行。
//大模型获取方式
获取想要的大模型非常简单。像Hugging Face提到的类似于GitHub的开源模型库,提供了大量的开源数据集和预训练的大模型。开发者可以直接在这些库中搜索并下载所需的大模型,然后在本地环境中进行使用和运行。
(二)AI应用架构
各位小伙伴可以关注公众号“神州数码云基地”回复关键词【AGI通识及应用开发】获取原文PPT材料
AI应用的基本框架是用户输入在左边完成后,下方可以连接外部数据库和向量数据库。在中间是一个大模型,我们可以通过API的形式调用AI或者国内的文心一言等等来完成任务。另外,我们也可以选择自己部署一个开源的大模型,例如ChatGPT来进行基础的开发工作,这已经足够使用了。
模型层的代理层其实就是一个脚手架,通过代理机制利用大模型理解用户的需求,并将其切分为多个小任务,然后调用各种已知的工具来完成任务,当然这些工具需要事先告知给代理层。如何告诉工具需要做什么呢?一种常见的方式是通过查询和调用搜索引擎的API。在这个API中,你只需要用自然语言写一段话,告诉它你想搜索人、事、物等方面的信息。当大模型在分解任务时,如果某个步骤需要查询某个人的信息,它会自主地调用这个工具。
注册过程实际上是将每个现有应用或外部系统的API进行简单的自然语言包装,以便在任何时候调用底层机制。它会观察结果,并根据满足要求与否来判断是否继续执行任务,直到任务完成。
整个机制还配合着向量数据库,该数据库专门为个人或特定场景提供服务。在企业场景中,大量的数据都是私有的,无论是结构化还是非结构化的,例如企业文档、规章制度、报告等都可以存储在向量数据库中。这样这个系统就能够成为企业私有的定制AI系统,用于回答内部问题。
八、说在最后
在AGI(通用人工智能)时代的到来之际,大模型成为了推动AI技术发展和应用的关键驱动力。通过大模型,我们可以探索和实现更加复杂、智能的任务和应用,为人类社会带来巨大的变革。
正如我们在上文所说,获取想要的大语言模型已经变得非常简单。开源模型库、数据科学平台、云计算服务以及自行训练等方式,都为我们提供了丰富的资源和工具,让我们能够轻松地学习和探索大模型的世界。
通过学习大语言模型的原理、应用和开发技术,我们能够更好地理解和应用这一强大的工具。不论是从事研究、开发还是应用,学习和掌握AGI的知识和技能都将为我们的职业发展和个人成长带来巨大的机会和潜力。
分享者:胡浩文 | 神州数码云基地 开发总监
版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。
公众号搜索神州数码云基地,回复关键词【AGI通识及应用开发】获取原文PPT材料
相关文章:

AIGC|AGI究竟是什么?为什么大家都在争先入场?
一、AI大语言模型进入爆发阶段 2022年12月ChatGPT突然爆火,原因是其表现出来的智能化已经远远突破了我们的常规认知。虽然其呈现在使用者面前仅仅只是一个简单的对话问答形式,但是它的内容化水平非常强大,甚至在某些方面已经超过人类了&#…...

【数学建模】--主成分分析
本讲将介绍主成分分析(Principal Component Analysis,PCA),主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能…...

gitee(码云)如何生成并添加公钥,以及配置用户信息
一,简介 在使用Gitee的时候,公钥是必须的,无论是克隆还是上传。本文主要介绍如何本地生成和添加公钥到服务器,然后配置自己的用户信息,方便日后拉取与上传代码。 二,步骤介绍 2.1 本地生成公钥 打开git ba…...
wangeditor上传图片并展示在输入框内方法(vue3)
安装vue3组件 yarn add @wangeditor/editor-for-vue@next # 或者 npm install @wangeditor/editor-for-vue@next --save 页面中创建一个新的组件 <template><div style="border: 1px solid #ccc; text-align: left"><Toolbar style="border-…...

UGUI基础游戏对象Canvas
一.画布Canvas对象概述 画布是一种带有画布组件的游戏对象,所有 UI 元素都必须是此类画布的子项。 创建新的 UI 元素(如使用菜单 GameObject > UI > Image 创建图像)时,如果场景中还没有画布,则会自动创建画布。…...

PK Nounique CASCADE DROP INDEX keep index
Explicit Control Over Indexes when Creating, Disabling, or Dropping PK/Unique Constraints (Doc ID 139666.1)编辑To Bottom PURPOSEIn Oracle 9i, the DBA has an explicit control over how indexes are affectedwhile creating, disabling, or dropping Primary Ke…...

【Antd】实现Table组件行点击,解决某一列不触发行点击
今天有个新需求,点击table行,执行一些操作。实现过程中遇到了:点击操作列、操作列内按钮会冒泡触发行点击。antd版本:1.7.8 一、解决方案 customRow <a-table :customRow"handleClickRow" :data-source"data_li…...

Kafka3.0.0版本——Broker( 退役旧节点)示例
目录 一、服务器信息二、先启动4台zookeeper,再启动4台kafka三、通过PrettyZoo工具验证启动的kafka是否ok四、查看4台kafka集群节点上是否存在创建的名称为news的主题五、退役旧节点5.1、执行负载均衡操作5.2、 执行停止命令5.3、再次查看kafka中的创建过的名称为ne…...

【Rust】Rust学习 第十二章一个 I/O 项目:构建一个命令行程序
本章既是一个目前所学的很多技能的概括,也是一个更多标准库功能的探索。我们将构建一个与文件和命令行输入/输出交互的命令行工具来练习现在一些你已经掌握的 Rust 技能。 Rust 的运行速度、安全性、单二进制文件输出和跨平台支持使其成为创建命令行程序的绝佳选择…...

【MySQL--->表的操作】
文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名;  一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…...

PyTorch从零开始实现ResNet
文章目录 代码实现参考 代码实现 本文实现 ResNet原论文 Deep Residual Learning for Image Recognition 中的50层,101层和152层残差连接。 代码中使用基础残差块这个概念,这里的基础残差块指的是上图中红色矩形圈出的内容:从上到下分别使用…...

企业微信 企业内部开发 学习笔记
官方文档 文档 术语介绍 引入pom <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-cp-spring-boot-starter</artifactId><version>4.5.3.B</version></dependency>核心代码 推送消息 final WxCp…...
03 QT基本控件和功能类
一 进度条 、水平滑动条 垂直滑动条 当在QT中,在已知类名的情况下,要了解类的构造函数 常用属性 及 信号和槽 常用api 特征:可以获取当前控件的值和设置它的当值 ---- int ui->progressBar->setValue(value); //给进度条设置一个整型值 ui->progressBar->value…...

epoll数据结构
目录 1.大量的fd 集合。选择什么数据结构?2、Epoll 数据结构Epitem 的定义Eventpoll 的定义 1.大量的fd 集合。选择什么数据结构? 查找频率很高的数据结构 1.红黑树 2.哈希(扩容缩容) 3. b/btree (降低树的高度&#…...
LINUX学习笔记_GIT操作命令
LINUX学习笔记 GIT操作命令 基本命令 git init:初始化仓库git status:查看文件状态git add:添加文件到暂存区(index)git commit -m “注释”:提交文件到仓库(repository)git log&a…...

第一百二十九天学习记录:数据结构与算法基础:栈和队列(中)(王卓教学视频)
栈的表示和实现 顺序栈的初始化 ##入栈 链栈的表示...

C语言 — qsort 函数
介绍:qsort是一个库函数,用来对数据进行排序,可以排序任意类型的数据。 void qsort (void*base, size_t num, size_t size, int(*compart)(const void*,constvoid*) ) qsort 具有四个参数: …...

开放式耳机哪个好一点?推荐几款优秀的开放式耳机
在追求更广阔的音场和更真实的音质时,开放式耳机是绝对值得考虑的选择。它们以其通透感和自然的音质而备受推崇,带来更逼真的音乐体验。下面我来推荐几款优秀的开放式耳机,满足你对音质和舒适度的要求,可尽情享受音乐的魅力。 一…...

vue-cli前端工程化——创建vue-cli工程 router版本的创建 目录结构 案例初步
目录 引出创建vue-cli前端工程vue-cli是什么自动构建创建vue-cli项目选择Vue的版本号 手动安装进行选择创建成功 手动创建router版多了一个router 运行测试bug解决 Vue项目结构main.jspackage.jsonvue.config.js Vue项目初步hello案例 总结 引出 1.vue-cli是啥,创建…...
Go和Java实现外观模式
Go和Java实现外观模式 下面我们通过一个构造各种形状的案例来说明外观模式的使用。 1、外观模式 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型 模式,它向现有的系统添加一个接口ÿ…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
如何通过git命令查看项目连接的仓库地址?
要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...

Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...