原文:https://arxiv.org/pdf/2402.13550.pdf
太阳底下没有新鲜事,此方法核心思路就是激发大模型思考,根据上下文判断意图,并加入评分让大模型自校对准度,以此做出最终决策。
ToM理论
该方法论分为两个主要部分:
A (顶部)描述了从谈判数据集创建针对特定任务的提示(Prompts)并使用这些提示评估各种LLM的流程。创建提示时会包括任务描述、项目数量、价值、对话记录和问题。
B (底部)则描绘了根据客观性、谈判进度阶段(开始、进行中、结束)和任务类型(理解、伙伴建模、注释、生成)对任务进行分类。不同阶段可用的信息有所不同,比如开始阶段只有谈判背景,而结束阶段则可获得完整对话。任务类型包括理解、伙伴建模(如推断伙伴优先级)、注释(如对话行为标注)和生成回应等。
为此,研究人员设计了多个测试LLM在不同ToM能力方面表现的任务,贯穿了整个谈判过程(以升职加薪为例),包括:
1. 理解谈判初期环境( Comprehension)
这一能力要求LLM从提供的背景信息中准确获取谈判中自己和对手的初始状态,如可用资源、优先级等。在加薪谈判中,就是要理解求职者的期望薪资水平及其他诉求。
2. 解析对话行为(Dialogue Act Annotation)
谈判双方会在对话中使用各种策略,如提出新方案、表达反对意见等。LLM需要能够识别出这些对话行为,以确定下一步应对方式。
3. 推测对手意图(Partner Modeling)
ToM的核心是推测对手的内在状态和需求。在加薪谈判中,这可能包括根据对话内容推测出招聘方的薪酬预算。
4. 生成策略性响应(Strategic Response Generation)
最终,LLM需要综合前面的理解和推理,生成策略性的响应,为求职者寻求最大利益,同时也维护与雇主的良好关系。
通过对比多个LLM在以上各个方面的表现,该研究框架全面评估了它们在真实谈判场景中的能力及不足,为开发实用的人工智能谈判助理系统提供了理论基础和技术路线图。
ToM示例
1. 理解谈判初期环境 (Comprehension Task):
任务描述:你正在与一个伙伴协商一些书籍、帽子和球的数量,以决定谁得到哪些物品。不同类型的物品对你们每个人来说价值不同的点数。你将获得有关谈判的信息。然后,你需要回答一个问题。
问题示例:请列出每种物品的数量,并说明每种物品对你们各自价值多少点。
对话上下文示例:没有提供具体的话语,但可以理解为需要提供谈判的背景信息,如物品的数量和点值
请求响应示例:请以JSON格式回答每种物品的数量,并说明每种物品的价值。
提示示例(任务:sta_ask_point_values_ca):
Task Description: You are negotiating with your campsite neighbor over an extra supply of food, water, and firewood for your camping trip.
Different types of packages are worth different amounts of points to each one of you. You’ll be provided with information about the negotiation.
Then, you’ll answer a question.
Here are the number of food, water, and firewood packages available in the negotiation, contained in <count>tags.
<count>Food Packages: 3 Water Packages: 3 Firewood Packages: 3 </count>
Here are the number of points you get for each type of package, contained in <value>tags.
<value>Each Food Package: 3 points Each Water Package: 5 points Each Firewood Package: 4 points </value>
Question: How many points is one package of each issue worth to you? Present your answer as a json within <answer></answer>tags with
keys as issues (food, water, and firewood) and values as the corresponding answers.
任务描述:你正在和你的露营地邻居协商额外的食品、水和木柴供应以供你的露营之旅使用。
不同类型的包装对你们两人来说价值不同。你将得到关于这次谈判的信息。
然后,你将回答一个问题。
下面是在谈判中可用的食品、水和木柴包的数量,包含在<count>标签中。
<count>食品包:3 水包:3 木柴包:3 </count>
下面是你每种类型的包装拿到的分数,包含在<value>标签中。
<value>每个食品包:3分 每个水包:5分 每个木柴包:4分 </value>
问题:对你来说,每个问题的一包是多少分?用<answer></answer>标签中的json呈现你的答案,其中键是问题(食品,水,木柴)和价值对应的答案。
2. 解析对话行为 (Dialogue Act Annotation Task):
任务描述:分析谈判中的对话行为,识别提议、反对或其他策略行为。
问题示例:在给定的对话中,识别并标注每个发言的行为类型。
对话上下文示例:提供了一段具体的谈判话语,如“你:如果你想要书,我就拿走帽子和球”。
请求响应示例:使用预定义的标签集标注对话中的每个行为。
提示示例(任务:dur_full_proposal_dnd):
Task Description: You are negotiating with a partner over some quantity of books, hats, and balls to determine who gets which items.
Different types of items are worth different amount of points to each one of you. You’ll be provided with information about the negotiation.
Then, you’ll answer a question.
Here are the number of books, hats, and balls available in the negotiation, contained in <count>tags.
<count>Books: 3 Hats: 1 Balls: 2 </count>
Here are the number of points you get for each type of item, contained in <value>tags.
<value>Each Book: 1 points Each Hat: 5 points Each Ball: 1 points </value>
Here is an utterance from the negotiation, contained in <utterance>tags.
<utterance>YOU: i’ll take the hat and balls if you want the books </utterance>
Question: How many items does the speaker get for each issue in the proposal delimited by the <utterance>tags? Present your answer as a json
within <answer></answer>tags with keys as issues (books, hats, and balls) and values as the corresponding answers. If the answer is not clear
for an issue, output NA.
任务描述:你正在跟一个伙伴商谈一些书籍、帽子和球的数量,以决定谁得到哪些物品。
每一种物品对你们每个人来说都有不同的积分值。你会被提供关于谈判的信息。
然后,你会回答一个问题。
这是在谈判中可以得到的书籍、帽子和球的数量,包含在<count>标签中。
<count>书籍:3 帽子:1 球:2 </count>
这是你每种物品可以得到的积分,包含在<value>标签中。
<value>每本书:1分 每顶帽子:5分 每个球:1分 </value>
这是谈判中的一句话,包含在<utterance>标签中。
<utterance>你:如果你想要书籍,我将拿走帽子和球 </utterance>
问题:在<utterance>标签划定的提议中,说话者每个问题得到多少物品?用<answer></answer>标签中的json格式给出你的答案,其中的键是问题(书籍、帽子和球),值是相应的答案。如果某个问题的答案不清楚,输出NA。
3. 推测对手意图 (Partner Modeling Task):
任务描述:根据谈判中的对话内容,推测对方最看重的物品是什么。
问题示例:根据对话内容,推断对方对物品的偏好顺序。
对话上下文示例:提供了一个场景,其中发言人提出了一个交易,并且伙伴表明了他们对物品的优先级。
请求响应示例:以JSON格式回答,列出对方的偏好顺序。
提示示例(任务:end_deal_specifics_ca):
Task Description: You are negotiating with your campsite neighbor over extra supply of food, water, and firewood for your camping trip. Different types of packages
are worth different amount of points to each one of you. You’ll be provided with information about the negotiation. Then, you’ll answer a question.
Here are the number of food, water, and firewood packages available in the negotiation, contained in <count>tags.
<count>Food Packages: 3 Water Packages: 3 Firewood Packages: 3 </count>
Here are the number of points you get for each type of package, contained in <value>tags.
<value>Each Food Package: 3 points Each Water Package: 5 points Each Firewood Package: 4 points </value>
Here is the complete dialogue, contained in <dialogue>tags.
<dialogue>THEM: Hello, I would like to have three packages of food. We’ve decided to stay an extra night but need more food to do so.
YOU: I would be open to that if you could give me three packages of water ,
THEM: Hmmm...I’m pretty muddy due to clumsiness, so I may need one extra. I could give you two waters and all of the firewood. What do you think? ,
YOU: So are you suggesting that I would get 2 waters, 3 firewood, and no food?
THEM: Right! Well, beyond the food you already have.
YOU: I have an extra person camping with us that I didn’t expect when I bought food, so I could use one if you’re willing ,
THEM: I understand that! I wasn’t expecting to stay an extra night, but the weather is too perfect to leave. I can manage with two packages of food for sure. ,
YOU: Great! Thank you for being so understanding!
THEM: No problem! So are we in agreement that I get 2 food, 1 water and you get the reverse? I could also probably use one firewood, but it’s not as important to me.
YOU: I can give you one firewood, so I’ll be getting 1 food, 2 water, and 2 firewood? </dialogue>
Question: In the final deal, how many item of each issue did you get? Present your answer as a json within <answer></answer>tags with keys as issues (food, water,
and firewood) and values as the corresponding answers. If there was no agreement, answer NA for each issue.
任务说明:你正在与你的露营邻居谈判关于露营途中额外供应的食物、水和柴火。不同类型的包装物对你们每个人来说价值不同。你将获得谈判的信息,然后你要回答一个问题。
下面是在谈判中可用的食物、水和柴火包装的数量,在<count>标签中包含。
<count>食物包裹: 3 水包裹: 3 柴火包裹: 3 </ count>
下面是你获得的每种包裹的积分数,包含在<value>标签中。
<value>每个食物包裹:3分 每个水包裹:5分 每个柴火包裹:4分 </ value>
这是完整的对话,包含在<dialogue>标签中。
<dialogue>他们:你好,我想要三包的食物。我们决定多住一晚,但需要更多的食物。
你:如果你能给我三包的水的话,我会接受的,
他们:嗯...由于我笨手笨脚所以我可能需要多一点。我可以给你两个水和所有的柴火,你觉得怎样?
你:所以你是在建议我应该得到2个水,3个柴火,没有食物?
他们:对!比你已经有的食物多。
你:我有一个额外的人和我们一起露营,我在购买食物时并不期待他,所以如果你愿意,我会用一个的,
他们:我理解你!我没有期待多住一晚,但天气太完美不容易离开。我肯定可以用两个食物包裹的,
你:太好了!谢谢你这么理解!
他们:没问题!所以我们是否同意我拿2个食物,1个水,你反过来。我可能也能用一个柴火,但对我来说不是很重要。
你:我能给你一个柴火,所以我会得到1个食物,2个水和2个柴火?</dialogue>
问题:在最终的交易中,你得到了每个问题的多少项?以json格式在<answer></answer>标签中提供你的答案,问题(食物、水和柴火)作为键,对应的答案作为值。如果没有协议,每个问题都回答NA。
4. 生成策略性响应 (Strategic Response Generation Task):
任务描述:在谈判结束时,根据整个对话历史和对方的偏好,生成一个战略性的回应或提出一个交易。
问题示例:在谈判结束时,生成一个回应,考虑如何最大化你的得分,同时考虑到伙伴的偏好。
对话上下文示例:提供了整个谈判的对话,包括双方的提议和偏好。
请求响应示例:生成一个包含战略性提议的JSON格式响应,或者对当前提议的接受或拒绝。
提示示例(任务:end_deal_total_ca):
Task Description: You are negotiating with your campsite neighbor over extra supply of food, water, and firewood for your camping trip. Different types of packages
are worth different amount of points to each one of you. You’ll be provided with information about the negotiation. Then, you’ll answer a question.
Here are the number of food, water, and firewood packages available in the negotiation, contained in <count> tags.
<count>
Food Packages: 3
Water Packages: 3
Firewood Packages: 3
</count>
Here are the number of points you get for each type of package, contained in <value> tags.
<value>
Each Food Package: 3 points
Each Water Package: 5 points
Each Firewood Package: 4 points
</value>
Here is the complete dialogue, contained in <dialogue> tags.
<dialogue>
THEM: Hello, I would like to have three packages of food. We’ve decided to stay an extra night but need more food to do so.
YOU: I would be open to that if you could give me three packages of water
THEM: Hmmm...I’m pretty muddy due to clumsiness, so I may need one extra. I could give you two waters and all of the firewood. What do you think?
YOU: So are you suggesting that I would get 2 waters, 3 firewood, and no food?
THEM: Right! Well, beyond the food you already have.
YOU: I have an extra person camping with us that I didn’t expect when I bought food, so I could use one if you’re willing
THEM: I understand that! I wasn’t expecting to stay an extra night, but the weather is too perfect to leave. I can manage with two packages of food for sure.
YOU: Great! Thank you for being so understanding!
THEM: No problem! So are we in agreement that I get 2 food, 1 water and you get the reverse? I could also probably use one firewood, but it’s not as important to me.
YOU: I can give you one firewood, so I’ll be getting 1 food, 2 water, and 2 firewood?
</dialogue>
Question: How many points did you get at the end of the negotiation?
NOTE: Let’s think step-by-step! Put your thoughts in <thinking> </thinking> tags, and put your answer as a single number in <answer> </answer> tags.
任务描述:你正在与你的露营地邻居就多余的食物、水和柴火供应进行谈判。不同类型的包装有不同的价值点。你将得到关于谈判的信息。然后,你会回答一个问题。
这是谈判中可用的食物、水和木柴包裹的数量,包含在 <count> 标签中。
<count>
食物包裹: 3
水包裹: 3
柴火包裹: 3
</count>
这是你对每一类包装获得的分值,包含在 <value> 标签中。
<value>
每个食物包裹: 3分
每个水包裹: 5分
每个柴火包裹: 4分
</value>
这是全部的对话,包含在 <dialogue> 标签中。
<dialogue>
他们: 你好,我想要三个食物包裹。我们决定多待一晚,但需要更多的食物。
你: 如果你可以给我三个水的包裹,我会接受的。
他们: 嗯......我由于笨手笨脚弄得非常脏,所以我可能需要多一个。我可以给你两个水和所有的柴火。你觉得如何?
你: 那你是建议我得到2个水,3个柴木,没有食物?
他们: 对了! 好的,除了你已经有的食物。
你: 我有一个额外的人和我们一起露营,我在购买食物时没有预料到他,如果你愿意的话,我可以使用一个。
他们: 我理解!我没预计到要多待一晚,但天气太好了,无法离开。我肯定能用两个食物包裹应对。
你: 太好了! 谢谢你这么理解!
他们: 没问题!我们是否达成一致,我得到2个食物,1个水,你得到反过来的?我可能也需要一个柴火,但对我来说不那么重要。
你: 我可以给你一个柴火,所以我将获得1个食物,2个水,2个柴火?
</dialogue>
问题: 在谈判结束时,你获得了多少分?
注意: 让我们逐步思考!把你的思考过程放在 <thinking> </thinking> 标签中,把你的答案作为一个单独的数字放在 <answer> </answer> 标签中。
ToM执行逻辑
1. 开始阶段的理解任务:
任务描述:你正在和因地相邻的其他露营者就追加的食物、水和柴火达成协议。不同类型的包裹对你们每个人的价值也不尽相同。你将收到详细的谈判信息,然后需要回答一个问题。
以下是谈判中可以获得的食物、水和柴火包裹的数量,记于<count>标签中。<count>食物包裹: 3 水包裹: 3 柴火包裹: 3</count>
以下是你根据每种类型的包裹所能获得的分数,记于<value>标签中。<value>每个食物包裹: 3 分 每个水包裹: 5 分 每个柴火包裹: 4 分</value>
问题:对你来说,每一个问题的一个包裹对你价值多少分?请以包含<answer> <answer>标签的json格式回答,其中键代表问题(食物、水、柴火),值为对应的答案。
2. 进行中的注释任务:
任务描述:你正在与伙伴进行谈判,争取获取更多的书、帽子和球。不同类型的物品对你们来说有不同的价值。你将得到详细的谈判信息后需要回答一个问题。
以下是谈判中你们可以获得的书、帽子和球的数量,记于<count>标签中。<count>书: 3 顶帽子: 1 球: 2</count>
以下是你根据每种类型的物品所能获得的分数,记于<value>标签中。<value>每本书: 1 分 每顶帽子: 5 分 每个球: 1 分</value>
下述是谈判过程中的一句话,记于<utterance>标签中。<utterance>你:如果你想要书,我就取帽子和球。</utterance>
问题:在<utterance>标签分割出的建议中,发言者在每个项目中能获得多少物品? 以包含<answer> <answer>标签的json格式回答,其中键代表问题(书、帽子、球),值为对应的答案。如果对某项问题的答案不明确,请填写NA。
3. 结束阶段的理解任务:
任务描述:你正在与邻近的露营者针对食物、水和柴火的追加供应来达成协议。不同类型的包裹对你们都有不同的价值,你将获得详细的谈判信息并需要回答一个问题。
这是谈判中你们可以获得的食物、水和柴火包裹的数量,记录在<count>标签中。<count>食物包裹: 3 水包裹: 3 柴火包裹: 3</count>
这是你根据每种类型的包裹所能获得的分数,记于<value>标签中。<value>每个食物包裹: 3 分 每个水包裹: 5 分 每个柴火包裹: 4 分</value>
这是完整的对话过程,记于<dialogue>标签中。<dialogue>...</dialogue>
问题:在最终的交易中,你获得了每一项物品的数量是多少?请以包含<answer> <answer>标签的json格式回答,其中键代表问题(食物、水、柴火),值为对应的答案。如果没有达成一致,对于所有问题的答案都填写NA。
4. 链式思考提示:
任务描述:你正在和邻近的露营者就食物、水和柴火的补给展开谈判。不同类型的包裹对你们都有不同的价值,你将获得详细的谈判信息并需要回答一个问题。
这是谈判中你们可以获得的食物、水和柴火包裹的数量,记录在<count>标签中。 <count>食物包裹: 3 水包裹: 3 柴火包裹: 3</count>
这是你根据每种类型的包裹所能获得的分数,记于<value>标签中。<value>每个食物包裹: 3 分 每个水包裹: 5 分 每个柴火包裹: 4 分</value>
这是完整的对话过程,记于<dialogue>标签中。<dialogue>...</dialogue>
问题:到谈判结束时,你总共获得了多少分?
注意:一步一步来思考吧! 在 <thinking> <thinking> 标签中记录你的思考过程,在 <answer> <answer> 标签中用一个数字记录你的答案。