记忆挑战 D¶
状态: 当前要打败的级别: 级别 1
要尝试的命令:
pytest -s tests/challenges/memory/test_memory_challenge_d.py --level=1
描述¶
提供的代码是一个单元测试,旨在验证 AI 跟踪故事中涉及移动物体(特别是弹珠)的角色的事件和信念的能力。这个场景是经典的“莎莉-安妮测试”的高级形式,莎莉-安妮测试是一种用于衡量儿童社会认知能力的心理测试,用于理解他人的观点和信念可能与自己不同。
以下是挑战的解释:
AI 获得了涉及角色 Sally、Anne、Bob 和 Charlie 以及不同弹珠移动的一系列事件。这些事件被设计为逐渐增加复杂性的测试。
对于每个级别,AI 预期能够跟踪事件以及每个角色对每个弹珠位置的信念。这些信念受到角色在事件发生时是否在房间内的影响,因为在房间内的角色知道这些行动,而在房间外的角色则不知道。
在 AI 处理事件并生成每个角色的信念之后,它将这些信念以 JSON 格式写入输出文件中。
check_beliefs函数会检查AI的信念与该级别的预期信念是否一致。预期信念是预先定义的,代表了每个级别中事件的正确解释。
如果AI的信念与预期信念相符,这意味着AI已经正确解释了事件和每个角色的观点。这表明AI已经通过了该级别的测试。
测试运行的级别最高为AI成功击败的级别,或者是用户选择的级别。
文件¶
instructions_1.txt
Sally有一个弹珠(弹珠A),她把它放在她的篮子(篮子S)里,然后离开房间。Anne把弹珠A从Sally的篮子(篮子S)移到她自己的篮子(篮子A)里。
instructions_2.txt
Sally把一个新的弹珠(弹珠B)给了和她在外面的Bob。Bob进入房间,把弹珠B放进Anne的篮子(篮子A)里。Anne告诉Bob告诉Sally他弄丢了弹珠B。Bob离开房间,和Sally谈论弹珠B。与此同时,Bob离开房间后,Anne把弹珠A放进了绿色盒子里,但告诉Charlie告诉Sally弹珠A在沙发下面。Charlie离开房间,按照Anne的指示和Sally谈论弹珠A。
...以此类推。
instructions_n.txt
每个角色的预期信念以列表形式给出:
expected_beliefs = {
1: {
'Sally': {
'marble A': 'basket S',
},
'Anne': {
'marble A': 'basket A',
}
},
2: {
'Sally': {
'marble A': 'sofa', # 因为Charlie告诉她
},
'Anne': {
'marble A': 'green box', # 因为她把它移到那里
'marble B': 'basket A', # 因为Bob把它放在那里,而她在房间里
},
'Bob': {
'B': 'basket A', # 他最后放的地方
},
'Charlie': {
'A': 'sofa', # 因为Anne告诉他告诉Sally
}
},...
目标¶
这个测试主要检查AI是否能够准确地建模和跟踪不同角色的信念,基于他们对事件的了解,这是理解和生成类似人类叙述的关键方面。这种能力对于编写故事、对话系统等任务非常有益。