문제가 생길 수밖에 없다는 걸 인정하면 시야가 트인다
몇주 전부터 생성형 AI 기반 게임을 만드는 회사를 돕기 시작했습니다. 그러다보니 '사용자에게 자유도를 얼마나 줘야 할까?' 라는 고민이 생겼어요.
사용자가 창의력을 재밌게 발휘할 수 있는 여지는 주고 싶지만, 그렇다고 아무 텍스트나 입력할 수 있게 해주면 정말 무슨 일이 벌어질지 모르니까요. 예를 들어 상인과 대화하다가 "(갑자기 날아온 운석에 맞고 마왕성이 무너졌다)"고 지문을 입력한다거나..?
기획팀에서 원래 시도하던 방향은 '사용자 입력에 반응하는 에이전트의 프롬프트를 최대한 잘 깎는다'였어요. '이상한' 사건이 발생하는 걸 어떻게든 막아보자는 전략이었는데요. 어느정도 작동하는 것 같긴 했지만 여전히 불안하다더군요.
저는 이 고민을 듣고 어떤 장면이 상상됐어요. 첨부한 그림이 그걸 Sora로 그려본 건데요. 자유로운 입력을 허용하면 과학자나 게이머 같은 사람이 많이 나올 것 같다는 생각이 들더군요.

그래서, "우연이든 의도든, 상상도 못할 시도를 해보는 사람이 분명 나올 거다. 100% 막는 게 불가능하다는 걸 인정하고 대처하자"고 제안했습니다.
이건 예전에 리스크 관리 쪽에서 들었던 이론이기도 했어요. 정확히 출처는 기억나지 않는데, 대략 이런 내용이었습니다.
일어날 문제를 100% 예측할 수 있어야 100% 대응이 되는데, 복잡계에서는 어떤 일이 일어날지 모른다. 따라서 문제를 모두 회피할 수 있게 전략을 짜는 건 불리하다. 회피하는 게 불가능하다는 걸 인정하고, 3가지 전략을 고민하는 게 더 유리하다.
1. 문제의 영향 범위와 정도가 작아지게 하기
2. 문제 발생을 빠르게 감지하고 리포트 받기
3. 리포트 받은 문제에 적절히 대응하기

논의 끝에 이렇게 해보기로 결론내렸어요.
- 상황에 맞는 선택지를 LLM이 생성해서 3개쯤 주고 선택하게 하자. 리롤 돌리는 기능도 제공. 유료 재화로 추가 리롤도 가능.
- 만약 유저가 맘대로 입력하고 싶다면 유료 재화로 기능 해금하게 하고, 뭔 일이 벌어질 수 있는지 알리자. "이제부터 일어나는 운명의 비틀림은 전부 당신의 선택에 따라 일어나는 일이다..."
- 선택지, 또는 유저 입력에 따른 결과는 LLM이 해석해서 게임 내 어떤 상태에 어떤 변화가 일어날지 계산. 계산 결과에 대한 대응은 LLM이 하지 않고 룰 기반으로 한다. 일어나면 안 되는 일이 생기면 못하게 하고(운명의 여신이 개입한다거나) 페널티를 준다(번개 맞고 체력이 깎인다거나)
- 유저에게 페널티를 주는 결과가 너무 자주 나오면 안 된다. 유저 입력에 대한 계산과 그 대응은 모두 DB에 기록해둔다. 페널티 결과가 나오면 슬랙으로 알림 받게 해서 운영진이 적절한지 판단한다.
이제 이걸 어떻게 구현하냐.. 가 문제지만, 아주 재밌을 것 같아요. ㅎㅎ
혹시 여러분도 어떻게든 모든 문제를 사전에 방지하려고만 하고 계시진 않으신가요? 예방 대신 대응 전략을 고려해보시면 새로운 길이 보일지도 모르겠습니다.
5/3 업데이트: 페이스북에서 권상호님이 알려주셔서, 제가 위 내용을 김창준님의 '실수는 예방하는 것이 아니라 관리하는 것이다'에서 배운 것이었음을 알게 됐습니다. 아주 좋은 글이니 추천드립니다!
일부만 인용해보겠습니다.
마이클 프레제는 회사에서의 실수 문화에 대해 연구를 했습니다. 그에 따르면 실수 문화에는 크게 두 가지가 있습니다. 실수 예방과 실수 관리. 실수 예방은 행동에서 실수로 가는 경로를 차단하려고 합니다. 즉, 실수를 저지르지 말라고 요구합니다. 근데, 사실 이것이 불가능에 가깝습니다. 전문가도 1시간에 평균 3-5개의 실수를 저지른다고 합니다.
그런데 왜 우리 세상은 그렇게 엉망이 아닐까요? 그것은 전문가들이 실수를 조기에 발견하고 빠른 조치를 취할 수 있기(early detection & quick recovery) 때문입니다. 실수는 어떻게든 할 수밖에 없는 대신 그 실수(예컨대 코딩하다가 ‘==’ 대신 ‘=’를 쳤다든지)가 나쁜 결과(서버가 도미노 현상을 내며 죽는다든가, 그걸로 수술 기계가 오동작해서 사람이 다치거나)로 연결되기 전에 일찍 발견하고 빨리 고치면 된다는 겁니다.
이 태도를 실수 관리라고 합니다. 사실 하나의 경로가 더 있는데, 이미 결과가 난 실수에 대해서는 학습을 통해 다음 행동할 때 이렇게 하자는 계획을 세우기도 합니다. 이를 2차적 실수 예방이라고 합니다.
실수 예방 문화에서는 실수한 사람을 비난하고, 처벌하고, 따라서 실수를 감추고 그에 대해 논의하기 꺼리며 문제가 생겼을 때 협력도 덜하게 됩니다. 반대로 실수 관리 문화에서는 실수가 나쁜 결과를 내기 전에 도와서 빨리 회복하는 것을 돕고, 실수를 공개하고, 실수에 대해 서로 이야기하고 거기에서 배우는 분위기가 생깁니다. ... 소위 심리적 안전감이라고 하는 것이 이 문화의 일부입니다.
Member discussion