Meta发布了一个开源的NotebookLM

203 阅读7分钟

背景

    Meta 的 Llama Recipes 中的 “NotebookLlama ”提供了一系列 Jupyter 笔记本指导,用于将 PDF 转换成播客风格的音频。工作流程包括四个步骤:处理 PDF、生成脚本、增强对话语气以及使用文本到语音模型进行旁白。它使用 Meta 的 Llama 模型,包括 1B、8B 和 70B 版本,以及 TTS 模型。这种设置需要高内存 GPU 或对 Hugging Face 模型的 API 访问,鼓励对提示和模型进行定制,以获得最佳效果。

image

这是一系列有指导的教程/笔记本,可作为建立 PDF 到 Podcast 工作流程的参考或课程。您还可以从使用文本到语音模型的实验中学习。 本文假定对 LLM、提示和音频模型一无所知,所有内容都将在各自的笔记本中介绍。

大纲:

以下是完成任务的步骤思路(双关语):

第 1 步:预处理 PDF: 使用 Llama-3.2-1B-Instruct 对 PDF 进行预处理,并将其保存为 .txt 文件。
第 2 步:誊写器: 使用 Llama-3.1-70B-Instruct 模型根据文本编写播客文字稿。
第 3 步:戏剧性重写: 使用 Llama-3.1-8B-Instruct 模型使文字稿更加戏剧化
第 4 步:文本到语音工作流程: 使用 parler-tts/parler-tts-mini-v1 和 bark/suno 生成对话播客

注 1:在步骤 1 中,我们提示 1B 模型不要修改文本或对文本进行摘要,严格清理 PDF 编码可能导致的多余字符或垃圾字符。详情请参见笔记本 1 中的提示。
注 2:对于第 2 步,您也可以使用 Llama-3.1-8B-Instruct 模型,我们建议您进行实验,并尝试是否有任何不同。这里使用 70B 模型是因为在测试的示例中,该模型提供的播客文字稿稍有创意。
注 3:对于步骤 4,请尝试使用其他模型来扩展该方法。这些机型是根据样本提示选择的,效果最好,更新的机型可能听起来更好。有关部分测试示例,请参阅注释。

运行笔记本的详细步骤:

要求: GPU 服务器或使用 70B、8B 和 1B Llama 模型的 API 提供商。如果要运行 70B 模型,您需要一个拥有 140GB 左右总内存的 GPU,以便以 bfloat-16 精度进行推断。
注:对于 GPU 较差的朋友,也可以在整个流水线中使用 8B 或更低的模型。没有强烈推荐。下面的管道是前几次测试中效果最好的。您应该尝试看看哪种方法最适合您!

在开始之前,请确保使用 huggingface cli 登录,然后启动你的 jupyter notebook 服务器,以确保你能下载 Llama 模型。
你需要你的 Hugging Face 访问令牌,可以在这里的设置页面获取。然后运行 huggingface-cli 登录,复制并粘贴你的 Hugging Face 访问令牌完成登录,以确保脚本能在需要时下载 Hugging Face 模型。

首先,请从此处运行文件夹安装需求:

git clone github.com/meta-llama/…
cd llama-recipes/recipes/quickstart/NotebookLlama/
pip install -r requirements.txt

笔记本 1:
此笔记本用于处理 PDF,并使用新的 Feather light 模型将其处理为 .txt 文件。

用您想使用的 PDF 链接更新第一个单元格。请决定笔记本 1 使用的 PDF,可以是任何链接,但请记住用正确的链接更新笔记本的第一个单元格。

请尝试更改 Llama-3.2-1B-Instruct 模型的提示,看看能否改善结果。

笔记本 2:
本笔记本将接收笔记本 1 的处理输出,并使用 Llama-3.1-70B-Instruct 模型将其创造性地转换成播客文字稿。如果您的 GPU 资源丰富,请使用 405B 模型进行测试!

请尝试使用该模型的系统提示进行实验,看看是否能改善结果,并在此尝试使用 8B 模型,看看是否有巨大差异!

笔记本 3:
这本笔记采用了之前的记录,并提示 Llama-3.1-8B-Instruct 在对话中加入更多戏剧化和插话。

这里还有一个关键因素:我们返回了一个对话元组,这让我们以后的生活更轻松。是的,学习《数据结构 101》确实有用了一次!

对于我们的 TTS 逻辑,我们使用了两种不同的模型,它们在特定提示下的行为各不相同。因此,我们会相应地提示模型为每个说话者添加具体内容。

请再次尝试更改系统提示,看看能否改善效果。我们鼓励您在此阶段也测试轻便的 3B 和 1B 模型。

笔记本 4:
最后,我们将上一个笔记本中的结果转换成播客。我们使用 parler-tts/parler-tts-mini-v1 和 bark/suno 模型进行对话。

parler 模型的发言人和提示是根据实验和模型作者的建议决定的。请尝试使用,您可以在资源部分找到更多详细信息。

注意:现在有一个问题: Parler 需要转换器 4.43.3 或更早版本,而管道的第 1 步至第 3 步需要最新版本,因此我们只需在最后一个笔记本中切换版本即可。

下一改进/进一步的想法:

语音模型实验: TTS 模型限制了声音的自然程度。如果有更好的管道,并有更多知情人士的帮助,可能会有所改进!:)
LLM 与 LLM 辩论: 撰写播客的另一种方法是让两名代理就感兴趣的话题进行辩论,并撰写播客大纲。现在,我们使用单个 LLM(70B)编写播客大纲
测试 405B 来撰写文字稿

生成示例

友情提示
支持摄影网站、音频文件、YouTube 链接等。我们再次欢迎社区PR!

进一步学习的资源:

betterprogramming.pub/text-to-aud…

这篇文章详细介绍了如何使用Bark模型进行文本到音频的生成。Bark是一个基于变换器的文本到音频模型,由Suno AI创建,能够生成高度逼真的多语言语音以及其他音频类型,包括音乐、背景噪音和简单的音效。文章可能还涵盖了模型的工作原理、如何训练和使用该模型,以及一些实际的应用示例。

colab.research.google.com/drive/1dWWk…

Google Colab笔记本可能是一个交互式的教程或示例,用于演示如何使用Bark模型。用户可以在Colab环境中直接运行代码,无需在本地计算机上安装任何东西。

colab.research.google.com/drive/1eJfA…

这是另一个Google Colab笔记本,可能包含更高级的教程或更复杂的示例,用于展示Bark模型的不同功能或应用场景。

replicate.com/suno-ai/bar…

这个页面提供了关于Bark模型在Replicate平台上运行的详细信息。Replicate是一个平台,允许用户运行机器学习模型而无需自己管理基础设施。页面上提到,运行Bark模型的成本大约是每运行一次0.01美元,或者每1美元可以运行100次,具体成本取决于输入。模型运行在Nvidia T4 GPU硬件上,预测通常在46秒内完成。此外,还提供了模型的开源信息和如何在自己的计算机上使用Docker运行模型的指导。

suno-ai.notion.site/8b8e8749ed5…

这个Notion页面提供了Bark Speaker Library (v2)的详细信息,包括不同语言和性别的说话者样本。页面上列出了各种说话者,包括他们的语言、性别、标签以及如何获取他们的音频样本。这可能是一个资源库,供研究人员和开发者选择和使用不同的说话者声音。