非OpenAI模型的提示
这里有一些将非OpenAI模型与AutoGen一起使用的技巧。
寻找合适的模型
在您的Autogen设置中,每个模型在不同的操作中表现会有所不同,例如演讲者选择、编码、函数调用、内容创建等。总体而言,更大的模型(13B以上)在遵循指示和提供更连贯的响应方面表现更好。
内容创作可以由大多数模型完成。
微调模型非常适合非常特定的任务,例如函数调用和编码。
特定任务,例如在群聊场景中选择发言人,需要非常准确的输出,这对大多数开源/权重模型来说可能是一个挑战。使用思维链和/或少量示例提示可以帮助引导LLM以您想要的格式提供输出。
验证你的程序
使用非常大的LLM(例如OpenAI的ChatGPT或Anthropic的Claude 3)来测试您的AutoGen设置,可以帮助验证您的代理设置和配置。
一旦设置按照您的预期运行,您可以将代理的模型替换为非OpenAI模型,并逐步调整系统消息、提示和模型选择。
聊天模板
AutoGen 使用一组聊天消息来进行 AutoGen/用户 和大型语言模型之间的对话。每条聊天消息都有一个角色属性,通常是 user
、assistant
或 system
。
在推理过程中会应用一个聊天模板,并且一些聊天模板实现了关于在特定消息序列中可以使用哪些角色的规则。
例如,当使用Mistral AI的API时,最后的聊天消息必须有一个user
的角色。
在群聊场景中,用于选择下一个发言者的消息默认会有一个system
的角色,API将会在这一步骤抛出异常。为了解决这个问题,
GroupChat的构造函数有一个名为role_for_select_speaker_messages
的参数,可以用来将角色名称更改为user
。
groupchat = autogen.GroupChat(
agents=[user_proxy, coder, pm],
messages=[],
max_round=12,
# Role for select speaker message will be set to 'user' instead of 'system'
role_for_select_speaker_messages='user',
)
如果您想要使用的模型相关的聊天模板不支持AutoGen中使用的角色序列和名称,您可以修改聊天模板。请参阅我们的vLLM页面上的示例。
Discord
加入AutoGen的#alt-models频道,在他们的Discord上讨论非OpenAI模型和配置。