저희 회사 에이전트가 도구를 고를 때 쓰는 안내 프로그램은 도구 설명 글의 맨 앞부분만 읽고 그 뒤는 아예 보지 못합니다. 여러 도구나 기능을 등록해 쓰는 에이전트를 운영하면서 그 설명 글을 얼마나 길게 써야 할지 고민한 적 있다면 이 글이 도움이 됩니다. 미리 밝히자면 이 논문은 실제 정답 숫자가 아니라 그 숫자를 재는 방법만 담고 있습니다.

300자 창 안에서 어떤 특징이 라우팅을 가르는가를 형상화한 이미지 글의 핵심 개념을 형상화했습니다.

쉽게 말하면

가게가 이천 개 넘게 늘어선 커다란 상가 거리를 떠올려 보세요. 손님이 원하는 가게를 찾으려면 간판을 봐야 하는데, 손님은 너무 바빠서 간판 앞부분 글자만 잠깐 보고 지나갑니다. 간판 뒷부분에 좋은 설명이 아무리 많이 적혀 있어도 손님이 이미 지나쳐 버렸다면 그 글자는 없는 것과 마찬가지입니다.

저희 회사 에이전트도 똑같이 움직입니다. 도구를 소개하는 설명 글이 간판이고, 그 간판을 훑어보는 안내 프로그램이 손님입니다. 지금 이 상가에는 간판이 2,275개 걸려 있고, 안내 프로그램은 그중에서 앞부분 글자 300자만 보고 어느 가게로 들어갈지 정합니다.

즉, 사람 말로는 간판은 꼼꼼한 설명문이 아니라 짧은 광고 문구인 셈입니다. 이 논문은 그 짧은 광고 문구 안에서 어떤 글자가 손님의 발길을 붙잡는지 알아내는 자를 만듭니다. 다만 이번 논문은 그 자만 만들었을 뿐, 자로 실제 잰 값은 아직 나오지 않았습니다.

문서와 광고판을 대비한 슬라이드 왼쪽은 제약 없이 상세하게 나열하는 문서이고, 오른쪽은 약 2,000개의 동료 간판과 검색 엔진의 눈길을 두고 정해진 크기 안에서 경쟁하는 광고판입니다. 안내 프로그램이 앞부분만 보기 때문에, 경쟁에서 이기는 글자는 관습이 아니라 오직 측정으로만 정할 수 있습니다.

무엇을 해봤나

지금 서비스 중인 안내 프로그램은 이미 각 설명 글의 앞 300자만 읽습니다. 나머지 글자는 안내 프로그램을 쓰는 다른 부분에는 있는데 정작 안내 프로그램 자신은 보지 못하는 자리에 가려져 있습니다.

300자 제약을 설명한 슬라이드 안내 프로그램에 해당하는 Skill Router는 각 설명 글의 앞 300자만 읽습니다. 완벽하게 쓴 설명이라도 300자를 넘어가면 안내 프로그램에게는 존재하지 않는 글자가 됩니다.

이 창을 늘리면 정답을 더 많이 맞힐 수 있을 것 같지만, 그만큼 값도 치러야 할 수 있습니다. 안내 프로그램이 엉뚱한 가게를 고르거나 아무 가게도 고르지 못하면 손님은 원하는 일을 시작해 보지도 못하고 멈춥니다. 반대로 창을 너무 넓게 열어 두면 설명 글은 매번 다시 읽히는 자료이다 보니 그만큼 더 많은 글자를 매번 값 치르고 읽는 셈이 됩니다.

라우팅 실패와 비용이라는 두 갈래 문제를 그린 슬라이드 창을 늘리는 문제는 라우팅 실패(정확도)와 컨텍스트 비용(경제성)이라는 두 갈래로 갈립니다. 이 논문은 창 크기를 ‘토큰-품질 노브’라고 부르며, 이 노브 값이 지금까지 관습으로만 정해져 있었다고 짚습니다.

그래서 연구팀은 이 창 크기를 실제로 하나씩 늘려 가며 정확도가 어떻게 움직이는지 재는 절차를 짰습니다. 실험에서는 모델을 부르지도, 인터넷에 접속하지도 않습니다. 구성마다 바뀌는 것은 창 크기 하나뿐이라, 정확도가 오르내리는 이유를 그 창 크기 하나로만 설명할 수 있습니다.

창 크기는 300자에서 시작해 자르지 않는 전체 글자까지, 여섯 단계 사다리 모양으로 늘려 놓았습니다.

창 크기 사다리를 나타낸 막대그래프 이 연구가 조작하는 변수는 글자 단위 설명 글 앞부분 길이입니다. 실제 서비스 중인 ‘current’ 값과 자르지 않는 ‘full’ 값은 이 사다리 밖에 있는 값으로 따로 둡니다. 사다리의 각 칸은 설계한 창 크기이지 실측한 정확도가 아닙니다.

창 크기와 별개로 한 가지를 더 뺐다 넣었다 하며 시험합니다. 300자 창 안에 든 “이럴 땐 쓰지 마라”는 문장을 빼고 다시 재는 것입니다. 좁은 창에서 이 문장을 빼자 순위가 오른다면, 그 문장이 정작 필요한 열쇠말이 앉을 자리를 빼앗고 있었다는 직접 증거가 됩니다.

점수를 매기는 방식은 의미를 이해하는 검색이 아니라 글자를 그대로 맞춰 찾는 BM25 방식이고, 모든 구성에서 그대로 둡니다. 안내 프로그램마다 정답을 1등으로 맞히는지, 상위 다섯 개 안에 담아내는지, 가짜 정답을 피하는지 세 가지로 점수를 매깁니다. 63개의 확인 문제도 똑같이 고정해 두어 점수 차이가 창 크기 하나로만 설명되게 합니다. 그리고 확인 문제마다 몇 자짜리 창에서 처음으로 정답을 맞히는지도 하나하나 기록합니다. 그래서 어느 설명 글이 몇 번째 글자에서 잘려 손해를 보는지까지 지도로 그릴 수 있습니다.

마지막으로 안내 프로그램이 실제로 서비스에 쓰는 것과 같은 자료 위에서 쟀는지도 확인합니다. 전체 설명 글로 목록을 처음부터 다시 만들고, 새로 지은 것과 지금 서비스가 쓰는 것이 같은 결과를 내는지 맞춰 봅니다. 대상은 1,978개, 그러니까 약 2,000개짜리 스킬 목록입니다.

전체 측정 절차를 요약한 다이어그램 개념도입니다. 바뀌는 것은 설명 글 창 크기(그리고 빼보기 실험에서는 하지 마라 문장)뿐이고, 스킬 목록과 채점 방식과 63개 확인 문제는 그대로 둡니다. 그래서 정확도 차이는 설명 글 편집 하나로 귀속됩니다.

이 연구가 내놓는 것은 이 절차 자체입니다. 설명 글을 얼마나 길게 쓸지가 관습이 아니라 잴 수 있는 값으로 바뀝니다.

나온 결과

이번 논문에는 아직 실제로 잰 정확도 숫자가 없습니다. 대신 두 가지가 먼저 나왔습니다.

첫째는 지금 안내 프로그램이 이미 손해를 보고 있다는 사실입니다. 안내 프로그램은 두 가지 방식을 같이 씁니다. 하나는 설명 글 전체를 읽는 방식이고, 다른 하나는 앞부분 300자만 읽고 글자를 그대로 맞춰서 찾는 방식입니다. 그런데 실제로 어느 가게를 고를지 정하는 것은 뒤쪽, 그러니까 300자만 보는 방식입니다. 즉, 사람 말로는 지금 서비스는 오늘 당장 늘릴 수 있는 정보보다 더 적은 정보로 손님을 맞고 있는 셈입니다.

두 채널 구조를 나타낸 다이어그램 개념도입니다. 지금 서비스는 비대칭입니다. 설명 글 전체를 읽는 채널과 앞 300자만 읽고 정답을 고르는 채널이 따로 있습니다. 그래서 300자 창 구성은 오늘 서비스보다 엄밀히 정보가 더 적습니다.

둘째는 창 안에 어떤 글자가 있으면 유리한지에 대한 관찰입니다. 한글 열쇠말의 비율, 영문 핵심 단어 개수, 하지 마라 문장이 있는지 여부, 열쇠말이 몇 번 등장하는지, 이 네 가지가 스킬마다 1등으로 뽑히는 비율과 함께 움직입니다. 다만 논문은 이것을 단순한 관찰로만 적어 두고 원인이라고 말하지 않습니다. 창을 실제로 바꿔 본 창 크기 사다리와 하지 마라 문장 빼보기 실험만이 원인을 말할 수 있는 자리로 남습니다.

그래서 무엇을 바꾸면 되나

첫째, 저희 회사 스킬 목록 약 2,000개에 적용할 설명 글 작성 규칙은 감이 아니라 이번 측정이 정해 줍니다. 열쇠말을 어디에 둘지, 영문 핵심 단어를 몇 개나 넣을지, 창 크기 상한을 몇 자로 잡을지를 실측으로 정할 수 있습니다. 이 규칙은 앞선 연구가 52.9%까지 끌어올린 안내 프로그램의 1등 맞히기 비율을 더 올리고, 매번 다시 읽히는 설명 글의 비용을 줄이는 방향으로 향합니다.

둘째, 이 규율은 저희만의 것이 아닙니다. 여러 도구나 기능을 등록해 쓰는 에이전트 환경이라면 어디든 같은 문제를 안고 있습니다. 수백, 수천 개를 등록하는 팀이라면 설명 글을 얼마나 길게 써야 할지 더는 짐작할 필요가 없습니다. 자 한 자를 늘릴 때마다 정확도가 얼마나 오르는지 재 본 뒤, 그 곡선이 평평해지는 자리에서 창 크기를 정하면 됩니다.

셋째, 이 논문의 값어치는 결과가 나오기 전부터 있습니다. 설명 글 창만 바꾸고 나머지는 전부 고정한 채 컴퓨터 안에서 끝나는 실험이라서, 스킬 목록을 가진 어떤 안내 프로그램에도 그대로 옮겨 쓸 수 있습니다. 목록을 다시 지어도 같은 결과가 나오는지 확인하는 절차는 실제로 서비스가 쓰는 자료 위에서 쟀다는 주장의 기준이 됩니다.

넷째, 다만 지금 단계에서 창 크기를 성급하게 확정하지는 않습니다. 실제 정확도 복구 곡선이 나오기 전까지는 이번 절차가 알려 주는 방향만 참고하고, 숫자에 기대는 결정은 다음 편으로 미룹니다.

논문 표지 슬라이드 논문 제목과 범위를 요약한 표지입니다. 300자 창 안에서 어떤 글자가 라우팅을 가르는지 재는 절차를 다룹니다.

못 믿을 부분

이 연구에는 아직 잰 값이 없습니다. 논문은 재는 절차를 설계한 것이고, 다시 지은 목록과의 대조 확인도 앞으로 나올 모든 정확도 값과 함께 뒤따릅니다. 이것이 첫 번째로 믿지 말아야 할 지점이자, 이 글을 방법론 소개로 읽어야 하는 이유입니다.

점수를 매기는 방식은 의미를 이해하는 검색 없이 글자를 그대로 맞추기만 하는 방식입니다. 그래서 결과가 의미 기반 검색 방식에는 그대로 옮겨지지 않을 수 있습니다. 확인 문제도 63개로 손수 만든 것이라 전체 질문 범위에 비하면 좁고, 그 위에서 나오는 1등 맞히기 비율 차이는 거칠게 나올 수밖에 없습니다.

창 안에 있는 글자 특징과 스킬별 성적 사이의 관계는 원인이 아니라 관찰입니다. 관찰된 상관관계를 원인으로 읽을 수는 없고, 논문 스스로도 그 선을 긋습니다. 스킬 목록 규모도 약 2,000개라는 한 지점일 뿐이라, 이보다 훨씬 작거나 큰 목록에서는 창 크기 사다리의 모양이 다르게 휠 수 있습니다.


논문 상세 페이지: https://thakicloud.com/tech-blog/ko/research/routability-under-budget/

본문 수치는 1,978개(약 2,000개) 스킬 목록과 63개 확인 문제를 기준으로 한 설계값입니다. 실제 정확도 값은 아직 측정되지 않았고, 이 글도 그런 값을 주장하지 않습니다.

태그: 에이전트 하네스, bm25, causal-attribution, description-metadata, multilingual-triggers, retrieval-accuracy, 스킬 라우팅, token-budget, truncation

카테고리:

업데이트: