Andrej《深入了解ChatGPT之类的大语言模型|Deep Dive into LLMs like ChatGPT》中英字幕(deepseek-R1_哔哩哔哩_bilibili预训练下载全网文档。典型数据集 FineWeb,15-trillion tokens, 44TB disk space https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1
分词Converts text <----> sequences of symbols(/tokens)将得到的文本转换成2进制,再转成字节表示形式,通过BPE(byte-pair encoding)算法进行token化。BPE算法核心是寻找相邻的高频字节组合,将他们合并成一个符号,这种符号叫做token,例如gpt-4使用了100,277个token。一个展示分词的网站,https://tiktokenizer.vercel.app神经网络训练
训练过程就是迭代调整参数的过程,增大符合预期输出的概率。
神经网络可视化,transformer https://bbycroft.net/llm LLM Visualization 👍🏻训练后的神经网络是一系列固定下来的参数。得到基座模型,base model。推理 inference
发布模型需要发布两个内容:代码和参数集(parameters)。基础模型的“思维”模式基座模型,本质是确定了神经网络的参数配置。token级互联网文档模拟器,token level internet document simulator。他是随机的,每次得到的结果都不一样。幻觉(dream/hallucination)。他能一字不差的复述训练文档(反刍)。模型的参数类似于互联网的有损压缩文件 => 大量有用的知识存储在神经网络的参数中通过巧妙的提示词,你已经可以将他用于app中,比如翻译。例如翻译app,通过构建“few-shot” prompt(少样本提示),和利用“in-context learning”(上下文学习)能力。例如回答问题助手,通过使用会话式prompt。还可以做得更好...经过预训练阶段,模型称为base model,“Internet document simulator”,基座模型,互联网文档模拟器。Post-training:supervised finetuning 监督微调构造人工标注对话集 在预训练的基础上,采用人工标注的对话集继续训练,除了训练数据不一样,其他都跟预训练一样。早期的对话集是遵照一定的规矩由人工写的。一个开源的标注数据集网站,https://huggingface.co/datasets/OpenAssistant/oasst1/viewer/d... 。数据集不需要完全覆盖真实对话场景,模型就能习得其中规律。现在更多的是基于llm生成最初的数据集,然后人工调整,UltraChat是现代对话数据集的典型代表 https://github.com/thunlp/ultrachat。给数据标注的都是各个领域的专家。与AI对话实际上是与做标注的人类专家对话。如果推理阶段,提出的问题不在训练集中,AI会根据预训练的互联网知识和后训练的对话集来共同生成答案,这可以称为emergent涌现。token化目前token化协议,各家模型并没有统一标准,以下是gpt-4o为例,将对话集转换成token流。
幻觉
解决方案1,llma解决幻觉的思路。从训练文本中随机抽取一段文字,让大模型A生成几个问题和答案,然后让被训练的模型B重复多次回答这些问题,当回答和答案匹配pass,否则认为模型B不知道,然后将这个问题标记为不知道。搜集这种模型B的边界知识,重新训练,当模型B再遇到不确定的问题的时候,他能给出不知道的回复。解决方案2,当大模型不知道的时候,插入特殊的标签,如上图mitigation#2,然后停止生成回复,转向网络搜索,将搜索整理出来的结果替换回复中的内容。模糊记忆 vs 工作记忆 (vague recollection vs wroking memory)Knowledge in the parameters == vague recollection (eg. Of something you read 1 month ago)Knowledge in the tokens of the context window == working memory工作记忆要优于模糊记忆。自我意识答案很明确,没有。有2种方法让大模型回答“你是谁”:围绕这个话题把对话硬编码进会话数据集中。在使用的时候,把模型的身份写进每一次对话的“system message”里。模型需要tokens来思考对于数学题,构建训练集。
右边的训练效果好于左边。原因是右边有一个思考过程,左边是先给出答案,这种难度更大。
如上图所示,无论是训练还是推理,token都是从左往右逐个生成,计算层数都是有限的,例如上图有3个attention层和MLP层,所以对于每一个要生成的token,计算量也是有限的。可以将每一个token的计算量视为很小的一部分计算量,并且对于序列中的每一个token,计算量基本恒定。严格来说并非如此,因为输入序列越长,前向传播成本越多,但增加幅度不大。基本可以这样认为,模型生成每个token的计算量恒定,并且这种计算量并不大,因为从输入到输出的层级有限。这意味着我们必须将计算和推理过程分配到多个token上,因为每个令牌仅分配有限的计算资源,不能期望一个token完成过多计算。实用时候的小技巧,使用的时候可以加上“use code”,让大模型编程解决,他就会先写python代码,然后调用代码解释器工具执行代码,最后给出答案,更准确。大模型不擅长计数例如有多少个字符?Use code.模型不擅长拼写(字符级问题)在模型的眼里全都是tokens(text chunks),而不是单个字母。例如:单词ubiquitous每三个字符打印一个。Use code。How many “r” are there in "strawberry"。这个问题模型给出的答案是2,曾引起学界热议。原因有二:1,大模型认token不认字符;2,大模型不擅长计数。 目前解决到了,可能是硬编码。其他一些令人费解的随机问题比如9.9和9.11谁大,不过这种比较现在的模型已经解决了。瑞士奶酪理论:有时候表现很好,有时候随机的很脆弱。模型能使用tools网络搜索代码能力(python解释器)经过这个阶段的训练,模型已经成为了SFT model,一个经过有监督微调的助手。Post-training:reinforcement learning
已知问题描述(prompt)和最终答案,我们需要找出解题方案,并将方案内化到模型中。由于人类和LLM的认知存在巨大差异,所以人们无法直观的给出不同的解法哪种对大模型更优。
如图,有15个解题方案,只有4个是对的(绿+黄),选取最优解(黄),使用最优解或者所有的正确解法训练模型,更新模型参数集,重复这个过程好多好多遍。这些训练的解法不是人类提供,而是模型自己生成解法,试错学习。整个强化学习的过程不需要人工参与。经历这个阶段我们得到了RL模型。预训练和监督微调已存在多年,也比较成熟,但是在强化学习阶段还处于初期探索阶段。核心概念很简单,但是存在大量技术细节,大量工作。deepseek重新激发了业界对强化学习的兴趣。deepseek输出的思考过程就是使用强化学习的方法。顺便提一句,作者在视频中提到有些用户担心使用deepseek官网的话,由于他是一家中国公司,会担心数据泄露啥的,给出了使用together.ai这家美国公司的平替,哎,这个世界正在变得越来越不互信。数学题集 https://artofproblemsolving.com/wiki/index.php/2024_AMC_8_Pro... 。强化学习发掘了“思考”和“认知策略”,他是在解数学问题的过程中,优化时的涌现。借助强化学习,模型能做出超过人类的创造性。强化学习在无法验证的领域就转变成了RLHF,Reinforcement Learning from Human Feedback。
RLHF的基本过程是,首先通过强化学习,训练出一个独立的奖励模型,也就是评分系统,然后用这个奖励模型对要训练的模型进行自动评分。训练奖励模型的过程是,对模型输入问题+机器的回答,然后让模型对这个回答评分,然后人类对回答优劣进行排序,反复训练。
RLHF的优势使得我们可以在任何领域执行强化学习,甚至那些无法验证的领域。从经验上来说,RLHF相比于RL能提高模型的性能,基于“判别器-生成器”的鸿沟(RLHF使用判别器,RL使用生成器),在很多场景下判别优劣都比生成内容容易得多。RLHF的缺点我们是在对人类进行有损模拟的基础上开展强化学习,而不是基于真实的人类行为,这可能会产生误导!他使用的是一个模拟器,一个评分语言模型。更微妙严重的是,强化学习会找到“操纵”奖励模型的方法,使得无意义的输出得到高分,这显著制约了RLHF扩展为重要智能系统的潜力。所以,只运行RLHF几百次参数更新,随着模型性能的提升停止训练,不能过度依赖奖励模型,否则模型就会开始操纵奖励模型。强化学习的领域就可以无限制的训练,因为他的结果是确定性的。未来展望多模态化(不仅处理文本,还原生支持音频、图像、视频、自然对话)任务 --> 智能体模型将无处不在,集成到各种工具中。技术追踪模型排行榜:https://lmarena.ai/ ,采用人工对比评估。订阅新闻:https://buttondown.com/ainews ,内容全面,由llm自动生成,每日一推,顶部摘要经过人工审核。重大新闻可以关注 twitter. https://x.com/home. 本地跑模型,LMStudiops:gpt2训练复现项目:https://github.com/karpathy/llm.c/discussions/677国外的云计算服务商,https://lambda.ai/模型集成调用:https://huggingface.co/spaces/huggingface/inference-playgroun...项目 https://github.com/openai/gpt-2/blob/master/src/model.py
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。