Skip to content
isdnetworks
Go back

공유 기억이 무엇을 꺼낼지는 사람 프롬프트 155개로 재서 순위식과 거리 상한을 골랐다

지식 그래프를 원문 저장소로 바꾸면서 가장 크게 달라진 것은 「무엇을 꺼낼지」를 고르는 자리다. 그래프는 쓸 때 LLM 이 사실을 골라 두었다. 아틀라스는 쓸 때 아무것도 고르지 않으므로, 꺼낼 때의 순위식과 거리 상한이 그 일을 모두 맡는다. 이 두 값은 감으로 정하지 않고, 실제 세션의 프롬프트로 재서 골랐다.

Table of contents

Open Table of contents

배경 — 그래프와 무엇이 달라졌나

그래프 시절의 문제는 꺼낸 것의 정확도가 쓸 때의 추출 정확도에 묶여 있었다는 점이다. 추출을 맡길 모델 4종이 모두 기준을 넘지 못했으므로, 꺼내는 쪽을 아무리 다듬어도 틀린 사실이 섞일 수 있었다. 아틀라스에서는 꺼내는 것이 원문이라 틀린 요약이 섞이지 않는다. 대신 원문은 길고 많아서, 몇 개를 어떤 기준으로 넣을지를 잘못 정하면 세션의 맥락만 채우고 도움은 안 된다.

측정 — 시험 설계

질의는 실제 세션의 사람 프롬프트 155개로 했다. 30~1,500자 사이에서 세션당 최대 8개를 뽑았고, 정기 점검 문장·예약 실행문·세션 간 메시지·시스템 알림처럼 사람이 쓰지 않은 틀은 뺐다. 후보는 운영과 같은 검색 함수로 받아, 질의 시각 이전의 기록만, 같은 세션은 빼고 모았다. 운영 검색과 상위 10개가 같고 거리 차가 최대 1.2e-7 인 것도 확인했다.

판정은 「이 기록이 그 프롬프트를 받은 세션에 도움이 됐는가」를 0·1·2 로 매겼다. 질의를 두 반으로 나눠, 한 반에서 각 식의 계수를 고르고 다른 반에서 평가했다. 같은 질의로 고르고 평가하면 그 질의에만 맞는 계수가 뽑히기 때문이다.

판단 — 순위식 다섯 후보

식내용nDCG@3C0 대비 (95% CI)
C0거리만0.338—
C1Generative Agents 꼴(관련성·최근성·중요도)0.535+0.197 (+0.125, +0.281)
C2계수 λ 0.0050.361+0.022 (+0.000, +0.067)
C3계수 d 0.7 · w 0.030.463+0.125 (+0.050, +0.210)
C4관련성 + 최근성 합0.543+0.205 (+0.122, +0.295)

채택 규칙은 미리 정해 두었다. 신뢰구간 하한이 0 보다 큰 식 중에서 nDCG 가 가장 높은 것을 고른다. C4 를 고른 이유는 이 규칙을 만족하는 식 가운데 nDCG 가 가장 높았기 때문이다. C4 는 S = sim + 0.3 · exp(−0.01 · 경과일), 즉 반감기 약 69일의 최근성 항을 더한다. 시간 항은 대화 턴에만 걸고, 메모리와 문서에는 걸지 않는다. 오래됐다고 덜 맞는 규칙이 아니기 때문이다. C1 도 거의 같게 좋았지만, 규칙을 미리 정해 둔 덕분에 「둘 다 좋으니 감으로 고른다」는 판단을 하지 않아도 됐다.

같은 판정으로 LLM 보조 정보도 시험했다. 머신 문서의 각 절에 LLM 이 만든 제목과 예상 질문을 붙여 임베딩하면 nDCG@3 이 0.647 에서 0.582 로 오히려 떨어졌다. 대화 턴에 LLM 이 매긴 중요도 점수를 넣어도 0.517 에서 0.524 로 차이가 없었는데, 점수가 중앙값 85 에 몰려 조각을 가르지 못했다. 두 가지 모두 채택하지 않았다. 쓰기에서 LLM 을 뺀 결정을 실측이 한 번 더 받친 셈이다.

결과 — 거리 상한과 줄어든 주입량

순위를 정한 뒤에는 몇 개를 넣을지가 남는다. C4 로 상위 3개를 자른 뒤 거리 상한 D 로 거르는 방식에서, D 에 따라 이렇게 달라졌다.

D넣은 줄 중 쓸모쓸모 없는 질의에서 0줄줄/질의
0.400.5151/540.35
0.480.4636/541.22
0.500.4225/541.58
상한 없음0.320/543.00

상한 없이 3개를 늘 넣으면 질의당 3줄이 들어가고, 그중 쓸모 있는 줄은 32% 다. D 0.48 에서는 질의당 1.22줄로 주입량이 59% 줄면서 쓸모 비율은 46% 로 오른다. 도움이 될 기록이 하나도 없는 질의 54개 중 36개에서는 아무것도 넣지 않는다. 쓸모 비율은 0.38~0.48 구간에서 평평하다가 0.50 에서 떨어졌다. 그래서 권고는 0.48 로 냈고, 최종 값은 운영 판단으로 올렸다. 상한을 거는 대가는 쓸모 있는 기록이 있는 질의 101개 중 48개에서는 쓸모 있는 기록을 하나도 넣지 못한다는 점이다(상한 없음은 82개 적중, D 0.48 은 53개).

도구를 부르기 직전에 넣는 주입도 따로 쟀다. 쓰기·실행 도구 150개와 읽기 도구 60개의 맥락에서, 후보 829개를 같은 방식으로 판정했다. 도구 맥락은 프롬프트보다 쓸모 있는 기록이 적어서, 같은 거리 상한을 그대로 쓰지 않고 별도 표로 정한다.

정리


Share this post on:

Previous Post
96만 통의 이전 통지 메일은 보내기 전에 받는 메일함이 있는지부터 확인했다
Next Post
공유 기억 저장소는 쓰는 길에서 LLM 을 빼고 수집 1분·업로드 5분 두 단계로 돌게 했다