简介
自从OpenAI推出了像GPT(生成预训练变压器)模型这样的生成式AI模型,特别是ChatGPT以来,谷歌一直在努力创建并推出类似的AI模型。虽然谷歌是第一个通过BERT模型将变压器引入世界的公司,通过其《Attention is All You Need》论文,但它未能像OpenAI开发的那些大型语言模型一样创建一个同样强大和高效的模型。谷歌首次引入的Bard AI似乎并未引起太多关注。最近谷歌发布了PaLM(Pathways语言模型)的API访问权限,该模型是Bard AI背后的技术。本指南将介绍如何开始使用PaLM API。
学习目标
- 学习如何使用Pathways语言模型
- 了解PaLM提供的关键功能
- 使用PaLM 2创建应用程序
- 利用MakerSuite快速原型化大型语言模型
- 了解如何使用PaLM API
本文章是Data Science Blogathon的一部分。
什么是PaLM?
PaLM代表Pathways语言模型,是谷歌自主开发的大型语言模型之一。它于2022年4月首次推出。几个月前,谷歌宣布了该模型的下一个版本,即PaLM 2。谷歌声称,与之前的版本相比,PaLM在多语言能力和功率效率方面更好。
PaLM 2并不是用英语训练的,而是包含了一百多种语言的混合体,甚至包括编程语言和数学。所有这些都是在不降低英语理解性能的情况下实现的。总体而言,谷歌的PaLM 2(或当前版本的PaLM)在生成代码、理解不同语言、推理能力等多个任务上都表现出色。
与OpenAI的GPT模型有不同类型,如Davinci、Ada等不同的类型一样,PaLM 2有4种不同的规模,分别为Gecko、Otter、Bison和Unicorn(从最小到最大)。PaLM 2的Gecko规模特别适用于在移动设备上运行,从而为移动应用程序开发人员考虑在其移动应用程序中使用这种大型语言模型打开了大门。
Bard和PaLM有何不同?
Bard是谷歌的实验性对话型AI,由LaMDA(用于对话应用的语言模型)提供支持,它是建立在变压器之上的对话式AI模型,可用于创建基于对话的应用程序。LaMDA模型包含1370亿个参数。Bard使用不同类型的数据集,包括文本和代码数据,用于创建引人入胜的对话。
PaLM(Pathways语言模型)随后为Bard提供支持。目前,新创建的PaLM 2正在为Bard提供支持。PaLM 2经过广泛的多语言和不同语言类型的训练,使其成为已有的Bard的巨大助推器。这甚至让Bard的能力从仅限于对话转变为在编程领域生成可用代码,将其知识扩展到20多种不同的编程语言。
PaLM 2为Bard提供动力并将其与Gmail、Google Docs和Google Sheets等谷歌服务集成,使Bard能够直接发送信息到这些服务。最近的公告甚至表示,它已经与许多其他第三方应用程序集成,如Adobe Fire Fly Image Generator甚至Adobe Express在不久的将来也将与之集成。
MakerSuite – 访问PaLM API
要访问或测试谷歌的新自主开发的PaLM 2,需要获得PaLM API的访问权限。PaLM API允许我们与不同的PaLM 2模型进行交互,类似于OpenAI API与GPT模型进行交互。获得谷歌的PaLM API有两种方法。一种是通过Vertex AI。PaLM API已经在Google Cloud的Vertex AI中可用。但并非所有人都有GCP账户以访问此API。因此,我们将采取第二种方式,即通过MakerSuite。
谷歌的MakerSuite提供了一种基于浏览器的交互方式来与PaLM API进行交互。它是一种基于浏览器的IDE,用于测试和原型化生成式AI模型。简而言之,它是开始尝试生成式AI想法的最快方式。MakerSuite允许我们直接通过其易于使用的UI与生成模型一起工作,或者我们可以生成一个API令牌,以便通过代码利用PaLM 2的强大功能。在本指南中,我们将探索两种方式:首先在MakerSuite基于web的UI中开始工作,然后通过Python代码使用PaLM API。
登录以开始您在MarkerSuite上的旅程
要开始,请点击这里重定向到MakerSuite,或者您可以在Google上搜索。然后使用您的Gmail帐户注册。然后您将在屏幕上看到以下内容。
![]()
填写所有内容,最后点击“使用我的Google帐户加入”以加入等待列表,以访问PaLM API和MakerSuite IDE。然后,您将在7天内收到一封电子邮件,说明您已获得访问MakerSuite IDE和PaLM API的权限。获得MakerSuite访问权限后,使用注册的电子邮件ID打开网站。MakerSuite的主页如下所示。
![]()
正如我们所看到的,在主页上,我们可以看到3种类型的提示。MakerSuite允许我们选择3种类型的提示,即文本提示,数据提示和聊天提示,每种提示都有其自身的重要性,可以让我们通过可视化与PaLM 2 API进行交互。对于基于代码的交互,您可以在下面找到“创建API密钥”按钮,该按钮允许我们创建一个应用程序,以便在我们的代码中使用它来访问PaLM 2模型。我们将介绍文本提示和数据提示类型的提示,甚至学习如何在代码中利用PaLM API。
使用MakerSuite进行快速原型设计
正如我们所见,MakerSuite中有三种不同类型的提示可供使用,我们将首先从文本提示开始。在MakerSuite仪表板中,选择文本提示。
![]()
编写您的提示
“编写您的提示”下面的白色空间是我们将写入提示的地方,然后由PaLM 2模型进行解释。我们可以编写任何提示,例如总结一段文字、要求生成一首诗、解决任何逻辑推理问题,无论您叫它什么都可以。让我们来询问模型生成一个用于计算给定长度“n”的斐波那契数列的Python代码,然后点击运行。
![]()
给定查询的Python代码
生成式AI为给定的查询提供了Python代码。在图片中的高亮文本中可以看到。模型确实为所提问的查询提供了一个可行的代码。下面我们可以看到“文本Bison”和“文本预览”。 “文本预览”让我们看到我们提供给模型的提示。让我们点击它来观察。
![]()
我们还注意到可以发送的最大令牌数为8196,这与GPT模型相当。那么“文本Bison”是什么?如果我们记得清楚,我之前说过,PaLM 2有不同的规模(Gecko、Otter、Bison和Unicon)。所以在这里使用的模型是文本Bison模型。让我们点击它看看它显示了什么。
![]()
它包含了所使用的模型的信息。目前,MakerSuite只提供了文本Bison模型。温度增加了模型内的可变性/创造性,尽管高温值有时会导致模型产生幻觉,从而捏造出随机的内容。最大输出目前设置为1,因此我们可以得到一个对所查询的回答。但是,我们可以增加此值,使模型生成对单个查询的多个答案。安全设置允许我们通过告诉模型阻止一部分或大部分有害内容,包括有毒的、贬低性的、暴力的内容等来调整模型。
插入测试输入
高级设置允许我们配置令牌的输出长度、Top K和Top P参数。因此,MakerSuite的文本提示使我们能够编写任何基本提示。还有一件事叫做“插入测试输入”。让我们试试。
![]()
在Prompt部分,我设置了一个上下文,告诉生成式AI,不管我们给它什么问题,它都必须考虑到生成的输出必须像大型语言模型试图向5岁的孩子解释一样生成。因此,我们写的提示是“以向5岁儿童解释的方式解释以下问题”。然后我们点击“插入测试输入”。我们看到一个名为“input”的绿色框出现在白色空间中。与此同时,在运行按钮上方出现了“测试您的提示”。让我们展开它。
![]()
![]()
当我们展开“测试您的提示”时,我们会看到一个有两列“输入”和“输出”的表格。输入的默认值是input,我们在这里将其更改为query。因此,我们在输入列下输入的任何查询都会在Prompt部分的白色空间中取代“query”。在第二张图片中,我们给出了机器学习的查询,它替换了Prompt空间中的“query”。在输入查询并点击运行按钮后,输出会生成在输出部分,我们可以在下面看到。生成的输出似乎相当不错,因为它试图以简单的方式解释机器学习,以便即使是5岁的孩子也能理解。
数据提示简介-MakerSuite
在本节中,我们将使用MakerSuite提供的数据提示。要做到这一点,请转到MakerSuite主页,然后点击数据提示。然后您将看到以下内容
![]()
输入列
顾名思义,在数据提示中,我们需要为模型提供示例数据,通过从中学习,模型将能够对新问题生成答案。每个示例在INPUT列中包含一个输入,表示用户的查询,而用户查询的预期输出则在OUTPUT列中。通过这种方式,我们能够为模型提供一些示例。然后,该模型将从这些示例中学习,为新查询生成新的输出。让我们试试这个。
![]()
在输入列中,我们提供了两位著名板球运动员的姓名,Virat Kohli和David Warner。在输出列中,我们提供了他们所代表的国家。现在要测试Text Bison模型,我们提供的输入是Root,一位为英格兰效力的著名板球运动员。因此,我们期望输出是英格兰。让我们运行并测试一下。
![]()
正如预期的那样,LLM生成了对测试查询的正确响应。该模型理解到给定给它的数据是板球运动员的姓名,它必须生成的输出是他们所代表的国家。如果需要,我们甚至可以在示例之前提供上下文。我们在这里所做的事情基本上被称为Few Shot Learning,即在Prompt部分给大型语言模型提供一些示例,并期望它在给出新查询时生成类似的输出。这就是MakerSuite中数据提示的工作方式,它确实是一个使其与ChatGPT不同的特性。
使用 PaLM API 与 PaLM 2 进行交互
要通过代码与 PaLM 2 进行交互,我们需要获得 PaLM API 密钥。这可以通过 MakerSuite 本身生成。为此,我们需要前往 MakerSuite 主页。在主页上,在 3 种类型的提示下方,我们可以看到一个获取 API 密钥的选项。点击它来生成一个新的 API 密钥
![]()
![]()
安装必要的库
点击“在新项目中创建 API 密钥”来生成一个新的 API 密钥。生成后,我们可以在下方找到密钥。点击 API 密钥以复制新生成的 API 密钥。现在让我们开始安装必要的库。我们将使用 Google Colab 进行演示。
$ !pip install google-generativeai
这将下载我们将用于与 PaLM 2 进行交互的 Google 生成 AI 库。首先,我们将把 API 密钥分配给环境变量,可以通过以下方式完成
import google.generativeai as palm
import os
os.environ['API_KEY']= 'Your API Key'
palm.configure(api_key=os.environ['API_KEY'])
我们首先将 API 密钥提供给 os.environ[‘API_KEY’],然后将此 API 密钥传递给 palm.configure() 对象。到目前为止,如果代码成功运行,那么我们就可以开始使用 PaLM 2 进行工作了。让我们尝试使用 PaLM AI 的文本生成部分,它使用 Text-Bison 模型来回答查询。
代码
代码如下:
response = palm.generate_text(prompt="告诉我一个笑话")
print(response.result)
![]()
PaLM 2 的 Text-Bison 模型确实运行得非常完美。我们可以通过向模型提供更多参数来扩展其功能,以便了解可以添加到模型中以获得更准确/正确结果的内容。
prompt = """
您是一位专业的翻译员。您可以将任何语言翻译成任何语言。
请将以下内容从英语翻译为印地语:
你好吗?
"""
completion = palm.generate_text(
model='models/text-bison-001',
prompt=prompt,
temperature=0,
max_output_tokens=800,
)
print(completion.result)
![]()
在这里,我们向模型提供了一个提示。在提示中,我们设置了一个上下文,告诉模型它是一位可以将任何语言翻译成任何语言的专业翻译员。然后,我们在提示中提供了一个查询,要求将一句英语的句子翻译成印地语。然后,我们指定我们将要使用的模型,这将是 Text Bison 模型,因为我们在这里生成文本。接下来,将温度设置为0以保持稳定性,将最大输出令牌设置为800。我们可以在输出中看到,模型成功地将给定的英语句子准确地翻译成了印地语。
这是 PaLM AI 的文本生成部分的示例。他们的文档中还有一个聊天类型的提示,您可以查看以了解它的工作原理。它非常类似于我们在这里看到的。在聊天提示中,您需要提供用户和 AI 之间的聊天历史示例,以便 AI 可以学习如何与用户进行对话,并使用此知识与用户无缝对话。
应用和用例
移动应用
PaLM 2 有 4 种不同的尺寸可供选择。PaLM 2 的最小尺寸称为 Geck,设计用于集成到移动应用程序中。这包括增强现实和虚拟现实应用程序,在这些应用程序中,这种生成式 AI 可用于创建逼真的景观。此外,它还可以应用于各种类型的聊天机器人/助手,从支持聊天机器人到个人聊天机器人。
Duet AI for Google Cloud
Duet AI是由Google开发的基于PaLM 2的始终在线协作生成式AI,专为Google Cloud Platform设计。在Google Cloud上构建、保护和扩展应用程序一直非常耗时。现在有了Duet,流程将变得非常顺畅,便于云开发人员。Duet将分析您在云端的工作,并基于此为您提供帮助,从而加速您在云端的开发过程。Duet AI将自动适应各种技能水平,无论是完全初学者还是云计算专家。
分析医学图像/医学问题回答
Med-PaLM是一种基于PaLM的大型语言模型,能够分析复杂的医学图像,甚至对医学问题给出高质量的答案。当Med-PaLM在美国医生执照考试中进行测试时,它的正确率达到了67%(而人类的平均百分比为60%)。因此,可以对Med-PaLM进行精细调整,并利用它来分析从X光到乳腺癌的医学图像,生成式AI不仅可以告诉患者是否患病,还可以告诉可能导致这种疾病的原因、未来可能发生的情况以及如何照顾自己。Med-PaLM还可以用于回答临床问题。
iCAD与Google合作进一步发展Med-PaLM,主要用于分析乳腺癌,使其在临床设置中可行。Google还与西北医学合作,改进健康领域的AI能力,以便检测高风险疾病并同时减少筛查/诊断时间。
PaLM在Google应用中的作用
Google计划将PaLM 2与Gmail集成,处理诸如摘要和以正式语调重写电子邮件等任务。此外,在Google文档中,将利用PaLM 2进行头脑风暴、校对和重写。Google甚至试图将其纳入Google幻灯片中,以在幻灯片中自动生成图像、文本和视频。Sheets将使用AI自动分析数据、生成公式并提供其他高级功能。他们宣布,所有这些由AI驱动的功能将逐年发布。至于BARD,这是Google开发的实验性AI,已经由PaLM 2提供动力。
结论
在本指南中,我们了解了Google自家的生成式AI——PaLM(Pathways Language Model)。我们看到了它与BARD的区别,甚至了解了PaLM 2比以前的版本更强大的原因。然后我们讨论了PaLM 2提供的模型大小。最后,我们进入了实践部分,学习如何开始使用PaLM 2。我们注册了MakerSuite并探索了它,尝试了MakerSuite提供的不同类型的提示,并最终通过代码创建了一个API与PaLM 2进行交互。
要点
本指南的一些要点包括:
- PaLM 2是由Google创建和维护的生成式AI大型语言模型
- 通过Google Cloud的Vertex AI,可以直接使用PaLM 2创建应用程序
- PaLM 2能够理解不同的语言,甚至能够在20多种不同的语言中生成代码,并具有良好的推理能力
- MakerSuite是Google开发的一种可视化工具,可以与大型语言模型一起进行快速原型设计
- MakerSuite的不同提示类型适用于测试不同的应用程序
常见问题
本文中显示的媒体不归Analytics Vidhya所有,仅由作者自行决定使用。