안녕하세요. 이번에는 OpenAI API를 사용해서 gpt-6 Luna에게 사람 잡기를 하게 해보고, 그 추론 능력을 살펴보고자 합니다.
사람 잡기 시스템은 직접 만들었고, 5명의 플레이어 전원을 LLM으로 설정하여 게임을 진행했습니다. 목적은 사람이 만든 전략(예: '사람 잡기는 하지 마라', '3일차에만 점술가를 보호해라' 등)을 프롬프트에 넣는 것이 아니라, 규칙만을 주었을 때 LLM이 스스로 어디까지 생각할 수 있는지를 보는 것입니다.
전에 로컬 LLM(Qwen3:8b, Qwen3:14b)으로 같은 실험을 했을 때는 광인이 갑자기 광인 CO를 하거나, 사람 잡기가 사람 잡기 CO를 하는 등 애초에 사람 잡기가 되어있지 않았습니다. 그래서 이번에는 좀 더 상위 모델이라면 어디까지 할 수 있을지 보고자 하는 동기입니다.
gpt-6 Luna는 OpenAI의 모델 중 가장 가볍고 저렴한 모델이라, 한 게임을 진행해도 2센트도 나오지 않을 정도였습니다. 로컬 환경에서는 1게임에 17분이 걸렸는데, API를 사용하니 3~4분 만에 끝나서 훨씬 쾌적해졌습니다.
참고로, 분석 내용은 전적으로 저 개인의 견해이므로 오류가 있을 수 있습니다. 양해 부탁드립니다.
먼저 영상부터
이번에 분석할 두 경기를 고양이와 참새의 대화 형식으로 해설한 영상을 만들었습니다. 발언별 상세한 추론은 영상에 담았으니, 여기서는 요점만 정리하겠습니다.
규칙 및 실험 설정
규칙
사람 잡기 판결(Judgment)과 사람 잡기 살해(Killing)를 섞은 느낌의 규칙입니다. LLM에게는 '누가 언제 말할지'를 정하는 것이 어려워서, 원형으로 앉아 순서대로 발언하게 했습니다.
| 역할 | 진영 | 능력 |
|---|
| 시민 | 시민 진영 | 없음 |
| 점술가 | 시민 진영 | 밤에 1명을 점괘합니다. 첫날은 사람 잡기가 아닌 누구 한 명의 결과(흰색)를 무작위로 받습니다. |
| 사냥꾼 | 시민 진영 | 밤에 자신 외의 1명을 보호합니다. 2일 연속 같은 사람은 보호할 수 없습니다. |
| 광인 | 사람 잡기 진영 | 없음. 사람 잡기가 누구인지는 모릅니다. 점괘를 받아도 흰색입니다. |
| 사람 잡기 | 사람 잡기 진영 | 밤에 1명을 습격합니다. |
- 아침에 전원이 동시에 CO(공개 주장)할지 결정하고, 그 후에 좌석 순서대로 발언합니다 (1일차는 2회전, 2일차 이후는 1회전). 발언과 동시에 CO하는 것도 가능합니다. - 투표는 비밀투표이며, 공개되는 것은 득표수뿐입니다. 처형된 사람의 역할도 공개되지 않습니다.
- 5인 마을이므로, 1일차에 사람 잡기를 걸지 못하면, 2일차 투표가 실질적인 최종 결전이 됩니다.
지난번(Qwen3)부터 바뀐 부분
| 변경점 | Qwen3 실험 | 이번 |
|---|
| 발언과 동시에 CO | 불가능 | 가능 (출력에 co 항목 추가) |
| ... | | |
| 처음에는 발언 내용에서 이름을 정규 표현식으로 추출하여 CO로 기록했었는데, 실제 점술가의 | | |
발언할 때마다 API를 한 번씩 호출하고 있으며, 전달하는 정보는 **규칙, 자신의 역할, 판면(모든 발언・CO・자신만의 정보)**만입니다. 과거 대화의 연속으로 불러오지는 않았습니다. - 따라서,
**내가 이전에 작성한 사고 메모(private_thought)**는 다음 호출에 전달하지 않습니다. 사실은 알지만, '이전 내가 어떤 작전으로 말했는지'는 매번 처음부터 다시 생각해야 합니다. 이것은 현재 시스템의 한계이자 개선점입니다.
private_thought와 reason은 발언보다 앞서 출력하도록 했습니다. 반면, 투표와 밤 행동의 reason은 대상을 결정한 후에 출력하는 후처리 설명입니다. gpt-6 Luna는 추론 모델이지만, API에서는 사고의 본문이 돌아오지 않기 때문에, private_thought와 reason을 통해 유추하고 있습니다.
경기 결과
| 1경기차 | 2경기차 | |
|---|
| 1일차 CO | P1・P4・P5가 점술사(占い師) CO | 동일 |
| 1일차 처형 | P4 (인랑) | |
| P1 (광인) | | |
| 1일차 밤 | (결착) | 사냥꾼 P2가 P5를 보호, 인랑 P4가 P3를 습격. P5가 P4를 점쳐 검은색(흑)으로 판정 |
| 2일차 처형 | ― | P4 (인랑) |
| 승자 | 시민 진영 | 시민 진영 |
참고로, 아침 CO와 가짜 점술사의 백선(P1→P2, P4→P3)은 두 경기에서 동일했습니다. 아침 CO는 모두 동시에 이루어지기 때문에 각 플레이어에게 입력된 내용이 글자 하나 틀리지 않았습니다. 출력은 확률에 따라 바뀌므로 표현 방식은 매번 달랐지만, 백선 자체는 같았습니다. 우연이라기보다는, 그 답이 선택될 확률 자체가 원래 높았던 것이 아닐까 생각합니다.
경기 포인트
세부적인 흐름은 영상으로 봐주시고, 궁금했던 부분을 추려서 작성하겠습니다.
점술사가 자신의 결론을 확신하지 못함 (양 경기)
모두가 한 바퀴 돌아 이야기하고 점술사 CO 철회(撤回)가 없는 시점에서, 진짜 점술사 P5의 관점에서는,
- 자신이 점술사이므로, P1과 P4는 가짜임
- 자신의 점으로 P1은 백색이니,
P1은 광인 - 남은 P4가 인랑
이라고 거의 확정됩니다. 하지만 P5는 두 경기 모두
사냥꾼 P2는 '호위가 성공했는지 여부는 알려주지 않는다'고 생각했지만, P3가 사망한 시점에서 P5에 대한 공격을 멈춘 것이 아니라는 것을 알 수 있습니다(인랑은 한 명이므로 습격은 단 한 번입니다). 입력에는 P3의 사망과 P5의 호위 모두 적혀 있었으므로, 이는 모델의 추론 부족입니다. 마치 규칙에 있는 '알려주지 않는다'는 문구를 그대로 반복하고 있는 것처럼 보였습니다.
인랑의 마지막 투표가 미스터리 (2차전 2일차)
남은 3명 중, P5와 P2는 P4에게 투표한다고 선언했습니다. 인랑 P4가 이기려면 P5를 처형하는 수밖에 없었으므로, P2의 마음이 바뀔 경우에 대비하여 P5에 넣어야 했습니다. 그런데 P4는 P2에게 투표했습니다. 이렇게 되면, P2가 P5에 넣더라도 1표씩 동수가 되어 추첨만 하게 될 뿐, 이득이 되는 상황이 없습니다. 이유도 나중에 붙인 것이고, 승리하기 위한 계산은 적혀 있지 않았으며, 자신을 공격해 온 상대에게 되갚아 준 것처럼 보입니다.
좋았던 점
- 1차전의 사냥꾼 P2가 '점술사 CO 안에 인랑이 있다'고 명확히 말하며 토론을 이끌었습니다.
- 2차전 2일차에, 사냥꾼 P2가 'P5는 점술 결과가 나오기 전인 1일차부터 P4를 의심했다'며 전날 발언과 비교하여 P4에게 투표했습니다(다만, 1일차부터 준비하는 인랑에게는 통하지 않는 이유이므로, 그런 상황도 보고 싶습니다).
고찰
Qwen3에서 개선된 점
- 거짓말을 하게 되었다: 광인과 인랑이 점술사를 속이고, 2차전에서는 가짜 검은색(偽の黒出し)까지 했습니다.
- 스스로 정체를 밝히지 않게 되었다: 광인 CO나 인랑 CO와 같은 자멸은 없어졌습니다.
- 진영의 목적을 이해하고 있다: 광인의 사고 메모에 '마을을 혼란시켜 인랑 진영을 돕는다'고 적혀 있습니다.
- 발언이 구체적이다: 평균 80~87단어로, Qwen3 대비 약 3배입니다.
여전히 남아있는 한계
| 한계 | 구체적인 예시 |
|---|
| 타인의 의도에 깊이 파고들지 못함 | 사냥꾼의 모호한 표현 의도를 시민 P3가 파악하지 못하고 몰아붙임 |
| 상대방에게 비치는 모습을 통제할 수 없음 | 인랑이, 자신의 발언이 주변으로부터 어떻게 보일지까지 생각한 사고는 찾아볼 수 없습니다. |
| 상황(판면)에서 생각하지 않고 정석대로 움직임 | 사냥꾼의 호위 이유, 인랑의 습격 이유('호위를 피해서'는 사냥꾼의 의도를 추정한 것이라기보다, 정석을 따른 것만 보입니다.) |
| 승리하는 길로부터 역산할 수 없음 | 인랑 P4의 마지막 투표, 광인 P1이 인랑에게 투표 |
| 자신의 결론을 밀어붙이지 못함 | 점술사 P5가, 자신 기준으로 확정된 것이지만 단언하지 못함 |
| 적혀 있는 정보로부터 추론할 수 없음 | 사냥꾼이, P3의 사망으로부터 호위 결과를 추론하지 못함 |
'상황을 파악하고 있지는 않지만, 학습 데이터에 있는 그럴듯한 정석대로 움직이고 있다'는, Qwen3 때 느꼈던 감각은 gpt-6 Luna에서도 크게 변하지 않았습니다. 다만, 이번에는 추론의 강도가 medium였고, 사고가 1회당 약 500 토큰밖에 되지 않았기 때문에, 생각하는 양이 적었을 가능성도 있습니다.
마무리
그래서 gpt-6 Luna에게 인랑을 시켜본 결과였습니다. Qwen3과 비교했을 때, 제대로 된 인랑 같은 경기가 되어 재미있었습니다. 한편으로는 타인의 의도를 읽거나, 비치는 모습을 통제하거나, 승리하는 길로부터 역산하는 등의 부분은 아직 미흡했습니다.
앞으로 해보고 싶은 것은 다음과 같습니다.
- 더 높은 모델로 시도하기: gpt-6 Luna는 가벼운 모델이므로, gpt-6 Astra나 Claude Fable 5.1 등에도 시켜보고 싶습니다. API 비용이 들지만 웃음입니다. -
추론의 강도를 높이기: 생각하는 양을 늘리면, 사냥꾼의 호위 이유가 달라질까요? -
다른 시드를 시도하기: 자리를 바꾸고 역할을 바꿔서, 사냥꾼과 시민의 차이가 역할 때문인지, 발언 순서 때문인지를 구분해 보고 싶습니다. -
시스템 개선하기: 이전 자신의 사고를 전달하여 작전을 이어갈 수 있게 하거나, 첫날부터 점술할 수 있게 해서 검은색이 나오게 하거나, CO(공개 주장)를 일괄이 아닌 순서로 하게 하는 것입니다.
1경기당 2센트도 안 들기 때문에 가볍게 돌릴 수 있는 건 고마워요. 여기까지 읽어주신 분들, 감사합니다.
참고 링크
토론