24小时服务热线

18928448884 / 0755-2592 9959

24h咨询热线:18928448884

干货满满:大神Karpathy两小时AI大课文字版第一弹全新工作流自动把视频转成文章 干货满满:大神Karpathy两小时AI大课文字版第一弹全新工作流自动把视频转成文章 干货满满:大神Karpathy两小时AI大课文字版第一弹全新工作流自动把视频转成文章

自动化定制


    干货满满:大神Karpathy两小时AI大课文字版第一弹全新工作流自动把视频转成文章

    时间: 2024-07-11 13:52:21 |   作者: 自动化定制

  • 机型介绍



  前段时间,AI大神Karpathy上线的AI大课,已经收获了全网15万次播放量。

  那便是,将2小时13分钟的「从头开始构建GPT分词器」的视频,转换为一本书的章节(或者博客文章)形式,专门讨论「分词」。

  更广泛地说,这样的工作流程能应用于任何视频输入,自动生成各种教程的「配套指南」,使其格式更加便于阅读、浏览和搜索。

  Karpathy表示,这是自己手动完成的任务,即观看视频并将其翻译成markdown格式的文章。

  「我只看了大约4分钟的视频(即完成了3%),而这已经用了大约30分钟来写,所以如果能自动完成这样的工作就太好了」。

  遗憾的是,「分词」是目前最领先的大模型中,一个相对复杂和棘手的组成部分,但我们有必要对其进行详细了解。

  因为LLM的许多缺陷可能归咎于神经网络,或其他看似神秘的因素,而这些缺陷实际上都可以追溯到「分词」。

  事实上,在之前的视频《让我们从零开始构建 GPT》中,我已经介绍过分词,但那只是一个格外的简单的字符级版本。

  如果你去Google colab查看那个视频,你会发现我们从训练数据(莎士比亚)开始,它只是Python中的一个大字符串:

  然后根据上面的词汇表,创建用于在单个字符和整数之间进行转换的查找表。此查找表只是一个Python字典:

  一旦我们将一个字符串转换成一个整数序列,我们就会看到每个整数,都被用作可训练参数的二维嵌入的索引。

  因为我们的词汇表大小为 vocab_size=65 ,所以该嵌入表也将有65行:

  在这里,整数从嵌入表中「提取」出一行,这一行就是代表该分词的向量。然后,该向量将作为相应时间步长的输入输入到Transformer。

  但在实践中,在最先进的语言模型中,人们使用更复杂的方案来构建这些表征词汇。

  具体地说,这些方案不是在字符级别上工作,而是在「字符块」级别上工作。构建这些块词汇表的方式是使用字节对编码(BPE)等算法,我们将在下面详细的介绍该算法。

  向下翻到第2.2节「输入表示」,在那里他们描述并激励这个算法。在这一节的末尾,你会看到他们说:

  回想一下,在Transformer的注意力层中,每个token都与序列中之前的有限token列表相关联。

  「分词」是将Python中的原始字符串,转换为token列表的过程,反之亦然。

  还有一个流行的例子可以证明这种抽象的普遍性,如果你也去Llama 2的论文中搜索「token」,你将得到63个匹配结果。

  在我们深入探讨实现的细节之前,让我们简要地说明一下,需要仔细地了解「分词」过程的必要性。

  - 为什么LLM不能执行超简单的字符串处理任务,比如反转字符串?——分词

  - 如果我问LLM关于「SolidGoldMagikarp」的问题,为什么它会崩溃?——分词

  这个Web应用程序的优点是,分词在网络浏览器中实时运行,允许你轻松地在输入端输入一些文本字符串,并在右侧看到分词结果。

  在顶部,你能够正常的看到我们当前正在使用 gpt2 分词器,并能看到,这个示例中粘贴的字符串目前正在分词为 300个token。

  token「is」(注意,这是三个字符,包括前面的空格,这很重要!)是318。

  注意使用空格,因为它在字符串中是绝对存在的,必须与所有其他字符一起分词。但为了清晰可见,在可视化时通常会省略。

  你可以在应用程序底部打开和关闭它的可视化功能。同样,token「at」是379,「the」是262,依此类推。

  在这里,我们看到,分词器对数字的分解可能不一致。比如,数字127是由3个字符组成的token,但数字677是因为有2个token:6(同样,请注意前面的空格)和77。

  它必须在其参数内部和训练过程中,了解这两个token(6和77实际上组合成了数字677)。

  同样,我们能够正常的看到,如果LLM想要预测这个总和的结果是数字804,它必须在两个时间步长内输出:

  请注意,所有这些拆分看起来都是完全任意的。在下面的例子中,我们大家可以看到1275是「12」,然后「75」,6773其实就是三个token「6」、「77」、「3」,而8041是「8」、「041」。

  网友表示,太好了,实际上我更喜欢阅读这些帖子,而不是看视频,更容易把握自己的节奏。

  「感觉很棘手,但使用LangChain可能是可行的。我在想是不是能够使用whisper转录,产生有清晰章节的高级大纲,然后对这些章节块并行处理,在整体提纲的上下文中,专注于各自章节块的详细的细节内容(也为每个并行处理的章节生成配图)。然后再通过LLM把所有生成的参考标记,汇编到文章末尾」。

  本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问。