做外贸哪个网站好,h5网站建设机构,怎么查看WordPress主题HTML,无锡新吴区建设局网站大语言模型基础知识详解
前言
ChatGPT 火了之后#xff0c;大模型这个词天天出现在各种新闻里。但很多人其实不太清楚#xff1a;大模型到底是什么#xff1f;它是怎么理解我们说的话的#xff1f;为什么有时候它会胡说八道#xff1f;这篇文章…大语言模型基础知识详解前言ChatGPT 火了之后大模型这个词天天出现在各种新闻里。但很多人其实不太清楚大模型到底是什么它是怎么理解我们说的话的为什么有时候它会胡说八道这篇文章用最通俗的方式带你搞懂大语言模型的核心原理。个人主页你的主页文章目录大语言模型基础知识详解一、什么是大语言模型二、大模型的大体现在哪里三、Token是什么四、词表是什么五、大模型是怎么工作的六、大模型是怎么预测下一个词的七、大模型是怎么训练出来的八、为什么有些模型中文很差九、大模型的局限性十、总结一、什么是大语言模型1.1 一句话定义大语言模型Large Language Model简称 LLM就是一个用海量文本数据训练出来的超级文字接龙机器。你给它一段话的开头它就能接着往下写。1.2 它能干什么打个比方大模型就像一个读过几乎所有书、看过几乎所有网页的学霸。你问它任何问题它都能根据自己读过的内容给你一个回答。任务类型举例文本生成你说帮我写一封请假邮件它就能写出来问答你问Python 怎么读取文件它告诉你代码翻译你说把这段话翻译成英文它就翻译总结你给它一篇长文章它帮你提炼要点代码生成你描述需求它帮你写代码1.3 它的本质是什么核心原理只有一句话大模型本质上就是在不断预测下一个词是什么你输入今天天气它预测下一个词可能是真好、“不错”、“很热”…然后选一个概率最高的输出。输出真好之后它再预测今天天气真好后面应该接什么可能是适合、“出去”…就这样一个词一个词地往下接直到它觉得该结束了。所以ChatGPT 并不是真的理解你说的话它只是在做一个超级复杂的文字接龙游戏。二、大模型的大体现在哪里大语言模型到底大在哪主要体现在两个方面。2.1 训练数据大大模型需要读海量的文本才能变得聪明。以 GPT-3 为例它的训练数据来源数据来源占比说明网络爬虫数据60%从高质量网站爬取的内容论坛帖子22%Reddit 等论坛的讨论电子书16%各种书籍的电子版维基百科3%英文维基百科全部内容总量大约3000 亿个 Token后面会解释什么是 Token。打个比方如果一本书有 10 万字3000 亿 Token 相当于300 万本书。一个人一辈子也读不完这么多书但大模型在训练时全部读过了。2.2 参数量大参数是大模型的大脑神经元参数越多模型越聪明理论上。OpenAI 各代模型的参数量模型参数量类比GPT-120181.17 亿一个小镇的人口GPT-2201915 亿一个大城市的人口GPT-320201750 亿全球人口的 20 倍GPT-42023估计上万亿难以想象参数到底是什么参数就是一堆浮点数小数比如0.123456、-0.789012。这些数字存储了模型从训练数据中学到的知识。参数和模型大小的关系每个参数通常占 4 字节32位浮点数7B 模型 70 亿参数 ≈ 70亿 × 4 字节 ≈28GB这就是为什么大模型需要高端显卡才能运行常见模型大小标记标记含义参数量7B7 Billion70 亿13B13 Billion130 亿70B70 Billion700 亿175B175 Billion1750 亿2.3 大数据 大参数 通用能力以前的 AI 模型都是专才翻译模型只能翻译情感分析模型只能分析情感问答模型只能问答但大模型是通才一个模型能干所有事情。这就是涌现能力Emergent Abilities——当模型足够大时会突然涌现出一些小模型没有的能力。打个比方小模型像是只会一道菜的厨师大模型像是什么菜都会做的大厨。三、Token是什么3.1 Token 的定义Token 是大模型处理文本的基本单位可以理解为文本碎片。它不是字也不是词而是模型自己定义的一种切分方式。3.2 Token 的例子英文的 Token 切分Hello, how are you? ↓ 切分成 Token [Hello, ,, how, are, you, ?]注意空格也可能是 Token 的一部分。中文的 Token 切分今天天气真好 ↓ 切分成 Token不同模型切法不同 [今天, 天气, 真, 好] # 可能这样 [今, 天, 天, 气, 真, 好] # 也可能这样3.3 为什么要用 Token问题为什么不直接用字或词作为单位答案因为语言太复杂了。如果用字英文 26 个字母太少表达不了复杂语义如果用词词的数量太多几十万个而且新词不断出现Token 是一种折中方案通过算法如 BPE自动学习出一套切分规则既不会太细也不会太粗。3.4 Token 和计费的关系大模型 API 通常按 Token 数量计费模型输入价格输出价格GPT-4$0.03 / 1K tokens$0.06 / 1K tokensGPT-3.5$0.0015 / 1K tokens$0.002 / 1K tokensClaude 3$0.015 / 1K tokens$0.075 / 1K tokens估算规则英文1 个 Token ≈ 4 个字符 ≈ 0.75 个单词中文1 个 Token ≈ 1-2 个汉字3.5 上下文长度上下文长度Context Length是模型能处理的最大 Token 数量。模型上下文长度GPT-3.54K / 16KGPT-48K / 32K / 128KClaude 3200KGemini 1.51M100万打个比方上下文长度就像模型的短期记忆。16K 的模型只能记住最近 16000 个 Token 的内容超过的部分就忘了。这就是为什么和 ChatGPT 聊太久它会忘记之前说过的话。四、词表是什么4.1 词表的定义词表Vocabulary是模型认识的所有 Token 的字典。每个 Token 都有一个唯一的 ID编号模型内部只认 ID不认文字。4.2 词表长什么样{|endoftext|:0,// 特殊符号文本结束|startoftext|:1,// 特殊符号文本开始!:2,\:3,#:4,...hello:15339,world:14957,...今天:38014,天气:45892,程序员:52341,...}4.3 词表大小不同模型的词表大小差异很大模型词表大小GPT-250,257GPT-3/4100,000LLaMA32,000ChatGLM130,000Qwen150,000词表大小的影响词表太小很多词需要拆成多个 Token效率低词表太大模型参数增加训练和推理变慢4.4 特殊 Token词表中有一些特殊的 Token用于控制模型行为Token作用endoftextstartoftextpadunkim_startim_end五、大模型是怎么工作的5.1 完整工作流程当你输入北京的天气时大模型内部发生了什么步骤1分词Tokenization 北京的天气 → [北京, 的, 天气] 步骤2转换为 Token ID [北京, 的, 天气] → [38014, 8024, 45892] 步骤3输入模型计算概率 模型输出词表中每个 Token 的概率 { 怎么样: 0.35, 很好: 0.25, 预报: 0.15, 是: 0.08, ... } 所有概率加起来 1 步骤4选择概率最高的 Token 选中 怎么样概率 0.35 最高 步骤5拼接到输入后面 北京的天气 怎么样 北京的天气怎么样 步骤6重复步骤 3-5 输入 北京的天气怎么样预测下一个词... 继续循环直到输出结束符或达到最大长度 步骤7得到最终结果 北京的天气怎么样今天北京晴气温 15-25 度...5.2 图解工作流程┌─────────────────────────────────────────────────────────────┐ │ 大模型工作流程 │ └─────────────────────────────────────────────────────────────┘ 用户输入: 写一首关于春天的诗 │ ▼ ┌─────────────────────────────────────────┐ │ 分词器Tokenizer │ │ 写一首关于春天的诗 → [ID1, ID2, ...] │ └─────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ 大语言模型LLM │ │ │ │ 输入: [ID1, ID2, ID3, ...] │ │ ↓ │ │ 计算词表中每个词的概率 │ │ ↓ │ │ 输出: 春 (概率最高) │ └─────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ 循环预测 │ │ │ │ 写一首关于春天的诗 春 │ │ ↓ 继续预测 │ │ 写一首关于春天的诗春 风 │ │ ↓ 继续预测 │ │ 写一首关于春天的诗春风 拂 │ │ ↓ ... │ │ 直到输出结束符 │ └─────────────────────────────────────────┘ │ ▼ 最终输出: 春风拂面暖阳照万物复苏百花开...5.3 为什么每次回答不一样你可能发现同样的问题问 ChatGPT 两次回答可能不一样。原因模型不是每次都选概率最高的词而是有一定的随机性。这个随机性由Temperature温度参数控制Temperature效果0完全确定每次选概率最高的词回答固定0.7适度随机回答有变化但不会太离谱1.0较高随机回答更有创意但可能跑题2.0非常随机回答可能很奇怪打个比方Temperature 0像一个严谨的学者每次都给标准答案Temperature 1像一个有创意的作家每次都有新想法六、大模型是怎么预测下一个词的6.1 方法一基于统计最朴素的想法原理统计大量文本中某个词后面最常出现什么词。举个例子假设我们统计了 100 万条句子发现我今天 后面出现的词 - 很开心 → 出现 5000 次 - 去上班 → 出现 3000 次 - 吃火锅 → 出现 2000 次 - 学习了 → 出现 1500 次 ...当用户输入我今天时模型查表发现很开心出现次数最多就输出很开心。问题如果用户输入的内容从来没出现过怎么办比如用户输入我今天和外星人统计表里根本没有这个组合模型就懵了。6.2 方法二基于向量现代大模型的做法核心思想把文字变成数字向量用数学计算代替查表。什么是向量向量就是一组数字比如[0.12, -0.34, 0.56, 0.78, ...]。在大模型中每个 Token 都会被转换成一个几百到几千维的向量。举个例子国王 → [0.82, 0.15, -0.43, 0.67, ...] (假设 4 维) 王后 → [0.79, 0.18, -0.41, 0.65, ...] 男人 → [0.45, 0.32, -0.12, 0.28, ...] 女人 → [0.42, 0.35, -0.10, 0.26, ...]神奇的事情向量之间可以做数学运算而且结果有语义意义国王 - 男人 女人 ≈ 王后 [0.82, 0.15, -0.43, 0.67] # 国王 - [0.45, 0.32, -0.12, 0.28] # 男人 [0.42, 0.35, -0.10, 0.26] # 女人 [0.79, 0.18, -0.41, 0.65] # ≈ 王后这说明向量确实捕捉到了词语的语义关系。预测下一个词的过程1. 把输入 我今天和外星人 转换成向量 → [0.23, -0.45, 0.67, ...] 2. 把词表中每个词也转换成向量 吃饭 → [0.12, -0.34, 0.56, ...] 聊天 → [0.21, -0.43, 0.65, ...] 打架 → [0.45, -0.12, 0.23, ...] ... 3. 计算输入向量和每个词向量的距离 距离越近说明这个词越可能是下一个词 4. 找到距离最近的词输出 假设 聊天 距离最近 → 输出 聊天优势即使我今天和外星人从来没出现过模型也能通过向量计算找到合理的下一个词。6.3 实际大模型更复杂真正的大模型不只是简单的向量计算还包括技术作用Transformer 架构处理序列数据的神经网络结构注意力机制Attention让模型关注输入中最重要的部分多层堆叠GPT-3 有 96 层每层都在提取更高级的特征位置编码让模型知道每个词的位置但核心思想不变把文字变成向量用数学计算预测下一个词。七、大模型是怎么训练出来的7.1 训练的目标训练的目标很简单让模型能够准确预测下一个词。7.2 训练数据现代大模型的训练数据通常在2 万亿 Token 以上。数据来源包括网页内容Common Crawl书籍Books3、Gutenberg代码GitHub论文arXiv维基百科社交媒体…7.3 训练流程以训练程序员写代码为例┌─────────────────────────────────────────────────────────────┐ │ 大模型训练流程 │ └─────────────────────────────────────────────────────────────┘ 训练数据: 程序员写代码 第1轮 ┌─────────────────────────────────────────┐ │ 输入: 程 │ │ 期望输出: 序 │ │ 模型输出: hello随机初始化瞎猜的 │ │ 损失: 很大差得远 │ │ 更新参数让模型下次更可能输出 序 │ └─────────────────────────────────────────┘ 第2轮 ┌─────────────────────────────────────────┐ │ 输入: 程序 │ │ 期望输出: 员 │ │ 模型输出: 设还是不对 │ │ 损失: 较大 │ │ 继续更新参数 │ └─────────────────────────────────────────┘ 第3轮 ┌─────────────────────────────────────────┐ │ 输入: 程序员 │ │ 期望输出: 写 │ │ 模型输出: 写对了 │ │ 损失: 很小 │ │ 参数微调 │ └─────────────────────────────────────────┘ ... 重复几万亿次 ... 最终模型学会了预测下一个词7.4 关键概念损失函数Loss衡量模型预测和正确答案之间的差距。损失越小模型越准确。梯度下降Gradient Descent一种优化算法通过计算损失对参数的导数找到让损失变小的参数更新方向。打个比方损失函数就像考试分数越高越差梯度下降就像根据错题分析找到提分的方法训练就是不断做题、分析、改进的过程7.5 训练成本训练大模型非常昂贵模型估计训练成本GPT-3约 460 万美元GPT-4约 1 亿美元LLaMA 65B约 230 万美元这还不包括研发人员工资、数据收集成本等。八、为什么有些模型中文很差8.1 根本原因词表中中文 Token 太少模型能处理什么语言取决于词表里有什么 Token。举个例子假设一个模型的词表只有[hello, world, the, a, is, ...] // 全是英文当你输入中文你好时模型根本不认识只能把它当作unk未知词处理。8.2 中文 Token 少的后果后果一中文被拆得很碎英文模型处理 hello hello → 1 个 Token 英文模型处理 你好 你好 → 可能被拆成 6 个字节 Token同样的内容中文需要更多 Token导致上下文长度被浪费API 调用费用更高处理速度更慢后果二中文理解能力差词表中中文 Token 少意味着训练时中文数据也少模型对中文的理解自然就差。8.3 中文友好的模型专门为中文优化的模型词表中会包含大量中文 Token模型词表大小中文支持GPT-3.5/4100K一般Claude100K较好ChatGLM130K很好Qwen通义千问150K很好Baichuan64K很好8.4 如何判断模型的中文能力方法一看 Token 数量# 用 tiktoken 库测试importtiktoken enctiktoken.encoding_for_model(gpt-4)text人工智能正在改变世界tokensenc.encode(text)print(fToken 数量:{len(tokens)})print(fTokens:{tokens})如果一句简单的中文被拆成很多 Token说明中文支持不好。方法二直接测试问一些需要中文语言知识的问题成语接龙古诗词补全中文谐音梗九、大模型的局限性了解大模型的原理后我们就能理解它的局限性了。9.1 幻觉Hallucination现象大模型会一本正经地胡说八道编造不存在的事实。原因大模型只是在预测下一个词最可能是什么它并不知道自己说的是真是假。举个例子用户鲁迅和周树人是什么关系 ChatGPT可能的回答 鲁迅和周树人是同时代的两位著名作家他们曾经有过一些学术交流...实际上鲁迅就是周树人但模型不知道这个事实它只是根据概率在接龙。9.2 知识截止日期现象大模型不知道训练数据之后发生的事情。原因模型的知识来自训练数据训练完成后就定格了。模型知识截止日期GPT-3.52021 年 9 月GPT-42023 年 4 月Claude 32024 年初9.3 数学计算能力差现象大模型经常算错数学题。原因大模型是文科生它是通过文本模式匹配来算数学的而不是真的在计算。用户123456 × 789 ? 大模型的思考过程 嗯这个数字看起来像是...97406784 实际答案是 97406784但模型是猜的不是算的对于复杂计算大模型经常出错。9.4 上下文长度限制现象聊天太久模型会忘记之前说过的话。原因模型只能处理有限长度的 Token超出部分会被截断。解决方案使用更长上下文的模型如 Claude 200K使用 RAG检索增强生成技术定期总结对话内容9.5 无法访问实时信息现象大模型不知道今天的天气、最新的新闻。原因大模型是离线训练的不能上网。解决方案使用联网插件如 ChatGPT 的 Browse使用 Function Calling 调用外部 API使用 RAG 检索最新文档9.6 局限性总结局限性原因解决方案幻觉只是概率预测不知真假人工核实、RAG知识过时训练数据有截止日期联网搜索、RAG数学差文本模式匹配不是真计算调用计算器工具忘记上文上下文长度限制长上下文模型、总结无实时信息离线模型不能上网联网插件、API十、总结10.1 核心概念速查表术语含义LLMLarge Language Model大语言模型Token文本片段模型处理的基本单位词表模型认识的所有 Token 的字典参数模型的大脑神经元存储学到的知识上下文长度模型能处理的最大 Token 数量Temperature控制输出随机性的参数幻觉模型编造不存在的事实BBillion10 亿7B 70 亿参数10.2 核心原理一句话大模型本质上就是一个超级复杂的文字接龙机器通过预测下一个词最可能是什么来生成文本。10.3 大模型的能力来源┌─────────────────────────────────────────────────────────────┐ │ 大模型能力三要素 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. 海量训练数据几万亿 Token │ │ → 让模型见多识广 │ │ │ │ 2. 巨大参数量几百亿到上万亿 │ │ → 让模型能记住更多模式 │ │ │ │ 3. 先进的模型架构Transformer 注意力机制 │ │ → 让模型能理解上下文关系 │ │ │ │ 三者缺一不可共同造就了大模型的强大能力 │ │ │ └─────────────────────────────────────────────────────────────┘10.4 常见模型对比模型公司参数量特点GPT-4OpenAI万亿级综合能力最强Claude 3Anthropic未公开长上下文、安全性好GeminiGoogle未公开多模态能力强LLaMA 3Meta8B/70B开源、可本地部署Qwen阿里7B-72B中文能力强、开源ChatGLM智谱6B-130B中文能力强、开源10.5 学习建议先会用再理解原理先用 ChatGPT 等产品感受大模型能做什么理解 Token 概念这是理解大模型的基础了解局限性知道大模型不能做什么避免踩坑关注 Agent 和 RAG这是大模型落地应用的关键技术热门专栏推荐Agent小册Java基础合集Python基础合集Go基础合集大数据合集前端小册数据库合集Redis 合集Spring 全家桶微服务全家桶数据结构与算法合集设计模式小册消息队列合集等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持文章到这里就结束了如果有什么疑问的地方请指出诸佬们一起来评论区一起讨论希望能和诸佬们一起努力今后我们一起观看感谢您的阅读如果帮助到您不妨3连支持一下创造不易您们的支持是我的动力