当前位置: 首页 > article >正文

深入了解ChatGPT之类的大语言模型笔记

深入了解ChatGPT之类的大语言模型笔记

本篇是 Andrej Karpathy 的演讲 “Deep Dive into LLMs like ChatGPT” 的笔记。

Andrej Karpathy 是一位在机器学习和人工智能领域,尤其是深度学习和计算机视觉方面非常知名的专家。他曾在斯坦福大学获得博士学位,在那里他的研究工作集中在开发用于理解视觉世界的深度神经网络。Karpathy 还是 ConvNetJS 的创建者,这是一个用于浏览器中进行深度学习的库。

Andrej Karpathy 最为人知的角色之一是他在特斯拉(Tesla, Inc.)担任人工智能与Autopilot Vision部门的高级主管,致力于自动驾驶技术的发展。此外,他也是一位活跃的研究人员,对开源社区做出了巨大贡献,并通过各种平台分享了他的知识和见解,包括在Coursera上教授由吴恩达(Andrew Ng)发起的《深度学习专项课程》系列讲座。

深入了解ChatGPT之类的大语言模型|Deep Dive into LLMs like ChatGPT

演讲目的

  • 理解语言大模型(LLM)工具本质
  • 完整解析 LLM 的构建过程

构建过程

构建阶段

LLM 的构建,需要经历几个阶段:

  • Pre-training 阶段:产生基础模型(互联网文档模拟器)
  • supervised-trianing(监督微调):让模型学会对话,回答问题
  • reinforcement learning(强化学习)

其中 supervised 和 reinforcement 训练都属于后训练

Pre-training 阶段

下载和处理Internet数据 -> 分词/标记化(Tokenization)-> 神经网络训练(neural network training)

下载和处理 Internet 数据

获得大量高质量的文档组成语料库,然后使用这些文档来训练模型。

  • 高质量
  • 多样性
  • 大量

文本数据集例子:FineWeb

https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1

15万亿个 token,44TB 的文本数据,包含 1000 个不同的语言。

大的 AI 厂商都有自己的内部数据集。

  • CommonCrowl
    common crawl(CC)从2007年起持续爬取互联网,大约每1到两个月爬取并发布一次数据,数据大小大约是 200 - 400TiB。(TB 1040)。FineWeb 是基于 CommonCrowl 的数据集。
具体过程

在这里插入图片描述

URL filitering -> Text extraction -> Language Filtering -> Gopher Flitering -> Minhash deduplication -> C4 Filters -> Custom Filters -> PII Removal

  • URL filitering:用黑名单滤除不需要的网站信息(恶意、垃圾、营销…)
  • Text extraction:从网页中精准提取出高质量文本数据(不含html标签,导航等信息)
  • Language Filtering:过滤掉非目标语言的文本
  • PII Removal:去除个人身份信息

最终得到数据集示例:

https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu

符号/分词/标记化(Tokenization)

本质上,Token 化是对文本流的重编码。所谓文本流,就是一个一维的字符序列,如果进行展开,则是一维的01串(原始比特流)。

没有编码的文本就是纯文本格式的文本,重编码的动机是:

  • 数据量太大,计算开销太大
  • 从统计上,一些连续的字符会有较大的概率重复出现,反之,一些字符组合出现的概率较小

这样,通过算法重编码,不仅可以体现统计规律,而且可以压缩数据。

因此,我们需要的编码方案是:更多的符号和更短的文本流序列。就好比我们增加英文字符的数量,从而使得英文文本流的长度得以缩短。

具体的符号/分词/标记化算法要点是:

  • 所有的英文字符加入符号表
  • 用BPE算法,将高频出现的连续符号对定义为新符号,加入符号表,反复迭代,扩展符号表
  • 经验上,符号表大小在 10 万个符号效果较好
    • gpt4 是 100,277个符号

符号化演示:

https://tiktokenizer.vercel.app/

神经网络训练(neural network training)

现在我们有了一个用符号表(token表)里面的符号(token)表示的token流,它是由原来的文本流经过符号/分词/标记化得到的。

从该流中,任意获取一串连续的token(任意获取一个窗口的连续token),窗口的最大长度可以任意,实操是通常在 8000 - 16000 之间,因为太长计算开销会显著增加。设获得的 token 如下:

t 1 , t 2 , . . . , t i t_1,t_2,...,t_i t1,t2,...,ti

其中,i 是小于窗口最大长度的任意值,我们称这个序列为 Context,

则,我们训练目标是,让神经网络尽量精确地预测下一个出现的token: t i + 1 t_{i+1} ti+1
在这里插入图片描述

如上图显示了一个 4 个token的序列,作为输入ÿ


http://www.kler.cn/a/614896.html

相关文章:

  • 使用爬虫按图搜索1688商品(拍立淘)
  • 开源的CMS建站系统可以随便用吗?有什么需要注意的?
  • Linux进程管理之进程的概念、进程列表和详细的查看、进程各状态的含义
  • MOSN(Modular Open Smart Network)-06-MOSN 多协议机制解析
  • conda装的R不能在Rstudio里装R包
  • shell脚本--MySQL简单调用
  • UI产品经理基础(四):用价值链视角来分析项目需求
  • JVM考古现场(十三):混沌重启——从量子永生到宇宙热寂的终极编译
  • 批量合并 PDF 文档,支持合并成单个文档,也支持按文件夹合并 PDF 文档
  • Spring AI Alibaba 实战:集成 OpenManus 实现智能体应用开发
  • 软件测试之接口测试
  • 【最后203篇系列】025 FastAPI+Celery
  • 企业级知识库建设:自建与开源产品集成的全景解析 —— 产品经理、CTO 与 CDO 的深度对话
  • python纯终端实现图片查看器(全彩)(windows)
  • 数据化管理(一)---什么是数据化管理
  • 【Linux】常见信号 + 进程和作业
  • 【弹性计算】异构计算云服务和 AI 加速器(五):EAIS AI 加速器
  • Apache Iceberg 解析,一文了解Iceberg定义、应用及未来发展
  • 【SDMs分析1】基于ENMTools R包的生态位分化分析和图像绘制(identity.test())
  • 全局思维与系统思考