Executive Summary
LG CNS 연구진이 9월 4일 arXiv에 올린 논문 한 편이 학습 데이터를 만드는 순서를 뒤집었다. 도구를 쓰는 에이전트의 학습 데이터를 합성할 때 보통은 그럴듯한 시나리오를 먼저 대량으로 지어내고 나서 이상한 것을 걸러낸다. 이 팀은 한국 공공 API 도구 2,318개를 놓고, 한 도구의 출력이 다른 도구의 입력으로 들어가는지를 살아 있는 엔드포인트에 실제로 호출해 확인한 다음, 통과한 연결만 남은 그래프 위를 걸어 다니며 궤적을 만들었다.
큰 모델이 그럴듯하다고 점수를 준 후보 연결 가운데 실제로 작동한 것은 50.2%였다. 어느 쪽이 죽은 연결인지는 불러 보기 전에는 갈리지 않았고, 가려내지 못한 채 만든 궤적이 그대로 학습 라벨이 된다. 이렇게 걸러 낸 데이터로 학습한 90억 파라미터 모델은 세 배 큰 270억 파라미터 기본 모델과의 격차를 1.7%p까지 좁혔다.
3절까지는 논문이 보고한 내용이다. 4절에서 실행이 보증한 범위를 되짚고 우리 도메인의 실행 지점을 묻는 대목은 논문에 없는 이 글의 해석이다.
주요 수치
출처: Kim et al., Multi-Step Tool-Calling over Korean Open Public APIs, arXiv:2609.05395(2026-09-04, EMNLP 2026 산업 트랙 채택)
50.2% → 62.7%
실제로 작동하는 연결의 비율
모델이 고른 후보 그래프에서 호출로 걸러 낸 그래프로
1.7%p
9B 학습 모델과 27B 기본 모델의 격차
145개 과제 pass@1 0.4310 대 0.4482, 파라미터는 3분의 1
+22.6%p
학습에서 통째로 뺀 플랫폼의 개선폭
4B 모델 pass@4, 벤치마크 전체 개선폭 +15.9%p보다 크다
224,958건
호출 하나가 돌려준 최대 레코드 수
중앙값 27건, 기존 합성 데이터셋은 중앙값 1건
큰 모델이 고른 연결의 절반만 실제로 작동했다
연구는 벤치마크를 만드는 데서 시작한다. 이름은 KOPA-Bench다. 교통, 금융, 교육, 법률, 정치, 지자체 행정 여섯 개 도메인에서 공공 API 플랫폼 열 곳을 골랐고, 선정 기준은 세 가지였다. 공공기관이 실제로 API로 열어 두는 도메인을 고르게 덮을 것, 플랫폼 사이에 호출을 이어 붙일 수 있을 것, 공공누리 라이선스가 파생물을 허용할 것. 각 플랫폼의 공식 문서를 파싱해 MCP 서버로 구현하니 도구 2,318개가 나왔고, 하나하나가 살아 있는 엔드포인트에 물려 있다. 과제는 145개, 평균 다섯 번을 호출해야 답이 나오고 많게는 열네 번까지 간다. 59%는 병렬 호출을 포함한다.
논문이 첫 장에서 보여 주는 실패는 두 가지다. 하나는 코드 조회를 건너뛰는 것이다. 기업명으로 바로 질의를 던지지만 그 API는 법인코드를 요구하고, 그 사이에 조회 한 번이 더 있어야 한다. 다른 하나는 페이지네이션을 무시하는 것이다. 응답이 여러 장으로 나뉘어 오는데 첫 장만 읽고 답을 끝낸다. 부록에 실린 금융 도메인 과제 하나에 두 문제가 한꺼번에 들어 있다. 라이트론이 2026년 1월에 발행한 전환사채를 찾아 어제 종가가 리픽싱 하한가보다 몇 퍼센트 높은지 계산하라는 질문이다. 법인코드 조회, 전환사채 발행결정 조회로 하한가 532원 확보, 전일 종가 1,680원 조회, 마지막에 계산으로 215.78%. 네 단계 중 하나만 빠져도 답이 나오지 않는다.
이런 과제를 풀 학습 데이터를 만들려면 어떤 도구의 출력이 어떤 도구의 입력이 되는지를 먼저 알아야 한다. EDGE라 이름 붙인 파이프라인의 1단계는 그 지도를 그리는 일이다. 도구 2,318개를 모두 짝지어 보는 것은 감당이 안 되므로, 시그니처 임베딩 검색으로 도구마다 후보를 좁힌다. 같은 도메인에서 15개, 결합이 드문 다른 도메인에서 10개다. 그렇게 남은 후보마다 Qwen3.5-122B를 한 번 불러 실현 가능성 점수와 파라미터 대응 관계를 받고, 점수가 0.3에 못 미치면 버린다. 여기까지가 기존 그래프 기반 합성 파이프라인들이 멈추는 자리이기도 하다. 논문이 관련 연구에서 정리한 바로는 Magnet과 BUTTON, APIGen-MT가 시그니처나 모델이 제안한 계획으로 호출을 잇고, ToolACE는 검증 단계를 따로 두되 그 검증이 살아 있는 API를 향하지는 않는다. 이들이 공유하는 가정은 둘이다. 연결을 불러 보지 않고 고정한다는 것, 그리고 호출 하나가 결과 하나를 돌려준다고 본다는 것.
무엇을 근거로 점수를 매기라고 시켰는지는 부록의 프롬프트에 그대로 실려 있다. 그 프롬프트는 필드 이름이 달라도 뜻이 같으면 묶으라고 명시한다. SIGUN_NM과 REGION_NM과 rgn이 모두 지역명을 뜻한다는 대응표를 붙여 놓고, 이름이 다르다는 이유로 연결을 버리지 말라고 못 박는다. 뜻으로 판단하라는 지시다. 그리고 뜻이 맞는 연결이 호출로도 되는지는 별개의 물음이다.
2단계에서 순서가 뒤집힌다. 그래프를 그려 놓고 바로 쓰는 대신, 경로를 뽑아 살아 있는 API에 실제로 호출해 본다. 100번 반복하고 회차마다 경로 500개를 뽑는다. 어느 연결을 시험할지는 톰프슨 샘플링으로 고르고, 성공과 실패는 각 연결의 베타 사후분포를 갱신한다. 실패는 두 종류로 나눠 다르게 다룬다. 대응 자체가 틀려서 나는 구조적 실패는 크게 벌하고, 일시적인 서버 오류 같은 환경적 실패는 가볍게 벌한다. 그렇게 하지 않으면 우연한 오류가 멀쩡한 연결을 죽인다. 사후 확률이 기준선 아래로 내려간 연결은 그래프에서 잘라 낸다.
같은 후보 집합에서 출발했는데 실제로 작동하는 연결의 비율은 50.2%에서 62.7%로 올라갔다. 12.5%p의 차이가 전부 실행에서 나온 셈이다. 잘라 낸 쪽을 따로 재 보면 작동 비율이 14.8%에 그친다. 가지치기가 무작위였다면 두 집합의 비율이 비슷해야 하니, 이 격차 자체가 "진짜 안 되는 연결만 골라냈다"는 증거가 된다. 잘라 낸 연결의 70.5%는 시험 내내 한 번도 성공하지 못했고, 남긴 쪽에서 같은 수치는 27.7%다.
이 수치들은 루프가 끝난 뒤의 단면이지만, 진행 중인 지표도 같은 방향을 가리킨다. 100번의 반복 동안 뽑아 본 경로의 통과율은 31%p, 단계별 호출 성공률은 28%p 올랐다. 그래프가 임의로 뒤바뀐 것이 아니라 실행되는 의존 관계 쪽으로 점점 모였다는 뜻이다.
논문은 각 연결의 사전 점수와 사후 확률을 한 장의 산점도에 함께 찍었다. 남은 연결과 잘린 연결은 모델이 매긴 사전 점수 축에서는 갈리지 않고 실행 이후의 사후 확률 축에서 갈린다. 점수를 높게 받은 연결도 호출이 반박하면 잘려 나갔다. 교정은 양쪽으로 났다. 0.6 이상을 받고도 대각선 아래로 내려앉은 연결이 흔했고, 0.3 이하를 받고 위로 올라온 연결도 있었다. 그렇게 잘라 낸 연결이 10,174개인데 그중 한 번도 불러 보지 않고 잘린 것은 없다. 최소 두 번은 시험한 뒤에야 자르도록 걸어 둔 덕이다. 모델의 판단과 실행의 결과는 서로 다른 정보였다.
응답이 수만 건이면 연결은 일대일이 아니다
검증된 그래프가 있어도 그 위를 걸어 궤적을 만드는 일이 바로 되지는 않는다. 한국 공공 API는 호출 하나가 0건을 돌려주기도 하고 수십만 건을 돌려주기도 한다. EDGE가 만든 말뭉치에서 호출의 74.1%가 두 건 이상을 반환했고, 이어지는 호출의 81.2%가 위쪽 값 하나에 아래쪽 호출 하나가 붙는 관계가 아니었다. 이어진 값의 중앙값은 27건, 최대는 224,958건이다. 앞 호출이 지자체 목록을 500개 돌려줬는데 다음 도구가 지자체 코드 하나를 받는 자리라면, 연결이 있다는 사실만으로는 무엇을 넣을지 정해지지 않는다.
그래서 접합점을 개수로 유형화한다. 팬아웃 예산을 5로 두고, 넘어오는 값이 하나면 순차, 둘에서 다섯이면 팬아웃으로 그 수만큼 병렬 호출, 다섯을 넘으면 파생으로 분류한다. 파생에서는 최댓값이나 최솟값, 임계 조건, 최빈값 같은 내부 처리 노드를 하나 끼워 다섯 개 이하로 줄인 다음 다음 도구로 넘긴다. 단일 접합 순차 궤적 613개 가운데 팬아웃과 파생이 398개로 64.9%를 차지했다. 일대일 템플릿만 쓰는 합성 방식으로는 애초에 만들 수 없는 궤적이 다수를 차지한 셈이다.
순차 궤적만으로 학습하면 4B 모델의 pass@1이 0.2327에 그치고, 병렬과 혼합을 넣으면 0.3080, 말뭉치 전체를 쓰면 0.3094가 된다. 네 번 중 한 번이라도 맞히는 비율에서는 차이가 더 벌어져 전체가 0.4690, 병렬과 혼합만 쓴 쪽이 0.4000이다. 순차 궤적은 접합점에서 값을 넘기는 절차를 가르치고 병렬 쪽은 한 줄로 펼 수 없는 비교와 조건을 가르치니, 두 계열이 서로를 대신하지 못한다는 뜻이다.
기존 도구 사용 데이터셋과 나란히 놓으면 이 차이가 분명해진다. 논문이 비교 대상으로 삼은 네 데이터셋은 모두 일대다 연쇄가 10% 아래이고 중앙값 카디널리티가 1이다.
| 데이터셋 | 환경 | 일대다 연쇄 | 중앙값 | 최대 |
|---|---|---|---|---|
| ToolBench-v1 | RapidAPI | 1.9% | 1 | 127 |
| APIGen-MT | τ-bench | 10.0% | 1 | 16 |
| Nemotron | τ²-bench | 1.6% | 1 | 15 |
| ToolACE | 합성 | 4.5% | 1 | 10 |
| EDGE | KOPA-Bench | 81.2% | 27 | 224,958 |
출처: arXiv:2609.05395 표 11. 일대다 연쇄는 이어지는 호출 가운데 위쪽 값이 여럿인 경우의 비율, 중앙값과 최대는 이어진 값의 개수.
유형별로 궤적을 만든 다음에는 그 궤적에 붙일 한국어 질문과 정답을 큰 모델이 짓는다. 여기서부터는 실행이 아니라 판정이 품질을 맡는다. 규칙 기반 1단계가 재현되지 않는 사례와 형식 오류, 중복을 걷어내고, 2단계에서는 채점할 수 없는 질문과 답이 질문에 이미 드러난 사례, 중간 호출이 장식에 그치는 사례를 독립된 두 모델이 합의할 때만 버린다. 3단계는 정답 자체를 의심한다. 기존 파이프라인들이 정답을 고정된 참조로 두는 것과 달리, 모든 과제를 독립적으로 다시 풀어 더 나은 답이 나오면 저장된 답을 교체한다. 학습 라벨이 되는 것은 오픈소스 모델의 출력뿐이고, 상용 모델은 검증에만 쓴다. 2단계의 합의를 맡은 두 심판이 Qwen3.5-397B-A17B와 GPT-5다.
걸러 내기의 몫도 숫자로 나와 있다. 거르지 않은 데이터로 학습한 4B 모델의 pass@1이 0.242이고, 거른 데이터로는 0.309다. 6.7%p 차이다. 무엇이 걸러졌는지는 부록의 예시가 보여 준다. 한국어 질문에 중국어와 일본어 토막이 섞여 들어온 사례가 있고, 중간 호출을 건너뛰어도 답이 나오도록 질문이 답을 미리 흘린 사례가 있다. 두 번째 사례가 특히 눈에 걸린다. 질문을 짓는 프롬프트는 이어 주는 값을 질문에 드러내면 그 단계를 건너뛸 수 있다며 절대 노출하지 말라고 지시하고, 출력 전에 다섯 항목을 자가 점검하라고까지 시켜 두었다. 그 지시를 받은 모델의 출력에서 필터가 유출을 찾아낸 것이다.
9B 모델이 27B와의 격차를 1.7%p까지 좁혔다
이렇게 만든 1,781건으로 Qwen3.5 계열 4B와 9B를 GRPO로 학습했다. 보상은 최종 응답과 환경 상태가 맞았는지만 보는 0 또는 1이다. 아래는 논문 표 1에서 뽑은 값으로, 과제마다 네 번씩 굴린 롤아웃의 평균이다.
| 모델 | KOPA pass@1 | KOPA pass@4 | BFCL 멀티턴 |
|---|---|---|---|
| Claude Sonnet 4.6 (상용) | 0.4655 | 0.8207 | 60.13 |
| GPT-5.1 (상용) | 0.3706 | 0.4690 | 38.12 |
| Qwen3.5-27B (기본) | 0.4482 | 0.5655 | 65.38 |
| Qwen3.5-9B (기본) | 0.3275 | 0.4690 | 52.25 |
| Qwen3.5-9B (EDGE 학습) | 0.4310 | 0.5517 | 58.12 |
| Qwen3.5-4B (기본) | 0.1758 | 0.3103 | 49.08 |
| Qwen3.5-4B (EDGE 학습) | 0.3094 | 0.4690 | 53.12 |
출처: arXiv:2609.05395 표 1. pass@1은 네 번의 롤아웃 평균, pass@4는 네 번 중 한 번이라도 맞힌 비율.
9B 모델의 pass@1은 0.3275에서 0.4310으로 올랐다. 파라미터가 세 배인 27B 기본 모델이 0.4482이니 격차가 1.7%p로 좁혀졌다. 논문은 이를 3분의 1 크기로 27B에 근접했다고 적었다. 4B 모델은 0.1758에서 0.3094로 올라, 기본 상태의 9B보다 근소하게 낮은 자리까지 왔다.
표에 상용 모델을 함께 둔 이유는 벤치마크의 난도를 보여 주기 때문이다. Claude Sonnet 4.6이 0.4655, GPT-5.1이 0.3706이다. 145개 과제를 한 번에 절반 넘게 푸는 모델이 없다. pass@1에서는 EDGE로 학습한 9B가 GPT-5.1을 앞선다. 다만 네 번까지 허용하면 그림이 달라져 Claude가 0.8207, 9B 학습 모델이 0.5517이다. 한 번에 맞히는 비율에서 좁혀졌을 뿐, 기회를 더 주면 벌어지는 격차다.
오른 원인이 데이터인지 학습 방법인지도 갈라 봤다. 같은 1,781건과 같은 기본 체크포인트에 GRPO 대신 지도 미세조정만 걸어도 4B 모델의 pass@1이 0.1758에서 0.2724로 오른다. 최종 개선폭 13.4%p 가운데 9.7%p가 여기서 나오는 셈이라, 저자들은 개선의 대부분이 학습 목적함수가 아니라 말뭉치에서 온다고 적었다. GRPO가 더하는 몫은 네 번 중 한 번이라도 맞히는 비율에서 뚜렷하게 보인다. 0.3586에서 0.4690으로 11.0%p 오른다. 같은 과제 집합을 쓰므로 이 차이는 데이터 양에서 오지 않는다. 과제 하나에서 뽑아내는 신호의 양에서 온다. 지도 미세조정은 검증된 궤적 하나를 흉내 내고 교사 이상으로는 가지 못하는 반면, GRPO는 같은 문제를 여러 번 굴려 그 상대적 보상에서 배운다.
이 격차를 인용할 때 표를 섞으면 안 된다. 부록 C는 같은 실험을 서로 다른 시드 여덟 개로 다시 재서 더 보수적인 값을 낸다. 그 표에서 9B 학습 모델은 0.4138, 27B 기본 모델은 0.4681이라 격차가 5.4%p로 벌어진다. 저자들은 두 추정치의 결론이 같다고 밝히면서, 학습 모델과 기본 모델의 95% 신뢰구간이 겹치지 않으니 개선 자체는 통계적으로 유의하다고 적었다. 헤드라인으로 쓰기 좋은 숫자는 표 1 쪽이고, 견고성을 확인하는 숫자는 부록 쪽이다.
학습 분포 밖에서도 같은 방향이 나왔다. 영어권 함수 호출 벤치마크인 BFCL에서 9B 모델은 멀티턴 52.25에서 58.12로, 단일 호출은 82.40에서 87.65로, 라이브 항목은 78.09에서 81.57로 모두 올랐다. 학습 데이터가 대부분 한 번에 끝나는 궤적인데도 여러 차례 주고받는 대화 설정에서 개선폭이 가장 컸다.
같은 공공 API 풀 위에서 학습하고 평가했으니 오염을 따져야 한다. 평가 질문이 학습 데이터에 그대로 나온 사례는 145개 중 0개다. 도구 풀은 62.2%가 겹치는데, 저자들은 이를 같은 공공 API 풀을 공유한 결과이지 오염이 아니라고 구분했다. 그리고 합성 단계에서 통째로 뺀 플랫폼만 따로 재 봤다. 서울 열린데이터광장 기반 10개 과제와 DART·KRX 기반 21개 과제, 합쳐서 31개다. 4B 모델의 pass@4가 0.2903에서 0.5161로 올랐다. 31개 중 9개에서 16개로, 22.6%p 개선인데 같은 모델이 벤치마크 전체에서 얻은 15.9%p보다 크다. 특정 플랫폼의 호출 절차를 외웠다면 나오기 어려운 방향이다.
겹침을 연결 수준에서 보면 그 구분이 한층 분명해진다. 도구는 62.2%가 겹치는데, 평가 과제가 요구하는 의존 연결 178건 가운데 학습 데이터에 나온 것은 하나도 없다. 자카드 유사도가 0.000이다. 의존 관계를 따지지 않고 그냥 잇달아 부른 호출 쌍까지 세는 느슨한 기준으로 봐도 95.6%가 학습에 없던 것이다. 같은 도구를 쓰되 잇는 방식이 달랐다.
본 적 없는 플랫폼에서 개선폭이 더 컸다는 대목이 이 논문에서 가장 강한 증거다. 실행으로 검증한 것은 특정 API의 사용법이 아니라 "출력을 받아 다음 입력으로 넘긴다"는 절차 자체였고, 모델이 가져간 것도 그 절차였다.
실행이 보증한 것은 어디까지인가
여기까지가 논문이 보고한 내용이다. 데이터를 다루는 쪽에서 이 결과를 옮겨 쓰려면 먼저 범위를 정확히 그어야 한다.
실행이 대체한 것은 그래프의 의존성 링크 하나다. 이 연결이 살아 있는 API에서 실제로 작동하는가라는 물음, 그 하나만 호출이 답했다. 궤적에 붙일 질문과 정답을 짓는 자리, 이상한 사례를 걸러내는 자리에는 여전히 모델의 판정이 앉아 있다. 합성 과정 전체를 실행이 떠맡은 것이 아니라, 나머지 판정이 딛고 설 바닥을 실행이 먼저 깔아 준 구조에 가깝다. 그 바닥이 없으면 뒤의 필터가 아무리 촘촘해도 죽은 연결 위에 지은 궤적을 걸러내지 못한다. 애초에 그 궤적은 형식적으로 멀쩡해 보이기 때문이다. 남은 판정 층도 장식은 아니다. 2절에서 본 6.7%p가 그 층이 실제로 값을 하는 몫이고, 답을 흘리지 말라는 규칙을 프롬프트에 적어 두는 것만으로는 그 몫이 확보되지 않는다는 것도 2절의 유출 사례가 말해 준다.
저자들이 스스로 적은 한계도 셋이다. 살아 있는 엔드포인트에 물려 있다는 것은 스키마와 가용성과 반환값이 시간에 따라 변한다는 뜻이라, 실시간 데이터에 묶인 과제를 걸러내고 상태를 해시로 대조해도 정확한 재현은 통제 밖의 공공 서비스 안정성에 달려 있다. 벤치마크와 파이프라인이 모두 한국 공공 부문 API 위에 세워져 있어, 다른 언어나 민간 API, 다른 나라 행정 시스템으로 얼마나 옮겨 가는지는 열어 두었다. 기존 합성 파이프라인들과 같은 조건에서 끝까지 겨뤄 본 것도 아니다. 그 방식들의 공통 성질만 스켈레톤 그래프로 근사해 대조군으로 삼았고, 시스템 수준의 비교는 범위 밖이라고 밝혔다.
누가 낸 연구인가. 저자 다섯 명은 모두 LG CNS 소속이고, 논문은 EMNLP 2026 산업 트랙에 채택됐다. 온프레미스 LLM 에이전트 구축을 실제로 수주하는 회사가 낸 산업 응용 연구라는 뜻이다. 연구는 과학기술정보통신부의 소버린 AI 파운데이션 모델 프로젝트 지원을 받았고, 코드와 데이터는 공개돼 있다. 동료평가를 통과했고 3자 검증에 해당하는 감사도 붙어 있으니 결과를 의심할 이유는 없지만, 학계의 중립 연구로 읽을 자리는 아니다.
그래서 이 논문을 읽는 페블러스 쪽 관심은 공공 API 자체보다 한 가지 물음에 가 있다. 합성 데이터의 품질을 사후 판정으로 재는 대신 생성의 사전 조건으로 밀어 넣을 수 있다면, 우리 도메인에서 그 사전 조건에 해당하는 값싼 신호는 무엇인가. EDGE가 쓴 신호는 호출 성공과 실패라는 이진값이었다. 피지컬 AI 쪽으로 옮겨 오면 시뮬레이터에서 물리 엔진을 한 번 굴려 보는 것, 계획한 동작을 실제 하드웨어에서 한 번 실행해 보는 것이 후보가 된다. 다만 이 물음은 논문이 던진 것이 아니다. 저자들은 한국 공공 API 밖으로의 전이를 향후 과제로 남겼다.
판정 모델은 그럴듯함을 잰다. 실행은 되는지 안 되는지를 잰다. 둘은 다른 정보이고, 이 논문의 산점도가 그 사실을 그림 하나로 보여 준다. 우리 도메인에서 이진값 하나를 얻는 비용이 얼마인지가 이 방법을 옮겨 올 수 있는지를 결정한다.
Editor's Note
페블러스가 합성 데이터를 다루는 방식은 사후 평가 쪽이다. 등록특허 제10-2969403호는 충실도와 유용성, 프라이버시 세 축으로 품질 점수를 산출하고 그 점수로 기여도를 배분한다(관련 글). EDGE가 세운 사전 검증과는 시점이 다르고, 서로를 대체하지 않는다. 만들 때 실행으로 거르고 만든 뒤에 지표로 재는 두 층위가 붙었을 때 무엇이 달라지는지가 다음에 확인할 대목이다.
여기까지 읽어 주신 데 감사드린다. 이 글의 수치는 arXiv:2609.05395 원문 전문에서 직접 확인했고, 표 1과 부록 C처럼 값이 갈리는 대목은 어느 쪽 표인지 본문에 적었다. 코드와 데이터는 EDGE-KOPA 저장소에 공개돼 있다. 사내 도메인에서 합성 데이터의 실행 검증 지점을 잡아 본 경험이 있다면 어떤 신호를 썼는지 나눠 주시면 좋겠다.
참고문헌
- 1.Kim, D., Cho, E., Kim, K., Noh, S., Lim, K. (2026). "Multi-Step Tool-Calling over Korean Open Public APIs: A Benchmark and a Data-Synthesis Recipe." arXiv:2609.05395v1, EMNLP 2026 산업 트랙 채택. — LG CNS, EDGE 파이프라인과 KOPA-Bench 벤치마크.
- 2.Kim, D. et al. (2026). "EDGE-KOPA 코드·데이터 저장소." GitHub.