Press "Enter" to skip to content

提高播客可访问性:LLM文本高亮度指南

介绍

想象一下热爱一档播客节目,希望记住最精彩的部分,但这个节目只有声音没有文字。你会怎么做?这就是像LLMs和语音转文本翻译工具这样的酷工具派上用场的地方。它们可以神奇地把口语转化为书面笔记,让你轻松找出亮点,创建实用的要点。所以,你最喜欢的播客时刻只差一步就能变成文字记录!自2022年11月首次亮相以来,LLM一直风靡一时。LLM可以用于各种任务,文本摘要是其中重要的应用之一。我们不仅可以对文本进行摘要,还可以对音频和视频等其他模式进行摘要。我们可以使用LLM增强播客的可访问性,并生成简洁的亮点以便使用或做未来参考。

PaLM(Pathways Language LLM)是谷歌AI于去年2022年4月成立的重要LLM。今年2023年3月,PaLM 2的第二版发布,这是一个改进和更新的版本。它旨在具有卓越的双语、编码和思维能力。与其他LLMs相比,使用PaLM 2 LLM API的优势在于其API是免费提供的。与OpenAI的ChatGPT相比,它的性能更好,推理能力更强。

在本文中,我们将学习如何使用这些工具,即PaLM 2 API和Maker Suite,创建一个简单的播客文本亮点显示器,并学习如何优化LLM模型的设置以生成更好的纲要。了解这些工具的特点,并尝试理解它们可以使用的不同用例。现在让我们开始吧!

学习目标

  • 了解PaLM模型和其特点。
  • 了解PaLM的模型设置。
  • 实现一个生成播客音频简洁摘要的Python项目。

本文作为Data Science Blogathon的一部分发表。

PaLM 2概述

PaLM 2是一个庞大的NN模型,具有5400亿个参数,通过使用Pathways方法进行扩展以实现突破性能。PaLM 540B在各种多步骤推理任务上超越了当前的技术水平,并在最新发布的BIG-bench基准测试中超越了平均人类表现,取得了突破性的性能。它学习了词语和短语之间的关系,并可以将这种知识用于不同的任务。

Pathways AI架构

Pathways是一种新的AI架构思维方式,解决了现有系统的许多弱点。机器学习模型往往会在单个任务上过度专攻,而实际上它们可以在许多任务上表现出色。以下是这种架构的基本概念:

  • 多任务:基本思想是不是从头开始训练数千个不同的模型来完成不同的任务,而是使用同一个模型,尝试扩展其能力以执行新任务,这与人类处理任何任务的方式类似。
  • 多模态:Pathways可以同时实现包括视觉、听觉和语言理解在内的多模态模型。因此,无论模型是处理单词“leopard”,还是处理有人说“leopard”的声音,或者是处理一个豹奔跑的视频,它都会在内部激活相同的响应:对豹的概念。结果是一个更具洞察力的模型,更不容易出错和存在偏见。
  • 稀疏和高效:我们可以创建一个“稀疏”活动的单个模型,这意味着只有在需要时才激活网络中的几个通道。实际上,该模型会动态学习网络的哪些部分在特定任务上表现良好 – 它知道如何通过模型的关键部分来路由任务。由于我们不会为每个活动启用完整的网络,所以这种类型的架构不仅能够学习各种任务,而且更快,能耗更低。

PaLM 2特点

PaLM 2经过培训,掌握了100多种语言,并且能够通过外语能力考试达到专家级别。它是参数规模第二大的模型,第一大的是参数达到1万亿的GPT-4。在6k芯片(TPU v4)上,PaLM的训练非常高效,跨2个机架或集群。PaLM在解码器方面采用了标准的Transformer模型架构。

SwiGLU激活函数

SwiGLU激活函数用于中间多层感知机层,其性能质量比ReLU、GeLU或Swish要好。SwiGLU激活函数比传统的激活函数更高效,还有助于改善LLMs的稳定性。SwiGLU使用门控机制,可以根据所接收的输入选择性地激活神经元。这有助于减少过拟合并提高泛化能力。SwiGLU激活函数是一个分段线性函数,定义如下:

SwiGLU(x) = max(x, 0) + min(α(x – ReLU(x)), 0)

其中x是函数的输入,ReLU(x)是修正线性单元函数(即max(x, 0)),α是控制函数负部形状的可调参数。

SwiGLU激活函数旨在解决ReLU函数的一些局限性,后者可能导致“死神经元”,这些神经元不对神经网络的输出做出贡献。通过引入分段线性的负斜率,SwiGLU函数可以帮助解决这个问题,并提高神经网络的性能。

Difference between ReLU & SwiGLU – Source

并行训练

标准公式中使用的串行训练方法在每个Transformer块中都采用并行训练方法。并行训练方法在较大规模下能够以15%更快的速度进行训练。并行训练是一种新的LLM训练方式,能够比传统LLM更快地进行训练。传统LLM在单个GPU上进行训练,这可能会耗时很长。并行训练使LLM能够在多个GPU上同时进行训练,大大加快了训练过程。以下是并行训练方式的示例。假设我们有一个在单个GPU上进行训练的LLM。LLM有一个包含10,000个单词的词汇表,每个单词由一个100维的向量表示。LLM是在一个包含1,000,000个句子的数据集上训练的。

我们需要遍历数据集,并对每个句子更新LLM的参数以训练LLM。这个过程可能会很耗时,特别是如果数据集很大。通过并行训练,我们可以同时在多个GPU上准备LLM。我们可以将数据集分为1,000个批次,每个批次可以在一个单独的GPU上进行训练。这样做大大加快了训练过程,因为我们可以同时在1,000个批次上准备LLM。

多查询注意力

每个头部使用的键/值是共享的,而不仅仅是一个键/值,这在自动回归解码时节省了成本。在多头注意力中,整个注意力计算会复制h次,而在多查询注意力中,被应用于查询值Q的每个“头部”都具有相同的K和V变换。逐步增量MQA所执行的计算量与逐步增量MHA相似。关键区别在于,MQA在内存读取/写入的数据量减少。

RoPE嵌入

旋转位置嵌入是一种新型的位置嵌入方法,统一了绝对和相对方法,并提供了更好的结果。在计算自注意力时,它将两个标记的“相对”位置而不是绝对位置纳入考虑。Transformer使用自注意力或交叉注意力机制,对标记的顺序不敏感,将输入标记视为一组而不是序列。这意味着模型对基于标记位置的关系失去了重要信息。为了缓解这个问题,位置编码将有关标记位置的信息直接嵌入到模型中。

这种类型的位置嵌入使用旋转矩阵,以在自注意力公式中包含显式的相对位置依赖性。旋转嵌入对于自然语言处理非常重要,因为它们使模型更好地理解单词使用的上下文。当模型对输入标记的位置有更好的认知时,可以产生更准确的预测。例如,使用RoPE的语言模型可能更好地理解“我喜欢比萨饼”和“比萨饼是我喜欢的”由于词的位置不同而具有不同的含义。通过更好地理解相对位置,模型可以进行更细致的预测。

没有偏见

在密集层和层归一化中没有应用偏差,这增加了大型模型的训练稳定性。这增加了LLM的训练效率和稳定性,并使其能够减少冗余参数,增加空间利用率和扩展性。

模型变体

Palm提供了许多不同尺寸的模型变体。他们根据动物名称和尺寸进行了命名。

  • 壁虎是最小且最快的模型,可以在边缘设备(如移动设备)上离线工作。
  • 水獭 – 比壁虎大,可以执行复杂任务
  • 独角兽比水獭更大,可用于聊天、文字等
  • 野牛是Palm最大和最稳定的模型,广泛用于文本聊天。

模型参数设置

模型参数帮助我们修改和生成不同的响应。让我们逐个了解它们:

温度

这影响模型响应的随机性。接近1的较高温度会产生更多样化的输出和创新性的响应,而不是干涸的定义集合。假设我们想理解一个特定单词的含义及其在这种情况下的用法,我们不需要创新的回答,而是词典的含义,因此我们可以将温度设置为接近0(确定性回答)。如果我们想写一篇创新的文章或故事,我们可以将温度保持接近1。

温度值为0.5的示例
温度值为1的示例

标记限制

令牌指的是文本块,决定模型能够处理的文本量。较大的标记限制使模型能够一次获得更广泛的信息范围,而较小的限制则限制了它处理的标记数量。例如 – Palm 2现在可以同时输入8,000个令牌。

不同LLM模型标记限制的比较

Top – K

在生成文本时,模型考虑了许多可能的下一个单词。top-k采样将限制下一个单词选择为最可能的k个单词。较低的k参数值使内容更可预测,但更高的数字使其更多样化。

示例显示top-k和LLM温度参数的工作方式

Top -p

它是考虑单词并控制输出多样性的概率阈值。模型将继续考虑前k个选择中的下一个单词,直到总概率达到top-p值。这意味着模型可能接受较不可能的单词,如果它们共同达到top-p概率,则会产生更多样化的输出。较高的概率会产生更多样化的组合。

最大输出

这表示为特定输入生成的输出数量,即我们可以指定是否要看到模型响应的多个输出,并相应地考虑要采用哪个。在下面的图片中,我们可以看到当我们将最大输出设置为2时,我们会得到相同输入的2个响应示例。

最大输出设置为2时LLM响应示例

Python实现播客文本高亮器

Python实现源的流程图

1: 下载播客音频

使用此链接,我们可以通过粘贴我们的播客链接来下载任何播客音频。这里,我们使用了《印度快报》的播客链接

2: 加载和安装库

!pip install openai-whisperimport whisper

3: 将音频转录为文本

起初,我们使用了“tiny”模型变体,然后我们使用了更广泛、在拼写和语法方面给出更好结果的“base”变体。我们转录了两个音频播客。

注意:在上述提到的链接处下载播客的mp3音频后,将其上传到您的colab环境文件中,并将音频文件的路径粘贴到transcribe函数中,如下所示。

# 加载whisper模型whisper_model = whisper.load_model("base")# 转录音频def transcribe(file_path: str) -> str:    # `fp16`默认设置为`True`,告诉模型尝试在GPU上运行。    # 为了本地演示目的,我们将其设置为`False`,在CPU上运行。    transcription = whisper_model.transcribe(file_path, fp16=False)    return transcription['text']  transcript = transcribe('/content/CATCH-UP-2023-10th-October-v1.mp3')print(transcript)

输出

#OUTPUT这是《印度快报》的三个要点概述,我是Flora Swine。现在是10月10日,以下是头条新闻。哈马斯袭击4天后,以色列军方今天宣布已夺回加沙边境的控制权。它警告民众前往邻国埃及,这是对预期报复的可怕提醒。以色列军方还报告说,在以色列领土内发现了1500名哈马斯激进分子的尸体。持续的冲突已导致大约1600人丧生,包括以色列方面的900人和加沙方面的近700人。与此同时,印度总理纳伦德拉·莫迪表示,他与以色列总理本雅明·内塔尼亚胡进行了交谈,向后者保证印度坚定支持以色列,并表示守卫工作很艰难。他还表示,印度坚决并明确地谴责各种形式和表现的恐怖主义。印度首席大法官D.Y. Chandrachud今天表示,最高法院的角色不是对全国范围的问题进行微观管理。他强调,地方事务最好由各自的高等法院管辖。他正主持一个由三名法官组成的法庭。最高法院的这些言论是在听一个涉及圈养大象的问题时作出的,并说,法院,我们必须对全国范围内的问题有一个更广泛的功能性理解。最高法院在国家中的作用是什么?不是处理全国各地问题的微观管理。今天,两名与恐怖组织拉什卡尔·塔伊巴尔瓦克有关的武装分子在卡什米尔的苏维埃地区与安全部队交火中丧生。交火爆发于安全部队根据有关武装分子存在的情报,在阿尔锡普拉地区发动了一次反恐行动。这两名武装分子被认定为莫里法特·马格布尔和贾兹姆·法洛克。针对他2015年帮凶暗杀其分居妻子Hema Obadhai一案,奇恰努巴德海今天被判无期徒刑。该法庭还对另外三名共同被告——Vijay Rajvahar、Pradeep Rajvahar和Shivkuma Rajvahar——判处无期徒刑。周六,公诉方要求对这四个人判处死刑。2023年国际板球理事会男子世界杯今天有两场比赛。巴基斯坦迎战斯里兰卡,孟加拉国迎战英格兰在哈拉姆沙拉。在其他世界杯新闻中,新西兰击败荷兰,连续第二场比赛获胜。在锦标赛揭幕战中,他们先前战胜了卫冕冠军英格兰,位居积分榜首。以上是《印度快报》的三个要点。

4- 使用Maker Suite生成摘要

现在,我们将这个播客摘要作为训练输入,独立准备其样本模型响应,并使用另一个作为测试输入。我们去这个网站并生成一个项目点摘要。

使用Maker Suite生成项目点摘要的源

我们调整模型参数设置以生成摘要。

5: 使用Maker Suite生成代码

使用Palm API的API密钥生成代码。我们已经从这个网站生成了自己的API密钥。

"""在命令行上,只需通过pip运行一次来安装包:$ pip install google-generativeai"""import google.generativeai as palmpalm.configure(api_key="API_KEY")defaults = {  'model': 'models/text-bison-001',  'temperature': 1,  'candidate_count': 1,  'top_k': 40,  'top_p': 0.95,  'max_output_tokens': 1024,  'stop_sequences': [],  'safety_settings': [{"category":"HARM_CATEGORY_DEROGATORY","threshold":4},{"category":"HARM_CATEGORY_TOXICITY","threshold":4},{"category":"HARM_CATEGORY_VIOLENCE","threshold":4},{"category":"HARM_CATEGORY_SEXUAL","threshold":4},{"category":"HARM_CATEGORY_MEDICAL","threshold":4},{"category":"HARM_CATEGORY_DANGEROUS","threshold":4}],}Sentence = "这是《印度快报》的三个要点补充,我是Flora Swain。今天是10月10日,以下是头条新闻:在哈马斯袭击以后的四天,以色列军方今天表示已经重新控制了加沙边界。它警告当地居民在能够时逃往邻近的埃及,这是对即将到来的报复行动的残酷提醒。以色列军方还报告称,在以色列领土内发现了1500名哈马斯武装分子的尸体。目前的冲突已造成大约1600人死亡,其中以色列方面有900名伤亡,加沙方面近700人。与此同时,印度总理纳伦德拉·莫迪今天在X上发表讲话,表示他与以色列总理本杰明·内塔尼亚胡进行了交流,并向以色列表示坚定的支持。他还表示,印度坚决而毫不含糊地谴责任何形式和表现的恐怖主义。印度首席大法官D.Y. Chandrachud今天表示,最高法院的角色并非在全国范围内对问题进行微观管理。他强调,地方事务最好交由各个高等法院管辖。在主持由三名法官组成的一个三人小组时,印度首席大法官在审理与圈养大象相关的问题时发表了这些言论,并表示:“作为一个法院,我们必须拥有更广泛的职能理解。最高法院在国家中的角色是什么?而不是处理全国各地出现的问题。”两名与恐怖组织Lashkaretayabah有关的武装分子今天在Jammun和克什米尔的Soapian地区与安全部队发生交火并被击毙。交火是在安全部队根据有关武装分子存在的情报在Alsepura地区开展了一次反恐行动后爆发的。去世的武装分子被确认为Mureffat Maghbul和Jasm Farukh。Chintanubhadi Haya因涉嫌投注和密谋在2015年杀害其分居的妻子Hema Upadhyay而被判处无期徒刑。会议法庭还对其他三名共同被告Vijay Rajpur、Pradeep Rajpur和Shivkumar Rajpur判处了无期徒刑。周六,检方要求对这四个人都判处死刑。国际板球理事会2023年男子世界杯今天有两场比赛。巴基斯坦在海得拉巴对阵斯里兰卡,孟加拉国在哈拉马利亚对阵英格兰。据其他世界杯消息,新西兰击败荷兰,在比赛中连胜两场,位居积分榜首。这是《印度快报》的三个要点补充。

最终输出

以下是我们播客的结果输出。大部分内容都是准确的,除了拼写和专有名词的名称,如达兰萨拉和拉什卡尔 – 塔伊巴等。

带项目符号列表的 LLM 输出
  • 以色列军队夺回加沙边境并警告人们逃往邻近的埃及。
  • 印度总理纳伦德拉·莫迪与以色列总理本雅明·内塔尼亚胡通话。印度坚决谴责恐怖主义。
  • 最高法院法官DY Chandrachud表示,最高法院的角色不是微观管理问题,地方事务最好交给高等法院。
  • 与印度克什米尔的安全部队发生交火,击毙了与拉什卡尔 – 泰巴有关联的2名激进分子。
  • Chintanubhadi Haya因涉嫌投注和密谋谋杀其离婚妻子Hema Upadhyay(2015年)被判处无期徒刑。
  • ICC 2023年男子世界杯今天有两场比赛。
  • 巴基斯坦在海得拉巴对阵斯里兰卡,而孟加拉国与英格兰在哈拉姆斯哈拉对阵。
  • 新西兰战胜了荷兰,在比赛中取得第二场胜利。

结论

强大的工具LLM可以与其他工具结合使用,生成快速原型,让我们能够测试和尝试各种LLM用例。由于LLM是一项非常新的技术,其潜在用途和实施需要大量的来回实验。这就是Maker Suite等工具赋能数据科学和分析专业人员,快速将他们的想法转化为代码的地方,而使用的时间和精力最少,集中于微调和改进数据等重要要素。

主要收获

  • 我们了解了PALM 2 API的基本概念及其特点。
  • 还了解了各种模型参数设置以及如何为特定的期望提示输出进行优化。
  • 我们了解了Google Maker Suite工具的不同方面,并利用它生成了我们的LLM代码。
  • 我们使用Whisper API和Palm API生成了相关准确的播客的带项目符号摘要。

常见问题

本文中显示的媒体不归Analytics Vidhya所有,仅由作者自行决定使用。

Leave a Reply

Your email address will not be published. Required fields are marked *