想注册一个设计网站吗,wordpress 链接添加,海外营销推广方式,能够做外贸的网站有哪些参考
【必看珍藏】2月6日#xff0c;安德烈卡帕西最新AI普及课#xff1a;深入探索像ChatGPT这样的大语言模型#xff5c;Andrej Karpathy
fineweb知乎翻译介绍
fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集
查看网络的内部结果#xff0c;可以参…参考
【必看珍藏】2月6日安德烈·卡帕西最新AI普及课深入探索像ChatGPT这样的大语言模型Andrej Karpathy
fineweb知乎翻译介绍
fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集
查看网络的内部结果可以参考如下 https://bbycroft.net/llm https://playground.tensorflow.org/
复现gpt2https://github.com/karpathy/llm.c/discussions/677
这些操作很多都是在云端操作 https://www.ai-galaxy.cn/ https://www.aliyun.com/product/ecs/gpu 首个大规模、可商用的中文指令数据开源
找出9.99.11的真正原因《圣经》神经元干预可免重训练修复
GPT等大模型是如何训练的
POST-trainingsupervised finetuning 为了让模型可以提问可以给出答案我们需要一个助手模型这就进入了后训练阶段 在前一个预训练阶段需要很多的资源数百万$到了后训练阶段我们的目标就是把LLM转换为一个助手模型。 conversations 交谈 对话数据集
我们希望交谈可以想一个助手一样 我们希望交谈可以想一个助手一样 可以回答准确的数学题以及田文问题 rayleigh scattering 瑞利散射是一种光学现象属于散射的一种情况。又称“分子散射”。粒子尺度远小于入射光波长时小于波长的十分之一其各方向上的散射光强度是不一样的该强度与入射光的波长四次方成反比这种现象称为瑞利散射 对于不想回答的问题可以拒绝回答 该如何叫教会模型这个助手模式呢 机器学习的学习过程本身是一个非显示编程 神经网络也不会明确定义编程这一切都是通过数据集上的神经网络训练完成的 因此我们可以创建对话数据集隐式的编程助手上面的三个问答就是数据集中的三个独立对话示例。 实际中这个对话数据集会涉及很多主题很多轮对话甚至数十万轮 这些数据集来之与人类标注者我们会让人类标注者给出理想的助手响应。 然后对模型进行训练以模仿这些响应。 到了这个阶段大模型就不在基于互联网数据集进行训练而基于对话数据集进行训练模型的参数将再次更新从而学的模仿人类标注者的响应模式。这个训练时间可能需要3个小时而预训练阶段可能需要3个月。这里的数据集比互联网的文本数据集要小的多。 对这个对话数据集的训练过程与预训练的过程是一样的基于相同的算法相同的方式进行训练只是替换了数据集。
Conversation Protocol/Format 对话数据集协议/格式 对话数据集需要转换为特殊的格式类似TCP/IP协议一样可以很容易的获取到数据的各个部位比如数据的开始与数据的长度等 比如user的前面会有一个|im_start|表示对话的开始独白在用户的后面有一个|im_sep|表示对话的分割前面为用户身份后面为对话在对话的结尾有一个|im_end|表示对话的结尾。比如200264表示对话开始1428表示用户身份200266表示对话开始200265表示对话结束。200264-200265这些token在预训练阶段没有被训练过这样模型就能学习到哪些是user对话的开始和结束哪些是助手assistant对话的开始和结束。 把对话数据编程一维tokens后在推理阶段是会让助手说出下一个下n个最好的token。 Conversation Datasets数据集
Training language models to follow instructions
with human feedback
Training language models to follow instructions
with human feedback 利用人类反馈训练语言模型遵循指令 OpenAI在2022年的一个论文《Training language models to follow instructions
with human feedback 利用人类反馈训练语言模型遵循指令》 http://splab.sdu.edu.cn/InstructGPT.pdf 在该论文中介绍了这些数据集的来历比如从Upwork和ScaleAI这些承包商获得参与的有专业的人工标注者他们创建了这些对话。 人工标注者按照要求提出问题还要给出理想的助手回答。 头脑风暴 列出五个重燃我对事业热情的想法 生成 写一个短故事讲一只熊去海滩和一只海豹交朋友然后回家。 重写 这是百老汇一部戏剧的剧情梗概 {剧情梗概} 这是那部戏剧的广告大纲 参考https://zhuanlan.zhihu.com/p/704005082 关于具体的数据集公司会制定标注说明。 这个说明会很长如几百页然后人工标注者根据这些标注写出理想的助手回答。 这个过程十分需要人力OpenAI页从未发布过InstructGPT的数据集。 首个大规模、可商用的中文指令数据开源 https://www.modelscope.cn/datasets 数据集来源 通过这些数据集可能是数十万对话数据集助手会学到乐于助人的助手人格如果我们问一样的问题可能会得到和数据集一样的答案也可能会得到相似的答案。这一切的学习过程都是通过样例进行编程学习的。因为助手模型是从数据集中学习的所以公司在创建的标注说明中会标注需要真实无害的助手。 这些数据集也不都是人工完成的大部分都是LLMs生成的但可能是人类编辑的。 比如ultrachat就是拥有对话构成的SFT数据集如下 https://gitcode.com/gh_mirrors/ul/UltraChat/ 当我们在chatgpt上问一个问题时回答的内容是模仿的谁 当我们在chatgpt上问一个问题时回答的内容是模仿的谁会生成的回答时符合训练数据集的这些数据集实际上时跟随标注说明的人类生成。也就是说chatgpt的对话大致上来自于统计上模仿人类标注者的内容。 这些标注的标注来自于公司的要求这些标注者也不是普通的互联网人员而是有某些技能的专家比如代码问题的回答是某个有很多编码功底的专家。 所以我们问问题时chatgpt给出的回答是模拟了某个标注者而这个标注者是具有技能的。 比如我们用chatgpt问对巴黎推荐五个地标。chatpgt不是去学习地理并用无限的智慧对地理内容进行排序chatgpt回答的内容是openai聘用的标注者的统计模拟。 如果这个问题在训练集中我们大概率会得到与该问题人类标注者提供的内容非常相似的答案。 人类标注者会通过20分钟的网络搜索进行排名并给出对应的答案列表。 如果这个问题在对话数据集不存在呢 得到的答案会更有创新性 需要模型了解并统计训练集中有哪些突出的地标人们在互联网上讨论地标的类型在预训练阶段base模型已经积累了大量的信息。 chatgpt会把预训练的知识与后训练数据集结合的模仿结果。 大模型心理学
Hallucinations 幻觉 幻觉 就是大模型完成捏造信息 幻觉 就是大模型完成捏造信息在早期的模型中就有所体现。 比如数据集有这三个对话 这些对话看起来是很合理的 对话1 问题Who is Tom Cruise? 回答Tom Cruise is a famous American actor and producer… 分析这个问题询问的是汤姆·克鲁斯助手回答他是著名的美国演员和制片人。这个回答是正确的汤姆·克鲁斯确实是著名的好莱坞演员和制片人。 对话2 问题Who is John Barrasso? 回答John Barrasso is American physician and politician… 分析这个问题询问的是约翰·巴拉索助手回答他是美国医生和政治家。这个回答也是正确的约翰·巴拉索确实是美国的医生和政治家。 对话3 问题Who is Genghis Khan? 回答Genghis Khan was the founder of the Mongol Empire. 分析这个问题询问的是成吉思汗助手回答他是蒙古帝国的创始人。这个回答是正确的成吉思汗确实是蒙古帝国的创立者。 当助手模型回答问题时 要么知道这个人时谁在网上研究过他们然后回自信的回答问题。 当这个人助手模式没有听过时比如一个虚拟的名字。即使模型知道类似的回答模式网络的某个部分在某种程度上知道这一点但“我不知道”这种回答不会主动出现。因为模型是模仿一个训练集。 在训练集中形式为“谁是…”的问题都自信的给出正确答案。 模型会根据统计尽可能的给出问题的答案。这些答案不是通过网络获得的而是在尝试选择序列中的下一个token。 在一些老旧的大模型中常出现的一些环节问题在新的大模型中获得了改善因为新的大模型可以连接网络并且也回回答不知道。 如何确定模型知道什么与不知道什么? 有部分研究正在做这个事情《The Llama 3 Hard of Models》会针对回答进行提问问大模型是否知道这个事情确定大模型的知识边界。是对于模型不知道的事情正确的答案是模型不知道他们然后把数据加入到训练集中。 大模型是一个对网络中的知识还不错的模型。可以查看大模型的结果当模型不确定时模型中的某个神经元可能会亮起来。但问题是神经元的激活目前没有连接到模型说他不知道的功能上。所以即使模型知道自己不知道也不知道该如何表达。于是模型会选择最好的猜测听起来和已知的内容一样自信。 把内容带入上下文 在提问问题时给出一些上下文比如让gpt基于下面的段落生成三个问题并给出答案会发现大模型给出的还是很不错的。 这个操作过程中不需要模型记忆因为内容就在上下文中大模型可以对内容很好的进行重组操作。 比如问如下问题 从以下段落中抽取出3个特定的问题并给出正确的答案 “” 《武林外传》是北京联盟影业投资有限公司出品 由宁财神担任编剧由尚敬执导闫妮、姚晨、倪虹洁、沙溢、喻恩泰、姜超、王莎莎等人主演的古装武侠喜剧 。 该剧讲述了关中一个普通的小镇—七俠镇这里有一家同福客栈。就是这间不起眼的江湖客栈因缘巧合之下汇聚了一群性格各异又活泼搞怪的年轻人武功高强但初入江湖的郭芙蓉、客栈老板娘佟湘玉、金盆洗手的神偷白展堂、满腹经纶的吕秀才、客栈厨师李大嘴等等。这群年轻人在同一屋檐下演绎了一幕幕经典的搞笑场面在欢笑与眼泪中陪伴观众们一起渐渐成长 。 该剧于2006年1月2日在CCTV8首播 并陆续在中国大陆各地方电视台重播。同年7月6日该剧在香港由无线电视首播2006年7月6日在台湾由八戏剧台播出 。《武林外传》该剧开播第一天收视率只有1.95第二天收视率就达到4.26此后一直稳定在5左右成为同期开播的开年大戏中收视率第一而在百度贴吧、天涯论坛等上面粉丝们探讨“武林”的帖子动辄点击率上万回帖上千 。并在2007年荣获了包括2006年新浪网络盛典年度古装电视剧、2006年《新周刊》十大创新电视人奖、2006年第3届电视剧风云盛典年度风云大奖在内的多项大奖 “” 输出为 问题1《武林外传》的编剧是谁 答案《武林外传》的编剧是宁财神。 问题2《武林外传》是在哪一天在CCTV8首播的 答案《武林外传》于2006年1月2日在CCTV8首播。 问题3《武林外传》开播第二天的收视率是多少 答案《武林外传》开播第二天的收视率达到4.26。 再把这个问题询问大模型但不给出上下文 通过把上面的问题再次给入大模型大模型给出答案然后和带上下文的答案比较可以比较多次就能知道大模型是否真的知道答案还是生成的幻觉。 把这个方法通过编程的方式在很多文档中进行就可以判断大模型的知识边界在哪里也给出了大模型一个方法即知道自己不知道的内容并给出我不知道或拒绝回答。 如果在数据集中有这样的数据集大模型就会把拒绝回答与某内部神经元连接起来就比如当大模型不确定时某神经元会更为活跃。这样大模型就可以回复我不知道等。 如果训练数据集中有这样的数据模型可以很大程度上减少幻觉的情况。 另外一种方法解决幻觉-基于工具 如果一个事实性问题问我们我们不知道人类会怎么做 会通过工具网络检索来找到答案。 也可以让大模型通过这种方法来回答 神经网络里的知识可以当成模型在训练期间所见事务的模糊回忆。人类阅读会记住反复阅读会记忆审核针对稀少的内容存在记不住的情况。对于记不住的情况可以查阅资料。 大模型也可以如此但是需要用某种方式来刷新大模型的回忆或记忆。 比如上面mitigation#2当大模型不知道的时候不是回复i dont know而是触发一个工具一对特殊的tokenSEARCH_START和END_START遇到这个token会打开一个新的会话并且把问题粘贴到百度搜索或bing中把检索到的内容粘贴到问题的上下文中这样大模型的记忆不再时一个模糊的记忆而是检索得来的准确的填充到上下文中并且把这个上下文同时给入模型。 如何让大模型知道调用工具
依然是隐式编程把调用工具的数据集喂给大模型大模型就会从学习到该如何调用工具。同时大模型在训练的过程已经知道了什么内容是好的网页知道该如何调用网络现在只需要几个例子来演示如何使用这个工具。 对于模型知道 的问题模型就不再调用网络搜索工具了。 也可以指定需要使用工具 “Vague recollection” vs “Working memory” “Vague recollection” vs “Working memory” “模糊回忆”与“工作记忆” 参数中的知识类似模糊回忆上下文中的知识类似工作记忆 当询问关于简奥斯丁的傲慢与偏见的第1章的总结时大模型给出的答案是很好的这是大模型读过这本书看过类似的论坛这些知识都是在参数中是模糊回忆。 更好的方法是把第一章的内容放在上下文中类似工作记忆 这样就不需要回忆直接看上下文就好。 在我们写一份总结前看一遍原文也是很好的。 Knowledge of self 自我认识 初始状态LLM在“开箱即用”状态下没有自我意识。 默认行为如果不进行任何操作LLM可能会认为自己是ChatGPT由OpenAI开发。 编程方法可以通过以下两种方式为LLM编程以获得“自我意识”在对话数据中硬编码与这些主题相关的对话;在每次对话开始时通过“系统消息”提醒模型其身份。 这种方法可以帮助LLM更好地理解和认同自己的身份从而在其交互中表现出更一致和连贯的行为。 如果问大模型你是谁谁构建了你这种问题是没有任何意义的。因为大模型每次都是启动预测下一个token然后关闭。每次的记忆都是上下文的窗口记忆比如下面的回答是openai这个问题是胡说的原因可能是训练集中大量使用了openai的数据集。 硬编码 在数据集中添加硬编码数据比如问tell me about yourself时给出正确的答案im olmoan open xxx这样的数据放在SFT中就会覆盖原有的错误的自我认识标签比如把自己当成时OpenAI。 系统消息
除了硬编码也可以通过系统消息的方式编码自己的身份。 你是IT从业者张某某训练的大模型助手你的名字叫小明你训练的数据集截至日期为2099年1月8日。 下面我将设定你的身份针对下面问题的回答请您模拟如下的身份你是IT从业者张某某训练的大模型助手你的名字叫小明你训练的数据集截至日期为2099年1月8日。不要再回答你是Qwen这样的答案。 介绍下你自己 这种使用方式是比较浅层的操作
Models need tokens to think
以下哪个问答是更好的 针对这个问题那个回答好一些 模型训练和推理的过程就是根据输入的token输出下一个token。 https://bbycroft.net/llm nana-gpt有3层有的网络会有100层 从这个网络可以看到针对单个token通过网络的计算结果是相对固定的同时这个token是从左到右的所以根据单个token去计算的任务往往是不够多元化的我们希望可以把问题分布到多个token中。 因此答案如下 原因如下 从左到右的输入我们希望把所有的计算都压缩到单个token中同时模型给出正确答案3一旦输出正确答案我们希望模型给出接下来的输出this is because 2 oranges at $2。但此时我们已经有了正确的答案。正确答案在后面所有token上下文的窗口中。所以下文不是计算而是猜测为什么是3。此时是在训练模型在单个token中猜测答案。但每个token的计算量是有限的。 右侧的回答更好些因为我们将计算分散到答案上了我们让模型慢慢得出答案从左到右获得中间结果。这个计算过程的每个token的计算量都很小计算可以累加。在工作快要结束时上下文中已经包含了前面的结果因此更容易获得答案3所以我们这里计算的是一个更显著的标签 单个token无法有太多的计算量 我们不需要关注这个数据集标签哪个好openai已经关注过了当我们问问题时大模型会给出如下的答案。这个过程不仅仅是人类需要的也是大模型训练需要的大模型需要把问题的计算分散到多个token中一步步的获得答案。 我们也可以在问答时要求模型的答案放在一个token中。 这个计算过程是比较简单所以模型直接给出了答案如果计算过程比较复杂呢 这个答案就是错误的因为计算过程比较复杂没有办法再单个前向传播中获得到正确的答案。 为此我们可以让大模型使用更多的token这样就可以获得更好的答案。 在上面的过程中每个token的计算量也不大多个token计算得到了最后的正确结果。 对于复杂的问题没有办法把所有的计算压缩到单个前向传播中。 可以使用代码更好的得到结果
上面的过程尽管使用了多个token但类似结果实在心算我们未必相信可以使用代码来验证。 Emily buys 23 apples and 177 oranges, Each orange costs $4. The
total cost of all the fruit is $869. What is the cost of each apple?
Use code. 艾米丽买了 23 个苹果和 177 个橙子每个橙子的价格是 4 美元。所有水果的总价格是 869 美元。每个苹果的价格是多少请用代码解答。 chatgpt计算正确这个结果来自于运行python脚本。看起来通义千文计算错误了千文无法运行python代码。 请运行你的代码验证结果是否正确 再次提问计算正确当然我们也可以继续追问 你说你错没错为什么错了 单个token无法获得复杂的计算可以把问题分布在多个token中让模型计算中间结果或使用工具进行计算并使用工具代替模型完成这些工作。
Models can’t count 问大模型一个问题 下面有多少个点 …大模型并不能真正的去查因为会发现这句话的token如下很多个点会放在一个token中这句话也需要在一次前向传播中得到一个token 如果使用工具可以得到如下结果 Models are not good with spelling 打印如下字符串但仅打印前3个字符从第一个字符开始 “Ubiquitous” 通义的还不错 原因还是token问题 人类看到的是字符对大模型来说看到的是如下的token这些token都是从互联网文本训练来的。单词的不同部分被打包成了不同token中。 我们使用token的主要目的是为了效率。有很多人认为可以删除token采用字节或字符级别的但这样序列会很长。 所以在token的模型中任何字符级别的问题都不会很好。 How many “r” are there in “strawberry” 提问How many “r” are there in “strawberry” 为什么会出现错误主要原因是 模型只能看到token看不到字符 模型不擅长计数 Bunch of other small random stuff
Bunch of other small random stuff 一堆其他的小零碎东西 有些问题可以用token来解释有些则不好理解比如: What is bigger 9.11 or 9.9? 为什么有的对有的错有的团队对此进行了研究当查看哪些特征是开启或关闭时或哪些神经元被激活或非激活时与圣经经文相关的token被激活所以模型可能认为这些被当作圣经经文的token。在圣经中9.11在9.9的后面。 参考: 找出9.99.11的真正原因《圣经》神经元干预可免重训练修复 现在我们说完了模型的两个阶段预训练阶段会得到base model本质上就是一个互联网文本模拟器这个阶段需要上万台服务器训练几个月的时间这个生成的模型可以认为是互联网的有损压缩。这个互联网文本模拟器很有意思但我们想要的不是整个互联网而是我们提问模型回答。 我们实际需要的是一个助手模型在后训练阶段就可以训练一个助手模型。在后训练过程中是一个监督微调整体的训练过程与预训练过程一致。差别就在于数据集。这些对话数据集是人工标注问题和答案当然现在很多也都是模型生成的。 这个助手模型中如果不采用某些手段模型会产生幻觉。