尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

人工智能与LLM基础理论

人工智能与LLM基础理论 目录1. 什么是LLM什么是人工智能机器学习出现深度学习LLM是什么LLM为什么会聊天2. 机器学习核心 —— 模型到底学到了什么数据Data特征Feature模型Model参数Parameter训练Training推理Inference为什么模型能识别没见过的猫连接到LLM3. 神经网络 —— 机器为什么能够自己学习特征神经网络是什么一个人工神经元为什么需要很多层深度学习为什么强连接到LLM4. 从RNN到Transformer —— 为什么Attention改变了LLM时代语言模型是什么RNN时代RNN的问题Transformer改变了什么5. Attention机制 —— Transformer理解语言的核心Attention解决的问题Query、Key、ValueAttention计算直觉为什么叫 Attention连接LLM6. Token为什么不能直接处理文字Token到底是什么为什么不能简单按“一个汉字一个Token”Token实际上是怎么进入模型的然后才轮到EmbeddingToken和Attention到底是什么关系一个非常重要的例子Context Window为什么和Token有关Token为什么还和API费用有关现在把整个LLM流程串起来7. Embedding —— 数字为什么能够表示“语义”Embedding 到底是什么为什么这很重要最常见的相似度Cosine SimilarityEmbedding不是“字典”一个非常有意思的现象这和未来 RAG 有什么关系8. Transformer BlockAttention负责什么那 FFN 负责什么为什么需要多层现在把 Transformer Block 真正拼起来现在再把整个 LLM 串起来9. LLM 是如何选择下一个 Token 的Logits 是什么Logits → Probability最简单的生成方式Greedy DecodingGreedy 的问题是什么Sampling这就是为什么同一个问题可能产生不同答案Temperature 是什么Top-kTop-p现在把整个过程串起来目标能够解释Transformer为什么有效Token是什么Attention是什么LLM如何生成文本1. 什么是LLM什么是人工智能先不要把AI理解成“像人一样思考”。工程角度AI就是让机器执行通常需要人类智能才能完成的任务。例如以前识别猫需要程序员写规则如果有耳朵如果有胡子如果有尾巴那么可能是猫问题现实太复杂。猫可能坐着躺着被遮挡不同颜色规则无法覆盖。机器学习出现核心思想改变以前人写规则↓机器执行机器学习人提供数据↓机器寻找规律↓生成模型例如10000张猫图片输入图片标签猫模型学习什么特征组合像猫以后新图片模型预测90% 是猫深度学习为什么需要深度学习因为数据越来越复杂。例如图片低级边缘颜色形状高级眼睛耳朵脸动物神经网络可以自动学习层级特征。类似第一层线条第二层形状第三层物体第四层概念LLM是什么LLMLarge Language Model大型语言模型。拆开Large参数很多。Language处理语言。Model一个数学模型。所以LLM就是一个通过大量文本训练出来能够预测下一个token的巨大神经网络。注意它不是“数据库”。不是“搜索引擎”。不是“真正理解人类”。LLM为什么会聊天核心Next Token Prediction。假设输入今天晚上我要吃模型计算下一token概率饭 40%火锅 20%苹果 5%…选择一个。继续今天晚上我要吃饭继续预测。不断循环。最终形成回答。一个重要认知很多初学者认为ChatGPT是在数据库里找到答案。实际上更接近它根据训练得到的语言规律实时生成答案。2. 机器学习核心 —— 模型到底学到了什么数据Data机器学习的原料。例如猫识别输入图片输出猫组成训练数据 输入 标签例如图片标签cat001.jpg猫cat002.jpg猫dog001.jpg狗这里图片叫Feature特征标签叫Label标签特征Feature什么是特征简单理解可以帮助模型判断的信息。比如判断一个人是否喜欢篮球。输入身高年龄观看比赛次数购买球鞋数量这些就是特征。模型学习哪些特征组合和结果有关传统机器学习通常需要人设计特征。例如判断邮件垃圾程序员可能设计是否包含中奖是否包含广告词是否大量链接然后交给模型。但是深度学习改变了这一点。神经网络可以自己学习特征。例如图片第一层学习边缘线条颜色第二层学习眼睛耳朵轮廓第三层学习猫脸狗脸所以深度学习自动特征提取。模型Model模型是什么很多初学者误解模型是一堆代码。实际上模型数学函数。例如简单模型y wx b输入x参数w、b输出y机器学习就是找到合适的w和b。神经网络也是一样。只是参数数量非常巨大。例如简单模型2个参数神经网络百万 ↓十亿↓万亿参数。参数Parameter这是理解LLM必须掌握的概念。参数是什么模型内部学习出来的数字。例如一个神经元输入x1x2x3计算y w1x1 w2x2 w3*x3其中w1w2w3就是参数。训练就是调整这些参数。训练Training训练过程核心预测↓比较答案↓计算错误↓调整参数↓继续预测专业术语错误Loss损失调整Optimization优化举例训练猫模型。第一次模型输入猫照片预测狗 80%猫 20%真实猫错误很大。调整参数。100万次以后预测猫 99%模型完成训练。推理Inference训练结束后模型进入使用阶段。这个过程叫推理。例如训练100万猫图片↓模型现在用户上传一张新照片。流程新照片↓模型↓计算↓猫 98%这就是推理。为什么模型能识别没见过的猫因为它学习的是规律。不是照片。比如一个小孩第一次看到黄色圆形水果。告诉他这是香蕉。以后看到另一根香蕉。虽然没有见过但是根据形状颜色纹理判断。模型类似学习大量统计规律。连接到LLM现在把猫换成人类语言。图片模型学习像素规律 ↓猫LLM学习文本规律 ↓下一个token例如训练数据今天天气很好我想出去模型学习看到今天天气很好我想后面可能出去概率高。3. 神经网络 —— 机器为什么能够自己学习特征神经网络是什么先纠正一个误解神经网络不是复制人脑。它只是受到生物神经元启发的一种数学结构。基本单位叫Neuron神经元一个人工神经元一个神经元输入x1x2x3每个输入有权重w1w2w3计算z x1* w1 x2* w2 x3* w3 b然后经过激活函数a activation(z)输出a举个简单例子判断一个人是否喜欢篮球。输入x1 看球次数x2 买球鞋次数x3 打球次数权重w1 0.5w2 0.8w3 0.9计算喜欢程度 0.5* x10.8* x20.9* x3权重越大说明这个因素越重要。为什么需要很多层一个神经元太简单。比如图片一个神经元只能发现亮不亮但是猫需要像素↓边缘↓形状↓耳朵↓猫脸↓猫所以需要很多层。结构Input Layer↓Hidden Layer↓Hidden Layer↓Output Layer这就是Deep Neural Network深度学习为什么强因为它可以自动学习层级特征。传统人告诉机器耳朵在哪里眼睛在哪里深度学习机器自己发现第一层发现线第二层发现形状第三层发现物体连接到LLM图片学习像素关系LLM学习token之间关系神经网络结构相同。只是输入不同。4. 从RNN到Transformer —— 为什么Attention改变了LLM时代语言模型是什么语言模型其实很早就存在。目标预测下一个词。例如输入我今天去预测学校概率学校 40%公司 20%商场 10%这和LLM一样吗核心思想一样都是预测下一个token。区别模型规模和结构不同。RNN时代RNNRecurrent Neural Network循环神经网络。特点按顺序处理。例如句子我 喜欢 学习 人工智能处理我↓喜欢↓学习↓人工智能每一步保存一个隐藏状态。类似人的短期记忆。RNN的问题问题1长距离信息丢失例如一句话我出生在中国但是后来去了美国现在我说的是____语言。答案中文模型需要记住“中国”。距离很远。RNN容易忘记。问题2无法并行训练RNN必须一个词一个词处理。不能同时处理整句话。导致训练速度慢。Transformer改变了什么2017年论文《Attention Is All You Need》提出Transformer。核心Attention机制。它不再依赖顺序记忆。而是直接建立词与词之间关系。5. Attention机制 —— Transformer理解语言的核心Attention解决的问题一句话每个词应该关注哪些其他词例如小明喜欢吃苹果因为他觉得很好吃。理解“他”需要关注小明理解“好吃”需要关注苹果Query、Key、ValueAttention有三个核心概念Query查询当前词“我需要什么信息”例如当前处理他Query类似我要寻找我的主人是谁Key关键词其他词提供的信息标签。例如小明Key: 我是一个人物苹果Key: 我是一个食物Value内容真正提供的信息。例如小明Value人物实体Attention计算直觉流程当前词他生成Query。然后和所有词的Key比较。得到相关程度例如小明 0.9苹果 0.1银行 0.3然后加权组合Value。得到“他”代表的信息。为什么叫 Attention因为模型学会把注意力放在哪里。类似人阅读看到“他”不会关注“苹果”。而会关注“谁是前面的人”连接LLMGPT生成不是一次生成一句话。而是每个token通过Attention查看上下文。例如生成今天晚上我要吃模型通过Attention关注今天晚上我要预测下一token。6. Token为什么不能直接处理文字因为神经网络本质上处理的是数字。例如一个神经网络可以接收0.23-1.420.87但不能直接把我喜欢人工智能当作数学输入。所以必须经过文字↓数字Token就是这个转换过程中的重要一步。Token到底是什么可以先暂时把 Token 理解成Tokenizer把文本切分后得到的一个个离散单元。例如I love AI可能被切成IloveAI但这不是固定规则。中文我喜欢人工智能也可能被拆成不同形式。甚至英文一个词unbelievable可能被拆成多个Tokenunbelievable所以Token ≠ 单词这是非常重要的。为什么不能简单按“一个汉字一个Token”因为模型需要兼顾中文英文数字标点代码URL特殊符号如果全部规定一个字符 一个Token会导致很多问题。例如transformer一个词可能就需要很多字符。如果一个字符 一个Token那么transformer可能需要11个Token。但如果 tokenizer 学会transformer可能只需要2个Token。这样更加高效。Token实际上是怎么进入模型的这是最重要的流程。假设我喜欢AI经过TokenizerToken AToken BToken C然后每个Token都有一个数字IDToken A → 1523Token B → 4832Token C → 921注意这些数字本身没有语义。例如1523并不代表“我”。它只是词表中的编号。然后才轮到Embedding接下来Token ID↓Embedding↓向量例如1523↓[0.21, -0.33, 0.72, …]这个向量才逐渐承担语义表示的作用。所以把这几个概念分开Token 离散文本单位Token ID Token在词表中的编号Embedding Token对应的向量表示这三个东西千万不要混在一起。Token和Attention到底是什么关系Token是 Attention操作的输入单位之一。例如小明喜欢苹果TokenizerToken1Token2Token3Embedding向量1向量2向量3然后 Attention 才开始计算Token1应该关注谁Token2应该关注谁Token3应该关注谁所以Token↓把语言离散化↓Embedding↓把离散Token变成向量↓Attention↓建立上下文关系一个非常重要的例子假设I am a programmer和我是一名程序员它们表达的意思相近。但是 Token 完全不同。这说明Token本身不等于语义。真正让模型逐渐获得语义表示的是TokenEmbedding大量训练Transformer最后模型才学到programmer和程序员在很多上下文中的关系是相似的。Context Window为什么和Token有关这是一定会遇到的概念。假设一个模型支持100,000 Tokens那么用户输入30,000 Tokens系统上下文20,000 Tokens历史对话10,000 Tokens工具结果30,000 Tokens已经达到90,000 Tokens只剩10,000 Tokens空间。所以LLM的上下文长度本质上是以Token数量来衡量的。这就是为什么以后你做RAG、Agent、长文档处理时经常会碰到Token budgetContext windowToken usageToken为什么还和API费用有关很多LLM API会按照Input TokensOutput Tokens计算使用量。比如输入1000 Tokens输出500 Tokens那么一次请求总共1500 Tokens因此以后开发AI应用时你不仅要考虑“模型能不能回答”。还要考虑“这次请求用了多少Token”现在把整个LLM流程串起来你目前已经学了用户输入↓Tokenizer↓Token↓Token ID↓Embedding↓Transformer↓Attention↓预测下一个Token↓生成新Token↓继续预测↓最终回答这条链非常重要。建议你现在开始把它记熟。因为后面我们所有内容都会围绕这条链展开。7. Embedding —— 数字为什么能够表示“语义”Embedding 到底是什么可以先记住Embedding 是把离散对象映射到连续向量空间的表示。例如猫↓[0.12, -0.35, 0.88, …]狗↓[0.10, -0.31, 0.82, …]两个向量可能比较接近。为什么这很重要因为机器无法直接计算“猫”和“狗”有多相似但可以计算向量A和向量B有多接近例如Embedding(“猫”)Embedding(“狗”)Embedding(“汽车”)然后计算Similarity(Embedding(“猫”),Embedding(“狗”) )这样机器就能进行语义相似度比较。最常见的相似度Cosine Similarity你之后做 RAG 时会经常碰到它。可以暂时把它理解成比较两个向量方向有多接近。例如猫 → A狗 → B汽车 → C可能Similarity(A, B) 0.91Similarity(A, C) 0.18意味着猫 和 狗语义更接近猫 和 汽车语义更远Embedding不是“字典”这个地方很重要。Embedding不是猫 123狗 124那只是 ID。Embedding是猫↓[0.12, 0.43, -0.11, …]这个向量经过训练后包含了大量上下文关系信息。一个非常有意思的现象Embedding空间中可能出现关系国王 —— 男人女人≈王后这不是简单的词典定义。而是模型从大量语言数据中学习到国王男人女人王后之间的关系结构。这就是分布式表示Distributed Representation背后的思想。这和未来 RAG 有什么关系这一步非常重要。假设你有一份知识库knowledge/transformer.mdpython.mdrag.mdagent.md用户问Transformer为什么使用Attention传统关键词搜索可能只找TransformerAttentionEmbedding方法则可以把用户问题Transformer为什么使用Attention转换成Query Vector知识库里的每一段文字也转换成Document Vector然后Query Vector↓Similarity Search↓最相似的知识片段↓交给LLM↓生成回答这就是RAG的核心雏形8. Transformer BlockAttention负责什么Attention主要负责让一个 Token 从其他 Token 获取与自己相关的信息。例如小明把书给小红因为她喜欢阅读。处理“她”时Attention可以让它关注小明小红书喜欢阅读然后把有用的信息聚合过来。所以 Attention 更像信息交换机制。那 FFN 负责什么FFNFeed Forward Network更像拿到 Attention 聚合之后的信息再进行进一步的计算、变换和特征提取。可以简单理解成Attention“我应该从谁那里获取信息”↓FFN“拿到这些信息以后我应该怎么加工”一个生活类比假设一个团队开会。Attention相当于“我需要听谁说话”比如项目经理开发人员产品经理测试人员财务选择性获取信息。FFN相当于“听完这些信息以后我自己进一步分析形成新的判断。”所以Attention 信息交流FFN 信息加工这两个模块承担的职责不同。为什么需要多层一个 Transformer Block输入↓Attention↓FFN↓输出再把它堆起来Block 1↓Block 2↓Block 3↓Block 4↓……↓Block N每一层都可以在前一层的表示基础上继续加工。于是模型可以逐渐形成低层表示↓词之间的简单关系↓语法关系↓语义关系↓复杂上下文关系↓更高级抽象这里再次连接你之前学过的深度网络为什么强因为它可以进行层级表示学习。Transformer只是把这种思想应用到了语言关系上。现在把 Transformer Block 真正拼起来你现在已经学过Token↓Token ID↓Embedding进入 Transformer 后Embedding↓Self-Attention↓FFN↓下一层但真实 Transformer 还多两个重要组件Residual ConnectionLayer Normalization所以一个简化版的 Transformer Block 可以理解成┌──────────────┐ │ │ 输入 ───────→ Attention ───→ │ │ └────────────────────────────┘ ↓ Layer Normalization ↓ FFN ↓ ↑ 输入 ↓ Layer Normalization ↓ 输出不用现在把这个结构完全背下来。目前你只需要记住Attention负责信息交互FFN负责进一步加工Residual帮助保留原始信息LayerNorm帮助稳定训练。现在再把整个 LLM 串起来用户输入↓Tokenizer↓Token IDs↓Embedding↓Transformer Block↓Transformer Block↓Transformer Block↓……↓最终表示↓Logits↓概率分布↓Sampling↓下一个 Token↓继续生成现在你已经知道Token是什么Embedding是什么Attention是什么FFN为什么存在Transformer Block是什么下一步就要解释最后一段“模型到底是怎么决定下一个 Token 的”这会进入Logits → Probability → Temperature → Sampling9. LLM 是如何选择下一个 Token 的Logits 是什么Transformer最后会产生一组Logits你暂时可以把它理解为模型对每个候选 Token 的原始打分。例如火锅 3.2拉面 2.1米饭 1.4汉堡 0.8这些数字不是概率。它们可以是任意实数-3.20.75.810.2Logits → Probability模型需要把这些分数转换成概率。通常会通过Softmax得到火锅 70%拉面 20%米饭 10%这样所有候选 Token 的概率加起来100%最简单的生成方式Greedy DecodingGreedy Decoding永远选择当前概率最高的 Token。例如P(火锅) 70%P(拉面) 20%P(米饭) 10%直接选择火锅下一轮我今天晚上想吃火锅继续预测。Greedy 的问题是什么局部最优不一定等于整体最优。这是一个非常重要的概念。假设第一步A 70%B 30%如果选 A下一步可能只能很差的路径如果选 B下一步可能出现非常好的路径所以当前概率最高的 Token不一定能产生最好的完整回答。这和写程序时的“局部判断”有点类似。SamplingSampling不要永远选最高概率。而是根据概率分布进行采样。例如火锅 70%拉面 20%米饭 10%理论上70% 的机会选火锅。20% 的机会选拉面。10% 的机会选米饭。于是一次火锅另一次拉面再一次火锅这就是为什么同一个问题可能产生不同答案因为同一个模型同一个 Prompt不同 Sampling 结果可能生成不同 Token。这也是为什么Temperature非常重要。Temperature 是什么直觉上Temperature 控制概率分布的“尖锐程度”。Temperature 很低例如Temperature 0.1概率可能变得火锅 97%拉面 2%米饭 1%模型更加倾向于选择最可能的答案。表现稳定保守确定Temperature 很高例如Temperature 1.5概率可能变得更加平均火锅 45%拉面 30%米饭 15%汉堡 10%模型更加随机更加多样什么时候应该低 Temperature例如数据提取从文章中提取姓名和年龄。你希望稳定准确格式一致那么通常希望低随机性。什么时候高一点例如创意写作给我10个科幻小说开头。如果每次都同一种句式同一种结构就很无聊。适当增加Sampling多样性可能更有创造力。但 Temperature 不是“智能程度”非常重要。不要产生Temperature越高模型越聪明这是错误理解。它控制的是生成分布的随机性/平滑程度。Top-k假设火锅 40%拉面 30%米饭 15%汉堡 5%苹果 3%香蕉 2%……如果Top-k 3那么只考虑火锅拉面米饭其他候选先排除。然后在Top 3里面重新采样。Top-pTop-p 的思路稍微不同。它不是固定“取前3个”。而是取累计概率达到某个阈值的候选。例如火锅 40%拉面 30%米饭 15%汉堡 5%如果top_p 0.8那么40% 30% 15% 85%已经超过 80%。于是候选大致限制在火锅拉面米饭然后在里面采样。现在把整个过程串起来文本↓Token↓Embedding↓Transformer↓Attention↓FFN↓Logits↓Softmax↓Probability↓Sampling↓下一个Token再把生成过程循环生成Token↓加入上下文↓再次进入Transformer↓预测下一个Token↓Sampling↓……最终完整回答
返回列表