Tencent Hunyuan(混元)Prompt Engineering for Developers。
产品动态
2024年01月
动态名称 | 动态描述 | 发布时间 | 相关文档 |
---|---|---|---|
腾讯混元-Embedding 上线 | 新增 Embedding 接口:可以将文本转化为高质量的向量数据。 | 2024-01-05 | API文档 |
2023年11月
动态名称 | 动态描述 | 发布时间 | 相关文档 |
---|---|---|---|
腾讯混元大模型标准版上线 | 新增模型:腾讯混元大模型标准版,由腾讯研发的大语言模型,具备强大的中文创作能力,复杂语境下的逻辑推理能力,以及可靠的任务执行能力。 | 2023-11-23 | API文档 |
2023年09月
动态名称 | 动态描述 | 发布时间 | 相关文档 |
---|---|---|---|
腾讯混元大模型上线 | 腾讯混元大模型(Tencent Hunyuan)是由腾讯研发的大语言模型,具备强大的中文创作能力,复杂语境下的逻辑推理能力,以及可靠的任务执行能力。 | 2023-09-06 | 产品简介 |
Prompt是什么
Prompt,最初是为下游任务设计的一种任务专属的输入形式或模板,在 ChatGPT 引发大语言模型新时代之后,Prompt 成为与大模型交互输入的代称。通常,我们将提供给大模型的输入称为 Prompt,将大模型返回的输出称为 Completion。随着 ChatGPT 等大语言模型的出现,自然语言处理的范式正在从 Pretrain-Finetune(预训练-微调)向 Prompt Engineering(提示工程)演变。对于具有强大自然语言理解和生成能力、能够处理多样任务的大语言模型(LLM),一个合理的 Prompt 设计将极大地决定其能力的上限与下限。Prompt Engineering 是针对特定任务构造能充分发挥大模型能力的 Prompt 的技巧。为了高效使用 LLM,Prompt Engineering 是不可或缺的技能。
LLM 正在逐步改变人们的生活。对于开发者而言,如何快速、便捷地基于 LLM 提供的 API 开发具备更强大能力、集成 LLM 的应用,以实现一些更新颖、更实用的功能,是一项急需学习的重要能力。要高效地基于 API 开发集成 LLM 的应用,首要是学会如何合理、高效地使用 LLM,即如何构建 Prompt Engineering。
HunYuan(混元)Prompt Engineering for Developers命题来源于 吴恩达老师 的《面向开发者的提示工程》教程。该教程面向初学 LLM 的开发者,深入浅出地介绍了如何构造 Prompt,并基于 OpenAI 提供的 API 实现包括总结、推断、转换等多种常用功能,是初学 LLM 开发的第一步。对于想要入门 LLM 的开发者,需要充分掌握该部分的 Prompt Engineering 技巧,并能基于上述技巧实现个性化定制功能。
LLM简介
随着大语言模型(LLM)的发展,我们可以将其大致分为两种类型,分别是基础 LLM 和指令微调(Instruction Tuned)LLM。基础 LLM 主要通过在互联网和其他来源的大量文本数据上训练,以预测下一个单词的能力为基础。例如,给定 Prompt "从前,有一只独角兽",基础 LLM 可能会继续预测"她与独角兽朋友共同生活在一片神奇森林中"。然而,当使用 Prompt "法国的首都是什么"时,基础 LLM 可能会根据互联网上的文章生成类似“法国最大的城市是什么?法国的人口是多少?”的回答,因为互联网上的文章往往是问答题目列表。
相比之下,指令微调 LLM 通过专门的训练更好地理解并遵循指令。举例而言,当询问“法国的首都是什么”时,这类模型很可能直接回答“法国的首都是巴黎”。指令微调 LLM 的训练通常从预训练语言模型开始,先在大规模文本数据上进行预训练,掌握语言的基本规律,然后通过进一步的训练与微调,输入是指令,输出是对这些指令的正确回复。有时还采用 RLHF(reinforcement learning from human feedback,人类反馈强化学习)技术,根据人类对模型输出的反馈进一步增强模型遵循指令的能力。这种受控的训练过程使指令微调 LLM 能够生成对指令高度敏感、更安全可靠的输出,减少无关和损害性内容。因此,许多实际应用已经开始采用这类大语言模型。
Prompt 设计原则
在创建 Prompt 时,考虑以下原则可以帮助我们更好地引导大语言模型(LLM)生成符合期望的输出。
1. 任务明确性与细致化:
- 原则: Prompt 应当在任务描述中具有清晰的明确性,以确保模型理解并准确执行任务。
- 技巧:
- 使用明确的语言表达任务目标,避免使用模糊或过于宽泛的描述。
- 指导模型关注任务的具体方面,明确定义任务的边界和范围。
例子:
不明确: "写一篇文章关于科技。"
明确: "请撰写一篇关于人工智能在医疗领域应用的文章,强调其潜在益处和未来发展方向。"
通过使任务描述更为具体和清晰,可以确保模型更准确地理解您的期望并生成符合要求的输出。
2. 上下文与任务背景提供:
- 原则: 在 Prompt 中提供足够的上下文信息和任务背景,以帮助模型更好地理解任务的环境和要求。
- 技巧:
- 在指令中简要介绍任务的相关信息,确保模型有足够的背景了解任务的语境。
- 引导模型了解关键信息,使其能够更全面地理解任务的需求。
例子:
不提供上下文: "生成一段文字。"
提供上下文: "你是一名科学记者,现在你的任务是为普通读者解释最新的量子计算机技术,强调其在科学领域中的潜在影响。"
通过提供足够的上下文信息,可以确保模型在生成输出时能够更全面地考虑任务的整体背景,提高生成内容的相关性。
3. 关键词引导与任务导向语言:
- 原则: 使用关键词引导模型关注任务的核心信息,采用任务导向语言明确告知模型任务要求。
- 技巧:
- 突出关键词,使其在指令中成为焦点,以引导模型正确理解任务的关键要素。
- 使用明确的任务导向语言,直接告诉模型它需要完成的具体任务。
例子:
未引导关键词: "生成一则新闻报道。"
引导关键词: "以‘可再生能源创新’为主题,生成一则新闻报道,突出最新的技术进展和环境影响。"
通过使用关键词引导和任务导向语言,可以确保模型专注于任务的关键方面,并更好地满足您的期望。
4. 避免二义性与明晰表达:
- 原则: 避免使用模糊或容易引起歧义的语言,确保 Prompt 的表达能力足够明晰。
- 技巧:
- 使用清晰、具体的词汇,防止模型误解您的意图。
- 澄清可能引起歧义的短语或词语,以确保模型正确理解您的要求。
例子:
存在歧义: "给我一些关于苹果的东西。"
澄清明晰: "请提供有关苹果公司的最新财报和市场表现的信息。"
通过避免二义性和明晰地表达需求,可以减少模型的误解,提高生成内容的准确性。
5. 多样性与创新性鼓励:
- 原则: 鼓励多样性和创新性,以激发模型生成富有创意和独特性的输出。
- 技巧:
- 引入一些变化或新颖的元素,使任务更富有挑战性和创造性。
- 提供灵活性,让模型有空间尝试不同的观点和创意。
例子:
单一主题: "写一篇文章关于太阳系的行星。"
鼓励多样性: "以太阳系中任意一颗行星为中心,创作一篇富有想象力的短篇小说,描述其上可能存在的异星生命和文化。"
标准问题: "回答关于历史的问题。"
鼓励创新性: "选择一个历史时期,以时间旅行者的身份,写一篇关于如果某个历史事件发生不同,会对现代世界产生什么影响的文章。"
通过鼓励多样性和创新性,您可以激发模型在任务中展现更富有创意和独特性的一面。
6. 用户交互与指导语气:
- 原则: 考虑用户交互,若任务需要用户互动,请在 Prompt 中提供明确的指导语气。
- 技巧:
- 如果任务需要用户回答或有进一步的交互,请在 Prompt 中使用互动性语气明确指导模型与用户的互动。
- 指定期望的用户反馈或回答形式,以确保模型生成符合预期的输出。
例子:
不指导用户交互: "写一封电子邮件。"
指导用户交互: "以向好友写电子邮件的方式,告诉他们最近的生活趣事,并邀请他们分享自己的近况。"
通过提供用户交互的明确指导,可以确保模型在任务中正确理解并响应用户的期望。
7. 实验与迭代:
- 原则: Prompt 的设计可能需要实验和迭代,根据模型输出进行调整以优化任务完成效果。
- 技巧:
- 定期审查模型生成的输出,评估其与期望的符合程度。
- 根据实际结果进行 Prompt 的微调,以获得更理想的任务完成效果。
例子:
初始设计: "生成关于自然灾害的文章。"
经过迭代: "以科学记者的视角,写一篇深度报道,分析最近发生的自然灾害对当地生态和社区的影响,并探讨未来的预防和救助措施。"
通过实验和迭代,可以不断优化 Prompt,以适应模型的特定行为和生成更符合期望的输出。这是一个不断改进的过程,使指导更有效。
迭代优化
在开发大语言模型应用时,很难通过第一次尝试就得到完美适用的 Prompt。但关键是要有一个良好的迭代优化过程,以不断改进 Prompt。相比训练机器学习模型,Prompt 的一次成功率可能更高,但仍需要通过多次迭代找到最适合应用的形式。
以产品说明书生成营销文案为例,展示 Prompt 迭代优化的思路。这与吴恩达在机器学习课程中演示的机器学习模型开发流程相似:有了想法后,编写代码、获取数据、训练模型、查看结果。通过分析错误找出适用领域,调整方案后再次训练。Prompt 开发也采用类似循环迭代的方式,逐步逼近最优。具体来说,有了任务想法后,可以先编写初版 Prompt,注意清晰明确并给模型充足思考时间。运行后检查结果,如果不理想,则分析 Prompt 不够清楚或思考时间不够等原因,做出改进,再次运行。如此循环多次,终将找到适合应用的 Prompt。
总之,很难有适用于世间万物的所谓“最佳 Prompt ”,开发高效 Prompt 的关键在于找到一个好的迭代优化过程,而非一开始就要求完美。通过快速试错迭代,可有效确定符合特定应用的最佳 Prompt 形式。
示例:产品说明书生成
初始 Prompt: "生成一则关于新产品的说明书段落,突出产品特点和优势。"
第一次运行结果:
改进后的 Prompt: "使用生动的语言,为我们的最新产品撰写一段说明,重点突出其独特功能、性能优势以及与竞品的差异。"
第二次运行结果:
改进后的 Prompt: "以激发购买欲望的语言,撰写一段引人入胜的说明,展示我们最新产品的独特之处、卓越性能以及为用户带来的实际价值。"
第三次运行结果:
改进后的 Prompt: "用引人入胜的语言,详细描述我们最新产品的三项独特功能,阐述其卓越性能,并以用户体验为重点,突显产品与竞品不同之处。"
第四次运行结果:
通过不断迭代和改进 Prompt 的描述,可以看到生成文本的逐步优化,更好地满足了生成产品说明书的需求,突显了产品的独特之处。这个过程可以循环进行,直至获得符合期望的最终输出。
文本概括
在繁忙的信息时代,小明是一名热心的开发者,面临着海量的文本信息处理的挑战。他需要通过研究无数的文献资料来为他的项目找到关键的信息,但是时间却远远不够。在他焦头烂额之际,他发现了大型语言模型(LLM)的文本摘要功能。
这个功能对小明来说如同灯塔一样,照亮了他处理信息海洋的道路。LLM 的强大能力在于它可以将复杂的文本信息简化,提炼出关键的观点,这对于他来说无疑是巨大的帮助。他不再需要花费大量的时间去阅读所有的文档,只需要用 LLM 将它们概括,就可以快速获取到他所需要的信息。
使用腾讯混元大模型,小明成功实现了这个文本摘要的功能。他感叹道:“这简直就像一道魔法,将无尽的信息海洋变成了清晰的信息源泉。”小明的经历,展现了 LLM 文本摘要功能的巨大优势:节省时间,提高效率,以及精准获取信息。让我们一起使用混元大模型,掌握这个强大的工具。
原文:
"近年来,人工智能(AI)在医学领域取得了巨大进展。通过深度学习算法,AI能够在医学影像诊断中实现高精度的疾病检测。此外,AI还在药物研发、基因分析等方面展现出强大的应用潜力。这种技术的发展为医疗行业带来了新的希望,但也引发了一些伦理和隐私方面的关切。人们对于如何平衡技术创新与伦理责任提出了诸多讨论和反思。"
推断
小玲是一家电商公司的数据分析师,她负责分析用户在产品页面上留下的评论,并了解用户对不同产品的情感倾向。她希望通过大型语言模型(LLM)来简化情感分析的过程。
传统方法:
以前,小玲可能需要使用传统的情感分析模型,这些模型需要大量标记好的评论数据进行训练。她需要定期更新和维护这些模型,以适应新的产品和用户评论的变化。
混元LLM的应用:
现在,小玲决定尝试使用 混元LLM 进行情感分析。她编写了一个通用的 Prompt:“分析以下电商评论,提取用户对产品的情感。” 她将用户评论传递给 混元LLM ,并获取生成的文本作为输出。
实际应用:
小玲通过解析 混元LLM 返回的文本,轻松获得了每条评论的情感分析结果。她发现 LLM 能够更好地理解用户的语境和情感,无需复杂的训练过程。而且,她可以使用相同的 Prompt 处理不同产品的评论,避免了为每个产品训练独立模型的繁琐工作。
结果与收获:
通过使用 LLM 进行情感分析,小玲节省了大量时间和资源,同时获得了更准确的情感分析结果。她能够更迅速地响应用户反馈,帮助公司更好地了解产品的优势和改进点。这个例子展示了 LLM 在电商评论情感分析中的高效应用。
示例:电商评论情感分析
原始社交媒体帖子:
代码语言:javascript复制用户A: "今天天气真好,心情愉快!☀️"
用户B: "感觉一天都在忙碌,好累。