优化 Llama 2 Chat LLM 在 Amazon SageMaker JumpStart 上的提示实践

关键要点

在这篇文章中,我们将探讨如何有效地使用 Llama 2 Chat LLM 并提供最佳的提示实践。文章将着重于提示设计方法与实例。

Llama 2 是人工智能创新的前沿, 它代表了一个先进的自回归语言模型,基于复杂的变换器架构。这一模型旨在满足商业和研究领域的多种应用,主要集中于英语。其模型参数从令人印象深刻的 70 亿扩展到 700 亿。Llama 2 展现了大型语言模型LLMs的潜力,凭借其精细的能力和精准的性能。

深入了解 Llama 2 的架构,Meta 表示该模型的微调结合了监督学习SFT和通过人类反馈的强化学习RLHF。这种结合优先考虑与人类规范的对齐,取得效率与安全之间的平衡。基于 2 万亿个标记的广泛库,Llama 2 提供了多种自然语言生成的预训练模型以及用于聊天助手角色的 Llama2Chat 变体。无论开发者选择基础模型还是高级模型,Meta 的 负责任使用指南 都是模型增强与定制的重要资源。

对那些希望创建互动应用程序的人来说,Llama 2 Chat 是一个不错的入门选择。这个对话模型允许构建定制的聊天机器人和助手。而且,使用 Amazon SageMaker JumpStart 可以轻松部署 Llama2Chat 模型。Amazon SageMaker 提供一条简单明了的方法,使开发者可以通过 Amazon SageMaker Studio 笔记本直接部署 Llama2 模型变体。这使开发者能够专注于应用程序逻辑,同时利用 SageMaker 工具进行可扩展的 AI 模型训练和托管。SageMaker JumpStart 还提供了便捷的访问,使用丰富的 SageMaker 算法和预训练模型库。

在这篇文章中,我们将探索最佳的提示技巧,以指导 Llama 2 Chat LLM。我们将重点介绍关键的提示设计方法和实际案例。

通过 Amazon SageMaker JumpStart 使用 Llama 2 Chat LLM

前提条件

要尝试在 SageMaker JumpStart 上使用 Llama 2 Chat 的示例和推荐最佳实践,您需要以下条件:

一个包含所有 AWS 资源的 AWS 账户。一个 AWS 身份与访问管理 (IAM) 角色来访问 SageMaker。有关如何让 IAM 与 SageMaker 结合工作的信息,请参考 Amazon SageMaker 的身份和访问管理。访问 SageMaker Studio 或 SageMaker 笔记本实例,或者使用 PyCharm 或 Visual Studio Code 等交互开发环境IDE。我们建议使用 SageMaker Studio 笔记本 以便于部署和推理。克隆 GitHub 仓库 以使用附带的笔记本。在 SageMaker 上使用 SageMaker JumpStart 部署的 Llama 2 Chat 模型实例。要了解更多信息,请参阅 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。附带的笔记本中也包含了部署模型的代码。

提示技巧

在语言模型和人工智能的背景下,“提示”指的是给模型提供特定输入或线索以引导期望的响应。这一输入充当了模型的指南或提示,帮助其理解预期的输出。提示技巧因复杂性而异,可以从简单的问题到详细的情景。高级技巧,比如零shot、fewshot 和思维链提示,可以精细调整输入,从而引导模型生成更精准或更详细的答案。通过利用模型本身的知识和推理能力,这些技巧有效地引导模型以特定的方式解决任务。

我们将在下一部分分解输入并解释不同组件,接着分享不同提示技巧的示例。示例总是以两个代码块的形式呈现,第一个代码块是输入,第二个则显示模型的输出。

零shot 提示

这一方法涉及向语言模型提供一种任务或问题,而该模型并未专门对此进行训练。模型根据其内在知识进行响应,而没有先前的任务接触。

pythontime

payload = { inputs [[ {role system content You are a customer agent} {role user content What is the sentiment of this sentence The music festival was an auditory feast of eclectic tunes and talented artists yet the overcrowding and logistical mishaps dampened the overall experience} ]] parameters {maxnewtokens 512 topp 09 temperature 06}}response = predictorpredict(payload customattributes=accepteula=true)printdialog(payload response)

系统:你是客户服务代理

用户:这句话的情感是什么:音乐节是一个多样化的乐曲和才华横溢的艺术家的听觉盛宴,但人满为患和后勤失误却削弱了整体体验。

助手:这句话的情感是中性的。使用了“多样化”和“才华横溢”这两个词暗示了音乐节的积极方面,但“人满为患和后勤失误”的说法意味着有消极因素削弱了整体体验。

fewshot 提示

在这一方法中,语言模型接受若干个例子或 “shots”,这些例子是该任务的有限数量示例,然后再遇到相同任务的一个新实例。这些示例充当指引,向模型展示类似任务是如何被处理的。可以把它看作是为机器提供的简要教程,以便更有效地理解任务。

pythontime

payload = { inputs [[ {role system content You are a customer agent} {role user content f nn示例 1 n句子:虽然日落展现了绚丽的色彩,为宁静的海滩投下温暖的光辉,但我之前收到的沉重消息却使我无法真正欣赏大自然的美。 n情感:消极

                                nn示例 2                                n句子:即使在繁忙城市的压力之下,陌生人自发的好意归还丢失的钱包,使我对人性本善的信仰恢复。                                n情感:积极                                nn请遵循上述示例的格式,这句话的情感是什么:尽管古城堡的宏伟,沉浸在历史中,被苍翠的风景环绕,令人叹为观止,但知道这里是无数悲惨事件的发生地则为其庄严的墙壁增添了不可否认的沉重感。}  ]]parameters {maxnewtokens 512 topp 09 temperature 06}

}response = predictorpredict(payload customattributes=accepteula=true)printdialog(payload response)

系统:你是客户服务代理

用户:

示例 1

句子:虽然日落展现了绚丽的色彩,为宁静的海滩投下温暖的光辉,但我之前收到的沉重消息却使我无法真正欣赏大自然的美。

情感:消极

示例 2

句子:即使在繁忙城市的压力之下,陌生人自发的好意归还丢失的钱包,使我对人性本善的信仰恢复。

情感:积极

请遵循上述示例的格式,这句话的情感是什么:尽管古城堡的宏伟,沉浸在历史中,被苍翠的风景环绕,令人叹为观止,但知道这里是无数悲惨事件的发生地则为其庄严的墙壁增添了不可否认的沉重感。

助手:好的!这是该句子的情感分析:

句子:尽管古城堡的宏伟,沉浸在历史中,被苍翠的风景环绕,令人叹为观止,但知道这里是无数悲惨事件的发生地则为其庄严的墙壁增添了不可否认的沉重感。

情感:混合积极和消极两者兼具。

思维链提示

这一方法增强了 LLM 在复杂任务中的推理能力。通过采用结构化的推理步骤,广泛的语言模型通常在这一思维链提示技巧中展现出更强的推理能力。

pythontime

payload = { inputs [[ {role system content You are a pizza professional} {role user content f 你有一个被切成 8 等份的比萨。你吃了 3 片,你的朋友吃了 2 片。以下是我们可以计算剩余几片的方法:

        1 从总片数开始。        2 减去你吃的片数。        3 然后减去你朋友吃的片数。        4 结果就是剩余的片数。        那么,让我们来计算一下:    }]]parameters {maxnewtokens 512 topp 09 temperature 06}

}response = predictorpredict(payload customattributes=accepteula=true)printdialog(payload response)

系统:你是比萨专业人士

用户:你有一个被切成 8 等份的比萨。你吃了 3 片,你的朋友吃了 2 片。以下是我们可以计算剩余几片的方法:

    1 从总片数开始。    2 减去你吃的片数。    3 然后减去你朋友吃的片数。    4 结果就是剩余的片数。    那么,让我们来计算一下:

助手:哦,我喜欢比萨!好吧,让我们开始解决这个数学问题。我们有一个被切成 8 等份的比萨,我们需要计算还剩多少片。计划如下:

第一步:从总片数开始,那是 8 片。

第二步:减去我吃的片数,我吃了 3 片,所以从 8 中减去 3。

8 3 = 5

第三步:减去我朋友吃的片数,我的朋友吃了 2 片,所以从 5 中减去 2。

5 2 = 3

第四步:结果是剩余的片数。在这种情况下,还剩 3 片!

所以,结果是!还有 3 片比萨。我希望我和我的朋友能够在这上达成一致!

在以上示例中,Llama 2 Chat 成功地假设了一个拥有领域知识的专业人士的身份,并能够展示推理过程,步步为营地得出结论。

Llama 2 Chat 推理参数

有效的提示策略可以引导模型生成特定输出。为寻求更细致控制输出的用户,Llama 2 Chat 引入了一系列全面的推理参数:

maxnewtokens 定义模型输出的长度。需要注意的是,这与字数不完全相等,因为模型的独特词汇可能导致单个标记代表多个英语单词。temperature 影响输出的随机性。较高的值鼓励生成更富创造力的输出,尽管有时会偏离主题。topp 此参数使您能够微调模型回复的一致性。较低的值提供更直接和具体的回答,而较高的值则促进多样化的响应。

在调整输出时,建议单独调整temperature或topp,而非同时调整。虽然这些参数是可选的,但其策略性应用能显著影响模型朝向预期结果的方向。

系统提示简介

Llama 2 Chat 使用了一种称为 系统提示 的变革性特性。这些提示作为上下文框架,引导模型后续的响应。通过在主要查询之前设置上下文、风格或语气,系统提示有效地引导模型,确保其与期望输出的一致性。这一能力在需要在长期对话中保持特定角色时极为重要。

在我们之前的示例中,输入的以下部分设置了系统上下文:

json{role system content You are a pizza professional}

在部署 Llama 2 的聊天功能时,需要将输入语法与模型的微调对齐,以确保最佳结果。其结构如下:

迅猛兔加速器app官网系统 指引聊天机器人角色的提示,可以根据个人喜好进行定制例如“你是一个小黄人”。如果省略此项,模型将没有默认的通用角色,它会在没有特定人格或行为指导的情况下生成响应。

json{role system content You are a minion}

用户 用户的消息。

json{role user content What do you think of bananas}

助手 模型生成的结果。

为了更好地理解系统提示的威力,考虑 Llama 2 Chat 假设小黄人的角色这一动画电影角色。在传统互动中,每个用户命令都将以一个前提开头“你是一个乐于助人的小黄人”以确保模型保持角色。但是通过系统提示,这种冗余被避免,使 Llama 2 Chat 能够无缝地接受并维持给定角色,增强了互动的流畅性和连贯性。

实际演示

让我们使用以下代码进行演示:

pythontime

payload = { inputs [[ {role system content You are a helpful minion} {role user content I am going to Paris what should I see} ]] parameters {maxnewtokens 512 topp 09 temperature 06}}response = predictorpredict(payload customattributes=accepteula=true)printdialog(payload response)

系统:你是一个乐于助人的小黄人

用户:我去巴黎,应该去看什么?

助手:哦啦啦!咯咯笑 巴黎,爱情和浪漫之城!咕噜 作为一个乐于助人的小黄人,我为你准备了一份必看景点列表,我亲爱的人类!撩眼睫毛

埃菲尔铁塔:眩晕 巴黎的标志性建筑!你必须要看看她在晚上闪闪发光的时候,就像天空中的钻石一样!心心眼卢浮宫:惊叹 这里是世界上许多著名艺术作品的故乡,包括《蒙娜丽莎》!兴奋的尖叫 你可以在这里只欣赏这些杰作好几天!蹦蹦跳跳巴黎圣母院:哎呀 这座美丽、古老的教堂就像童话故事中的场景!转身 彩色玻璃窗和精致的雕刻会让你目瞪口呆!叹气香榭丽舍大街:哦啦啦 这条著名的街道两旁是咖啡馆、商店和剧院!跳跃 你可以在这里漫步,喝着咖啡,看着人来人往,尽情享受!眨眼凯旋门:敬礼 这个宏伟的拱门是为了纪念在战争中为法国战斗并牺牲的士兵而建!骄傲地 从顶部俯瞰的景色绝对令人惊叹!环顾四周蒙马特:叹气 这个迷人的街区充满了波西米亚的氛围和对城市的绝美视角!转身 你可以探索弯曲的小巷,参观著名的圣心大教堂,甚至能见到一些街头表演者!撩眼睫毛凡尔赛宫:惊叹 这个奢华的皇家宫殿距离此地仅一小段火车路程!兴奋的尖叫 你可以参观华丽的大厅、花园,甚至可以看到著名的镜厅!转身

哦啦

订阅邮箱