2月20日,Karpathy发布了一部详尽的 YouTube 视频,从头开始构建 GPT-3 Tokenizer。
3月4日,Emmanuel Ameisen 和 Erik Schluntz 接受了 Karpathy 的挑战,将视频转换为博客与大语言模型,并使用 Claude-3 将同一 GPT-3 Tokenizer 视频制作成了一篇博客。
-> 在这里找到博客。
今天,我将进一步迈出这一步。
我正在与 Lightning AI 合作,帮助人们通过 Lightning Studios 从任何 YouTube 视频创建内容生成机器!
开始吧!在下方创建您自己的 ↓
本文您将学到以下内容:
-
如何使用 PyTube 和 Claude-3 提取任何 YouTube 视频的文本 - 完整代码实现
-
如何无缝构建任何语音到文本大语言模型产品,并大幅增加内容
P1:好的,给我看看这个东西是如何工作的!
这个notebook提供了一个基准,以重现 Claude-3 对 Karpathy 的视频教程转换为博客文章的解决方案。
好的,这是逐步的工作方式:
-
获取 Claude-3 的 API 密钥并初始化 Anthropic 客户端
-
下载 YouTube 视频和转录
-
初始化 Whisper 模型进行语音到文本转换
-
将视频分割为文本 + 截图对
-
应用 Claude-3 填充博客内容
步骤 1:获取 Claude-3 的 API 密钥并初始化 Anthropic 客户端
从 Anthropic AI 的官方网站获取 API 密钥,以使用三个可用模型之一运行演示。
步骤 2:下载 YouTube 视频和转录
使用 Python 中的 YT 的 pytube 库,我们将首先下载视频以及我们稍后将需要的音频流 Whisper。
步骤 3:初始化 Whisper 模型进行语音到文本转换
我们从 faster_whisper import WhisperModel 导入 WhisperModel 来将 YT 视频的内容转录为文本段。
步骤 4:将视频分割为文本 + 截图对
这里是不那么有趣的部分。我们需要从 pytube + Whisper 分别加载视频和文本。为此,我们应该通过视频章节来最好地完成视频的分割。
步骤 5:应用 Claude-3 填充博客内容
哈!很酷。现在,我们可以将任何 YouTube 视频分割为包含视频和文本的章节,并且我们可以对其应用大语言模型语义。让我们首先看一下 Claude-3 模型的提示。
prompt_instructions = f"""
<instructions>
您已经收到了不同时间戳的视频图像,后跟 <transcript> 中的音频转录
转录是由 AI 语音识别工具生成的,可能包含一些错误/不通顺
您的任务是将转录转换为一个 markdown 博客文章
这个转录很嘈杂。请根据以下准则重写它:
- 输出有效的 markdown
- 在适当的地方插入章节标题和其他格式
- 您只收到了转录的一部分,所以不要包括引言或结论段落。只包括转录中讨论的主要主题
- 使用样式使图像、文本、代码、引用和页面布局和边距看起来像典型的博客文章或教科书
- 删除任何口头习惯用语
- 如果有冗余信息,请只呈现一次
- 保持对话内容以转录的风格。包括标题以使叙述结构更易于跟随
- 转录包含太多图像,因此您应该只包括最重要的 1-2 张图像在您的输出中
- 选择提供与转录相关的插图
- 更喜欢包含显示完整代码的图像,而不是正在进行中的代码
- 在相关时转录重要的代码片段和其他有价值的文本
- 如果图像有助于说明转录的某个部分,请包含它
- 要包含图像,请插入一个标签,其中包含 <img src="xxxxx.jpg"/>,其中 xxxxx 被上面插入的确切图像时间戳替换
- 不要添加任何多余的信息:只包括转录或图像中提到的内容
您的最终输出应适合包含在教科书中。
</instructions>
"""
最终应用于每个片段的循环迭代如下。
... 这让我们得到了类似下面这样的博客文章。太酷了!
构建任何视频到文本大语言模型产品
好的,好的。拥有能够:
-
以任何 YouTube 视频为输入
-
创建章节列表
-
应用 Claude-3 创建 Markdown
... 真是太棒了。而且还是自动的。
那么,如何从这里构建任何视频到文本大语言模型产品呢?简单!您改变提示。
如果是博客,为什么不是内容?这是如何实现的:
我们将使用提示工程来使用 AI 自动创建任何内容。这是我们创建博客的初始提示。
prompt_instructions = f"""
<instructions>
您已经收到了不同时间戳的视频图像,后跟 <transcript> 中的音频转录
转录是由 AI 语音识别工具生成的,可能包含一些错误/不通顺
您的任务是将转录转换为一个 markdown 博客文章
这个转录很嘈杂。您的任务是创建有效的 Twitter/LinkedIn 帖子,不超过 200 个字符。简短的快速句子和学习。
- 输出有效的 markdown
- 在适当的地方插入章节标题和其他格式
- 您只收到了转录的一部分,所以不要包括引言或结论段落。只包括转录中讨论的主要主题
- 使用样式使图像、文本、代码、引用和页面布局和边距看起来像典型的博客文章或教科书
- 删除任何口头习惯用语
- 如果有冗余信息,请只呈现一次
- 保持对话内容以转录的风格。包括标题以使叙述结构更易于跟随
- 选择提供与转录相关的插图
- 更喜欢包含显示完整代码的图像,而不是正在进行中的代码
- 在相关时转录重要的代码片段和其他有价值的文本
- 不要添加任何多余的信息:只包括转录或图像中提到的内容
您的最终输出应适合包含在教科书中。
</instructions>
"""
让我们调整这个提示,直接从 YouTube 视频中产生内容。
prompt_instructions = f"""
<instructions>
您已经收到了不同时间戳的视频图像,后跟 <transcript> 中的音频转录
转录是由 AI 语音识别工具生成的,可能包含一些错误/不通顺
这个转录很嘈杂。您的任务是创建有效的 Twitter/LinkedIn 帖子,不超过 200 个字符。简短的快速句子和学习。
- 输出有效的 markdown
- 在适当的地方插入章节标题和其他格式
- 您只收到了转录的一部分,所以不要包括引言或结论段落。只包括转录中讨论的主要主题
- 使用样式使图像、文本、代码、引用和页面布局和边距看起来像典型的博客文章或教科书
- 删除任何口头习惯用语
- 如果有冗余信息,请只呈现一次
- 保持对话内容以转录的风格。包括标题以使叙述结构更易于跟随
- 选择提供与转录相关的插图
- 更喜欢包含显示完整代码的图像,而不是正在进行中的代码
- 在相关时转录重要的代码片段和其他有价值的文本
- 不要添加任何多余的信息:只包括转录或图像中提到的内容
您的最终输出应适合包含在教科书中。
</instructions>
"""
例如,我插入了这个来自 20VC 的视频:
嗯,得到了以下内容:(205行纯智慧)!
-> 查看这里
总结 ...
-
我向您展示了如何将任何 YouTube 视频作为输入,进行一些处理,并应用 Claude-3(或任何其他大语言模型)来创建内容。
-
由于 Lightning AI,您可以通过以下方式实现: