这篇文章,你将学习到开发和部署一个由LLM驱动的应用程序所需的技术。在你将了解一个生成式AI项目的全生命周期,这可以帮助指导你完成这项工作。这个框架映射出了从概念到发布所需的任务。这里有一个整体生命周期的图表。我们将逐个阶段地讨论它。
在任何项目中最重要的一步是尽可能准确和狭窄地定义范围。LLM能够执行许多任务,但它们的能力很大程度上取决于模型的大小和架构。你应该考虑LLM在你特定应用程序中将扮演什么样的角色。你是需要模型能够执行许多不同的任务,包括长篇文本生成或具有高度的能力,还是任务要具体得多(比如命名实体识别),这样你的模型只需要擅长一件事情。对你需要你的模型做什么的具体需求进行深入思考可以节省你的时间,也许更重要的是可以节省计算成本。当你已经将你的模型需求范围定义得足够小,就可以开始开发了。
你的第一个决定将是是否从头开始训练你自己的模型,还是使用现有的基础模型。通常情况下,你会从现有模型开始,尽管也有一些情况下你可能会发现有必要从头开始训练一个模型。有了你的模型之后,下一步是评估它的性能,并进行额外的训练,如果需要的话。提示工程(prompt engineering)有时候足以让你的模型表现良好,所以你可能首先尝试上下文学习(in-context learning),使用适合你的任务和用例的例子。然而,仍然存在一些情况,模型可能表现不如你需要的那么好,即使进行一两次短的推理,这时你可以尝试微调你的模型。随着模型变得更加强大,确保它们的行为良好并且与人类偏好一致变得越来越重要。一种名为强化学习与人类反馈(RLHF)的额外微调技术,这可以帮助确保你的模型表现良好。
所有这些技术的一个重要方面是评估。有一些可以用来判断你的模型表现如何或者它与你的偏好如何一致的度量和基准。注意,这个应用开发的适应和一致阶段可能是高度迭代的。你可能会首先尝试提示工程和评估输出,然后使用微调来改善性能,然后重新审视和评估一次提示工程,以获得你需要的性能。
最后,当你有一个符合你的性能需求并且良好对齐的模型时,你可以将其部署到你的基础设施中,并将其与你的应用程序集成。在这个阶段,一个重要的步骤是为部署优化你的模型。这可以确保你充分利用你的计算资源,并为你的应用程序的用户提供最好的体验。最后但非常重要的一步是考虑你的应用程序将需要的任何额外基础设施。LLM存在一些基本的限制,通过训练本身很难克服,比如当它们不知道答案时倾向于编造信息,或者它们进行复杂推理和数学的能力有限。有一些强大的技术(比如 知识图谱和外部知识引入,多模态融合,强化学习与探索等),可以帮助你克服这些限制。