10分钟读懂:全面解析AI大模型
因为产品经理可以不懂技术,这就导致在了解新技术特别困难,下面我会用极简的方式介绍什么是AI大模型。
不懂代码、不懂数学、不懂数据库,也能了解大模型。
一、名词解释
无论是配置模型还是使用,都会遇到一些大模型相关的特有名词,所以需要先了解这些名词是什么意思才能更好的运用它。
1.1 参数
参数是指模型的大小,一般来说参数越大,模型的能力越强。大模型的参数单位一般用“B”来表示,1B代表10亿参数。
以下面的两张图为例,第一张图是阿里百炼平台的模型广场,另一张图是欧拉玛的模型广场,这里面的模型基本都会按照“名称”+“版本”+“参数”的形式分类。
参数的单位基本都是“B”,但是因为有些模型不是通用大模型,而只是适用于某些领域的小模型,所以参数量会比较小,单位为“K”或“M”。
单位包括:K(千)、M(百万)、B(十亿)、T(万亿)。
阿里云百炼
欧拉玛(Ollama)
参数越大那么模型就可能会占用越多的存储空间,但因为不同模型对于权重、精度、压缩技术的处理方式不同,所以参数与存储空间并不是线性关系。
你如果问7B参数大小的模型占用多少内存空间,我只能说不知道,这要看具体的模型.每家模型训练的不一样,那么相同参数的情况下所占用的存储空间也是不一样的。就好像同样是6年纪的小学生,有的身高一米五、有的身高一米七一样。
1.2 token
token是大模型处理数据的最小单位,比如一个字、一个词、一个像素、一段音轨等。
我们试着将下面的句子拆分成最小单位:
–“你好!”–,这一段话,可以将其拆分为:“你”、“好”、“!”,这三个最小单位。
–“我想吃虾丸。”–,这一段话,可以将其拆分为:“我”、“想”、“吃”、“虾丸”、“。”,这五个最小单位。
这两句话在拆分时有一点不一样,第二句话的“虾丸 ”并没有拆分成两个字,而是以词的形式做了拆分,原因是“虾丸”作为名词,已经无法在进行拆分了,如果拆分为“虾”、“丸”两个字,那就导致句子失去了原有的含义。
代码是怎么进行拆分的呢?基本逻辑就是将一句话中的词挑出来,剩下的就可以作为字来处理。
中文分词工具包括:THULAC (Tsinghua University Language Analysis and Computing、HanLP (Han Language Processing)、LTP (Language Technology Platform)等。
另外对于大模型的提供方已经内置分词功能了,或者说大模型本身就有分词能力,不需要我们在做额外工作。
1.3 上下文
一段话的周围信息就是上下文,例如连续问大模型两个问题,这两个问题及回答互为上下文。
日常在沟通过程中,相同的问题我们会因为场景不同得出不同的结论。
开需求评审会时,我们会问技术同学、测试同学对需求有什么问题?技术同学会从技术的角度回答需求有什么问题、测试同学会从测试的角度回答测试的问题。假如此时我们冲着门外的设计同学询问他们有什么问题,设计同学会一脸懵,因为他们不知道你是因为什么原因问的这个问题。
回到图片示例的大模型问答上,当我问“包含哪些部分”时,大模型会基于第一句话理解我的意图,再做出对应的回答。
1.4 多模态
是指可以处理多种类型的数据,比如纯文字、图片、文档等,而单一模态的模型是指只能处理文字或图片或声音的模型。
下面的通义模型,可以上传图片、文字、文档数据,就是多模态大模型。
下图的openai提供的一系列模型皆为多模态模型,可以上传图片、文字。GPT3只能输入输出文字,所以是单一模态的模型,但是目前openAI已经不提供GPT-3及以前的模型了。
1.5 温度
是一个调整模型回复的随机性的值,值越大随机性越高,回复越有创造性;值越小随机性越小,回复越重复老套。
这个名词来源于英语单词temperature,可以将其翻译为温度、热度等。在使用模型时,默认系统温度值即可;如果在回复中感觉到模型的回复会重复,这时就可以提高温度值,如果感觉到模型回复漫无边际,就可以降低温度值,下图为智谱清言对于温度的介绍。
温度值设置为最低时的回复(ChatGPT):
温度值设置为最高时的回复(ChatGPT):
1.6 向量值(词向量)
向量是用来描述token在高维世界的特征,数学领域中的向量是一个的数字列表,在一维空间中,位置可以用(x)表示;在二维空间中,则用(x, y,)表示。以此类推,三维空间(x, y, z),四维空间(x1,x2,x3,x4)……
如果道单选题,题目给出了海豚、马、兔子、骆驼这四种动物,让我们挑选出不一样的一种动物,应该怎么选?
我希望你的答案是海豚,因为海豚生活在海里,其他动物生活在陆地上。当然你要非说是骆驼,因为体型大;非说是兔子,因为兔子钻洞;非说是马,因为速度快,那我也没办法。毕竟人就是通过各种各样的特征去了解事物的,总能找到那个不一样的特征。
那怎么让计算机知道这些特征从而理解世界呢?我们可以将这些特征提取出来,如果提取1个特征,比如是不是陆地生物;如果提取两个特征,比如体型的大小。
只有“陆地生物”这一个特征的时候,越是符合这个特征则越靠近右侧,为了方便知道其位置,可以给一个坐标。如果增加“体型”这个特征的时候,那么每一个动物也就拥有了二维坐标。如果继续增加特征呢,那每个动物就会拥有三维坐标、四维坐标、五维坐标……
用图像肯定不方便表示,计算机中也不可能放一张无限维度的坐标图,但是计算机中可以存储每个动物的坐标位置,每一个数字就是对应了一个特征的值,通过动物之间数字的对比就可以知道每个动物之间的差异及内涵。
那计算机是怎么知道这些特征和数值大小的呢?可以靠计算机学习,让神经网络学习大量资料后,让计算机去区分每一个token的特征和特征的值。
二、大语言模型(LLM)
2.1 为什么叫大语言模型?
能听懂人话并且和人沟通的模型,叫做大语言模型。
大语言模型主要是处理语言的,处理什么数据就叫什么模型,除了语言模型还有处理视觉、音频、生成数据等其他作用的模型。
如果有人开发出了画原型图的模型,也可以叫它“原型图模型”。
多模态模型也就是综合了语言模型、视觉模型等多种模型能力的大模型。因为每一种模型的作用是不相同的,为了让大模型的能力更强更方便使用,所以产生了多模态大模型,也就是即可以听懂人话,也可以看懂图片是什么意思。
2.2 为什么大模型能够听懂人话?
我们并不确定计算机理解人类的语言还是概率运算的结果。
我们可以教会鹦鹉说“你好”,那我们可以说鹦鹉听懂了人类的语言吗?不可以,因为我们明确的科学的可以知道鹦鹉只是重复音节。
大模型则是通过了大量的文本训练,学会了语言中的各种沟通方式、文字与文字之间的排列规则、语法的结构。通过这一系列的规则运算,给人一种可以听懂人话的感觉。
要了解大模型是怎么变得这么厉害的,那就需要从头开始说了。
最早有关人工智能的概念来源于图灵,他在《计算机器与智能》的论文里提出了“图灵测试”,什么是图灵测试呢?就是让一台机器和人对话,如果这个人没法辨别和他对话的是机器还是真人,那么就可以说这台机器具备了智能。
为了使机器能够通过图灵测试,研究人员开始研究人类语言。因为人是地球上拥有最高智慧的物种,而语言是人类沟通过程中最重要工具,更是智能的表现形式。
具体怎么研究语言呢?最直接的方式就是从语言的规则下手。比如n-gram模型,就是根据人类的语言习惯,通过前面的字来预测后面字的方式让计算机实现语言功能的,而且现在的大模型也是站在n-gram模型的肩膀上发展出来的,了解n-gram模型就能够很清楚的知道现在的大模型的实现逻辑。
① 入门级模型:n-gram模型
n-gram模型前面的N是指,用几个词来预测下一个词。
如果我们当前文字及前面的一个文字来预测下一个词,这就叫做2-gram;如果用当前文字及前面的两个文字来预测下一个词,这就叫做3-gram。
为了能够理解n-gram模型,我们可以举个例子。
有一个数据集,里面只有两句话。
- 我喜欢吃苹果。
- 我喜欢吃香蕉。
我们需要先将这两句话拆分token,也就是“我”“喜欢”“吃”“苹果”“香蕉”。
根据概率推算,“我”后面必然会跟着“喜欢”两个字,概率是100%;那么当我们输入“我”这个汉字的时候,系统就会根据概率,输出“喜欢”这个词,可见下图。
如果规定模型持续运行直到生成一句话,那么模型就会根据概率生成“我喜欢吃苹果”或者“我喜欢吃香蕉”,因为“苹果”和“香蕉”两个词的概率都是50%,那么系统会随机生成。
但是n-gram模型也有很多缺陷,因为n-gram模型是先假设每一个词都是互相独立存在,彼此没有关系的。但词语和文字却是有实际意义的,所以就导致模型没法理解上下文,没办法解决句子中的逻辑关系。如果出现了新词语,也没法理解其用法,纯粹是概率计算。
直到后来,出现了神经网络技术。
② 大模型核心角色-神经网络
神经网络是通过模仿大脑处理信息的方式而产生的计算模型,是为了解决图像识别和逻辑运算的。
神经网络的设计灵感来源于人脑的结构,每个神经元代表一个基本的计算单元,单个神经元实际上是一串代码,用来处理简单的数学运算。尽管单个神经元的功能相对简单,但当大量这样的神经元连接起来形成网络后,整个网络就能够去处理复杂的任务。
经典的神经网络可以分为三层结构,输入层、隐藏层、输出层,每一层都是由一堆神经元组成。
- 输入层:接收原始数据,将原始数据经过预处理后传递给隐藏层。
- 隐藏层:通过线性加权求和、激活函数、权重等一系列运算,将结果传递给输出层。
- 输出层:处理接收到的数据并输出结果,将结果反馈给用户。
总结一下就是,每个神经元作为一个计算单元,通过对输入数据进行加权求和并应用激活函数来提取有用的特征,然后将处理后的信息传递到网络的下一层。在网络的输出层,对于分类任务,神经元可以输出表示不同类别的概率值。
具体到图像识别任务,图像是由像素构成的,每个像素都有其特定的色值。以数字“6”为例,我们可以给计算机大量数字6的图片,计算机会将图像分解为像素,然后将颜色转换成色值,并分析这些色值的分布规律。
最终,当模型遇到新的、未见过的数字6图片时,它能够基于已学到的规则将其识别出来。如果给神经网络提供大量高质量且标注准确的数据,那么神经网络就可以拥有解释图像信息的能力。
虽然神经网络这么厉害,但因为早期的硬件限制,导致发展并不顺利。前面我们可以得知,神经网络是通过大量神经元构成的,而每个神经元只负责简单的运算,这种方式要求硬件能提供强大的并行处理能力,以同时执行这些大量的简单运算任务。但当时训练神经网络只能依靠CPU且性能还有限。
随着计算机硬件技术的发展,特别是GPU的引入,这才让神经网络的硬件环境得到改善。硬件技术的发展让研究人员能够去设计和训练更复杂的神经网络结构,比如卷积神经网络、循环神经网络、注意力机制、预训练等。而现在的大模型都是基于神经网络架构的,可以说没有硬件的发展、没有神经网络的发展,就没有目前的大模型。
而Transformer架构是神经网络中最主流的,当前的大语言模型几乎都是基于Transformer架构搭建的。
③ 主流架构-Transformer架构
Transformer架构是特别适用于自然语言处理的神经网络模型。
Transformer架构能够如此厉害,在于Transformer架构能够通过向量数据、自注意力机制、神经网络等能力,高效地处理和理解自然语言。
向量数据:每个token被转换为了高维向量,通过token的向量值,可以知道词汇本身的语义信息、特征,还能分析出token与token之间的复杂关系。
自注意力机制:输入到神经网络的每一个token都可以与其他token发生联系,并且通过“权重”来区分链接过程中的重要程度,这样可以让大模型解决上下文关联问题,避免提问第二个问题的时候忘记第一个问题。
神经网络的能力:通过全新的神经网络结构,不仅能捕捉局部特征,还能理解全局信息,从而支持更深层次的语言理解和生成任务。
国外的openai、谷歌、微软,到国内的阿里、腾讯、清华的团队等,都是基于或借鉴Transformer架构开发的大模型。
https://bbycroft.net/llm ,这是一个LLM可视化网站,可以清楚的看到大模型每一步的工作细节。
三、大模型实践方法
3.1 提示词工程
提示词功能的作用在于通过设定提示,让大模型的回答更加精准。
大模型训练时并不会针对特定领域,是为广泛问题进行设计的。而提示词工程(Prompt Engineering)也叫上下文提示,目的是希望大模型在回答问题时,可以得知前因后果,聚焦用户的特定需求。
也就是无论形式如何,只要能够让大模型得知你的需求就是提示词,只要让大模型给你想要的答案就是好的提示词,哪怕你问的是“1+1等于几?”。
比如你让大模型扮演某个角色,你可以告诉大模型:“你要扮演鲁迅,回答的风格要与鲁迅的作品类似”。那么大模型就会扮演鲁迅且通过鲁迅的说话风格回答你的问题。
而在创建智能体时,也会让用户填写智能体的设定,这个设定就起到了提示词的功能。
针对复杂问题,为了从大型语言模型中获得高质量的回答,我们需要提供更加详尽的问题描述。在2023年11月,新加坡举办了首届提示词功能大赛,冠军Sheila Tao撰写了一篇文章,探讨了她对提示词的理解,并介绍了CO-STAR框架的应用方法。
工作原理如下:
(C)背景:提供任务的背景信息
这有助于 LLM 了解正在讨论的具体场景,确保其回应是相关的。
(O)目标:明确你希望 LLM 执行的任务是什么
明确你的目标有助于 LLM 集中精力实现该特定目标。
(S)风格:指定您希望 LLM 使用的写作风格
这可能是某个名人的写作风格,也可能是某个行业的某个专家,比如商业分析师或 CEO。这将指导 LLM 以符合您需求的方式和措辞进行回复。
(T)语气:设定回应的态度
这确保 LLM 的回应与预期的情绪或情感背景产生共鸣。例如正式、幽默、富有同理心等。
(A)受众:确定回复针对的对象
根据受众(例如某个领域的专家、初学者、儿童等)定制 LLM 的回应,确保它在您需要的背景下是适当且易于理解的。
(R)回复:提供回复格式
这可确保 LLM 输出的格式与您执行下游任务所需的格式完全一致。示例包括列表、JSON、专业报告等。对于大多数以编程方式处理 LLM 响应以进行下游操作的 LLM 应用程序而言,JSON 输出格式是理想的选择。
如果我们希望大模型可以帮产品经历写一份年终总结,就可以按照CO-STAR框架编写提示词。
背景:我是“XXXXX”公司的产品经理,负责XXXXXX应用。在过去的一年中,我们实现了多项功能升级,并且用户基数有了显著增长。
目标:编写一份全面的年终总结报告,概述本年度的关键成就、遇到的主要挑战及解决策略,并简要介绍下一年的战略规划。
风格:采用清晰、专业的商务写作风格,类似于业界公认的产品经理或公司领导人的表达方式。
语气:正式而积极,体现对团队努力的认可以及对未来发展的乐观态度。
受众:这份报告将提交给公司的高级管理层以及我的直接上司,并会在内部分享给整个产品团队。
回复:请按照标准的年终总结格式提供文档,包括封面页、目录、引言、年度回顾、主要成就、面临的挑战与解决方案、未来展望等部分。文档需保持专业性,重点突出。
如果不会写提示词怎么办?没关系,可以复制文中的工作原理,把写提示词的工作交给大模型。
虽然可以通过CO-STAR框架中说明了提示词该怎么写,但我们的重点并不在于如何编写提示词,而在于让大模型给出我们满意的答案。
3.2 知识库
知识库就是资料库,目的就是为大模型处理问题提供必要背景知识。
虽然大模型擅长处理广泛领域的常见问题,但在面对特定领域内深入且专业的问题时存在局限性,而知识库提供了特定领域的信息,帮助其解决特定问题。
如果希望大模型帮助企业优化供应链管理,那么大模型就需要知道供应商信息、库存水平、物流数据、采购数据等信息。如果希望大模型能够帮助系统应用,那么大模型就需要知道项目管理流程、技术文档、操作说明书等信息。而这些信息就需要存放到知识库,作为大模型的知识储备。
chatgpt的存储功能
阿里百炼的数据管理功能
这里需要注意,大模型和知识库是两种不同的技术,只是针对于特殊问题需要知识库提供特定信息。
所有的数据都需要存储在服务器上,常见的数据库类型包括关系型数据库、非关系型数据库,这些数据库可以有效地存储和管理结构化与非结构化数据。然而对于大模型来说,这些传统的存储方式并无本质区别,它们更像是文件夹,用于存储和检索信息。
并不是知识库的数据就需要向量存储,只是需要处理相似性任务的时候,需要用到向量数据库。
前面提到大模型时也有提到,大模型的本质是概率计算,通过token与token之间向量值的对比来生成数据,这种基于向量的计算方式使得大模型能够理解和处理复杂的模式和关系。只要任务需要用到数据与数据的相似性对比,那么就需要用到向量数据库,可见第一部分的向量词。
对于产品经理来说,我们必须知道如何运用知识库,如果想要进一步的了解向量数据库,可以询问大模型、B站搜索向量数据、阿里云或腾讯云的开发文档及介绍。
3.3 微调
微调就是让通用的大模型,更加适用于某个特定项目。
如果大模型是一个大学生,知识库相当于公司资料,而微调工作就相当于入职培训,培训其如何与客户继续沟通。
听起来微调似乎很高深,但其实大模型厂商都会提供对应的微调功能,我们可以通过平台提供的微调模板,了解微调是什么。
微调的目的是通过使用实际案例来优化大模型的表现能力,使其更符合特定应用场景的需求。无论是像ChatGPT还是通义这样的大模型,都是采用一问一答的形式进行。
通过提供企业自身的实际案例,微调过程可以让大模型学习到更加精准和符合企业需求的回复方式,从而使通用的大模型能够高度适配企业的具体业务场景。这样不仅提升了模型的实用性,还增强了其在特定领域中的表现力和准确性。
四、最后
对于AI产品经理来说,我们的核心工作是应用大模型,而不是作为大模型的研究者。无论各研究团队推出了什么新的架构,对于产品来说都不重要,重要的是如何将其集成到现有的系统中。至于如何集成到系统,不同公司有不同的解决方案,这些就需要在工作中探索了。
本文由 @入幽 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自 Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
深入浅出,受益匪浅,这回他们讲话我能听懂了,哈哈
学到了很多,谢谢作者
感谢🙏,如果需要深度学习的话,不建议花钱报班,可以在b站看清华的公开课或吴恩达的课程。
好咧,谢谢