DataLearner logo
Back to LLM blog list

如何提示Mixtral-8x22B:基础模型提示详解

2024-04-12Mixtral-8x22B基础模型提示工程人工智能

基础模型与指令调优模型的区别

Mixtral 8x22B的发布标志着我们首次拥有了一个与GPT-4性能相当的开源商用模型。但与ChatGPT等指令调优模型不同,Mixtral 8x22B是一个基础模型,这意味着需要完全不同的提示方式。

基础模型更像是”超级自动完成”,而非设计用于类似聊天的对话。它们被训练成可以完成你提供的任何文本,这使得提示变得更加困难,但同时也带来了更多可能性。基础模型的表现力要强得多,不会像ChatGPT那样受到调优过程的限制,风格和行为被”锁定”。基础模型蕴含无限可能,关键在于如何解锁。

如何为基础模型设计提示

提示基础模型时,你要少考虑如何向模型描述你希望它做什么,而多考虑如何向它展示你希望它做什么。你必须真正步入模型的思维,思考它是如何思考的。

基础模型本质上是其训练数据的镜像。如果你能内化这一点,就能创造奇迹。

举个例子,如果你希望模型撰写一篇题为”人工智能在医疗保健领域的影响”的新闻文章,你应该考虑它在训练数据中可能在哪里遇到过新闻风格的文章。可能是在新闻网站上,对吧?

有了这个想法,你就可以构建一个利用这一点的提示,包括与真实文章页面类似的元素。例如:

首页 | 头条 | 观点
AI时报
--
人工智能在医疗保健领域的影响

通过将模型置于类似其训练数据的情境中,它最终会生成一篇文章!

但这种方法并不完美。写作不够流畅,也不能保证一定会生成文章。

那么如何提高可靠性呢?

答案是增加示例。

使用Few-shot提示

基础模型对Few-shot提示反应非常好。我们在提示顶部再增加几个示例。为了快速演示,我直接从网上拉了几篇文章放到提示前面(别骂我,这只是个演示,不会用于生产!)。

可以看到,通过几个示例,生成的文章质量明显更好。

解析输出的技巧

使用基础模型时,解析输出是一大挑战。使用指令模型,你可以轻松地提示它以特定格式提供输出,便于解析(例如,你可以说”以JSON格式回复”)。但对于基础模型,没那么简单。

一个技巧是我称之为”引导模型”。

假设你想生成一个文章可能的标题列表。你可以通过描述你想要的内容,然后在提示末尾添加数组的前两个字符来”引导”模型这样做,本质上是强制模型以列表形式响应。例如:

注意我如何以’[“‘结束提示。这一个简单的技巧让你可以使用基础模型生成可解析的数据!

更高级的方法

以上方法只是利用基础模型的一些简单方式。还有许多更强大的方法可以获得更好的结果。

一种方法是让模型认为自己是Python解释器。

这不是很直观,但效果真的很好。

例如,假设我们要编写一个缩短文本的提示。看看截图中的提示,了解这种方法是什么样的。

如你所见,我们基本上编写了一个看起来像Python解释器的提示,并要求模型模拟解释器的输出。而且考虑到我们”调用”的函数是一个文本缩短器函数,模型输出了一个较短版本的文本!


如你所见,提示基础模型与提示聊天/指令模型有很大不同。希望这对每个使用Mixtral 8x22B的人都有帮助!