Pathways Language Model 2(PaLM 2)是由Google开发的大型语言模型(LLM)。它于 2023 年 2022 月宣布作为最初于 2 年 <> 月发布的 PaLM 模型的继任者。PaLM <> 模型在海量文本和代码数据集上进行训练,可以执行各种任务,例如单词完成、代码完成、问答、摘要和情感分析。
PaLM 2 是一个基础模型,是 Google 生成 AI 平台的核心。PaLM 2为Google的AI聊天机器人Bard提供支持,该机器人与OpenAI的ChatGPT竞争,Duet AI是Google的AI助手框架,该框架正在集成到Google Workspace和Google Cloud等产品中。
Google正在Vertex AI平台中提供PaLM API,并作为独立的API端点。开发人员现在可以访问Vertex AI PaLM API,而独立端点只能通过可信测试人员计划获得。
使用 Python 和 Vertex AI 启动并运行
假设您是 Google Cloud 的订阅者,本教程将引导您完成探索 Vertex AI 平台中可用的 PaLM API 的步骤。请注意,该服务处于预览状态,API 将来可能会更改。
让我们从为实验创建一个 Python 虚拟环境开始。
python3 -m venv venv source venv/bin/activate
然后我们安装 Python 模块来访问 Google Vertex AI 平台。
pip install google-cloud-aiplatform
我们还将安装 Jupyter Notebook,将其用作开发环境。
pip install jupyter
vertexai.preview.language_models,该库有多个类,包括ChatModel,TextEmbedding和TextGenerationModel。在本教程中,我们将重点介绍 TextGenerationModel,其中 PaLM 2 将帮助我们根据输入提示生成博客文章。
第一步,从模块导入正确的类。
Import vertexai.preview.language_models import TextGenerationModel
然后,我们将根据预先训练的模型 text-bison@001 初始化对象,该模型针对生成文本进行了优化。
model = TextGenerationModel.from_pretrained("text-bison@001")
下一步是定义一个函数,该函数接受提示作为输入,并将模型生成的响应作为输出返回。
def get_completion(prompt_text): response = model.predict( prompt_text, max_output_tokens=1000, temperature=0.3 ) return response.text
该方法 predict,接受提示、令牌数和温度作为参数。让我们更好地理解这些参数。
文本生成模型参数
当我们以文本字符串的形式向 PaLM API 提交提示时,API 会将这些字符串转换为称为令牌的含义块。令牌大约为四个字符。100 个标记大约相当于 60 到 80 个单词。如果我们希望模型的输出在 500 个单词以内,则可以安全地将max_output_tokens值设置为 1000。模型支持的最大值为 1024。如果我们不包含此参数,则该值将默认为 64。
下一个参数温度指定模型的创造力。此设置控制令牌选择的随机程度。对于需要特定且创意较少的响应的提示,温度越低越好,而温度越高,答案就越多样化和创造性。温度值可以介于 0 和 1 之间。由于我们想要一点创造力,我们将其设置为 0.3。
温度也是一个可选参数,其默认值因型号而异。另外两个可选参数(top_k 和 top_p)允许您更改模型选择输出令牌的方式,但我们在此处跳过它们。
方法就绪后,让我们构造提示。
prompt = f""" Write a blog post on renewable energy. Limit the number of words to 500. """
通过传递提示来调用该方法。
response=get_completion(prompt) print(response)
您应该会看到由PaLM生成的一篇写得很好的博客文章。
让我们通过要求 PaLM 生成以 HTML 格式格式化的内容来实现这一点。为此,我们需要修改提示。
prompt = f""" Write a blog post on renewable energy. Limit the number of words to 500. Format the output in HTML. """
要以 HTML 格式打印输出,我们可以使用 Jupyter 笔记本的内置小部件。
from IPython.display import display, HTML display(HTML(response))
现在,您可以看到以 HTML 格式设置的博客文章。
以下是完整的代码供您参考。
from vertexai.preview.language_models import TextGenerationModel model = TextGenerationModel.from_pretrained("text-bison@001") def get_completion(prompt_text): response = model.predict( prompt_text, max_output_tokens=1000, temperature=0.3 ) return response.text prompt = f""" Write a blog post on renewable energy. Limit the number of words to 500. Format the output in HTML. """ response=get_completion(prompt) print(response) from IPython.display import display, HTML display(HTML(response))
在短短几行代码中,我们调用了PaLM 2 LLM来生成博客文章。