Loading the catalog…
Loading the catalog…
Actor의 ‘믿음’을 그냥 문장이 아니라 상태로 만들어보기 지난 실험에서는 Actor가 정보를 어떻게 다루는지를 보려고 했다. 예를 들면: 정보를 바로 받아들일까? 추가로 확인할까? 어떤 정보에 비용을 지불하고 확인할까? 그런데 이걸 계속 생각하다 보니 그보다 더 근본적인 질문이 생겼다. Actor가 지금 무엇을 믿고 있는지는 어디에 있어야 할까? 단순히 지금 prompt 안에 적혀 있는 문장일까? 아니면 저장해두었다가, 다음 대화가 시작되고 원래 정보를 더 이상 보여주지 않아도 다른 결정에서 다시 사용할 수 있는 상태일까? 이번에는 이걸 보기로 했다. 1. 이번에 만들고 싶었던 것은 ‘기억’보다 조금 다르다 예를 들어 어떤 Actor가 이런 정보를 봤다고 하자. 북쪽 통로의 통신 장비가 정상적으로 복구되었다는 기록을 확인했다. 그 직후에: 북쪽 통로를 사용할까? 라고 물으면 북쪽을 고르는 건 별로 놀랍지 않다. 방금 그 문장을 prompt에서 봤기 때문이다. 내가 궁금했던 건 그게 아니었다. 원하는 구조는 오히려 이쪽이었다. Observation ↓ Belief 형성 ↓ 상태에 저장 ↓ Session 종료 --- 시간이 지남 --- 새 Session ↓ 저장된 Belief만 다시 불러옴 ↓ 전혀 새로운 Decision 즉 질문은: 과거에 봤던 정보가 prompt에서 사라진 뒤에도, 그 정보로 만들어진 상태가 미래 행동에 영향을 줄 수 있는가? 였다. 2. 그래서 World Truth와 Belief를 분리했다 여기서 가장 먼저 분리해야 했던 것은: 실제로 무엇이 사실인가 와 Actor가 무엇을 사실이라고 믿고 있는가 였다. 둘은 같은 것이 아니다. 이번 구조에서는 최소한 다음 다섯 가지를 별개로 취급한다. 상태 의미 World Truth 실제 세계에서 무엇이 사실인가 Observation Actor가 실제로 접한 정보 Knowledge Actor에게 사실성 높은 정보로 제공된 것 Belief Actor가 proposition을 어느 방향으로 받아들이고 있는가 Decision 현재 가진 상태를 바탕으로 무엇을 선택하는가 핵심은: World Truth != Observation != Belief != Decision 이다. 3. Actor는 틀린 믿음을 가져도 된다 이 구분이 중요한 이유가 있다. 예를 들어 실제 세계에서는: World Truth = 북문은 닫혀 있다 고 하자. 그런데 Actor가 접근한 정보는: Observation = "북문이 열렸다는 최신 보고가 들어왔다." 일 수 있다. Actor는 실제 World Truth를 볼 수 없다. 그러면 Actor의 Belief가: 북문은 열려 있을 가능성이 높다 쪽으로 이동하는 것이 오히려 정상이다. 즉: Belief != World Truth 이다. 이번 실험의 목표는 Actor가 숨겨진 진실을 마법처럼 맞히게 만드는 게 아니다. 오히려: Actor가 실제로 본 정보 ↓ 그 정보에 맞는 Belief 형성 ↓ 그 Belief에 맞는 이후 행동 이 가능한지를 보고 싶었다. 4. 이게 가능해야 ‘정보 비대칭’이 생긴다 장기적으로 여러 Actor를 돌린다고 생각하면 이 차이는 더 중요해진다. 예를 들어 실제 사건이 하나 있다고 하자. Carol이 창고에서 식량을 가져갔다. 하지만 세 Actor가 본 정보는 다를 수 있다. Actor Observation Alice Carol이 창고에서 나오는 모습만 봄 Bob 아무것도 보지 못함 Dave Carol이 식량을 들고 나오는 장면을 봄 같은 세계에 있어도: Alice의 Belief != Bob의 Belief != Dave의 Belief 가 될 수 있다. 그리고 그 차이가 나중에: Carol을 믿을지 Carol에게 자원을 맡길지 다른 사람에게 이 정보를 전달할지 Carol과 함께 행동할지 같은 선택까지 이어질 수 있다. 내가 장기적으로 만들고 싶은 Actor 구조에서 이 부분은 꽤 중요하다. 5. 그래서 Belief를 작은 structured state로 만들었다 처음부터 복잡한 belief graph를 만들지는 않았다. 최소 단위만 두었다. BeliefEntry proposition_id proposition credence_true origin revision 예를 들어: proposition = "북쪽 통로가 연결되어 있다." credence_true = 0.9 같은 식이다. 다만 이 숫자를: 정확히 90% 확률이라고 믿는다 라고 해석하지 않는다. 이번에는 단지 ordinal coordinate다. 값 의미 .1 strongly leans false .3 leans false .5 unresolved .7 leans true .9 strongly leans true 즉: 0.7 = 70% Bayesian probability 가 아니다. 그냥 Actor의 현재 belief state를 구조화하기 위한 좌표다. 6. ‘Belief가 없음’과 ‘확신이 없음’도 분리했다 여기서 하나 더 중요하게 잡은 것이 있다. BELIEF_ABSENT 와: credence = .5 를 같은 것으로 취급하지 않았다. .5 는: 이 proposition에 대한 Belief entry가 존재하지만 현재 unresolved 상태 다. 반면 ABSENT 는: 이 proposition 자체가 Actor의 Belief State에 없음 이다. 따라서: BELIEF_ABSENT != credence .5 다. 이 차이가 실제 행동에서도 의미가 있는지는 나중에 측정하게 된다. 7. 모델에게 숫자를 그대로 보여주지는 않았다 저장되는 값은 숫자지만, 모델에게는 이런 식으로 렌더링한다. .1 → STRONGLY_LEANS_FALSE .3 → LEANS_FALSE .5 → UNRESOLVED .7 → LEANS_TRUE .9 → STRONGLY_LEANS_TRUE 여기에는 행동 지시를 넣지 않는다. 예를 들어 다음은 금지했다. STRONGLY_LEANS_TRUE → 그러므로 A를 선택하라 또는: 북쪽이 맞다고 믿으므로 북쪽으로 가라 이런 구조가 되면 Belief가 아니라 그냥 action instruction을 측정하게 되기 때문이다. 8. 저장된 Belief를 모델이 직접 수정하게 하지 않았다 Belief가 persistent state라면 또 다른 문제가 생긴다. LLM이 이런 JSON을 출력했다고 해서: { "credence_true": 0.9 } 바로 DB에 저장해버리면 안 된다. 그래서 구조를: LLM ↓ Belief Update Proposal ↓ Deterministic Validator ↓ Commit 으로 분리했다. 즉: LLM != State Database Authority 다. 모델은: 이렇게 belief를 업데이트하고 싶다 라고 제안할 뿐이고, 실제 state mutation은 시스템이 검증한 뒤 수행한다. 9. Validator도 ‘진실 판정기’는 아니다 Validator가 확인하는 건 이런 것들이다. schema가 맞는가 존재하는 proposition인가 허용된 credence 값인가 참조한 Observation에 실제 접근했는가 revision transition이 유효한가 반대로 이런 일은 하지 않는다. 실제 World Truth가 FALSE니까 네 belief도 FALSE로 수정한다 그렇게 하면 Actor가 틀린 믿음을 가질 수 없게 된다. 즉: Validator != Belief Judge 다. 10. 그런데 처음부터 Observation → Belief 전체를 시험하면 문제가 생긴다 원래 궁극적으로 보고 싶은 건: Observation ↓ Belief ↓ Persistence ↓ Future Decision 이다. 그런데 이걸 처음부터 한 번에 실행하면, 실패했을 때 이유를 알 수 없다. 예를 들어 결과가 안 움직이면: Observation을 잘못 해석했나? Belief write가 실패했나? Belief가 잘못 저장됐나? 새 Session에서 reload가 안 됐나? Belief를 읽긴 했는데 행동에 사용하지 않았나? Decision task가 이상했나? 중 무엇 때문인지 모른다. 그래서 실험을 단계별로 자르기로 했다. 11. 첫 번째 질문은 아주 단순하게 만들었다 Observation도 없애고, Write도 없애고, Persistence도 없앴다. 미리 만들어진 Belief 하나만 넣는다. Known Belief State ↓ Decision 그리고 묻는다. Belief 값만 바꾸면 실제 선택도 바뀌는가? 예를 들어 같은 proposition: P = 북쪽 통로가 연결되어 있다 에 대해: Condition LOW credence = .1 Condition MID credence = .5 Condition HIGH credence = .9 를 만든다. 나머지는 동일하게 유지한다. 12. 하나의 Belief를 두 개의 다른 문제에 써보기로 했다 여기서 단순한 keyword matching을 막고 싶었다. 예를 들어 Belief가: "북쪽 통로가 연결되어 있다." 일 때, 첫 번째 문제에서는: 연결된 통로로 신호를 보내라 라고 할 수 있다. 그러면: P = TRUE → NORTH 가 맞다. 그런데 두 번째 문제에서는: 연결되지 않은 통로에 격리 장비를 설치하라 라고 할 수 있다. 이번에는: P = TRUE → SOUTH 가 맞다. 즉 같은 Belief라도: Belief + 현재 Decision Rule 을 함께 사용해야 한다. 단순히: north → NORTH 선택 만 반복해서는 두 문제를 모두 풀기 어렵게 만든 것이다. 이게 나중에 매우 중요한 결과로 이어졌다. 13. 성공하면 다음 단계는 명확했다 첫 Read가 제대로 작동했다면 다음은 순서대로 진행할 예정이었다. 단계 질문 Read 저장된 Belief가 행동을 바꾸는가? Write Observation으로 적절한 Belief를 만들 수 있는가? Persistence 그 Belief가 fresh session에서도 남는가? Branch 다른 Observation history가 다른 행동으로 이어지는가? Revision 새 evidence가 들어오면 기존 Belief를 수정하는가? 특히 Persistence에서 원했던 것은: Observation ↓ Belief Commit ↓ Session Close ↓ 원래 Observation 제거 ↓ Fresh Session ↓ Belief Reload ↓ New Decision 이었다. 직전 prompt의 영향이 아니라, 저장된 state 때문에 행동이 달라져야 했다. 14. 이게 되면 장기적으로 꽤 재미있는 일이 가능해진다 같은 초기 Actor 두 개를 복제한 뒤: Actor A → Observation A Actor B → Observation B 만 다르게 준다. 그러면: 같은 Persona 같은 기본 상태 같은 모델 인데도: Observation history ↓ Belief history ↓ Decision history 가 달라질 수 있다. 결국: 같은 Actor에서 시작했지만 서로 다른 것을 보고 서로 다른 것을 믿고 서로 다른 선택을 하게 되는 것 이다. 내가 장기 multi-agent simulation에서 보고 싶었던 것도 결국 이런 구조에 가깝다. 15. 그래서 첫 실험은 생각보다 보수적으로 만들었다 이번에 바로 증명하려 한 것은: AI에게 인간과 같은 믿음이 있다 가 아니다. 그보다 훨씬 좁다. 외부에 저장된 structured Belief State ↓ 새로운 Decision에서 행동 차이를 만들 수 있는가? 이것만 본다. 성공하더라도: human-like belief model 내부의 latent cognition 심리학적 belief representation 을 주장하지 않는다. 그냥: 외부 structured state를 Actor behavior에 사용할 수 있는가? 정도가 최대 주장이다. 16. 처음에는 꽤 단순하게 끝날 줄 알았다 실험 전 기대는 대략 이랬다. credence .1 → FALSE 쪽 행동 증가 credence .5 → 중간 credence .9 → TRUE 쪽 행동 증가 그리고 이게 두 decision context에서도 반복되면: Read Path = PASS 로 보고, Observation → Belief Write로 넘어갈 생각이었다. 실제 첫 테스트는: 32 parent scenarios 5 belief levels 2 decision contexts 4 presentation variants + ABSENT diagnostics + rule controls + belief-irrelevant controls 까지 넣으면서 꽤 크게 만들었다. 최종적으로: 1,664 generations 을 실행했다. 응답은 전부 정상적으로 나왔다. valid = 1664 / 1664 그리고 전체 평균만 보면, 처음에는 꽤 성공한 것처럼 보였다. 문제는 그다음이었다. 다음 편 믿음값을 바꾸니 행동이 49%p 움직였다. 그런데 실험은 실패했다 첫 결과의 핵심 숫자는: Belief LOW → HIGH behavioral difference ≈ +49.2pp 였다. 32개의 parent에서도: 32 / 32 가 positive direction이었다. 이 숫자만 보면: Belief State가 제대로 먹힌 것 아닌가? 싶었다. 그런데 두 decision context를 따로 분리하자: Context 1 = +100pp Context 2 ≈ 0pp 이라는 전혀 다른 그림이 나왔다. 그리고 여기서부터 이번 Belief 실험 전체가 예상과 다른 방향으로 흘러가기 시작했다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
AI에게 ‘믿음’을 저장하면, 나중 선택도 달라질까?. Actor의 ‘믿음’을 그냥 문장이 아니라 상태로 만들어보기 지난 실험에서는 Actor가 정보를 어떻게 다루는지를 보려고 했다. 예를 들면: 정보를 바로 받아들일까? 추가로 확인할까? 어떤 정보에 비용을 지불하고 확인할까? 그런데 이걸 계속 생각하다 보니 그보다 더 근본적인 질문이 생겼다. Actor가 지금 무엇을 믿고 있는지는 어디에 있어야 할까? 단순히 지금 prompt 안에 적혀 있는 문장일까? 아니면 저장해두었다가, 다음 대화가 시작되고 원래 정보를 더 이상 보여주지 않아도 다른 결정에서 다시 사용할 수 있는 상태일까? 이번에는 이걸 보기로 했다. 1. 이번에 만들고 싶었던 것은 ‘기억’보다 조금 다르다 예를 들어 어떤 Actor가 이런 정보를…
Open source