第一章:课程介绍
欢迎来到本课程,这是为开发者准备的ChatGPT提示工程课程。我很高兴能够有Isa Fulford一起教授本课程。她是OpenAI技术人员,并构建了受欢迎的ChatGPT检索插件,并且大部分工作是教人们如何在产品中使用LLM或大型语言模型技术。她还为OpenAI cookbook做出了贡献,教人们提示。非常高兴能有你加入我们。我也很高兴能够在这里与大家分享一些提示最佳实践。
在互联网上有很多有关提示的文章,例如“30个每个人都必须知道的提示”,很多都专注于ChatGPT的Web用户界面,许多人正在使用它来完成特定且经常只需一次完成的任务。但是,作为开发人员,使用API调用LLM快速构建软件应用程序的能力,我认为仍然被低估。事实上,我们在AI Fund团队,这是DeepLearning.AI的姐妹公司,一直在与许多初创公司合作,将这些技术应用于许多不同的应用程序。看到LLM API能够让开发人员快速构建的应用程序非常令人兴奋。因此,在本课程中,我们将与您分享一些可能性,以及如何做到最佳实践。我们需要涵盖很多材料。首先,您将学习一些软件开发的提示最佳实践。然后,我们将介绍一些常见的用例,包括总结、推断、转换、扩展。最后,您将使用LLM构建一个聊天机器人。我们希望这将激发您的想象力,使您能够构建新的应用程序。
在大型语言模型或LLM的开发中,大致分为两种LLM类型,我将其称为基础LLM和指令调整LLM。基础LLM已经训练出来,基于文本训练数据预测下一个单词。通常是在互联网和其他来源的大量数据上训练,以确定下一个最有可能的单词。例如,如果您提示“从前有一只独角兽”,它可能会完成这个故事,认为它下一个几个单词是“他们生活在一个神奇的森林里,有所有独角兽的朋友”。
但是,如果您提示“法国的首都是哪里?”,则根据互联网上的文章可能会很难以确定。因为这可能是法国最大的城市是什么,法国的人口是多少等。因为互联网上的文章可能很可能是关于法国国家的小测验问题列表。
相比之下,指令调整LLM的动量,即LLM的研究和实践的大部分方向,已经被训练成遵循指令。因此,如果您问它“法国的首都是什么?”,它更有可能输出“法国的首都是巴黎”。指令调整LLM通常是通过以下方式训练的:首先使用已经在大量文本数据上训练的基础LLM,然后使用输入和输出的指令和良好的尝试来微调和训练它。然后通常使用一种叫做人类反馈强化学习(RLHF)的技术进一步改进,使系统能够更好地遵循指令并帮助人类。因为指令调整LLM已经被训练成有帮助、诚实和无害的,所以它们不太可能输出有毒的文本等问题,相比之下,基础LLM就有这种可能。许多实际使用场景已经转向指令调整LLM。您在互联网上找到的一些最佳实践可能更适合基础LLM,但对于今天的大多数实际应用,我们建议大多数人专注于指令调整LLM,因为它们更容易使用,并且由于OpenAI和其他LLM公司的工作,它们变得更安全和更对齐。
因此,本课程将重点介绍指令调整LLM的最佳实践,这是我们建议您在大多数应用程序中使用的内容。在进入下一个主题之前,我想要感谢OpenAI和DeepLearning.ai的团队为本课程提供的材料所做出的贡献。我非常感激来自OpenAI的Andrew Main、Joe Palermo、Boris Power、Ted Sanders和Lillian Weng的帮助,他们与我们一起 brainstorming 材料,审查材料,为这个短课程编制课程大纲做出了很大的贡献。在深度学习方面,我也非常感激Geoff Ladwig、Eddy Shyu和Tommy Nelson的工作。
当您使用指令调整LLM时,可以将其视为给另一个人提供指令,例如给一个聪明但不知道您任务的具体细节的人。当LLM不能正常工作时,有时是因为指令不够清晰。例如,如果您说“请写一些关于Alan Turing的东西”,除了这之外,明确说明您想让文本集中在他的科学工作上,还是个人生活上,或者他在历史上的角色,或其他方面,如果您指定文本的语气,它是否应该采取专业记者的语气?还是更像是一封轻松的朋友之间的便笺,希望LLM生成您想要的内容?当然,如果您设想自己要求一位新毕业的大学生为您完成此任务,如果您甚至可以指定他们提前阅读哪些文本片段以撰写有关Alan Turing的文本,那么这将更好地为这位新毕业生成功地完成此任务做好准备。
因此,在下一个视频中,您将看到如何明确和具体的示例,这是提示LLM的一个重要原则。您还将从提示的第二个原则中学习,即给LLM时间思考。现在,让我们继续下一个视频。