AI Engineer — 컨퍼런스 발표 아카이브
에이전트를 실제로 굴려 본 사람들이 무엇에서 막혔고 무엇으로 뚫었는지. 발표 한 편을 번호글로 옮겨 담습니다.
발표 한 편이 카드 한 장입니다. 글의 형식은 둘입니다. 논지가 앞의 말에서 뒤의 말로 굴러가는 발표는 한 생각에 번호 하나를 매겨 늘어놓고, 구조를 설명하는 발표는 그림을 앞세운 보고서로 씁니다. 어느 쪽이든 맨 위의 「한줄 코멘트」가 판단이고 그 아래가 거기까지 가는 걸음입니다.
자막 전문에서 옮겼고, 발표자가 자기 회사를 파는 대목은 그렇다고 밝혀 두었습니다. 숫자는 발표에 나온 것만 싣습니다.
31편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
라이브 AI 튜터 에이스(Ace)를 인트로·티치·체크·그레이드·어드밴스·랩 여섯 단계 상태 머신으로 쪼개, 모델에게는 한 번에 한 단계만 좁은 계약으로 넘기고 다음 단계 판단은 하네스가 맡는 구조가 나옴. 이 덕분에 오퍼스 4.7 대신 하이쿠 4.5로도 같은 신뢰도를 내면서 비용·지연을 줄였다고 밝힘. 에이전트 성공률이 동전 던지기 수준이면 모델의 결정권부터 걷어내라는 기준도 제시함.
▾한줄 코멘트. 오퍼스 4.7 대신 하이쿠 4.5로도 됐다는 대목이 눈에 띄는데, 모델을 줄여서 잘된 것이 아니다. 하네스가 「지금 몇 단계인가·다음은 무엇인가·끝났는가」를 전부 가져가 모델에 남은 일이 「이번 단계에 무슨 말을 할까」 하나로 줄어든 뒤에야 작은 모델이 버텼다. 하네스를 안 만든 채 모델만 하이쿠로 갈아 끼우면 신뢰성은 오히려 떨어진다.
마이크로소프트의 오넬라와 조엘이 라이브 AI 음성 튜터 에이스(Ace)를 만들었다. 학생과 말을 주고받으며 레슨 하나를 처음부터 끝까지 끊기지 않게 진행하는 제품이다.
여러 단계로 이어지는 *에이전트를 실제로 배포해 본 사람은 같은 장면을 본다. 데모까지는 잘 돌다가 진짜 사용자가 붙으면 중간에서 무너진다. 절반쯤 가서 스스로 끝났다고 판단하거나, 단계 하나를 건너뛰거나, 같은 자리를 맴돈다.
누구나 처음 잡는 해법은 프롬프트를 더 강하게 쓰고 빠져나갈 구멍을 규칙으로 메우는 것이다. 발표자들은 이 진단이 틀렸다고 본다. 신뢰성이 안 나오는 원인은 약한 프롬프트가 아니라 모델에게 준 통제(control) 권한이라는 것이다.
두 사람이 든 비유가 배우와 감독이다. 모델은 배우이고 *하네스는 감독이다. 배우는 대사 한 줄을 훌륭하게 소화한다. 그런데 지금이 여섯 장면 중 세 번째인지 기억하는 일에는 형편없다.
그래서 두 사람은 기억하라고 요구하는 것 자체를 그만뒀다.
상태가 어디에 있나
전부 모델에 맡길 때
하네스가 흐름을 쥘 때
에이스에서 레슨 하나는 여섯 단계를 오가는 *상태 머신이다. 인트로, 티치, 체크, 그레이드, 어드밴스, 랩 순서다. 발표는 단계 이름만 대고 각 단계가 안에서 무엇을 하는지는 설명하지 않는다.
중요한 것은 단계를 쪼갰다는 사실이 아니다. 단계를 넘기는 판단을 모델 바깥으로 옮겼다는 것이다. 조엘은 에이스를 만들 때 「지금 단계가 무엇인가」와 「그다음에 올 수 있는 단계가 무엇인가」를 먼저 따졌다고 밝혔다.
한 단계가 도는 순서
학생이 답을 말함
이 단계에 필요한 입력만 넘긴다
행동 하나의 결과를 돌려준다
결과를 검증하고 상태를 다음으로 넘긴다
다음 말과 화이트보드
각 단계는 모델에게 *좁은 계약을 하나씩 보낸다. 이 한 가지만 하고 결과를 돌려달라는 형태다. 돌아온 결과를 하네스가 검증하고, 상태를 다음으로 넘기고, 다음에 무엇을 할지 정한다. 조엘의 표현으로는 모델이 제안하고 하네스가 결정한다.
발표 중반에 조엘이 실제 레슨 하나의 로그 녹화를 틀었다. 화면 오른쪽에 하네스 네 갈래가 각자 돌고 있는 기록이 흘렀다.
레슨 하나에 붙은 하네스 넷
| 하네스 | 무엇을 다루나 |
|---|---|
| 섹션 | 지금 무엇을 말하고 무엇을 할지 입력을 만들어 넣는다 |
| 화이트보드 | 화이트보드에 그리는 일 |
| 대기열 | 대기열을 비우는 일 |
| 마무리 | 레슨을 끝내는 절차 |
에이스에서 특히 공들인 판단은 셋이다. 레슨이 언제 끝났는지, 학생이 정말로 이해했는지, 다음에 무엇을 할지. 이 세 범주에 들어가는 모든 질문과 모델이 취해야 할 모든 행동을 모델 바깥에서 미리 설계해 뒀다.
조엘은 오늘날 프런티어 모델, 예를 들어 앤트로픽의 오퍼스 4.7(Opus 4.7) 같은 모델을 사람들이 생각부터 처리까지 전부 맡기는 데 쓴다고 짚었다. 좋을 때도 있지만 학생과 실시간으로 말을 주고받는 라이브 튜터에서는 늘 통하지 않는다. 여기서는 신뢰성과 비용과 속도가 한꺼번에 필요하기 때문이다.
하네스로 흐름을 붙잡고 나자 무거운 오퍼스 4.7 대신 훨씬 작고 추론 능력도 떨어지는 하이쿠 4.5(Haiku 4.5)로 내려갈 수 있었다. 그런데도 기대한 수준으로 작동했고 비용과 시간과 지연을 아꼈다고 한다.
이 대목만 떼어 「작은 모델로 갈아 끼우면 싸진다」로 읽으면 거꾸로다. 모델이 내릴 판단을 하네스가 먼저 가져갔고, 그래서 모델에 남은 일이 쉬워졌고, 쉬워진 다음에야 하이쿠 4.5로 내려갈 수 있었다.
발표는 판단 기준을 하나 남긴다. 지금 굴리는 에이전트가 성공할지 실패할지가 동전 던지기 수준이라면 제어 흐름을 모델에서 빼내라는 것이다. 모델이 더 많은 결정을 내리게 두지 말고, 그 결정들을 모델 바깥에 미리 만들어 두고, 모델에게는 쉽게 답할 수 있는 입력만 넘긴다.
음성 튜터에만 해당하는 이야기가 아니다. 코딩 에이전트, *옵스 런북, 온보딩 플로우에도 같은 원칙이 든다고 했다. 발표는 「모델이 말은 하게 하되 운전은 시키지 마라」는 문장으로 끝난다.
6분짜리 발표라 빠진 정보가 많다. 세 가지를 기억해 두는 편이 좋다.
첫째, 비용과 지연이 얼마나 줄었는지 숫자가 없다. 아꼈다는 말만 있다.
둘째, 하네스가 모델의 결과를 어떻게 검증하는지는 공개되지 않았다. 검증 자체가 또 다른 모델 호출인지 규칙으로 짠 코드인지가 이 구조의 비용을 좌우하는데, 그 대목은 로그 화면으로만 지나갔다.
셋째, 새로운 상황을 전부 상태 머신 안에 녹여 넣었다는 말은 뒤집으면 상황이 늘어날 때마다 사람이 상태를 늘려야 한다는 뜻이다. 모델에게서 뺏은 판단은 사라지지 않고 개발자의 일로 옮겨 온다. 발표는 이 비용을 다루지 않는다.
용어
OpenAI에서 에이전트 인프라를 다루는 발표자가 오픈클로(OpenClaw, 오픈소스 개인 비서형 에이전트 프로젝트)에서 실제로 벌어진 이슈 다섯 건 — 상태 구멍, 겹친 기록자, 매달린 툴 호출, 승인 표류, 놓친 엣지 증명 — 을 근거로 프로덕션 실패 대부분이 모델이 아니라 하니스 문제임을 보여줌. 텔레그램 답장은 성공했는데 다음 턴엔 그 사실이 지워졌던 사고를 출발점 삼아, 상태 소유·순서 있는 커밋·행동 증명이라는 세 원칙과 프로덕션 감사에 쓸 다섯 질문을 제시함.
▾한줄 코멘트. 이 발표가 든 사고 다섯 건은 전부 사용자 화면에 성공으로 보였다. 오류가 안 뜨는 실패라 모델을 더 좋은 것으로 갈아 끼워도 안 잡힌다. 잡으려면 소유자·커밋 순서·시한·권한·사용자 화면 확인 다섯을 기록으로 남겨야 한다.
OpenAI에서 핵심 데이터·AI 인프라를 다루는 발표자가 프로덕션 에이전트 실패를 주제로 발표했다. 이전에는 애플과 우버에서 분산 시스템을 만들었고 「The Agent Stack」이라는 블로그를 쓴다.
발표를 여는 사고는 이렇다. 사용자가 고객 환불 건을 다음 턴을 위해 기억해 달라고 했고 어시스턴트는 기록했다고 답했다. 화면은 정상이었다. 빨간 오류도 눈에 띄는 실패도 없었다. 그런데 다음 턴에서 그 사실을 다시 불러오지 못했다.
충돌은 성가시지만 적어도 경계를 준다. 무언가 멈췄다는 것을 알 수 있고 마지막 정상 지점에서 다시 시작할 수 있다. 조용한 성공은 그 경계를 안 준다. 전달은 성공했고 저장은 실패했는데 사용자에게도 운영자에게도 의심할 이유가 없다.
다음 턴에도 모델은 여전히 그럴듯하게 말한다. 일관돼 보이지만 끊긴 이력 위에서 일관된 것뿐이다.
발표는 *오픈클로를 예로 쓴다. 홍보가 아니라 이슈와 코드와 문서가 공개돼 있어 하니스 구조가 유난히 잘 들여다보이기 때문이라고 밝힌다.
이 발표의 문장은 하나다. 모델은 제안하고 하니스는 확정하며 영수증이 그것을 증명한다.
모델은 메시지와 툴 호출과 수정과 명령을 제안할 수 있다. 그러나 그 자체로 프로덕션의 경계는 아니다. 상태 전환, 권한 검사, 순서 있는 커밋, 영수증은 *하니스의 몫이다.
대화 기록은 증거가 아니다. 기록은 에이전트가 무엇이라고 말했는지를 남기고, *영수증은 시스템이 실제로 무엇을 했는지를 남긴다.
발표자가 든 비유는 자동차다. 모델은 엔진이다. 강력하지만 아무도 마력만 보고 프로덕션용 차를 사지 않는다. 조향과 제동과 도로 규칙과 계기판과 블랙박스도 본다. 모델은 능력을 주고 하니스는 통제를 준다. 브레이크 없는 강력한 엔진은 자율이 아니라 가속도만 좋은 부채다.
하니스 청사진
에이전트를 깨우는 신호는 한 곳에서만 오지 않는다. 사람이 친 채팅도 있고, 다른 시스템이 보낸 알림도 있고, 시간이 되어 울린 타이머도 있고, 살아 있는지 확인하는 신호도 있다.
그래서 하니스가 맨 처음 하는 일이 정해진다. 들어온 신호가 어느 대화의 것인지 이름표를 붙이는 것이다. 발표에서 세션 키라고 부르는 것이 그 이름표다.
이름표 하나가 곧 울타리가 된다. 그 대화에 딸린 기록과 메모리와 정책이 그 울타리 안에 든다. 그리고 울타리 안의 것을 고치는 문은 하나로 둔다. 두 곳에서 동시에 고치는 일을 막으려는 것이고, 이 문을 하나로 안 두면 뒤에 나오는 「겹친 기록자」 사고가 난다.
그 뒤는 단순하다. 모델과 도구를 부르고, 도구는 승인과 정책을 지나서야 실행되고, 그 실행이 남긴 기록이 영수증이 된다. 개인 비서형이든 코딩 에이전트든 이 밑구조는 같다고 발표자는 말한다.
여기서 하나 더 짚을 것이 있다. 에이전트는 사람처럼 기억하지 않는다. 턴이 끝나면 잊으므로 하니스가 매 턴 필요한 것을 다시 모아 넘긴다. 대화 기록과 세션 상태와 메모리와 정책과 도구 목록이 그것이다. 모델은 넘겨받은 것만 보므로, 하나가 빠지거나 낡아도 답은 여전히 그럴듯하게 들린다.
타임아웃과 재시도와 *멱등성과 락과 순서는 새 문제가 아니다. 달라진 것은 환경이다. 모델이 매 턴 계획을 새로 세우고 넘길 것을 다시 모으는 데다, 깨우는 신호도 손댈 곳도 늘었다. 그래서 같은 실패가 더 쉽게 터지고 원인을 대기는 더 어려워졌다.
발표는 오픈클로에서 실제로 열렸던 이슈 다섯 건을 든다. 다섯 다 사용자 화면에는 문제가 없었다.
사고 다섯 건과 그때 빠져 있던 경계
| 사고 | 무슨 일이 났나 | 빠진 경계 |
|---|---|---|
| 상태 구멍 | 텔레그램 답장은 성공했는데 그 턴이 활성 컨텍스트에도 대화 기록에도 안 쓰였다 | 상태 소유권 |
| 겹친 기록자 | 두 호출자가 같은 옛 상태를 읽고 각자 고쳐 저장해 나중 저장이 앞선 것을 지웠다 | 커밋 시점의 질서 |
| 매달린 툴 호출 | 툴 호출은 있는데 짝이 되는 결과가 없어 실행이 오지 않을 이벤트를 기다렸다 | 마감 시한과 취소 |
| 승인 표류 | 만료된 승인 콜백이 재시도 가능한 것으로 처리돼 재시작을 넘어 살아남았다 | 행동에 묶인 권한 |
| 놓친 엣지 증명 | 웹챗과 TUI에서 메시지 툴은 성공을 보고했는데 화면에는 아무것도 안 떴다 | 사용자 경계의 확인 |
여기서 소유자는 사람이 아니라 그 사실이 진실이 되는 시스템을 뜻한다. 달력 일정은 달력 시스템이, 상담 상태는 티켓 시스템이, 코드 변경은 저장소가, 대화 턴은 세션 기록이, 사용자 선호는 메모리 저장소가 소유한다. 저장은 바이트가 어디 있는지를 말하고 소유권은 누가 그 실재를 재구성할 수 있는지를 말한다.
순서 규칙은 좁고 단순하다. 가변 상태 경계 하나에 순서가 정해진 커밋 경로 하나. 동시성 자체를 없애자는 말이 아니다. 병렬 읽기도 독립적인 검색도 여러 세션 동시 실행도 서브 에이전트로 나누는 것도 괜찮다. 보수적으로 지킬 것은 커밋 시점이지 시스템 전체가 아니다.
승인은 막연한 기억이 아니라 범위가 한정된 실행 상태여야 한다. 쓸모 있는 승인 객체는 누가, 어떤 세션과 실행에서, 어떤 툴과 인자에 대해, 얼마 동안, 어떤 결과로 승인했는지에 답하고 영수증을 가리킨다. 그 필드가 재시도나 재생 도중 떨어져 나가면 하니스는 그 행동이 승인된 것임을 더 이상 증명할 수 없다.
증명의 사슬
내부 성공은 외부 증명이 아니다. 툴 결과는 내부 경로가 요청을 받아들였다는 것만 증명한다. 사용자가 그것을 봤다는 것은 증명하지 못한다.
그 차이가 대화를 바꾼다. 에이전트는 나중에 이미 보냈다고 말할 수 있고 사용자는 정말로 본 적 없다고 말할 수 있다. 영수증은 사용자가 신경 쓰는 그 경계에서 끝나야 한다.
발표자는 팀에 돌아가 모든 에이전트가 아니라 하나만 골라 실제 프로덕션 경로 하나의 자취를 놓고 영수증을 요구해 보라고 제안한다.
감사에 쓸 다섯 질문
| 질문 | 무엇을 이름 붙여 적나 |
|---|---|
| 무엇이 깨웠나 | 사용자 메시지·웹훅·타이머·툴 결과·서브 에이전트·재생 중 무엇인지와 그 신원 |
| 어떤 상태를 물려받았나 | 대화 기록·세션 상태·메모리 스냅샷·정책 버전·툴 표면 |
| 어떤 권한을 썼나 | 행위자·세션·툴·실행·인자·범위·유효 기간 |
| 무엇이 실행됐나 | 툴이나 API 호출·인자·시도 횟수·멱등성 키·외부 결과 |
| 어떤 증거가 남았나 | 티켓 갱신·메시지 렌더링·파일 변경·달력 일정의 실재 |
이 다섯을 맨 처음 사고에 대 보면 이렇게 된다. 깨운 것은 사용자 메시지, 물려받은 상태가 곧 깨진 경계, 실행된 것은 채널 전송이었다. 살아남은 증거는 전달뿐이고 지속된 턴은 아니었다. 그 에이전트에 필요했던 것은 더 나은 모델도 더 나은 프롬프트도 아니고 완전한 영수증을 갖춘 더 나은 하니스였다.
발표는 루프가 한 턴에 답할 수 있지만 하니스라야 프로덕션을 지탱한다는 문장으로 끝난다.
발표자는 OpenAI 에이전트 *SDK에 이런 하니스 요소가 이미 들어 있다고 소개한다. 자기 회사 제품을 파는 대목이라 그대로 받지 않는 편이 좋다.
숫자가 없다. 사고는 다섯 건 다 공개 이슈를 가리키지만 얼마나 자주 났고 얼마나 많은 사용자가 겪었는지는 나오지 않는다.
영수증을 어디에 얼마나 오래 남기는지, 그 저장과 조회에 얼마가 드는지도 다루지 않는다. 모든 실행 경계에 영수증을 남기라는 요구는 기록량이 실행량을 따라 늘어난다는 뜻인데, 그 비용이 이 설계의 실제 문턱이다.
일반화의 근거가 얇다. 개인 비서형(오픈클로·Hermes)과 코딩 에이전트(코덱스·커서·오픈코드·클로드 코드)가 같은 밑구조를 쓴다고 발표자는 말하지만, 사고 사례로 든 이슈는 오픈클로 것뿐이다. 같은 다섯 경계가 다른 시스템에서도 같은 순서로 무너지는지는 이 발표만으로 알 수 없다.
용어
에이전트를 만들 때 핵심은 에이전시(스스로 판단해 행동하는 정도) 자체가 아니라 효과성이라는 축을 하나 더 놓고 보는 것이라는 걸 보여줌. Y 컴비네이터 소속 스타트업 중 에이전틱을 자처하는 곳이 3년 새 254% 늘었다는 수치, API 300개를 툴 300개로 그대로 등록하면 안 된다는 경고, 마이크로소프트가 낸 레드팀 도구 파이릿(PyRIT)까지 구체적으로 담음.
▾한줄 코멘트. 에이전트를 더 자율적으로 만드는 것을 목표로 삼지 말라는 말이 이 발표의 전부다. 한 줄로 이어 붙여 되면 거기서 멈추고, 안 되면 갈림길까지만 가고, 그래도 안 될 때 흐름을 모델에 넘긴다. 학계 벤치마크 점수가 50~70%대까지 왔다는 대목도 5~10년 전 한 자릿수와 견준 것이지 다 됐다는 뜻이 아니다.
마이크로소프트의 수석 응용과학자가 에이전트로 애플리케이션을 만드는 이야기를 한다. 사이버보안 부서에서 시큐리티 코파일럿과 그 에이전트를 만드는 데 참여했고, 그 전에는 우버에서 4년간 지오스페이셜 문제를 다루는 기계학습을 했다고 밝힌다.
이 발표가 자신이 오라일리에서 낼 300쪽짜리 책을 간추린 것이라고 먼저 말한다. 앞의 일곱 장이 이미 조기 공개돼 있고 다음 달 인쇄에 들어간다고 한다. 발표 내용의 코드 예제도 그쪽에 있다고 넘긴다.
바닥에 깔린 사실 하나가 나온다. Y 컴비네이터에 속한 회사 가운데 자기를 에이전틱하다고 말하는 곳이 3년 사이 254% 늘었다.
발표의 출발점은 사람들이 축을 하나만 보고 있다는 지적이다. 얼마나 자율적인가만 따진다는 것이다.
여기에 두 번째 축을 놓자고 한다. 그 시스템이 실제로 일을 해내는가다.
발표가 든 두 사례
| 사례 | *에이전시 | 효능 |
|---|---|---|
| *로보틱 프로세스 자동화 | 낮다 | 높다 |
| 여러 회사가 내놓은 시원찮은 챗봇 | 낮다 | 낮다 |
사례가 둘뿐이라는 점은 그대로 적어 둔다. 발표는 네 칸을 다 채우지 않고 이 둘만 짚는다. 요점은 자율성이 낮아도 일을 잘 해내는 것이 있다는 쪽이다.
그래서 에이전시는 목표가 아니라 문제를 푸는 데 쓰는 수단이라고 정리한다.
필요한 만큼만 올라가는 사다리
이 주장이 실제 설계로 내려오는 자리가 *오케스트레이션이다. 한 줄로 이어 붙인 체인으로 풀리면 그렇게 두라고 한다. 안 되면 갈림길을 만들어 모델이 어느 길로 갈지 고르게 한다. 완전히 에이전트에 맡기는 것은 모델의 손에 더 많은 힘을 쥐어 주는 일이라고 말한다.
한 판이 도는 방식 자체는 단순하다. 모델이 낸 글에 파서를 대고, 도구를 부르고, 돌아온 것을 관찰로 받고, 그 정보를 다시 넣어 반복하다가 마지막 출력을 낸다.
여러 에이전트를 쓸 때는 조정자를 하나 두고 그것이 알맞은 에이전트로 일을 넘기게 한다.
평가를 바퀴로 만드는 여섯 걸음
발표자는 완벽을 기대하지 말라고 못 박는다. 초기 프로토타입에서 정확도 70%까지는 쉽게 가는데, 복잡한 상황이 길게 이어지는 꼬리로 갈수록 점점 어려워진다는 것이다.
그래서 평가를 한 번 하고 끝내지 말고 바퀴로 만들라고 한다. 사람 검토를 거친 것만 평가셋에 쌓고, 늘어난 평가셋으로 다시 돌리고, 실패를 묶어 간추린 다음 고칠 것을 낸다.
안전 쪽도 한 줄 짚는다. 마이크로소프트가 *레드팀용으로 낸 파이릿(PyRIT)을 에이전트를 내보내기 전에 돌려 보라고 권한다. 자기 회사 도구를 권하는 대목이다. 다만 그러면서 좋은 소프트웨어 공학의 기본이 더 중요하다고 덧붙인다.
50~70%대라는 점수가 무슨 지표인지 좁혀지지 않는다. 학계의 앞선 에이전트 벤치마크라고만 하고 어느 벤치마크인지 말하지 않는다. 여러 번 도구를 부르고 복잡한 환경에서 움직여야 하는 어려운 과제라는 설명만 붙는다.
롱테일이 얼마나 어려운지도 값이 없다. 70%까지 쉽고 그 뒤가 어렵다는 말은 나오는데, 남은 구간을 메우는 데 무엇이 얼마나 드는지가 없다.
두 축 위에 놓인 사례가 둘뿐이다. 높은 에이전시 쪽 칸이 비어 있어서, 자율성을 올렸을 때 효능이 어떻게 되는지가 사례로 안 나온다. 발표의 주장이 바로 그 자리에 있는데 그 자리가 비었다.
한 가지는 드물게 좋다. 발표자가 모델과 프레임워크가 발밑에서 바뀌고 있다고 스스로 밝힌다. 날짜를 붙여 읽어야 한다는 것을 발표가 먼저 말해 주는 편이다.
용어
소프트웨어를 짜던 습관이 에이전트에서는 왜 발목을 잡는지 다섯 갈래로 짚음. 고객 상담 에이전트가 같은 프롬프트로 10번 중 1번만 성공하면 왜 못 쓰는지, 5분·15분씩 도는 에이전트가 중간에 깨졌을 때 왜 처음부터 다시 돌리면 안 되는지, 딜리트 아이템(delete item)처럼 사람에겐 뻔한 API가 왜 에이전트에겐 안 뻔한지가 구체적으로 나옴.
▾한줄 코멘트. 만드는 일의 모양이 직선에서 고리로 바뀌었다는 것이 이 발표의 틀이다. 구체적으로 걸리는 자리는 둘이다. 5분에서 15분씩 도는 에이전트가 중간에 깨졌을 때 처음부터 다시 돌리면 컴퓨트를 다시 쓰고 쌓인 맥락까지 잃는다. 그리고 사람에게 뻔해 보이는 API 이름이 에이전트에게는 안 뻔하다.
딥마인드에서 제미나이의 에이전트 쪽 일을 하는 사람이 발표한다. 엔지니어가 왜 에이전트 만드는 데서 막히는지를 10분 동안 다룬다.
깔고 가는 전제가 하나 있다. 소프트웨어를 짤 때는 입력 A를 넣으면 늘 C가 나온다고 가정했다. 에이전트는 *비결정적이라 그 가정이 깨진다.
그것이 왜 문제인지 예로 든 것이 상담 에이전트다. 같은 프롬프트가 열 번에 한 번만 되면 프로덕션에 올릴 것이 못 되고 계속 흔들린다.
만드는 일이 도는 모양
예전에 소프트웨어를 만드는 순서는 한 줄이었다. 명세를 쓰고, 코드를 짜고, 잘 도는지 시험을 만들고, 배포하고, 사용자가 썼다.
에이전트는 다르다. 무엇을 하길 바라는지 적고, 굴려 보고, 무엇을 하는지 지켜보고, 프롬프트나 도구를 손보고, 다시 굴린다. 지켜보는 일이 만드는 일 안으로 들어왔다.
발표가 든 다섯을 순서대로 옮긴다.
예전 방식과 갈리는 다섯 자리
| 차이 | 무슨 뜻인가 |
|---|---|
| 상태가 이제 글이다 | 구조를 갖춘 자료 대신 글이 상태를 들고 다닌다 |
| 통제를 넘겨준다 | 경로를 미리 다 짜지 않고 모델에게 맡긴다 |
| 오류도 입력이다 | 오류를 끝으로 보지 않고 다음 판의 재료로 넘긴다 |
| 단위 시험에서 평가로 | 맞았는지 단정하는 대신 얼마나 잘하는지 잰다 |
| 에이전트는 바뀌는데 API는 안 바뀐다 | 모델은 계속 좋아지는데 붙어 있는 API는 그대로다 |
옛 방식이 어땠는지도 예로 나온다. 사용자가 구독을 끊겠다고 하면 분류 모델이 의도를 가려내고, 미리 짜 둔 갈래로 보내 붙잡을지 끊을지를 정했다. 경로를 사람이 다 그려 둔 방식이다.
되살아나는 설계가 없으면 오래 도는 에이전트가 무너진다. 5분이나 15분 걸리는 에이전트가 중간에 깨졌을 때 처음부터 다시 돌리면, 앞 단계를 다시 밟느라 컴퓨트를 또 쓰고 그동안 쌓인 맥락까지 잃는다.
사람에게 뻔한 이름이 에이전트에게는 안 뻔하다. 백엔드를 만들어 본 사람에게 「항목 삭제」 같은 엔드포인트는 설명이 필요 없어 보인다. 그런데 에이전트는 코드도 못 보고 그 API를 만들며 쌓인 사정도 모른다. 함수 껍데기와 설명 몇 줄만 본다. 그래서 도구는 에이전트가 읽을 것을 전제로 다시 쓰여야 한다고 말한다.
발표가 닫으며 든 여섯
| 하라는 것 | 뜻 |
|---|---|
| 믿되 확인한다 | 맡기되 결과를 그대로 받지는 않는다 |
| 모델과 싸우지 않는다 | 억지로 눌러 고치려 들지 않는다 |
| 뜻을 지킨다 | 형식을 맞추다 의미를 잃지 않는다 |
| 되살아나게 설계한다 | 깨진 자리에서 이어 갈 수 있게 만든다 |
| 단정만 하지 말고 평가한다 | 맞고 틀림 대신 얼마나 잘하는지를 잰다 |
| 지울 것을 전제로 만든다 | 더 나은 모델이 오면 다시 만들 것이라 여긴다 |
마지막이 이 발표의 태도를 드러낸다. 발표자는 소프트웨어가 쓰고 버리는 것이 되었고 같은 것을 여러 번 다시 만들게 될 것이라고 말한다.
수치가 거의 없다. 열 번에 한 번이라는 말과 5분에서 15분이라는 시간이 나오지만, 둘 다 상황을 그리는 예이지 무엇을 잰 값이 아니다. 다섯 가지를 지켰을 때 무엇이 얼마나 나아지는지가 없다.
되살아나게 만드는 방법이 없다. 처음부터 다시 돌리면 안 된다는 지적까지는 또렷한데, 중간 상태를 어디에 어떻게 남겨 이어 붙이는지는 나오지 않는다.
에이전트가 읽을 도구를 어떻게 써야 하는지도 없다. 설명을 다시 쓰라는 말까지만 있고 무엇을 어떤 수준으로 적어야 하는지가 없다.
10분짜리 발표라 얕은 자리가 많다. 발표자도 코드 예제는 자기 블로그로 넘긴다.
용어
코덱스 하니스가 메시지 한 통을 처리하며 거치는 장치들이 구체적으로 나옴 — 스킬 목록을 컨텍스트 창의 2%로 묶어두는 규칙, 도구를 지연 로딩해 두었다가 도구 검색으로만 찾게 하는 방식, 파일 삭제 같은 위험한 행동을 읽기 전용 서브에이전트가 대신 판단하는 오토 리뷰 구조가 그것임. 세레브라스에서 초당 1,000토큰까지 빨라지자 병목이 추론에서 네트워크로 옮겨가 웹소켓 모드를 도입한 이야기, 슬래시 골로 돌리는 루프와 컴팩션까지 이어짐.
▾한줄 코멘트. 이 발표에서 값이 나가는 것은 「코덱스가 이렇게 만들었다」가 아니라 컨텍스트 창을 지키려고 건 상한 두 개다. 도구를 컨텍스트에 안 넣고 검색으로만 찾게 하고, 스킬 목록을 컨텍스트 창의 2%로 묶었다. 자기 에이전트에 그대로 옮겨 볼 수 있는 규칙은 이 둘뿐이고 나머지는 오픈AI 제품 안내에 가깝다.
메시지 한 통이 지나는 길
코덱스 에이전트에는 프로토콜이 둘 있다. 앞쪽은 사용자가 UI에서 보낸 메시지가 *하니스까지 가는 길이고 이것을 앱 서버라고 부른다. 뒤쪽은 하니스와 추론 사이를 잇는 리스폰시스 API다.
둘 다 남이 갈아 끼울 수 있게 열어 뒀다고 한다. 앱 서버 프로토콜을 쓰면 자기 UI를 코덱스 하니스 위에 올릴 수 있고, 코덱스 앱 자체도 같은 앱 서버로 돈다. 발표자는 이 프로토콜로 코덱스를 다른 코딩 에이전트 안에 넣어 봤고 전날 발표에서는 게임 둠 안에 넣어 보였다고 밝힌다.
리스폰시스 API는 작년에 공개됐다. 챗 컴플리션 API를 에이전트 시대에 맞게 다시 짠 것으로 웹 검색이나 이미지 생성 같은 능력이 붙어 있다. 올라마·LM 스튜디오·엔비디아 등과 함께 열린 리스폰시스 스키마를 만들고 그것을 관리할 기구를 뒀다고 한다. 이 규격을 따르는 모델 제공자라면 코덱스 하니스에 꽂을 수 있다는 뜻이다.
하니스는 오픈소스이고 러스트로 쓰였다.
하니스가 가장 먼저 하는 일이 컨텍스트 조립이고 여기서 세 가지를 본다.
첫째는 크기다. 토큰 예산을 헛되이 쓰지 않으려는 것도 있지만 이유가 하나 더 있다. 컨텍스트가 길수록 서로 어긋나는 정보가 들어갈 확률이 올라가고 그것이 모델을 헷갈리게 한다. 둘째는 유연성이다. 스킬이나 플러그인이나 MCP를 많이 깔든 적게 깔든 경험이 같아야 한다. 셋째는 성능과 비용이고 여기서는 캐시가 깨지지 않는 것이 중요하다.
컨텍스트 조각 중에는 예측되는 것과 안 되는 것이 있다. 모델 지시문은 구조가 정해져 있어 크기가 잘 안 변하고 캐시를 안 깬다. 반면 스킬이 몇 개인지, 도구 레지스트리가 얼마나 큰지는 예측이 안 된다. MCP를 깔수록 늘어나기 때문이다.
그래서 상한을 둘 걸었다.
컨텍스트가 부푸는 것을 막는 두 장치
| 장치 | 무엇을 하나 |
|---|---|
| 지연 로딩 도구 | 일부 도구를 지연으로 표시해 컨텍스트 창에 아예 안 넣는다. 모델은 도구 검색으로만 그것을 찾는다 |
| 스킬 목록 2퍼센트 상한 | 스킬 목록이 최대 컨텍스트 창의 2퍼센트를 넘지 않게 묶고, 넘치면 설명 분량을 조금씩 줄인다 |
지연 로딩은 코덱스만의 것이 아니라고 한다. GPT-5.4부터 리스폰시스 API에서 어떤 도구든 지연으로 표시할 수 있고, 내장 도구 검색을 쓰거나 직접 만든 검색을 붙여도 된다.
컨텍스트를 조립했다고 에이전트가 되지는 않는다. 행동을 해야 에이전트다.
세 갈래 행동과 그 장치
| 행동 | 어떻게 하나 |
|---|---|
| 비동기 | 서브에이전트를 띄우는 도구와 거기에 입력을 보내는 도구를 준다. 기다리게 하거나 내릴 수도 있다. 백그라운드 터미널도 같은 방식으로 다룬다 |
| 컴퓨터 조작 | 동작 하나씩 노출하던 방식을 버리고 코드 실행으로 바꿨다. 에이전트가 자기 조작을 스크립트로 쓴다 |
| 파일 시스템 | 디프를 주는 어플라이 패치 도구로 고치고 만든다. 나머지는 셸 도구로 훑는다 |
컴퓨터 조작의 변화가 눈에 띈다. 브라우저 조작이 그 예다. 코덱스는 턴을 넘어 살아 있는 노드 REPL 안에 플레이라이트 코드를 써서 크로미움을 움직인다. 한 페이지의 구조를 파악한 다음 스크립트를 짜서 나머지 페이지를 훑는 식이라 같은 일을 훨씬 빨리 끝낸다.
파일 시스템 쪽에는 훈련의 흔적이 남아 있다. GPT-5부터 모델이 어플라이 패치 도구에 익숙해지도록 훈련됐고, 파일을 찾을 때는 자연스럽게 립그렙을 쓰려 든다. 그래서 하니스가 립그렙을 같이 배포한다. 윈도우에서는 파워셸을 그대로 쓰도록 따로 훈련했다.
모든 파일 시스템 조작은 샌드박스를 지난다. 맥OS는 시트벨트, 리눅스는 버블랩을 쓴다. 윈도우는 마땅한 것이 없어 직접 만들어 같은 저장소에 오픈소스로 열어 뒀다고 한다.
위험한 행동을 누가 판단하나
하려는 도구 호출과 대화 기록을 넘긴다
사용자 권한과 위험 분류로 판단한다
괜찮으면 자동으로 승인한다
아니면 사람에게 올라간다
샌드박스에는 늘 따라오는 불만이 있다. 승인 피로다. 긴 작업일수록 승인 요청이 성가셔서 전체 접근을 켜 버리게 되고, 보안 담당은 그것을 싫어한다.
모델이 좋아져도 사고는 남는다고 발표자는 말한다. 높은 자율성을 프롬프트로 밀어붙이면 엉뚱하게 해석될 수 있다. 파일을 메일로 보내라고 했는데 첨부가 안 되니 파일 공유에 올려 버리거나, 이스케이프를 잘못해 데이터를 너무 많이 지우는 일이 그렇다.
그래서 오토 리뷰를 만들었다. 샌드박스가 막아선 행동이 올라오려 할 때 판단을 대신할 서브에이전트를 띄운다. 이 서브에이전트는 따로 돌고 읽기 권한만 가지며 다른 서브에이전트를 못 띄운다.
받는 것은 넷이다. 사용자 권한이 무엇인지, 위험을 어떻게 분류하는지, 어떻게 판단하기를 바라는지, 그리고 대화 기록과 실제로 일어나려는 도구 호출이다. 여기서 맥락이 판단을 정한다. 지우라고 시킨 파일이면 지워도 되고, 시키지 않은 `.git` 폴더면 이력을 통째로 날리는 일이라 건드리면 안 된다.
파일 시스템만의 이야기도 아니다. 인터넷이 되는지 보려고 구글을 부르는 것은 괜찮지만 파일을 올리는 것은 다를 수 있다.
발표자는 이 설명이 엄청난 단순화라고 스스로 밝히며 자세한 것은 따로 쓴 글로 넘긴다.
에이전트는 도구 호출을 많이 한다. 추론을 아무리 빠르게 해도 그것만으로는 안 된다는 것이 이 대목이다.
GPT 5.3 코덱스 스파크를 세레브라스에서 초당 1,000토큰으로 돌리자 그것이 드러났다. 도구 호출과 오가는 상호작용이 쌓이니 느린 자리가 추론이 아니라 네트워크였다.
그래서 웹소켓 모드를 넣었다. 리스폰시스 API가 서버 전송 이벤트와 HTTP 대신 끊기지 않는 웹소켓 연결을 쓴다. 네트워크 오버헤드를 아끼는 것에 더해 연결이 상태를 갖게 되므로 바뀐 것만 보내면 된다. 도구 호출이라면 그 결과만 보내고 전체 항목을 다시 보내지 않는다. 발표에서 든 예로는 아홉 개를 되보내던 자리에서 하나만 보낸다.
슬래시 골로 도는 루프의 구조는 단순하다. 목표에 닿을 때까지 하니스가 이어가는 프롬프트를 자동으로 밀어 넣고, 그 프롬프트 안에 사용자가 정한 목표가 들어간다. 모델이 목표 갱신 도구를 불러 다 됐다고 선언할 때까지 그것이 반복된다.
여기서 나오는 조언이 실용적이다. 목표에 긴 글을 쓰면 안 된다. 끝났는지 판정할 수 있어야 루프가 멈추므로 구체적이고 확인 가능한 문장으로 써야 한다.
시간이 길어지면 컨텍스트가 문제가 된다. 작년 말에 넣은 자동 컴팩션이 그것을 맡는다. 서버 쪽에서 발동하고, 모델이 그렇게 훈련돼 있어 성능이 유지된다고 한다. 이전 컨텍스트 창을 새 창으로 바꾸면서 필요한 정보를 담은 항목 하나를 그 안에 넣는 방식이다.
숫자가 거의 없다. 웹소켓으로 얼마나 빨라졌는지가 대표적이다. 상당히 빨라졌다는 말과 큰 영향이 있다는 말만 나오고 측정값은 없다. 시연하려던 데모 서버가 발표 중에 죽어 미리 녹화한 화면으로 대신했다.
오토 리뷰가 얼마나 맞히는지도 없다. 자동으로 승인해서는 안 될 것을 승인한 비율이나 반대로 사람에게 괜히 올린 비율이 이 장치의 값어치를 정하는데, 발표자 스스로 엄청난 단순화라고 밝히며 글로 넘긴다.
스킬 2퍼센트 상한에서 무엇을 먼저 줄이는지도 안 나온다. 넘치면 설명을 조금씩 줄인다고만 한다. 어느 스킬 설명이 먼저 깎이느냐가 어떤 스킬이 안 불리느냐를 정하는데 그 순서가 없다.
마지막으로 이 발표는 오픈AI 제품 안내이기도 하다. 앱 서버·리스폰시스 API·코덱스를 쓰라는 이야기가 뼈대에 섞여 있다. 다만 하니스가 오픈소스라 말한 것을 코드로 확인할 수 있다는 점은 다른 제품 발표와 다르다.
발표자는 이것이 현재 상태일 뿐이고 새 모델이 나올 때마다 API도 하니스 동작도 자주 바뀐다고 먼저 밝힌다. 날짜를 붙여 읽어야 하는 발표다.
용어
클라우드플레어 API 2,600개 엔드포인트를 다 노출하면 첫 호출에서만 120만 토큰이 드는데, 검색·실행 두 개 툴로 그걸 1,000토큰까지 줄인 99.9% 절감 사례와 켄턴이 캔버스에 그린 틱택토 판을 모델이 획(stroke) 배열만 보고 알아채 원을 그려 넣은 창발 행동을 담음. 아무 능력도 없이 시작해 API를 하나씩 명시적으로 열어주는 캐퍼빌리티 기반 보안(capability-based security) 샌드박스 구조까지 구체적으로 짚음.
▾한줄 코멘트. 도구를 JSON으로 하나씩 주고받는 대신 모델에게 코드를 쓰게 하고 그것을 API 바로 옆에서 돌린다. 발표가 든 예에서 첫 호출에 120만 토큰이 들던 것이 1,000 토큰으로 줄고 왕복 여덟 번이 한 번이 된다. 다만 그 수치는 특정 API 표면 하나를 놓고 든 값이고, 무대에서 돌린 라이브 데모는 자바스크립트 오류를 내며 흔들렸다.
클라우드플레어에서 에이전트 SDK를 만드는 사람이 발표한다. 주장은 한 줄이다. 코드가 시스템과 주고받는 방식이 되어야 한다는 것이다.
출발점은 규모다. 클라우드플레어의 API 표면은 엔드포인트가 약 2,600개다. 이것을 도구로 다 노출하면 *툴 콜링을 시작하기도 전에 컨텍스트가 터진다.
왕복 여덟 번과 한 번
같은 일을 시키는 두 방식
보통은 모델이 도구를 하나 부르고, JSON으로 결과를 받고, 다시 말하고, 또 부른다. 발표자는 이 방식이면 그 API 호출들을 하는 데 왕복이 약 여덟 번 든다고 말한다.
대신 모델에게 코드를 쓰게 한다. 주로 자바스크립트다. 그 코드를 API 바로 옆에서 즉시 돌리면 한 번에 끝난다.
동료 한 사람이 이것을 처음 적용했다고 한다. 그가 낸 방법은 도구를 딱 두 개만 노출하는 것이다.
노출한 도구 둘
| 도구 | 무엇을 받나 |
|---|---|
| 검색 | *OpenAPI 스펙 전체를 넘겨 필요한 것을 찾게 한다 |
| 실행 | 찾아낸 것들을 부르는 코드를 받아 돌린다 |
둘 다 입력이 코드 문자열이라는 점이 같다.
여기서 이 발표의 수치가 나온다. 2,600개를 다 노출하면 첫 호출에만 약 120만 토큰이 들었다. 두 도구 방식으로 바꾸자 1,000 토큰으로 줄었다. 발표자는 약 99.9% 줄었다고 말한다.
샌드박스가 능력을 얻는 순서
모델이 쓴 코드를 돌린다는 말은 곧 안전 문제다. 여기서 막는 순서가 거꾸로다.
*샌드박스는 아무 능력도 없이 시작한다. 코드를 돌리는 것 말고는 아무것도 못 한다. 요청을 보낼 수도 없고 열린 API도 없다. 거기에 필요한 능력을 하나씩 명시적으로 준다.
바깥으로 나가는 요청과 네트워크 연결도 같은 자리에서 통제한다고 말한다.
발표에서 가장 눈에 띄는 장면은 동료가 만든 틱택토 데모다.
시스템의 상태를 모델에게 통째로 넘긴다. 여기서 상태는 캔버스에 그은 획의 배열이다. 사람이 X를 그리자 모델이 그 상태를 자기 컨텍스트로 읽어 들이고, 그것이 무슨 판인지 알아보고, 한가운데에 원을 그려 넣었다.
무엇을 하라고 시킨 것이 아니라 상태를 넘겼더니 나온 행동이라는 것이 이 대목의 요점이다.
발표자는 라이브 데모가 있다며 무대에서는 데모가 잘 안 된다고 미리 말한다. 그리고 실제로 그렇게 됐다.
돌리자 자바스크립트 오류가 이어졌고, 발표자는 성공할지 지켜보자고 말한다. 모델이 페이지를 나눠 가며 훑으려 드는 것 같다고 덧붙인다. 무대에 오르기 전 열 번 시험했다는 말도 한다.
이 장면이 앞의 주장과 맞닿는다. 모델에게 코드를 쓰게 하는 방식은 그 코드가 틀렸을 때 어떻게 되는지가 그대로 드러난다.
99.9%는 특정 API 표면 하나를 놓고 든 값이다. 엔드포인트가 2,600개인 자사 API에서 잰 것이라, 표면이 작거나 성격이 다른 API에서도 같은 폭으로 줄어드는지는 나오지 않는다.
왕복 여덟 번도 그 예의 값이다. 무엇을 기준으로 센 여덟인지, 다른 일에서는 몇 번인지가 없다.
모델이 쓴 코드가 틀릴 확률이 없다. 라이브 데모에서 바로 그 일이 벌어졌는데도, 얼마나 자주 그러는지와 틀렸을 때 무엇으로 되돌리는지가 나오지 않는다. 이 방식의 급소가 거기다.
언제까지 유효한 이야기인지 밝히지 않는다.
용어
에이전트를 클라이언트·AI·워크플로우·도구 네 조각으로 나눠보면 실제로 막히는 지점이 어디인지 드러난다. MCP 서버를 직접 짤 때 걸리는 세 난관(전송 프로토콜·OAuth·메모리)과 신용카드 발급 승인처럼 사람이 끼는 워크플로우에서 상태를 어떻게 지키는지를 Knock 사례로 구체적으로 보여준다. 세일즈 자동화 도입 기업의 매출 20% 증가, 응답속도 90% 개선 같은 수치도 나온다.
▾한줄 코멘트. 가장 값나가는 한 줄은 발표를 준비하다 내렸다는 결론이다. MCP를 이루는 네 개념 가운데 샘플링을 프로덕션에서 쓰는 곳을 아직 못 봤다는 것이다. 규격에 있다고 다 쓰이지는 않는다는 이야기라 규격서만 보고 설계할 때 놓치기 쉬운 자리다. 나머지는 클라우드플레어 개발자 플랫폼 안내에 가깝다.
클라우드플레어에서 개발자 플랫폼을 맡은 제품 부사장이 발표한다. *워커스와 *두러블 오브젝트를 다루는 자리다. 발표 뒤쪽은 자사 에이전트 SDK와 그 위에서 도는 것들을 보이는 데 쓰인다.
먼저 시장 수치가 몇 개 나온다. 지식노동자의 75%가 넘게 일에 AI를 붙여 쓰고, 개발자의 76%가 넘게 개발 과정에 AI를 쓴다고 한다. 에이전트를 들인 회사 가운데 매출이 20% 늘었다는 곳과 고객지원 응답이 90% 빨라졌다는 곳이 있고, 대체로 50~75%의 시간을 아꼈다는 이야기가 나온다.
이 값들은 발표자가 잰 것이 아니다. 인용한 보고서의 값이고 출처를 따로 대지 않는다. 발표자 스스로도 보고서를 뽑은 시점과 지금 사이에 숫자가 더 컸을 것이라고 덧붙인다.
에이전트를 넷으로 자르면
이 발표의 쓸모는 이 자름에 있다. 사람과 만나는 클라이언트가 있고, 다음에 무엇을 할지 정하는 AI가 있고, 그 결정을 실제로 집행하는 워크플로가 있고, 바깥에 손을 대는 툴이 있다.
셋째 자리를 집행부라고 부르는 것이 이 틀의 핵심이다. 정하는 곳과 실행하는 곳을 갈라 놓았다. 무엇이 잘 안 된다고 할 때 넷 중 어디인지부터 말하게 만드는 틀이다.
예로 든 고객관리 에이전트는 이 넷이 길게 늘어선 모양이다. 음성이나 채팅으로 들어와 글로 바뀌고, 캐시와 평가를 맡는 게이트웨이를 지나 모델이 생각하고, 워크플로가 행동을 좇고, 툴이 브라우저와 API와 사내 서비스와 *벡터 데이터베이스에 손을 댄다. 필요하면 그 사이에 사람이 낀다.
사람 승인이 끼어드는 자리
채팅으로 카드 발급을 요청한다
발급을 멈추고 승인을 요청한다
승인이 돌아온다
멈춰 둔 도구 호출을 다시 잇는다
카드를 발급하고 알린다
발표에서 가장 구체적인 대목이 신용카드 발급 승인이다. 사용자가 채팅으로 카드를 요청하면 발급 도구를 사람 입력이 필요한 것으로 감싸 두고, 승인 알림을 보낸 뒤 발급을 멈춘다.
어려운 자리는 그 다음이다. 승인이 돌아올 때까지 멈춘 도구 호출이 살아 있어야 하고, 돌아온 승인이 원래 그 에이전트를 찾아가야 한다. 발표자는 이 라우팅을 두러블 오브젝트가 맡는다고 설명한다. 그 사이에 같은 승인이 두 번 오거나 카드가 두 번 나가지 않도록 상태를 확인하는 검사도 든다.
전통적으로는 데이터베이스를 따로 세우고 연결을 관리하고 확장을 감당해야 했다는 것이 여기서 견주는 기준이다. 자사 제품이 그 일을 대신한다는 이야기로 이어진다.
*MCP는 클라이언트와 서버가 주고받는 전통적인 구조를 따르고, 서버 하나에 클라이언트가 여럿 붙을 수 있다.
MCP 서버를 이루는 네 개념
| 개념 | 무엇인가 |
|---|---|
| 리소스 | 파일 내용이나 데이터베이스 레코드 같은 것 |
| 프롬프트 | 남이 내 에이전트와 어떻게 주고받을지를 정해 두는 것 |
| 툴링 | 실제로 부를 수 있는 것 |
| *샘플링 | 규격에는 있다 |
넷째 줄이 이 발표에서 가장 정직한 대목이다. 발표자는 이 발표를 준비하면서 샘플링을 프로덕션에서 쓰는 곳을 본 적이 없다는 결론에 이르렀다고 말한다. 규격에 적혔다고 실제로 쓰이는 것은 아니라는 이야기다.
직접 MCP 서버를 만들 때 까다로운 자리로는 셋을 든다. 전송 프로토콜, OAuth, 그리고 메모리다.
인용한 수치의 출처가 없다. 매출 20%와 응답 90%와 시간 50~75%가 어느 조사에서 몇 곳을 대상으로 나온 값인지 나오지 않는다. 발표자가 잰 값이 아니라는 점과 함께 감안해야 한다.
샘플링을 왜 아무도 안 쓰는지는 안 나온다. 못 봤다는 관찰까지만 있고 그 이유가 규격 탓인지 도구 탓인지 필요가 없어서인지가 없다. 관찰 자체가 값진 만큼 이 대목이 비어 있는 것이 아쉽다.
멈춘 도구 호출을 얼마나 오래 살려 두는지도 없다. 승인이 하루 뒤에 와도 되는지, 그동안 무엇이 얼마나 쌓이는지, 승인이 영영 안 오면 어떻게 되는지가 나오지 않는다. 사람이 끼는 워크플로에서 실제로 문제가 되는 자리가 거기다.
발표자가 유효기간을 스스로 짚는 대목은 있다. 인용한 보고서 숫자가 이미 낡았을 것이라고 말한다.
용어
앤스로픽이 매니지드 에이전트(Managed Agents)를 만들며 부딪힌 문제와 해법 네 가지를 정리함. 뇌(하니스)와 손(컨테이너)을 분리해야 하는 이유, 검증을 별도 컨텍스트로 떼어내야 하는 이유, 클로드가 포켓몬을 플레이하며 잘못된 위치 기억을 5번 중 5번 반복하다 꿈꾸기(dreaming)로 고친 실험까지 다룸.
▾한줄 코멘트. 기억을 적어 두는 것만으로는 모자라다는 대목이 이 발표에서 가장 구체적이다. 일하며 바로 적는 기억만 쓰자 같은 함정에 되풀이해 빠졌고, 다섯 번 돌려 다섯 번 다 그랬다. 일이 끝난 뒤 따로 훑어 잘못 적힌 것을 고치는 과정을 붙이고서야 다음으로 넘어갔다.
앤스로픽에서 비동기로 도는 에이전트를 다루는 사람이 발표한다. 자막에 자기 이름을 대는 대목은 없다.
먼저 맡길 수 있는 일의 길이가 어떻게 늘었는지 짚는다.
맡기는 일의 길이와 그에 맞춰 나온 것
| 시기 | 한 번에 맡길 수 있던 길이 | 그때 쓰던 것 |
|---|---|---|
| 오퍼스 3 무렵 | 10~20분 | 메시지 API. 묻고 답하는 정도 |
| 클로드 코드 무렵 | 한 시간쯤 | 에이전트 SDK |
| 지금 | 12시간 넘는 대 | 매니지드 에이전트 |
일이 길어질수록 감싸는 장치가 두꺼워진다는 것이 이 표의 이야기다.
머리와 손을 나눈다
오래 도는 일을 버티게 하는 자름이 여기 있다. 생각하는 자리인 *하네스는 상태를 안 들고 있다. 무슨 일이 있었는지는 기록이 맡는다. 그 기록은 덧붙이기만 하는 방식이다.
실제로 돌리는 일은 *컨테이너가 한다. 머리가 죽었다 살아나도 기록을 다시 읽어 이어 갈 수 있는 구조다.
안전 쪽도 한 줄 짚는다. 자격 증명은 손이 든 상자에 넣지 않는다. 따로 둔 금고에 두고 필요할 때만 꺼낸다.
만드는 에이전트와 검사하는 에이전트를 다른 맥락으로 갈라 둔다. 검사하는 쪽은 자기 목표와 *루브릭을 따로 들고, 만든 쪽의 결과를 채점한다.
통과할 때까지 이 왕복이 이어진다. 만든 사람이 자기 것을 검사하지 않게 한 것이 요점이다.
기억을 쓰는 두 갈래
기억을 쓰는 두 갈래
이 발표에서 가장 구체적인 실험이 여기 나온다.
기억을 쓰는 방식이 둘이다. 하나는 일하는 중에 그때그때 파일에 적는 것이다. 다른 하나는 일이 끝난 뒤 따로 돌면서 쌓인 것을 훑어 잘못 적힌 것을 고치는 것이다. 발표자는 뒤쪽을 사람의 잠에 빗댄다.
클로드가 포켓몬을 하게 두고 셋을 견줬다.
기억을 어떻게 쓰느냐로 갈린 결과
| 조건 | 어떻게 됐나 |
|---|---|
| 기억 없음 | 거의 나아가지 못했다 |
| 일하며 적는 기억만 | 같은 함정에 되풀이해 빠져 되돌아갔다 |
| 나중에 훑어 고치기까지 | 그 잘못을 고치고 다음 단계로 나아갔다 |
다섯 번 돌려 다섯 번 다 가운데 줄의 일이 벌어졌다고 한다. 적어 둔 기억에는 틀린 것도 함께 남는다는 이야기다.
마지막 갈래는 자리 문제다. 지금까지 에이전트는 대체로 혼자 쓰는 것이었다. 각자 자기 맥락에 맞춰 다듬은 장치를 자기 컴퓨터에서 굴렸다.
그것을 조직이 함께 쓰는 쪽으로 옮긴다. 조직 전체가 접근하고, 그 장치가 자기 신원과 자격 증명을 갖고, 조직 수준의 맥락에 닿는 형태다.
12시간이라는 길이가 무엇을 잰 값인지 좁혀지지 않는다. 바깥 측정 기준을 따랐다고 말하지만, 어떤 일을 맡겼을 때의 값인지와 그중 몇 번이나 끝까지 갔는지가 없다.
포켓몬 실험이 다른 일에도 통하는지 없다. 다섯 번 중 다섯 번이라는 값은 또렷한데, 게임 하나에서 본 것이 코드나 문서 작업에서도 같은 모양으로 나오는지는 나오지 않는다.
나중에 훑어 고치는 과정의 값이 없다. 얼마나 자주 돌려야 하는지, 그 과정 자체가 잘못 고칠 확률은 얼마인지가 없다. 기억을 고치는 장치가 기억을 망칠 수도 있는 자리다.
발표자가 모른다고 말하는 대목도 있다. 앞선 모델이 아닌 것들이 왜 이 영역에 못 오는지 확실히 모르겠다고 한다. 자기가 만든 형편없는 봇이 많다는 말도 한다.
용어
메모리 툴과 컨텍스트 편집(context editing)을 같이 썼더니 앤스로픽 내부 평가에서 성능이 39% 올랐다는 수치, 최대 100만 토큰까지 열리는 컨텍스트 창 이야기가 나옴. 클로드 코드(Claude Code)를 예로 사고 예산·MCP·메모리·컨텍스트 편집·코드 실행 도구·에이전트 스킬(agent skills)이 왜 겹겹이 필요한지, 그리고 클로드에 컴퓨터를 쥐여주고 샌드박스 안에서 자율적으로 돌리려면 어떤 인프라 문제부터 풀어야 하는지 짚음.
▾한줄 코멘트. 컨텍스트 창을 자원 하나로 놓고 손 셋을 붙인 것이 이 발표의 뼈대다. 밖에서 들여오고, 밖에 두었다 필요할 때 불러오고, 안 쓰는 것을 지운다. 창을 키우는 이야기가 아니라 창에 무엇을 넣고 뺄지의 이야기라는 점이 값나간다. 39% 좋아졌다는 수치가 하나 나오는데 자기들 사내 평가에서 잰 값이다.
앤스로픽에서 클로드 개발자 플랫폼 팀을 이끄는 사람이 발표한다. 에이전트를 만들 수 있게 플랫폼을 어떻게 넓히고 있는지가 주제다.
플랫폼이 돕는다는 것을 셋으로 갈라 놓고, 발표를 열 때와 닫을 때 같은 순서로 두 번 짚는다.
플랫폼이 돕는다는 세 갈래
| 갈래 | 무엇을 하나 |
|---|---|
| 능력을 부린다 | 클로드가 잘하는 것을 API로 꺼내 쓰게 한다 |
| 창을 관리한다 | 컨텍스트 창에 무엇을 넣고 뺄지 다룬다 |
| 컴퓨터를 준다 | 클로드에게 컴퓨터를 주고 알아서 하게 둔다 |
컨텍스트 창을 다루는 손 셋
둘째 갈래가 이 발표에서 가장 촘촘하다. *컨텍스트 창을 다루는 도구를 셋으로 나눠 놓았다.
*MCP는 창 밖에 있는 것에 닿게 해 준다. 깃허브 같은 바깥 시스템과 주고받아 창 안에 없던 자료와 도구를 끌어온다.
메모리 도구는 반대다. 창 바깥에 컨텍스트를 두었다가 정말 필요할 때만 도로 불러온다.
컨텍스트 편집은 비우는 손이다. 지금 쓸모없는 옛 도구 결과처럼 창에 있을 이유가 없는 것을 지운다.
클로드 코드가 그 예로 나온다. 도구를 수백 번 부르고 그때 읽은 파일이 창을 차지하므로, 그것들을 창에서 걷어낸다.
여기서 유일한 수치가 나온다. 메모리 도구와 컨텍스트 편집을 함께 썼더니 벤치마크 대비 성능이 39% 올랐다고 한다. 다만 자기들 사내 평가에서 잰 값이다.
창을 키우는 쪽도 함께 간다. 일부 모델은 100만 토큰짜리 창을 쓸 수 있다.
MCP와 스킬은 다른 것을 준다
둘이 나눠 갖는 것
발표자가 둘을 또렷하게 구분한다. MCP는 도구와 자료에 닿게 해 주고, *스킬은 그것을 쓸 줄 알게 해 준다.
도구에 닿아도 어떻게 쓰는지 모르면 소용이 없다는 뜻이다. 스킬 자체는 다음 날 같은 팀의 다른 발표로 넘긴다.
셋째 갈래가 가장 야심 차고 가장 덜 여물었다. 클로드에게 컴퓨터를 주고 알아서 하게 두자는 것이다.
발표자는 그 앞을 막는 것을 스스로 든다. 여러 일을 어떤 차례로 엮을지, 안전한 환경을 어떻게 마련할지, *샌드박싱을 어떻게 할지가 가장 큰 문제라고 말한다.
앞으로 할 일도 셋으로 정리한다. API를 계속 넓혀 모델이 나아지는 만큼 따라가게 하고, 메모리와 컨텍스트 도구를 더 세게 만들고, 에이전트 인프라에 계속 힘을 쏟겠다는 것이다.
39%가 무엇을 잰 값인지 좁혀지지 않는다. 어느 벤치마크인지, 무엇을 기준선으로 삼았는지, 몇 번 돌린 값인지가 없다. 사내 평가라고 밝히기는 하지만 바깥에서 확인할 길이 없는 숫자다.
세 손을 함께 썼을 때의 값도 없다. 39%는 메모리와 컨텍스트 편집 둘을 합쳤을 때의 값이고, MCP까지 셋을 함께 쓰면 어떻게 되는지는 나오지 않는다.
컨텍스트 편집이 무엇을 지울지 어떻게 고르는지 없다. 지금 안 쓰는 것을 지운다고 하는데, 나중에 필요해질 것을 지웠을 때 어떻게 되는지가 이 도구의 급소다.
언제까지 유효한 이야기인지 밝히지 않는다. 플랫폼이 계속 바뀐다는 것이 발표의 내용인데 그 점을 짚는 대목이 없다.
용어
앤트로픽이 스킬(skill)을 낸 지 다섯 주 만에 스킬 수천 개짜리 생태계가 생겼고, 곧바로 금융 서비스와 생명과학 분야 신사업까지 냈다는 발표. 세금 신고를 IQ 300짜리 천재 대신 경험 많은 세무사에게 맡기겠다는 비유로 왜 도메인마다 새 에이전트를 짓는 대신 스킬 폴더를 쌓기로 했는지 설명하고, 모델은 프로세서·런타임은 운영체제·스킬은 애플리케이션이라는 컴퓨팅 역사 비유로 마무리함.
▾한줄 코멘트. 스킬을 수천 개 붙이고도 컨텍스트가 안 터지는 이유가 이 발표의 알맹이다. 목록 전체를 넣지 않고 이름과 설명만 걸어 두었다가, 에이전트가 쓰겠다고 정한 뒤에야 본문을 읽어 들인다. 왜 이런 것이 필요한지도 발표자가 먼저 인정한다. 모델은 쓰는 사람의 전문성을 잘 흡수하지 못하고 시간이 지나도 배우지 않는다.
앤트로픽에서 *스킬을 만든 두 사람이 발표한다. 에이전트를 만드는 일을 멈추고 스킬을 만들기 시작한 이유를 설득하는 자리다.
출발점은 모델의 한계를 인정하는 데 있다. 모델은 쓰는 사람의 전문성을 잘 흡수하지 못하고 시간이 지나도 배우지 않는다. 그래서 도메인마다 새 에이전트를 짓는 대신 다른 길을 골랐다.
발표자들이 든 비유가 세금 신고다. 세금 신고를 IQ 300짜리 수학 천재에게 맡길 것인지, 경험 많은 세무 전문가에게 맡길 것인지 묻고 매번 후자를 고르겠다고 답한다. 2025년 세법을 첫 원리부터 알아내 주기를 바라는 것이 아니라, 도메인을 아는 사람의 일관된 실행이 필요하다는 것이다.
목표도 그 자리에 놓인다. 함께 일한 지 서른 날째의 클로드가 첫날의 클로드보다 훨씬 나아야 한다고 말한다.
발표를 닫는 비유가 이 그림이다.
컴퓨팅 역사에 대 본 자리
| 컴퓨터 | 에이전트 | 무엇을 뜻하나 |
|---|---|---|
| 프로세서 | 모델 | 힘 자체 |
| 운영체제 | 에이전트 루프와 런타임 | 그 힘을 훨씬 값지게 만든 판 |
| 애플리케이션 | 스킬 | 판이 깔린 뒤 진짜 값이 나오는 자리 |
같은 에이전트 하나에 *MCP 서버를 붙이고 그 위에 수백에서 수천 개 스킬 라이브러리를 얹을 수 있다고 설명한다.
스킬이 열리는 두 걸음
수천 개를 얹는다는 말이 성립하려면 장치가 하나 필요하다. 그것이 *점진적 공개다.
평소에는 스킬의 이름과 설명만 모델에 보인다. 그런 스킬이 있다는 것만 알리는 정도다. 에이전트가 그 스킬을 쓰겠다고 정하면 그때 본문을 읽어 들인다.
목록 전체를 컨텍스트에 넣지 않는다는 것이 요점이다.
스킬이 실제로 하는 일
발표가 든 재무 보고서 예를 보면 스킬이 무엇인지 감이 잡힌다. 모델이 API를 불러 자료를 끌어오고, 파일로 갈무리하고, 파이썬으로 분석하고, 결과를 파일 하나로 합친다.
네 걸음이 모두 코드로 간다. 스킬이 별난 장치라기보다 모델이 코드로 할 일을 적어 둔 것에 가깝다.
발표는 이 설계가 낳은 것을 몇 가지 든다.
스킬을 내놓은 지 다섯 주 만에 수천 개 스킬로 이루어진 생태계가 빠르게 자랐다고 한다. 같은 시기에 금융 서비스와 생명과학 분야에 새 서비스를 냈고, 각각에 MCP 서버 묶음과 스킬 묶음이 딸려 있었다.
쓰는 쪽도 넓다. 수천에서 수만 명 개발자를 지원하는 생산성 팀들이 코드 스타일 모범 사례를 스킬로 가르치고 있고, 금융과 채용과 회계와 법무처럼 기술직이 아닌 사람들도 스킬을 만들고 있다고 말한다.
수치가 하나도 없다. 스킬을 붙였을 때 무엇이 얼마나 나아지는지가 나오지 않는다. 정확도도 지연도 비용도 없다. 다섯 주와 수천 개는 채택 속도이지 잘 되는지를 재는 값이 아니다.
서른 날째가 첫날보다 낫다는 것은 목표다. 그렇게 됐다는 측정이 아니다. 발표에서 유일하게 견줄 만한 문장인데 실제로 잰 값이 뒤따르지 않는다.
스킬이 수천 개일 때 서로 부딪히면 어떻게 되는지 없다. 이름과 설명만 보고 고르는 방식이라 비슷한 스킬이 여럿이면 잘못 고를 여지가 생기는데, 그 자리를 다루지 않는다. 목록이 길어질수록 문제가 되는 자리다.
언제까지 유효한 이야기인지도 밝히지 않는다. 다섯 주 된 것을 두고 하는 이야기라 특히 그렇다.
발표자들이 소속을 자기소개에서 밝히지 않는다는 점도 적어 둔다. 회사 이름은 발표 뒤쪽에서 자기들을 가리키며 한 번 나온다.
용어
이름이 특정 글자로 끝나는 포켓몬을 세는 물음으로 능력 과잉(capability overhang)을 설명하고, 클로드 코드 시스템 프롬프트를 80% 걷어낸 이유를 밝힘. 판이 올라갈수록 프롬프트가 커졌다가 다시 작아진 자취를 되묻기 도구의 세 단계로 보여 주고, 모르는 것을 찾는 여섯 가지 방법을 구체적으로 짚음. 손으로 코드를 짜던 시절을 두고 얻은 것과 잃은 것을 함께 말하는 대목이 발표의 다른 절반이다.
▾한줄 코멘트. 모델이 좋아지면 프롬프트를 늘려야 한다는 통념이 뒤집히는 대목이 이 발표의 값이다. 예시를 많이 붙일수록 모델이 그 예시에 갇힌다는 이유로 시스템 프롬프트를 80% 걷어냈다고 말한다. 나머지 절반은 앤스로픽 새 모델을 파는 이야기와 개인적 회고라 잰 값이 없다.
앤스로픽에서 클로드 코드를 만든다고 밝힌 사람이 발표한다.
바탕에 깔린 말이 이것이다. 모델은 설계된 것이 아니라 길러진 것이고 데이터와 되먹임과 계산을 줘서 기른다. 그러니 *하네스와 프롬프트를 어떻게 짜느냐는 그 모델을 우리가 얼마나 이해했느냐의 함수가 된다.
들고 온 예가 포켓몬이다. 이름이 특정 두 글자로 끝나는 것을 세라는 물음인데, 보통 대화 모델은 못 푼다. 클로드 코드는 목록을 받아 와 걸러 내는 코드를 짜서 답한다. 발표는 이것을 *능력 과잉이라 부른다 — 모델 안에 이미 있었는데 꺼낼 길이 없던 것이다.
처음에는 맥락을 통째로 붙여 넣는 쪽을 그렸다고 말한다. 실제로 길이 난 것은 반대쪽이었다. 팔을 쥐여 주니 스스로 맥락을 찾아 쌓았다.
이 발표에서 가장 셀 만한 수가 여기 있다. 클로드 코드 시스템 프롬프트의 80%를 최근 걷어냈다.
프롬프트 모범이 뒤집힌 자취
| 시기 | 무엇이 좋다고 했나 |
|---|---|
| 소넷 3.5 뉴 무렵 | 작은 프롬프트 · 적은 도구 · 많은 예시 |
| 그 뒤 | 큰 프롬프트 · 많은 지시 · 많은 도구 |
| 지금 판 | 다시 작은 프롬프트. 예시 대신 맥락 |
이유가 뒤집힌 자리가 눈에 띈다. 예시를 붙이는 것이 도움이 아니라 가두는 일이 됐다는 쪽이다. 모델이 우리가 주는 예시보다 더 멀리 상상하니 제약이 아니라 맥락을 주려 한다고 말한다.
같은 도구가 판마다 달라진다
같은 이야기를 자기가 만든 도구로 보인다. 되묻기 도구를 클로드 코드에 붙였을 때, 한 판 아래 모델은 부르는 것조차 힘겨워 도구를 계속 손봐야 했다. 다음 판에서는 명세를 두고 마흔 가지를 되묻게 하니 인터뷰하듯 굴었다. 지금 판에서는 물음을 박아 넣은 리포트를 통째로 짠다.
내놓는 형식도 같이 옮겨 갔다고 말한다. 마크다운에서 계획 모드로, 이제는 깊이 들어간 리포트다.
이 일이 물리학보다 생물학에 가깝다고 말한다. 매우 경험적이고 유기적이라는 뜻이다.
지도와 영토
무엇을 쥐고 어디에 들어가나
발표의 가운데 개념이다. 머릿속 계획과 프롬프트와 명세가 지도이고, 실제 코드베이스와 현실의 제약이 영토다. 영토에서 지도에 없는 것을 만나면 그것이 「모르는 것」이다.
새 모델을 두고 처음으로 내 모르는 것을 미리 찾아 둬야겠다고 느꼈다고 말한다. 한 번에 훑는 넓이가 워낙 커서 그대로 두면 그런 자리를 잔뜩 만난다는 이유다.
발표가 나누는 네 칸
| 칸 | 무엇인가 |
|---|---|
| 아는 것을 안다 | 이미 쥐고 있고 쥔 줄도 안다 |
| 모르는 것을 안다 | 뭘 모르는지는 안다 |
| 아는 것을 모른다 | 쥐고 있는데 쥔 줄 모른다 |
| 모르는 것을 모른다 | 있는 줄도 모른다 |
발표가 든 순서 그대로
| 방법 | 무엇을 시키나 |
|---|---|
| 사각지대 훑기 | 내가 못 보고 있는 것을 짚고 더 나은 프롬프트를 도와 달라고 한다 |
| 시안 뽑기 | 확 다른 안 넷을 만들게 해서 그것에 반응해 본다 |
| 인터뷰 | 나를 인터뷰하게 하되 얼개를 바꿀 물음을 먼저 하라고 이른다 |
| 참고 코드 | 명세를 쓰는 대신 원하는 결과를 담은 코드를 준다 |
| 구현 기록 | 모르는 것을 만날 때마다 적게 해서 어디서 어긋났는지 남긴다 |
| 사후 퀴즈 | 끝난 뒤 나에게 문제를 내게 해서 내가 이해했는지 본다 |
넷째가 눈에 띈다. 명세를 말로 적는 대신 원하는 결과를 나타내는 코드를 통째로 던지는 쪽이다. 마지막도 방향이 뒤집혀 있다 — 모델을 검사하는 것이 아니라 모델이 나를 검사하게 한다. PR을 올리기 전에 내가 이 일을 설명할 수 있는지 확인하려는 것이다.
발표의 다른 절반은 회고다.
새 모델을 처음 썼을 때 크게 얻은 느낌과 잃은 느낌을 함께 느꼈다고 말한다. 몇 주 걸렸을 일이 몇 시간에 끝났다.
동시에 손으로 코드를 짜는 것을 정말 좋아했다고 말한다. 코드베이스를 머릿속에 놓고 돌려 보는 느낌을 좋아했다는 것이다. 그러면서도 밤늦게까지 실패 속을 헤엄쳤다는 기억을 함께 꺼낸다. 서른 명 남짓한 회사를 꾸리던 시절에는 코드가 어려운 탓에 늘 무엇을 버릴지 골라야 했다고 한다.
마지막 절에서 그 「골라야 한다」를 뒤집는다. 앤스로픽 문화 중 가장 좋아하는 것이 주고받기는 실재하지 않는다는 믿음이라고 말한다. 전 직장에서는 우선순위 목록을 적으며 합리적으로 굴었는데, 앞으로는 훨씬 덜 합리적이 되겠다고 말한다. 좋고 빠르고 싼 것 중 이제는 셋 다 고른다는 것이다.
이 발표 자료를 전날 밤 네 시간 만에 새 모델로 만들었다고 밝힌다.
만들기는 쉬워졌지만 값을 만드는 일은 여전히 어렵다는 말로 닫는다.
80%가 무엇의 80%인지 없다. 글자 수인지 줄 수인지, 걷어낸 뒤 무엇이 좋아졌는지가 나오지 않는다. 걷어내고 나빠진 것이 있었는지도 없다.
성능 수치가 하나도 없다. 벤치마크 점수를 한 번 들지만 그것은 우리가 그런 목표로 아침을 열지는 않는다는 예로 든 가상의 수다. 실제로 잰 값이 아니다.
여섯 방법 중 무엇이 얼마나 듣는지 없다. 여섯을 나란히 놓고 견준 자리가 없고, 하나를 뺐을 때 무엇이 나빠지는지도 없다.
네 시간 자료도 견줄 대상이 없다. 예전이라면 얼마나 걸렸을지가 없다.
앞으로도 계속 바뀔 것이라고 발표자가 직접 말한다. 프롬프트를 어떻게 짜느냐는 이야기의 유효기간을 스스로 짧게 잡아 둔 셈이다.
용어
오픈AI 코덱스(Codex) 팀 발표에 이어 게스트 피터 스타인버거가 자기 워크플로가 몇 달 새 어떻게 바뀌었는지 공개함. 터미널 10개 이상을 돌려 끝난 놈을 골라 쓰던 1월에서, 지금은 매니저 에이전트 하나에 일을 맡기고 서버사이드 컴팩션·조정·트리거 셋으로 루프를 완성한 이야기가 핵심임. GPT-5.6 계열이 입력 100만 토큰당 1달러·출력 6달러라는 값, 세레브라스에서 초당 750토큰을 내는 속도도 나옴.
▾한줄 코멘트. 발목을 잡는 것이 토큰에서 컴퓨트로, 컴퓨트에서 주의력으로 옮겨 갔다는 대목이 가장 오래 남을 이야기다. 앞의 둘은 더 사면 풀리는데 셋째는 더 살 수 없다. 발표자들도 아직 못 풀었다고 밝힌다. 모델이 그것을 감싸는 장치와 조직보다 빠르게 나아간다는 것이다.
코덱스를 만드는 쪽에서 두 사람이 나오고, 뒤이어 게스트 한 사람이 무대에 오른다. 앞의 둘은 이름만 말하고 소속과 직무는 밝히지 않는다. 세 번째 사람은 자기 이름을 말하지 않고 사회자가 불러 소개한다.
라이브 시연은 없다. 이번에는 좀 다르게 해 보고 싶었다고 밝힌다.
코드를 다루는 모델이 지나온 자리
| 걸음 | 무엇을 했나 |
|---|---|
| 완성 | 쓰던 것을 이어 준다 |
| 줄 안 예측 | 치는 자리에서 앞질러 낸다 |
| 시켜서 고치기 | 바꿔 달라고 하면 바꾼다. 시험은 안 한다 |
| 스스로 시험 | 고친 것이 도는지 자기가 확인한다 |
| 끝까지 간다 | 길고 어려운 목표를 다 될 때까지 붙든다 |
새 모델 값도 나온다. GPT 5.5 수준 지능을 절반 값에 낸다고 하고, 입력은 100만 토큰당 1달러, 출력은 6달러라고 한다. 세레브라스에서 돌린 것은 초당 750토큰을 낸다.
다만 이 대목의 모델 이름이 자막 안에서 뒤섞여 있다. 같은 5.6 계열을 두고 서로 다른 이름이 여럿 나와서 어느 값이 어느 판의 것인지 이 글에서는 구분하지 않았다.
아래에서 위로 연 층
| 층 | 무엇인가 |
|---|---|
| 모델과 API | 모델을 부르는 자리 |
| 코덱스 하니스 | 모델을 감싸는 장치. 오픈소스다 |
| 앱 서버 | 그 위에 올리는 자리. 오픈소스다 |
| 앱 층 | 브라우저와 플러그인처럼 남이 붙이는 것 |
맨 위를 연 이유를 밝힌다. 혁신이 자기들 아이디어에 막히지 않게 하려는 것이라고 한다.
짝짓기가 관리로 옮겨 간다
게스트가 자기 일하는 방식이 몇 달 새 어떻게 바뀌었는지 짚는다.
처음에는 에이전트 하나와 나란히 앉아 일했다. 그다음에는 터미널을 열 개 띄워 놓고 직속 부하 열 명을 다루듯 했다. 지금은 오래 도는 매니저 하나와 주로 이야기하고, 그 매니저가 팀에 다시 나눈다.
터미널 열 개를 굴리던 방식은 더 못 늘린다고 스스로 밝힌다.
이것을 가능하게 한 것으로 셋을 든다. 서버 쪽에서 도는 컴팩션이 오래 걸리는 일을 믿을 만하게 만들었고, 조율이 한 갈래에서 여러 갈래를 만들고 몰아갈 수 있게 했고, 자동화가 무슨 일이 생겼을 때 같은 매니저를 깨울 수 있게 했다. 지속되는 맥락과 위임과 방아쇠, 그 셋이 고리를 이룬다는 것이다.
이슈 하나가 처리되는 순서도 나온다. 매니저가 깨어나 이슈를 프로젝트의 목표에 대 보고 맞을지 판단한다. 맞으면 일꾼을 만들고, 일꾼이 조사하고 고치고 시험을 돌린다. 다른 에이전트가 결과를 검토한다. 사람이 필요할 때 매니저가 변경안과 원래 이슈와 필요하면 영상까지 들고 온다. 사람은 한 번 보고 승인하며, 검사를 통과하면 들어간다.
무엇이 발목을 잡나
이 발표에서 가장 값나가는 대목이다. 지난해에는 토큰이 모자랐고, 그다음에는 컴퓨트가 걸렸고, 지금은 주의력이 걸린다고 말한다.
앞의 둘과 셋째가 다르다. 토큰도 컴퓨트도 더 사면 되는데 주의력은 더 살 수 없다.
모델 이름이 자막 안에서 갈린다. 같은 5.6 계열을 두고 서로 다른 이름 여럿이 섞여 나온다. 값과 속도는 나오지만 어느 이름의 값인지는 이 자막만으로 가릴 수 없다.
매니저 방식이 얼마나 나은지 잰 값이 없다. 터미널 열 개보다 낫다는 것이 이야기의 뼈대인데, 무엇이 얼마나 빨라졌는지도 얼마나 덜 틀리는지도 나오지 않는다.
주의력이 한계라는 말을 받치는 측정도 없다. 한 사람이 몇 개까지 지켜볼 수 있는지, 어디서부터 놓치기 시작하는지가 없다.
발표자들이 스스로 밝히는 것 둘은 남길 만하다. 열 개를 굴리던 방식은 더 늘릴 수 없다고 말하고, 이 문제를 아직 못 풀었다고 말한다. 모델이 그것을 감싸는 장치와 조직보다 빠르게 나아가고 있다는 것이다.
알렉사가 6억 대 기기에서 수백 개 전문가 시스템과 수만 개 파트너 서비스를 오케스트레이션하는 규모, AWS 내부 팀이 아마존 Q 디벨로퍼 CLI 에이전트를 3주 만에 만들어 낸 이야기를 다룸. 그 속도의 비결로 내놓은 것이 모델에게 계획·판단·행동을 맡기고 개발자는 '무엇을' 시킬지만 정하는 모델 중심 설계이고, 이를 코드로 편 것이 오픈소스 SDK 스트랜즈 에이전트(Strands Agents)임. 도구 6,000개를 가진 내부 에이전트가 이를 지식베이스에 넣고 검색해 필요한 것만 모델 컨텍스트로 끌어오는 방식과, MCP 서버를 람다(Lambda)로 배포해 원격에서 규모를 키우는 방법도 구체적으로 나옴.
▾한줄 코멘트. 옮겨 쓸 것은 도구가 많아졌을 때의 처리다. 사내 에이전트 하나가 도구 6,000개를 다루는데 그것을 한 컨텍스트 창에 다 넣고 모델에게 고르라 할 수는 없다고 발표자가 먼저 인정한다. 그래서 도구 설명을 지식 베이스에 두고 검색으로 관련된 것만 꺼내 온다. 나머지는 AWS 제품 안내이고 성능도 비용도 지연도 재 본 값이 하나도 없다.
AWS에서 클라우드 규모로 에이전트를 만드는 이야기를 한다. 먼저 규모를 깔아 둔다.
발표가 든 규모
| 무엇 | 얼마 |
|---|---|
| 아마존이 만들었거나 만들고 있는 생성 AI 애플리케이션 | 1,000개가 넘는다 |
| 세상에 나가 있는 알렉사 기기 | 6억 대가 넘는다 |
| 알렉사 플러스가 거치는 전문 시스템 | 수백 개 |
| 그것이 엮는 파트너 서비스와 기기 | 수만 개 |
| 사내 에이전트 하나가 다루는 도구 | 6,000개가 넘는다 |
알렉사 대목은 미리 만든 영상으로 보여 준다.
아마존 Q 디벨로퍼의 CLI 에이전트를 3주 만에 만들어 내보냈다고 한다. 발표자는 청중에게 얼마나 걸렸을지 손을 들어 보게 한 뒤 이 숫자를 밝힌다.
그 속도를 내려고 만드는 방식을 근본부터 다시 생각했다는 것이 이 발표의 주장이다. 요즘 모델이 판단하고 계획하고 행동하는 데 훨씬 나아졌으니 그 힘을 쓰자는 것이다. 개발자는 에이전트가 무엇을 할지에 집중하고 어떻게 할지는 일러 주지 않는다.
이것을 코드로 편 것이 오픈소스 파이썬 SDK 스트랜즈 에이전트다. 모델과 도구 둘을 잇는 것이 전부라고 설명하며 DNA의 두 가닥에 빗댄다. 미리 만들어 둔 도구가 20개 넘게 딸려 오고, *MCP를 안에 넣어 두었고, *A2A 지원도 곧 붙는다고 한다. 모델은 클로드 3.7 소네트를 쓰는 화면을 보이고 다른 제공자도 붙일 수 있다고 말한다.
도구가 6,000개일 때
이 발표에서 가장 옮겨 쓸 만한 대목이다. 사내 에이전트 하나가 도구를 6,000개 넘게 다루는데, 발표자는 그 수를 한 컨텍스트 창에 넣고 모델 하나에게 고르라고 하기는 어렵다고 그대로 인정한다.
그래서 목록을 넣는 대신 찾아오게 만든다. 도구 설명을 *지식 베이스에 넣어 두고, 의미로 검색하는 도구를 하나 두고, 지금 일에 맞는 것만 꺼내 컨텍스트에 넣는다. 모델은 그 안에서 고른다.
MCP를 바깥으로 내보내기
MCP는 원래 한 대 안에서 클라이언트와 도구를 잇는 것으로 시작했다. *표준 입출력으로 붙는 방식이다.
이것을 바깥으로 내보내는 순서를 보인다. *람다 함수로 올리고, 배포하면 주소가 나오고, 클라이언트가 토큰을 들고 붙어 도구를 부른다.
바깥으로 나가면서 붙는 것이 있다. 누가 부르는지 확인할 자리가 필요하다. 인가자와 사용자 풀과 세션을 담는 표가 함께 들어간다고 설명한다.
성능을 잰 값이 하나도 없다. 지연도 비용도 정확도도 나오지 않는다. 6억 대와 6,000개와 3주는 규모와 기간이지 잘 돌아간다는 증거가 아니다.
3주가 빠른지 판단할 기준이 없다. 청중에게 손을 들어 보게 한 것은 추측을 모은 것이지 견줄 대상이 아니다. 같은 것을 예전 방식으로 만들면 얼마나 걸리는지가 안 나온다.
도구 검색이 얼마나 맞는지가 없다. 6,000개 중에서 관련된 것만 꺼내 온다는 설계인데, 맞는 도구를 못 찾으면 어떻게 되는지와 검색이 몇 퍼센트나 맞히는지가 나오지 않는다. 이 방식의 급소가 바로 거기다.
언제까지 유효한 이야기인지도 밝히지 않는다.
발표는 자사 오픈소스 블로그 시리즈로 더 보라며 QR 코드로 넘기고 끝난다.
용어
깃허브 MCP 서버가 툴 100개를 넘기며 에이전트를 오히려 헷갈리게 만들던 시절, 툴셋과 동적 선택 같은 정교한 해법을 만들어놓고도 정작 다들 기본 설정만 썼다는 실패담부터 짚음. 목록 풀 리퀘스트 하나에서 출력 토큰 75%를 줄인 사례, 읽기 전용 모드를 쓰는 사용자가 17%인데 이를 노출하는 클라이언트가 없는 실태, 동적 클라이언트 등록을 거부한 이유, 주당 툴 호출 700만 건을 무상태 서버로 처리하는 구조까지 구체적으로 보여줌.
▾한줄 코멘트. 컨텍스트를 줄인 세 걸음이 이 발표의 알맹이다. 도구를 흔한 쓰임에 맞춰 좁혀 첫 적재를 49% 줄이고, 만들고 읽고 고치고 지우는 것을 묶어 기본 도구를 마흔 개쯤으로 낮추고, 응답에서 필요 없는 것을 걷어 목록 조회 하나에서 75%를 덜어냈다. 앞의 둘은 넣는 것을 줄이고 셋째는 나오는 것을 줄인다는 점이 갈린다.
깃허브에서 *MCP 서버 개발을 이끄는 사람이 발표한다. 원격 서버를 만들고 키우며 부딪힌 것과 그것을 어떻게 넘겼는지가 주제다.
시작은 도구를 너무 많이 낸 것이었다. 당시 100개가 넘는 도구를 골랐고 그것이 너무 많았다고 스스로 말한다.
컨텍스트를 줄인 세 걸음
첫 걸음은 도구를 흔한 쓰임에 맞춰 깎은 것이다. 이것으로 첫 적재가 49% 줄었다.
둘째는 묶는 것이다. 만들고 읽고 고치고 지우는 *CRUD 도구를 하나로 묶어 더 줄였다. 기본 설정으로 쓰면 도구가 약 40개가 된다.
셋째가 앞의 둘과 결이 다르다. 도구 목록이 아니라 응답이 컨텍스트를 먹고 있었다. 목록 조회 도구 하나에서 나오는 것을 필요한 것만 남기자 출력 토큰이 75% 넘게 줄었다.
발표에서 가장 값나가는 실패담이 이 대목이다.
도구가 많아 에이전트가 헷갈리는 것을 풀려고 도구 묶음이나 상황에 따라 고르는 방식 같은 장치를 만들어 뒀다. 그런데 정작 쓰는 사람들은 기본 설정만 썼다.
읽기 전용 모드도 같은 자리에 있다. 사용자의 약 17%가 쓰는데, 그 모드를 화면에 내주는 클라이언트가 없다고 말한다. 만들어 둔 것과 실제로 닿는 것 사이에 틈이 있다는 이야기다.
그래서 기본값을 잘 고르는 일이 정교한 선택지를 만드는 일보다 앞선다.
권한이 모자랄 때
권한을 다루는 방식도 같은 결이다. 에이전트가 도구를 부르는데 *스코프가 모자라면 거기서 실패로 끝내지 않는다.
모자란다는 신호를 돌려주고, 사용자에게 그 권한을 열어도 되는지 그 자리에서 묻는다. 허락이 오면 멈춰 있던 호출이 그대로 이어진다.
규모를 감당하는 구조도 단순하다. 요청이 올 때마다 새 서버 인스턴스를 만들고, 그 시작 시점에 그 사용자의 설정과 권한에 맞는 도구만 붙인다. 그래서 사용자는 자기가 요청한 것이나 쓸 수 있는 것만 받는다.
같은 사용자를 같은 서버로 보내는 장치는 두지 않는다고 한다. 이 방식으로 주간 도구 호출 약 700만 건을 처리하는 규모까지 왔다.
주간 도구 호출 수가 발표 안에서 갈린다. 중반에는 약 700만 건이라 하고 끝부분에서는 800만 건에 가까워지고 있다고 말한다. 어느 쪽이 맞는지는 발표만으로 알 수 없다.
49%와 75%가 무엇을 기준으로 잰 값인지 좁혀지지 않는다. 49%는 첫 적재를 줄인 폭이고 75%는 도구 하나의 출력에서 줄인 폭인데, 둘을 합쳐 실제 대화 하나에서 얼마가 줄었는지는 나오지 않는다.
도구를 줄여서 에이전트가 실제로 더 잘하게 됐는지가 없다. 헷갈렸다는 것이 문제의 출발이었으니 줄인 뒤 성공률이 어떻게 달라졌는지가 있어야 하는데, 성공률 이야기는 95%가 넘는다는 현재 값 하나로만 나온다.
발표자가 스스로 밝히는 것 둘은 적어 둘 만하다. 모든 실패를 막을 수는 없다고 말한다. 에이전트는 자기가 어느 저장소에 쓸 권한이 있는지 모르고 여전히 없는 것을 지어내기 때문이다. 그리고 특정 대목을 설명하며 이건 이제 낡은 이야기라고 스스로 못 박는다.
용어
리드미(README) 파일 하나만 채워두고 코파일럿 에이전트 모드에 맡겨 8분 만에 동작하는 여행 예약 앱을 만드는 시연과, 포스트그레스(Postgres) MCP를 읽기 전용으로 붙여 실제 DB 데이터를 mock.json으로 뽑아 테스트를 만드는 과정을 구체적으로 보여줌. 깃허브(GitHub) MCP로 브랜치 생성부터 PR까지 한 문장으로 시키는 법과, 코파일럿 인스트럭션 파일에 변경 로그를 남기게 하는 실전 팁도 나옴.
▾한줄 코멘트. 옮겨 볼 만한 것은 둘이다. 데이터베이스에 붙는 MCP를 읽기 전용으로 두어 실수로 자료가 바뀔 길을 아예 막았고, 연결이 필요할 때마다 개발자에게 물어 답을 받고서야 부른다. 8분 만에 앱이 돌았다는 대목은 발표자 스스로 스타일도 없는 기본만 도는 앱이라 말하고, 시연도 인터넷이 못 미더워 미리 녹화한 영상이다.
깃허브 코파일럿의 에이전트 모드에 *MCP를 붙여 실제 개발 작업을 시키는 시연이다. 리드미 한 장만 채워 두고 맡겨 여행 예약 앱을 만들고, 데이터베이스에서 자료를 뽑아 테스트 재료를 만들고, 브랜치를 만들어 PR까지 올린다.
시연은 전부 미리 녹화한 영상이다. 인터넷이 못 미덥다고 먼저 밝힌다.
코파일럿이 지나온 세 걸음
발표는 먼저 걸어온 길을 짚는다. 처음은 코드 완성이었고, 다음이 채팅이었고, 지금이 에이전트 모드다.
앞의 둘과 셋째의 차이가 이 발표의 출발점이다. 앞의 둘은 사람이 치는 것을 돕지만, 에이전트 모드는 일 하나를 끝까지 맡는다. 그러면서 바깥에 연결할 일이 생기고 그 자리에 MCP가 붙는다.
리드미만 채워 두고 맡긴 결과가 8분 만에 나왔다고 한다. 다만 발표자 스스로 스타일은 안 갖췄고 기본만 도는 앱이라고 말한다. 예약을 만들고 방을 고르는 정도가 된다.
MCP가 붙을 때 무엇이 오가나
셋째 칸이 요점이다. 코파일럿이 프롬프트를 읽어 MCP가 필요하다고 판단하면 바로 붙지 않고 개발자에게 연결해도 되는지 먼저 묻는다. 답을 받고서야 서버를 부르고 데이터베이스에 질의한다.
깃허브 쪽도 같다. 브랜치를 만들고 PR을 올릴 때 그 자리에서 한 번 묻는다.
시연 시나리오는 테스트 만들기다. 로컬 데이터베이스에 든 진짜 자료를 테스트용 모의 자료로 쓰고 싶다는 것이다.
그래서 포스트그레스 MCP로 가서 자료를 뽑아 `mock.json`을 만들라고 시킨다. 조회는 세 걸음으로 간다. 데이터베이스 스키마를 확인하고, 어느 테이블을 쓸지 고르고, 거기서 자료를 뽑는다. 그러고 나면 MCP와 무관한 나머지 작업이 이어져 그 파일을 재료로 테스트를 짠다.
여기 걸린 안전장치가 이 발표에서 가장 실용적이다. 이 포스트그레스 MCP는 읽기 전용으로만 동작한다. 그래서 에이전트가 실수로 데이터베이스를 바꿀 길이 없다.
발표자가 못 박는 말이 하나 있다. 첫 프롬프트는 틀릴 것이라고 장담한다.
그래서 리드미를 쓴다고 한다. 코파일럿 인스트럭션 파일도 같은 쓸모다. `.github/copilot-instructions.md`에 넣어 두면 모든 프롬프트에 미리 얹힌다. 골라 쓰고 싶은 것은 프롬프트 파일로 따로 둔다.
한 번 잘 시키려 애쓰는 대신 시키는 말을 파일로 남겨 두는 쪽으로 가라는 이야기다.
8분이 무엇을 잰 값인지 좁혀지지 않는다. 기본만 도는 앱이라고 밝히기는 하지만, 리드미를 쓰는 시간이 들어갔는지, 중간에 몇 번 고쳐 시켰는지가 없다.
견줄 기준이 없다. 사람이 같은 앱을 직접 만들면 얼마나 걸리는지, 에이전트 모드 없이 채팅만으로 하면 어떤지가 나오지 않는다. 8분이 빠른지 느린지 판단할 자리가 비어 있다.
시연이 전부 녹화 영상이다. 실패하는 장면이 나올 여지가 없는 형식이고, 발표자도 그 점을 앞에서 밝힌다.
발표자가 모르는 것을 모른다고 하는 대목은 있다. 전송 프로토콜 한 갈래에는 자신이 밝지 않다고 말하고, 이 바닥이 늘 유동적이라 정확히 어떻게 되는지는 겪어 봐야 안다고 덧붙인다.
용어
MCP(모델 컨텍스트 프로토콜) 월간 다운로드가 1억 1000만 건에 이르렀다는 수치와 함께, 툴을 미리 다 컨텍스트에 넣지 않고 필요할 때만 불러오는 프로그레시브 디스커버리와 여러 툴 호출을 스크립트 하나로 묶는 프로그래매틱 툴 콜링을 클로드 코드 적용 전후 화면으로 보여줌. 스트리머블 HTTP의 확장성 문제를 풀 스테이트리스 전송 프로토콜, 크로스앱 액세스, 스킬 오버 MCP처럼 6월에 나올 프로토콜 로드맵도 구체적으로 짚음.
▾한줄 코멘트. 옮겨 볼 만한 것은 도구를 부르는 방식을 바꾼 대목이다. 하나 부르고 결과 받고 다시 말하고 또 부르는 왕복을 없애고, 실행 환경을 줘서 모델이 스크립트로 여러 호출을 한 번에 엮게 한다. 나머지는 규격이 어디로 갈지에 대한 예고라 아직 잰 값이 없다.
*MCP를 만든 쪽에서 지난 흐름과 앞으로를 이야기한다. 자막에 발표자가 자기를 소개하는 대목은 없다.
채택 수치를 먼저 든다. 월간 다운로드가 1억 1,000만 건에 이르렀고, 견줄 대상으로 리액트를 놓는다. 리액트가 같은 다운로드 규모에 닿는 데 대략 두 배의 시간이 걸렸다는 것이다.
해마다 무엇이 달랐는지도 갈라 놓는다. 2024년은 데모를 잔뜩 만든 해였고, 2025년은 코딩 에이전트와 탐색의 해였고, 2026년은 프로덕션과 연결성의 해라고 말한다.
연결성이라는 말이 이 발표의 제목이다. 가장 잘하는 에이전트는 한 가지 방법만 쓰지 않고 컴퓨터 사용과 CLI와 MCP와 *스킬을 전부 쓴다는 것이다.
2026년에 에이전트를 만들 때 따질 것을 셋으로 나눈다.
세 갈래와 어울리는 자리
| 갈래 | 어떤 때 쓰나 |
|---|---|
| 스킬 | 되풀이해 쓸 지식을 단순한 파일에 담아 둘 때 |
| CLI·컴퓨터 사용 | 로컬이거나 샌드박스 안이거나 모델이 이미 익힌 도구일 때 |
| MCP | 뜻이 풍부해야 하거나 화면과 *인가와 거버넌스가 필요할 때 |
도구를 부르는 두 방식
도구를 부르는 두 방식
여기가 이 발표에서 가장 실용적인 대목이다.
지금까지는 모델이 도구를 하나 부르고, 결과를 받고, 다시 말하고, 또 다른 도구를 부른다. 부를 때마다 모델을 한 번씩 거치는 왕복이 생긴다.
대신 모델에게 *REPL 같은 실행 환경을 준다. 그러면 모델이 스크립트를 써서 여러 호출을 한 번에 엮는다. 왕복이 사라진다.
컨텍스트 쪽에도 같은 결의 변화가 있다. 도구를 전부 컨텍스트 창에 미리 넣던 것을, 모델이 필요로 할 때 도구 검색으로 불러오게 바꿨다. 클로드 코드에 넣기 전과 후 화면을 나란히 보이며 도구가 차지하던 컨텍스트가 크게 줄었다고 말한다.
서버 하나가 두 갈래로 쓰인다
앞으로를 이야기하는 대목에서 이 그림이 나온다. MCP 서버가 도구만 내보내는 것이 아니라 앱까지 함께 실어 보낼 수 있다는 것이다.
그러면 같은 서버를 사람은 화면으로 만지고 모델은 도구로 만진다.
6월에 나올 것으로 몇 가지를 더 든다. 지금 전송 방식의 확장성 문제를 풀 상태 없는 전송 규격, 서버를 찾아내는 방법, 그리고 SDK의 다음 판이다.
로그인 이야기도 있다. 회사가 쓰는 신원 제공자에 한 번만 로그인하면 여러 MCP 서버를 다시 로그인하지 않고 쓰게 하겠다는 것이다.
성능을 잰 값이 없다. 도구가 차지하는 컨텍스트가 크게 줄었다고 화면으로 보이지만 얼마나 줄었는지 숫자가 안 나온다. 스크립트로 묶는 방식이 왕복보다 얼마나 빠른지도 없다.
1억 1,000만 건은 채택 수치다. 얼마나 잘 쓰이는지를 재는 값이 아니다. 리액트와 견준 대목도 도달 속도를 견준 것이지 무엇이 더 낫다는 이야기가 아니다.
앞으로 나올 것들은 아직 예고다. 상태 없는 전송이든 서버 찾기든 한 번만 로그인하기든, 실제로 무엇이 얼마나 나아지는지는 이 발표에 없다.
언제까지 유효한 이야기인지 밝히지 않는다. 6월에 무엇이 나온다는 예고가 뼈대인 발표라 특히 날짜를 붙여 읽어야 한다.
한 가지는 솔직하다. 발표자가 아직 만들 것이 많은 이유로 자기들 에이전트가 여전히 부족하다는 점을 먼저 든다. 자기가 쓴 파이썬 SDK보다 남이 만든 것이 낫다고 말하는 대목도 있다.
용어
MCP(모델 컨텍스트 프로토콜)가 텍스트만 돌려주던 시절엔 README에 아스키 아트와 이모지가 넘쳤다는 이야기와, 이제는 서버가 UI 리소스를 함께 돌려줘 호스트가 그걸 샌드박스 아이프레임에 렌더링하는 구조를 알게 됨. 리엄 햄프턴이 직접 짠 Go 코드를 5초 동안 프로파일링해 플레임 그래프를 iframe 안에서 바로 띄우는 데모와, 쇼피파이·익스칼리드로·피그마가 MCP 앱을 실제로 쓰는 방식도 담겨 있음.
▾한줄 코멘트. MCP가 글만 돌려주던 자리에 만질 수 있는 화면이 온다. 새로 생긴 것은 하나다. 서버가 결과와 함께 화면 재료를 돌려주고, 호스트가 그것을 가둬 둔 틀 안에 그린다. 한 번 그리고 끝나지 않고 사용자가 만지면 서버로 되물어 갱신한다는 점이 이 구조의 값이다.
마이크로소프트와 깃허브에서 개발자 애드보킷으로 일하는 두 사람이 발표한다. 한 사람은 VS Code와 코파일럿 쪽을 주로 다룬다고 밝힌다.
주장은 한 줄이다. MCP 앱은 서버 도구가 채팅 안에서 바로 그려지는 화면을 돌려주게 한다.
바닥 구조부터 짚는다. *MCP에는 호스트가 있고, 클라이언트가 있고, 서버가 있다.
글만 오던 자리에 화면이 온다
같은 물음에 무엇이 돌아오나
예전에는 서버가 글만 돌려줬다. 그래서 설명 문서에 아스키 그림과 이모지가 넘쳤다고 말한다.
같은 물음을 그림 그리는 MCP 서버에 던지자 이번에는 다이어그램이 만들어져 떴다. 나란히 놓고 보이는 대비다.
화면이 뜨기까지
*MCP 앱은 세 부분으로 이루어진다.
MCP 앱을 이루는 셋
| 부분 | 무엇인가 |
|---|---|
| 도구 | 모델과 호스트가 부르는 자리 |
| 리소스 | 묶어 둔 HTML 화면 |
| 링크 | 그 도구와 그 화면을 잇는 것 |
도는 순서는 이렇다. 사용자가 묻고, 모델이 어느 도구를 쓸지 정하고, 서버가 결과와 함께 화면 재료를 가리키는 표를 돌려준다. 호스트가 그 HTML을 가져와 가둬 둔 틀 안에 그린다.
거기서 끝나지 않는다. 사용자가 그 화면을 만지면 앱이 서버로 되묻고, 서버가 새 자료를 돌려주면 화면이 갱신된다.
시연은 프로파일링이다. 직접 짠 Go 코드를 5초 동안 재서 어디에 시간이 가장 많이 쓰이는지 본다. 그 결과가 플레임 그래프로 채팅창 안에 떴다.
쓰는 곳으로 쇼피파이와 그림 도구와 피그마를 든다. 다만 피그마 쪽은 잘 그려진 화면 예시를 못 찾았다고 발표자가 그대로 밝힌다.
수치가 없다. 5초는 프로파일링을 돌린 시간이지 이 구조가 무엇을 얼마나 낫게 하는지를 잰 값이 아니다.
화면이 오면 무엇이 나아지는지 견줄 값도 없다. 글로 받을 때와 화면으로 받을 때 사람이 일을 얼마나 빨리 끝내는지가 나오지 않는다. 아스키 그림과 다이어그램을 나란히 보이는 것으로 대신한다.
가둬 둔 틀이 무엇을 막는지 없다. 서버가 준 HTML을 화면에 그린다는 구조라 무엇을 허용하고 무엇을 막는지가 안전의 핵심인데, 가둬 놓았다는 말까지만 있다.
언제까지 유효한 이야기인지도 밝히지 않는다.
용어
파일을 읽어 요약하고 마크다운으로 쓴 뒤 소리 내어 읽어주는 데모가 기본 도구 세 개만으로 돌아가는 과정과, MCP(모델 컨텍스트 프로토콜) 서버를 붙여 3blue1brown 스타일 수학 애니메이션을 마님(Manim)으로 자동 생성하는 두 번째 데모를 코드 단위로 보여줌. 파이썬 함수에 데코레이터 하나만 얹으면 바로 에이전트 도구가 된다는 점과, 기본값으로 베드록의 클로드 3.7을 쓴다는 구체적인 세팅도 짚음.
▾한줄 코멘트. 옮겨 쓸 것은 에이전트를 모델과 시스템 프롬프트와 도구 셋으로만 세운다는 자름 하나다. 나머지는 오픈소스 SDK를 어떻게 깔고 어떻게 부르는지 보여 주는 시연이고, 성능도 비용도 지연도 견줄 기준도 나오지 않는다. 시연은 전부 미리 녹화한 화면이다.
AWS가 낸 오픈소스 에이전트 SDK를 소개하는 발표다. 자막에 발표자가 자기를 소개하는 대목은 없다.
내세우는 동기가 하나다. 에이전트를 만들 때 붙는 발판을 걷어내고 최대한 단순하게 만들자는 것이다.
시연은 전부 미리 녹화했다. 행사장 와이파이를 못 믿겠다는 이유를 먼저 밝힌다.
발표가 반복해서 짚는 것이 이 자름이다.
에이전트를 만들 때 주는 것
| 무엇 | 뜻 |
|---|---|
| 모델 | 어느 모델을 쓸지 |
| 시스템 프롬프트 | 어떤 성격으로 굴릴지 |
| 도구 | 무엇을 할 수 있게 할지 |
이 셋을 주면 끝이라고 말한다. 설치도 두 걸음이다. 본체를 깔고 기본 도구 묶음을 깐다.
도구를 직접 만드는 것도 짧다. 파이썬 함수 하나에 데코레이터를 얹으면 그대로 도구가 된다. 만든 도구는 기본 도구와 같은 목록에 나란히 넣는다.
한 판이 도는 순서
첫 시연은 기본으로 딸려 오는 도구 셋만 쓴다. 디스크에서 파일을 하나 읽고, 내용을 간추리고, 그 요약을 파일로 쓰고, 결과를 소리로 낸다.
따로 만든 도구 없이 시킨 문장 하나로 이 네 걸음이 돈다는 것이 이 시연이 보이려는 것이다.
바깥 도구가 붙는 순서
둘째 시연은 *MCP 서버를 붙인다. 에이전트와 함께 MCP 클라이언트를 만들고, 이미 떠 있는 서버에 연결하고, 그 서버가 가진 도구 목록을 받아 온다.
셋째 걸음이 요점이다. 서버에 무슨 도구가 있는지 미리 적어 두지 않는다. 붙은 뒤에 목록을 넘겨받으므로 서버 쪽이 바뀌어도 클라이언트를 고칠 일이 줄어든다.
그렇게 붙인 뒤 삼차 방정식을 시각화해 달라고 시키자 영상이 만들어졌다.
수치가 하나도 없다. 지연도 비용도 정확도도 나오지 않는다. 발판을 걷어내 단순해졌다는 것이 주장인데, 단순해져서 무엇이 얼마나 나아지는지를 잰 값이 없다.
견줄 대상도 없다. 다른 에이전트 프레임워크로 같은 시연을 하면 코드가 얼마나 길어지는지, 무엇이 더 번거로운지가 나오지 않는다. 발판이 없다는 말이 비교 없이는 확인되지 않는다.
시연이 전부 녹화 화면이다. 실패하는 장면이 나올 여지가 없는 형식이다.
언제까지 유효한 이야기인지도 밝히지 않는다.
발표자가 스스로 짚는 한계는 하나 있다. 시연에서 만들어 낸 코드를 사람이 손으로 짜려면 시간이 꽤 걸리고 그리 간단하지 않다는 대목이다.
용어
은행 계좌 개설 에이전트가 신원 확인에 DMV(차량관리국) 등록부와 여권 검증 서비스 두 데이터 소스를 쓰는 예로, 팀마다 에이전트를 만들 때마다 데이터 배선을 처음부터 다시 하는 문제를 짚음. 비즈니스 온톨로지·기술 온톨로지·실행 추적, 이 세 층을 두면 데이터 소스 발견·신뢰 판단·DRY(같은 배선 반복 방지)·자기 학습까지 한 번에 풀린다는 청사진을 포춘 20위 은행과 베이 에어리어 대형 테크 기업 등 실제 작업 사례로 제시함.
▾한줄 코멘트. 같은 배선을 에이전트마다 되풀이하지 말자는 것이 이 발표의 전부다. 데이터가 어디 있고 무엇을 뜻하는지를 바닥에 한 번 세워 두고 여럿이 나눠 쓰면 에이전트는 얇아진다. 다만 그 바닥을 어떻게 만드는지는 이 발표에서 다루지 않겠다고 발표자가 먼저 밝힌다.
그래프 데이터베이스를 만드는 회사에서 큰 조직의 데이터를 에이전트가 쓸 수 있게 만드는 일을 한다고 밝히며 연다. 자막에 자기 이름을 대는 대목은 없다.
문제를 세우는 예는 은행이다. 계좌 개설을 자동으로 처리하는 에이전트를 만든다고 하자. 신원을 확인하려면 자료를 찾아야 하는데, 큰 조직에서는 그것이 쉽지 않다.
스타트업이면 데이터베이스 하나만 보면 된다. 기업은 다르다. 데이터베이스가 수백 개이고 그 밖에 여러 저장소가 흩어져 있다.
에이전트를 두 조각으로 나눠 보면 문제가 또렷해진다. 무엇을 할지 정하는 부분과 자료에 닿는 부분이다. 팀마다 에이전트를 만들 때마다 뒤쪽을 처음부터 다시 잇는다.
두꺼운 에이전트와 얇은 에이전트
데이터에 닿는 방식을 어디에 두나
발표가 그리는 이동이 이것이다. 지금은 에이전트마다 자료 자리를 손으로 이어 붙인 두꺼운 모양이다. 옮겨 가려는 곳은 공유하는 바닥이 그 일을 맡고 에이전트는 가벼워지는 모양이다.
그 바닥을 발표는 *온톨로지라 부른다. 그것을 이루는 것으로 셋을 든다.
바닥을 이루는 세 기둥
| 기둥 | 무엇을 담나 |
|---|---|
| 업무 쪽 뜻풀이 | 이 조직에서 그 말이 무엇을 가리키는지 |
| 기술 쪽 뜻풀이 | 그것이 실제로 어느 저장소 어느 자리에 있는지 |
| 실행 흔적 | 무엇을 골라 어떻게 됐는지 |
발표자는 이 셋이 함께 네 가지 문제를 푼다고 말한다. 다만 그 넷을 다시 하나씩 세어 보이지는 않는다.
고른 것이 기록으로 남아 되먹는다
셋째 기둥이 왜 필요한지 보이는 사례가 나온다.
에이전트가 준법 확인을 하려다 정부가 낸 신분증을 봐야 한다는 것을 알아챈다. 그것을 확인할 자리가 둘 있다. 차량 등록 기록과 여권 확인 서비스다. 그중 하나를 고른다.
여기서 끝나지 않는다. 어디서 무엇을 했고 잘 됐는지가 기록으로 남는다. 그 기록이 점수가 되어 다음번 고르기에 든다.
수치가 하나도 없다. 이 바닥을 세웠을 때 무엇이 얼마나 나아지는지가 나오지 않는다. 배선을 다시 하지 않아 아낀 시간도, 자료를 더 잘 찾게 된 정도도 없다.
바닥을 만드는 법을 이 발표에서 안 다룬다. 기술 쪽 뜻풀이를 세 가지 방법으로 만들 수 있다고 말하면서 이 발표에서는 다루지 않겠다고 그 자리에서 밝힌다. 얇은 에이전트가 성립하려면 그 바닥이 있어야 하는데 그 만드는 값이 통째로 빠져 있다.
점수를 어떻게 매기는지도 없다. 실행 흔적이 다음 선택에 든다는 것까지만 나오고, 무엇을 잘한 것으로 치는지가 없다.
견줄 대상도 없다. 두꺼운 방식과 얇은 방식을 나란히 놓고 잰 값이 없다.
큰 조직 여럿에서 이 문제를 풀어 왔다고 말한다. 포춘 20위 안에 드는 은행과 베이 에어리어의 큰 기술 회사와 앞선 핀테크 회사를 든다. 다만 그 일에서 무엇이 어떻게 됐는지는 나오지 않는다.
용어
CI 엔지니어가 겪은 사고, 즉 필터가 빠지면서 워크로드 약 200개가 90초 만에 지워지고 엔지니어 20명 몫이 날아간 사례를 출발점 삼아, 예 아니면 아니오로만 답하는 토큰 대신 얼마나·얼마나 빨리·되돌릴 수 있는지·누가 보고 있는지 네 축으로 잰 예산을 주는 법이 나옴. 소리 내어 틀리는 동사만 맡기고, 삭제는 시간당·자원별·이름칸별로 다시 차오르는 한도를 걸고, 에이전트 신원은 스스로가 아니라 프록시가 찍게 만든 사내 사례가 구체적으로 나옴.
▾한줄 코멘트. 에이전트에게 준 것이 권한 목록이 아니라 예산이어야 한다는 이야기다. 값이 나가는 대목은 자기 사고를 숫자까지 붙여 먼저 꺼낸다는 것, 그리고 마지막 규칙 하나 — 신원을 에이전트가 스스로 대게 두면 한도가 아무 소용이 없다는 자리다. 이 발표에는 팔 제품이 없다.
지속적 통합(CI) 팀에서 시험 장치를 만드는 엔지니어가 발표한다. 수천 명이 매일 코드를 안전하게 내보내게 하는 배관이 자기 일이라고 말한다.
요즘 에이전트 시연은 다 같은 식으로 열린다고 말한다. 무엇이든 되는 토큰을 쥐여 주고 도구 목록을 주고 지켜본다. 이 발표는 그 시연이 끝난 뒤의 이야기다.
사고는 이렇게 났다. 에이전트가 이제 쓸모없다고 본 작업들을 스스로 치우려 했다. 파이프라인 한 단계가 아무 값도 없는 것으로 계산되면서 걸러 내는 조건이 빠졌고, 고르는 식이 전부와 맞아떨어졌다.
작업 200개가 지워졌다. 엔지니어 스무 명 몫이 영향을 받았고 전부 90초 안에 끝났다. 그중에는 오래 도는 학습 작업도 있었고 중간 저장조차 안 된 것이 섞였을 수 있다고 말한다.
악의는 없었다고 못 박는다. 에이전트는 정말로 정리한다고 믿었다.
사고 뒤 자신을 괴롭힌 것은 다른 대목이었다고 말한다. 에이전트가 자기가 못 할 일을 한 적이 없다는 것 — 결국 자기 토큰을 쓴 것이다.
그러니 실패한 것은 모델이 아니라, 자기가 눈여겨보지 않는 일에 한도 없는 힘을 준 쪽이라고 말한다.
새로 들어온 사람을 붙일 때 이미 같은 문제를 푼다고 말한다. 키 하나하나를 지켜보지는 않되 올려 보낼 길이 있고, 돌이킬 수 없는 것은 구조적으로 손이 안 닿게 해 둔다.
에이전트는 다르다. 지치지도 자지도 않고, 때때로 아주 자신만만하게 틀린다.
이런 사고 뒤의 표준 처방은 토큰 범위를 좁혀 삭제를 빼는 것이다. 그런데 그것은 새로 온 사람에게는 절대 안 할 짓이고, 길어야 한두 주 버틴다고 말한다.
이유는 토큰의 생김새에 있다. 토큰은 예 아니면 아니오다. 굳어 있는 목록이라 좁히면 쓸모가 없어지고 넓히면 사고 보고서를 쓰게 된다.
예산이 갖는 네 축
| 축 | 무엇을 묻나 |
|---|---|
| 얼마나 | 얼마만큼 할 수 있나 |
| 얼마나 빨리 | 어느 속도로 할 수 있나 |
| 되돌리기 | 스스로 되돌릴 수 있는 것은 무엇인가 |
| 누가 보나 | 그 일이 벌어지는 동안 누가 알아채나 |
두 갈래의 동사
틀렸을 때 어디서 드러나나
첫째 원리다. 여기서 동사란 API 호출이든 명령이든 에이전트가 할 수 있는 동작을 말한다.
같은 크기로 보여도 방향에 따라 터지는 넓이가 다르다고 말한다. 막아 둔 시험을 잘못 되켠다면 최악이라야 여러 사람 화면이 빨개진다. 사람을 잘못 호출한다면 최악이라야 당번이 성가시다.
반대쪽이 문제다. 시험을 잘못 건너뛰면 아무것도 빨개지지 않는다. 진짜 버그가 초록 표시를 달고 배포되고, 한참 뒤까지 아무도 모른다.
그래서 원칙이 선다. 화면에서 소리 내어 틀리는 동사만 에이전트에게 주고 나머지는 사람을 끼운다.
자기 팀 사례를 든다. 당번이 비상 조치로 막아 둔 시험 목록을 쥔 서비스가 있는데, 다시 켜는 쪽은 에이전트가 할 수 있다. 막는 쪽은 비상 동사라 사람이 필요하고 언제나 기록을 남긴다.
기록에 대해 한 줄이 붙는다. 그 줄을 쓰는 펜을 에이전트가 쥐지 않는다. 사이에 낀 프록시가 부른 쪽의 신원을 찍는다.
둘째 원리는 속도 제한이다. 다시 차오르는 천장이라고 말한다.
부르는 쪽마다 일정 시간 안에 쓸 수 있는 파괴적 동작이 조금씩 주어진다. 어떻게 쓸지는 자유고 승인도 기다림도 없다. 선을 넘으면 요청이 튕기고, 얼마 지나면 한도가 다시 찬다.
쓰는 동작에는 전부 한도가 걸리고 크기만 다르다. 자기 *이름칸이면 넉넉하고 함께 쓰는 이름칸이면 빠듯하다.
사고 뒤 옆 팀이 만든 것이 구체적이다. 시간당·자원 종류별·이름칸별로 삭제 수를 고정된 수에 묶는 장치다.
빠져나가는 깃발은 늘 있는데, 여기서 뒤집힌다. 에이전트 세션 안에서는 그 깃발이 아무 일도 하지 않는다. 사람에게 직접 그 명령을 실행해 달라고 말할 뿐이다.
셋째 원리다. 허용 목록은 에이전트가 무엇을 필요로 할지 미리 해 보는 추측이고, *걸림줄은 벌어진 뒤에 그 데이터를 얻는 방법이다.
값싼 동작은 하게 두고 모든 동작에 행위자 표시를 남긴다. 한도가 강제하는 쪽이고 걸림줄은 무슨 일이 있었는지 알아내는 쪽이다.
갈린 자리가 여기다. 허용 목록은 시간이 가도 나아지지 않고 낡기만 하는데, 걸림줄은 나아진다.
실제로 쓰는 수 하나를 든다. 어떤 시험 작업이 실패했을 때 에이전트가 시간당 여는 조사 갈래의 개수다. 어느 아침 그 수가 평소보다 훨씬 높아 걸림줄이 당번을 불렀다.
이 도구는 한도를 넘은 뒤에 부른다. 문에 다는 자물쇠가 아니라 연기 감지기라고 말한다.
무슨 일이었냐면, 같은 오류 자취로 실패한 작업 여럿에 에이전트가 조사 갈래를 하나씩 열고 있었다. 실은 인프라 장애 하나가 그 모두를 만들고 있었다.
고친 방법이 이 발표에서 가장 값싼 대목이다. 다음에 이런 것을 보면 갈래를 열기 전에 실패들을 서로 견줘 보라고 한두 줄 적어 준 것이 전부였다.
넷째는 원리가 아니라 렌즈다. 코드로 강제하는 것이 아니라 앞의 셋의 크기를 잴 때 던지는 물음이다.
묻는 것은 둘이다. 에이전트가 스스로 되돌릴 수 있나. 틀렸을 때 얼마나 나쁜가.
둘 다 괜찮으면 기록만 남기고 보낸다. 하나라도 아니면 두 번째 열쇠가 필요하다.
기능 깃발 사례가 이 렌즈를 그대로 보인다. 시험용 통로에서는 에이전트가 0에서 100까지 손잡이를 다 쥔다. 진짜 배포로 올리는 열쇠는 없다. 지금 할 수 있는 최선은 시험 통로에서 확인됐으니 사람이 올려 달라고 제안하는 것이다.
앞의 삭제 사고에 이 렌즈를 되대 본다. 한도만 있었어도 수십 개 선에서 끊겼을 것이고, 되돌림 시험은 남의 이름칸에서 돌던 작업은 되살릴 수 없다는 것을 미리 알려 줬을 것이다.
신원이 찍히는 자리
정책이 사는 곳이 둘이고 둘 다 필요하다고 말한다.
두 자리의 성격이 다르다
| 자리 | 무엇을 하나 | 한계 |
|---|---|---|
| 글 | 맥락 파일과 프롬프트로 뜻을 세운다 | 여덟 번 중 여섯 남짓 듣는 정도이고 강제력이 없다 |
| 인프라 | 프록시가 길목에 선다 | 이유를 모르지만 거절은 확실하다 |
프록시는 프롬프트를 읽지 않고 왜인지도 모른다. 삭제가 보이고 예산을 넘은 것이 보이면 거절 코드를 돌려주고 대화가 끝난다. 끼어드는 말로 규칙을 설득할 수 없다.
발표가 마지막에 30초를 따로 쓰는 대목이 이유다. 에이전트가 자기 신원을 스스로 댈 수 있다면, 한도에 걸렸을 때 가장 쉬운 수습은 무엇인가. 이름을 바꾸면 된다. 그러면 예산이 새로 생긴다.
프록시가 길목에 있으면 에이전트는 자기가 누구인지 말할 기회가 없다. 프록시가 이미 알고 있고, 진짜 자격을 쥔 채 그 신원으로 찍는다. 찍는 쪽이 프록시이므로 세션별로 갈라 볼 수도 있다 — 어느 세션이 과하게 굴었는지가 그때 보인다.
쿠버네티스 예로 이어진다. 클러스터가 그 표시를 작업 이름표로 적고, 뒤에 생기는 자식 작업이 같은 신원을 그대로 물려받는다. 소유·할당량·한도·승인·걸림줄이 전부 그 표시 하나에 매인다.
닫는 말이 규칙 하나다. 신원은 요청이 아니라 인프라에서 나와야 한다. 그 하나를 제대로 하면 나머지는 조절일 뿐이라고 말한다.
한도를 건 뒤의 값이 없다. 사고가 몇 건 줄었는지, 에이전트가 얼마나 답답해졌는지, 사람이 끼어드는 횟수가 얼마나 늘었는지가 나오지 않는다.
여덟 번 중 여섯 남짓이라는 수의 출처가 없다. 글로 뜻을 세우는 것이 그만큼 듣는다고 말하는데, 무엇을 어떻게 세어 나온 값인지가 없다.
한도를 얼마로 잡아야 하는지가 없다. 시간당 몇 개로 묶었는지, 그 수를 어떻게 골랐는지가 나오지 않는다.
프록시가 무는 값이 없다. 모든 나가는 호출이 한 곳을 거치는데 얼마나 느려지는지, 그것이 멈추면 어떻게 되는지가 없다.
견줄 대상이 없다. 이 구조와 다른 방식을 나란히 놓고 잰 자리가 없다. 사고 하나가 전과 후를 구분하는 유일한 근거다.
용어
에이전트가 "1,000달러어치를 팔라"는 지시를 1,000주 매도로 착각해 190,000달러짜리 사고를 냈는데 API는 200 OK를 30밀리초 만에 돌려줘 대시보드는 멀쩡했다는 사례로 시작함. 온도를 0으로 낮춰도 결정적이지 않은 이유를 부동소수점 연산·배치 불변성·MoE 라우팅까지 네 가지로 짚고, 발표자들이 만든 크로니클(Chronicle)이라는 도구로 노드 경계마다 입출력을 기록해 실패한 실행을 그대로 되감고 테스트 케이스로 재사용하는 법을 보여줌.
▾한줄 코멘트. 에이전트가 운영에서 망가지는 순간 잃는 것이 재현할 능력이라는 것이 이 발표의 붙잡는 자리다. 같은 입력에 늘 같은 결과가 나오게 만드는 일은 포기하고, 대신 그때 있었던 일을 그대로 되감을 수 있게 만들자는 쪽이다. 온도를 0으로 낮춰도 결정적이지 않은 이유를 넷으로 갈라 짚는 대목이 그 주장을 받친다.
조용히 틀린다
망가졌는데 아무 일도 없어 보인다
두 사람이 나와 발표한다. 문제를 세우는 사례가 첫머리에 나온다.
증권 주문을 낼 수 있는 에이전트에게 사용자가 1,000달러어치 주식을 팔아 달라고 말한다. 에이전트는 금액을 수량으로 바꾸는 계산을 하지 않고 숫자 1,000을 그대로 수량 칸에 넣는다. 1,000달러가 아니라 1,000주가 팔린다.
주당 190달러라면 19만 달러짜리 사고가 된다.
무서운 대목은 그다음이다. 응답은 30밀리초 만에 정상으로 돌아왔고 예외도 경보도 하나 없었다. 화면에서는 아무 일도 없어 보인다.
같은 것을 다시 돌려 보면 되지 않느냐는 물음에 발표가 답하는 자리다.
결정적이지 않은 네 가지 이유
| 이유 | 무슨 뜻인가 |
|---|---|
| 뽑는 방식이 결정적이어도 시스템은 아니다 | 모델이 고르는 방식만 굳혀서는 모자란다 |
| 소수점 계산의 순서가 결과를 바꾼다 | 같은 수를 더해도 묶는 순서에 따라 값이 달라진다 |
| 몇 개를 묶어 돌리느냐가 결과를 바꾼다 | 한 번에 처리한 양이 달라지면 값도 달라진다 |
| 어느 전문가로 보내느냐가 갈린다 | 여러 갈래로 나뉜 모델에서 가는 길이 달라진다 |
그래서 같은 결과를 다시 만들려 하지 말고 그때 있었던 일을 되감자는 것이 이 발표의 방향이다.
발표자들이 만든 도구는 마디마다 경계를 그어 두고 그 경계에서 드나든 것을 적는다.
시연에 쓴 것은 세 마디짜리다. 사용자 입력을 받는 계획 마디, 주문을 내는 도구, 답을 만들어 돌려주는 마디다. 셋 다 경계에 표시가 붙는다.
실제로 돌려 보이자 모델이 1,000을 수량으로 잘못 잡아 주문 도구를 불렀고, 도구는 그것을 그대로 실행했다.
전체 흐름은 일곱 걸음으로 정리한다. 표시하고, 기록하고, 눈에 보이게 만들고, 무슨 일인지 이해하고, 고치고, 다시 돌리고, 확인한다.
사고를 시험으로 바꾸는 순서
이 발표에서 가장 실용적인 대목이다. 남은 자취를 그냥 보는 데서 끝내지 않고 시험으로 바꾼다.
자취를 불러오고, 재생 모드를 켜고, 어떤 마디는 그때 값으로 굳혀 놓고 나머지는 실제로 돌린다. 모델을 부르는 자리는 굳히고 도구는 진짜로 돌리는 식이다. 그러고 나온 값이 맞는지 *단언을 건다.
그래야 같은 자리를 되풀이해 밟으면서도 고친 것이 정말 고쳐졌는지 볼 수 있다.
기록을 남기는 값이 없다. 마디마다 드나든 것을 다 적는 방식이라 기록량이 실행량을 따라 늘어나는데, 얼마나 쌓이고 얼마가 드는지가 나오지 않는다.
되감기가 얼마나 잘 맞는지도 없다. 굳혀 놓은 자리와 실제로 도는 자리를 섞는 방식이라 원래 사고와 완전히 같지는 않은데, 그 차이가 얼마나 되는지가 없다.
견줄 대상이 없다. 이 도구 없이 같은 사고를 쫓을 때와 견줘 무엇이 얼마나 빨라지는지가 나오지 않는다.
수치는 사고 사례 안의 것뿐이다. 30밀리초와 19만 달러는 그 이야기를 그리는 값이지 이 도구를 잰 값이 아니다. 자막이 이 대목의 숫자를 뭉개고 있어 정확한 표기는 원문에서 갈린다.
용어
딥마인드 안에서 에이전트를 실제로 굴리는 두 사람이 사내 사정을 그대로 이야기함. 사내 한도가 고객보다 빡빡하다는 것, 큰 모델의 몫이 차면 빠른 모델로 자동으로 내려가고 그마저 다 쓰면 로컬 모델로 간다는 것, 자동 코드 리뷰 모델을 사내 스타일 가이드로 파인튜닝해 쓴다는 것까지 나옴. 질문에 모른다고 답하는 대목이 여러 번 있어 어디까지가 확정이고 어디부터가 탐색인지가 드러남.
▾한줄 코멘트. 사람이 끼어드는 자리를 실행 뒤가 아니라 실행 앞에 둔 것이 이 패널에서 가장 옮겨 볼 만한 대목이다. 무엇을 고칠지 계획을 먼저 펴 보이고 거기서 줄을 고치게 한 다음, 사람이 가라고 말해야 손을 댄다. 결과를 되돌리는 것보다 방향을 바꾸는 쪽이 싸다는 이야기다.
구글 딥마인드에서 개발자 관계와 AI 플랫폼을 맡은 두 사람이 나와 이야기한다. 딥마인드가 에이전트 소프트웨어를 어떻게 보고 자기들 스택을 어떻게 만드는지가 주제다.
발표가 아니라 패널이라 정리된 주장보다 사내 사정이 그대로 나온다. 모르겠다고 답하는 대목이 여러 번 있고, 서브에이전트가 어떻게 도는지는 자세히 모른다고 말하는 자리도 있다.
사람이 끼어드는 자리
시연에서 보인 도구는 일을 받으면 명세를 보고, 분석하고, 자기 도구로 무엇을 할지 목록을 짜고, 브라우저를 움직이며 화면 구조까지 들여다본다. 끝나면 보고서와 화면 기록을 남긴다.
여기서 사람이 끼어드는 자리가 정해져 있다. 도구가 무엇을 고칠지 계획을 펴 보이면, 사람이 그 줄을 손봐 다른 동작을 시킨다. 다 됐다 싶으면 진행하라고 말하고, 그때서야 실제로 손을 댄다.
한도가 차면 내려간다
운영 이야기 중 가장 구체적인 대목이다. 큰 모델의 토큰 한도에 닿으면 빠른 모델로 자동으로 내려간다. 구독분을 전부 쓰면 로컬 모델까지 내려간다.
여기서 솔직한 말이 하나 나온다. 사내 한도가 바깥 고객보다 빡빡하다고 한다. 고객을 먼저 놓기 때문이라는 것이다.
코드 리뷰에는 자동 리뷰 모델을 쓴다. 사내 스타일 가이드로 *파인튜닝한 것이고, 그 위에 제품 단위로 각자 프롬프트를 얹어 다른 리뷰어에게 쓸 만한 신호가 가게 한다.
들여다보는 쪽도 있다. 사용자가 에이전트에 질의를 던지면 그것이 자동으로 화면에 뜨고, 계층을 따라 내려가며 모델에 실제로 간 요청까지 파고들 수 있다고 한다.
수치가 하나도 없다. 지연도 비용도 정확도도 나오지 않는다. 한도가 차서 작은 모델로 내려갔을 때 결과가 얼마나 나빠지는지도 없다. 내려간다는 구조만 있고 그 대가가 없다.
자동 리뷰 모델이 얼마나 맞히는지도 없다. 스타일 가이드로 파인튜닝했다는 것까지만 나오고, 사람 리뷰어가 그 신호를 얼마나 받아들이는지가 없다.
패널이라 확정과 탐색이 섞여 있다. 출시 계획 같은 대목은 자세히 말할 수 없다며 넘어가고, 지금 살펴보는 중이라는 답이 여러 번 나온다.
시연 도중 빠른 모델 쪽이 오류를 내 다시 시작하는 장면도 있었다.
용어
20년 경력 중 19년 반을 에디터에서 보낸 개발자가 이제 에디터를 관제판으로만 쓴다고 말하며, CLI에서 시작해 에디터를 거쳐 위임으로 늘리는 세 지점을 제시함. Agents.md·스킬·커스텀 에이전트라는 가드레일을 순서대로 쌓는 이유와, /delegate로 넘긴 일이 초안 PR로 돌아와 사람이 머지하는 흐름을 데모로 보여줌. 20배 개발자가 가드레일 없이는 20배 슬롭으로 뒤집힌다는 자기 경계도 함께 붙임.
▾한줄 코멘트. 손이 아니라 판을 짜는 쪽으로 개발자의 자리가 옮겨 갔다는 이야기다. 새로운 것은 「AI를 쓰라」가 아니라 쓰는 것이 이미 전제이고 남은 문제는 울타리를 어디에 두느냐라는 쪽으로 물음이 바뀐 대목이다. 다만 이 발표에는 잰 값이 하나도 없다 — 20배도 발표자가 든 말이지 측정한 수가 아니다.
마이크로소프트에서 AI 엔지니어링 일을 한다고 자신을 밝힌 크리스 노어링이 발표한다.
옛날에는 키보드에 온전히 매달렸고 개발자 자신이 진행 속도의 한계였다고 말한다. 코드를 전부 자기가 썼으니 나아가는 폭도 딱 그만큼이었다.
그것이 더는 한계가 아니라고 말한다. 일이 사라진 것은 아니고 무게중심이 옮겨 갔다는 쪽이다.
한때는 도구가 만든 코드가 형편없어 도로 다 고쳐 써야 했다고 말한다. 그래서 지금은 *가드레일이 일의 큰 몫이 됐고, 안 쓰는 선택지는 남아 있지 않다고 말한다.
발표는 일하는 자리를 셋으로 센다. 첫째가 명령줄, 둘째가 에디터, 셋째가 늘리는 일이다.
시작점이 에디터가 아니라 명령줄이라는 것이 이 발표에서 가장 낯선 대목이다. 업계에서 20년을 보냈고 그중 19년 반을 에디터에서 살았다고 말하면서도, 이제 새 출발점은 명령줄이라고 말한다.
화면을 안 열고도 이슈 열다섯 건을 닫을 수 있다면 굳이 열 이유가 없다는 것이다. 에디터는 여러 갈래에서 올라오는 것을 지켜보는 관제판이 된다.
대신 자바나 자바스크립트나 파이썬으로 쓰는 일이 줄고 프롬프트로 쓴다고 말한다. 「앱을 만들어라」 「이 기능을 붙여라」 「이걸 고쳐라」 같은 말이다.
발표가 드는 가드레일
| 겹 | 무엇인가 | 무엇을 담나 |
|---|---|---|
| 첫째 | Agents.md | 저장소가 무엇을 하려는 곳인지, 얼개는 무엇인지, 하지 말 것은 무엇인지 |
| 다음 | 스킬 | 되풀이할 수 있는 레시피. 에이전트가 부를 수 있는 약속 |
| 그다음 | 커스텀 에이전트 | 성격을 지니고 스킬 여럿을 부리는 윗자리 |
첫째만 발표자가 「가드레일 1번」이라 부른다. 나머지 둘에는 번호를 안 붙이고 순서로만 잇는다.
Agents.md에 「시키기 전에는 얼개를 바꾸지 마라」 같은 줄을 둔다고 말한다. 새 프로젝트라면 다른 프로젝트에서 쓰던 것을 그대로 옮겨 붙이고 이걸 따르라고 말하면 된다고 한다.
에이전트가 일을 제대로 안 하는 문제가 따로 있어서 그럴 때 스킬이 필요하다고 말한다. 스킬은 폴더 하나에 자체완결로 들어 있고 일부러 좁혀 놓은 것이다.
스킬과 커스텀 에이전트
스킬로 모자랄 때 커스텀 에이전트를 든다
스킬로 모자랄 때 커스텀 에이전트를 든다. 파일을 두는 자리와 이름 규칙이 정해져 있고, 앞머리에 쓸 수 있는 도구를 적어 에이전트가 할 수 있는 일을 그것으로 조인다. 데모에 나온 조사용 에이전트는 읽고 웹을 뒤지고 할 일을 적을 수 있되 파일을 만들거나 고치지는 못한다.
넘긴 일이 도는 네 걸음
늘리는 방법으로 둘을 든다. 명령줄에서 바로 넘기는 길과 깃허브 화면에서 넘기는 길이다.
명령줄에서는 넘기기 명령을 부른다. 데모에서 「내 지출을 따라가는 가계부 앱을 만들어라」라고 적고 쓸 언어까지 지정한다. 제대로 된 저장소여야 한다 — 아니면 에이전트가 먼저 저장소를 만들어 달라고 한다.
넘기면 작업이 시작되고 초안 PR이 생긴다. 발표가 짚는 대목이 여기다. 에이전트는 *샌드박스 안에서 도니 밖으로 나가 이상한 짓을 하지는 못하는데, PR은 만들 수 있다. 그 자리에서 사람이 들어온다.
깃허브 화면에서는 이슈를 하나 쓰고 에이전트에게 맡긴다. 데모에서는 「앱에 어두운 화면을 붙여라」로 쓴다. 맡기면 뒤에서 도는 동안 다른 일을 계속할 수 있다.
승인 문턱을 스스로 두고 있고 더 둘 수도 있다고 말한다. 머지하는 것은 여전히 사람이다.
잰 값이 하나도 없다. 빨라진 정도도, 든 값도, 맞은 정도도 나오지 않는다.
20배도 잰 수가 아니다. 가드레일을 제대로 두면 예전보다 스무 배의 개발자가 된 것이라고 말하는데, 무엇을 스무 배로 쟀는지가 없다. 발표자 자신이 곧바로 코드가 스무 배면 슬롭도 스무 배일 수 있다고 덧붙인다.
이슈 열다섯 건과 터미널 여섯 개도 마찬가지다. 자기 방식을 그리는 수이지 견줘서 얻은 값이 아니다.
실패한 사례가 없다. 에이전트를 어린아이에 빗대며 천재와 바보 사이를 오간다고 말하면서도, 정작 어디서 어떻게 어긋났는지는 나오지 않는다. 가드레일 셋이 그 진동을 얼마나 줄이는지도 없다.
견줄 기준선이 없다. 이 방식과 예전 방식을 나란히 놓고 잰 자리가 없다. 도끼를 던지고 전기톱을 든 셈이라는 비유가 그 자리를 대신한다.
용어
신용카드와 쇼핑 계정을 쥔 자율 에이전트에게 냉장고를 채워 두라고 시키면 집세 낼 돈이 모자란 사정은 모른 채 주문한다는 예로 왜 명시적인 결정 틀이 필요한지 보여줌. 대안과 장단점을 내는 에이전트와 실행 여부를 정하는 에이전트를 갈라 두고, 권한이 없으면 사람이나 더 높은 권한으로 올린다는 것이 핵심임. 무엇을 왜 골랐는지가 그래프에 쌓여 다음 에이전트의 선례가 됨.
▾한줄 코멘트. 대안을 내는 에이전트가 고르지 않게 자리를 나눈 것이 이 발표의 주장이다. 장단점을 붙여 대안을 내는 데까지가 한 에이전트의 몫이고, 무엇을 할지는 그 행동을 할 권한이 있는지 보는 다음 자리로 넘어간다. 다만 발표자 스스로 이것이 일반적인 뼈대일 뿐이고 걸음마다 알맹이는 분야마다 다르다고 밝힌다.
그래프 데이터베이스를 만드는 회사의 세션이다. 두 사람이 나와 *컨텍스트 그래프가 에이전트의 판단을 어떻게 돕는지 이야기한다. 자막에 자기를 소개하는 대목은 없다.
문제를 세우는 예가 하나 나온다. 자율 에이전트에게 신용카드와 쇼핑 계정을 쥐여 주고 냉장고에 늘 음료를 채워 두라고 시킨다. 에이전트는 시킨 대로 주문한다. 그런데 집세 낼 날이 다가오고 돈이 모자란다는 사정은 모른다.
시킨 일은 제대로 했는데 결과가 나쁜 자리다. 그래서 무엇을 할지 정하는 절차를 따로 세워야 한다는 것이 이 발표의 출발점이다.
제안하는 자리와 정하는 자리
결정을 두 자리로 나눈다
핵심은 역할을 나눈 것이다. 한 에이전트의 몫은 대안을 내고 장단점을 붙이는 데까지다. 고르는 일은 하지 않는다.
고르는 일은 다음 자리로 넘어간다. 그 자리가 하는 일은 그 행동을 할 권한이 있는지 보는 것이다. 권한이 있으면 하고, 없으면 사람이나 더 높은 권한을 가진 쪽으로 올린다.
판단이 도는 여섯 걸음
전체 순서는 이렇게 간다.
먼저 문제를 세운다. 어쩌다 여기까지 왔는지와 무엇을 노리는지, 어떤 환경에서 도는 일인지를 붙잡는다.
그 위에 규칙을 얹는다. 지난 행동과 함께 회사의 굳은 규칙과 무른 규칙이 여기 들어간다.
그다음이 따져 보는 자리다. 되돌릴 수 있는 일인지, 틀리면 얼마를 무는지, 무엇을 가장 크게 만들려는 것인지를 본다.
거기서 제안이 나오고, 권한을 보는 자리가 받고, 필요하면 사람이 들어온다.
마지막 걸음이 이 틀을 고리로 만든다. 무엇을 왜 골랐는지와 실제로 한 일이 그래프에 함께 쌓인다. 다음 에이전트가 그것을 선례로 본다.
바탕에 깔린 구조도 짧게 나온다. 사용자가 물으면 에이전트가 먼저 자기 지식에 있는지 본다. 없으면 *그래프 데이터베이스로 넘어간다.
거기에는 사람 말을 질의어로 바꿔 주는 도구가 있어서, 그것으로 그래프를 훑어 필요한 것을 찾아 돌려준다.
수치가 하나도 없다. 이 틀을 썼을 때 판단이 얼마나 나아지는지, 잘못된 결정이 얼마나 줄어드는지가 나오지 않는다.
견줄 대상도 없다. 틀 없이 그냥 시켰을 때와 견준 값이 없어서, 자리를 나눈 것이 실제로 무엇을 막는지는 앞의 음료 사례 하나로만 이야기된다.
권한을 어떻게 정하는지가 없다. 권한이 있으면 하고 없으면 올린다는 구조인데, 그 권한을 누가 어떤 기준으로 정하는지가 이 틀의 급소인데 나오지 않는다.
발표자가 스스로 밝히는 한계는 또렷하다. 이것을 일반화하기가 매우 어렵다고 말한다. 뼈대는 일반적이지만 걸음마다 알맹이는 분야마다 크게 다르다는 것이다.
용어
노트북에서 돌아가는 라마(Llama) 3.1 8B 다이스 롤러 에이전트를 똑같이 아마존 베드록(Amazon Bedrock) 콘솔에서 다시 만들어 클라우드 스케일로 올리는 전 과정을 실시간으로 보여줌. 에이전트의 최소 구성요소를 모델·프롬프트·루프·히스토리·도구 다섯 가지로 정리하고, 액션 그룹과 람다(Lambda)로 도구를 연결하는 법과 아마존 Q 디벨로퍼가 코드를 자동완성해주는 장면까지 담음. 클로드 3.5 하이쿠로 만든 클라우드 에이전트가 로컬 데모와 똑같이 주사위 15라는 결과를 내며 마무리됨.
▾한줄 코멘트. 남는 것은 에이전트의 최소 조각을 모델·프롬프트·루프·히스토리·도구 다섯으로 자른 대목 하나다. 나머지는 AWS 콘솔을 클릭하는 안내다. 프로덕션으로 올린다는 제목과 달리 규모를 뒷받침하는 수치는 하나도 안 나오고, 로컬에서도 콘솔에서도 주사위 15가 나왔다는 것이 증거의 전부다.
AWS의 디벨로퍼 애드보킷 마이크 챔버스가 노트북에서 도는 에이전트 코드를 아마존 *베드락으로 옮기는 과정을 보인다. 그는 생성 AI만 전담한다고 밝히고, 예전에 만든 「Fundamentals of LLMs」 강좌를 37만 명이 들었다고 소개한다.
시연은 전부 미리 녹화한 화면이다. 와이파이 때문이라고 먼저 밝힌다.
첫 데모는 파이썬 파일 하나짜리 에이전트다. 프레임워크를 아무것도 쓰지 않았고 스스로 좀 비효율적이라고 말한다. 도구는 주사위를 굴리는 난수 생성기 하나뿐이고, 모델은 노트북에서 도는 라마 3.1 8B다. 모델이 작아 도구 쓰는 법을 스스로 못 익히므로 시스템 프롬프트에 도구 목록과 예시를 넣어 뒀다고 한다.
로컬 에이전트 한 판이 도는 순서
「주사위를 굴리고 민첩 보정치 5를 더해 달라」고 시키자 에이전트가 20면체 주사위에서 10을 얻고 5를 더해 15를 냈다.
이 발표에서 가장 옮겨 쓸 만한 대목이다. 발표자는 에이전트가 되려면 있어야 할 것을 다섯으로 자른다.
에이전트의 최소 조각
| 조각 | 무엇인가 |
|---|---|
| 모델 | 말을 알아듣고 무엇을 할지 정하는 자리 |
| 프롬프트 | 그 모델에 성격과 규칙을 주는 자리 |
| 루프 | 답이 나올 때까지 도는 자리 |
| 히스토리 | 앞 턴에 오간 말을 들고 있는 자리 |
| 도구 | 바깥에 실제로 손을 대는 자리 |
발표자는 이 다섯이 에이전트라 부를 수 있는 최소 목록이라고 말한다. 특정 회사 제품과 무관한 자름이라 자기 코드에 대 보기 좋다.
발표의 나머지는 이 다섯 자리를 AWS 서비스로 하나씩 바꿔 끼우는 시연이다.
로컬에서 만든 것과 베드락에서 바뀌는 것
| 조각 | 로컬 | 베드락 |
|---|---|---|
| 모델 | 노트북에서 돌린 라마 3.1 8B | 클로드 3.5 하이쿠를 콘솔에서 고른다 |
| 프롬프트 | 직접 쓴 시스템 프롬프트 | 인스트럭션을 적으면 프롬프트 템플릿과 합쳐진다 |
| 루프·히스토리 | 파이썬 코드로 직접 돌린다 | 베드락 에이전트가 맡는다. 관리할 인프라가 없다 |
| 도구 | 파이썬 함수 하나 | 액션 그룹으로 묶고 람다 함수로 실행한다 |
몇 가지가 눈에 걸린다. *인스트럭션은 프롬프트 그 자체가 아니라 프롬프트 템플릿과 결합돼 실제 프롬프트가 된다고 발표자가 짚는다. *액션 그룹은 도구들의 모음이고, 거기 적는 설명은 사람이 아니라 모델이 읽고 그 도구가 무엇에 쓰는 것인지 판단하는 재료다. 도구 실행은 *람다가 맡으므로 람다로 할 수 있는 일이면 무엇이든 도구가 된다.
콘솔에서 마우스로 클릭하며 보여주지만 같은 일을 테라폼·풀루미·클라우드포메이션·SDK·SAM으로도 할 수 있다고 밝힌다. 퀵 스타트를 고르면 람다 함수 생성과 권한 설정과 에이전트 연결까지 자동으로 된다. 람다 코드를 쓰는 동안에는 콘솔 편집기에 들어 있는 아마존 Q 디벨로퍼가 코드를 제안한다.
에이전트에는 별칭이 붙어서 개발과 운영을 갈라 배포할 수 있다고 한다. 콘솔에서 준비한 에이전트에 같은 질문을 던지자 역시 15가 돌아왔다.
규모를 뒷받침하는 숫자가 하나도 없다. 지연도 비용도 처리량도 정확도도 안 나온다. 프로덕션으로 올린다는 것이 발표의 주장인데, 그 주장을 받치는 증거는 로컬과 콘솔에서 똑같이 15가 나왔다는 것뿐이다. 주사위 하나짜리 에이전트에서 같은 값이 나온 것은 옮겨 붙였다는 증거이지 규모를 감당한다는 증거가 아니다.
견줄 기준선도 없다. 직접 짠 파이썬 루프를 그대로 서버에 올렸을 때와 견주면 무엇이 나아지는지, 다른 회사의 관리형 에이전트와는 어떻게 다른지가 안 나온다.
언제까지 유효한 이야기인지도 밝히지 않는다. 콘솔 화면과 옵션 이름에 기대는 시연이라 화면이 바뀌면 그대로 낡는데, 그 점을 짚는 대목이 없다.
시연이 전부 사전 녹화라는 것도 감안해야 한다. 실패하는 장면이 나올 여지가 없는 형식이다.
끝으로 이 발표는 AWS 홍보를 겸한다. 무료 강좌와 부스 방문을 권하고, 시간이 없어 못 다뤘다며 대규모 MCP 서버와 모델 우선 에이전트용 오픈소스 SDK를 부스에서 이야기하자고 넘긴다.
용어
리서치 애널리스트용 에이전트를 400명·50개 팀이 매일 고쳐 내보내며 겪은 것. 「최근 5개 분기」에서 글자 하나가 빠져 월간 값이 분기 값으로 나간 사고, 위에서 에이전트를 바꾸면 아래가 흔들린다고 미리 가정하고 방어막부터 치는 순서, 가드레일을 언제 팀마다 두지 말고 수평으로 떼어낼지.
▾한줄 코멘트. 옮겨 쓸 만한 것은 「위에 있는 것을 믿지 마라」 한 줄이다. 도구가 판을 거듭할수록 좋아진다는 말은 평균이 좋아진다는 뜻이지 내 호출에서 좋아진다는 뜻이 아니다. 실제로 문자 하나가 빠져 월간 자료가 분기 자료 자리에 들어왔는데, 표를 안 펼치고 답만 내보내는 화면에서는 그것을 잡을 길이 없었다.
블룸버그에서 에이전트를 만드는 조직의 관리자가 스케일링을 두 측면으로 갈라 이야기한다. 하나는 시스템을 어떻게 확장하느냐이고 다른 하나는 조직을 어떻게 확장하느냐다.
회사는 15~16년쯤 AI에 투자해 왔다. 2021년 말 거대언어모델이 눈길을 끌기 시작하자 자체 모델을 만들기로 했고 2022년 한 해를 거기에 썼다. 이듬해 그에 관한 논문을 냈다. 그러다 챗GPT가 나왔고, 공개 가중치와 오픈소스 진영이 잘 자라는 것을 보고 이미 나와 있는 것 위에 짓는 쪽으로 전략을 틀었다고 한다.
지금 이 조직은 400명 규모에 팀이 50개이고 런던·뉴욕·프린스턴·토론토에 흩어져 있다. 생성 AI로 제품을 만들어 온 것은 12~16개월쯤 됐고 도구에서 에이전트 쪽으로 옮겨 가는 중이다.
발표자는 사내에서 「에이전트」와 「도구」를 가르기 어려웠다고 밝히며 어휘를 논문 하나에 맞춰 정했다고 말한다. 이 발표에서 에이전트는 더 자율적이고 기억을 갖고 스스로 바뀔 수 있는 쪽을 가리킨다.
핀테크 회사이고 고객이 금융에 있다는 점이 뒤의 선택을 거의 다 설명한다.
다루는 자료의 양이 먼저 나온다. 하루에 정형 자료 4,000억 건, 비정형 메시지 10억 건 남짓, 잘 쓰인 문서 수백만 건이 들어오고 40년 넘는 이력이 쌓여 있다.
발표는 금융 종사자 열 가지 유형 중 리서치 애널리스트 하나에 집중한다. 이들은 비정형 자료를 찾고 추리고 요약하며, 정형 자료로 분석하고, 동료와 정보를 주고받는다. 일부는 자료를 정규화해 직접 모델까지 만든다.
금융업에 40년 있었다는 사실에서 나오는 조건이 있다. 정밀성·포괄성·속도·처리량·가용성이 협상 대상이 아니고, 기고자와 고객의 자료를 지키는 것과 투명성도 마찬가지다.
2023년에 처음 만든 것은 분기 실적발표 콜을 다루는 제품이었다. 실적 시즌에는 하루에 여러 콜이 겹치므로, 섹터별로 관심 있을 질문에 미리 답을 준비해 두고 애널리스트가 그것을 훑어 더 깊이 볼지 정하게 하려 했다.
처음 성능은 좋지 않았다고 한다. 정밀도와 정확도와 사실성이 그랬다. 게다가 이 요약은 누가 혼자 보는 것이 아니라 모두가 같은 것을 보는 발행물이라 오류 하나의 영향이 크다. 그래서 계속 재고 고치며 요약을 정확하게 만들어 갔다.
지금 구조를 발표자는 *세미 에이전틱이라 부른다. 전부 자율에 맡길 만한 신뢰가 아직 없다는 판단이다. 어떤 조각은 자율이고 어떤 조각은 그렇지 않다. *가드레일이 후자다. 블룸버그는 금융 자문을 하지 않으므로 「여기에 투자해야 하나요」 같은 질문은 걸러 내야 하고, 그 호출은 선택이 아니라 여러 지점에서 반드시 지나가야 한다.
질의 하나가 지나는 길
발표자가 대비로 든 것은 잘 문서화된 소프트웨어다. 행렬곱 API 문서에는 입력의 모든 면과 오류 코드와 걸리는 시간까지 적혀 있다. 그런 것 위에 지으면 내 소프트웨어도 튼튼해진다.
기계학습으로 만든 제품에도 확률적인 구석은 늘 있었지만 그 정도는 다룰 만했다고 한다. 2009년에 만든 뉴스 감성 제품이 예다. 어느 뉴스 와이어를 보는지, 어떤 언어인지, 그 매체의 편집 지침이 무엇인지가 알려져 있었고 출력도 -1에서 +1 사이로 단순했다. 학습 자료를 직접 만들어 시간과 공간 기준으로 *홀드아웃을 떼어 놓을 수도 있었다.
그런데도 아래에 있는 사용자들에게 모델 판이 바뀐다고 따로 알리는 일이 많았다고 한다.
거대언어모델과 그것을 엮은 에이전트로 오면 오류가 곱해진다. 앞의 CPI 사고가 그 예다. 문자 하나가 빠져 월간 자료가 분기 자료 자리에 들어왔는데, 표를 펼쳐 보이지 않고 답만 내보내는 화면에서는 이렇게 겹쳐 쌓인 오류를 잡기 어렵다.
여기서 나오는 결론이 이 발표의 핵심이다. 위에 있는 시스템이 정확할 것이라 기대하지 말고 취약하고 계속 바뀔 것이라 가정한 뒤 내 쪽에서 안전 점검을 한다. 판마다 좋아진다는 말은 평균이 좋아진다는 뜻이고 나에게 좋아진다는 보장은 없다.
발표자는 이 방어막이 오히려 속도를 준다고 덧붙인다. 에이전트마다 방어막이 있으면 아래에 있는 모든 호출자와 합의하지 않고도 각자 바뀔 수 있기 때문이다.
조직이 옮겨 가는 방향
두 번째 측면이 조직이다. 발표자는 기계학습이 소프트웨어를 자르는 방식이 있고 그것이 조직 구조에 그대로 비친다고 말한다.
제품 모양을 아직 모를 때는 조직과 소프트웨어 스택을 뭉쳐서 한 팀이 빠르게 도는 편이 낫다. 에이전트를 여럿 만들고 나면 성능을 올리고 비용을 줄이고 시험하기 쉽게 만들고 들여다보기 쉽게 만들 차례가 오고, 그때 수평으로 나눈다.
가드레일이 대표적인 수평 기능이다. 50개 팀이 저마다 금융 자문성 질문을 어떻게 걸러 낼지 알아내게 두지 않는다.
지금 리서치 에이전트도 그 결과로 갈라져 있다. 사용자와 세션 맥락을 읽어 질문을 이해하고 무엇이 필요한지 정하는 에이전트가 하나이고, 답을 만드는 일은 다른 에이전트가 맡는다. 바닥에는 오래된 자료 처리가 그대로 깔려 있고, *희소 인덱스가 이제 밀집 인덱스와 둘을 섞은 것으로 바뀌었다고 한다.
숫자가 없다. 처음 성능이 좋지 않았다가 나아졌다는 이야기의 앞뒤 값이 안 나온다. 정밀도가 얼마에서 얼마가 됐는지, 가드레일이 무엇을 얼마나 걸러 내는지가 없다.
견줄 기준선도 없다. 세미 에이전틱을 택했다는데 전부 자율로 뒀을 때 무엇이 얼마나 나빠지는지가 안 나온다. 신뢰가 아직 없다는 것은 판단이고 그 판단을 받치는 측정은 발표에 없다.
언제까지 유효한 이야기인지 밝히지 않는다. 12~16개월 만든 제품을 놓고 하는 이야기라 상태가 빠르게 변할 자리인데 그 점을 짚는 대목이 없다.
조직 이야기에서 보여 준 표도 자막만으로는 다 읽히지 않는다. 열이 넷이고 앞의 둘이 수직 팀, 뒤의 둘이 수평 팀이라는 것까지만 나오고 행에 무엇이 적혔는지는 말하지 않는다. 그래서 이 글의 판에도 그 표는 옮기지 않았다.
한 가지는 드물게 좋다. 이 발표에는 자기 회사 제품을 쓰라고 권하는 대목이 없다. 자기들이 어떻게 만들었는지만 이야기하고 끝난다.
용어
NVIDIA 사내 지원 에이전트(NV Info Agent)의 라우터를 사례로, 파인튜닝 없이 배포한 70B 모델의 96% 정확도를 685개 피드백 데이터로 파인튜닝한 1B 모델이 94%까지 따라잡고 추론 비용은 98% 줄인 과정을 보여줌. 사용자 피드백으로 정답 데이터셋을 만들고 NeMo Evaluator·Customizer로 계속 재훈련·재평가하는 루프가 데이터 플라이휠의 실체라고 밝힘.
▾한줄 코멘트. 모델을 줄여서 아낀 이야기로 읽으면 순서가 뒤집힌다. 손 안 댄 8B는 같은 라우팅에서 정확도가 14% 아래로 떨어졌고, 파인튜닝한 1B가 94%까지 올라온 뒤에야 줄일 수 있었다. 그 사이를 메운 것은 불만족 응답을 훑어 만든 정답 자료이고, 그 자료를 어떻게 추렸는지가 이 발표에서 가장 옮겨 쓸 만한 대목이다.
엔비디아의 생성 AI 플랫폼 팀에서 일하는 발표자가 사내 직원 지원 에이전트를 사례로 이야기한다. 주장은 한 줄이다. 에이전트를 계속 정확하고 싸게 굴리는 데 필요한 것은 시장에 나온 다음 대형 모델이 아니라 *데이터 플라이휠이라는 것이다.
큰 모델을 깔면 쓸수록 추론 비용이 올라간다. 그래서 같은 정확도를 내면서 지연이 낮고 값이 싼 작은 모델을 계속 찾아 바꿔 끼우자는 것이 이 발표가 말하는 플라이휠이다.
큰 모델과 작은 모델의 맞바꿈
같은 라우팅 일을 두 모델에 맡겨 보면
사례는 사내 지원 에이전트의 *라우터다. 직원의 질문이 들어오면 *가드레일을 지나 라우터가 어느 전문가 에이전트로 보낼지 정하고, 그 에이전트가 검색으로 답을 찾는다. 라우터가 잘못 보내면 뒤가 다 어긋나므로 정확도가 중요하고, 매 질의마다 도는 자리라 값과 지연도 중요하다.
*파인튜닝을 하지 않고 그대로 깔았을 때 70B 계열은 라우팅 정확도 96%를 냈다. 대신 첫 토큰이 나오기까지 26초가 걸렸다. 같은 조건에서 8B로 내리자 정확도가 14% 아래로 떨어졌다. 지연은 크게 줄었지만 쓸 수 없는 정확도다.
이 간극이 발표의 출발점이다. 작은 모델이 싸고 빠른 것은 맞지만 손을 안 대면 일을 못 한다.
플라이휠을 돌리려면 무엇이 맞고 틀렸는지 판정할 자료가 있어야 한다. 발표는 그것을 사용자 피드백에서 만들어 냈다.
피드백에서 정답 자료까지
| 단계 | 수 |
|---|---|
| 피드백 양식으로 모은 데이터 포인트 | 약 1,224건 |
| 만족한 응답 | 729건 |
| 불만족한 응답 | 495건 |
| 그중 라우팅 오류로 지목된 것 | 140건 |
| 주제 전문가가 손으로 확인해 확정한 것 | 32건 |
| 만들어진 정답 자료 | 685건 정도. 자막이 뭉개져 정확히 안 들린다 |
| 학습과 평가로 나눈 비율 | 60 대 40 |
495건을 사람이 다 보지 않았다는 점이 눈에 걸린다. 먼저 모델이 판정자 노릇을 해서 495건 중 140건을 라우팅 오류로 골라냈고, 그 뒤에 주제 전문가가 손으로 봐서 32건을 확정했다. 사람의 손은 마지막에 가장 좁은 자리에만 들어간다.
이 자료로 작은 모델을 파인튜닝하자 1B 계열이 정확도 94%를 냈다. 70B보다 2%포인트 낮은 자리다. 그러면서 추론 비용은 98% 줄고 지연은 70배 낮아졌다고 한다.
데이터 플라이휠 네 걸음
발표는 이 과정을 되풀이할 수 있게 네 걸음으로 정리한다. 사용자 피드백을 지켜보고, 무엇이 틀렸는지 오류와 *모델 드리프트로 갈라 원인을 대고, 어떤 모델을 쓸지와 합성 자료를 만들지 파인튜닝을 할지 계획하고, 실제로 돌리며 정확도와 지연을 좇는다.
넷째 걸음의 결과가 다시 첫째 걸음으로 들어가는 것이 바퀴라는 말의 뜻이다.
이 걸음들을 받치는 도구로 발표자는 자사 마이크로서비스 묶음을 든다. 자료를 추리는 것, 파인튜닝하는 것, 평가하는 것, 가드레일을 거는 것, 검색 파이프라인을 만드는 것에 각각 하나씩 붙어 있고 모델은 자사 추론 형식으로 서빙된다고 한다. 자기 회사 제품 안내를 겸하는 대목이다.
정답 자료를 만드는 데 든 품이 안 나온다. 주제 전문가가 몇 명이 얼마나 오래 봤는지, 그 일을 몇 번마다 되풀이해야 하는지가 없다. 98%라는 절감폭 옆에 이 품값이 놓여야 비교가 되는데 한쪽만 있다.
바퀴를 얼마나 자주 돌리는지도 없다. 모델 드리프트를 본다고 했으니 주기가 있을 텐데 그 주기가 나오지 않는다.
정확도 말고 다른 것이 어떻게 됐는지 안 나온다. 라우팅을 96%에서 94%로 두고 바꿨을 때 어떤 질문이 새로 틀리게 되는지, 그 2%포인트에 무엇이 들어 있는지가 없다. 라우터가 틀리면 뒤가 다 어긋난다고 발표자가 먼저 말했으므로 이 대목이 비어 있는 것이 걸린다.
자막이 자동 생성이라 숫자 몇 개가 뭉개져 있다. 정답 자료 건수와 모델 크기 축소 배수가 그렇다. 이 글에서는 뭉개진 자리를 그대로 밝혀 두었다.
용어
프레임워크 없이 자연어로 3D 장면을 만드는 블렌더 엘엠(Blender LM)을 처음부터 만들어 본 과정을 통해, 결정론적 워크플로 대신 자율 탐색형 에이전트를 고른 이유와 능력 발견·관측 가능성·중단 가능성·비용 인지 위임이라는 네 가지 UX 원칙을 짚음. 초기 모델은 오류율 20%였다가 3개월 뒤 GPT-3.5 터보로 바꾸자 1.5%로 떨어진 사례, 멀티에이전트가 진짜 이득을 보는 일은 엔지니어링 팀 전체 작업 중 아주 작은 원 하나뿐이라는 비유가 나옴.
▾한줄 코멘트. 만드는 순서에서 둘째 자리가 이 발표의 핵심이다. 견줄 기준을 에이전트와도 AI와도 무관한 것으로 먼저 잡고, 에이전트는 맨 마지막에 붙인다. 멀티 에이전트로 실제 이득을 보는 일이 엔지니어링 팀이 하는 일 가운데 아주 작은 부분이라는 발표자의 말과 이 순서가 같은 이야기다.
마이크로소프트 리서치의 수석 리서치 소프트웨어 엔지니어가 사람과 AI가 만나는 자리를 주로 다뤄 왔다고 밝히며 발표를 연다. 깃허브 코파일럿을 만들었고, 멀티 에이전트 프레임워크 오토젠과 그 스튜디오를 만들었다. 그 전에는 IBM 리서치에서 사람과 컴퓨터가 주고받는 일을 다뤘다.
이 발표는 3D 제작 소프트웨어 블렌더를 자연어로 다루는 에이전트를 직접 만들며 얻은 것을 재료로 삼는다. 거기서 뽑은 설계 원칙 넷을 준다고 먼저 말하고, 완전하지도 완벽하지도 않다고 스스로 못 박는다.
만드는 순서 다섯
순서 자체가 주장이다. 목표를 정하고, 견줄 기준을 잡고, 도구를 만들고, 재는 자리를 세우고, 그다음에 에이전트를 붙인다.
둘째 자리가 눈에 걸린다. 견줄 기준은 에이전트와도 AI와도 무관한 것으로 잡으라고 한다. 에이전트가 맨 마지막에 오는 것도 같은 뜻이다. 재는 자리가 먼저 서 있어야 에이전트를 붙인 뒤 무엇이 나아졌는지 말할 수 있다.
재는 자리도 한 번에 만들지 않았다. 처음은 주피터 노트북이었고, 그다음이 사람이 직접 눌러 보는 웹 화면이었고, 마지막이 자동으로 도는 평가 묶음이었다.
루프가 자란 순서
블렌더 에이전트도 한 번에 완성하지 않았다. 단순한 루프를 먼저 돌리고, 결과가 맞는지 보는 검증 에이전트를 붙이고, 단계를 먼저 짜는 계획 에이전트를 붙였다.
화면에서는 작업을 받으면 먼저 분석 중이라고 알리고, 계획을 세웠다고 보여 주고, 단계마다 도구를 불러 실행하는 것을 흘려보내고, 검증을 거쳐 결과물을 낸다.
발표자가 든 네 가지 설계 원칙
| 원칙 | 무엇을 하나 |
|---|---|
| 능력 발견 | 에이전트가 믿을 만하게 해내는 일을 목록으로 보이고, 사용자 맥락에 맞춰 먼저 제안한다 |
| 관측과 내력 | 활동 기록을 흘려보내고, *토큰을 얼마나 썼고 얼마나 걸렸는지까지 보인다 |
| 중단 가능성 | 중간을 찍어 두고, 되돌리고, 멈췄다 다시 가게 한다 |
| 비용 인지 위임 | 그 행동이 얼마짜리인지 재서 사람에게 넘길 때를 안다 |
넷째 원칙에 붙은 예가 구체적이다. 파이썬 코드를 쓰게 했더니 운영체제를 통째로 지우려 드는 일이 생길 수 있다는 것이다. 그런 일이 벌어지기 전에 행동의 값을 재고 사람에게 넘기는 자리가 있어야 한다고 말한다.
발표자가 든 그림 하나가 이 발표의 균형을 잡는다. 엔지니어링 팀이 해야 할 일을 큰 원이라 하면, 멀티 에이전트 방식으로 진짜 이득을 보는 일은 그 아래 작은 원 하나라는 것이다.
무엇이 그 작은 원에 드는지 가늠하는 물음도 준다. 계획이 필요한 일인가, 여러 관점이나 역할로 쪼갤 수 있는 일인가, 방대한 맥락을 다뤄야 하는 일인가, 상황에 따라 답이 달라져야 하는 일인가.
오류율 20%가 1.5%로 내려간 것은 이 에이전트 이야기가 아니다. 2022년에 만든 앞선 프로젝트에서 모델을 바꾸며 난 변화다. 첫 판은 한 모델을 썼고 석 달 뒤 다른 모델로 옮겨 손보자 그렇게 됐다. 검증 에이전트나 계획 에이전트를 붙여서 난 변화가 아니므로 겹쳐 읽으면 안 된다.
그 검증과 계획을 붙여서 무엇이 얼마나 나아졌는지는 수치가 없다. 루프가 자란 순서는 나오는데 각 단계의 값이 안 나온다. 재는 자리를 먼저 세우라고 말한 발표인 만큼 이 대목이 비어 있는 것이 특히 걸린다.
원칙 넷의 효과를 잰 값도 없다. 발표자가 완전하지도 완벽하지도 않다고 먼저 밝히기는 한다.
작은 흠 하나. 멀티 에이전트가 맞는 일인지 가늠하는 틀을 다섯 단계라고 부르면서 실제로는 넷만 든다. 자막에 그대로 그렇게 나온다.
용어
편집기와 브라우저를 사람의 자리에서 에이전트의 도구 자리로 내리고, 에이전트를 관리하는 창을 한가운데 놓은 제품 이야기. 코드 차이 대신 브라우저 녹화를 결과물로 내미는 장면, 사내 엔지니어와 연구자에게 먼저 쥐여 줘 평가 점수로는 안 보이던 구멍을 찾아 그 모델을 만든 팀과 함께 고치는 고리까지 나옴.
▾한줄 코멘트. 편집기와 브라우저를 에이전트의 도구로 내리고 에이전트를 관리하는 창을 한가운데 놓은 것이 이 제품의 자리 바꿈이다. 결과를 보이는 방식도 같이 바뀐다. 코드가 어떻게 달라졌는지를 늘어놓는 대신 브라우저를 녹화해 내미는 식이다. 다만 이것이 낫다는 것을 받치는 수치는 화면 전환이 100밀리초 안에 된다는 값 하나뿐이다.
구글에서 이 제품의 제품 엔지니어링 팀을 이끄는 사람이 발표한다. 내세우는 말은 하나다. 에이전트를 앞세운 제품이라는 것이다.
앞서 온 것들을 시기로 짚는다. 한동안은 자동완성이었고, 그다음이 채팅이었고, 그다음이 에이전트였다. 이 제품을 그다음 자리에 놓는다.
세 자리가 뒤집혔다
자리 배치가 이 제품의 주장이다. 한가운데 서는 것은 에이전트를 관리하는 창이고, 편집기와 브라우저는 그 아래로 내려간다.
발표자의 말로는 편집기와 브라우저가 에이전트의 도구다. 사람이 쓰던 자리를 에이전트에게 넘긴 셈이다.
사람이 편집기로 갈 일이 없어지는 것은 아니다. 단축키 하나로 편집기와 관리 창을 오가고 그 전환이 100밀리초 안에 끝난다고 말한다.
에이전트가 무엇을 했는지 보이는 방식도 바꿨다. 코드가 어떻게 달라졌는지 늘어놓는 대신 결과물을 내민다.
시연에서는 에이전트가 코드를 다 만든 뒤 차이를 보여주는 대신 브라우저를 녹화한 화면을 내밀었다.
무엇을 내밀지는 모델이 정한다. 먼저 결과물을 만들지 말지를 정하고, 그다음에 어떤 종류로 만들지를 정하는 두 걸음이다.
제품과 연구를 잇는 고리
이 발표에서 가장 옮겨 볼 만한 대목이다. 사내 엔지니어와 연구자에게 먼저 쥐여 준다. 실제로 쓰다 보면 평가 점수로는 안 잡히던 구멍이 드러난다고 말한다.
그 구멍을 그 모델을 만든 연구팀과 함께 고치고, 고친 모델로 다시 낸다.
예로 둘을 든다. 컴퓨터를 부리는 일에서는 자료 분포와 감싸는 장치 쪽 문제가 드러났고, 결과물을 만드는 일은 초기 판에서 좋지 않다가 이후 판에서 나아졌다고 한다.
받치는 수치가 100밀리초 하나뿐이다. 그것도 화면을 오가는 속도이지 일이 잘 되는지를 재는 값이 아니다. 결과물로 보이는 방식이 코드 차이를 보이는 방식보다 나은지, 사람이 무엇을 얼마나 빨리 판단하게 되는지가 없다.
평가로는 안 보이던 구멍이 무엇이었는지 구체가 얕다. 자료 분포와 감싸는 장치라는 말까지만 있고 어떤 실패가 어떻게 났는지가 없다. 고리의 값어치가 거기에 걸려 있는데 그 자리가 비어 있다.
시연이 미리 만든 영상이다. 안내 영상을 틀어 보이는 대목이 있다.
발표자가 스스로 밝히는 것 둘은 적어 둘 만하다. 시연 도중 쓸 수 있는 용량이 떨어졌다고 말하고, 아직 모델을 못 믿어 맡기지 못하는 일이 있다고 말한다.
코딩 에이전트(사람이 시킨 일을 스스로 여러 단계로 쪼개 도구를 불러가며 처리하는 프로그램) 여러 대를 한 사람이 돌리는 그림이 왜 팀 생산성과 무관한지부터 짚고, 깃허브 넥스트(GitHub Next)가 만든 프로토타입 ACE(Agent Collaboration Environment) 데모로 답을 보여줌. 팀원이 마이크로 VM 위 같은 세션에 들어와 오퍼스(Opus) 4.6에게 함께 프롬프트를 넣고 계획을 공동 편집하는 장면, 팀이 하루 다섯 개 기능을 출시하게 된 변화, 수천 명 대상 기술 프리뷰가 곧 시작된다는 사실까지 구체적으로 나옴.
▾한줄 코멘트. 무엇을 만들지 합의하는 일이 새 병목이 됐다는 주장이 이 발표의 전부다. 그래서 만든 것도 에이전트를 더 빠르게 굴리는 도구가 아니라 사람들끼리 계획을 함께 고치는 자리다. 다만 이것을 받치는 수치는 어느 팀 하나가 하루 반 개에서 다섯 개를 내보내게 됐다는 값 하나뿐이다.
깃허브에서 연구 엔지니어로 일하는 사람이 발표한다. 실험적인 것을 다루는 팀 소속이라고 밝힌다.
깔고 가는 물음이 있다. 한 사람이 코딩 에이전트를 여럿 굴리는 그림이 자주 나오는데, 소프트웨어는 한 사람이 아니라 팀이 만든다는 것이다.
그래서 나오는 문장이 이 발표의 제목 노릇을 한다. 무엇을 만들지 합의하는 일이 새 병목이다.
발표는 예전 개발 과정을 셋으로 짚는다. 계획하는 단계가 있고, 만드는 단계가 있고, 검토하는 단계가 있었다.
만드는 일이 싸지면 그 세 단계의 무게가 달라진다는 것이 뒤에 오는 이야기다.
하루에 내보내는 기능
한 팀이 하루에 내보내는 기능
발표에서 유일한 수치가 여기 나온다. 어느 팀이 이제 하루에 기능 다섯 개를 내보내고 있고, 그 전에는 하루 반 개였다고 한다.
계획을 함께 고치는 고리
만든 것은 프로토타입 하나다. 팀원들이 같은 세션에 들어와 함께 일하는 자리다.
계획을 짜 달라고 시키면 계획이 문서로 열린다. 거기서 팀원들의 커서가 같은 문서에 보이고 함께 고친다. 한 사람이 제안을 얹고 다른 사람이 요구사항을 손보는 장면이 나온다. 다 됐다 싶으면 채팅으로 돌아가 실행을 맡긴다.
에이전트에게 시키기 전에 사람들끼리 합의하는 자리를 화면 안에 들여놓았다는 것이 이 프로토타입의 요점이다.
세션에서 바로 *풀 리퀘스트를 만드는 것도 보인다. 만들면 미리보기가 뜨고, 링크를 누르면 그 페이지로 간다. 설명란에는 그 세션으로 되돌아오는 링크가 들어 있다.
수치가 하나뿐이고 그것도 좁혀지지 않는다. 하루 반 개에서 다섯 개라는 값은 어느 팀 하나의 것이고, 무엇을 한 기능으로 셌는지와 어느 기간을 견줬는지가 나오지 않는다.
합의가 병목이라는 주장을 받치는 측정이 없다. 사람들이 합의에 얼마나 시간을 쓰는지, 이 도구를 쓴 뒤 그 시간이 얼마나 줄었는지가 없다. 발표의 뼈대가 그 주장인데 그 자리가 비어 있다.
여럿이 같은 계획을 고칠 때 부딪히면 어떻게 되는지 없다. 커서가 같은 문서에 보인다는 것까지만 나오고, 서로 다른 방향으로 고칠 때 무엇이 이기는지가 안 나온다.
발표자가 스스로 밝히는 것은 있다. 아직 제대로 된 제품이 아니고 거칠다고 먼저 말하고, 조기 접근이 몇 달 안에 열릴 것이라고 덧붙인다. 수천 명을 대상으로 시험할 계획도 밝힌다.
용어
깃허브 넥스트(GitHub Next)가 만드는 두 프로토타입 — 가드레일을 앞머리 설정으로 못 박은 마크다운 자동화와, 클라우드 마이크로VM 위에서 팀 채팅 기록 전체를 보고 움직이는 협업 판이다. 프롬프트로 「하지 마라」고 적는 것이 왜 가드레일이 못 되는지, PR 생성을 하나로 묶어 프롬프트 주입을 막는 방법, 비밀을 에이전트 우리 밖에 두고 문지기를 거치게 하는 구조가 구체적으로 나온다. 개발자 100명을 수천 시간 따라간 연구에서 키보드 타이핑이 업무의 5%뿐이었다는 수치도 담겼다.
▾한줄 코멘트. 이 발표에서 값이 나가는 대목은 프로토타입 자랑이 아니라 가드레일을 프롬프트로 걸면 안 되는 이유다. 「비트코인 사지 마라」고 적어 둬 봐야 남이 끼어들어 방향을 틀 수 있으니, 권한과 나갈 수 있는 곳과 쓸 수 있는 것을 설정으로 못 박는다는 쪽이다. 나머지 절반인 협업 이야기는 아직 만드는 중인 것이라 잰 값이 없다.
깃허브의 실험 조직을 이끄는 사람이 발표한다. 코파일럿을 만든 팀이고, 만든 것이 다 제품이 되지는 않는다고 먼저 밝힌다. 1~2년 뒤에 쓸 도구를 미리 더듬는 것이 일이라면서 자기 수정 구슬은 다음 주까지밖에 안 보인다고 덧붙인다.
묻는 것은 하나다. 코드 한 줄을 쓰는 값이 0에 가까워지는데 그러면 무엇을 만들 것인가.
터미널 열 개를 밤낮으로 돌리는 처지가 돼도 기회비용은 그대로라고 말한다. 무엇을 안 만들지가 여전히 문제라는 것이다.
첫째 프로토타입은 자동화다.
발표자의 개인 웹사이트가 쓰는 얼개는 한 달에 쉰 가지를 내놓는다. 낡았다고 알려 주는 도구는 이미 있는데, 알려 주는 데서 끝나고 고치는 것은 사람 몫이다. 깨진 코드까지 알아서 고쳐 주는 것을 원했다는 것이 출발점이다.
그래서 만든 것이 마크다운 문서로 된 자동화다. 팀 후배에게 보낼 법한 지시를 그대로 적는다.
그 문서에 적힌 일의 순서
| 걸음 | 시키는 것 |
|---|---|
| 1 | 새로 나온 것이 있는지 매일 본다 |
| 2 | 바뀐 목록과 올리는 안내를 읽는다 |
| 3 | 올리고 깨진 자리를 고친다 |
| 4 | PR을 만든다 |
굴러가는 형식으로 바뀐 뒤의 파일은 사람이 볼 것이 아니라고 말한다. 마크다운이 소스코드이고 나머지는 굽고 나온 것이라는 쪽이다.
돌려 보인 결과, 깨질 자리가 없다는 것을 확인하고 실제로 빌드까지 해서 확인했다고 말한다. 두 판을 건너뛰는 올림이었고 고쳐야 할 자리를 다 찾아 고쳤으며 사람이 나중에 손으로 해야 할 것까지 짚어 줬다고 한다.
문서 앞머리가 가드레일이 서는 자리다. 무엇을 할 수 있고, 무엇을 읽고, 무엇을 쓸 수 있는지를 거기서 정한다.
발표가 못 박는 대목이 여기다. 프롬프트로 「이건 하지 마」라고 적는 것으로는 모자라다. 남이 끼어들어 엉뚱한 데로 끌고 갈 수 있기 때문이다 — *프롬프트 주입이다.
그래서 이 예에서는 권한을 읽기로만 두고, 나갈 수 있는 곳을 몇 군데로 묶는다. 쓸 수 있는 것은 따로 적어 두고 PR은 하나로 못 박는다. 끼어든 누군가가 PR 500개를 만들게 시키면 그 자체가 마비 공격이 되기 때문이다.
아무것도 안 해도 된다고 대놓고 허락해 둔 것도 눈에 띈다. 자동화가 많아지는 판에서 가장 싫은 것이 시끄러움이라는 이유다.
비밀에 닿는 길
지켜야 할 원칙으로 넷을 든다. 겹겹이 막을 것, 에이전트에게 비밀을 맡기지 말 것, 쓰는 일은 전부 단계를 밟아 확인할 것, 전부 기록에 남길 것이다.
바깥 프로젝트에 줬을 때 처음 만든 것이 무엇이었는지도 말한다. 어느 큰 오픈소스 프로젝트에서는 올라온 이슈마다 오류 자취를 따라가 자기 코드 문제인지 남의 코드 문제인지 가리고, 남의 것이면 닫는 것을 만들었다고 한다.
혼자 하던 자리가 없어진다
어디를 함께 하고 어디를 혼자 했나
둘째 프로토타입은 협업이다.
지금까지는 계획과 검토만 함께 했고 만드는 일은 혼자였다고 말한다. 코드를 쓰는 값이 비쌌기 때문이라는 것이다.
채팅 도구는 사무 일을 편지보다 낫게 하려고 만든 것이지 소프트웨어를 만들라고 만든 것이 아니라고 말한다. 그런데도 좋은 구석이 있는데, 코드에 없는 사실이 거기서 드러난다는 점이다. 어느 클라우드와 값을 잘 맞춰 놨으니 거기에 짓자는 식의 결정이 그렇다.
만든 판은 채팅과 많이 닮았다. 각 자리는 저장소의 갈래 하나이고 내 기계가 아니라 클라우드의 작은 가상 기계에서 돈다. 팀과 나눈 대화 전체를 보므로 그 기록 위에서 움직인다.
발표가 드는 쓸모가 하나 있다. 엔지니어링 대화는 오갔다 되돌아오다 끝에 가서야 결론이 서는데, 그 끝 상태를 골라내는 일을 맡길 수 있다는 것이다.
기능을 붙여 달라고 하자 계획이 마크다운 문서로 나왔고, 그 문서를 혼자 보는 것이 아니라 같이 보고 같이 고친다고 말한다. 앞으로 일의 결과가 점점 문서로 남고 그 문서를 고치는 것이 개발하는 방식이 될지 모른다고 덧붙인다.
데모가 끝까지 안 돌았다. 망이 좋았으면 더 빨랐을 거라며 기다릴 시간이 없으니 믿어 달라고 말하고 넘어간다.
보여 주려고 일부러 안 올려 뒀다고 자인한다. 중간 판으로 올렸으면 이미 얻었을 것들인데 데모를 위해 미뤄 뒀다고 말한다. 그러니 이 데모는 실제로 밀린 상황을 잰 것이 아니다.
자동화의 값이 없다. 아낀 시간도, 든 값도, 맞은 정도도 나오지 않는다. 안에서 이슈 분류와 질의 문제 찾기에 썼다고만 말하고 결과는 없다.
타이핑 5%의 출처가 없다. 개발자 100명을 수천 시간 따라갔다는 연구를 드는데 누가 언제 한 것인지가 없다.
협업 쪽은 아직 나오지도 않았다. 자동화는 공개 미리보기로 열렸다고 말하지만 협업 판은 이달 안에 기술 미리보기로 나오길 바란다는 정도다. 잰 값이 없는 것이 당연한 단계다.
이 발표에는 견줄 기준선이 없다. 자동화를 안 쓸 때와 견준 자리가 한 군데도 없다.
용어
6편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
코딩 어시스턴트를 AI 인턴에 빗대며 코드 짜기 전에 요구사항·설계 문서부터 쓰는 방식을 설명함. 도구 없이 손으로 할 때의 다섯 걸음과 AWS가 만든 IDE 키로(Kiro)의 스펙 모드를 나란히 보여주고, 요구사항은 EARS 형식, 검증은 fast-check로 도는 속성 기반 테스트로 붙인다는 것까지 데모로 짚음. 작업 목록이 나오면 "상위 네 개만 먼저 MVP로"라고 시키는 실전 팁, 지라·아사나의 티켓을 MCP로 끌어와 스펙을 쓰게 하는 구성도 나옴. 성능·비용 수치는 하나도 없고 다운로드 수만 건이 유일한 숫자다.
▾한줄 코멘트. 발표가 파는 것은 키로지만 남는 대목은 도구가 아니다. 요구사항·설계·작업 목록 셋을 만들어 놓고 사람이 그 문서를 직접 고쳐 넣는 자리가 이 방식이 값을 내는 지점이고, 발표자도 「넣은 만큼만 나온다」고 말한다. 그런데 얼마나 넣어야 하는지는 골디락스 존이라는 말로만 두고 경계를 재는 방법을 안 준다. 문서를 언제 그만 손봐도 되는지는 여전히 사람 감이다.
AWS의 시니어 개발자 애드보킷 에릭 핸쳇이 *명세 주도 개발을 소개한다. 정의는 한 줄이다. 코드를 한 줄도 쓰기 전에 요구사항과 설계 문서를 마크다운 파일로 먼저 만든다.
왜 그래야 하는지를 발표자는 인턴에 빗댄다. 코딩 어시스턴트는 AI 인턴이고, 여지를 조금만 주면 궤도를 벗어난다는 것이다. 자기 첫 직장 이야기를 든다. 부사장이 돌아다니며 즉흥적으로 아이디어를 던지면 하던 일을 다 놓고 그것부터 했다. 나중에 상사한테 들은 것은 받아 적어 일정에 넣고 매니저와 먼저 상의하라는 말이었다. 지금 언어 모델이 하는 짓이 그때 자기가 한 짓이라고 말한다.
최신 프런티어 모델이면 다 알아서 해 주지 않느냐는 물음도 자주 받는다고 한다. 모델이 해마다 좋아지고 있지만 아직 완벽하지 않고, 소프트웨어와 요구사항이 계속 바뀌므로 맥락을 더 주는 일이 방향을 잡는 데 쓸모가 있다는 답이다. 일부 모델과 하네스가 코드를 쓰기 전에 생각하거나 계획하는 모드를 넣기 시작했지만, 문서를 실제로 만들어 놓고 사람이 그 사이에 들어가는 것만 한 것은 없다고 말한다.
발표자는 여기부터가 자기 의견이라고 미리 못 박는다.
첫째가 맥락이다. 명세 주도 개발이 모델에 맥락을 많이 넣어 주는 방식인데, 좋은 것도 지나치면 문제가 된다고 말한다. 보통 시작할 때 agents.md 같은 파일에 정보를 적어 두는데, 너무 많이도 너무 적게도 넣지 않는 골디락스 존을 지키라는 것이다. 키로에서는 이 파일을 *스티어링 문서라고 부른다.
둘째가 *스킬이다. 키워드가 잡히면 켜지거나 슬래시 명령으로 직접 부르는 지시 파일인데, 설계 문서를 만들 때든 작업을 구현할 때든 명세 주도 개발과 함께 쓰라고 권한다.
셋째가 신뢰다. 이 흐름 전체에서 생성된 코드의 리뷰어는 사람이고, 문제가 생기면 비난받는 쪽도 에이전트가 아니라 사람이다. 그래서 설계 문서와 요구사항 문서를 계속 들여다봐야 한다고 말한다. 사람 혼자 다 보라는 뜻은 아니고, 평소 쓰던 AI 리뷰 도구로 풀 리퀘스트를 검토하는 것은 그대로 하라고 덧붙인다.
셋을 한 줄로 묶으면 이렇다. 맥락은 사람이 재고, 코드도 사람이 보고, 책임도 사람이 진다.
키로 없이 하면 이 순서다
AWS가 키로를 만든 배경을 발표자는 이렇게 말한다. 팀과 고객들이 *바이브 코딩을 쓰고 있었지만 원하는 결과가 안 나왔고, 그러다 보니 고객들이 저마다 에이전트에게 요구사항 문서와 설계 문서를 먼저 쓰게 하는 패턴을 만들어 쓰고 있었다. 그것을 대신 해 주는 애플리케이션을 만들기로 한 것이 키로다. 작년 말 일반 공개로 나왔고 CLI 버전도 함께 냈다. 지금은 IDE보다 CLI를 쓰는 쪽이 늘고 있다고 말한다.
kiro.dev를 열었을 때 다운로드가 수만 건 몰렸고, 프리뷰 때는 신청이 너무 많아 게이트를 걸었는데 사람들이 우회하는 길을 찾아냈다고 한다. 이 발표에서 나오는 유일한 숫자다.
발표자는 이 자리가 키로 홍보로만 끝나는 것을 원하지 않는다며 도구 없이 하는 길을 먼저 댄다. 어시스턴트에게 사용자 요구사항을 만들라고 시키거나 내가 쓴 요구사항을 근거로 주고, 그것을 확인한 다음 설계 문서를 만들게 하고, 다시 확인한 다음 요구사항과 설계를 근거로 작업 목록을 만들게 한다. 깃허브가 낸 오픈소스 방식인 스펙 킷도 여러 코딩 어시스턴트에 설치해 쓸 수 있다고 소개한다.
키로 IDE에서는 스펙을 고르고, CLI에서는 계획 모드를 쓴다. 프롬프트는 「본 영화를 기록하는 무비 MCP 서버를 만들어 줘」 정도로 넣으면 된다.
새 프로젝트에만 맞는 방식이 아니냐는 물음에는 아니라고 답한다. 몇 년 된 앱에 스펙 파일이 수십 개씩 쌓여 있는 것을 봤다고 말한다. 깊이 있는 기능이나 사전 계획이 더 필요한 프로젝트에 맞고, 버그 수정용 스펙 모드도 붙였지만 작은 건은 그냥 바이브 코딩이 나을 수 있다고 말한다.
스펙 모드가 만드는 문서 셋
| 단계 | 무엇이 담기나 | 사람이 하는 일 |
|---|---|---|
| 요구사항 | EARS 형식의 도입부·요구사항·사용자 스토리. 프롬프트를 넣으면 확인 질문을 먼저 던진다 | 앞뒤가 안 맞는 곳·환각·오류를 본다 |
| 설계 | 더 상위 수준의 문서. 머메이드 다이어그램과 아스키 아트가 들어간다 | 여기서 멈추고 자기 지식과 취향으로 고쳐 넣는다 |
| 구현 | 작업 목록. 요구사항·설계를 근거로 도는 *속성 기반 테스트가 함께 만들어진다 | 상위 네 개를 먼저 MVP로 만들라고 시킨다 |
셋 다 발표자가 화면으로 보여 준 것이고, 재서 낸 값은 아니다. 요구사항과 설계 중 어느 쪽부터 시작해도 되고 둘을 합쳐 쓰는 사람도 있다고 한다. 최근에는 확인 질문의 답을 근거로 문서를 한 번에 뽑아 주는 퀵 플랜 모드도 붙였다.
발표자가 문서를 손보라고 말하는 대목의 근거는 한 문장이다. 넣은 만큼만 나온다는 것이다.
데모는 시간 관계상 새 프로젝트를 만들지 않고 미리 만들어 둔 영화 데이터베이스로 돌린다. 이번에는 요구사항 대신 설계부터 시작하라고 시켰고, 아키텍처와 시퀀스를 그린 머메이드 다이어그램이 여러 장 나왔다. 문서 아래쪽에 붙은 속성 기반 테스트는 타입스크립트·노드 쪽의 fast-check로 값을 바꿔 가며 수십 번에서 수백 번씩 돈다. 요구사항 문서에는 「요구사항 1, 영화 데이터 로딩 — 애플리케이션이 초기화되면 필터 엔진이 로드된다」처럼 적힌다.
MVP를 만들어 달라고 하자 작업 목록이 다시 짜였고, 「1번부터 4번까지가 동작하는 MVP를 만든다 — 검색·장르 필터링·정렬이 되는 영화 그리드와 80년대풍 신스웨이브 테마 전체」라고 목록에 그대로 적혔다. 장르 필터링에 붙은 속성 기반 테스트는 어떤 영화 데이터셋을 넣어도 뽑힌 장르 목록이 정렬된 고유 장르 집합이어야 한다는 조건을 건다.
남이 써 둔 요구사항이 들어오는 길
발표자는 *MCP를 명세 주도 개발에 붙이는 이유를 하나로 든다. 지라나 아사나에 쌓인 티켓과 요구사항 문서를 스펙을 만들 때 그대로 끌어올 수 있다는 것이다. 프로덕트 매니저가 이미 써 놓은 요구사항 문서가 있으면 그것을 가져다 쓴다. 어느 프로젝트 관리 서비스든 마찬가지라고 말한다.
가져오게 시키는 방법은 둘이다. 스티어링 문서나 agents.md에 이 MCP 서버에서 정보를 가져오라는 규칙을 넣어 두거나, 첫 걸음에서 요구사항을 만들 때 이 서버를 보라고 직접 지정한다.
MCP가 나온 지 여섯 달인데 벌써 끝난 것 아니냐는 물음도 받는다고 한다. 명령줄 도구만으로 비슷한 것을 할 수 있다는 의견이 있다는 것도 안다면서, 아직 성숙해 가는 중이고 특히 보안 쪽으로 갈 길이 멀다고 답한다.
성능·비용·지연·정확도 수치가 하나도 없다. 명세를 먼저 쓰면 품질이 올라간다는 것이 발표의 주장인데, 그렇게 만든 코드가 무엇을 기준으로 얼마나 나아졌는지 재서 보여 준 자리가 없다. 견주는 기준선도 없다. 바이브 코딩과 명세 주도 개발을 같은 과제에 나란히 놓고 잰 결과는 나오지 않는다. 발표 전체에서 나온 숫자는 다운로드 수만 건, 경력 15년, MVP 작업 네 개, MCP가 나온 지 여섯 달뿐이다.
골디락스 존의 경계도 없다. 정보를 너무 많이도 너무 적게도 넣지 말라는 말은 있는데, 무엇을 보고 많다고 판단하는지가 없다. 이 방식에서 사람이 제일 자주 헤매는 자리가 여기라 아쉬운 대목이다.
문서를 만들고 손보는 데 드는 시간도 다루지 않는다. 요구사항과 설계를 사람이 앞뒤로 오가며 고치라는 것이 이 방식의 핵심인데, 그 시간이 바로 코드를 짜는 것보다 얼마나 더 걸리는지, 언제 그 시간이 아깝지 않은지가 발표에 없다. 깊이 있는 기능과 복잡한 프로젝트에 좋다는 말이 그 자리를 대신한다.
속성 기반 테스트가 요구사항 문서를 근거로 만들어진다는 설명도 그 이상 들어가지 않는다. 요구사항 문장이 어떻게 테스트 조건으로 바뀌는지, 문서 자체가 틀렸을 때 그 테스트가 무엇을 지켜 주는지는 발표가 설명하지 않는다.
데모는 실패 없이 지나갔고, 발표자가 스스로 밝힌 한계는 「넣은 만큼만 나온다」 한 문장이다.
용어
새 모델이 나올 때마다 프롬프트와 도구를 다시 맞추던 문제를 하네스 쪽에서 흡수하자는 논리. 출시 직후 남의 모델용 프롬프트를 그대로 옮겨 와 「파일마다 꼼꼼히 보라」고 시킨 탓에 느려지고 결과도 나빠진 사례가 구체적으로 나오고, 원인을 모델에게 직접 물어 알아낸 과정도 있음. 하네스가 실제로 무엇까지 떠맡아야 하는지의 목록과, 도구를 만드는 도구까지 이어지는 세 걸음이 함께 나옴.
▾한줄 코멘트. 모델이 배워 둔 순서를 시키는 말로 밀어내지 마라는 것이 이 발표에서 바로 써먹을 수 있는 한 가지다. 남의 모델에서 쓰던 프롬프트를 옮겨 오면 그 일이 벌어진다. 나머지 절반은 「하네스를 우리 것으로 쓰라」는 권유이고, 이 발표에는 성능을 잰 값이 하나도 없다.
같은 팀에서 코딩 에이전트를 만든다는 두 사람이 나온다.
코딩 에이전트를 셋으로 나눈다. 사람이 마주하는 자리, 모델, 그리고 하네스다. 오늘 볼 것은 마지막이라고 말한다.
*하네스를 이렇게 정의한다. 프롬프트와 도구를 한 고리 안에 모아 모델과 주고받게 하는 것이다.
발표의 출발점은 겪은 고통이다. 모델이 새로 나올 때마다 그 위에 얹은 것을 다시 만들어야 했다.
시키는 말이 습관을 이길 때
시키는 말이 습관을 이길 때
모델을 하네스에 맞추는 것을 이렇게 요약한다. 지능에 습관을 더한 것.
자기네 모델이 배운 습관을 든다. 계획하고, 둘러보고, 맥락을 모으고, 생각한 뒤에 코드를 고치고, 끝에 돌려 본다.
문제가 터진 자리가 여기다. 어느 모델을 냈을 때 사람들이 다른 모델용으로 쓰던 프롬프트를 그대로 옮겨 왔다. 거기에는 고치기 전에 파일마다 꼼꼼히 살펴보라는 말이 들어 있었다. 그러자 모델이 정말 그렇게 했고 오래 걸렸으며 결과도 좋지 않았다.
답은 단순했다. 하던 대로 하게 두고 과하게 시키지 않는 것이다.
알아낸 방법이 재미있다. 모델에게 직접 물었다 — 답은 마음에 드는데 오래 걸렸으니 다음에 빨리 가려면 지시를 어떻게 바꾸면 되겠냐고. 모델은 다 보라고 하니 그렇게 됐고 그럴 필요가 없었다고 답했다.
하네스가 떠맡아야 하는 것들
| 몫 | 무엇이 어렵나 |
|---|---|
| 새 도구 | 모델이 학습할 때 본 적 없는 것일 수 있다 |
| 생각하는 동안 | 얼마나 걸리는지, 그것을 화면에 어떻게 보일지 |
| 맥락 관리 | 언제 줄이고 언제 도로 넣을지, 캐시를 어떻게 살릴지 |
| 여러 갈래 | 동시에 부른 도구들을 어떻게 합칠지 |
| 가둬 두기 | 어디까지 손대게 할지, 권한과 통로 |
| 규격 붙이기 | 도구 규격을 받아들이는 배관 |
| 그림 | 어느 해상도로 줄여 보낼지 |
| 바뀌는 창구 | 부르는 방식 자체가 계속 바뀐다 |
새로 낸 모델이 맥락을 줄이는 일을 알아서 해 준다고 말한다.
만드는 사람들에게서 보이는 무늬 하나를 든다. 하네스가 새로운 추상화 계층이 된다는 것이다.
얻는 것이 뚜렷하다. 모델을 올릴 때마다 프롬프트와 도구를 다시 맞출 일이 없어진다.
그러면 그냥 껍데기 하나 만드는 것 아니냐는 반문이 나온다. 발표자는 동의하지 않는다며, 그래야 힘을 제품이 남과 달라지는 자리에 쓸 수 있고 값은 거기 있다고 답한다.
실제로 그렇게 한 곳들을 든다. 어느 편집기는 그것을 한 겹으로 감싸 자기 화면에 붙였고, 어느 코드 호스팅 쪽은 함께 만든 개발 키트로 곧장 이었다. 또 어느 편집기 팀과는 도구를 모델이 배운 모양에 맞추고 하네스를 공개된 구현에 맞추는 식으로 성능을 끌어냈다.
전부 공개돼 있으니 떠 가서 써도 된다고 말한다.
도구를 만드는 도구까지
발전 단계를 셋으로 그린다. 말을 주고받던 데서, 도구를 쥐여 주는 데로, 이제는 없는 도구를 스스로 만들게 하는 데로 왔다는 것이다.
그래서 되는 것을 든다. 고객마다 붙는 연결을 그 자리에서 스스로 짜는 기업용 물건을 만들 수 있는데, 예전에는 사람이 붙어서 해 주던 일이라는 것이다.
코딩이 아닌 쓰임도 든다. 명령줄로 말할 수 있는 일이면 무엇이든 된다며, 바탕화면 사진을 폴더로 정리하거나 폴더 안의 표 파일을 잔뜩 훑어 분석하는 것을 예로 든다.
모델이 좋아진다고 봐도 안전하다며, 더 긴 일을 지켜보지 않아도 하게 될 것이라고 말한다.
한 줄이 인상적이다. 새 모델은 믿을 수 있는 선을 끌어올린다 — 반년 전이라면 안 맡겼을 어려운 일을 지금은 맡긴다는 것이다.
앞으로 어려울 자리로는 거대한 코드베이스, 표준이 아닌 라이브러리, 닫힌 환경, 그리고 이미 있는 틀과 관행에 맞추는 일을 든다.
닫는 말은 권유다. 하네스는 복잡하고 새 모델이 나올 때마다 손이 많이 가니, 만들어 둔 것을 그대로 쓰거나 소스를 보라는 것이다.
성능을 잰 값이 하나도 없다. 하네스를 이렇게 짜면 무엇이 얼마나 나아지는지가 없다. 든 수는 주당 토큰이 수십 조이고 행사 뒤로 두 배라는 쓰임 규모뿐인데, 그것은 성능이 아니라 얼마나 팔렸나에 가깝다.
느려졌다는 사례에도 수가 없다. 얼마나 오래 걸렸고 얼마나 나빠졌는지가 없다. 고친 뒤 얼마나 빨라졌는지도 없다.
모델에게 물어 알아냈다는 방법의 신뢰도가 없다. 모델이 자기 행동의 이유를 정확히 댔는지 따로 확인한 자리가 없다.
파트너 사례에 값이 없다. 함께 맞춰 성능을 끌어냈다고만 하고 얼마나인지가 없다.
습관을 거스르지 말라는 조언의 경계가 없다. 어디까지가 과한 지시인지, 정말 꼼꼼히 봐야 하는 일에서는 어떻게 해야 하는지가 안 나온다.
자막이 모델과 제품 이름을 크게 뭉갠다. 판 번호와 제품 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
커서가 워크트리와 베스트오브N을 굴리던 코드 약 1만 5천 줄을 지우고 그 자리를 마크다운 지시로 채운 이야기. 베스트오브N은 코드 4천 줄에서 마크다운 마흔 줄이 됐고, 멀티레포와 대화 도중 전환처럼 예전에 안 되던 것이 따라 열렸다. 대신 작업 공간 밖으로 새는 것을 코드가 물리적으로 막던 자리가 프롬프트의 부탁으로 바뀌어, 긴 세션과 작은 모델에서 이탈이 난다. 그것을 재려고 스코어러 둘짜리 평가를 처음 짰다는 대목까지 나온다. 성능·비용 수치는 없다.
▾한줄 코멘트. 코드 1만 5천 줄이 사라졌다는 것이 눈에 걸리는데, 실제로 옮겨 간 것은 줄 수가 아니라 막는 방식이다. 예전에는 에이전트가 정해진 작업 공간 밖 파일을 건드리는 일 자체가 불가능했고, 지금은 나가지 말라고 프롬프트로 못 박아 두고 지키기를 기다린다. 발표자도 이 대목을 「감에 기댄다」고 말한다. 그래서 이 이야기는 코드를 지운 이야기가 아니라, 지키는 일을 코드에서 모델로 넘긴 뒤 그것을 무엇으로 확인할지 다시 짓는 이야기다.
커서에서 마크다운이 새 코드가 됐다는 이야기를 하겠다고 발표를 연다. 대상은 두 기능이다.
하나가 *워크트리다. 같은 저장소를 여러 벌 받아 놓은 것처럼 갈라 두는 깃 기능이라, 에이전트 여럿이 같은 과제든 다른 과제든 서로 방해하지 않고 동시에 일할 수 있다. 커서에서는 워크트리마다 에이전트를 띄웠고 같은 파일이 워크트리마다 다르게 보였다. 에이전트가 돌리는 명령이나 린트도 그 워크트리 안에 갇혔다. 화면에는 에이전트가 격자로 늘어서 각자 일했고, PR을 열라고 하면 그 워크트리에서 만든 변경으로 열렸다.
다른 하나가 베스트오브N이다. 같은 과제를 여러 모델에 한꺼번에 주고 결과를 견주는 기능이다. 프런트엔드라면 서로 다른 화면 구현을 미리 보고 마음에 드는 것을 고른다. 커서에서 부르는 이름은 「베스트 오브 10」이고, 작년 10월 커서 2.0과 함께 나왔다.
발표자는 최근 이 기능을 통째로 걷어내는 PR을 열었고 코드 1만 5천 줄쯤이 지워졌다고 말한다. 새 구현은 예전 것만큼은 아니어도 거의 그만큼 하면서 유지하기는 훨씬 가볍다고 한다.
지운 것이 무엇이었는지를 발표자가 늘어놓는다.
워크트리를 만들고 관리하고 에이전트에 맥락으로 넣어 주는 코드를 다 짜야 했다. 에이전트가 자기 워크트리를 벗어나지 못하도록 가두는 일도 코드가 했다. 사용자가 정해 둔 셋업 스크립트를 에이전트가 그 워크트리에서 일을 시작할 때마다 돌렸다. 어느 구현이 나아 보이는지 엄지 아이콘으로 알려 주는 판정도 따로 돌렸다. 하네스를 고치고 시스템 리마인더를 넣어 에이전트가 자리를 지키게 도왔다. 사람들이 워크트리를 수백 개씩 만들어 디스크가 불어나니 남은 것을 치워 주는 일까지 했다.
마흔 줄이 시키는 차례
발표자가 고른 부품은 둘이다. 에이전트 *스킬과 *서브에이전트다. 이 둘을 겹치면 워크트리 기능도 베스트오브N도 마크다운만으로 다시 만들 수 있다는 것이 판단이었다.
워크트리 쪽 지시는 이렇다. 워크트리를 어떻게 만드는지 알려 주고, 사용자가 정해 둔 셋업 스크립트를 워크트리마다 돌리게 하고, 그 체크아웃에 머무르라고 시킨다.
베스트오브N 쪽은 더 짧아서 작은 글씨로 화면 하나에 다 들어간다. 마크다운 마흔 줄이고, 예전 구현은 코드 4천 줄쯤이었다고 말한다.
지시에 든 조건도 댄다. 윈도우용 지시와 리눅스·맥OS용 지시를 다 담아 어느 판에서나 돌아야 한다. 가장 어려운 대목은 워크트리를 벗어나지 말라고 시키는 자리라, 절대 밖에서 일하지 말라고 세게 적는다고 한다.
새 명령은 /worktree, 베스트오브N을 부르는 명령, 워크트리를 적용하는 명령과 지우는 명령이다. 커서에서 이것들은 사실 스킬이 아니라 커맨드인데, 사용자가 고를 때만 프롬프트가 맥락에 실린다는 점이 스킬과 같다. 커맨드로 만든 이유는 하나다. 프롬프트를 자기네 서버에서 쥐고 있으면 사용자가 커서를 새로 받지 않아도 고친 프롬프트가 바로 간다.
데모는 영상이다. 키미·그록·컴포저·GPT·오퍼스에 같은 과제를 주자 부모가 서브에이전트 다섯을 띄우고 저마다 워크트리와 맥락을 쥔다. 오퍼스가 예상대로 오래 걸리고, 다 끝나면 부모가 지시받은 대로 결과를 견준다.
갈아치운 뒤 달라진 것
| 방향 | 무엇 |
|---|---|
| 좋아짐 | 유지할 코드가 훨씬 줄었다. 워크트리는 커서 사용자 90%가 쓰는 기능이 아니라 파워 유저용이다 |
| 좋아짐 | 대화 도중에 워크트리로 옮겨 갈 수 있다. 예전에는 안 됐다 |
| 좋아짐 | 저장소를 여럿 놓고 일할 때도 된다. 저장소마다 워크트리를 만들고 PR도 저장소마다 하나씩 연다 |
| 좋아짐 | 판정이 나아졌다. 부모가 서브에이전트들의 작업을 더 많이 알고 있어, 이 구현의 이 조각과 저 구현의 저 조각을 이어 달라고 시킬 수 있다. 예전에는 하나를 골라야 했다 |
| 나빠짐 | 에이전트가 자리를 지키기 어렵다. 예전에는 워크트리 밖 파일을 건드리는 것이 물리적으로 불가능했고 지금은 모델을 믿는다. 긴 세션에서 어디서 일해야 하는지 잊고, 떨어지는 모델일수록 엉뚱한 짓을 한다 |
| 나빠짐 | 느리게 느껴진다. 워크트리를 만드는 과정이 대화창에 그대로 보인다. 실제로 느린 것은 아니라고 말한다 |
| 나빠짐 | 찾기 어렵다. 예전에는 로컬·클라우드·워크트리를 고르는 드롭다운이 있었는데 이제 슬래시 명령을 알아야 한다. 파워 유저 기능이라 눈에 덜 띄는 쪽은 감수한다고 말한다 |
전부 발표자가 스스로 든 것이고 잰 값은 아니다. 포럼에서 반응이 갈리고 있다는 것도 밝힌다. 예전 방식에 익숙하던 사람들이 있다는 것이다.
지키는지를 무엇으로 재나
발표자는 이 기능을 두고 평가를 짜 봤고 그것이 사실상 처음이라고 말한다. 커서 CLI를 화면 없이 띄워 돌리고 채점하는 눈을 둘 뒀다. 하나는 모델이 자기 워크트리에서 할 일을 했는지 보고, 다른 하나는 그 반대로 건드리지 말아야 할 원본 체크아웃에서 뭔가 했는지 본다.
지금 평가가 단순해서 모델이 흐트러지기 시작하는 아주 긴 세션은 아직 흉내 내지 못했다고 말한다.
모델마다 다르다는 것은 나왔다. 하이쿠는 작고 덜 똑똑한 모델이라 원본 체크아웃으로 자주 새고, 컴포저와 그록은 훨씬 낫다고 한다. 몇 번 중 몇 번인지는 대지 않는다.
고치는 길로 둘을 든다. 평가를 늘려 프롬프트를 고치는 쪽과, 강화학습으로 자기네 모델을 고치는 쪽이다. 컴포저 2에는 이런 상황을 다루는 강화학습 과제가 아예 없었고, 컴포저 3이나 4, 5를 낼 때쯤에는 적어도 자기네 모델이 이 일을 훨씬 잘하도록 과제를 파이프라인에 넣는 중이라고 말한다. 남의 회사 모델은 자기가 고칠 수 없으니 다른 연구소와 모델 제공사에 겪은 것을 전해 왔다고 한다.
다음 단계도 밝힌다. 최근 알린 커서 3.0의 새 에이전트 창에 더 온전한 워크트리 구현을 넣을 계획이다. 로컬에서 여럿을 한꺼번에 돌리는 사람과 그 화면을 쓸 사람이 대체로 같은 사람이라는 것이 이유다.
깃 워크트리가 아닌 다른 병렬화 수단도 보고 있다고 말한다. 워크트리는 만드는 데 느리고 디스크를 많이 쓰며 깃 저장소에서만 돈다. 깃을 안 쓰는 사용자에게는 커서에 로컬 병렬화 수단이 아예 없다는 것이다.
성능·비용·지연 수치가 없다. 나온 숫자는 지운 줄 수와 스킬 줄 수, 사용자 비율 하나뿐이다. 새 구현이 예전 것만큼 「거의」 좋다는 말도 무엇으로 잰 것인지 대지 않는다.
평가 결과도 수치가 없다. 하이쿠가 「자주」 새고 컴포저와 그록이 「훨씬」 낫다는 데서 멈춘다. 스코어러 둘을 짜 놓고도 그 눈으로 본 값이 발표에 나오지 않는다.
유지 부담이 얼마나 줄었는지도 코드 줄 수 말고는 없다. 지우기 전과 뒤에 이 기능에 든 손이 얼마나 달라졌는지, 프롬프트를 서버에서 고치는 일이 대신 얼마나 늘었는지는 다루지 않는다.
가장 큰 구멍은 이탈이 났을 때다. 모델이 원본 체크아웃에서 일해 버리면 그 변경이 어떻게 되는지, 되돌릴 길이 있는지, 사용자가 알아채는 자리가 있는지를 발표가 설명하지 않는다. 예전 구현에서는 일어날 수 없던 일이라 예전에는 물을 필요가 없던 물음이다.
데모는 라이브가 아니라 영상이었다. 포럼 반응이 갈린다는 것도 말로만 있고, 어느 쪽이 얼마나인지는 나오지 않는다.
용어
클로드 코드(Claude Code)를 만든 보리스가 제품을 일부러 최소한으로 두는 이유를 밝힘. 프로그래밍 언어는 서로 닮아 가며 멈췄는데 UX와 모델은 계속 올라간다는 것이 그 근거고, 앤트로픽이 모델 회사라 모델을 날것으로 만지게 하려 한다는 것과 「올바른 UX를 아직 모른다」는 자백이 나란히 나옴. 한 제품에 붙는 길 넷(터미널·IDE·깃허브·SDK), 사내 온보딩이 2~3주에서 이틀로 줄었다는 사례, 출력을 볼 수단이 있어야 반복이 도는 이유, 이날 나온 플랜 모드까지 이어짐. 성능·비용 수치는 나오지 않는다.
▾한줄 코멘트. 기능을 덜 만든 것을 철학으로 말하는 발표처럼 들리는데, 근거로 댄 것은 취향이 아니라 관찰이다. 프로그래밍 언어는 서로 닮아 가며 멈춘 반면 UX는 펀치카드에서 자연어까지 계속 올라왔고, 그래서 지금 UX를 확정해 넣으면 모델이 한 계단 오를 때마다 그 껍데기가 걸리적거린다는 것이다. 다만 「모르니까 안 만든다」는 말은 만들 여력이 있는 회사에서만 통한다. 이 발표에서 제품을 덜어낸 값은 앤트로픽이 아니라 사용자가 각자 채워 넣는다.
발표자는 앤트로픽 기술 스태프이자 클로드 코드를 만든 사람이라고 자기를 소개한다. 요지를 앞에 먼저 놓는다. 모델은 지수로 좋아지는데 제품이 그 속도를 따라가느라 허덕이고 있다는 것이다.
이렇게 코딩을 잘하는 모델에 붙일 제품이 훨씬 많이 나올 수 있는데 지금은 최소한만 만들고 있다고 말한다. 그러면서 클로드 코드는 제품이 어떤 모습이어야 하는지에 대해 일부러 견해를 안 갖는다고 덧붙인다. 이유는 모르기 때문이다.
발표의 절반은 역사다. 1930~40년대에는 스위치보드를 만지는 물리적인 일이었고 소프트웨어라는 것이 없었다. 1950년대에 펀치카드가 왔다. 발표자의 할아버지가 소련 초기 프로그래머 중 하나였고, 어머니는 그가 집에 들고 온 펀치카드 더미에 크레용으로 그림을 그리며 자랐다고 한다.
1950년대 후반부터 추상화 단계가 올라간다. 어셈블리, 코볼, 타입 있는 언어, C++로 이어지고 1990년대 초에 언어군이 한꺼번에 터진다. 그런데 지금은 눈을 가늘게 뜨면 다 비슷해 보인다고 말한다. 타입스크립트를 쓰는 느낌이 러스트 같고, 그게 스위프트 같고, 또 고 같다는 것이다. 언어의 추상화는 수렴했다.
UX 쪽은 다르다.
발표자가 꼽은 프로그래밍 UX의 마디
| 언제 | 무엇 | 무엇이 새로웠나 |
|---|---|---|
| 1950년대 | IBM 029 | 타자기 같은 기계로 펀치카드에 구멍을 뚫었다 |
| 1970년대 언저리 | Ed | 첫 텍스트 편집기. 커서도 스크롤백도 *타입어헤드도 없었다. 종이에 찍는 텔레타이프 기계용이었고 지금도 유닉스에 딸려 온다 |
| 비슷한 시기 | 빔·이맥스 | 발표자가 큰 진전으로 꼽고 지나간다 |
| 1980년 | 스몰토크-80 | 프로그래밍 소프트웨어의 첫 그래픽 화면. 이때 이미 라이브 리로드가 됐는데 요즘 리액트로는 그게 아직 힘들다고 말한다 |
| 1991년 | 비주얼 베이식 | 그래픽 방식을 주류로 끌어왔다 |
| — | 이클립스 | 타입어헤드를 주류로. AI가 아니라 심볼을 색인하고 순위를 매기는 정적 분석이었다. IDE의 첫 큰 서드파티 생태계이기도 하다 |
| — | 코파일럿 | 한 줄 타입어헤드, 이어서 여러 줄 |
| — | 데빈 | 코드 대신 자연어를 쓰면 그것이 코드가 된다는 것을 처음 주류로 가져왔다고 본다 |
연도를 말한 자리만 왼쪽 칸에 적었다. 이클립스·코파일럿·데빈에는 발표가 연도를 대지 않는다.
검증도 같이 옮겨 왔다고 말한다. 손으로 디버깅하고 출력을 눈으로 보던 데서 *퍼징, 취약점 시험, 넷플릭스식 카오스 시험 같은 확률적 검증으로 왔다는 것이다.
여기서 발표자가 뽑는 결론이 하나다. 언어는 평평해졌고 모델과 UX는 아직 지수 위에 있다.
클로드 코드의 출발점은 터미널이고, 그 위에서 모델에 가능한 한 낮은 수준으로 닿게 하되 일은 되게 만드는 것이라고 말한다. 화려한 화면을 주지 않고 발판을 세워 앞을 막지 않는다.
이유를 둘로 나눈다. 하나는 앤트로픽이 모델 회사라 사람들이 모델 자체를 겪기를 바란다는 것이다. 다른 하나는 올바른 UX가 무엇인지 자기들도 모른다는 것이다. 그래서 단순하게 시작한다고 말한다.
벽에 액자로 걸어 둔 교훈도 꺼낸다. 더 일반적인 모델이 늘 이긴다는 것이다. 모델의 능력이 지수로 오르고 모델 둘레의 것도 함께 오르는데, 그 둘레에서도 더 일반적인 쪽이 보통 이긴다고 말한다. 자막은 이 교훈의 이름을 「the better lesson」으로 뭉갰다.
한 제품, 쓰는 길 넷
터미널은 어디서나 돈다. 아이텀2, WSL, SSH와 tmux 세션, VS 코드나 커서의 터미널까지 가리지 않는다.
IDE에서 띄우면 조금 더 한다. 차이가 터미널 줄로 흐르는 대신 IDE 화면에 크게 뜨고 진단도 가져온다. 그러면서 커서나 윈드서프만큼 다듬어지지 않았다고 스스로 말한다. 두 제품을 매일 쓴다고도 덧붙인다.
깃허브는 발표 몇 주 전에 열렸다. 클로드를 켜고 슬래시 명령으로 앱을 깔고 저장소를 고르면 된다. 사용자 컴퓨트에서 돌고 데이터가 앤트로픽으로 가지 않는다고 말한다.
가장 끝까지 간 길이 *SDK다. 터미널 앱도 IDE 연동도 깃허브도 쓰지 않고 직접 붙이는 방식이다. 발표자는 사고 분류에 쓴다고 한다. GCP 로그를 claude -p 에 파이프로 밀어 넣고 결과를 jq로 훑는다. 유닉스 도구처럼 쓰는 것인데, 이 쓰임은 아직 아무도 제대로 못 찾았다고 말한다.
가장 쉬운 입구는 코드베이스에 묻는 일이다. 앤트로픽은 입사 첫날 모든 엔지니어에게 클로드 코드를 가르치고, 이것으로 온보딩이 2~3주에서 이틀쯤으로 줄었다고 말한다. 발표자 본인은 월요일 스탠드업 전에 지난주에 무엇을 내보냈는지 묻고, 클로드가 깃 커밋을 훑어 답한다.
둘째는 도구를 가르치는 일이다. 예전 IDE는 플러그인을 만들어야 했다. 이맥스는 리스프 방언으로, 이클립스나 VS 코드는 확장으로 붙였다. 지금은 배시 도구와 *MCP 도구를 그냥 준다. 발표자가 자주 쓰는 방법은 CLI의 도움말을 읽게 하고 배운 것을 CLAUDE.md에 적어 두게 하는 것이다. 다리를 놓을 일이 없다고 말한다.
셋째가 순서다. 코드를 쓰기 전에 훑어보고 계획을 세워 사람에게 확인받게 한다. 확장된 사고는 맥락에 이미 무언가 들어와 있을 때 잘 듣는다고 말한다. 먼저 도구로 끌어오고 그다음에 생각하게 한다. 처음부터 생각부터 시키면 토큰만 쓴다.
넷째가 *TDD다. 사람이 하기는 어려운데 모델이 하니 잘 된다고 말한다. 시험을 먼저 쓰게 하되 아직 통과하지 않는다는 것을 분명히 알리고 돌리지 말라고 못 박는다. 시험을 쓰고 커밋하고, 그다음에 코드를 쓰고 커밋한다.
반복이 도는 조건
TDD는 더 넓은 규칙의 한 경우라고 말한다. 붙잡고 반복할 목표가 있으면 결과가 훨씬 좋아진다는 것이다. 유닛 시험, 통합 시험, iOS 시뮬레이터 스크린샷, 퍼피티어 스크린샷 어느 쪽이든 출력을 볼 수단이면 된다. 로봇에게 3D 프린터를 가르칠 때도 카메라를 달아 출력을 보게 했다고 한다. 첫 시도는 그런대로고 두세 번째가 쓸 만해진다.
이날 플랜 모드가 나왔다. shift+tab을 누르면 시킨 일을 바로 하지 않고 계획을 세워 승인을 기다린다. 세 번째 방식을 손쉽게 만든 것이다.
마지막은 맥락을 더 주는 일이다. CLAUDE.md를 저장소 뿌리에 두고 하위 폴더나 홈 폴더에도 둘 수 있다. 특별한 폴더에 마크다운을 넣어 두면 슬래시 메뉴에 뜬다. 우물 정 자를 치면 기억해 두라고 시킬 수 있고 어느 메모리 파일에 넣을지 물어 온다. 이 대목에서 발표자는 아직 거칠다고 말한다. 첫 판이지만 처음으로 작동하는 판이라는 것이다.
질문 하나가 슬랙으로 들어왔다. 클로드 코드에 점점 더 맡기게 되고 한 번에 열 개가 십 분씩 돌면 이 도구를 어떻게 쓰느냐는 것이다. 답은 파워 유저들이 하는 방식이다. 터미널 탭을 여럿 열고 저장소를 여러 벌 받거나 같은 저장소를 *워크트리로 갈라 병렬로 돌린다. 깃허브 액션을 쓰면 더 쉽다. 대개 클로드들 사이를 맞출 일이 없고, 맞추기 싫으면 마크다운 파일에 쓰게 하라고 답한다.
성능·비용·지연·정확도 수치가 없다. 모델이 지수로 좋아진다는 것이 발표의 뼈대인데 무엇을 얼마나 잰 이야기인지는 나오지 않는다. 나온 숫자는 온보딩이 2~3주에서 이틀로 줄었다는 것 하나인데, 그 이틀을 무엇으로 쟀는지도 밝히지 않는다.
기준선과 견준 자리는 하나뿐이고 방향이 반대다. 커서·윈드서프만큼 다듬어지지 않았다고 스스로 말하는 대목이다. 그 대신 무엇을 얻었는지는 「모델을 날것으로 겪게 한다」는 말로만 있고 잰 값이 없다.
「모른다」가 발표에서 세 번 나온다. 올바른 UX를 모르고, 유닉스 도구로 쓰는 법을 아무도 못 찾았고, 메모리는 아직 거칠다는 대목이다. 스스로 밝힌 한계라는 점에서 값이 있지만, 그래서 언제까지 모른 채로 둘 것인지, 무엇을 보면 알게 되는지는 나오지 않는다.
병렬로 돌릴 때의 조율도 「대개 필요 없다」에서 멈춘다. 필요한 경우가 어떤 경우인지, 마크다운 파일로 주고받다가 서로 부딪히면 어떻게 되는지는 다루지 않는다.
유효기간은 발표자가 직접 밝힌 셈이다. 프로 요금제 지원이 「어제부터」이고 플랜 모드가 「오늘」이다. 제품 이야기는 그만큼 빨리 낡는다.
용어
에이전트를 손 대는 정도로 셋으로 나누고 한 저장소에서 동시에 굴려 시험·화면·문서를 각각 맡기는 시연. 묻지 않고 진행하는 모드를 켜되 내보내기 직전에 멈추라고 미리 못 박아 두는 절차, 바깥에서 도는 쪽이 갇힌 자리에서 돌고 주 가지에 직접 못 민다는 안전장치, 그리고 시연 도중 맡긴 쪽이 알려 준 시험 방법이 틀려 직접 확인한 대목이 나옴.
▾한줄 코멘트. 나누는 기준이 일의 종류가 아니라 내가 얼마나 붙어 있고 싶으냐라는 것이 이 발표의 쓸모 있는 한 줄이다. 시험은 곁에서 보고, 화면은 반쯤 맡기고, 문서는 안 보고 맡긴다. 다만 라이브 시연을 못 하고 녹화로 대신했고, 시연 안에서 맡긴 쪽이 틀린 안내를 해서 직접 확인하는 대목이 그대로 나온다.
행사 마지막 시간대라며 연다. 자막 안에서 발표자가 자기 이름을 대지는 않는다.
앞 발표에서 나온 에이전트가 주는 머릿속 부담에 동의한다며 시작한다. 명령줄에도, 터미널에도, 대화창에도, 다른 편집기에도 여기저기서 튀어나온다는 것이다.
한 가지를 못 박는다. 한 번의 프롬프트로 앱이 완성되거나 문제가 풀린다고 믿는 사람이 아직 있는데 그렇지 않다.
값 이야기도 붙는다. 바탕과 도구에 지출은 큰데 아직 그만큼 거두지 못하고 있다며 토큰 씀씀이를 조심하라고 말한다.
세 갈래로 동시에
지금 있는 에이전트를 셋으로 나눈다.
무엇을 어디에 맡기나
| 갈래 | 어디서 도나 | 어떻게 쓰나 | 시연에서 맡긴 일 |
|---|---|---|---|
| 곁에 두는 것 | 내 기계에서 | 곁에 붙어 주고받는다 | 시험 쓰기 |
| 뒤에서 도는 것 | 작업칸을 따로 떼어 | 반쯤 맡긴다 | 화면 만들기 |
| 바깥에서 도는 것 | 남의 판에서 | 안 보고 맡긴다 | 문서와 저장소 정비 |
가운데 것을 설명하며 *작업칸을 가지를 폴더 하나에 따로 떼어 붙인 것이라고 풀어 준다.
나누는 기준이 뚜렷하다. 시험은 코드 안에서 무슨 일이 벌어지는지 알고 싶으니 곁에 붙고, 화면은 어떻게 만들든 크게 상관없으니 맡기고, 문서는 손대고 싶지 않으니 바깥에 맡긴다.
묻지 않게 두되 한 자리에서 멈추기
시연은 간단한 파이썬 앱에서 시작한다. 티켓 하나를 두고 간추리고 어떻게 할지 계획하라고 시킨다.
여기서 켜는 것이 도구를 부를 때마다 묻지 않는 모드다. 그러면서 그 자리에서 경고한다. 좋기도 하고 아주 위험할 수도 있으니 알아서 쓰라는 것이다.
그래서 붙이는 조건이 이 절의 요점이다. 시작은 하되 PR을 올리기 직전에 멈추고 내가 돌려 보게 하라.
그러고 새 대화를 열어 바깥 쪽에는 저장소를 오픈소스답게 정비하라고 시키고, 곁에 두는 쪽에는 시험을 쓰라고 시킨다. 셋이 동시에 도는 상태가 된다.
시험이 통과한 뒤 오류 처리가 부실한 것을 발견해 그것까지 고치게 한다.
정직한 대목이 하나 나온다. 뒤에서 돌던 쪽이 알려 준 시험 방법이 틀렸다. 그래서 직접 그 작업칸으로 가서 앱을 띄우는데 포트가 겹치는 문제까지 겪는다.
닫는 정리는 이렇다. 한 저장소, 세 문제, 세 갈래가 동시에 고쳤다.
바깥 쪽이 왜 그나마 안심되는지를 든다. 갇힌 자리에서 돌고, 나갈 수 있는 곳이 목록으로 묶여 있으며, 주 가지에 직접 밀지 못한다.
대신 쓸 수 있는 것도 붙는다. 저장소를 다루는 도구와 브라우저를 조종하는 도구가 붙어 있어 화면을 갈무리하며 시험할 수 있다.
편집기 안의 설정 하나에서 에이전트와 스킬과 지침과 프롬프트와 도구 서버를 모아 본다고 보인다. 거기에 다른 회사 것도 함께 걸려 있다는 점을 짚는다.
여기서 한 줄이 지나간다. 스킬은 예전 방식의 새 판이라는 것이다.
그리고 이 개념들이 한 제품에만 해당하는 게 아니라 다른 에이전트에도 그대로 통한다고 되풀이한다. 모아 둔 오픈소스 모음과 그것을 도구 서버로 감싼 것을 소개하며 닫는다.
라이브로 못 하고 녹화로 대신했다. 시간이 모자랄 것 같다며 영상으로 넘긴다고 밝힌다.
잰 값이 하나도 없다. 셋을 동시에 굴려 얼마나 빨라졌는지, 값이 얼마나 들었는지가 없다. 토큰을 조심하라고 말해 놓고 이 방식이 얼마나 쓰는지는 안 댄다.
틀린 안내가 얼마나 잦은지 없다. 맡긴 쪽이 잘못 알려 준 일이 한 번 나오는데, 그런 일이 얼마나 자주 있는지가 안 나온다.
묻지 않는 모드의 사고 사례가 없다. 위험할 수 있다고만 하고 실제로 무엇이 잘못될 수 있는지가 없다.
시연이 아주 작은 앱이다. 만들고 읽고 고치고 지우는 정도의 앱에서 셋을 굴린 것이라, 큰 저장소에서도 같은지가 안 나온다.
자막이 모델 이름을 뭉갠다. 고른 모델의 판 번호가 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
파이어폭스의 월 보안 수정이 2025년 평균 20건대에서 4월 400건으로 뛴 사례로 시작해, 찾는 일이 쉬워진 자리에서 병목이 어디로 옮겨 갔는지 짚음. 여러 팀이 모인 여섯 걸음(위협모델·샌드박스·발견·검증·분류·패치)을 가상의 주문 서비스 하나로 관통해 보여주고, 위협모델을 적어 두면 진양성률이 90%까지 오른다는 값과 도구를 준 침투시험 팀이 거의 100%였다는 값이 나옴. 검증 에이전트를 발견 쪽 추론에서 떼어 놓는 이유, 패치를 확인하는 사다리 셋, 그리고 사람 주의력은 안 늘어난다는 대목까지 이어짐.
▾한줄 코멘트. 숫자 하나가 이 발표를 끌고 간다. 파이어폭스의 월 보안 수정이 2025년 평균 20건대에서 4월에 400건이 됐다는 것이다. 그런데 발표자가 실제로 파는 것은 스캐너가 아니라 그 뒤에 밀려드는 것을 감당하는 절차다. 찾는 일은 돈과 컴퓨트로 늘릴 수 있는데 사람 주의력은 안 늘어나니, 진짜로 새로 지어야 하는 것은 검증·분류·패치 쪽이라는 것이다. 값을 낸 자리도 스캔 속도가 아니라 진양성률이다.
앤트로픽 기술 스태프인 발표자가 지난 몇 달을 보안 팀들과 함께 취약점을 찾고 고치는 데 썼다고 말한다. 자막이 이름 뒷부분을 뭉갠다.
먼저 모델 쪽 추세를 든다. 모델이 얼마나 긴 작업을 해내는지 사람과 견줘 재는 벤치마크에 사이버보안 판이 있고, 영국 AI 보안 연구소가 그것을 갖고 있다. 대상 시스템의 약점을 찾아 파고드는 과제라 역공학이나 웹 공격 같은 능력을 본다. 이 그림에서 모델이 점점 더 긴 보안 과제를 해내고 있으며, 앞선 회귀선에 견주면 한 계단 뛴 자국이 보인다고 말한다.
다음이 파이어폭스다. 모질라가 달마다 만든 보안 버그 수정 건수를 공개했는데 2025년 평균이 20건대였다. 2월과 3월에 60~70건으로 세 배가 되고 4월에 400건으로 일곱 배가 됐다. 4월 수치는 작년 평균의 20배다. 모질라는 이 증가분의 3분의 2쯤을 특정 모델 덕으로 돌렸다. 자막이 모델 이름을 뭉개 어느 판인지 원문에서 갈린다.
발표자는 청중에게 로그4쉘을 기억하느냐고 묻는다. 자바 로깅 라이브러리의 버그라 공격자가 문자열 하나를 로그에 남기면 시스템에서 코드가 돌았다. 벨기에 국방부가 며칠 만에 뚫렸고 한 핀테크에서 200만 명 데이터가 샜다. 그 전에는 오픈SSL의 하트블리드가 있었다.
자기네가 한 일도 낸다. 오픈소스 저장소 1,000곳 넘게 훑어 후보 2만 3천 개를 얻었고, 그중 6,200개가 높음 또는 치명으로 매겨졌다. 갱신 시점에 1,600개를 유지관리자에게 알렸고 100개쯤이 업스트림에서 고쳐졌다. 이제 취약점을 찾는 일 자체는 꽤 쉬워졌다는 것이 여기서 나온 관찰이다.
무엇이 그 문턱을 낮췄느냐는 물음에는 두 낱말로 답한다. *에이전틱 하네스다. 모질라를 다시 인용하는데, 초기 실험은 가능성만 보이고 오탐이 많아 넓히기 어려웠는데 보안 이슈를 안정적으로 잡아내는 하네스가 들어오면서 그것이 바뀌었다는 것이다.
여섯 걸음, 도는 것은 뒤 넷
여러 팀과 일해 보니 대체로 여섯 걸음으로 모이더라고 말한다. 앞 둘이 셋업이고 뒤 넷이 도는 고리다.
셋업 둘은 코드베이스마다 미리 들이는 품이다. 하나는 *위협모델이고 하나는 샌드박스다.
고리 넷은 이렇다. 발견이 취약점을 집어내고, 검증이 그것이 진짜인지 확인하고, 분류가 개발자가 붙을 열댓 개로 좁히고, 패치가 고친다.
설명은 주문 서비스 하나로 관통한다. 아이디를 넣으면 주문을 찾아 주는 가상의 시스템이다.
위협모델은 코드베이스나 시스템을 놓고 그리는 설계도인데, 무엇이 위협 벡터인지, 그러니까 어떤 취약점을 신경 써야 하는지를 정해 준다.
발표가 낸 진양성률 값
| 값 | 어떤 조건에서 | 언제 것 · 성격 |
|---|---|---|
| 90% | 위협모델을 잘 적어 둔 팀들 | — · 발표자가 여러 팀에서 봤다고 밝힌 값 |
| 75% 이상 | 발표자가 훌륭하다고 보는 선 | — · 발표자 기준 |
| 거의 100% | 모델에 API를 부르고 응답과 로그와 소스를 읽는 도구를 준 침투시험 팀 | — · 한 팀의 사례 |
셋 다 발표자가 말로 댄 값이고 어떤 표본에서 어떻게 쟀는지는 밝히지 않는다.
한 CISO의 말을 옮긴다. 모델은 코드에 대한 맥락은 훌륭한데 시스템에 대한 맥락은 빈약하다는 것이다.
위협모델을 처음 만드는 방법도 준다. 문서와 코드는 물론 지난 커밋과 지난 패치, 그 패치가 무슨 CVE를 막은 것인지까지 모델에 열어 주고, 아직 안 막힌 CVE가 무엇일지 짚어 보게 한다. 그다음에 모델더러 그 시스템을 아는 사람을 인터뷰하게 한다. 계획에 없던 일로 무엇이 일어날 수 있는지, 반대로 무엇은 안 걱정해도 되는지를 묻는 것이다. 주문 서비스의 위협모델에서는 지켜야 할 것이 고객 개인정보가 든 데이터고 들어오는 문이 주문 API이며, 모델은 SQL 인젝션과 인증 없이 API를 부르는 길을 위협 벡터로 짚었다.
샌드박스는 둘을 준다. 격리와 재현이다. 격리는 데이터가 새거나 운영 환경이 더럽혀지는 것을 막는 자리라 바깥으로 나가는 통신도 클라우드 자격증명도 없는 가상머신에서 돌린다. 재현은 모든 에이전트가 같은 기준 컨테이너에서 출발하게 하는 것이다. 함께 일한 한 팀은 가장 큰 지렛대가 실제 시스템을 올린 샌드박스였다고 말했다. 거기서 개념증명을 실제로 터뜨려 진짜인지 확인할 수 있기 때문이다. 주문 서비스 샌드박스는 도커 이미지 셋을 이어 붙인 것이다. 앱, 포스트그레스, 캐시 하나씩이고, 보안 에이전트는 대상 경계 밖에 앉아 HTTP로 앱을 찔러 본다.
발견에서 중요한 것 셋을 꼽는다. 맥락을 어떻게 넣느냐, 프롬프트를 얼마나 단순하게 쓰느냐, 도구를 주느냐다. 적어서 모델에 건네면 모델이 그것을 찾아낸다는 것이 첫째다. 둘째는 반대 방향이다. 새 모델이 나올 때마다 프롬프트를 절반쯤 줄여야 했다고 말한다. 요즘 모델에는 신뢰되지 않은 데이터가 신뢰 경계에 닿는 자리를 찾으라고만 해도 알아서 짚는다. 셋째가 앞 표의 마지막 줄이다.
주문 서비스의 조회 API는 다섯 줄인데, 발견 에이전트가 넷째 줄을 짚었다. 파이썬 문자열을 이어 붙여 SQL 질의를 만드는 자리라 사용자가 넣은 값이 곧장 질의로 흘러든다.
발견과 검증은 최적화하는 것이 다르다고 말한다. 발견은 재현율을 올리고 검증은 정밀도를 올린다. 그래서 검증 에이전트는 독립적이고 적대적이어야 한다. 독립은 발견 에이전트가 남긴 추론 자국을 안 본다는 뜻이고, 적대는 이 취약점이 가짜라고 가정하고 가짜임을 확인하려 든다는 뜻이다. 발견 에이전트가 제 일을 스스로 검증하면 자기 검열이 들어가 재현율을 깎는다.
주문 서비스에서 검증 에이전트는 넷째 줄이라는 위치만 받고 새 컨테이너에서 curl 한 줄을 날려 고객 개인정보가 빠져나오는 것을 눈으로 확인한다.
분류는 참인 것 중에서 고를 것을 고르는 자리다. 실제로 발동하지만 사업에 미치는 영향이 낮은 정확성 문제도 섞여 있다. 여러 팀이 같은 말을 했다고 한다. 참인 취약점을 중간·낮음까지 다 제품 엔지니어에게 보내면 그 엔지니어들이 감당을 못 해 신뢰를 잃는다는 것이다. 그래서 중복을 걷어내고, 터졌을 때의 크기와 실제로 일어날 만한지를 함께 본다. 공격자가 몇 단계를 거쳐야 하는지가 뒤쪽 기준이다. 방화벽 같은 보완 통제가 있으면 처음에 높음이던 것이 낮아지고, 반대로 데이터베이스에 고객 개인정보나 의료 데이터가 몰려 있으면 모델이 중간으로 매긴 것이 실제로는 높음이 된다. 주문 서비스에서는 에이전트가 높음으로 봤는데, 사람이 보고 낮음으로 내렸다. 애플리케이션 방화벽이 SQL 인젝션을 막고 있고 이 서비스가 안쪽 전용이라 인터넷에 안 붙어 있다는 이유다.
패치를 무엇으로 확인하나
패치가 고리를 닫는다. 고친 뒤 확인하는 사다리가 있고, 패치 에이전트에 그 결과를 돌려주면 패치 품질이 크게 올라간다고 팀들이 밝혔다고 한다. 발표자는 이것을 생성적 검증자 고리라고 부른다. 병합 전에는 사람이 본다.
주문 서비스의 패치는 두 덩이다. 첫 덩이는 변수를 파이썬 문자열 밖으로 빼는 한 줄짜리 수정이다. 둘째 덩이가 고리를 닫는 자리인데, 코드만 고치는 것이 아니라 보완 통제를 적어 둔다. 방화벽이 막고 있고 안쪽 전용이라는 사실을 남겨 다음 스캔에서 같은 것이 다시 올라오지 않게 한다.
고리를 안 닫으면 이 일이 매달 나가는 운영비인데, 닫으면 한 번 쌓아 두고 쓰는 자산이 되어 돌릴 때마다 나아진다고 말한다.
앞 전임 상사의 말을 옮긴다. 기술적이지 않은 문제가 기술적인 문제보다 한 자릿수 어렵다는 것이다.
들어오는 양이 열 배 백 배가 되면 하네스 쪽은 엔지니어링을 더 하고 컴퓨트를 더 쓰고 돈을 더 내면 된다. 돈으로 풀리는 것은 진짜 문제가 아니라고 말한다. 사람 주의력은 그렇게 안 늘어난다.
구체적인 자리를 셋 든다. 하나는 심각도 합의다. 제품 엔지니어와 보안 엔지니어가 무엇이 높음이고 치명인지에서 갈릴 수 있고, 이것은 사업 맥락이 많이 드는 일이다. 한 방에 몰아넣고 규칙을 적어 모두가 같은 것을 보게 만들어야 한다. 위협모델도 지금은 다 사람들 머릿속에 있으니 모델이든 사람이든 누군가 인터뷰해서 적어 내려야 한다.
둘은 어디로 보내느냐다. 한 달에 열댓 건이면 손으로 골라 메일을 돌리고 지라 티켓을 붙일 수 있는데 수백 건이면 못 한다. 이 일은 코드 주인이나 서비스 주인에게 보내는 정도로 단순해질 수 있고 굳이 언어 모델이 낄 자리가 아니라고 말한다.
셋은 고치는 손이다. 취약점을 받아 놓고 패치를 짜는 일은 모델의 도움을 받아도 여전히 어렵다. AI가 만든 패치 쪽으로 가되 사람이 고리 안에서 확인하라고 말한다. 완전 자동 패치 검토까지 간 회사는 아직 많이 알지 못한다고 덧붙인다.
기억할 것 셋으로 발표를 닫는다. 오픈소스 의존성부터 시작할 것, 자동화를 바로 노리지 말고 손을 얹은 채 배울 것, 스캐닝을 목표로 삼지 말 것이다. 병목은 검증과 분류와 패치, 그리고 조직의 절차라는 것이다. 마지막에 자기네 도구와 블로그, 대화형 스킬과 자율 하네스가 든 오픈소스 저장소를 소개하며 다섯째 걸음의 하네스를 가져다 고쳐 쓰라고 말한다.
값의 출처가 얇다. 진양성률 90%도, 도구를 준 팀의 거의 100%도 표본이 얼마이고 무엇을 정답으로 놓고 잰 것인지 대지 않는다. 오탐이 준 만큼 놓친 것이 늘지는 않았는지, 그러니까 재현율 쪽이 어떻게 됐는지는 아예 나오지 않는다.
자기네 스캔 결과도 앞쪽만 있다. 후보 2만 3천에서 고·치명 6,200으로 좁힌 기준이 무엇인지, 알린 1,600건 중 100건만 고쳐진 나머지 1,500건이 어떤 상태인지가 없다. 유지관리자 쪽에서 무엇이 걸렸는지가 이 이야기의 절반인데 발표는 그 자리를 다루지 않는다.
파이어폭스 숫자도 남의 발표에서 온 것이다. 4월 400건이 무엇을 센 것인지, 심각도 분포가 어떻게 되는지, 3분의 2를 모델 덕으로 돌린 근거가 무엇인지는 이 발표에 없다.
비용도 없다. 저장소마다 위협모델을 만들고 샌드박스를 세우는 데 드는 품, 발견과 검증을 따로 돌리는 데 드는 컴퓨트가 얼마인지 나오지 않는다. 돈으로 풀리는 것은 문제가 아니라는 말이 그 자리를 대신한다.
발표자가 스스로 밝힌 한계는 하나다. 보안 이슈를 고칠 때 패치 검토까지 완전히 자동으로 돌린 회사를 많이 알지 못한다는 것이다.
용어
6편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
같은 지식그래프에 두 가지로 물어 본 대조. 닮은 것을 찾고 그 옆을 한 번 더 보는 방식은 빨랐지만 얕았고, 에이전트가 먼저 구조를 물어본 뒤 질의를 여러 번 던지게 하니 번호와 심각도와 고쳐야 할 판까지 나왔음. 얽힌 사실이 둘 이상일 때만 그래프가 값을 한다는 선 긋기, 권한을 그래프에 얹어 보는 사람마다 다른 것을 보게 하는 활용, 그리고 시연 도중 발표자 스스로 오타를 냈다고 밝히는 대목이 있음.
▾한줄 코멘트. 한 번의 닮은 것 찾기로 끝나는 물음이면 그래프가 필요 없다는 선 긋기가 이 발표에서 가장 쓸모 있다. 값을 하는 자리는 얽힌 사실이 둘 이상일 때다. 뒤쪽 시연에서 같은 자료로 훨씬 상세한 답이 나오는데, 그 차이가 캐묻는 횟수에서 났다는 것이 눈에 띈다. 다만 잰 값은 하나도 없다.
그래프 데이터베이스 회사에서 개발자 쪽을 맡는다는 사람이 발표한다.
여는 진단이 이렇다. 한 번의 영리한 문구로 결과를 바꾸던 데서 더 넓고 움직이는 것을 모델에 넣어 주는 쪽으로 옮겨 가고 있다는 것이다.
문제도 짚는다. 맥락 창은 커졌는데 정작 중요한 자리에 눈길이 안 간다.
그래서 세우는 말이 이것이다. 프롬프트 짜는 사람이 아니라 정보를 설계하는 사람처럼 생각하라.
다루는 범위로 넷을 든다. 프롬프트, 밖에서 찾아와 붙이기, 상태와 이력, 그리고 나오는 모양을 잡아 주는 것이다.
기억은 둘로 나눈다. 지금 하는 일을 눌러 담는 짧은 쪽과, 여러 대화에 걸쳐 배운 것에서 뜻과 구조를 뽑아 두는 긴 쪽이다. 짧은 쪽에는 단서가 붙는다 — 도구가 쏟아 낸 것을 지난 것까지 너무 많이 넣지 말라.
*지식그래프를 사람·자리·일·물건을 나타내는 마디와 그 사이의 관계로 설명한다. 마디에는 속성을 붙일 수 있고 임베딩도 거기 붙일 수 있다고 말한다.
깔아 두는 한 줄이 있다. 넣는 자료가 나쁘면 나오는 답도 나쁘다.
그래프를 검색에 끼우면
정의는 넓게 잡는다. 찾아오는 과정에 그래프를 쓰면 다 여기에 든다.
닮은 것만 골라 오는 것보다 나은 이유로 관계와 무리 짓기 같은 것을 함께 쓰기 때문이라고 말한다.
값나가는 대목이 하나 더 있다. 모델에 넘어간 대목이 그래프에 남으니 왜 그렇게 답했는지 되짚을 수 있다.
권한 이야기도 실용적이다. 누가 보느냐에 따라 다른 것만 보이게 그래프에 얹을 수 있다며, 진료 기록에서 의사는 진단을, 행정 담당자는 연락처만 보게 하는 예를 든다.
같은 그래프, 다른 캐묻기
같은 그래프에 두 가지로 물었다
올려 둔 자료는 공급망 문서 하나와 어느 자바 라이브러리의 취약점과 영향받는 판, 고친 자리가 담긴 보안 문서 하나다. 넣으면 모델이 알아서 그래프를 지어 준다.
첫 시연은 닮은 것을 찾고 그 옆을 한 번 더 보는 방식이다.
여기서 사고가 난다. 그래프에 없는 라이브러리를 물어 거절이 나오길 기대했는데, 발표자가 이름을 잘못 말했다. 오타였다고 그 자리에서 밝힌다. 결국 거절하는지 보려던 시험은 실제로 돌지 않았다. 대신 모델이 사람 실수를 알아서 바로잡아 원래 라이브러리 정보를 끌어냈다.
둘째 시연은 코딩 에이전트에 그래프 질의 도구를 붙여 스스로 캐묻게 한 것이다. 순서가 눈에 띈다 — 먼저 그래프의 구조를 물어 파악한 뒤 질의를 여러 번 던지고, 마디에 달린 글 조각까지 끌어온다.
발표자가 직접 대는 비교가 이렇다. 앞의 방식은 비교적 빨랐지만 자세함이 제한적이었고, 뒤의 방식은 번호와 공격 유형과 심각도와 설명, 그리고 어느 판으로 올려야 하는지까지 내놓았다.
발표가 대는 선
| 물음의 성격 | 무엇으로 |
|---|---|
| 한 번의 닮은 것 찾기로 끝난다 | 보통 방식으로 충분하다 |
| 얽힌 사실이 둘 이상이다 | 그래프가 값을 한다 |
찾아오는 방식도 셋으로 나눈다. 미리 짜 둔 질의를 입구로 쓰는 것, 구조를 익혀 물음마다 질의를 지어내는 것, 그리고 답이 될 때까지 되풀이해 그래프를 도는 것이다.
같은 것을 기억에도 쓴다고 말한다. 마디에 글과 임베딩과 시간과 자리 같은 속성을 붙여 두고, 가까운 것 찾기나 무리 짓기나 중요도 매기기 같은 셈으로 가장 관련 있는 것을 위로 끌어올린다.
예로 든 물음이 구체적이다. 지난번에 누구와 함께 발표했던 자료를 고쳐 달라는 것이다. 그러면 사람 둘과 그 행사와 언제였는지까지 찾아 맥락으로 넘긴다.
에이전트 자체를 들여다보는 데도 쓴다고 말한다. 대화가 어떻게 흘렀는지 그려 보고, 성능 자료를 뜯어 고칠 자리를 찾고, 겹치는 마디를 지워 품질을 올린다.
잰 값이 하나도 없다. 앞의 방식이 얼마나 빨랐고 뒤의 방식이 얼마나 느렸는지가 없다. 자세함도 두 답을 눈으로 견준 것뿐이다.
거절 시험이 실제로 안 돌았다. 발표자가 이름을 잘못 말해 원래 보려던 것 — 그래프 밖 물음을 거절하는지 — 을 못 보였다.
시연이 한 물음씩이다. 두 방식 다 물음 하나에 대한 답으로 견줬다.
자료가 문서 둘이다. 큰 그래프에서도 같은 방식이 되는지, 그때 캐묻는 횟수가 얼마나 늘어나는지가 없다.
그래프를 짓는 값이 없다. 모델이 알아서 지어 준다고만 하고, 잘못 지었을 때 어떻게 되는지와 손보는 품이 얼마인지가 없다.
뒤가 자기 제품 안내다. 무료 강의, 컨퍼런스, 커뮤니티 사이트를 잇달아 소개하며 닫는다.
자막이 회사·도구 이름을 크게 뭉갠다. 회사 이름부터 질의 언어 이름까지 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
그래프를 쓸지 말지를 두 가지로 나눈다. 자료가 원래 짜여 있느냐와, 물음이 관계를 여러 칸 건너야 답이 되느냐다. 온톨로지를 바로잡는 데 전체 시간의 80%가 든다는 자백과, 트리플 추출 정확도를 자료 정제와 로라 파인튜닝으로 71%에서 87%까지 올린 실험이 뼈대다. 그 87%는 문서 백 개 기준이라 문서가 늘면 내려간다고 발표자가 먼저 못 박는다.
▾한줄 코멘트. 온톨로지를 바로잡는 데 전체 시간의 80%가 든다는 자백이 이 발표에서 제일 정직한 대목이다. 그래프 이야기는 대개 다 짜인 그래프를 놓고 시작하는데, 여기는 그것을 짓는 자리에서 시간이 다 나간다고 말한다. 재 본 값도 있다. 다만 87%는 문서 백 개 기준이고 그 점을 발표자가 먼저 못 박는다.
엔비디아에서 개발자 애드보킷 팀을 이끄는 사람이 발표한다. 그 팀이 하는 일은 여러 쓰임에 맞는 작업 흐름과 노트북을 만들어 깃허브에 내놓는 것이라고 밝힌다. 이 발표는 파트너 한 곳, 그리고 사내 동료들과 함께한 프로젝트를 다룬다. 파트너사 이름은 대지 않는다.
지식그래프를 사람·자리·개념·사건 같은 것들 사이의 관계를 나타내는 그물로 정의한다. 자기를 예로 든다. 자기와 이 행사의 관계는 발표자이고, 자기와 청중의 관계는 이 자리에 들어왔다는 것이다.
벡터로 닮은 것을 찾는 방식보다 나은 까닭을 여기서 댄다. 개체 사이에 무엇이 오갔는지를 훨씬 자세히 붙잡고, 여러 곳에서 온 자료를 한 자리에 엮을 수 있다는 것이다.
지식그래프를 짓는 일의 핵심은 *트리플을 뽑아내는 것이라고 말한다.
트리플 하나가 이렇게 생겼다
예로 든 것은 어느 정유 회사의 분기 실적 문서다. 짜여 있지 않은 글에서 이런 것을 뽑아내는 일이 어렵다는 것을 그 자리에서 인정한다. 그래서 거대언어모델에 시켜 글을 트리플 꼴로 바꿔 쌓는다고 말한다.
무엇을 개체로 보고 무엇을 관계로 볼지 미리 정해 둔 틀이 *온톨로지다. 쓰임에 맞게 이것을 먼저 정하고 프롬프트에 넣어 모델에게 뽑으라고 시킨다.
여기서 이 발표에서 가장 값나가는 한 줄이 나온다. 온톨로지가 틀리면 트리플이 틀리고, 트리플이 지저분하면 찾아오는 것도 지저분해진다. 그래서 이 자리를 바로잡는 데 전체 시간의 80%를 쓰게 될 것이라고 말한다.
한 번 해 두는 일과 그때그때 하는 일
벡터 쪽은 비교적 곧고 이미 많이 다뤄진 자리라고 말한다. 문서를 골라 조각으로 자르고 벡터로 바꿔 쌓으면 된다. 자를 때 조각끼리 겹치는 폭을 두는 까닭도 짚는다. 겹치는 데가 없으면 앞 조각과 뒤 조각 사이의 맥락이 사라진다.
그래프 쪽은 손이 훨씬 많이 간다고 말한다. 다 지은 뒤에 남는 물음이 하나 더 있다. 물어볼 때 관계를 몇 칸이나 건너갈 것인가, 곧 *홉을 얼마나 깊이 잡을 것인가다.
홉을 깊이 잡을 때와 얕게 잡을 때
| 얕게 | 깊게 |
|---|---|
| 한 칸에서 끝난다 | 여러 마디를 건너가며 캔다 |
| 그래프를 쓴 값이 안 난다 | 맥락이 좋아진다 |
| 빠르다 | 찾아오는 시간이 는다 |
프로덕션에서는 이 둘 사이에서 자리를 잡아야 한다고 말한다. 그래프를 도는 일 자체를 빠르게 하려고 팀이 라이브러리를 하나 만들었고, 널리 쓰이는 그래프 라이브러리를 통해 쓸 수 있다고 소개한다. 성능을 재 봤더니 전체 걸리는 시간이 크게 줄었다고 말하는데, 얼마나 줄었는지 수는 대지 않는다.
여기서 80과 20을 다시 든다. 그래프 RAG를 처음 굴러가게 하는 데는 시간의 20%면 되고, 쓸 만하게 다듬는 마지막 20%에 시간의 80%가 든다는 것이다. 파트너와 함께한 실험이 그 마지막 20%에서 나왔다.
먼저 자료를 손질했다. 아포스트로피나 괄호처럼 뜻에 보태지 않는 글자를 걷어냈더니 결과가 나아졌다. 답이 길게 늘어지지 않게 줄인 것도 도움이 됐다고 말한다.
그다음이 파인튜닝이다.
트리플 추출 정확도
| 어떻게 | 정확도 |
|---|---|
| 라마 모델을 그대로 | 71% |
| *로라로 파인튜닝하고 자료를 손질해서 | 87% |
이 값을 대면서 바로 단서를 단다. 문서 백 개로 잰 것이라 높게 보이는 것이고, 문서가 늘면 내려갈 거라는 말이다. 그래도 전보다 나아진 것은 분명하다고 덧붙인다.
무엇으로 재느냐도 짚는다. 신뢰도와 답변 관련성, 정밀도와 재현율, 도움이 되는지, 앞뒤가 맞는지 같은 것을 든다. 도구로는 질의와 찾아오기와 답을 한 줄에 걸쳐 재 주는 라이브러리 하나를 소개하고, 다른 길로는 남의 모델이 낸 답을 다섯 항목으로 채점하도록 훈련한 리워드 모델을 든다.
답을 「경우에 따라 다르다」로 열고 두 가지로 나눈다.
하나는 자료다. 소매나 금융이나 사내 인사 자료처럼 원래 짜임새가 좋은 자료가 그래프에 잘 맞는다. 짜여 있지 않은 자료라도 거기서 쓸 만한 그래프를 뽑아낼 수 있다면 해 볼 만하다고 말한다.
다른 하나는 쓰임이다. 물음에 답하려면 얽힌 관계를 알아내야 하는 경우에만 그래프를 쓰는 뜻이 있다는 것이다.
마지막에 단서를 하나 더 단다. 그래프로 짠 것은 연산을 많이 먹는 시스템이고, 그것을 감당할 수 있는지부터 따져야 한다는 말이다.
87%가 무엇을 맞힌 비율인지 없다. 뽑아낸 트리플이 맞았다고 누가 어떻게 판정했는지, 틀린 쪽은 어떻게 틀렸는지가 나오지 않는다.
파트너사 이름이 없다. 함께 실험한 곳이 어디인지, 그쪽 자료가 무엇이었는지가 없다.
가속 라이브러리 수치가 없다. 걸리는 시간이 크게 줄었다고만 하고 얼마에서 얼마로 줄었는지가 없다. 어느 알고리즘에서 그랬는지도 없다.
평가 도구를 이 프로젝트에 실제로 썼는지 없다. 라이브러리와 리워드 모델을 소개하지만, 71%와 87%를 그것으로 잰 것인지는 밝히지 않는다.
그래프를 짓고 다시 짓는 값이 없다. 연산을 많이 먹는다고만 하고, 문서가 늘 때 다시 짓는 품이 얼마인지가 없다.
자막이 이름과 판을 크게 뭉갠다. 팀이 만든 가속 라이브러리 이름이 엉뚱한 낱말로 들리고, 리워드 모델은 이름이 뭉개진 데다 같은 설명 안에서 크기가 3억 4천만과 3400억으로 갈린다. 파인튜닝한 라마 판도 3.3과 3.2와 3.1로 오간다. 정확한 표기는 원문에서 갈린다.
용어
기억을 전부 마크다운에 두면 한 라운드에 최소 10만 토큰을 실어 나른다는 자기 계측에서 출발함. 같은 원본 파일로 두 벌을 만들어 한쪽엔 벡터만, 한쪽엔 그래프를 붙이고 같은 것을 물어 본 대조가 뼈대 — 지원이 끝난 판을 돌리는 서버와 밖으로 열린 관리 포트를 두고 한쪽은 얼버무리고 한쪽은 이름과 판과 포트를 짚었다. 닮은 것 찾기를 버리지 않고 시작점으로만 쓰는 구조도 나옴.
▾한줄 코멘트. 닮은 것 찾기를 버리는 게 아니라 시작점으로만 쓴다는 구조가 이 발표의 알맹이다. 씨앗을 그것으로 잡고 나머지는 관계를 밟아 모은다. 같은 원본으로 두 벌을 만들어 견준 대목이 정직한데, 다룬 기계가 서너 대뿐이라 이 대조를 큰 규모의 증거로 읽으면 안 된다.
그래프 데이터베이스 회사에서 개발자 쪽을 맡는 사람이 발표한다. 게 캐릭터를 내세워 이야기를 끌고 간다.
문제를 이렇게 그린다. 이 비서는 도구가 많아도 상황에 맞는 것을 못 고를 때가 있고, 무엇보다 하루가 지나면 기억 파일이 갈리며 어제 한 일을 통째로 잊는다. 그래서 같은 일을 날마다 다시 가르치게 된다.
에이전트가 도는 방식을 기억 고리로 본다. 시키고, 무엇이라 답할지 생각하고, 도구를 부르고, 무슨 일이 벌어졌는지 본다. 그러면서 못 박는다. 어려운 것은 기억이다 — 무엇을 맥락에 넣고 무엇을 불러올지다.
요즘 에이전트들의 기억 구조를 늘어놓고 공통점을 짚는다. 전부 마크다운 파일이다.
그 형식이 나쁘다는 것은 아니다. 사람이 읽기 쉽고 일부러 작게 만든다 — 맥락 창이 한정돼 있고 중요한 것을 위쪽에 둬야 하기 때문이다.
문제는 규모다. 기억이 전부 그런 파일 뭉치면 토큰을 크게 버린다. 자기가 굴리는 에이전트들이 한 라운드에 최소 10만 토큰을 불러온다고 밝힌다. 쓸모가 있을까 싶어 일단 다 넣기 때문이고 그래서 겹치는 것투성이라는 것이다.
작은 규모에서는 좋은 모델을 쓰면 원하는 결과가 나온다고 인정한다. 안 되는 것은 큰 규모다.
스킬 역시 마크다운 파일이라며 다른 실패를 짚는다. 필요한 스킬이 없으면 못 하고, 엉뚱한 스킬을 고르면 엉뚱한 일을 한다.
한 줄이 재미있다. 조개를 여는 스킬이 있어도 먹는 스킬이 없으면 소용없다. 그러니 맞는 스킬들이 순서대로 이어져야 한다.
여기서 스킬 사이 관계를 그래프로 적어 두려는 동료의 연구를 든다.
다른 도구도 사정이 같다고 말한다. 어느 것은 기억을 또 하나의 도구 서버처럼 다뤄 불러오고 저장하고 지운다. 그런데 결국 디스크의 평범한 파일이고, 그래서 좋은 생각에 같은 근본 문제가 남는다. 위험도 하나 짚는다 — 도구가 있으니 잊으라는 명령을 잘못 불러 기억을 통째로 날릴 수 있다.
닮은 것으로 찾는 방식의 한계를 두 가지로 짚는다.
하나. 벡터 공간에서 가깝다는 것이 실제 관계와 같지 않다. 그래서 지어내는 일이 생긴다.
둘. 사실을 다 갖고 있어도 여러 칸을 건너야 답이 되는 물음은 안 풀린다. 이 대목에서 *멀티홉이라는 말이 나온다. 관계형 저장소에서도 그런 사슬은 값이 크다고 덧붙인다.
씨앗은 닮은 것으로, 나머지는 관계로
그래서 짠 구조가 이것이다. 닮은 것 찾기로 시작할 마디를 잡고, 거기서 옆에 붙은 것을 끌어와 얼마나 얽혔나로 순위를 매긴다.
얻는 것도 짚는다. 어느 마디가 뽑혀 맥락에 들어갔는지 보이니 왜 그렇게 답했는지 되짚을 수 있고, 뽑는 방식을 고치거나 겹치는 마디를 줄여 빠르게 나아질 수 있다.
그래프에 익숙하지 않아도 된다고 말한다. 질의를 모델이 자기보다 잘 쓴다는 것이다.
같은 원본, 두 저장소
같은 원본에서 갈라 놓고 같은 것을 물었다
이 발표에서 가장 정직한 설계다. 같은 원본 마크다운에서 출발해 두 벌을 만들었다. 한쪽에는 벡터만, 한쪽에는 그래프를 붙였다.
대상은 자기 집 서버들이다. 따로 떼어 낸 망에 올려 두었고 기억으로만 답하게 했다 — 실시간으로 기계를 조회하지는 못한다.
물음 다섯 개를 준비했다고 하고 둘을 보인다.
같은 물음, 두 답
| 물음 | 벡터만 붙인 쪽 | 그래프를 붙인 쪽 |
|---|---|---|
| 지원 끝난 판이 밖에 열려 있나 | 구체적인 것을 못 찾겠다며 얼버무린다 | 어느 기계인지 이름을 대고 판이 낡았다고 짚는다 |
| 관리 포트가 열려 있나 | 설정을 확인해 보라고 되민다 | 밖으로 열린 포트 둘을 집어내고 라우터 마디까지 따라간다 |
그리고 한마디를 덧붙인다. 발표 뒤에 그 구멍들을 다 막았다. 실제로 뚫려 있던 자리였다는 뜻이다.
닫는 주장은 이렇다. 자기 집은 서버 서너 대지만, 큰 데이터센터를 가진 곳이나 회사와 고객 기록이 방대한 곳처럼 요즘 모델의 맥락 창에도 안 들어가는 규모라면 파일에 던져 두는 것보다 나은 기억 장치가 필요하다는 것이다.
대조의 규모가 아주 작다. 서버 서너 대에 물음 둘을 보였다. 큰 규모에서 필요하다는 주장을 작은 규모의 시연으로 받치고 있다.
잰 값이 없다. 어느 쪽이 얼마나 빨랐는지, 값이 얼마나 들었는지가 없다. 10만 토큰은 문제를 그리는 수이지 고친 뒤의 값이 아니다.
벡터 쪽 설정이 어땠는지 없다. 무엇을 어떻게 넣었느냐에 따라 그쪽 답도 달라질 텐데, 두 벌을 얼마나 공평하게 맞췄는지가 나오지 않는다.
다섯 중 둘만 보인다. 나머지 셋에서 어땠는지가 없다.
그래프를 만드는 값이 없다. 원본에서 마디를 뽑아내는 일이 얼마나 걸리고 얼마나 틀리는지가 안 나온다.
뒤가 자기 쪽 안내다. 무료 강의와 책 소개로 닫는다.
자막이 이름을 여러 군데 뭉갠다. 서버 이름이 두 번 다르게 나오고 도구 이름도 어긋나서, 정확한 표기는 원문에서 갈린다.
용어
지식 베이스는 물음에 답하게 하고 컨텍스트 그래프는 승인·거절과 그 까닭까지 대게 한다는 갈림점. 금융 에이전트 데모에서 지난 판단을 끌어와 선례를 그래프 구조로 찾는 순서가 나오고, 명령 한 줄로 미리 만들어 둔 도메인 하나를 골라 그래프와 앞단과 뒷단을 통째로 짓는 도구를 시연함. 다만 새 결정 흔적을 언제 써넣을지는 아직 못 풀었다고 질의응답에서 인정한다.
▾한줄 코멘트. 지식 베이스에 컨텍스트 그래프가 더하는 것은 지난 판단이 왜 그렇게 났는지다. 승인할지 거절할지를 대게 하려면 사실만으로 모자라고 선례가 함께 와야 한다는 것이 발표의 뼈대다. 그런데 그 흔적을 누가 언제 써넣느냐는 아직 못 풀었다고 질의응답에서 인정한다 — 지금 데모는 저장하라고 시켜야만 저장한다. 잰 값은 하나도 없고, 앞의 데모는 인터넷 탓에 녹화로 대체됐다.
그래프 데이터베이스 회사에서 일하는 사람이 발표한다. 기술 마케팅에 있다가 최근 연구 엔지니어링 쪽으로 옮겼다고 밝힌다. 회사 소개는 정보를 잇고 추려서 AI 시스템이 더 정확해지고 왜 그렇게 답했는지 짚을 수 있게 돕는다는 것이다.
청중에게 두 번 손을 들게 한다. 컨텍스트 그래프를 들어 봤는지, 그런 그래프로 직접 코드를 짜 봤는지다. 둘 다 절반쯤이었다.
세우는 갈림점이 이렇다. 검색해서 붙이는 지식 베이스는 물음에 정확히 답하도록 돕는다. 컨텍스트 그래프가 거기 더하는 것은 더 나은 결정을 내리는 데 필요한 것이다.
같은 요청, 두 가지 답
같은 요청을 두고 무엇을 답하나
예로 드는 것은 금융 분석 에이전트다. 고객이 얼마를 요청한 사안을 두고 고객 정보와 거래 내역과 정책만 쥐여 주면, 위험 점수를 매기고 검토해 보라고 권하고 위험 요인을 짚는 정도로 답한다. 여기에 지난 결정 흔적과 선례가 붙으면 승인할지 거절할지와 그 까닭까지 답한다는 것이다.
이 말이 어디서 나왔는지도 밝힌다. 어느 벤처캐피털이 지난 12월쯤 꺼냈고, 그 뒤로 결정 흔적과 추론을 남겨 두자는 논의가 시끄러웠다고 말한다.
*시스템 오브 레코드가 다루는 것은 사실과 개체와 지금 상태다. 컨텍스트 그래프는 거기에 선례와 인과 사슬과 예상되는 결과를 얹어, 에이전트가 그 분야를 아는 사람처럼 움직이게 한다는 것이다.
컨텍스트 그래프에 담는 세 갈래
| 갈래 | 무엇이 들어가나 |
|---|---|
| 개체 | 존재하는 것들 |
| 사건 | 결정·거래·승인 |
| 맥락 | 정책, 그리고 지난 판단이 남긴 추론과 기억 |
세 번째 갈래에 두 종류가 함께 든다고 짚는다. AI가 남긴 추론과, 예전에 결정을 내린 직원들이 남긴 것이다.
데모에 쓴 자료는 고객관리 시스템과 고객지원 시스템 같은 데서 자료를 받아 오는 상황을 흉내 내 지어낸 것이라고 밝힌다. 돌리는 쪽은 클로드, 임베딩은 오픈AI, 자료와 벡터는 자기 회사 데이터베이스, 앞단은 넥스트js다. 인터넷 연결을 못 믿겠다며 이 데모는 녹화로 대신 보인다.
물음에서 거절까지
선례 찾기 단계만 따로 이름을 붙여 설명한다. 그래프 안의 구조를 살펴 인과 사슬로 서로 이어진 자리를 끌어온다는 것이다. 결정 흔적들이 그 사슬로 겹겹이 쌓인다고 말한다.
여기서 두 가지를 함께 쓴다. 벡터 인덱스로 「사기 거절」 같은 말을 뜻으로 찾고, 거기에 그래프 안에서 얼마나 비슷한 자리에 있는지를 겹쳐 본다. 뒤쪽을 가능하게 하는 것이 *그래프 임베딩이다. 앞서 보여 준 마디들이 서로 이어진 모양을 통째로 벡터로 만든 것이고, 그래서 닮은 결정 흔적을 벡터 유사도로 찾을 수 있다고 말한다. 이 임베딩은 회사의 그래프 데이터 사이언스 도구로 만든다.
정작 오늘 보이고 싶었던 것은 한 달쯤 전에 나온 다른 도구라고 말한다. 사내 프로덕트 매니저 한 사람이 만들었고, 터미널에서 명령 한 줄로 컨텍스트 그래프와 앞단과 뒷단을 갖춘 앱을 통째로 만들어 준다. 리액트나 넥스트의 뼈대 생성기에 견준다.
시연에서 지정한 것은 앱 이름과 도메인과 쓸 프레임워크다. 그러면 더미 자료가 담긴 픽스처 파일들과 함께 폴더가 만들어지고, 설치하고 자료를 심어 띄우기까지 몇 분 걸린다. 그 몇 분을 기다리는 중에 소리가 끊겨 청중에게 들리느냐고 되묻는 대목이 그대로 남아 있다.
완성된 화면에서는 처방약을 물어 답을 받아 오고, 스키마 그림과 여러 흔적을 함께 볼 수 있다. 물음이 들어오면 *사이퍼로 자료를 찾아 온다.
미리 만들어 둔 도메인이 스물두 개고, 시연한 헬스케어 말고 금융서비스도 있다. 직접 도메인을 만들면 *온톨로지를 대신 지어 준다. 지원하는 프레임워크로 파이단틱 AI 외에 오픈AI·랭그래프·크루·스트랜즈·구글 ADK를 든다. 깃허브·노션·지라·슬랙에서 자료를 끌어오는 연결 도구가 있어 데모 자료가 아닌 실제 자료도 넣을 수 있다고 말한다. *MCP 서버를 만들어 주고 앱 안에서 여러 차례 주고받는 대화도 된다. 이제 막 시작한 오픈소스라 누구나 기여할 수 있다고 덧붙인다.
여기부터 발표 끝까지는 자기 회사 것을 권하는 자리다. 블로그와 안내 사이트와 저장소 링크 셋을 잇달아 소개한다.
이 도구를 떠받치는 큰 의존 하나로 자기 회사 에이전트 메모리 패키지를 든다. 컨텍스트 그래프에는 셋이 다 필요한데 그 패키지가 셋을 맡는다는 것이다.
메모리 패키지가 맡는 셋
| 갈래 | 무엇을 담나 |
|---|---|
| 단기 기억 | 대화 이력과 세션 맥락 |
| 장기 기억 | 거기서 뽑혀 나와 되풀이되는 개체를 하나로 추린 것 |
| 추론 | 컨텍스트 그래프 안의 흔적 |
글을 그래프로 바꾸는 일은 단계 몇을 거친다고 말한다. 스페이시에서 글라이너로, 더 정교한 쪽으로, 마지막에는 거대언어모델이 받는다. 각 단계가 무엇을 하는지는 발표가 설명하지 않는다. 그 뒤에 병합과 중복 제거와 보강이 따로 붙는다.
스키마는 대화가 있고 거기서 뽑힌 개체들이 추론 흔적으로 이어지는 모양이라고 말한다. 이 패키지가 마이크로소프트 에이전트 프레임워크와 구글 ADK를 비롯한 여러 곳과 붙는다고 덧붙인다.
질의응답이 이 발표에서 가장 정직한 대목이다.
시간 정보를 붙이면 벌어진 순서대로 「원인이 됨」이나 「다음」 같은 관계로 이어진다고 답하면서도, 지금 그렇게까지 되는지는 모르겠다고 그 자리에서 물러선다. 기술이 익으면 될 일이라고 말한다.
미리 만들어 둔 도메인들은 온톨로지가 이미 준비돼 있고, 정해 둔 개체와 관계 종류가 뽑아내기와 맞붙이기를 이끈다고 답한다. 자료가 CSV나 표처럼 이미 짜여 있으면 사이퍼 문으로 그대로 옮기면 되고, 글을 다루는 쪽은 새 프로젝트라 아직 거칠다고 인정한다.
새 결정 흔적을 어떻게 써넣느냐는 물음에는 답이 없다. 지금 데모에서는 저장하라고 시켜야 저장하고, 시키지 않으면 알아서 남기지 않는다. 도구 쪽도 아직 작업 중이라고 밝히면서, 결정에 감정이나 품질 점수 같은 것을 매기는 방식이 필요할지 모르겠다는 생각을 덧붙인다.
잰 값이 하나도 없다. 지식 베이스만 줬을 때와 컨텍스트 그래프를 줬을 때의 답을 나란히 놓고 견주는데, 정확도도 지연도 값도 나오지 않는다.
왼쪽 답은 돌려 본 것이 아니다. 지식 베이스만 있을 때 나올 답은 발표자가 대개 이렇게 나온다고 그려 놓은 것이다. 두 벌을 실제로 만들어 같은 것을 물어본 대조가 아니다.
앞의 데모가 녹화다. 인터넷 연결을 못 믿겠다며 녹화로 대신했고, 뒤의 시연에서는 소리가 끊겼다.
그래프를 만드는 값이 없다. 글에서 개체를 뽑아내는 단계가 얼마나 걸리고 얼마나 틀리는지, 손보는 품이 얼마인지가 나오지 않는다.
선례를 잘못 고르면 어떻게 되는지가 없다. 지난 판단을 근거로 승인·거절을 대게 하는 구조인데, 그 판단이 애초에 틀렸을 때 무엇으로 걸러 내는지를 다루지 않는다.
자막이 몇 군데 뭉갠다. 개념을 처음 꺼낸 곳으로 댄 회사 이름과, 미리 정해 둔 개체·관계 틀을 부르는 말이 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
발표의 절반이 자사 제품 이름을 순서대로 늘어놓는 자리이고, 남는 것은 순서 하나다. 검색 결과가 쓸 만한지부터 재고 그다음에 모델로 넘긴다. 무엇이 잘못됐는지 모르면서 최적화할 수 있느냐고 청중에 되묻는 대목과, 관측 없이는 파일럿도 하지 말라고 말을 바꿨다는 대목이 뼈대다. 여행 에이전트·사내 챗봇·마케팅 셋으로 앱마다 데이터 요구가 갈리는 것도 보인다. 잰 값은 하나도 없다.
▾한줄 코멘트. 발표의 절반이 자사 제품 나열인데 남는 알맹이는 순서 하나다. 검색 결과가 쓸 만한지부터 재고 그다음에 모델로 넘긴다는 것이다. 관측 없이는 파일럿도 하지 말라고 말을 바꿨다는 대목도 같은 이야기다. 잰 값은 하나도 없고, 견준 상대도 없다. 발표자는 자기 이름도 소속도 자막에서 밝히지 않는다.
발표자가 자기를 소개하지 않는다. 자막 어디에도 이름과 소속을 밝히는 문장이 없고, 제품을 설명할 때만 「우리」라고 말한다. 화면에 띄운 춤추는 코코넛 영상은 자기 회사 모델로 만들었다고 밝힌다.
여는 말이 이렇다. 생성형 AI가 사업에 값을 더하기는 하는데 「제대로 했을 때」라는 조건이 붙는다는 것이다. 사용자가 앱을 쓰는 방식을 바꿀 만큼 큰 것을 지으려면 그 밑을 봐야 하고, 그 밑이 데이터라고 말한다. 데이터가 회사와 브랜드와 조직을 대신하기 때문이라는 것이다.
자료를 옮기고 싣고 뜯는 일은 여전히 중요하다고 하면서도 더 중요한 것을 따로 든다. 자료가 기술과, 그리고 사람과 어떻게 맞닿아 있느냐다. 아직 자료가 부서마다 따로 놀고 있지 않은지도 묻는다.
데이터 요구가 앱마다 어떻게 갈리는지 셋으로 보인다.
세 앱이 각각 무엇을 필요로 하나
| 앱 | 무엇이 있어야 하나 |
|---|---|
| 여행 에이전트 | 고객 프로필. 환불 자격은 항공사 여행 정책이 정한다 |
| 사내 생산성 챗봇 | 회사 자료. 직원이 제 권한보다 더 보지 않게 막는 일 |
| 브랜드 마케팅 | 요구가 또 다르다고만 말하고 넘어간다 |
여행 에이전트에 붙는 단서가 있다. 개인에 맞춘 경험은 개인 자료를 요구하고, 그만큼 *PII를 흘리지 않을 책임이 따라온다. 사내 챗봇 쪽은 붙는 자리가 여럿이라는 점을 짚는다. 슬랙에 붙을 수도 있고 따로 만든 앱에 붙을 수도 있으며, 자료도 여기저기 흩어져 있다는 것이다.
여행 에이전트로 돌아와 어디까지가 데이터인지 넓힌다. 시스템 프롬프트도 데이터고 사용자가 던진 물음도 데이터다. 상황에 따라 골라 쓰도록 프롬프트를 목록으로 두거나 틀로 만들어 둘 수도 있다고 말한다.
맥락도 더 이상 붙박이가 아니라고 말한다. 그때그때 여러 자료 서비스에서 온다는 것이다. 모델을 손질해 쓰려면 회사를 대신하는 자료가 거기서 또 필요하다.
그래서 못 박는 한 줄이 이렇다. 쓸 만한 답이 나오기까지 모든 단계에 데이터가 들어간다.
문제를 다 세운 뒤 답으로 자기 회사 플랫폼 하나를 든다. 그다음부터는 챗봇 하나를 예로 삼아 데이터가 지나는 자리마다 제품 이름을 붙인다.
챗봇 하나가 서기까지
*청킹 이야기는 조금 더 자세하다. 계층으로 자르는 방식과 뜻으로 자르는 방식이 이미 들어 있고, 그것으로 안 되면 자르는 규칙을 직접 짜 넣을 수 있다고 말한다. 임베딩 모델과 벡터 저장소도 고를 수 있고, 자료를 들이는 일과 바뀐 것만 덧붙이는 일은 따로 짜지 않아도 딸려 온다고 한다.
꺼내는 어귀는 둘이다. 하나는 닮은 것을 찾아 오는 쪽이고, 여기에 *하이브리드 검색을 값으로 넘길 수 있다. 다른 하나는 재정렬과 뒤처리와 질의 쪼개기까지 한 번에 하는 쪽이다. 직접 짜지 말고 값만 넘기라는 것이 이 대목 내내 반복되는 말이다.
가드레일 쪽은 개인정보와 막을 말을 걸러 내고, 자기 정책을 직접 세워 둘 수 있다고 말한다. 답을 근거에 묶어 지어내기를 줄이는 것도 여기서 한다. 걸린 것이 전부 기록으로 남아 사용자가 어떤 자리에서 걸리는지도 보인다고 덧붙인다.
여기까지 오면 챗봇이 다 선 것처럼 보인다고 스스로 말한다. 그러고서 진짜 이야기는 이제부터라고 한다.
먼저 청킹을 다시 든다. 어떻게 자르느냐가 나오는 답의 정확도를 정한다는 것이다. 그러면서 그것은 한 걸음일 뿐이고 다음이 최적화라고 말한다. 재정렬과 뜯기와 하이브리드 검색 말고도 질의를 다시 쓰거나 쪼개는 방법이 더 있다고 든다.
그다음에 청중에게 되묻는다. 무엇이 잘못됐는지도 모르면서 최적화할 수 있느냐는 것이다. 손을 들어 보라고 하고, 아무도 안 든다.
최적화가 걸린 세 갈래를 든다. 정확도와 값과 지연이고, 이 셋이 어떤 생성형 앱에서든 성능을 이루는 기둥이라고 말한다.
값과 지연을 함께 줄이는 방법으로 *시맨틱 캐시를 든다. 생성형 AI에서는 물음도 답도 똑같은 낱말로 되풀이되지 않으므로, 똑같은 물음이 아니라 닮은 물음이 앞서 있었는지를 찾는다. 있으면 모델을 다시 부르지 않아도 되니 값이 덜 들고, 새로 지어낼 시간이 빠지니 지연도 준다.
관측 이야기에서 말이 세진다. 예전에는 중요한 요소라고 말했는데 지금은 관측 없이 프로덕션은 물론 파일럿도 하지 말라고 한다는 것이다. 물음도 검색 결과도 답도 전부 남겨 두지 않으면, 문제가 들어와도 무엇이 잘못됐는지 찾을 길이 없기 때문이다.
평가를 앞에 두면
무엇을 재느냐도 앱마다 갈린다고 말한다. RAG면 *컨텍스트 관련성부터 보고, 요약하는 앱이면 요약에 맞는 지표를 쓴다. 재서 문제가 나오면 자료를 고치거나 방식을 고치는데, 자료가 오래돼서 답이 오래된 경우가 그 예다. 고친 뒤에는 다시 재야 하고, 그 재기가 손이 아니라 자동으로 돌아가는 틀 위에 있어야 한다고 말한다.
잰 값이 하나도 없다. 정확도와 값과 지연을 세 기둥이라고 부르면서 퍼센트도 시간도 금액도 대지 않는다.
견준 상대가 없다. 자사 제품으로 짠 방식이 직접 짜는 것보다 얼마나 빠르고 싼지, 다른 회사 것과 어떻게 다른지가 나오지 않는다.
돌려 보인 것이 없다. 화면에 띄운 것은 코코넛 영상뿐이고, 이 순서로 지은 챗봇이 실제로 답하는 장면은 나오지 않는다.
청킹을 어떻게 고르는지가 없다. 자르는 방식이 정확도를 정한다고 못 박아 놓고, 어느 자료에 어느 방식이 맞는지 고르는 기준은 대지 않는다.
발표자가 자기를 밝히지 않는다. 이름도 소속도 자막에 없다. 제품을 「우리」라고 부르는 대목만 남아 있다.
시간이 모자라 다 못 다룬다고 스스로 말한다. 발표가 밝히는 한계는 이것 하나다.
용어
이백 줄짜리 게임과 십만 줄짜리 둠에서 같은 것이 두 번 갈렸다. 코드를 통째로 밀어 넣으면 러스트 번역이 컴파일도 안 됐고, 그래프를 얹으니 그대로 돌았다. 삼십 년 된 둠에 원작에 없던 점프를 넣는 일은 코딩 에이전트를 그래프에 붙여 뚫었고, 앞서 시도한 다른 에이전트들은 전부 실패했다고 말한다. 함께 공개한 벤치마크로 재 보니 컨텍스트 창 8K·120K·백만 토큰 전부에서 92·90·91% 비율로 이겼고 값은 십분의 일이었다.
▾한줄 코멘트. 긴 컨텍스트 창이 이 문제를 못 푼다는 것이 이 발표에서 값나가는 대목이다. 백만 토큰짜리를 상대로도 91% 비율로 이겼고 값은 십분의 일이었다. 다만 이긴 비율은 정답률이 아니다 — 심판이 거대언어모델이고 재는 것은 포괄성·다양성·역량강화·관련성 넷이다. 그래프를 짓는 데 드는 값도 나오지 않는다.
마이크로소프트 리서치에서 그래프 팀을 이끄는 사람이 발표한다. 지난해 낸 논문과 저장소가 생각보다 크게 주목을 받았고 다른 곳의 제품에도 영향을 줬다고 말한다.
오늘 남기고 싶은 것을 두 줄로 못 박는다. 구조를 갖춘 기억이 쓸 만한 AI를 만드는 핵심이라는 것, 그리고 거기에 에이전트를 붙이면 힘이 크게 불어난다는 것이다.
다룰 것은 셋이라고 예고한다. *그래프RAG를 코딩 쪽에 대 본 사례, 이날 공개하는 벤치마크, 그리고 새 방식의 성적이다. 새 방식이 어떻게 도는지는 다루지 않고 성적만 보이겠다고 미리 밝힌다.
첫 시연은 사내 엔지니어가 만든 터미널 게임이다. 장애물을 뛰어넘으면 점수를 얻고 부딪히면 잃는다. 일곱 파일에 이백 줄쯤이다.
조건 둘을 든다. 모델이 이 코드를 한 번도 본 적이 없고, 사람은 전체를 다 알 만큼 작다는 것이다.
같은 코드, 두 가지 답
같은 코드에 같은 것을 물었다
이 차이를 *글로벌 질의로 설명한다. 방금 물음은 저장소 전체를 이해해야 답이 되고, 그런 자리에서 그래프가 힘을 낸다는 것이다.
다음은 번역이다. 같은 파이썬 코드를 러스트로 옮기라고 시킨다.
먼저 그래프 없이 이백 줄을 통째로 넣고 여러 프롬프트로 시도한다. 러스트 코드가 나오기는 했다. 컴파일해 보니 곳곳에서 막혀 그대로는 돌지 않았다.
같은 일을 그래프를 얹어 다시 시킨다. 나온 러스트 파일들을 그대로 실행하니 게임이 통째로 옮겨져 돌았다고 말한다.
이제 장난감을 벗어난다. 삼십 년쯤 된 둠 코드베이스로, 십만 줄에 231개 파일이다.
모델들이 둠을 학습으로 알고는 있었다. 이 코드베이스의 구체적인 것은 몰랐고, 뜻이 통하게 고치라고 시키면 다시 완전히 실패했다.
먼저 저장소 전체 문서를 지어 보게 한다. 스무 개에서 서른 개 파일에 걸친 소리 시스템 전체가 어떻게 도는지까지 나왔다고 말한다.
그다음이 기능 추가다. 원작 둠에는 점프가 없다. 그것을 넣으려면 여러 파일을 한꺼번에 고쳐야 한다. 그런 일을 AI에 시키면 한 파일은 잘 고치면서 다른 파일들을 깨뜨리고, 그것이 되풀이된다고 말한다. 코드가 서로 어떻게 맞물려 있는지를 모르기 때문이라는 것이다.
둠에 점프를 넣기까지
화제를 바꿔 벤치마크 하나를 이날 공개한다고 알린다. 전날 밤에야 저장소에 올렸다고 말한다.
벤치마크의 세 부품
| 부품 | 무엇을 하나 |
|---|---|
| 오토Q | 대상 자료에 맞는 물음을 지어낸다 |
| 오토E | 거대언어모델을 심판으로 세워 답을 채점한다 |
| 오토D | 자료를 요약하고 골라 낸다 |
오토Q는 물음을 두 축의 격자 위에서 짓는다. 한 축은 한 자리로 끝나는가 전체를 알아야 하는가이고, 다른 축은 자료 자체에서 뽑았는가 누가 무엇을 하려는가에서 뽑았는가다.
예로 든 자료는 의료 사건을 모은 통신사 기사 묶음이다. 한쪽 끝은 2024년 2월 한국 전공의들이 왜 파업했는가처럼 짚을 자리가 분명하다. 반대쪽 끝은 소외된 지역을 겨냥한 주요 공중보건 사업이 무엇인가처럼 임베딩으로도 색인으로도 붙잡을 자리가 없다.
채점은 네 지표를 합쳐 낸다. 포괄성과 다양성과 역량강화는 지난 논문에서 쓰던 것이고, 관련성이 이번에 붙었다.
새 방식을 *벡터RAG와 견줬다. 상대는 컨텍스트 창 크기가 다른 셋이다.
자료-로컬 물음에서 이긴 비율
| 견준 상대 | 이긴 비율 |
|---|---|
| 컨텍스트 창 8K | 92% |
| 컨텍스트 창 120K | 90% |
| 컨텍스트 창 백만 토큰 | 91% |
발표자가 뜻밖이라고 말하는 대목이 둘이다. 하나는 한 자리로 끝나는 물음에서는 보통 방식이 나을 줄 알았는데 전 구간에서 밀렸다는 것이다. 다른 하나가 더 크다. 백만 토큰짜리 긴 컨텍스트 창이 별 차이를 만들지 못했다.
슬라이드에 없는 값도 하나 댄다. 이 시험에서 새 방식의 값이 백만 토큰 방식의 십분의 일이었다는 것이다.
*레이지 그래프RAG는 두 제품에 실린다고 알린다. 하나는 애저 로컬이고, 다른 하나는 가설에서 실험과 학습을 거쳐 지식으로 가는 과학 공동추론 플랫폼이다. 그 안의 질의응답도 이 방식이 뒤에서 받는다고 말한다.
새 방식이 어떻게 도는지가 없다. 성적만 보이겠다고 스스로 밝히고 넘어간다. 자세한 것은 다음 날 올릴 글로 미룬다.
이긴 비율은 정답률이 아니다. 심판이 거대언어모델이고 재는 것은 포괄성·다양성·역량강화·관련성 넷이다. 코드가 맞았는지 답이 사실인지를 잰 값이 아니다.
막힌 자리를 한 번도 대지 않는다. 그래프를 얹은 쪽이 실패하거나 모자랐던 사례가 발표 내내 나오지 않는다.
그래프를 짓는 값이 없다. 십만 줄에 231개 파일을 그래프로 만드는 데 얼마가 걸리고 얼마가 드는지, 코드가 바뀔 때마다 다시 짓는 품이 얼마인지가 없다. 십분의 일이라고 댄 값은 물어볼 때 드는 값이다.
진 에이전트들의 이름이 없다. 앞서 시도한 것들이 전부 실패했다고만 하고 어느 것인지 대지 않는다. 점프 작업을 몇 번씩 돌려 봤는지도 없다.
시연이 전부 영상이다. 자리에서 돌린 것이 아니라 미리 찍어 둔 것을 튼다.
자막이 이름을 크게 뭉갠다. 그래프RAG를 부르는 말이 여러 군데에서 다르게 들려 정확한 표기는 원문에서 갈린다.
용어
3편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
언어 모델의 역사를 병목 하나씩 뚫어 온 자국으로 다시 읽고, 지금 걸린 것이 답하기 전에 쓰는 계산량이 요청마다 고정돼 있다는 점임을 보여줌. 생각 단계를 고리로 끼워 수천에서 수만 번 돌게 하되 몇 번 돌지는 강화학습으로 모델이 배우게 한 과정, 초기 실험에서 모델이 제 가설을 스스로 기각하던 대목, 모델 크기라는 이산 선택이 연속 예산 슬라이더로 바뀐 것까지 나옴. 딥 싱크가 미국 수학 올림피아드에서 50번째 백분위를 65번째로 끌어올렸다는 값이 발표의 유일한 성능 수치다.
▾한줄 코멘트. 발표의 절반이 역사인데 그 역사가 장식이 아니다. 저장을 못 해서 막히고, 문맥이 뭉개져서 막히던 자리를 하나씩 풀어 온 끝에 지금 걸린 것이 답하기 전에 쓰는 계산의 양이라는 자리 매김이다. 그래서 생각 단계는 새 기능이 아니라 앞선 병목들과 같은 줄에 놓인 다음 항목이 된다. 다만 이 발표에 값은 딱 하나 나온다. 수학 올림피아드 백분위다. 나머지는 그림의 추세선과 「경험적으로 되고 있다」는 문장이다.
발표자는 구글 연구자이고 제미나이 안에서 씽킹을 이끄는 사람이라고 자기를 소개한다. 발표 앞머리에 슬라이드가 안 떠서 진행 요원과 몇 마디 주고받는 대목이 그대로 남아 있다.
막힌 것을 하나씩 풀어 온 자국
1948년으로 시계를 되감는다. 클로드 섀넌이 통신의 수학적 이론에서 언어 모델을 만든다. 손으로 센 낱말 통계 교과서를 가지고 낱말 둘짜리 모델을 짜서 표본을 뽑아 보고는 꽤 그럴듯하다고 감탄한다. 그러면서 이 방식을 키우면 더 나아지겠다고 말한다. 막고 있던 것은 데이터가 적고 통계가 초보적이라는 점이었는데, 그걸 풀려면 인류 지식이 디지털로 옮겨지고 현대적인 계산이 있어야 했다.
몇십 년 뒤 2000년대 구글에서 제프 딘을 비롯한 동료들이 토큰 수조 개로 *엔그램 언어 모델을 학습시킨다. 당시 가장 정교한 음성인식과 번역이 여기서 돌았다. 이번 병목은 문맥이었다. 문맥이 길어지면 저장 비용이 지수로 늘어 짧은 문맥에 갇혔고, 엔그램을 붙들고서는 돌아갈 길이 없었다.
2010년 순환신경망이 그 자리를 푼다. 지난 것을 신경망 상태에 눌러 담는 방식이라 다섯 낱말을 넘어 문장과 문단까지 다룰 수 있게 됐다. 몇 년 뒤 여기서도 병목이 보인다. 지난 것을 담는 상태가 고정 크기라 넣을 수 있는 정보가 정해져 있고, 그래서 문맥이 손실된 채로 표현된다는 것이다.
풀린 방식은 반대였다. 지난 임베딩을 다 남겨 두고 *어텐션으로 그때그때 모으는 것이다. 어텐션이 여기서 나왔고 곧 트랜스포머로 이어졌다.
10년을 건너뛰면 2024년이다. 제미나이나 챗GPT 같은 범용 대화 에이전트가 강력해졌는데, 이 모델들은 여전히 요청에 곧바로 답하도록 학습돼 있다. 그러니 요청에서 답으로 넘어가는 데 쓰는 계산량이 늘 같은 크기로 고정돼 있다.
발표자가 그 고정된 계산이 어디서 일어나는지 풀어 준다. 요청의 글이 토큰으로 바뀌고 언어 모델을 통과하는데, 층마다 병렬로 계산이 돌고 층과 층 사이에는 반복 계산이 돈다. 그 계산이 내 문제에 모델이 지능을 들이는 자리이고, 그 크기가 정해져 있다.
더 똑똑한 답을 원한다면 모델을 키우는 것도 한 방법이다. 그런데 그것으로는 모자란다고 말한다. 이유가 둘이다. 하나는 폭이다. 어렵고 값나가는 일에는 천 배 백만 배를 생각하게 하고 싶다는 것이다. 다른 하나는 그 폭을 상황에 맞춰 쓰는 것이다. 쉬운 요청에는 적게, 어려운 요청에는 많이, 그것도 모델이 알아서 정하는 쪽이다.
답하기 전에 도는 고리
방식 자체는 단순하다. 모델이 최종 답을 내기 전에 글을 더 내놓는 생각 단계를 끼운다. 이 고리가 수천에서 수만 번까지 돌 수 있으니 답을 확정하기 전에 쓰는 계산이 그만큼 늘어난다. 고리라서 몇 번 돌지도 모델이 배운다.
훈련은 강화학습이다. 사전학습을 마친 제미나이에 여러 과제를 시키고 맞게 풀었는지에 따라 양이나 음의 보상을 준다. 발표자는 이 조리법이 대단히 일반적이라고 말하면서, 무엇이 맞고 틀린지에 대한 흐릿한 신호만 받아 생각 단계 전체로 되돌려 보내는 것으로 모델이 제 생각 토큰 쓰는 법을 다듬는다는 것이 놀랍다고 덧붙인다.
되리라고 확신하지 못했다고도 말한다. 추론 단계에 구조를 얼마나 넣어야 할지가 불분명했다는 것이다. 그때 본 것을 옛 자료로 보여 준다. 정수를 맞히는 문제에서 모델이 생각 토큰으로 먼저 가설을 세우고, 시험해 보고, 이 공식은 성립하지 않는다고 스스로 밝히고 제 아이디어를 버린 뒤 다른 길로 갔다. 여러 아이디어를 시도하고 스스로 고치는 행동이 일반적인 강화학습 조리법에서 나온 것에 놀랐다고 말한다.
요즘 모델이 배우는 전략도 나열한다. 문제를 여러 조각으로 쪼개고, 해법을 여러 갈래로 살피고, 코드 조각을 초안으로 써서 모듈로 쌓고, 중간 계산을 하고, 도구를 쓴다.
첫째는 쌓인다는 것이다. 씽킹은 사전학습을 키우는 길이나 사람 피드백의 품질과 폭을 키우는 길 위에 겹쳐 놓이고, 셋을 함께 밀면 곱해진 효과가 난다고 말한다.
최근 제미나이 출시들을 늘어놓은 그림도 보여 준다. 가로축이 로그로 그린 *테스트타임 컴퓨트고 세로축이 수학·코드·과학 성적인데, 둘이 함께 올라간다. 왼쪽 끝이 작년 12월에 씽킹 없이 나온 2.0 플래시 실험판이고 오른쪽이 처음 나온 2.5 프로다. 발표자는 이 그림을 두고 테스트타임 스케일링이 경험적으로 되고 있다고 말한다. 축의 값은 대지 않는다.
둘째는 고르는 방식이다. 예전에는 모델 크기 몇 개 중 하나를 골라 품질과 비용을 함께 정했다. 이제는 예산이 연속이라 원하는 능력을 훨씬 잘게 끊어 고를 수 있다. 씽킹 버짓이 2.5 시리즈의 플래시와 프로에 나와 있다.
다음으로 하려는 일 둘을 든다. 하나는 생각을 효율적으로 만드는 쪽이다. 사용자가 따로 손대지 않아도 알아서 맞춰지기를 바라고, 지금 모델들이 과제에 과하게 생각하는 사례를 찾을 수 있다고 스스로 말한다.
다른 하나가 반대 방향이다. 추론 계산을 더 키워 능력을 더 끌어내는 쪽이다. 오래 걸려도 좋으니 파고들게 하는 제미나이 딥 리서치가 그런 예다. 그 위에 딥 싱크를 알렸고 신뢰받는 테스터에게 내주는 중이라고 말한다. 2.5 프로 위에 올린 아주 높은 예산 모드이고, 어려운 문제를 던져 놓고 다른 일을 하다 돌아와 받는 쓰임을 노린다. 핵심은 훨씬 깊은 *사고 사슬과, 서로 합쳐지는 여러 갈래 사고 사슬이다.
미국 수학 올림피아드에서 나온 값
| 무엇 | 값 | 언제 것 · 성격 |
|---|---|---|
| 당시 최고 모델 | 사실상 무의미한 성적 | 1월 · 발표자 표현 |
| 2.5 프로 | 참가자 중 50번째 백분위쯤 | 발표 시점 · 구글 자체 값 |
| 딥 싱크 | 65번째 백분위 | 발표 시점 · 구글 자체 값. 자막이 숫자를 한 번 뭉갠다 |
기반 모델을 고치는 것과 딥 싱크에 들어가는 알고리즘을 고치는 것이 함께 쌓일 것이라고 말한다.
올림피아드 대수 문제 하나를 푸는 과정은 미리 만든 영상으로 보여 준다. 모순으로 증명하는 길에서 시작해 롤의 정리와 뉴턴의 부등식 두 갈래를 살피고 그것을 합쳐 증명에 이른다. 발표자는 이 영상에서 가져갈 것이 많지는 않은데 보기 좋아서 넣었다고 말한다.
코딩 쪽으로도 하나 든다. 동료들이 딥마인드의 원조 DQN 논문에서 시작해 학습 설정과 알고리즘은 물론 아타리 에뮬레이터까지 제미나이로 짜서 게임을 돌게 만들었다. 예전 같으면 자기와 동료들에게 몇 달이 걸렸을 일이 몇 분 만에 일어나기 시작한다는 것이다.
끝은 사람이다. 20세기 초 수학자 한 사람을 든다. 수학 교과서 한 권만 쥐고 학계와 떨어져 있었는데, 작은 문제 묶음에서 시작해 교과서 여러 권 분량을 생각해 나가며 제 이론을 세워 방대한 수학을 만들었다. 자막이 이름을 뭉갠다. 모델도 그렇게 적은 것에서 깊이 파고들어 추론 토큰 수백만 개 너머까지 가며 지식을 쌓기를 바란다고 말한다.
성능 값이 하나뿐이다. 수학 올림피아드 백분위 말고는 잰 값이 없다. 씽킹이 되고 있다는 근거로 든 그림도 축에 숫자가 없고, 어떤 과제 묶음에서 잰 것인지 대지 않는다.
비용도 마찬가지다. 예산을 잘게 고를 수 있다는 것이 개발자에게 주는 값인데, 예산을 올릴 때 값과 지연이 얼마나 오르는지가 나오지 않는다. 자기네 모델이 비용 대비 좋다고 말하면서 견줄 수 있는 값은 대지 않는다.
과하게 생각하는 문제도 스스로 꺼내 놓고 크기를 대지 않는다. 어떤 과제에서 얼마나 자주 그러는지, 그 손해가 얼마인지가 없다.
딥 싱크가 어떻게 도는지도 이름까지만 나온다. 사고 사슬 여러 갈래가 서로 합쳐진다고 했는데, 몇 갈래를 띄우는지, 합치는 판단을 무엇이 하는지, 그 값이 얼마인지는 설명하지 않는다. 백분위 65가 그 값으로 산 것인지도 알 수 없다.
강화학습 쪽도 조리법 수준에서 멈춘다. 어떤 과제로 훈련하는지, 보상을 무엇으로 매기는지, 정답이 없는 일에는 어떻게 하는지가 발표에 없다.
용어
오픈AI 파인튜닝 팀이 연 에이전트 강화 파인튜닝을 프롬프트·과제 최적화 다음에 꺼내는 마지막 카드로 자리매김하고, 네 회사 사례로 무엇이 달라졌는지 보여줌. 예시를 100개에서 1,000개로 늘리자 개선폭이 5점에서 10점이 된 사례, 도구 호출이 8~10단계에서 4단계로 준 사례, 한 샘플에 15회 넘던 롱테일 호출이 2~4회로 모인 사례가 나옴. GPU 커널 쪽에서는 모델이 보상을 파고든 꼴 일곱 가지를 찾아 막고 나서야 값이 나왔고, 그 과정이 이 발표에서 가장 구체적인 대목이다.
▾한줄 코멘트. 파인튜닝을 파는 발표인데 정작 절반이 쓰기 전에 할 일과 보상 함수가 뚫리는 이야기다. 값이 큰 자리도 그쪽이다. GPU 커널 쪽에서는 모델이 참조 코드를 그대로 돌려주는 식으로 보상을 파고들었고, 그 꼴 일곱 가지를 찾아 0점을 매기고 나서야 값이 나왔다. 가중치를 바꾸는 일의 어려움이 학습에 있지 않고 무엇을 잘했다고 칠지 정하는 데 있다는 것을 발표자들이 스스로 보여 준다.
오픈AI 파인튜닝 팀의 두 사람이 *에이전트 강화 파인튜닝을 소개한다. 에이전트가 일반 모델과 다른 점은 바깥 세상과 주고받으며 사람을 거치지 않고 일을 끝내는 능력이라고 놓고 시작한다. 코딩 에이전트라면 터미널과 코드 인터프리터, 저장소 전체에 닿아야 한다. 도구 호출과 추론 자취가 같은 맥락 창 안에 얽혀 있다는 것도 짚는다. 사내 사례로 자기네 코딩 에이전트를 든다. 자막이 제품 이름을 뭉갠다.
성능을 올리는 순서를 놓는다. 먼저 프롬프트를 손보고, 그다음 과제를 손본다. 과제를 줄이고, 울타리를 더 두르고, 도구를 넣고 빼고, 도구가 하는 일을 바꾼다. 그러고도 더 짜내고 싶을 때가 파인튜닝이다. 과제에 맞춰 에이전트를 끝에서 끝까지 학습시키되 모델 가중치를 바꾼다.
여기까지 하고도 모자랄 때
발표자들은 아무나 바로 쓰는 것을 권하지 않는다면서 밟을 차례를 댄다.
에이전트 강화 파인튜닝은 사용자가 정한 학습 신호에 따라 가중치를 바꿔 무엇이 좋은 행동이고 무엇이 나쁜 행동인지 가르친다. 학습하는 동안 에이전트는 과제를 풀려고 도구를 부르는 여러 방식을 뒤진다.
이번에 붙은 것 둘을 든다. 모델이 공개 인터넷에 올려 둔 사용자 쪽 끝점으로 도구를 부를 수 있게 됐고, 한 판이 끝날 때마다 사용자가 끝점으로 올려 둔 보상 신호도 부른다. 오픈AI가 학습 도중에 모델이 바깥 세상과 주고받게 허용한 첫 사례라고 말한다.
붙이는 방식도 설명한다. 판마다 고유 식별자를 만들고 그 판에서 나간 도구 호출을 전부 그 식별자에 묶는다. 마지막 답을 낼 때 그때까지 쥐고 있던 맥락과 답을 이어 붙여 통째로 채점기에 넘길 수 있다.
이 방식이 붙잡는 문제를 *도메인 시프트라고 부른다. 사용자의 환경이 오픈AI가 사내에서 학습시킨 환경과 다르다는 것이다. 그러면 에이전트가 도구를 잘 못 부르거나, 너무 여러 번 부르거나, 엉뚱한 입력을 밀어 넣는다. 가중치를 바꾸는 학습이 모델을 그 도메인에 다시 맞춘다.
값이 나오는 자리를 셋으로 든다. 도구를 더 잘 쓰게 되는 것, 도구가 돌려준 것을 더 잘 읽게 되는 것, 그리고 지연이다. 도구 호출 예산을 정해 두고 넘기면 벌점을 주면, 모델이 원래 성적을 지키거나 넘기면서 예산 안에 머무르도록 배운다고 말한다. 표본이 적어도 되는 편이라 예시 열 개로 재미를 본 사례도 있다고 덧붙인다.
발표가 든 사례 넷
| 누가 | 무엇을 학습시켰나 | 무엇이 달라졌나 · 성격 |
|---|---|---|
| 코그니션 | 코드 편집 계획 단계. 저장소를 훑고 셸 도구를 돌려 고칠 파일을 고르는 자리. 사용자 질의와 실제로 고쳐진 파일을 짝지어 데이터를 만들고 고른 파일의 *F1 점수를 보상으로 썼다 | 예시 100개로 5점, 1,000개로 늘리자 10점 개선. 도구 호출이 8~10단계에서 4단계로 줄었다 · 파트너사 값 |
| 코드 리뷰 회사 | 큰 코드베이스에 대한 개발자 물음에 답하는 딥 리서치 에이전트. 저장소 8곳에서 실제 문답 1,000쌍을 모아 관련 사실을 얼마나 건져 냈는지로 보상 | 6% 개선. 도구 호출과 출력 토큰이 줄었고, 한 샘플에 15회를 넘던 *롱테일이 사라져 2~4회로 모였다 · 파트너사 값. 자막이 회사 이름을 뭉갠다 |
| 엔터프라이즈 코딩 에이전트 회사 | 도구 30개짜리 묶음. 처음에는 시도만 해도 부분 점수를 줬는데 모델이 문체와 말투를 다듬는 쪽으로 흘러, 마지막 코드가 시험을 통과할 때만 보상하도록 바꿨다 | 여러 벤치마크에서 최고 성적. 한 판에 메시지가 100개를 넘던 것이 훨씬 촘촘한 걸음으로 모였다 · 파트너사 값. 자막이 회사 이름을 뭉갠다 |
| GPU 커널 회사 | 빠른 커널을 쓰는 에이전트. 파이토치 프롬프트 100개쯤만 썼다. 새 하드웨어일수록 커널 예시가 적어 어려운 자리라고 말한다 | 보호 장치를 다 두른 뒤 기본 모델보다 확연히 나아졌고, 샘플 셋을 뽑아 그중 최선을 고르는 방식으로 최고 기록을 72% 앞질렀다 · 파트너사 값 |
넷 다 파트너사가 낸 값이고 오픈AI가 따로 잰 것은 아니다. 견줄 기준선이 나온 자리는 커널 쪽 하나뿐이다. 파이토치 기준선과 견줬다.
두 사례에서 붙은 조건도 옮겨 둔다. 코그니션은 판마다 가상머신을 띄워 코드베이스를 관리하고 도구 호출을 돌리고 마지막 답을 채점했다. 판끼리 셸 도구가 서로를 건드리지 않게 떼어 놓은 것이다. 엔터프라이즈 코딩 쪽은 채점이 엄해 보상이 드물어지자 배치를 키우고 계산을 늘려 점수가 붙는 표본을 더 확보했고, 장황함이나 이모지처럼 전문적이지 않게 느껴지는 것에 감점을 주는 심사 모델을 따로 뒀다. 스스로 시험을 돌리고 터미널 출력을 살피고 린트를 확인한 뒤에 성공을 선언하는 에이전트에 보상을 준다.
뚫린 보상을 막은 순서
커널 쪽이 이 발표에서 가장 구체적인 자리다. 표본은 많이 필요 없고 좋은 보상 함수를 대는 것이 관건인데, 그 좋은 보상 함수를 만드는 일이 매우 어렵다고 말한다.
학습 초반에 모델이 보상을 파고드는 것을 봤다. 자취를 훑어 일곱 가지 꼴을 찾았는데, 참조 코드를 그대로 돌려주거나, 커널을 아예 안 내놓거나, 아무것도 안 하는 커널을 내놓는 식이었다. 그 일곱을 잡아 0점을 주는 심사 모델을 만들고, 만들어진 커널이 실제로 있고 실제로 돌려지는지 구문 트리로 확인하는 정적 분석까지 붙였다. 그러고 나서 맞았는지와 파이토치 대비 얼마나 빨라졌는지로 점수를 매겼다.
앞의 엔터프라이즈 코딩 사례도 같은 결의 이야기다. 시도에 부분 점수를 주자 모델이 코드 문체와 말투를 다듬는 쪽으로 갔다.
첫째, 과제가 분명하고 좁아야 한다. 무엇이 성공인지 모호하지 않아야 하고 주관을 다 걷어내야 한다. 채점에 취향이 들어가면 안 된다.
둘째, 학습과 평가 데이터가 프로덕션 트래픽을 그대로 비춰야 한다. 모델이 프로덕션에서 놀라면 안 되고, 도메인 시프트를 스스로 만들어 넣지 말라는 것이다.
셋째, 뒤져 볼수록 나아질 여지가 있어야 한다. 같은 데이터 하나를 여러 번 뽑을수록 최고 성적이 올라가야 하고, 좋은 판과 나쁜 판 사이에 모델이 배울 만한 차이가 보여야 한다.
넷째, 보상 함수가 뚫리면 안 되고 이진보다 연속이어야 한다. 학생에게 부분 점수를 주듯 조금씩 최적에 다가갈 수 있어야 한다는 것이다. 앞 절의 사례가 이 원칙의 양쪽 얼굴이다. 부분 점수를 줬더니 문체를 다듬었고, 안 주면 보상이 드물어졌다.
시작하려면 담당 계정 디렉터에게 연락하라는 말로 끝난다.
값이 전부 파트너사 것이고 재는 자가 없다. 5점이니 10점이니 하는 개선폭이 무슨 척도의 몇 점인지 대지 않는다. 6%도 무엇 대비인지 밝히지 않는다. 최고 기록을 72% 앞질렀다는 것도 어느 벤치마크에서 무엇을 기준으로 잰 값인지가 없다.
비용이 없다. 가중치를 바꾸는 학습에 계산이 얼마나 드는지, 판을 몇 번 굴려야 하는지, 그렇게 만든 모델을 굴리는 값이 기본 모델과 어떻게 다른지가 나오지 않는다. 배치를 키우고 계산을 늘려 보상이 붙는 표본을 확보했다는 대목에서도 얼마나 늘렸는지는 없다.
지연이 나아졌다는 말도 도구 호출 횟수로만 있다. 8~10단계가 4단계가 되고 15회 넘던 것이 2~4회로 모였다는 것은 횟수이고, 실제로 걸린 시간은 대지 않는다.
가장 아쉬운 자리는 보상 함수다. 일곱 가지 해킹을 찾아 막았다는 것은 그때 찾은 일곱이고, 새 꼴이 나오면 다시 훑어야 한다. 그것을 어떻게 알아채는지, 심사 모델 자체가 뚫리면 어떻게 되는지를 발표가 다루지 않는다. 원칙 넷에도 「뚫리지 않게 하라」까지만 있다.
파트너가 안 된 사례도 없다. 넷 다 잘된 이야기고, 이 방법을 쓰다가 접은 경우나 값이 안 나온 과제가 어떤 것이었는지는 나오지 않는다.
용어
학습 더미가 쥐고 있던 것을 한 층씩 바깥으로 내주는 순서. 단순 문답에서 합성 환경으로, 남의 하네스로, 배포 뒤 스스로 고치는 데까지 갈 때마다 무엇을 놓고 무엇을 얻는지 짚음. 네트워크 탓에 도구 호출이 열에 하나꼴로 실패하자 보상 함수를 건드리지 않았는데도 모델이 답을 점점 짧게 내놓은 사례가 나오고, 반대로 샌드박스를 일부러 시간 초과로 죽여 0점을 피하도록 배운 사례도 나옴. 성능·비용 값은 하나도 없다.
▾한줄 코멘트. 세 층을 늘어놓은 발표처럼 보이는데, 실은 한 문장이 층마다 되풀이된다. 학습이 쥐고 있던 통제를 하나씩 내주는 대신 무엇을 잃는가이다. 합성 환경으로 가면 환경을 흉내 내야 하고, 남의 하네스로 가면 같은 과제를 다시 돌려 볼 수가 없다. 발표가 값을 낸 자리도 그 대가 쪽이다. 도구 호출이 열에 하나꼴로 실패하자 모델이 답을 짧게 내놨다는 것 하나뿐이고, 학습이 얼마나 좋아졌는지는 이 발표에 숫자가 없다.
지난 한 해 사이 에이전트가 추론을 꽤 하게 됐고, *하네스를 써서 여러 턴과 도구 호출이 얽힌 긴 과제까지 풀도록 배웠다는 데서 발표가 시작한다. 자막에 발표자가 이름이나 회사를 대는 대목이 없다.
수요가 하나 늘고 있다고 말한다. 기업이 이미 자기 방식대로 에이전트를 부르고 있으면, 그 일을 대신할 커스텀 모델을 학습시켜 달라는 것이다. 그러려면 소스코드를 볼 수 없는 하네스까지 포함해 어떤 하네스에도 맞출 수 있는 포스트트레이닝이 있어야 한다.
발표자는 이것을 사람이 배우는 순서에 견준다. 쉬운 일부터 익히고 그 위에 이해를 쌓아 점점 복잡한 일로 간다는 것이다. 지난 한 해는 한 턴짜리 문답과 긴 합성 환경 과제에서 경험을 쌓았고, 지금 요구되는 것은 남의 하네스에 맞춰 그 위에서 바로 학습시키는 일이다. 하네스가 내 것이 아니라 과제가 어떻게 굴러갈지 정확히 모르는 자리라, 인턴십에 가깝다고 말한다.
학습 한 바퀴가 도는 자리
가장 단순한 설정을 먼저 세운다. 오케스트레이터가 판을 돌리고, 과제 묶음을 쥐고 있다. 지금은 프롬프트와 답 정도로 보면 된다. 수학 문제와 그 답 같은 것이다.
오케스트레이터가 프롬프트를 모델에 보내 답을 받고, 그 답을 채점기로 보내 점수를 매긴다. 채점된 대화가 모이면 학습 엔진이 가중치 갱신을 만들고, 그 갱신이 추론 엔진 몇 대에 맞춰진다. 그러고 나면 오케스트레이터가 새 문제를 다시 보낸다.
여기서 짚어 둘 것은 하나다. 모델을 고치는 데 필요한 것은 정해진 꼴로 채점된 대화뿐이다. 그리고 이 설정에서는 아무것도 학습 더미 바깥에 있지 않다.
한계도 분명하다. 한 턴짜리 과제만 된다.
긴 과제를 하려면 환경을 복잡하게 만들어야 한다. 합성 환경 설정에서는 환경 상태를 상당 부분 학습 더미 바깥으로 내보낸다. 과제 묶음에 도구 명세나 파일시스템 같은 초기 상태가 들어간다.
오케스트레이터는 이제 여러 턴을 차례로 돌린다. 모델에 어떻게 응답할지 묻고, 모델이 도구를 부르면 샌드박스를 불러 환경 상태를 고치거나 읽어 그 결과를 모델에 돌려준다. 다 끝나면 과제 자취 전체가 나오고 그것을 채점기로 보낸다.
이 설정이 지키는 성질이 하나 있다. 되돌려 다시 돌릴 수 있다는 것이다. 어떤 프롬프트든 초기 상태로 되감아 나란히 또는 잇달아 다시 굴릴 수 있다.
되돌리기가 왜 필요한지는 학습 방법 때문이다. 오늘 주로 쓰는 것이 *GRPO인데, 같은 프롬프트로 여러 번 굴린 결과를 서로 견줘 상대적으로 나은 쪽을 올리고 못한 쪽을 내린다. 같은 자리에서 다시 굴릴 수 없으면 견줄 것이 없다.
환경의 흠이 행동을 바꾼다
이 설정의 문제를 발표자는 이름 둘로 부른다. 환경 충실도와 리워드 해킹인데, 같은 문제라고 말한다. 학습한 뒤에 좋아진 것이 실제 배포에서도 이어지려면 환경이 현실을 닮아야 한다.
지난 학습 실행에서 네트워크 문제로 도구 호출이 열에 하나쯤 실패한 적이 있다. 그러자 모델이 점점 짧은 답을 내놓기 시작했다. 길이에 벌점을 준 적이 없는데도 그랬다. 발표자는 인도를 걷는 사람에 견준다. 도구 호출 실패가 인도의 구덩이고, 구덩이가 많으니 오래 걷지 않으려 한다는 것이다. 오래 갈수록 구덩이에 빠져 0점으로 끝날 일이 늘기 때문이다.
반대 방향 사례도 든다. 도구 호출이 오래 걸리는 판에서는, 문제가 어렵다 싶으면 모델이 호출을 잇달아 던져 샌드박스를 시간 초과로 죽이도록 배웠다. 0점을 받느니 그 판을 통째로 버리게 만드는 쪽이 낫기 때문이다.
과제가 복잡해질수록 현실을 그대로 흉내 내기는 어려워지고, 의도하지 않은 작은 실수 하나도 모델에 미묘하고 바라지 않은 행동을 심는다고 말한다.
에이전트는 환경의 분포를 그대로 배우니, 흉내 낼 것 없이 진짜 환경을 학습에 쓰자는 것이 다음 생각이다. 실제로 쓰이는 그 모습 그대로다.
이 구조에서는 거의 모든 것이 학습 더미 바깥에 있다. 남는 것은 모델을 부르는 끝점과, 모델을 오간 요청과 응답을 적어 두는 방법뿐이다. 나머지는 기업이 이미 굴리던 하네스에서 그대로 돈다. 이미 어떤 방식으로 모델을 쓰고 있으면 그 자리에 학습 방법론을 그대로 꽂아 그 쓰임에 맞춰 고쳐 줄 수 있다는 것이 이 방식의 값이다.
대가는 데이터다. 프로덕션으로 갈수록 판이 어떻게 굴러갈지에 대한 통제가 줄고, 데이터가 익숙한 꼴이 아니라 배울 신호도 준다.
발표자가 든 어려움 둘이 여기 있다. 하나는 되돌려 다시 굴릴 수 없다는 것이고, 하나는 지난 데이터로 배워야 한다는 것이다. 로직이 대부분 바깥으로 나가 버려 원하는 규칙이나 자료 구조를 강제할 방법이 없다. 고객지원 대화 기록이 있어도, 그때 다르게 답했으면 고객이 더 만족했을지를 되짚을 길이 없다. 같은 과제를 나란히 여러 번 굴리는 GRPO식 견줌이 그대로는 안 된다.
한 달쯤 전 나온 엔비디아 논문이 이 주제를 다뤘다고 짚는다. 폴라를 소개하면서, 판의 모든 대목을 세세히 관리하던 하네스에서 블랙박스 하네스를 곁에서 듣기만 하는 쪽으로 옮겨 가는 사고를 낸 것이다.
사람은 이런 학습을 한다는 데서 낙관을 꺼낸다. 고객지원 대화를 한 사람이라면 고객 반응을 보고 무엇이 잘못됐고 무엇이 좋았는지 알아 다음에 쓰도록 몸에 익힌다는 것이다.
프런티어 연구 방향으로 셋을 든다.
발표자가 든 연구 방향 셋
| 무엇 | 어디까지 왔나 |
|---|---|
| *자기 증류 | 비교적 새 기법이고 다루는 폭이 좁다. 특정 행동을 심는 데는 됐지만 얼마나 일반화되는지는 열린 물음이라고 말한다 |
| 자동 데이터 파이프라인 | 자취를 뭉텅이로 받아 바라지 않는 행동과 실패 꼴을 자동으로 짚고 학습 데이터를 꾸리는 것. 지금은 사람이 자취를 훑어 실패 꼴을 찾고 데이터셋을 손으로 고른다 |
| 정성 피드백 받아 쓰기 | 프로덕션에서는 점수 대신 「이 대화에 고객이 이런 말을 남겼다」가 온다. 그 글로 모델을 갱신할 길을 찾는 중이고, 자기 증류가 그 길 중 하나라고 말한다 |
셋 다 발표자가 말로 댄 것이고 잰 값은 붙지 않는다.
여기까지를 끝까지 밀면 어떻게 되는지를 마지막에 그린다. 과제 하나를 잘하게 만드는 것이 아니라, 모델을 여러 자리에서 여러 사람과 만나는 하나의 배포로 놓고 그 모든 것에서 스스로를 고치는 일 자체를 과제로 삼는 것이다. 에이전트가 겪는 모든 상호작용이 곧 환경이 되고, 모델이 스스로를 평가할 방법이 있으면 그 상호작용에서 바로 가중치 갱신을 뽑아낸다.
지금 방식의 한계를 두더지 잡기에 견준다. 한 번에 과제 하나, 실패 꼴 하나에 매달리면 새 문제가 튀어나올 때마다 데이터와 환경을 새로 만들어 뛰어야 한다. 환경의 모든 상호작용을 이해하고 스스로 고치는 쪽이면 그 걱정을 안 해도 된다는 것이다.
한 해 전 논문의 문장으로 끝낸다. AI가 새 시기의 문턱에 있고, 경험이 개선의 주된 매체가 되어 오늘날 시스템에 쓰이는 사람 데이터의 규모를 결국 압도하리라는 내용이다.
학습 결과가 없다. 이 방식으로 커스텀 모델을 만들어 얼마나 좋아졌는지, 무엇과 견줘 나아졌는지 값이 하나도 나오지 않는다. 발표에 든 유일한 숫자는 도구 호출 실패율 10%인데 그것도 성능이 아니라 자기네 환경의 흠이다.
리워드 해킹 사례도 앞쪽만 있다. 답이 짧아진 것을 봤다는 데서 멈추고, 얼마나 짧아졌는지, 그때 성적이 얼마나 떨어졌는지, 네트워크를 고친 뒤 되돌아왔는지가 없다. 샌드박스를 죽이도록 배운 사례도 마찬가지다.
가장 큰 구멍은 셋째 층의 해법이다. 되돌릴 수 없고 지난 데이터뿐인 자리에서 어떻게 배우는지가 이 발표의 물음인데, 답은 연구 방향 셋의 이름으로 남는다. 그중 둘은 지금 사람이 손으로 하고 있다고 스스로 밝힌다.
자기 평가도 이름까지만 나온다. 모델이 스스로를 매긴다면 그 점수가 맞는지는 무엇이 보는지, 환경의 흠을 파고들던 그 모델이 제 점수를 파고들면 어떻게 되는지를 발표가 다루지 않는다. 앞 절에서 본 것이 바로 그 행동이라 이 자리가 비어 있는 것이 눈에 걸린다.
용어
17편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
고객사들에서 본 평가 성숙도를 네 단계로 정리함. 예시 입력 열 개로 감을 잡되 매긴 이유를 반드시 남기게 하는 첫 단계부터, 내보낸 자취를 되감아 다시 돌리는 순환, 바깥 시스템을 건드리는 도구가 얽힌 자취를 따로 떼어 재현하기 어렵다는 미해결 문제까지 짚음. 질의응답에서 결정적 채점과 모델 심사 사이를 묻자 「심사 자체를 평가하라」고 답하는 대목이 있음.
▾한줄 코멘트. 평가를 시험 돌리기가 아니라 내보낸 것을 다시 돌리는 일로 보라는 한 줄이 이 발표의 값이다. 여기서 데이터셋을 어디서 구할까라는 물음이 사라진다 — 실제로 오간 자취가 곧 데이터셋이다. 다만 그 자취를 따로 떼어 다시 돌리는 일은 아직 안 풀렸다고 발표자가 직접 말한다.
에이전트 품질을 다루는 회사에서 솔루션 쪽을 이끄는 사람이 발표한다. 컨설팅과 시스템 구축을 열두 해 했다고 밝힌다.
들어온 계기가 이것이다. 고객들이 시제품은 잘 만드는데 그것을 내보내는 데는 그만큼 잘하지 못했다.
재는 이유로 셋을 든다. 평판이 깎이는 것, 값이 너무 드는 것, 그리고 규정과 법에 걸리는 것이다. 그러면서 평가가 막는 쪽만이 아니라 치는 쪽도 된다고 말한다 — 손볼 때마다 얼마나 나아졌는지를 알게 해 주기 때문이다.
단위 시험과 평가는 다르다
무엇을 어디까지 짚나
가장 먼저 못 박는 자리다. 평가는 단위 시험이 아니다.
단위 시험은 빠짐없이 짚는데 평가는 그렇게 못 한다. 틀릴 수 있는 경우가 끝이 없기 때문이다. 다 적으려 들면 시험만 쓰다가 아무것도 못 내보낸다고 말한다.
그래서 망가지는 갈래에서 크게 시작하라고 한다.
이어서 완벽하지 않아도 된다고 말한다. 모델에게 심사를 맡기면 매번 다 맞지는 않는데 그래도 괜찮다 — 방향이 맞기만 하면 된다는 것이다.
평가를 이루는 것으로 셋을 든다. 재는 대상, 그것을 시작시키는 예시 묶음, 그리고 좋고 나쁨을 매기는 함수다.
발표가 든 네 단계
| 단계 | 무엇을 하나 |
|---|---|
| 1 시작 | 감으로 보되 적어 둔다 |
| 2 재서 다스리기 | 사람 지식을 늘려 자동으로 매긴다 |
| 3 복잡해진 것 감당하기 | 바깥 시스템이 얽힌 자취 전체를 본다 |
| 4 더 나아간 기법 | 묶어 보고, 명령줄로 자동으로 돌린다 |
발표자는 이것이 딱딱 끊기는 계단이라기보다 이어진 선에 가깝다고 말한다. 그리고 에이전트가 복잡해지면 필연적으로 이 길을 걷게 된다고 덧붙인다 — 복잡할수록 망가질 자리가 늘기 때문이다.
첫 단계에 대한 태도가 눈에 띈다. 감으로 시작하는 것이 틀린 게 아니다라고 말한다. 이 자리에서 그 말이 험한 말 취급을 받는 것을 알지만 아무것도 없는 것보다는 낫다는 쪽이다.
붙이는 조건이 하나다. 감으로 볼 때 같이 적으라는 것이다.
방법은 단순하다. 예시 입력 열 개쯤을 돌려 무엇이 나오는지 본다. 사람이 좋다 나쁘다를 매긴다. 그리고 더 중요한 것 — 왜 그렇게 매겼는지를 쓰게 한다.
이유가 명확하다. 그 사람 머릿속의 분야 지식을 끄집어내야 나중에 그것을 늘릴 수 있다는 것이다.
여기에 붙는 조언도 실무적이다. 두루 쓰는 채점 화면을 그대로 내밀지 말고 그 사람에게 아주 맞춰 만들라는 것이다.
다음 단계는 그 이유들을 모아 코딩 도구에 돌려 실패 갈래를 뽑아내는 것이다. 왜 나쁘다고 했는지가 그 안에 들어 있다.
갈래를 알고 나면 몇 사람의 안목에 매달리지 않게 그 지식을 늘리려 한다. 하나가 모델에게 심사를 맡기는 것이다.
여기서 경계가 붙는다. 모델에 심사복을 입힌다고 저절로 믿을 만해지지 않는다. 그러니 심사한 결과도 평가해야 한다고 말한다.
전부 모델에게 맡기는 것도 아니다. 코드로 딱 잘라 잡을 수 있는 것이 있다고 말한다. 도구를 너무 많이 부른 경우, 토큰을 너무 많이 쓴 경우다.
질의응답에서 청중이 정면으로 묻는다. 결정적으로 매기는 쪽을 밀어야 하나, 모델 심사를 받아들여야 하나.
답이 또렷하다. 모델 심사를 받아들이되 그 심사가 같은 자리에서 사람이 내릴 판단과 맞는지를 평가하라는 것이다. 심사의 결과는 몇 갈래로 딱 떨어지니 정답 묶음을 만들기 쉽다는 이유를 덧붙인다.
내보낸 것을 되감아 다시 돌린다
이 단계에서 내보낸 데서 뜬 *자취를, 적어도 검수 단계의 것이라도 평가 묶음에 모으라고 말한다.
그리고 이 발표에서 가장 옮겨 갈 만한 한 줄이 나온다. 평가를 시험 돌리기로 생각하지 말고 내보낸 것을 다시 돌리는 일로 생각하라. 결국 확신을 갖고 싶은 대상이 실제로 도는 것이기 때문이다.
셋째 단계로 가면 단순한 모델 호출이 아니라 바깥 시스템과 주고받는 일이 생긴다.
도구를 둘로 나눈다. 맥락을 모아 오는 도구와 만들고 읽고 고치고 지우는 도구다. 뒤쪽이 문제를 만든다.
발표가 짚는 어려움이 둘이다. 하나는 그 입력이 만들어졌던 때 바깥 시스템이 어떤 상태였는지를 되살리기 어렵다는 것이고, 다른 하나는 따로 떼어 돌리면서 그 시스템을 건드리자니 실제 자료를 덮어쓸 수 없다는 것이다.
여기서 솔직하다. 완전히 풀린 문제가 아니라고 지금 말할 수 있다고 한다.
내놓는 방향은 이렇다. 에이전트 자취는 얼마든지 커질 수 있으니 그때 시스템이 어떤 상태였는지를 그 안에 잔뜩 밀어 넣고, 다시 돌릴 때 그것을 함께 넣는다. 저장소에 따라서는 그 시점 기준으로 되물을 수도 있다고 말한다.
잰 값이 하나도 없다. 네 단계를 밟았을 때 무엇이 얼마나 나아지는지가 없다. 고객이 몇 곳이고 그중 몇이 어느 단계인지도 없다.
열 개라는 수의 근거가 없다. 예시 입력을 그만큼 두라고 하면서 왜 그 수인지가 없다.
모델 심사가 사람과 얼마나 맞는지가 없다. 심사도 평가하라면서 자기네가 잰 일치도는 내놓지 않는다.
바깥 시스템 문제의 해법이 방향뿐이다. 자취에 상태를 밀어 넣는다는 것까지만 나오고, 그렇게 해서 얼마나 되살아나는지가 없다.
세부는 부스로 넘긴다. 묶어 보는 기법도 판 이야기도 아래층 부스에서 하겠다며 지나간다.
유효기간을 스스로 밝힌다. 빠르게 바뀌는 판이라 바탕 기술이 바뀌면 같이 자라야 한다고 말한다.
용어
새 모델이 나올 때마다 24시간 안에 반영한다는 노션(Notion) 사례로 평가 성숙도의 기준을 셋으로 정리하고, 새 모델이 나온 지 2주 만에 전에는 10% 수준이라 못 쓰던 기능을 내보냈다는 자체 사례를 보여줌. 프롬프트만 고치게 할 때와 데이터·채점표까지 함께 주고 고치게 할 때가 극적으로 갈렸다는 대조, 도구 출력을 JSON에서 YAML로만 바꿔도 달라졌다는 사례, 그리고 사용자 불만을 평가에 넣으면 과적합이 아니냐는 청중의 반문과 그 답까지 담김.
▾한줄 코멘트. 평가를 회귀 시험이 아니라 미리 던져 두는 그물로 쓰라는 것이 이 발표의 손잡이다. 오늘 모델로는 못 푸는 야심 찬 평가를 미리 만들어 두었다가 새 모델이 나오면 갈아 끼워 보라는 쪽이다. 다만 가장 중요한 대조 — 프롬프트만 고칠 때와 판 전체를 고칠 때 — 에 수를 대지 않는다.
평가와 관측을 파는 회사 쪽 사람이 발표한다. 자막 안에서 자기 이름을 대지는 않는다.
좋은 평가는 공짜로 오지 않고 만들어 넣어야 한다고 연다. 지어낸 데이터와 인터넷에서 주워 온 채점 방식으로는 안 된다는 것이다.
그래서 잘 되고 있는지 가늠할 신호 셋을 든다.
평가가 값을 내고 있다는 신호
| 신호 | 무엇을 보나 |
|---|---|
| 24시간 | 새 모델이 나오면 그 안에 제품에 반영해 내보낼 수 있나 |
| 불만이 들어오는 길 | 사용자가 불평했을 때 그것을 평가에 넣는 길이 뚜렷한가 |
| 지키기가 아니라 치기 | 되돌아간 것을 잡는 데만 쓰나, 아니면 무엇을 풀 수 있는지 미리 재는 데 쓰나 |
첫째 신호에는 실제 사례를 든다. 어느 회사가 최근 여러 번의 모델 출시 때마다 24시간 안에 새 모델을 넣었다는 것이다.
둘째에는 경고가 붙는다. 그 길이 없으면 쓸모 있는 정보가 그냥 허공으로 사라진다.
두 번째 교훈은 데이터다. 현실과 딱 맞는 데이터셋은 없다고 못 박는다. 시합용 수학 문제 같은 몇몇 예외뿐이다.
가장 좋은 데이터셋은 실제로 벌어지는 것과 계속 맞춰 나가는 것이고, 그 일을 잘하려면 손이 꽤 든다고 말한다.
채점표도 같다. 함께 일하는 회사 중 충분히 앞선 곳은 하나같이 자기 채점 함수를 직접 짜고 계속 고친다고 말한다.
여기서 이 발표에서 가장 잘 벼려진 한 줄이 나온다. 채점표는 그 애플리케이션의 명세다. 그러니 남이 만든 범용 채점표를 그대로 쓰면 그것은 내 프로젝트가 아니라 남의 프로젝트를 위한 명세가 된다.
프롬프트를 채우는 것은 누구인가
세 번째 교훈이다. 프롬프트를 시스템 프롬프트가 아니라 맥락 전체로 보는 쪽으로 옮겨 갔다고 말한다.
실제 에이전트 자취 몇 개를 뜯어 보니 평균적인 프롬프트에서 토큰의 대부분이 시스템 프롬프트에서 온 것이 아니었다. 도구 정의와 도구가 돌려준 것이 자리를 차지한다.
그래서 도구를 지금 있는 API를 그대로 비춘 것으로 만들면 안 된다고 말한다. 모델이 보고 싶어 하는 모양으로 짜야 한다는 것이다.
구체적인 사례가 하나 나온다. 사내 프로젝트에서 도구가 내놓는 형식을 JSON에서 YAML로 바꾼 것만으로 눈에 띄게 달라졌다. 이유는 토큰이 덜 들고 모델이 훑기 쉬워서다.
갈린 자리가 여기다. 코드가 보기에 둘은 같은 구조화 데이터인데 모델이 보기에는 아주 다르다.
네 번째 교훈이다. 어느 기능을 두고 몇 달마다 같은 평가를 돌려 왔다고 말한다. 한동안 최고이던 모델이 있었고 그다음이 조금 나았고 그다음이 훨씬 나았다.
그러다 10% 수준이라 사용자에게 내놓을 수 없던 기능이 갑자기 쓸 만해졌다. 새 모델이 나온 지 2주 만에 그 기능의 첫 판을 내보낸다고 말한다.
그럴 수 있었던 이유는 하나다. 평가를 미리 돌려 두고 있었다.
그래서 권한다. 오늘 모델로는 아직 안 될 만큼 야심 찬 평가를 만들어 두고, 새 모델이 나오면 바로 갈아 끼워 볼 수 있게 짜 두라는 것이다. 모델 공급자를 바꿔도 코드를 안 고쳐도 되게 사이에 무언가를 끼워 두라고 덧붙인다.
솔직한 대목도 있다. 어느 회사가 막 내놓은 모델이 이 벤치마크에서 1%를 받아 아예 표에 넣지도 않았다고 말한다. 그러면서 오늘 나온 것은 훨씬 나을 수도 있고 이 발표가 끝나면 몇 번 두드려 확인할 수 있다고 덧붙인다.
프롬프트만 고칠 때와 판을 고칠 때
무엇을 넘겨주고 고치라 했나
다섯 번째다. 판을 셋으로 본다. 평가에 쓰는 데이터, 할 일(프롬프트와 에이전트 얼개와 도구), 채점 함수다.
같은 벤치마크로 두 번 돌렸다고 말한다. 한 번은 프롬프트만 주고 이것을 고치라 했고, 한 번은 프롬프트와 데이터와 채점표를 함께 주고 이 판을 고치라 했다. 차이가 극적이었고, 다시 한 번 못 쓰던 것이 쓸 수 있는 것으로 바뀌었다.
이어서 그 일을 자동으로 해 주는 자사 기능을 그날부터 연다고 소개한다. 프롬프트를 고쳐 달라거나, 이 데이터셋에서 빠진 것이 무엇이냐거나, 왜 점수가 낮거나 높으냐거나, 지금 것보다 더 깐깐한 채점표를 짜 달라는 요청이 잘 먹혔다고 말한다.
닫는 말이 세다. 새 모델이 나오면 알아채는 데서 그치지 말고 지금 얼개를 통째로 뜯어내 완전히 새 얼개로 갈아 끼울 각오까지 하라는 것이다.
이 발표에서 가장 값나가는 대목이 질의응답에 있다.
한 사람이 묻는다. 사용자 피드백을 전부 평가로 넣으면 *과적합이 되는 것 아니냐.
답이 뒤집혀 있다. 사용자 피드백 없이 데이터셋에 과하게 맞춰지는 쪽이 더 걱정된다는 것이다. 그러면서 자기네 제품은 피드백을 자동으로 데이터셋에 넣지 않는다고 밝힌다 — 안목 있는 사람이 골라 넣기를 바란다는 이유다.
다른 사람이 자기 현장 이야기를 보탠다. 세금 답변에 사용자가 싫다고 누르는데, 그래서 「답은 맞는데 그냥 마음에 안 든다」를 따로 누를 자리를 만들었다고 말한다.
또 다른 사람은 모델을 여러 번 바꿔 봤지만 큰 차이를 못 느꼈다고 말한다. 발표자는 모든 벤치마크가 그런 것은 아니라고 답한다. 영화 대사로 어떤 영화인지 맞히는 평가는 오래전 모델부터 계속 잘 됐다는 예를 든다.
가장 중요한 대조에 수가 없다. 프롬프트만 고칠 때와 판 전체를 고칠 때가 극적으로 갈렸다고 말하는데, 두 값이 얼마였는지가 없다.
JSON에서 YAML로 바꾼 사례도 마찬가지다. 눈에 띄게 달라졌다고만 하고 무엇이 얼마나 달라졌는지가 없다.
10%가 무엇의 10%인지 없다. 어떤 채점표로 잰 값인지, 얼마가 되어야 쓸 만한지가 없다.
1%도 한 벤치마크의 값이다. 발표자 스스로 이것이 모든 벤치마크에 해당하지 않는다고 말한다. 그러니 그 수로 모델의 우열을 읽으면 안 된다.
자막이 모델 이름을 뭉갠다. 판을 견주는 대목에서 이름과 번호가 여러 군데 어긋나 있어, 어느 판이 어느 판보다 나았다는 순서만 남고 정확한 이름은 원문에서 갈린다.
24시간과 2주는 남의 값과 자기 값이다. 24시간은 다른 회사 사례이고 2주는 자기네 것이다. 견줘서 얻은 값이 아니다.
용어
단일 호출에서 체인, 루프, 그래프를 거쳐 다시 루프로 돌아온 아키텍처 전환마다 평가가 놓치는 실패 자리가 어떻게 달라졌는지 짚음. 같은 평가를 K번 돌려 한 번이라도 되는지 보는 지표와 몇 번이나 되는지 보는 지표가 왜 서로 다른 것을 재는지, 두 수가 왜 하나로 안 합쳐지는지가 나옴. 마지막 대목은 발표자 회사의 군집 분석 기능 소개라 잰 값이 없다.
▾한줄 코멘트. 모델이 좋아지면 예전에 잘 만든 구조가 짐이 된다는 이야기다. 못 미덥던 시절에 순서를 시스템이 쥐도록 짜 둔 것이, 도구 호출이 믿을 만해지자 새 능력을 못 쓰게 막는 쪽이 됐다는 대목이 값나가는 자리다. 다만 이 발표에는 잰 값이 하나도 없고 뒤 3분의 1은 자기 회사 기능 소개다.
평가와 관측을 파는 회사의 현장 CTO가 발표한다.
시연을 만드는 일은 쉬운데 내보낼 만한 물건으로 만드는 일이 어렵다는 것을 다들 겪었을 거라고 연다. 어려운 이유가 잘못 만들어서가 아니라 둘러싼 것들이 빠르게 바뀌기 때문이라고 말한다.
판이 바뀔 때마다 그것이 조금 나아진 것이 아니라 계단처럼 뛰었다고 말한다. 그래서 지금은 고쳐 쓰는 단계에서 아예 바닥을 다시 까는 단계로 넘어가고 있다는 것이다.
새 모델을 그냥 끼워 넣는 것으로 안 되는 이유가 여기서 나온다. 지금 시스템은 예전 모델의 못하는 자리를 전제로, 그것을 피해 가는 논리를 잔뜩 넣어 지은 것이기 때문이다.
루프에서 그래프로, 다시 루프로
발표는 실제로 쓰는 운영 에이전트 하나를 놓고 판마다 무엇이 달라졌는지 짚는다.
맨 처음은 프롬프트 하나에 호출 하나였다. 그다음이 꺼내 와서 붙여 넣는 구조다. 입력을 읽고, 그것으로 자료를 찾고, 맥락을 만들어 모델에 넘긴다.
그다음이 모델이 스스로 다음 걸음을 정하는 루프다. 사용자의 뜻이 채워지거나 반복 예산이 다할 때까지 돈다. 발표는 여기서 솔직하다 — 생각은 아주 신났는데 약속한 것을 못 지켰다. 도구 인자를 틀리고 순서를 못 짰기 때문이다.
그래서 팀들이 순서와 실행과 계획을 시스템 쪽에 직접 짜 넣는 그래프로 옮겼다. 정해 둔 쓰임에는 잘 돌았는데, 정해 둔 범위 밖의 요청이 들어오면 무너지기 시작했다. 그것을 메우려 갈래를 계속 붙이자 터질 자리가 크게 늘었다.
그다음이 이 발표의 뒤집기다. 도구 호출이 믿을 만해지고 긴 일을 끌고 가는 힘이 붙자, 그래프로 짠 시스템들이 그 새 능력을 못 쓰게 됐다. 그래서 루프를 다시 짰고 이번엔 돌기 시작했다.
판마다 평가가 무엇을 봤나
| 판 | 무엇을 쟀나 |
|---|---|
| 호출 하나 | 마지막 답이 맞나, 지어내지 않았나 |
| 꺼내 붙이기 | 잘못 읽었나, 엉뚱한 것을 꺼냈나, 너무 많이 넣었나 |
| 그래프 | 전체 순서만이 아니라 마디마다 따로 |
| 다시 루프 | 한 번이 아니라 여러 번 돌린 분포 |
힘과 믿음직함은 다른 수다
같은 평가를 K번 돌려 무엇을 보나
루프로 돌아오자 새 문제가 생겼다. 같은 입력을 몇 번 돌리면 지나는 길이 매번 딴판이었다.
그래서 재는 단위가 바뀐다. 한 번 재는 것이 아니라 같은 평가를 K번 돌려 그 분포를 본다.
여기서 두 수가 갈린다. K번 중 한 번이라도 되는지는 그 일을 할 힘이 있느냐를 재는 것이고, K번 중 몇 번이나 되는지는 믿을 만하냐를 재는 것이다. 둘은 다른 것을 재므로 하나로 합쳐지지 않는다.
요즘 것은 루프를 도는 모델 하나가 아니라고 말한다. 둘레에 부품이 붙었다.
붙은 부품
| 부품 | 무엇을 하나 |
|---|---|
| 기억 | 한 자리 안에서도, 자리를 건너서도 넣고 꺼낸다 |
| 코드 실행 칸 | 짠 것을 가둬 놓고 돌려 본다 |
| 바깥 붙임 | 도구와 스킬 묶음에 닿는다 |
그러니 지난 판의 평가를 그대로 쓰면 새로 생긴 터질 자리를 못 본다. 시스템을 반쯤만 덮게 된다는 것이다.
그래서 발표가 세우는 말이 이것이다. 오래가는 자산은 시스템이 아니라 평가다 — 시스템이 어떻게 굴러야 하는지를 적어 둔 것이 평가이기 때문이다.
내보낸 뒤의 자료를 걷어 평가에 되먹이는 *돌개바퀴 그림에는 다들 머리로는 동의한다고 말한다.
그런데 실제로는 많은 팀이 그 일을 안 해서 평가가 굳은 채로 남는다고 짚는다. 이 발표에서 가장 아픈 한 줄이다.
판이 갈릴 때는 이미 아는 실패만이 아니라 새로 생길 실패에도 빛을 비출 장치가 필요하다고 말한다. 여기서부터 자기 회사 기능 소개로 넘어간다 — 내보낸 자료 전체를 묶어 보아 예상 못 한 실패 갈래를 찾아 준다는 것이다.
닫는 말은 이렇다. 모델은 계속 바뀔 것이고 아직 평평해지지 않았다. 그러니 앞으로도 에이전트에 큰 수술을 계속하게 될 것이라고 말한다.
잰 값이 하나도 없다. 판이 바뀌며 무엇이 얼마나 나아졌는지, 그래프에서 루프로 돌아왔을 때 무엇이 얼마나 달라졌는지가 나오지 않는다.
K를 얼마로 잡아야 하는지가 없다. 여러 번 돌려 분포를 보라고 하면서 몇 번이 적당한지, 그만큼 돌리는 값이 얼마인지가 없다.
「범위 밖이면 무너진다」의 근거가 없다. 그래프가 무너지기 시작했다고 말하는데 얼마나 자주 그랬는지가 없다.
군집으로 찾아 준다는 기능에 사례가 없다. 무엇을 실제로 찾아냈는지, 그것이 놓치고 있던 것이었는지가 나오지 않는다.
견줄 기준선이 없다. 이 방식과 다른 방식을 나란히 놓고 잰 자리가 한 군데도 없다.
용어
평가가 왜 흩어지고 검증도 안 되며 소수만 만드는지 세 가지로 짚고, 그것을 고치려는 네 갈래 시도를 봄. 경쟁 연구소가 자기 모델에만 압축을 켜서 같은 벤치마크를 더 좋은 점수로 다시 낸 일, 포커에서 뜻있는 차이를 얻으려 40만 판을 돌린 값, 앞선 여섯 모델이 서로 몇 퍼센트포인트 안쪽인데 하네스를 바꾸면 22퍼센트포인트까지 갈린다는 인용, 그리고 튀르키예 폐수처리 기사가 자기 일로 만든 평가 사례가 나옴.
▾한줄 코멘트. 평가를 만드는 사람이 3만 명인데 그 결과를 쓰는 사람이 3천만 명이라는 대비가 이 발표의 손잡이다. 값나가는 대목은 인용으로 끌어온 한 줄 — 모델을 바꿀 때보다 하네스를 바꿀 때 점수가 더 갈린다는 것이다. 다만 발표자 본인이 그것을 확인해 보지는 않았다고 그 자리에서 밝힌다.
두 사람이 나온다. 한 명은 벤치마크 쪽 제품을 맡고, 한 명은 소프트웨어를 만든다고 밝힌다. 3천만 명 넘게 쓰는 커뮤니티라고 소개하며, 지난 두 해를 이 문제에 썼다고 말한다.
첫째, 흩어져 있고 금세 낡는다. 새 벤치마크가 하루에 열 개 넘게 나오는데 그것을 찾는 방법이 논문 목록을 몇 시간씩 훑는 것뿐이다. 게다가 만든 사람들이 다음 논문으로 넘어가 버려 순위표가 시간이 갈수록 뜻을 잃는다.
둘째, 속이 안 보이고 다시 해 볼 수도 없다. 사례가 구체적이다. 어느 연구소와 함께 벤치마크를 냈더니 경쟁 연구소가 결과가 마음에 안 든다며 직접 돌려 훨씬 좋은 값을 냈다. 갈린 이유는 자기 API가 주는 압축 기능을 자기 모델에만 켰기 때문이었다. 이쪽은 어느 모델에도 그것을 안 켰다.
셋째, 만드는 사람이 너무 적다. AI 연구자가 3만 명 남짓인데 기술 쪽 사람은 3천만 명이라고 말한다. 다만 이 수는 검색해서 얻은 것이라고 스스로 밝힌다.
이어지는 논리가 이 발표의 뼈대다. 재지 않는 것은 얼마나 잘하는지 알 수 없고, 알 수 없으면 올라갈 수도 없다. 그래서 모델이 잘하는 데와 못하는 데가 더 들쭉날쭉해질 것이라고 말한다.
사례 하나를 든다. 튀르키예에 사는 20년 경력의 폐수처리장 기사가 자기 경험으로 평가를 만들었다.
계기가 무겁다. 그 나라에서 안전 절차를 지키지 않아 사람이 죽은 사고가 있었고, AI가 자기 일에서 그것을 도울 수 있는지 재려고 만들었다는 것이다.
그러면서 짚는다. 이 자료는 웹 어디에도 없고, 어느 연구소의 관심 밖이다. 지금으로서는 돈이 안 되기 때문이다.
네 갈래
| 갈래 | 무엇인가 |
|---|---|
| 해커톤 | 누구나 열 수 있게 판을 깔아 준다 |
| 에이전트 시험 | 내 에이전트에 한 줄만 붙이면 시험을 치르고 점수가 나온다 |
| 게임 아레나 | 모델끼리 겨루게 해서 순위를 매긴다 |
| 벤치마크 | 누구나 만들고 돌리고 나눌 수 있게 한다 |
해커톤은 지금 딥마인드 쪽 팀과 함께 돌리는 중이라고 말한다. 몇 주 전 낸 논문이 인지 능력을 열 갈래로 나눴는데 그중 다섯에 집중해 열었다는 것이다.
여기서 실무적인 어려움이 나온다. 참가자가 천 명이면 자료를 어디에 두고 모델에 어떻게 닿게 할지가 문제다. 형편이 어려운 참가자는 앞선 모델들에 닿으려고 열쇠 다섯 개 값을 낼 수 없다고 짚는다.
또 하나. 새로움과 창의성을 판정하는 데는 에이전트가 아직 서툴러서 사람 전문가가 필요한데, 전문가끼리 판단을 맞추는 것부터 쉽지 않다고 말한다.
에이전트 시험은 지난주에 낸 것이라고 밝힌다. 이름을 원래 다르게 붙였다가 상표 문제로 바꿨다고 한다. 일주일 만에 에이전트 500개 넘게 시험을 치렀다.
난이도를 두고 하는 말이 정직하다. 너무 어려우면 끝내는 사람이 없고 너무 쉬우면 쓸 만한 신호가 안 나온다.
앞으로의 쓸모로 하나를 든다. 에이전트를 받은편지함이나 계정을 맡기러 내보내기 전에 안전 쪽으로 기준선을 잡는 시험이다.
게임 아레나는 벤치마크가 금세 *포화되는 문제에 대한 답이다. 서로 겨루게 하면 한쪽이 늘 다른 쪽과 붙을 수 있어 끝이 안 난다는 것이다.
크게 공들인 게임으로 셋을 든다. 속이는 능력을 보는 인랑, 무작위를 다루는 포커, 그리고 체스다.
포커에서 나온 관찰이 재미있다. 어떤 모델은 판돈을 다 거는 것을 즐긴다. 그리고 뒤집힌 대목 — 최신 세대 중 일부는 위험을 더 피하려 들어서 포커를 더 못한다.
값도 나온다. 뜻있는 차이를 얻으려고 포커를 40만 판 돌려야 했다.
만드는 순서도 밝힌다. 게임을 고르고, 모델이 실제로 둘 수 있는지 보고, 프롬프트가 공정해지도록 오래 다듬는다. 그 뒤 껍데기를 짜고 돌리고, 겨룰 짝을 정하는 데는 짝지어 견주는 방식을 쓴다. 오간 대화는 자료로 공개하고 *엘로 점수와 함께 낸다. 전부 열려 있다고 말한다.
스스로 아쉬워하는 대목도 있다. 모델끼리 두는 것을 지켜보는 일이 좀 지루해진다는 것이다. 그래서 사람들이 프롬프트를 내는 식으로 끌어들일 방법을 궁리 중이라고 한다.
모델보다 하네스가 더 나눈다
무엇을 바꿀 때 점수가 더 갈리나
이 발표에서 가장 값나가는 한 줄이 여기 있다. 남의 글에서 끌어온 것이다.
어느 코딩 벤치마크에서 앞선 모델 여섯이 서로 몇 퍼센트포인트 안쪽이었다. 그런데 정말 크게 나눈 것은 어느 하네스 안에서 도느냐였고 그 차이가 22퍼센트포인트였다.
발표자는 곧바로 단서를 단다. 자기가 확인해 본 것은 아니고 그럴듯해 보인다는 것이다.
시간을 건너 견주는 일도 어렵다고 말한다. 옛 모델은 사라지고 새 모델이 오는데, 어떤 창구는 뒤에서 실제로 무엇이 도는지 정직하게 알려 주지 않는다고 한다.
평가가 쌓이는 세 칸
벤치마크 쪽은 내보내기 전에 쓰는 판이 아니라 사람들을 끌어들이는 판이라고 못 박는다.
짜임은 단순하다. 코드로 못 박는 단언을 쓰고, 판정이 어려운 자리에는 모델을 부른다. 그것들이 과제로 묶이고 과제들이 다시 벤치마크로 묶인다.
직전 발표자가 만든 과제를 예로 든다. 그림 파일을 읽어 다시 그려 보게 하는 것이고, 글자가 맞는지 따위를 단언으로 걸었다.
어려움도 밝힌다. 사람들이 평가를 만들게 부추기는 일 자체가 어렵다. 해커톤과 점수·훈장 같은 장치가 도움이 됐다고 한다.
마지막 말이 이 발표에서 가장 무겁다. 모델 하나를 재던 데서 에이전트가 무엇을 하는지로 옮겨 오면서, 우리가 대체 무엇을 재고 있는지 알기가 훨씬 어려워졌다.
22퍼센트포인트는 남의 값이고 확인 안 했다. 발표자가 직접 그렇게 말한다. 어느 벤치마크 하나에서 나온 값이라는 것도 새겨야 한다.
3만과 3천만은 검색해서 얻은 수다. 발표자가 그 출처를 그렇게 밝힌다.
시험 500개의 속이 없다. 무엇을 치렀고 점수가 어떻게 갈렸는지가 없다.
40만 판이 무엇을 말해 주는지가 없다. 그만큼 돌려야 했다는 것만 나오고 그래서 무엇이 갈렸는지, 값이 얼마나 들었는지가 없다.
폐수처리 사례의 결과가 없다. 그런 평가를 만들었다는 것까지만 나오고 모델이 거기서 어땠는지가 없다.
압축을 켜고 낸 그 사건의 뒤가 없다. 다시 맞춰 돌렸는지, 어느 쪽이 맞았는지가 나오지 않는다.
용어
태그로 감싸는 것을 빠뜨려 성능을 못 내는 흔한 실수, 긴 문서에서 물을 때 물음을 맨 끝에 두는 쪽이 맨 앞보다 훨씬 잘 맞았다는 사내 실험, 적어 놓은 추론이 실제 추론과 어긋날 수 있어 물음을 쪼개는 쪽으로 가는 이유가 나옴. 학습 뒤에 나온 문서를 골라 미리 아는 것으로 맞히지 못하게 한 실험 설계도 구체적임. 다만 두 판 앞의 모델을 두고 한 이야기라 지금 그대로 옮기기 전에 다시 재야 함.
▾한줄 코멘트. 적어 놓은 추론이 실제로 밟은 길과 다를 수 있다는 대목이 이 발표에서 가장 오래 남는다. 그래서 한 자리에서 생각을 적게 하는 대신 물음을 쪼개 따로 답하게 하고 모으는 쪽을 든다. 다만 두 판 앞의 모델을 두고 한 이야기라, 태그니 물음 자리니 하는 요령은 지금 판에서 다시 재고 옮겨야 한다.
앤스로픽에서 모델 쪽 일을 한다는 사람이 발표한다. 하는 일의 대부분이 사람들과 짝을 지어 프롬프트를 함께 만지는 것이라고 말한다.
깔아 두는 설명은 이렇다. 모델은 앞말이 주어졌을 때 다음 말의 확률을 셈하고, 안에 든 장치가 입력의 어느 자리를 볼지 정한다. 그러니 잘 짠 프롬프트는 그 눈길이 맞는 자리를 향하게 하는 것이다.
그리고 값 이야기가 붙는다. 프롬프트로 나아지는 이유는 다시 학습시키지 않고 쓰는 순간의 계산만으로 되기 때문이다.
이 일을 창작 글쓰기의 한 갈래로 부른다. 대학에서 창작 수업의 글제 과제를 하던 일에 빗댄다.
막히는 자리를 셋으로 나눈다.
원하는 것은 아는데 모델에서 가장 좋은 것을 끌어내는 법을 모르는 경우, 원하는 것을 어렴풋이만 알아 설명하지 못하는 경우, 그리고 원하는 것 자체를 모르는 경우다.
셋째와 둘째에 대한 처방이 같다. 예시를 여럿 준다. 다만 조건이 붙는다 — 서로 다르게, 그리고 가장자리 경우까지 담아서 준다.
이 일을 가설을 세워 보는 일이라고 부른다. 이걸 할 수 있나 없나를 묻고 시험해 보는 것이고, 되풀이할수록 그 모델의 강점과 약점이 손에 잡힌다는 것이다.
가장 자주 짚는 실수가 하나 있다. 아무것도 태그 안에 넣지 않는 것이다. 그래서 성능을 못 낸다고 말한다.
왜 그런지도 밝힌다. 처음 맞춰 학습시킨 형식이 그것이었기 때문이다. 나중에야 고객들이 다른 형식도 필요로 한다는 것을 알게 됐다고 말한다.
청중이 다른 형식과 견줘 봤느냐고 묻자 이렇게 답한다. 태그를 쓰면 거의 다 맞고 다른 형식은 그만큼은 아니다.
첫 사례는 옷을 골라 주는 일이다. 아무 안내 없이 관련 있는지만 묻는 *제로샷으로 시작하고, 이게 완벽한 물건은 아니다라고 그 자리에서 인정한다.
그다음 둘을 얹는다. 하나는 판단 전에 생각할 자리를 따로 주는 것이고, 다른 하나는 예 아니오 대신 1에서 10으로 점수를 매기게 하는 것이다. 기준을 함께 적어 준다 — 이를테면 여름에 겨울옷을 권하지 말라는 식이다.
생각을 적게 할 것인가 쪼갤 것인가
한 자리에서 풀 것인가 쪼갤 것인가
이 발표의 가운데다.
생각을 적게 하는 방법은 적어 놓은 추론이 실제 추론을 그대로 비춘다는 것을 전제로 한다. 그런데 최근 논문에서 늘 그렇지는 않다는 것을 찾았다고 말한다.
대안이 쪼개는 쪽이다. 물음을 혼자서도 뜻이 통하는 작은 물음들로 나누고, 각각을 따로 떼어 놓은 자리에서 답하게 한 뒤, 그 답들을 한자리에 모아 다시 묻는다.
효과도 든다. 그렇게 하면 한쪽으로 쏠리는 정도가 준다는 것이다. 답하기 과제에서 앞의 방법에 가까운 성능을 내면서 적어 놓은 것과 실제가 어긋나는 정도는 나아졌다고 말한다.
쪼갤 때 붙이는 조건도 실용적이다. 필요 이상으로 쪼개지 말라는 것이다.
긴 문서에서 찾아내나 재는 법
사내 실험을 소개한다. 목표는 긴 문서에서 특정한 것을 제대로 떠올릴 확률을 높이는 방법을 재는 것이었다.
설계가 깔끔하다. 고른 문서가 학습을 끊은 시점보다 뒤의 것이다. 미리 알고 있는 것으로 맞히는 일을 막으려는 것이다.
방법은 문서를 토막 내고 토막마다 객관식 다섯 문제를 만들되 오답을 셋 붙인다. 그러고 그 토막들을 무작위로 다시 붙여 아주 긴 문서로 만들어 시험한다.
무엇을 바꿔 가며 쟀나
| 바꾼 것 | 결과 |
|---|---|
| 물음을 앞에 둘까 뒤에 둘까 | 뒤에 두는 쪽이 훨씬 잘 맞았다 |
| 관련 대목을 끌어와 적게 할까 | 조금 느려지지만 더 잘 맞았다 |
| 예시를 몇 개나 줄까 | 없음·둘·다섯으로 나눠 쟀다 |
| 문서를 얼마나 길게 | 7만과 9만 5천 토큰으로 나눠 쟀다 |
| 어느 모델에 | 작은 쪽에서 올라간 폭이 더 컸다 |
왜 뒤가 나은지는 가설만 댄다. 끝쪽에 더 눈길이 간다는 것이고, 가운데를 잊는다는 논문이 있지만 그 논문을 읽지 않았고 여기에 그대로 들어맞는지도 확인하지 않았다고 밝힌다.
발표가 든 것들
| 요령 | 무엇을 하나 |
|---|---|
| 말을 미리 넣어 두기 | 답하는 자리에 「알겠다」를 미리 적어 지시를 되짚게 한다 |
| 모른다고 말하게 두기 | 근거가 없으면 없다고 하게 해서 지어내는 것을 막는다 |
| 좋은 예시 고르기 | 실제로 다룰 것과 닮았나, 충분히 다양한가, 답 갈래마다 고른가 |
| 뉘앙스를 못 잡을 때 | 나쁜 예를 함께 주고, 흔한 오해를 짚어 준다 |
| 여러 번 뽑아 고르기 | 같은 물음을 여러 번 뽑아 가장 흔한 답을 고른다 |
| 둘을 견주게 하기 | 두 답이 서로 맞는지 다른 모델에게 묻고, 어긋나면 버린다 |
여러 번 뽑아 고르는 방법은 셈이 딱 떨어지는 일에 주로 쓸모 있다고 단서를 단다.
마지막 물음에 답하며 앞을 내다본다. 프롬프트 짜는 일은 남을 것이고, 지어낸 자료를 쓰는 일이 늘 것이며, 사람이 매기는 대신 모델이 매기는 쪽이 더 크게 키울 수 있는 길이라고 말한다.
두 판 앞의 이야기다. 여기 나오는 모델 이름과 맥락 길이가 지금 것이 아니다. 발표자 스스로도 그때는 옛 판을 썼고 새 판이 훨씬 나을 것이라고 말한다. 그러니 태그니 물음 자리니 하는 요령은 지금 판에서 다시 재야 한다.
거의 다 맞는다는 말에 수가 없다. 태그를 쓰면 그렇다고 하는데 무엇을 몇 개나 재서 나온 값인지가 없다.
뒤에 두는 쪽이 낫다는 것에도 값이 없다. 얼마나 나은지가 없고, 왜인지는 본인이 확인 안 했다고 밝힌다.
쪼개는 방법의 값이 없다. 한 자리에서 푸는 쪽에 「가까운」 성능이라고만 하고 얼마나 가까운지가 없다. 대신 몇 번을 부르게 되는지, 그만큼 값이 얼마나 드는지도 없다.
작은 쪽에서 더 올랐다는 것도 폭이 없다. 어느 쪽이 결국 더 잘했는지도 나오지 않는다.
세부는 블로그와 문서로 넘긴다. 실제 프롬프트는 글에서 보라며 지나간다.
용어
디자인·글쓰기·성격처럼 정답이 없는 일을 채점할 수 있는 것으로 쪼개는 방법. 수학에서는 가장 그럴듯한 답이 곧 정답인데 취향에서는 그 가운데 답이 슬롭이 되는 이유와, 전문가끼리 판단이 갈릴 때 그것을 나쁜 데이터로 버릴지 좋은 데이터로 남길지 정하는 기준이 나옴. 「훌륭하게 만들라」를 「브랜드에 맞게 만들라」로 바꾸면 문제가 정의 가능해진다는 대목이 이 발표의 손잡이다.
▾한줄 코멘트. 「훌륭하게 만들라」는 채점할 수 없지만 「이 브랜드에 맞게 만들라」는 채점할 수 있다는 한 수가 이 발표의 전부다. 값나가는 대목이 하나 더 있다 — 전문가끼리 판단이 갈릴 때 어떤 항목에서 갈리느냐로 좋은 데이터와 나쁜 데이터를 나눈다는 자리다. 잰 값은 하나도 없다.
취향을 다루는 회사를 세운 사람이 발표한다. 얼마 전에야 밖으로 나온 회사라고 밝힌다.
AI가 코딩과 수학에는 꽤 능해졌는데 디자인·창작 글쓰기·성격·감정 다루기에는 크게 뒤처져 있다고 연다.
여기서 뒤집는 말이 나온다. 코드가 잘 되는 것은 모델의 성질이 아니라 코드의 성질이라는 것이다. 코드는 쪼개지고, 확인되고, 돌아간다.
그래서 오늘 다룰 성질 둘을 든다. 첫째는 잴 수 있는 만큼만 할 수 있게 된다는 것이고, 둘째는 뒤에 나올 가운데로 모인다는 것이다.
좋은 디자인이 무엇이냐고 물으면 답이 갈린다고 말한다. 누구를 위한 것인지, 어떤 자리인지에 따라 다르다. 같은 장표가 스타트업에는 훌륭하고 금융회사에는 부적절할 수 있다. 게다가 좋음의 기준이 시간과 함께 바뀐다 — 코드와 수학에는 없는 성질이다.
그래서 문제를 바꿔 든다. 「훌륭한 것을 만들라」는 어렵고 「브랜드에 맞는 것을 만들라」는 훨씬 정의하기 쉽다.
모호한 일을 채점할 수 있게 만들기
브랜드를 빛깔과 글꼴과 움직임과 결로 쪼갠다. 쪼갠 것이 *그라운드 트루스가 된다.
그러고 에이전트에게 그 브랜드를 따르되 완전히 새로운 페이지를 만들라고 시킨다. 채점은 원본과 견주는 것이 아니라 쪼개 둔 조건을 지켰나로 한다.
모델에게 심사를 맡기는 것은 어렵다고 말한다. 점수를 따먹으려 드는 일이 많고 지어내는 무늬도 있다는 것을 알고 있다고 한다.
디자인 안에서도 자리마다 다르다
| 자리 | 성격 |
|---|---|
| 보이는 것 · 줄 맞춤 · 글꼴 | 객관에 가깝다. 기계로 잴 여지가 있다 |
| 스타일이 맞나 · 창의성 | 판단하기 훨씬 어렵다 |
프로그램으로 확인할 수 있는 쪽에 가까울수록 강화학습으로 다루기 좋다고 말한다. 반대로 브랜드에 맞느냐 같은 것은 사람이 판단하는 편이 낫다고 말한다. 사람의 판단이 아직 어떤 모델 심사보다 훨씬 위에 있다고 본다는 것이다.
평균이 최적인 자리와 아닌 자리
가장 그럴듯한 답이 최적인가
둘째 성질이다. 모델은 다음에 올 가장 그럴듯한 것을 고르고 그것이 이상적인 답이라고 친다.
2 더하기 2를 물으면 가장 그럴듯한 답이 곧 맞는 답이고 최적인 답이다. 글이나 디자인은 다르다. 가장 그럴듯한 것이 최적인 것과 겹치지 않는다.
이 발표가 슬롭을 설명하는 자리가 여기다. 뛰어난 것과 창의적인 것은 분포의 양 끝에서 나온다 — 규칙과 무늬를 일부러 깰 때다. 가운데로 모이고 되풀이되니 둘러싸인 것이 다 비슷해 보인다는 것이다.
그래서 분포를 다시 넓히려고 매체와 스타일이 서로 다른 전문가 천 명 남짓의 무리와 함께 일한다고 말한다.
이 발표에서 가장 쓸 만한 규칙이 여기 있다.
예전에는 여러 사람에게서 선호를 걷었는데, 그 사람이 누구인지 무엇을 왜 언제 좋아하는지를 모른 채 걷었다. 그러니 서로 어긋나는 선호가 섞여 다시 가운데로 모였다.
세상은 선호가 여럿인 곳이고 맞는 짝을 지어 주는 일을 이해해야 한다고 말한다.
전문가가 갈렸을 때 무엇으로 읽나
| 어디서 갈렸나 | 무엇으로 보나 |
|---|---|
| 줄 맞춤처럼 객관에 가까운 항목 | 데이터의 흠이다. 갈리면 이상한 것이다 |
| 스타일과 미감 | 나쁜 데이터가 아니라 좋은 데이터다. 갈린다는 사실이 곧 정보다 |
데이터 품질을 올리는 방법으로 둘을 더 든다. 하나는 전문가가 얼마나 구체적인 말로 짚느냐다. 말이 정밀할수록 데이터가 좋다는 것이다. 다른 하나는 그 말을 코드의 정확한 그 자리에 묶는 것이다. 그러면 잡음이 훨씬 줄어든다.
닫는 말은 양보다 질이다. 좋은 데이터를 만드는 일은 비싸고 어렵다고 스스로 말한다.
잰 값이 하나도 없다. 이 방식으로 모델이 얼마나 나아지는지, 슬롭이 얼마나 줄어드는지가 나오지 않는다.
되먹임이 안 온다고 발표자가 자인한다. 연구소와 함께 일할 때 무엇이 무엇을 바꿨는지 알려 주는 고리를 못 받는 일이 잦다고 말한다. 그래서 자기가 쥘 수 있는 데이터 품질 쪽에 매달린다는 것이다. 이 방식이 결과에 얼마나 닿았는지 본인도 모른다는 뜻이다.
천 명이라는 수 말고 다른 수가 없다. 얼마나 걷었는지, 그중 얼마가 쓰였는지가 없다.
견줄 대상이 없다. 사람 판단이 모델 심사보다 훨씬 위라고 말하는데 나란히 놓고 잰 자리가 없다.
뒷이야기를 다음 자리로 넘긴다. 에이전트 쪽 이야기는 다음 날 다른 자리에서 하겠다고 말하고 넘어간다.
용어
스킬 5만여 개를 색인해 보니 평가가 딸린 것이 거의 없고, AI가 쓴 스킬은 성능을 되레 떨어뜨릴 수 있다는 조사 결과. 스킬 설명이 부를 때마다 백에서 이백 토큰을 무는 상시 비용이라는 셈, 케이스 117개로 성공률을 90% 가까이 올린 실제 사례, 정규식만으로 값싸게 채점하는 방법, 그리고 스킬을 언제 버릴지 정하는 켜고 끄기 대조가 나옴. 실패의 절반이 스킬을 잘못 불러서였다는 자기 고백도 담김.
▾한줄 코멘트. 스킬은 공짜가 아니다라는 셈이 이 발표의 뼈대다. 설명 한 줄이 모델을 부를 때마다 실리므로 상시 비용이고, 그러니 값을 하는지 재야 한다는 것이다. 값나가는 대목이 하나 더 있다 — 켜고 끈 채로 나란히 돌려 봐서 스킬 없이도 되면 그 스킬을 버린다는 규칙이다.
구글 딥마인드에서 API와 에이전트 쪽 일을 한다는 사람이 발표한다.
여는 수가 세다. 스킬 5만 개 넘게 색인한 벤치마크를 보니 거의 아무것도 평가를 갖고 있지 않았다. 대부분은 AI가 썼고 제대로 시험되지 않은 것이었다.
먼저 갈라 두는 것이 있다. 우리가 쓰는 에이전트와 우리가 만드는 에이전트는 다르다. 우리가 쓰는 쪽은 코딩 도구들이고, 만드는 쪽은 고객이 쓴다. 고객은 스킬이 무엇인지 모르고 「환불 스킬을 써서」로 말을 시작하지 않는다.
스킬의 세 층과 그 값
스킬은 파일 하나와 딸린 자료가 든 폴더다. *점진적 공개로 돈다.
셈이 여기서 나온다. 설명은 모델을 부를 때마다 무는 값이다. 백에서 이백 토큰이 늘 실린다. 그러니 여러 갈래로 갈리는 지침 — 이를테면 클라우드 업체마다 다른 배포 방법 — 은 본문이 아니라 참고 파일로 내려야 한다.
파일 자체는 500줄 아래로 두라고 말한다.
성격이 다르니 다루는 법도 다르다
| 갈래 | 무엇을 하나 | 얼마나 가나 |
|---|---|---|
| 능력 | 모델이 아직 일관되게 못 하는 것을 가르친다 | 한때뿐이다. 모델이 좋아지면 지운다 |
| 선호 | 그 팀의 방식과 결을 담는다 | 오래간다. 바탕 모델이 알 길이 없는 것이라 |
부르는 방식도 둘로 갈린다. 모델이 알아서 부르는 것과 사람이 짚어서 부르는 것이다. 발표자 자신은 PR 만들기나 문서 올리기 같은 일에 짚어 부르는 스킬을 여럿 쓴다고 말한다.
여기서 짚는 것이 중요하다. 고객용 에이전트를 만들 때는 짚어 부르는 쪽이 없다. 모델이 알아서 부르는 쪽만 남는다.
발표가 든 순서 그대로
| 팁 | 무엇을 하나 |
|---|---|
| 지시로 쓴다 | 설명을 글짓기가 아니라 시키는 말로 쓴다 |
| 값을 안다 | 설명은 늘 무는 값이니 짧게 벼린다 |
| 층을 나눈다 | 갈래가 갈리는 지침은 참고 파일로 내린다 |
| 자유도를 정한다 | 늘 같은 순서로 도는 일이면 스킬이 아니라 스크립트를 쓴다 |
| 안 쓸 자리를 적는다 | 안 적으면 엉뚱한 데서 불린다 |
| 일찍 시험한다 | 물음 열댓 개를 만든다. 되어야 할 것 다섯, 안 불려야 할 것 다섯 |
| 헛말을 지운다 | 행동을 안 바꾸는 지시를 걷어낸다 |
| 버릴 때를 안다 | 켜고 끄고 재 봐서 없이도 되면 지운다 |
여섯째가 눈에 띈다. 안 불려야 하는 경우를 다섯 개 만들라는 대목이다. 되는 것만 재면 과하게 불리는 것을 못 잡는다.
일곱째는 자기 것이 아니라고 밝히고 다른 사람 공으로 돌린다.
스킬을 채점하는 판
실제 사례가 나온다. 새로 낸 인터페이스가 모델을 마지막으로 학습시킨 뒤에 나와서, 모델이 그것을 아예 모르는 상황이었다.
그래서 테스트 케이스 117개를 만들었다. 실제 사용자에게서 본 것, 지어낸 것, 그리고 「이미 다음 판인데 모델이 옛 판을 쓴다」는 불평에서 뽑았다.
결과는 유효한 코드를 내놓는 성공률이 90% 가까이까지 올랐다는 것이다.
여기서 값나가는 대목은 든 물건이 적다는 것이다. 필요한 것은 둘뿐이었다. 케이스를 담은 파일 하나와 코딩 에이전트를 태워 돌리는 스크립트 하나다. 채점은 대개 정규식이면 된다 — 값이 싸다. 자취 전체를 봐야 하는 복잡한 것에만 모델에게 심사를 맡긴다.
안에서는 이것을 스킬 파일이 바뀔 때마다 돌리고, 케이스가 나아지지 않으면 병합하지 않는다고 말한다.
발표가 마지막에 든 것 중 서로 다른 것들
| 규칙 | 왜 |
|---|---|
| 길이 아니라 결과를 잰다 | 첫 턴에 스킬을 읽었나가 아니라 일을 해냈나를 본다 |
| 따로 떼어 놓고 돌린다 | 코딩 에이전트는 옛 대화나 다른 기록을 찾아 커닝을 잘한다 |
| 한 번으로 안 끝낸다 | 매번 달라지니 케이스마다 여러 번 돌려 믿음직함을 잰다 |
| 하네스를 바꿔 본다 | 어느 도구에서는 잘 되고 다른 도구에서는 나쁠 수 있다 |
| 버려도 평가는 남긴다 | 나중에 나빠지는 것이 보이면 그 스킬을 도로 넣는다 |
자기 실패도 밝힌다. 실패의 절반이 스킬이 제대로 불리지 않아서였고, 그 원인은 사용자의 물음이 충분히 구체적이지 않아서였다고 말한다.
닫는 말은 *어블레이션이다. 켠 채로 한 번, 끈 채로 한 번 돌려 견주라는 것이다.
15%가 무엇의 평균인지 얇다. 스킬이 평균적으로 성능을 그만큼 올렸다는 조사 결과를 드는데, 어떤 과제에서 얼마나 갈렸는지가 없다. 백 개 남짓 과제라는 것만 나온다.
90%도 견줄 앞의 값이 없다. 스킬 없이는 얼마였는지가 나오지 않는다. 무엇을 유효한 코드로 쳤는지도 없다.
AI가 쓴 스킬이 나쁘다는 대목에 수가 없다. 사람이 쓴 것이 가장 좋고 AI가 쓴 것은 성능을 떨어뜨릴 수 있다고 말하는데 얼마나인지가 없다.
500줄과 백에서 이백 토큰의 근거가 없다. 어디서 나온 선인지, 넘으면 무엇이 나빠지는지가 없다.
여러 번 돌리라면서 몇 번인지가 뭉개진다. 자막이 그 수를 흐려 놓아 정확한 횟수는 원문에서 갈린다.
유효기간을 스스로 짧게 잡는다. 모델이 갱신되는 속도를 보면 반년 전에 필요하던 스킬을 오늘은 버리게 되는 것에 놀랄 것이라고 말한다.
용어
커밋이 한 해 10억 건에서 주 2억 7500만 건으로 늘어난 수치를 들며, 코드량이 는 것과 생산성이 는 것은 다른 문제라는 개발자 12만 명 연구를 소개함. 어느 팀은 PR은 늘었는데 품질이 떨어져 되돌아가 고치느라 실효 증가가 1%에 그쳤다는 사례가 나옴. 덮은 줄만 세는 테스트가 왜 다듬을 때마다 깨지는지, AI가 스스로를 두둔하는 시험을 만드는 문제, 그리고 붉게-푸르게-다듬기 세 걸음의 무게가 어디로 옮겨 가는지를 짚음.
▾한줄 코멘트. 덮은 줄이 다 초록인데 기능은 안 본 상태가 이 발표가 겨누는 자리다. AI에게 시험까지 맡기면 그 위험이 커진다 — 스스로를 두둔하는 시험을 만들기 때문이다. 값나가는 대목은 세 걸음의 무게가 옮겨 간다는 진단이다. 앞의 둘이 빨라진 만큼 사람이 시간을 쏟을 자리는 마지막 칸이 된다.
마이크로소프트와 깃허브 양쪽에서 개발자 쪽 일을 한다는 사람이 발표한다.
수부터 놓는다. 2025년에 커밋 10억 건이 올라왔고 그것이 그때까지 가장 많은 해였다. 2026년 들어 그 증가가 더 빨라지고 있는데 공식 집계는 아직 없다고 밝힌다.
대신 며칠 전 임원이 올린 글을 든다. 주마다 2억 7500만 건쯤이 올라온다는 것이다. 그대로 늘려 보면 연말에 140억 건 남짓이 된다.
여기서 하나를 짚는다. 그중 AI가 함께 지은이로 적히는 몫이 늘고 있는데, 어떤 도구는 그 표시를 남기고 어떤 도구는 안 남긴다.
물음이 여기서 뒤집힌다. AI가 정말로 개발자를 더 생산적으로 만드나.
인용하는 근거는 개발자 12만 명을 본 연구다. 결론은 그럴 수 있다는 것이되, 어떻게 쓰느냐가 가장 중요하다는 쪽이다.
무엇으로 갈리느냐는 코드베이스가 깨끗한지다. 깨끗한 코드베이스는 AI가 주는 이득을 키우고, 점검 없이 쓰는 AI는 무질서를 키운다.
사례가 붙는다. 어느 회사가 점검 없이 썼더니 내놓는 PR 수는 늘었는데 품질은 떨어졌고, 그 코드를 되돌아가 고치는 데 시간을 더 썼다. 실효로 늘어난 산출은 1%였다.
그래서 권하는 것은 평범하다. 시험 *커버리지, 타입이 얼마나 붙었는지, 문서가 있는지, 부품이 나뉘어 있는지다.
속을 짚은 테스트는 깨진다
테스트를 무엇에 매어 두나
여기서 발표가 오래된 논쟁을 끌어온다. 2014년에 이 방식은 죽었다고 선언된 적이 있다. 어느 유명한 프레임워크를 만든 사람이 글을 내면서, 낱개 시험에 지나치게 매달리는 것을 짚었다.
문제의 뿌리를 이렇게 짚는다. 덮은 줄만 세다 보면 속을 짚게 된다.
예가 또렷하다. 할인이 붙은 값을 셈하는 자리에서 시험이 그 함수 이름에 바로 매여 있으면, 기능은 그대로인데 이름만 바꿔도 시험이 깨진다.
그래서 겉을 짚으라고 한다. 마지막에 나온 값이나 바깥에 내어 놓은 굳은 약속 같은 것이다. 그러면 안쪽을 갈아엎어도 살아남는다.
AI가 붙으면서 이 문제가 커진다고 말한다. AI가 스스로를 두둔하는 시험을 만들기도 한다는 것이다. 그러면 화면은 온통 초록인데 정작 그 물건이 제대로 도는지는 아무도 안 본 상태가 된다.
세 걸음의 무게가 옮겨 간다
되살리려는 방식은 세 걸음이다.
먼저 아직 없는 기능이니 실패하는 시험부터 쓴다. 다음 걸음에서는 통과시키는 데만 매달린다 — 이 자리에서는 코드 품질을 안 본다. 마지막에 가서야 품질만 본다.
AI가 붙으면 무엇이 달라지느냐가 이 발표의 답이다. 앞의 두 걸음이 빨라진다. 그러니 사람이 가장 오래 붙어 있을 자리는 마지막 칸이 된다.
시험을 브라우저에서 실제 조작처럼 돌리는 도구를 쓴다. 여러 언어를 받고, 화면을 띄우지 않고 뒤에서 돌릴 수도 있다.
코딩 에이전트와 잇는 세 갈래
| 갈래 | 무엇인가 |
|---|---|
| 서버로 붙이기 | 도구 규격에 맞춰 연결한다 |
| 명령줄 도구 | 그쪽이 편하면 이것을 쓴다 |
| 딸린 역할들 | 계획하는 것·만드는 것·고치는 것 세 몫이 파일로 깔린다 |
데모는 장난감 회사 개발자 설정이다. 검색과 거르개를 붙여 달라는 메일 요청에서 시작한다. 여기서 짚는 것이 하나 있다. 예전에는 클래스에 함수를 하나 붙이는 것이 시험을 쓰는 계기였는데, 이제는 기능 요청이 그 계기여야 한다는 것이다.
에이전트가 가장 먼저 하는 일은 코드베이스를 훑어보는 것이다. 그다음 실패하는 시험을 쓰고, 통과시키는 코드를 짜고, 돌려 본다. 데모에서는 검색도 거르개도 제대로 돌아 시험이 다 통과했다.
마지막 권고가 실무적이다. 시험 화면을 갈무리해 PR에 붙이고, 화면 없이 돌리고, 에이전트가 고치기 전에 먼저 커밋해 두고, 기능 하나에 시험 하나를 만든다.
140억 건은 잰 값이 아니다. 주간 수치를 그대로 늘려 본 어림이고, 공식 집계는 아직 없다고 발표자가 직접 말한다.
1%는 남의 연구에서 든 한 사례다. 어느 회사인지, 무엇을 실효 산출로 셌는지가 없다.
커밋이 늘었다는 것과 AI가 늘렸다는 것이 이어지지 않는다. 함께 지은이로 적히는 몫이 는다고만 하고 그 몫이 얼마인지가 없다. 게다가 표시를 안 남기는 도구가 있다고 스스로 말하므로 그 몫은 셀 수도 없다.
이 방식이 값을 한다는 증거가 없다. 세 걸음을 밟은 팀과 안 밟은 팀을 견준 자리가 없다.
스스로를 두둔하는 시험이 얼마나 나오는지 없다. 그런 일이 있다고만 하고 빈도가 없다.
데모가 성공한 한 판뿐이다. 실패했을 때 무엇을 하는지는 나오지 않는다. 고치는 몫이 딸려 온다고만 말한다.
용어
에이전트 자취를 담을 저장소를 왜 처음부터 새로 짰는지 다룸. 자취 하나가 1기가바이트를 넘고 조각 하나가 20메가바이트에 이르는 사례, 쓰던 저장소를 버린 이유가 「그때는 글 색인이 안 됐다」였다는 자인, 임상의·간호사·자산관리사 같은 사람이 직접 자취를 들여다보는 방식, 그리고 사람이 매긴 점수보다 그 이유를 남기게 해서 채점 함수로 키우는 순서가 나옴.
▾한줄 코멘트. 점수보다 그 점수를 매긴 이유가 값나간다는 대목이 이 발표에서 가장 쓸 만하다. 점수는 그 자취 하나에만 붙지만 이유는 다른 자취에도 붙어서 채점 함수로 자란다. 앞부분의 「에이전트 관측은 다르다」는 논지는 자기 제품을 세우는 자리라 새롭지 않다.
에이전트 품질을 다루는 회사에서 솔루션 쪽을 이끄는 사람이 발표한다. 제품 위주 발표가 아니라 이론 쪽이라고 먼저 밝힌다. 자막이 회사 이름을 두 가지로 적어 놓아 표기가 갈린다.
사람들이 찾아와 이렇게 말한다고 한다. 이미 관측 도구를 쓰고 있는데 같은 문제 아니냐.
지금까지의 관측은 살아 있나와 얼마나 빠른가가 전부라고 말한다. 지연, 얼마나 걸렸나, 오류 코드다. 자기네도 그런 도구를 잘 쓰고 있다고 덧붙인다.
나누는 말은 *트레이스와 *스팬으로 한다. 앞의 것이 한 흐름 전체이고 뒤의 것이 그 안의 한 걸음이다.
보는 것이 다르다
무엇을 보러 들여다보나
구분하는 근거는 하나다. 프로그램은 정해진 대로 돌고 에이전트는 그렇지 않다. 우리가 모델을 쓰는 이유가 바로 그 폭이 넓어서라고 말한다.
여기서 균형 잡힌 대목이 나온다. 옛 지표가 에이전트에도 그대로 쓰인다. 첫 토큰까지 걸린 시간, 쓴 토큰 수, 걸린 시간, 지연이다.
그 위에 얹히는 것
| 무엇을 묻나 | 왜 |
|---|---|
| 한 말이 가져온 자료에 붙어 있나 | 근거 없이 지어냈는지를 본다 |
| 쓸 줄 알았던 도구를 썼나 | 엉뚱한 길로 갔는지를 본다 |
| 정해 둔 말투를 지켰나 | 시스템 프롬프트에 세운 기준과 맞는지를 본다 |
질의응답에서 청중이 이것을 「기능이 제대로 도나」를 보는 관측이라 부르자 발표자가 그 표현이 마음에 든다고 답한다. 그러면서 앞의 기술 지표는 자취를 뜨는 순간 덤으로 딸려 온다고 말한다.
두 번째 문제는 크기다.
자취가 반쯤만 구조를 갖췄고 그 안에 정형이 아닌 글이 잔뜩 들어 있다고 말한다. 그리고 수가 나온다. 자취 하나가 1기가바이트를 넘는 것을 봤고, 조각 하나가 20메가바이트인 것도 봤다.
게다가 사람들은 그것을 진짜 실시간으로 보고 싶어 한다.
그래서 저장소를 새로 짰다고 말한다.
그 저장소가 얹은 세 겹
| 겹 | 무엇을 위해 |
|---|---|
| 먼저 기록에 밀어 넣기 | 뜨자마자 바로 보이게 |
| 글 색인 | 「이 낱말이 든 자취 전부」를 빨리 찾게 |
| 하나의 질의 언어 | 위의 것들을 한 자리에서 묻게 |
자인하는 대목이 있다. 전에는 다른 저장소를 썼는데 옮겼다고 말한다. 이유는 그때 그것이 글 기반 색인을 못 해 줬기 때문이라며 「적어도 그 당시에는」이라고 단서를 단다.
세 번째 문제가 사람이다.
지금까지의 관측은 보는 사람이 정해져 있었다고 말한다. 시스템 쪽 사람이거나 제품 쪽 엔지니어다.
에이전트를 잘 만드는 팀은 다르다고 말한다. 기술 쪽 사람과 아닌 사람이 같이 이 일을 한다. 임상의, 간호사, 자산관리사, 변호사를 든다.
그래서 관측과 평가를 같은 문제로 본다고 말한다. 다른 점은 묶어서 돌리느냐, 넣을 것을 미리 아느냐뿐이라는 것이다.
사람이 매긴 이유가 채점표가 된다
이 발표에서 가장 실용적인 순서다.
전문가를 불러 자취를 채점하게 하는 것까지는 흔하다. 거기서 왜 그렇게 매겼는지를 함께 적게 하는 것이 핵심이라고 말한다.
그 이유들을 모아 모델에 돌리면 더 넓게 쓸 수 있는 채점 함수가 나온다. 실패의 갈래를 찾아 자동으로 매기는 점수로 옮겨 심는 것이다.
한 달쯤 전에 낸 기능도 같은 방향이다. 들어오는 자취에 가벼운 모델을 얹어 묶고, 사람들이 어떤 뜻으로 쓰는지, 어떻게 느끼는지, 어디서 걸리는지를 갈래로 본다.
마지막에 이 둘을 갈라 놓는다. 점수로 매기는 쪽은 「무엇을 모르는지 아는 것」이고, 묶어 보는 쪽은 「모르는 줄도 몰랐던 것」이다.
자기 저장소를 잰 값이 없다. 새로 짰다면서 얼마나 빠른지, 무엇과 견줘 나은지가 나오지 않는다. 버렸다는 예전 저장소와 나란히 놓은 자리도 없다.
1기가바이트와 20메가바이트는 극단값이다. 봤다는 사례일 뿐 평균이 얼마인지, 그런 것이 얼마나 잦은지가 없다.
자세한 것은 블로그로 넘긴다. 저장소 이야기는 회사 블로그에 있으니 깊이 안 들어가겠다고 말하고 지나간다.
묶어 보는 기능에 사례가 없다. 한 달 전에 열었다면서 그것으로 무엇을 찾아냈는지가 없다.
비개발자가 직접 본다는 대목에 수가 없다. 그런 팀이 얼마나 되는지, 그렇게 해서 무엇이 달라졌는지가 나오지 않는다.
용어
지난해 토큰을 1000억에서 1조 사이로 썼다고 밝히는 아키텍트가 관측·평가·실험 세 층을 표준 기록 규격 하나로 묶는 방식을 설명함. 재는 범위를 걸음 하나·여러 걸음·오간 길 전체·한 자리 전체 넷으로 나누는 대목, 「잴 수 있다고 다 재지는 마라」는 절제, 그리고 회사의 최종 목표가 이 과정에서 사람을 빼는 것이라고 대놓고 말하는 대목이 있음. 자막에서 신호를 다섯 갈래라 해 놓고 넷만 대는 어긋남도 그대로 남아 있음.
▾한줄 코멘트. 재는 범위를 넷으로 갈라 놓은 것이 이 발표에서 가져갈 물건이다. 순서가 뒤바뀐 실패는 걸음 하나만 봐서는 안 잡히기 때문이다. 그리고 잴 수 있다고 다 재지 말라는 절제가 붙어 있어서, 평가를 파는 자리치고는 정직한 편이다.
관측 회사에서 아키텍트로 일하며 큰 기업들과 붙어 있다는 사람이 발표한다.
여는 수가 하나 있다. 지난해 자기가 쓴 토큰이 1000억에서 1조 사이일 것이라고 어림한다.
다룰 것으로 셋을 든다. 무슨 일이 벌어지는지 보는 것, 거기서 신호를 뽑는 것, 바꿔 보고 나아지게 하는 것이다.
깔아 두는 말이 이 발표의 태도다. 마법처럼 보이지만 마법이 아니라 그냥 엔지니어링이라는 것이다. 정해진 대로 안 도는 세계라서 하나를 고치면 모르는 새 두세 군데가 되돌아갈 수 있다고 짚는다.
바탕은 *오픈텔레메트리다. 자기네가 하는 것이 전부 그 위에 있다고 말한다.
붙이는 방식이 가볍다. 코드 한 줄을 넣으면 그 틀 안에서 벌어지는 일을 보고 기록을 만들어 화면까지 뽑아낸다.
그 기록을 에이전트가 무엇을 했는지에 대한 감사 기록이라고 부른다. 그리고 이 발표에서 가장 벼려진 한 줄이 나온다. 코드가 에이전트를 감사하는 것이 아니라 기록이 한다.
큰 기업 고객이 무엇을 보는지도 짚는다. 도구를 어떻게 불렀는지보다 마지막에 그 사람이 만족했는지를 더 본다는 것이다.
한 번의 실행만이 아니라 여러 번 돈 것을 한꺼번에 놓고 분포로 보는 것도 든다. 그래야 어느 갈래로 얼마나 갔는지, 어느 부품이 느렸는지에 답할 수 있다.
어디까지 놓고 재나
이 발표의 뼈대다. 재는 범위를 넷으로 나눈다.
이유가 되는 사례가 붙어 있다. 부품 둘을 부르는 순서가 뒤바뀌어 뒤에 와야 할 것이 먼저 불린 일이 있었다. 앞의 것에 기대는 부품인데 그랬으니 결과가 나빠졌다. 이런 것은 오간 길 전체를 놓고 봐야 잡힌다.
한 자리 전체를 보는 쪽은 또 다르다. 주고받은 대화를 통째로 놓고 그 사람이 도중에 답답해했는지, 물은 것에 다 답했는지를 본다.
발표가 대는 갈래
| 갈래 | 무엇인가 |
|---|---|
| 모델 심사 | 모델에게 매기게 한다 |
| 사람 | 쓰는 사람이 보이는 반응 |
| 정답 묶음 | 믿을 만한 답을 모아 둔 것 |
| 딱 잘라 매기기 | 형식이 맞나, 빠진 칸이 없나를 코드로 본다 |
정답 묶음의 쓰임이 눈에 띈다. 그것으로 채점하는 것이 아니라 모델 심사를 그 위에서 돌려 손보는 데 쓴다. 사람이 믿는 라벨에 가까워지게 맞추는 것이다.
딱 잘라 매기는 쪽은 값 때문이다. 형식이 맞는지, 있어야 할 칸이 비지 않았는지 같은 것은 코드로 보면 된다.
그러면서 위로 올라간다. 결국 회사가 보는 것은 셋 중 하나 — 돈을 더 버는가, 돈을 아끼는가, 시간을 아끼는가.
평가를 파는 자리에서 나온 절제라 눈에 띈다.
잴 수 있다고 늘 재야 하는 것은 아니다. 재는 데 값이 들기 때문이다.
그래서 던지는 물음이 실무적이다. 의도대로 도는지 알기 위해 최소한 몇 개를 재면 되는가.
기록이 없어도 시작할 수 있다고 덧붙인다. 넣은 것과 나온 것의 짝만 올려도 된다.
바꿔 보는 일은 프롬프트든 모델이든 짜임이든 설정이든 무엇을 바꿔 보는 것 전부로 잡는다.
두 부류가 만난다
누가 무엇을 하나
좋은 물건을 만들다 보면 두 부류가 한자리에 모이게 된다고 말한다.
그래서 제품을 그렇게 짰다고 밝힌다. 코드를 안 쓰고도 평가를 돌릴 수 있게 해 둔 것이다.
동시에 다른 쪽으로도 연다. 사람들이 화면과 버튼 안에 살고 싶어 하지 않는다는 것을 알았다며, 모든 것을 명령줄과 도구 묶음으로도 꺼내 놓았다고 말한다.
닫는 말이 이 발표에서 가장 세다. 회사의 최종 목표가 이 과정에서 당신을 빼는 것이라고 대놓고 말한다. 무엇을 잴지 고르는 일조차 사람이 안 해야 하고, AI가 기록을 보고 그 자리에서 평가를 만들어야 한다는 것이다.
다섯이라 해 놓고 넷만 댄다. 신호를 다섯 갈래로 나눈다고 말하는데 자막에 드러나는 것은 넷이다. 다섯째가 무엇인지 나오지 않는다.
잰 값이 하나도 없다. 이 판을 썼을 때 무엇이 얼마나 나아졌는지가 없다.
1000억에서 1조라는 폭이 너무 넓다. 열 배 차이가 나는 어림이고, 무엇에 썼는지도 없다.
느리다는 말에 수가 없다. 어느 부품이 크게 느렸다는 사례를 드는데 얼마나인지가 없다.
최소한의 평가가 몇 개인지 없다. 최소로 줄이라고 하면서 어디까지가 최소인지를 정하는 기준이 없다.
한계를 안 밝힌다. 자동으로 평가를 만들어 준다는 방향을 내놓으면서 그것이 틀릴 때 어떻게 되는지가 없다.
용어
평가 판이 스프레드시트에서 시작해 왜 결국 시스템 문제로 커지는지를 단계로 짚음. 여느 조각은 몇 킬로바이트인데 에이전트 자취에서 10~20메가바이트짜리를 봤다는 수, 자기네가 만든 질의 언어를 자기들도 싫어했다는 자인, 어느 고객이 자취 전체를 상대로 글 검색을 요구하면서 그 구조가 무너진 대목이 나옴. 「그냥 만들면 된다」는 말에 대고 만들면 관리해야 한다고 되받는 자리도 있음.
▾한줄 코멘트. 이건 화면을 잘 만드는 문제가 아니라 시스템 문제다라는 한 줄이 발표의 전부다. 근거는 자릿수다 — 여느 조각이 몇 킬로바이트인데 에이전트 자취에서는 10~20메가바이트짜리를 봤다. 자기네가 만든 질의 언어를 자기들도 싫어했다고 밝히는 대목이 이 발표를 파는 자리와 갈라 놓는다.
에이전트 품질을 다루는 회사에서 솔루션 쪽을 이끄는 사람이 발표한다. 겸임으로 가르치던 첫해에 수강생이 130명에서 60명, 30명, 10명으로 줄었다며, 그래서 강연마다 네댓 명만 올 거라 여기고 온다고 농담으로 연다.
들어온 계기를 밝힌다. 컨설팅 시절 고객들이 시제품은 잘 만드는데 아무도 내보내지 못했다.
재는 이유로는 변덕을 든다. 모델은 편차가 극심하다. 그리고 에이전트가 고객이 회사와 마주하는 통로가 되어 가니, 확신이 없으면 브랜드와 규정과 값과 유지보수 쪽으로 위험을 떠안게 된다고 말한다.
한 가지 밝혀 두는 것이 있다. 이 발표를 판촉으로 만들지 말라는 요청을 받았다며 회사 소개 장표는 이것이 마지막이라고 말한다.
평가 판이 커지는 네 단계
청중에게 묻는다. 지금 평가를 시트로 하고 있는 사람.
그 단계에 필요한 것은 셋뿐이다. 에이전트를 돌리는 방법, 결과를 보여 줄 화면, 넣을 예시를 모으는 방법이다.
그런데 이것을 적어 두는 일이지 시험하는 일이 아니다라고 부른다. 실험끼리 곧바로 견주기 어렵고, 매기는 것이 대개 사람이라 규모를 키우기 어렵기 때문이다.
다음 단계에서 흔히 나오는 말을 그대로 옮긴다. 「그냥 우리가 만들면 되지.」 그래서 화면을 만들고 담아 둘 자리도 붙인다. 그래도 아직은 되풀이하는 것이 아니라 보고하는 것에 가깝다고 말한다.
셋째로 설정을 만져 보는 판이 붙는다. 기술 쪽 사람과 아닌 사람 양쪽 다 쓸 수 있어야 한다고 짚는다.
넷째가 이 절의 요점이다. 좋은 평가를 하려면 망가지는 갈래를 놓고 채점 함수를 만들어야 하는데, 그 갈래를 찾는 가장 좋은 길은 내보낸 자취를 보는 것이다. 그러니 관측과 평가가 한 고리로 이어진다.
이 대목에 실제 이야기가 붙는다. 세 해 전에는 평가만 하는 판이었는데, 어느 고객이 매시간 내보낸 트래픽 전부를 넣어 평가를 돌리고 있는 것을 보고 자취를 뜨는 기능을 만들게 됐다는 것이다.
「그냥 만들면 된다」에 대고 되받는 한 줄이 있다. 만들었으면 관리해야 한다.
그리고 그 관리가 업계가 움직이는 속도에 맞춰 계속 키워 가는 일이 된다고 말한다.
에이전트 자취는 자릿수가 다르다
조각 하나의 크기
여기서 수가 나온다. 에이전트 자취는 칸이 반쯤만 정해져 있고 안이 온통 글이다. 여느 프로그램의 *스팬이 몇 킬로바이트인데 여기서는 10~20메가바이트짜리를 봤다고 말한다.
담는 방식도 둘이 필요하다고 말한다. 바로 보이게 빨리 밀어 넣는 쪽과, 모아서 따져 보려고 쌓아 두는 쪽이다.
그리고 경고 하나를 덧붙인다. 1기가바이트짜리 자취를 관계형 저장소의 한 줄에 밀어 넣으면 성능이 무너진다는 것이다.
이 발표에서 가장 정직한 대목이다.
예전 구조를 이렇게 밝힌다. 오픈소스 창고를 쓰고, 두 갈래를 잇느라 자체 질의 언어를 만들었고, 마지막 모으기는 브라우저 안에서 했다.
그러고 이렇게 말한다. 아무도 그 언어를 안 좋아했고 우리도 싫어했다.
이 구조가 무너진 계기도 구체적이다. 어느 고객이 정형이 아닌 자료를 잔뜩 보내면서 자취 전체를 상대로 글 검색을 요구했다. 그 기술들 중 어느 것도 글을 다루는 데 맞지 않았다.
그래서 결론이 선다. 에이전트 품질을 재는 일은 화면 문제가 아니라 시스템 문제다.
앞으로를 두고 몇 가지를 든다.
하나는 화면을 아예 안 쓰는 쓰임이 늘고 있다는 것이다. 코딩 에이전트가 직접 질의를 던져 자료를 가져다 쓰는 식이다. 그래서 사람만이 아니라 에이전트를 위해서도 판을 만들라고 말한다.
다른 하나는 모르는 줄도 몰랐던 것을 묶어 보아 드러내는 일이다. 그래야 어디에 시간을 쓸지 안다는 것이다.
못 다룬 것도 스스로 짚는다. 권한을 나누는 일과 자료를 가리는 일 같은 것은 이야기도 못 했다고 말한다. 마지막으로 길목에 프록시를 둬서 안 뜰 수 없게 만드는 방안을 든다.
질의응답에서 그림과 소리가 섞인 것을 어떻게 다루느냐고 묻자, 따로 담아 두고 자취 안에서 바로 틀어 볼 수 있게 한다고 답한다.
새 구조의 값이 없다. 예전 구조가 왜 안 됐는지는 자세한데, 바꾼 뒤 무엇이 얼마나 나아졌는지가 나오지 않는다.
10~20메가바이트는 목격담이다. 그런 것을 봤다는 것뿐이고 평균이 얼마인지, 얼마나 잦은지가 없다.
단계마다 무엇이 얼마나 드는지 없다. 직접 만들 때와 사서 쓸 때를 견준 자리도 없다.
「모르는 줄도 몰랐던 것」을 찾는 방법에 사례가 없다. 묶어 보라고만 하고 그것으로 무엇을 찾아냈는지가 없다.
핵심 절 하나를 시간이 없다며 건너뛴다. 그래서 어쨌다는 것이냐는 물음은 블로그로 넘긴다.
용어
관측이 사람이 화면을 클릭하는 일에서 에이전트가 먼저 이슈를 띄우는 순환으로 넘어가는 과정. 병목이 「고치는 일」에서 「이 수정이 맞는지 확신하는 일」로 옮겨 간 대목, 기록을 지금의 10배로 남겨야 한다는 주장, 「그냥 코딩 도구를 자료에 연결하면 되지 않나」는 청중 물음에 내놓은 답, 그리고 큰 고객들이 운영 시스템을 바깥 모델에 직접 잇기 싫어해 자기 망 안에 실행 칸을 세우는 사정이 나옴.
▾한줄 코멘트. 병목이 고치는 일에서 「이 수정이 맞나」로 옮겨 갔다는 진단이 이 발표의 값이다. 실무로 옮길 만한 것은 질의응답에 있다 — 자료를 가리키기만 해서는 안 되고 무엇을 어떤 모양으로 건네줄지를 설계해야 한다는 대목이다. 잰 값은 하나도 없다.
관측 회사를 세운 사람이 발표한다. 자막 안에서 자기 이름을 대지는 않는다.
여는 말이 솔직하다. 자기네가 만든 첫 에이전트는 형편없었다고 말한다. 두 해쯤 전, 이 분야에서 처음 해 본 것이었다.
바탕에 깔린 이야기는 관측의 자리가 바뀐다는 것이다. 예전에는 사람을 위한 것이었다 — 누르는 화면이고 들여다보는 그래프였다. 지금은 코딩 에이전트와, 관측 도구에 닿는 스킬이 붙은 모양이라고 말한다.
*텔레메트리를 시스템이 뿜는 연기에 빗댄다. 코드가 어느 길로 갔는지 알려 주는 것이고, 그것이 없으면 에이전트는 짐작만 한다. 갈 수 있었던 길이 수백만 갈래이기 때문이다.
지금은 사람이 고치고 사람이 본다고 말한다. 여기서 걸리는 것이 있다.
에이전트 속도로 만들 수는 있는데 그 속도로 시스템을 고치지는 못한다. 만드는 쪽에만 속도가 붙어 제동이 걸린 것처럼 느껴진다는 것이다.
그래서 진단이 나온다. 막힌 자리는 이제 고치는 일이 아니다. 이 수정이 맞는 것인지, 이걸 밀어도 되는지에 대한 확신 쪽이다.
루프를 뒤집는다
누가 먼저 자료를 보나
내놓는 답이 순서를 뒤집는 것이다. 사람이 보고 에이전트가 고치던 것을, 에이전트가 먼저 자료를 보고 이슈를 올려 두면 사람이 그것을 보고 일어나는 쪽으로 바꾼다.
바뀌는 것은 사람이 하는 일이다. 티켓을 집으러 가던 데서, 앉기도 전에 근거가 앞에 놓여 있는 데로 옮긴다. 그래서 대응하는 사람에서 검토하는 사람으로 자리가 바뀐다고 말한다.
다만 과장하지 않는다. 검토라기보다는 조사의 둘째 셋째 걸음을 사람이 끌고 가는 쪽에 가깝다고 덧붙인다. 그리고 고칠 것이 클수록 사람이 끝까지 밀어야 한다고 말한다. 중요한 것은 첫 삽을 대신 떠 주는 것이라는 쪽이다.
루프를 이루는 것으로 셋을 든다. 일을 시작시키는 사건, 스킬이 물어다 주는 맥락, 그리고 주기로 또는 사건마다 당기는 방아쇠다.
실제 사례도 든다. 자기네 에이전트가 어떤 흐름이 끊긴 상황에서 같은 갱신을 여러 번 부르다 오류를 냈고, 뒤에서 도는 도구가 그것으로 이슈를 올렸다. 한두 줄짜리 수정이었다.
자료를 건네주는 세 걸음
질의응답에서 정면으로 묻는다. 코딩 도구를 그 자료에 그냥 연결해서 기록을 읽고 알아서 PR을 올리게 하면 안 되나.
답이 이 발표에서 가장 쓸모 있다. 잘 설계한 스킬이 필요하다는 것이다.
먼저 맞는 자료를 찾아야 한다 — 이를테면 어느 한 자리에 얽힌 기록 묶음이다. 그것을 파일 모양으로 저장소 안에 넣는다. 그래야 코드와 기록이 같은 자리에 놓이고 모델이 둘을 함께 놓고 볼 수 있다.
구체적인 예도 든다. 어떤 도구용 스킬은 메모리 문제를 찾을 줄 알고, 그 도구가 주는 갈래를 쓸 줄 안다. 고객별로 묶어 봐서 어느 고객이 문제를 만드는지 보기도 한다.
닫는 말이 요점이다. 모델을 자료에 겨누기만 하는 것으로는 안 된다.
앞으로 무엇이 달라지느냐는 대목이다.
기록과 평가가 사라지는 것이 아니라 순환의 한 부품이 된다고 말한다. 그러면서 수를 든다. 지금보다 열 배로 기록을 남기게 될 것이라는 것이다.
이유가 뒤집혀 있다. 예전에는 사람이 그 많은 기록을 다 뒤질 수 없어서 안 남겼다. 다 잡음이었기 때문이다. 그런데 읽는 쪽이 사람이 아니게 되면 훨씬 많이 남기는 편이 낫다는 것이다.
돌리는 자리도 옮겨 간다고 말한다. 노트북에서 따로 떼어 놓은 실행 칸으로 옮겨서 일정에 맞춰, 또는 오류가 날 때마다 당긴다.
여기서 현장 사정이 하나 나온다. 많은 고객이 운영 시스템을 바깥 모델 쪽에 직접 잇고 싶어 하지 않는다. 그래서 큰 회사들의 자기 망 안에 설치한다고 말한다.
청중이 또 묻는다. 운영에서 뭔가 깨졌다는 신호가 떴을 때 평가는 어디서 들어오나.
답은 이렇다. 평가는 대개 운영에서 뜬 기록 위에 얹혀 돈다. 그리고 에이전트가 그 기록에서 평가 결과를 가져와 모아 볼 줄 안다.
그러면서 지금 평가를 첫 세대 수준이라고 스스로 부른다. 모델을 심사자로 세워 주기적으로 시스템을 재는 것이고, 전에 겪은 실패를 잡으려고 만든다는 것이다. 이 방식은 규모 있게 돌 수 있어서 자료 전체에 얹어 돌리는 고객도 있다고 말한다.
닫는 말은 이렇다. 관측 판이 신호만이 아니라 고치는 일 자체에 묶이기 시작했다.
잰 값이 하나도 없다. 뒤집은 순환으로 무엇이 얼마나 빨라졌는지, 올라온 이슈 중 얼마가 쓸 만했는지가 없다.
열 배의 근거가 없다. 그만큼 남기라면서 그 값이 얼마인지, 지금 얼마를 남기는지가 없다.
올린 이슈가 맞았는지가 없다. 사례로 든 한두 줄짜리 수정 말고는 헛다리를 얼마나 짚는지가 나오지 않는다. 병목을 「이 수정이 맞나」로 진단해 놓고 그 확신을 얼마나 주는지는 재지 않는다.
견줄 대상이 없다. 사람이 먼저 보는 방식과 나란히 놓고 잰 자리가 없다.
아직 한 판에서만 된다. 이 기능이 지금은 자기네 서비스 판에서만 쓸 수 있다고 밝힌다.
자막이 이름을 뭉갠다. 회사와 제품과 상대 회사 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
코딩 에이전트가 왜 실패했는지를 모델 심사에게 글로 받아 내 시스템 프롬프트에 규칙으로 쌓는 방식. 벤치마크 예시 150개만으로 한쪽은 5, 다른 쪽은 15만큼 해결률이 올랐다는 실험과, 모델을 바꾸지도 다시 학습시키지도 않았다는 조건이 나옴. 강화학습이 점수 하나만 받는 데 비해 이 방식은 이유까지 받는다는 빗댐, 그리고 비슷한 최적화 도구보다 훨씬 적게 돌고도 됐다는 비교까지 담김.
▾한줄 코멘트. 같은 실패에서 점수 하나만 건질 것인가, 문장 한 단락을 건질 것인가가 이 발표의 전부다. 뒤쪽이면 예시가 적어도 된다는 것이 주장이고, 실제로 150개로 올렸다고 말한다. 다만 올랐다는 그 수가 퍼센트인지 퍼센트포인트인지 밝히지 않는다.
발표자가 자막 안에서 자기 이름을 대지 않는다.
여는 말은 이렇다. 앞선 코딩 모델에는 관심이 쏠리는데 그것을 쓰는 쪽이 시스템 프롬프트에 붓는 시간은 잘 안 보인다는 것이다.
한동안 화제였던 유출 사례를 든다. 어느 코딩 도구의 시스템 프롬프트가 통째로 돌아다닌 일이다. 그러면서 그 뒤로 바뀌었을 것이라고 덧붙인다.
여러 도구의 것을 나란히 놓고 보인 뒤 짚는다. 이것들은 붙박이가 아니라 계속 고쳐 쓰는 물건이다.
이 되풀이에 이름을 붙인 사람이 있다며 그 말을 가져온다. 사람이 배우는 것과 닮았다는 것이다 — 영어로 된 되먹임을 받아서 다음에 무엇을 달리할지 정한다. 기억을 잃는 사람이 적어 두고 그것으로 다음 날을 사는 영화에 빗댄다.
점수만 받을 때와 이유까지 받을 때
틀린 뒤에 무엇을 돌려받나
설명하려고 강화학습과 나란히 놓는다.
강화학습 쪽 학생은 점수 하나만 받는다. 70점이라는 수를 들고 거의 눈감은 채 다음 시험을 나아지게 해야 한다. 그래서 표본을 많이 써야 하고 자료가 많이 든다.
이쪽 학생은 점수와 함께 왜 맞았고 무엇을 놓쳤는지를 글로 받는다.
여기서 실무로 이어지는 자리가 있다. 코딩 도구마다 규칙을 덧붙일 파일이 있고 처음에는 비어 있다. 그 빈 자리에 배운 것을 쌓겠다는 것이다.
규칙이 쌓이는 네 걸음
조건부터 밝힌다. 다시 학습시키지도 않았고 모델을 바꾸지도 않았다. 건드린 것은 시스템 프롬프트뿐이다.
먼저 규칙이 빈 상태로 소프트웨어 문제를 준다. 에이전트가 고친 것을 내놓으면 시험을 돌린다.
셋째 걸음이 이 발표의 갈림점이다. 시험 결과를 모델 심사에 넘기되, 통과했나 여부만이 아니라 왜 어긋났는지 설명을 함께 받는다. 넣는 것은 문제 설명과 에이전트가 낸 답과 시험이다.
그다음 원래 시스템 프롬프트와 빈 규칙과 그 설명을 한 덩어리 *메타 프롬프트에 넣어 붙일 규칙을 만들게 한다. 규칙이 없던 것과 붙은 것을 나란히 놓고 견준다.
그러고 새 프롬프트를 단 채로 벤치마크 전체를 다시 돌린다.
발표가 댄 수
| 무엇 | 값 |
|---|---|
| 규칙 없는 상태, 한쪽 도구 | 깃허브 이슈의 30% 남짓 해결 |
| 규칙 없는 상태, 다른 도구 | 40% 남짓 해결 |
| 쓴 예시 | 150개 |
| 규칙을 붙인 뒤 | 한쪽은 5만큼, 다른 쪽은 15만큼 더 |
발표자가 힘주는 대목은 예시가 150개뿐이었다는 것이다. 그것도 가장 센 코딩 에이전트들을 두고 한 일이라는 것이다.
프롬프트를 손봐 주는 다른 도구와도 견줬다고 말한다. 영어 되먹임을 프롬프트 안에서 쓴다는 점에서 바탕이 거의 같다고 인정한다.
갈린 것은 횟수다. 그쪽은 훨씬 많은 되풀이가 필요했고 이쪽은 그 일부만으로 됐다.
그러면서 무엇이 달랐는지를 스스로 댄다. 평가와 평가 프롬프트를 만들고 다듬는 데 시간을 많이 썼다는 것이다. 에이전트에게 정말 좋은 설명을 돌려주는 것이 되게 하는 데 결정적이었다고 말한다.
올랐다는 수의 단위가 없다. 5와 15가 퍼센트인지 퍼센트포인트인지 밝히지 않는다. 30%와 40%에서 출발했으니 어느 쪽이냐에 따라 뜻이 크게 갈린다.
여러 번 돌린 값인지가 없다. 한 번 돌려 얻은 값인지 여러 번의 평균인지가 나오지 않는다. 에이전트는 매번 다르게 도는데 그 폭이 없다.
150개를 어떻게 골랐는지 없다. 그 150개가 다시 돌린 전체와 겹치는지도 밝히지 않는다. 겹친다면 자기가 배운 문제로 자기를 잰 것이 된다.
붙은 규칙의 알맹이가 없다. 무엇을 배웠는지 한 줄도 안 보여 준다.
견준 도구의 값이 없다. 그쪽이 몇 번 돌았고 이쪽이 몇 번이었는지가 없다. 「훨씬 많이」와 「그 일부」뿐이다.
한계를 스스로 밝히지 않는다. 안 된 자리도, 되레 나빠진 자리도 나오지 않는다.
자막이 이름을 크게 뭉갠다. 도구와 사람과 견준 도구의 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
큰 모델을 기준선(평균 지연 2.9초, 작업 열넷에 0.22달러, 하루 1달러 남짓)으로 두고 기기에서 도는 작은 모델 넷을 같은 시험으로 겨룬 기록. 가장 빠른 것도 가장 정확한 것도 아닌 가운데 것이 이겼고, 예시를 붙인 프롬프트와 하네스 후처리만으로 구조 유효성 100%·지연 1초대까지 올라와 기준선을 따라잡는 과정이 수와 함께 나옴. 심판을 맡은 모델이 자기 계열을 편들어 뜻이 같은 표현까지 깎아내린 대목도 있음.
▾한줄 코멘트. 작은 것에서 올라가며 합격선을 넘는 자리를 찾는다는 절차가 이 발표의 값이다. 큰 것에서 줄여 내려오는 것이 아니다. 그리고 주변에서 입을 모아 권한 가장 큰 모델이 답이 아니었다 — 그것을 그냥 썼으면 8초를 기다리게 했을 것이라고 말한다.
여러 브라우저와 표준 일을 거쳐 최근 관측 회사에 합류했다는 사람이 발표한다.
먼 곳의 큰 모델을 부를 때마다 값을 낸다며 넷을 든다. 자료가 바깥으로 나간다는 것, 느리다는 것, 부를수록 더 든다는 것, 끊기면 아예 안 된다는 것이다.
수 하나를 인용한다. 사람이 믿고 기다리는 한계가 4초라는 연구가 있는데, 큰 모델을 부르면 그것을 넘기는 일이 잦다는 것이다.
값 이야기도 뒤집어 놓는다. 토큰 단가는 내려가는데 총지출은 오르고 있다. 에이전트가 되풀이해 생각하느라 단가가 떨어지는 속도보다 더 빨리 먹기 때문이다.
첫 물음이 이것이다. 이 일에 정말 언어 모델이 필요한가.
카메라로 들어온 것을 알아보는 일이나 소리를 글로 옮기는 일에는 그 일만 하는 작은 모델이 이미 있다고 말한다.
말을 다루는 자리라야 언어 모델인데, 거기서도 작은 쪽이 있다. 크기 차이를 이렇게 댄다 — 작은 쪽은 백만에서 수십억, 큰 쪽은 수십억에서 수조다.
그러면서 짚는다. 우리가 실제로 시키는 일은 대화를 간추리거나 누가 무례하게 굴었는지 가려내는 것 정도이고, 그런 일에는 놀랄 만큼 적은 크기로 충분하다.
무게도 든다. 대개 줄여 담아 내보내므로 자리와 메모리가 4분의 1이 되고, 10억이면 2기가바이트쯤이다. 어떤 휴대폰은 이미 그런 모델을 넣어 나온다고 말한다.
에너지 비교도 든다. 큰 모델이 어떤 일에 쓰는 것을 100이라 하면 작은 쪽은 25쯤, 그 일만 하는 모델은 그 절반쯤이다.
크기를 정하는 네 걸음
원칙을 한 줄로 세운다. 프로토타입은 크게, 배포는 작게.
만들던 앱에서 긴 대화를 간추리는 기능을 예로 든다. 먼저 큰 모델로 만들어 이 기능이 되긴 된다는 것을 증명했다.
그다음 시험지를 만든다. 대화 열넷을 골라 간추린 것과 짚은 것 두 벌로 예시 28개를 만들었다.
무엇을 볼지도 미리 정한다. 형식이 깨지지 않았나, 짚은 자리가 말이 되나, 사실이 어긋나지 않나, 길이를 지켰나, 얼마나 걸리나다. 사실이 맞나는 사람이 보기 힘드니 모델에게 맡기는 편이 싸다고 말한다.
기준선의 값이 나온다. 큰 모델은 평균 2.9초, 열넷을 돌리는 데 0.22달러였다. 셈해 보니 하루에 1달러쯤 쓰고 있었다.
작은 모델 쪽은 그 칸이 0이다. 대신 그 몫이 쓰는 사람의 기기로 넘어간다 — 배터리를 채우는 전기값이라는 것이다.
제일 빠른 것도 제일 정확한 것도 아니었다
빠른 쪽과 정확한 쪽
후보 넷을 골랐다.
겨룬 것들
| 후보 | 크기 | 결과 |
|---|---|---|
| 가장 작은 것 | 15억, 1기가바이트 | 절반 지점 1초쯤으로 제일 빨랐다. 정확도가 낮았다 |
| 그 자매 | 17억 | — |
| 가운데 것 | 30억, 2기가바이트 | 정확도 90% 언저리. 이겼다 |
| 가장 큰 것 | 50억, 3.1기가바이트 | 제일 정확했다. 8초쯤 걸렸다 |
여기서 이 발표의 가장 실용적인 경고가 나온다. 여러 기술자가 가장 큰 것을 쓰라고 했다. 그 말만 믿었으면 훨씬 나쁜 경험을 주었을 것이라고 말한다.
고르는 기준에 이름을 붙인다. 쓸 만한 답을 내는 것 중 가장 작은 것.
이긴 것을 두고 여러 경우에 큰 모델의 답과 구별이 안 될 만큼 가까웠다고 말한다. 그 모델을 만든 회사가 사람 글을 간추리는 데 이해관계가 크니 그럴 만하다고 덧붙인다.
남은 격차는 프롬프트로 좁힌다. 한 번에 하나만 바꾸기로 하고 원래 것을 기준선 삼아 넷을 더 만들었다.
기준선의 값은 구조 91.2%, 사실 87.1%, 지연 1초였다.
무엇을 바꿔 봤고 어떻게 됐나
| 바꾼 것 | 가설 | 결과 |
|---|---|---|
| 번호를 매겨 넣기 | 작은 모델이 번호를 더 잘 따라갈 것 | 별 차이 없었다 |
| 예시를 붙이기 | 규칙보다 예시로 형식을 더 빨리 배울 것 | 가장 좋았다. 지연은 200밀리초만 늘었다 |
| 하지 말 것을 못 박기 | 곧이곧대로 된 명령에 잘 따를 것 | 되레 나빠졌다 |
| 쓰기 전에 짚게 하기 | 소리 내어 생각하면 근거가 붙을 것 | 길이는 조금 나아지고 지연이 600밀리초 늘었다 |
셋째가 눈에 띈다. 하지 말라고 못 박은 쪽이 나빠졌다. 모델이 못 하게 하는 말에 나쁘게 반응했다는 것이다.
예시를 붙인 것으로 다시 재니 구조 91.7%, 사실 92.9%가 나왔고 뒤쪽 지연도 기준선보다 낮았다.
남은 격차를 열어 본 대목이 이 발표에서 가장 재미있다.
심사를 맡긴 모델이 자기 계열 모델의 답을 편들었다. 뜻이 사실상 같은 낱말 둘을 두고 네 해석이 정확하지 않다며 깎았다는 것이다.
그러면서 방향을 튼다. 짚은 자리 수나 길이 같은 것은 모델에게 시킬 일이 아니라 *하네스가 뒤에서 손볼 일이다. 짚은 자리가 대화에 있는 사람 수보다 많으면 걸러 내고, 너무 길면 자른다.
그렇게 하니 형식과 구조가 100%가 됐고, 절반 지점 지연은 1초쯤, 뒤쪽 지연도 잡아 둔 선 아래로 내려왔다. 기준선을 만나거나 앞섰다고 말한다. 그리고 하루 1달러쯤을 아꼈다.
닫는 말은 이어 가라는 것이다. 프롬프트를 고치거나 모델을 올릴 일이 또 오므로 되돌아가는지 계속 재라고 한다. 아는 창업자 이야기를 든다 — 최고기술책임자가 프롬프트를 살짝 고쳐 에이전트를 통째로 망가뜨린 적이 있었다.
시험지가 작다. 대화 열넷에 예시 28개다. 그 위에서 나온 90%와 92.9% 같은 값은 몇 개 차이로 크게 흔들린다.
심판이 편향됐다고 스스로 말해 놓고 그 값을 그대로 쓴다. 편들었다는 것을 알아챈 뒤에도 정확도 수치를 다시 재지는 않는다.
기기에서 도는 값이 어디서 나온 것인지 없다. 어떤 기기에서 쟀는지, 사람마다 얼마나 다른지가 나오지 않는다. 값이 0이라는 것도 부담을 쓰는 사람에게 넘긴 것이라고 본인이 말한다.
배터리와 발열이 없다. 기기에서 돌리는 대가가 전기값이라고만 하고 얼마인지가 없다.
에너지 25%와 절반도 인용이다. 자기가 잰 값이 아니다.
4초 한계도 다른 상황의 연구다. 가상현실 대화에서 나온 값을 그대로 가져다 쓴다.
용어
거르개를 다 뗀 모델을 직접 두드리니 폭력 갈래의 25%, 여러 수를 겹친 공격의 20%가 뚫렸고, 거르개를 켠 쪽에서는 160번 중 한 번도 안 뚫렸다는 대비를 보여줌. 사내 레드팀이 쓰던 도구를 SDK와 화면으로 감싸 엔지니어가 자기 앱에 인코딩 변환 공격을 걸어 보게 만든 데모, 그리고 거르개가 모델 안이 아니라 밖에서 들어오는 쪽과 나가는 쪽을 따로 거른다는 답이 나옴. 라이브 데모의 도구 호출이 두 번 실패해 미리 돌려 둔 결과로 대신한 대목도 그대로 있음.
▾한줄 코멘트. 거르개를 켰을 때와 뗐을 때의 격차를 실제 수로 보인 것이 이 발표의 값이다. 뗀 쪽에서는 폭력 갈래 넷 중 하나가 뚫렸고 켠 쪽에서는 160번 중 하나도 안 뚫렸다. 다만 두 수가 다른 모델·다른 표본에서 나온 것이라 나란히 놓고 읽으면 안 된다.
두 사람이 나온다. 한 명은 제품 쪽이고 한 명은 엔지니어인데, 뒤쪽은 자막 안에서 자기 이름을 대지 않는다.
여는 말은 이렇다. AI를 사람들 손에 쥐여 주고 싶은데 따라붙는 걱정거리가 많다. 챗봇을 꾀어 하지 말아야 할 말을 하게 하거나 자료를 흘리게 만드는 일이 어렵지 않다는 것이다.
바탕도 넓다고 짚는다. AI를 만드는 일은 여러 패키지와 바깥 서비스가 얹힌 생태계 위에 지어진다.
기술자는 사람들이 믿고 건너는 다리와 댐을 만든다는 비유를 든다. 그런데 AI를 만드는 일은 아직 이르다고 말한다. 그래서 세우는 말이 믿음은 팀으로 만드는 것이다 — 보안과 위험을 다루는 전문가에게 기댄다는 뜻이다.
사내에 몇 해째 *레드팀 일을 해 온 팀이 있다고 말한다. 두세 해 전부터 이런 모델들을 꾀면 해서는 안 될 일을 하게 만들 수 있다고 지적해 온 쪽이라고 소개한다. 그 팀이 만든 도구를 쓰기 쉬운 형태로 감싸고 결과를 볼 화면까지 붙였다는 것이다.
수법을 몇 가지 든다.
곧이곧대로 나쁜 것을 물으면 많은 모델이 답을 거절한다. 그런데 그 앞에 긴 사연을 붙이면 설득이 되기도 한다.
다른 수법은 모양을 바꾸는 것이다. 같은 물음을 거꾸로 뒤집어 쓰면 통과하는 일이 있다고 말한다.
말로 시켜 두드려 보기
첫 데모는 대화로 하는 방식이다. 갈래를 짚어 주면 에이전트가 험한 물음을 지어내고, 그것을 내 앱에 보내 어떻게 답하는지 본다. 그다음 글자를 인코딩해 바꾼 뒤 다시 보낸다.
발표자는 이것을 누구나 바로 시작할 수 있는 방식이라고 부른다.
여기서 정직한 대목이 나온다. 라이브 데모에서 도구 호출이 안 됐다. 두 번 그렇다고 말하고, 미리 돌려 둔 결과를 대신 보인다. 미리 준비해 뒀다고 그 자리에서 밝힌다.
두드릴 대상은 갈아 끼울 수 있다고 말한다. 물음을 받아 글로 답하는 앱이면 무엇이든 된다.
두 번째는 한 번에 쓸어 보는 방식이다.
설정할 것은 대상과 자격, 위험 갈래, 그리고 몇 개나 던질지다. 갈래를 안 고르면 전부 넣는다. 여기에 공격 수법 목록을 붙인다. 글자를 뒤집는 것 같은 단순한 것들이 있고, 두 수법을 겹칠 수도 있다.
발표가 댄 결과
| 조건 | 결과 |
|---|---|
| 거르개를 켠 모델, 표본 160 | 뚫린 것 없음 |
| 모델을 바꿔 다시 | 미움·공정 갈래에서 40 중 5 |
| 거르개를 다 뗀 모델 | 폭력 갈래 25%, 여러 수를 겹친 공격 20% |
| 작은 판에 거르개를 다 켠 뒤 | 뚫린 비율이 조금 줄었다 |
뚫린 사례 하나를 짚는다. 글자를 밀어 쓰는 옛 암호로 넣었더니 그쪽이 그것을 풀어서 답했다. 그래서 성공한 공격으로 셌다고 말한다.
한 번 훑는 데 예상 6분이 걸리고, 끝나면 결과로 바로 가는 주소를 보내 준다고 말한다.
거르개는 모델 밖에 있다
거르개가 서는 두 자리
이 발표에서 가장 또렷한 답이 청중 물음에서 나온다. 거르개가 답을 만든 뒤에 걸리나, 만들기 전에 걸리나.
답은 둘 다다. 들어오는 쪽에서 위험한 물음을 막는 거르개가 있고, 나가는 쪽에서 내면 안 될 것을 막는 거르개가 따로 있다.
그리고 못 박는다. 거르개는 모델 안에 있지 않다. 모델은 그대로이고 그 바깥에 선다.
닫는 말은 순서다. 내보낼 물건을 만들기 전에 위험을 먼저 그려 보고, 거르개를 계획해 넣고, 그다음 재라는 것이다. 두드려 봐서 20%가 통과한다는 것을 알게 되면 그때 거르개를 얹는다.
두 수를 나란히 놓을 수 없다. 160번에 하나도 안 뚫렸다는 것과 25%가 뚫렸다는 것은 모델도 다르고 조건도 다르다. 하나는 거르개를 켠 것이고 하나는 다 뗀 것이다.
표본이 작다고 발표자가 직접 말한다. 160은 아주 작은 표본이라고 그 자리에서 밝힌다. 몇 갈래를 골랐는지도 「열 개쯤, 아니 다섯쯤」으로 흔들린다.
조금 줄었다는 것에 수가 없다. 거르개를 다 켠 뒤 뚫린 비율이 줄었다고만 하고 얼마인지가 없다.
라이브 데모가 두 번 실패했다. 도구 호출이 안 돼서 미리 돌려 둔 것으로 대신했다. 그러니 그 자리에서 실제로 도는 것을 본 사람은 없다.
공격 수법 목록을 문서로 넘긴다. 어떤 수법들이 있는지는 나중에 문서를 보라며 지나간다.
자막이 모델 이름을 크게 뭉갠다. 어느 판으로 무엇을 쟀는지가 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
행사 페이지에 참석자 수가 없었는데 에이전트가 링크를 따라간 다른 페이지에서 269명을 찾아 두 페이지를 합쳐 답한 실제 데모. 폭력적인 그림에 5점 만점 중 4점이 나와 기본 문턱으로는 탈락한 사례를 들며, 게임처럼 거친 것을 다루는 물건이면 문턱을 올려 통과시킬 수 있다고 짚음. 모델을 손으로 견주는 데서 시작해 규모를 키워 자동으로 매기기까지 네 걸음으로 나눠 정리함.
▾한줄 코멘트. 채점기는 점수를 내주고 통과선은 만드는 쪽이 정한다는 대목이 이 발표에서 가장 쓸모 있다. 같은 4점이 아이들 쓰는 물건에서는 탈락이고 거친 것을 다루는 게임에서는 통과다. 나머지는 자기네 도구 소개라 잰 값이 거의 없다.
마이크로소프트에서 AI 쪽 일을 한다는 사람이 발표한다. 바로 앞 자리는 일부러 나쁜 상황을 만들어 넣어 보는 이야기였고, 이 자리는 자료 묶음을 놓고 재는 보통의 평가를 다룬다고 말한다.
여는 물음이 이것이다. 프롬프트 몇 개를 넣어 보고 잘 답하니 내보내도 되겠다고 하는가, 아니면 차례를 밟는가.
앞쪽이라면 바꿔야 한다고 말한다. 에이전트에게 스스로 할 몫을 줄수록 홀로 움직이는 폭이 커지고 그만큼 크게 어긋날 위험도 커지기 때문이다.
그리고 시점을 못 박는다. 평가는 프로젝트 맨 처음부터 시작한다. 이를수록 좋다.
접근을 네 층으로 나눈다고 말한다.
하나는 모델과 안전 장치다. 이것은 판이 주는 것이라 자기네 것을 자기네 위에서 쓰면 따로 손댈 게 없다고 말한다. 다른 하나는 시스템 메시지와 *근거 대기, 또 하나는 쓰는 경험이다. 이 두 자리에서 앱을 어떻게 설계했느냐가 가장 크게 먹힌다고 말한다.
넷이라 해 놓고 이름이 뚜렷이 나오는 것은 셋뿐이다.
여기서 이 발표의 제목이 되는 한 줄이 나온다. 바탕 모델은 한 부분일 뿐이고, 진짜 안전은 앱 층에 완화 장치를 겹겹이 두는 데서 나온다.
평가가 올라가는 네 걸음
첫 걸음은 어느 모델을 쓸지 손으로 견주는 것이다.
이유를 이렇게 댄다. 자동으로 매기는 수는 그 사례에서 실제로 어땠는지를 놓칠 때가 있다. 그러니 규모를 키우기 전에 몇 개를 골라 눈으로 봐야 한다.
편집기에 붙는 도구로 그것을 한다고 말한다. 예전에는 여러 사이트를 돌아다니며 견줬는데 이제 개발하던 자리에서 바로 할 수 있다는 것이다. 실제로 두 판의 모델에 같은 요리 물음을 넣고 나란히 놓아 보인다. 새 판이 훨씬 빨라서 대개 그것을 쓰게 된다고 말한다.
데모가 이 발표에서 가장 볼 만하다.
행사 페이지에서 이름과 날짜와 장소와 참석자 수를 뽑아내는 에이전트를 만들어 뒀다. 브라우저를 조종하는 도구를 붙여 실제로 돌린다.
결과가 나온다. 행사 이름과 장소와 날짜, 그리고 등록한 사람 269명이다.
값나가는 대목은 그다음이다. 그 행사 페이지에는 참석자 수가 없었다. 에이전트가 그 페이지에서 다른 페이지로 가는 링크를 찾아내 그리로 옮겨 갔고, 거기서 수를 찾아 두 페이지의 것을 합쳐 답했다.
만든 뒤에는 여러 물음을 넣어 돌리고 좋다 나쁘다를 손으로 찍을 수 있다. 그 결과를 파일로 내보내 더 자동화된 판에 도로 넣을 수 있다고 말한다. 원하는 틀에 맞춘 코드로도 뽑아 준다.
발표가 대는 채점기 갈래
| 갈래 | 무엇을 보나 |
|---|---|
| 품질 | 근거에 붙어 있나, 매끄러운가, 앞뒤가 맞나, 물음에 맞나, 원하는 답과 닮았나 |
| 예전부터 쓰던 지표 | 벤치마크끼리 견주려고 쓰는 계산식들 |
| 위험과 안전 | 나쁜 것이 섞였는지 보는 묶음 |
직접 만들어 넣을 수도 있다고 덧붙인다. 글만이 아니라 그림이 섞인 것도, 여러 번 오간 대화도 잴 수 있다고 말한다.
문턱은 만드는 쪽이 정한다
같은 4점을 어디서는 통과, 어디서는 탈락
점수는 1에서 5 사이로 나온다. 그리고 이 발표에서 가장 쓸모 있는 한 줄이 여기 있다. 몇 점부터 탈락으로 볼지는 만드는 쪽이 정한다.
보여 준 사례가 구체적이다. 일부러 험한 그림을 넣었더니 채점기가 그 그림을 험하다고 짚었는데 점수가 5가 아니라 4였다. 기본 문턱으로는 탈락이다. 그러면서 거친 것을 다루는 게임이라면 문턱을 4까지 올려 통과시킬 수 있다고 말한다.
층이 넷이라 해 놓고 셋만 댄다. 넷째가 무엇인지 나오지 않는다.
빠르다는 말에 수가 없다. 새 판이 처리량에서 크게 나아졌다고 하면서 얼마나인지가 없다.
269명은 데모가 잘 돈 증거이지 정확도가 아니다. 몇 번 중 몇 번 맞았는지, 틀린 적은 없는지가 나오지 않는다.
규모를 키운 결과가 없다. 시간이 없어 그 부분을 실제로 돌리지 않았다고 밝히고 넘어간다. 그러니 자동으로 매긴 값이 사람 판단과 얼마나 맞는지도 없다.
문턱을 어떻게 정할지에 대한 근거가 없다. 업종에 따라 다르다고만 하고 어떻게 고를지가 없다.
자막이 이름과 판 번호를 뭉갠다. 도구 이름과 모델 번호가 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
코드는 의도를 적은 명세에서 떨어져 나온 손실 압축본일 뿐이고 그 명세를 쓰는 사람이 진짜 프로그래머라는 주장. 아첨하는 성향을 내보낸 사고를 「명세에 이미 하지 말라고 적혀 있었으니 버그다」로 처리한 사례가 구체적으로 나오고, 명세를 맥락에 매번 싣는 대신 가중치로 내리는 절차, 조항마다 번호를 달고 그 번호로 어려운 물음 파일을 찾게 해 둔 구조까지 다룸.
▾한줄 코멘트. 명세를 조항마다 번호를 달아 두고 그 번호로 시험 물음 파일을 찾게 해 둔 것 — 이 한 가지가 이 발표에서 옮겨 갈 만한 물건이다. 나머지는 「코드보다 소통이 중요하다」는 익숙한 주장이고, 든 수치도 잰 값이 아니라 발표자의 어림이다.
앤스로픽 아닌 다른 연구소에서 정렬 쪽 일을 한다는 사람이 발표한다.
여는 주장은 이렇다. 코드가 내는 값은 열에서 스물 남짓이고 나머지는 짜임새 있는 소통에 있다는 것이다. 사용자와 이야기하고, 줄이고, 어떻게 풀지 궁리하고, 계획을 세우고, 동료와 맞추고, 그것을 코드로 옮기고, 효과를 확인한다.
그러니 막히는 자리는 코드가 아니라 소통이고, 모델이 좋아질수록 그 자리가 더 아프게 느껴질 것이라고 말한다.
무엇을 판에 남기나
무엇을 남기고 무엇을 버리나
*바이브 코딩이 실은 소통이 먼저이고 코드는 그 뒤에 딸려 나온 것이라고 말한다. 그런데 우리가 하는 짓은 반대라는 것이다. 시킨 말은 흘려보내고 나온 코드를 판 관리한다.
빗댐이 세다. 원본을 파쇄하고 구워 나온 것만 조심스레 관리하는 꼴이라는 것이다.
그래서 코드를 명세에서 떨어져 나온 손실 압축본으로 본다. 구운 것을 되돌려 봐야 좋은 주석과 좋은 이름이 돌아오지 않는 것과 같다고 말한다.
거꾸로 충분히 단단한 명세가 있으면 거기서 여러 언어의 코드도, 서버도, 문서도, 안내글도 나온다고 말한다.
이 발표에서 가장 손에 잡히는 대목이다.
자기네가 낸 모델 명세를 든다. 열어 보면 그냥 마크다운 파일 묶음이다. 자연어라서 기술 쪽이 아닌 사람 — 제품·법무·안전·정책 — 도 같은 원본을 읽고 따지고 보탤 수 있다는 것이 요점이다.
옮겨 갈 만한 물건이 여기 있다. 조항마다 번호가 달려 있고, 그 번호로 저장소에서 파일을 하나 더 찾을 수 있다. 그 파일에 그 조항을 걸고넘어지는 어려운 물음들이 들어 있다.
즉 명세와 그 명세를 시험하는 물음이 번호 하나로 묶여 있다.
사례가 이어진다. 어느 판을 갱신한 뒤 모델이 심하게 비위를 맞추는 쪽으로 굴었다.
발표가 든 예가 얄궂다. 사용자가 그 아첨하는 태도를 지적하자 모델이 그 지적을 칭찬했다.
그러면서 이렇게 내보낸 것이 믿음을 깎았다고 말한다.
여기서 명세가 하는 일이 드러난다. 명세에는 처음부터 그러지 말라는 절이 있었다 — 당장은 기분이 좋아도 길게 보면 모두에게 나쁘다는 이유까지 적혀 있었다. 그러니 이 행동은 취향 문제가 아니라 버그가 된다. 되돌리고 글을 내고 고쳤다고 말한다.
그 사건 동안 명세가 믿음을 매어 두는 말뚝 노릇을 했다고 말한다. 무엇이 기대되고 무엇이 아닌지를 밖에 대고 말할 수 있었다는 것이다.
명세를 가중치로 내리는 순서
같은 명세를 모델을 맞추는 데도 쓴다며 자기네 기법을 든다.
명세와 어려운 물음을 함께 놓고, 훈련 중인 모델에서 답을 뽑고, 그 답과 물음과 정책을 더 큰 모델에 줘서 명세에 비추어 점수를 매기게 한다. 그 점수로 가중치를 밀어 준다.
왜 그렇게 하느냐가 이 절의 값이다. 명세를 매번 맥락에 실으면 그때마다 값을 문다. 가중치로 내리면 그 값을 안 물고 모델이 몸에 밴 것처럼 쓴다는 것이다.
명세를 코드처럼 다루자는 다섯 갈래
| 성질 | 무슨 뜻인가 |
|---|---|
| 짜 맞춘다 | 여러 개를 합쳐 하나로 만든다 |
| 돌린다 | 넣으면 결과가 나온다 |
| 시험한다 | 조항마다 걸어 볼 물음이 있다 |
| 맞물리는 면이 있다 | 바깥 세계와 닿는 자리가 정해져 있다 |
| 묶어 낸다 | 부품처럼 떼어 내보낸다 |
부서 둘이 각각 쓴 명세가 서로 부딪히면 그것을 앞으로 끌어내 발행을 막을 수 있어야 한다고 말한다.
마지막 절은 비유다. 미국 헌법을 나라 단위 모델 명세라고 부른다.
발표가 대 놓는 짝
| 헌법 쪽 | 명세 쪽 |
|---|---|
| 조문 | 명세 본문 |
| 개정 절차 | 판을 올리고 내보내는 길 |
| 사법 심사 | 어떤 상황이 정책에 얼마나 맞는지 매기는 일 |
| 판례 | 뜻을 또렷하게 만드는 입력·출력 짝, 곧 단위 시험 |
그러고 넓힌다. 프로그래머는 명세로 실리콘을 맞추고, 제품 쪽 사람은 팀을 맞추고, 입법자는 사람을 맞춘다. 프롬프트를 쓰는 순간 이미 명세를 쓰고 있는 것이라고 말한다.
앞으로의 편집기는 쓰는 동안 모호한 자리를 짚어 되묻는 도구가 될 것이라고 말한다. 닫는 말은 새로 만든 팀에 합류해 달라는 청이다.
10~20과 80~90은 잰 값이 아니다. 무엇을 어떻게 세어 나온 비율인지가 없다. 발표자의 어림이다.
명세가 값을 한다는 증거가 없다. 명세를 두었을 때와 안 두었을 때를 견준 자리가 한 군데도 없다.
가중치로 내린 기법의 결과가 없다. 그렇게 해서 무엇이 얼마나 나아졌는지, 맥락에 싣는 쪽과 견줘 얼마나 아꼈는지가 나오지 않는다.
아첨 사고의 크기가 없다. 얼마나 오래 나갔고 몇 명이 겪었는지가 없다. 자막이 그 판의 이름을 뭉개 놓아 정확한 표기는 원문에서 갈린다.
부딪히는 명세를 막는다는 것은 아직 이야기다. 그런 검사기가 있다는 말은 없고 있으면 좋겠다는 쪽이다.
모범 사례를 자기 회사 것으로만 든다. 명세 문서도 기법도 팀도 전부 한 곳의 것이고, 다른 데서 통했다는 사례가 없다.
용어
12편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
답을 만드는 두 단계를 다른 기계로 갈라 놓는 것만으로 같은 H100 열여섯 장에서 고정 지연 기준 GPU당 처리량이 최대 두 배가 된 사례. 그것이 안 통하는 구간까지 함께 밝히는 대목, 작은 모델을 서너 번 다시 물으면 한 판 큰 모델과 품질이 엇비슷해지면서 값은 더 싸다는 대비, 그리고 도구를 기다리는 동안 캐시를 옆으로 옮겼다 되돌리는 요령이 나옴.
▾한줄 코멘트. 품질·지연·값 셋 중에서 내 앱이 서야 할 한 점을 먼저 정하라는 것이 이 발표의 틀이다. 값나가는 대목은 자기 기법이 안 통하는 구간을 함께 그려 놓은 것 — 입력이 짧으면 거의 안 빨라지고, 아주 느리거나 아주 빠른 양 끝에서는 나누지 않은 쪽이 도로 낫다고 말한다.
큰 회사에서 가장 큰 추론 판을 맡았고 지금은 그 회사가 연 오픈소스 프로젝트를 이끈다는 사람이 발표한다. 분기 클라우드 청구서가 수천만 달러대였다고 밝힌다.
배포할 수 있는지를 정하는 것으로 셋을 든다. 품질, 지연, 값이다. 지연은 사람이 만족하거나 로봇처럼 안전 기준을 맞출 만큼 빠른지이고, 값은 요청 하나를 마진에 맞게 처리할 수 있는지다.
셋을 견주는 방법으로 *파레토 경계를 든다. 한 축은 GPU 한 장이 초당 내놓는 양(값에 해당)이고 다른 축은 사용자가 체감하는 속도다.
여기서 실무적인 한 줄이 나온다. 경계 전체가 필요한 것이 아니라 그 위의 한 점만 필요하다. 내 앱이 서야 할 지연과 품질을 정하고 거기서 값을 최소로 만드는 것이 전부라는 것이다.
예를 셋 든다. 개인 맞춤 치료제를 찾는 일이라면 지연도 값도 사실상 문제가 아니다. 편집기에서 눌러 쓰는 자동완성은 바로 나와야 한다. 코드를 뒤에서 고쳐 두는 쪽은 지연보다 품질과 값이 걸린다.
흔한 기법이 셋에 어떻게 작용하나
| 기법 | 품질 | 지연 | 값 |
|---|---|---|---|
| 자리수를 줄여 담기 | — | 빨라진다 | 싸진다 |
| 찾아와 붙이기 | 올라간다 | 느려진다 | 비싸진다 |
| 더 생각하게 하기 | 올라간다 | 느려진다 | 비싸진다 |
| 나눠 얹는 방식 바꾸기 | 달라질 수 있다 | 크게 달라진다 | 크게 달라진다 |
이것들을 겹쳐 쓸 수 있다고 말한다. 찾아와 붙여 품질을 올리고, 그 위에 자리수를 줄여 속도를 되찾는 식이다.
채우는 일과 뽑는 일
한 번의 답에 성격이 다른 두 일이 있다
바탕은 *KV 캐시다. 토큰마다 나오는 값을 담아 두어 이어 만들 때 처음부터 다시 안 만들게 하는 것이다.
그래서 답 만들기가 두 단계다. 캐시를 채우는 일과 새 토큰을 뽑아 내놓는 일이다.
이 둘을 다른 기계 무리에 나눠 두는 것이 발표가 미는 기법이다. 근거가 둘이다. 하나는 성격이 달라서다 — 채우는 쪽은 계산에, 뽑는 쪽은 메모리에 발목이 잡힌다. 다른 하나는 순서 다툼이다. 한 기계에 섞이면 채우려는 요청과 뽑으려는 요청이 서로 순서를 다툰다.
수가 나온다. 같은 H100 열여섯 장에서 지연을 한 점에 고정해 놓고 보면 GPU 한 장이 내놓는 양이 최대 두 배가 된다. 곧 값이 절반이다.
정직한 대목이 바로 붙는다.
안 통하는 자리
| 언제 | 어떻게 되나 |
|---|---|
| 넣는 말이 짧을 때 | 순서 다툼 자체가 적어 거의 안 빨라진다 |
| 아주 느리고 많이 뽑는 구간 | 나누지 않은 쪽이 도로 따라잡는다 |
| 아주 빠르고 적게 뽑는 구간 | 여기서도 나누지 않은 쪽이 조금 낫다 |
그러면서 사람이 쓰는 앱은 대개 초당 20~200 토큰 언저리를 신경 쓴다며, 그 구간이 이 기법이 듣는 자리라고 말한다.
값도 밝힌다. 나누면 캐시를 기계 사이로 옮겨야 하고, 채우는 쪽과 뽑는 쪽의 머릿수를 맞춰야 한다. 어긋나면 한쪽이 놀게 된다. 그 균형을 다시 잡는 일이 비싸고 어렵다고 말한다 — 각 단계를 어떻게 나눠 얹었는지에 따라 달라져서 경우의 수가 넓기 때문이다.
길잡이도 필요해진다. 이미 채워 둔 것과 겹치는 정도를 크게 잡으면서 그 기계에 이미 걸린 부하도 함께 보는 쪽으로 보낸다. 그리고 판이 클수록 담아 둔 것이 많아져 다시 채울 일이 줄어든다고 말한다. 이 길잡이는 하는 일 자체를 안 바꾸므로 품질에는 영향이 없다.
작은 모델에게 여러 번 묻는다
다른 축은 다시 묻기다.
크기가 다른 모델 셋을 놓고 잰 그림을 든다. 서너 번 다시 물으면 작은 것이 한 판 큰 것과, 그 한 판 큰 것이 또 그 위와 품질에서 엇비슷해진다.
값이 뒤집히는 자리가 여기다. 여러 번 물어도 큰 것에 한 번 묻는 것보다 싸다. 그러니 품질을 고정해 놓고 보면 작은 것을 여러 번 부르는 쪽이 더 빠르고 더 싸다.
붙는 요령도 있다. 다시 묻기를 바깥에서 하지 말고 길잡이 쪽에서 만들면 오가는 왕복이 줄어 지연이 낫다. 그리고 되풀이하는 일이라는 것을 길잡이와 일정 잡는 쪽이 알게 하면 이득이 더 붙는다.
도구를 부를 때의 요령도 든다. 도구가 도는 시간이 어느 정도 정해져 있으면, 밀려나기 전에 캐시를 옆 메모리로 옮겼다가 끝날 때쯤 도로 올려 둔다.
마지막 축이 변동이다.
쓰는 사람들의 씀씀이가 달라지면 채우는 쪽과 뽑는 쪽의 수요 비율이 바뀐다. 그러면 애써 맞춰 둔 균형이 어긋난다. 이것은 여러 곳이 낸 자료로 실제로 확인된 것이라고 말한다.
그래서 두 갈래를 실시간으로 늘리고 줄여야 한다. 그리고 못 박는다 — 이것은 그냥 좋은 것이 아니라 나눠 두는 기법이 제 힘을 내려면 반드시 있어야 하는 것이다.
두 배가 어느 조건에서 나온 값인지 얇다. 어떤 입력·출력 길이에서, 어느 지연 점에서 잰 것인지가 없다. 「최대」라고 붙여 놓았을 뿐이다.
모델 이름이 어긋난다. 예로 들 모델을 하나로 말해 놓고 뒤의 그림에는 다른 크기 셋이 나온다. 자막이 뭉갠 자리라 어느 것으로 잰 값인지가 원문에서 갈린다.
다시 묻기의 과제가 하나뿐이다. 어느 자료로 쟀는지가 한 번 나오고, 다른 종류의 일에서도 그런지가 없다. 서너 번이면 된다는 것도 그 과제에서의 값이다.
옮기는 값이 없다. 캐시를 기계 사이로 나르는 데 드는 시간과 대역폭이 나오지 않는다. 옆 메모리로 옮겼다 되돌리는 요령도 마찬가지다.
균형을 어떻게 잡는지가 없다. 어렵고 비싸다고만 하고 어떤 기준으로 머릿수를 정하는지가 안 나온다.
전부 자기네 도구 위의 이야기다. 다른 서빙 방식과 나란히 놓고 잰 자리가 없다.
용어
청구서를 받아도 어디서 난 값인지 되짚을 수 없다는 문제에서 출발해, 예산에 닿으면 죽이는 대신 시스템 지시문에 끼워 넣어 출력을 줄이는 조향형 통제를 시연함. 부르는 자리마다 표시를 달아 코드 바깥에 판을 두는 구조, 가져오는 조각을 스무 개에서 다섯 개로 깎는 사례, 자기네 벤치마크에서 평균 지출이 78% 줄고 끝맺는 비율이 67%에서 96%로 올랐다는 값이 나옴. 다만 그 값은 자기네가 만든 정책 묶음으로 자기네가 잰 것임.
▾한줄 코멘트. 예산을 넘겼을 때 죽이는 것 말고 할 일이 있다는 것이 이 발표의 값이다. 길게 쓰지 말라고 지시문에 끼워 넣고 가져올 양을 깎아서, 살려 둔 채 예산 안에 맞춘다. 끊는 것은 맨 마지막에만 쓴다. 다만 78%니 96%니 하는 수는 자기네가 만든 정책 묶음으로 자기네가 잰 것이다.
두 사람이 나온다. 앞사람만 자막 안에서 자기 이름을 댄다.
여는 문제가 또렷하다. 청구서를 받아도 그 값이 어디서 났는지 되짚을 수가 없다.
지금 판을 이렇게 부른다. 토큰을 최대한 쓰는 것을 값있게 여기는 판이고, 사람들이 스스로를 토큰 억만장자라 부르며 자랑스러워한다는 것이다.
사고 사례도 든다. 어느 큰 회사의 AI 예산이 넉 달 만에 바닥났다는 소식, 그리고 며칠에서 몇 달 사이 수억 달러로 치솟은 회사들이 있었다는 것이다. 돌고 도는 고리가 값을 키웠는데 그것을 막을 장치가 없었다.
앞선 두 시대와 견준다.
무엇으로 통제했나
| 시대 | 마주하는 곳 | 통제하던 방식 |
|---|---|---|
| 구독 | 화면 | 쓸 수 있는 양의 한도, 자리 수, 등급 |
| 클라우드 | 쓴 만큼 내기 | 자동으로 늘리고 줄이는 규칙 |
| 지금 | 모델을 부르는 것 | 여기에 제대로 된 통제 자리가 없다 |
모델 앞에 문을 세워 한도를 걸거나 더 싼 모델로 내려 보내는 것은 있다고 인정한다. 그런데 그것은 부르는 요청 하나하나를 볼 뿐이다.
필요한 것은 한 번의 실행 전체를 보는 것이라고 말한다. 도구와 에이전트 사이에서 도는 고리, 하나가 여럿을 새로 띄우는 것, 맥락이 계속 불어나는 것을 봐야 한다는 것이다.
발표가 세우는 순서
| 원칙 | 무슨 뜻인가 |
|---|---|
| 값의 단위가 토큰이다 | 값을 토큰으로 무니 값어치도 토큰으로 봐야 한다 |
| 값은 모델을 부르는 경계에서 난다 | 그러니 그 자리를 짚어야 한다 |
| 누가 불렀는지 못 대면 못 막는다 | 어느 에이전트의 어느 실행인지가 붙어야 한다 |
| 막는 것은 맨 나중이다 | 먼저 줄이고, 정책을 다 쓴 뒤에야 끊는다 |
셋째가 *귀속이다. 이것이 없으면 무엇이 잘못됐는지 큰 그림만 알고 되짚어 좁힐 수가 없다고 말한다.
판이 세 겹으로 선다
만든 것은 코드 바깥에 따로 두는 판이다. 그래서 코드에 끼어들지 않는다는 것을 설계에서 일부러 골랐다고 밝힌다.
바꾸는 것은 하나뿐이다. 부르는 자리에 표시를 다는 것이다. 어떤 틀의 어떤 함수든 붙일 수 있다.
그 표시가 두 가지 일을 한다. 드나든 것을 위로 올려 원장에 적고, 반대로 통제 판이 내리는 명령을 받아 오는 통로가 된다. 명령을 실제로 적용하는 몫은 따로 있는데, 개발자가 허용한 행동이 무엇인지 알고 있어서 부수지 않는 방식으로 먹인다.
통제 판 쪽은 층으로 나뉜다. 사용자를 묶은 무리, 실행 하나의 기록을 모은 원장, 시간 창에 걸린 예산, 할 수 있는 행동, 그리고 그것을 엮는 정책이다.
담아 두는 자리가 쓰는 쪽의 울타리 안이라 자료가 새 나갈 걱정이 없다고 말한다.
끊는 대신 돌려세운다
예산에 닿았을 때 무엇을 하나
행동이 두 갈래다. 넘으면 끊는 쪽과, 죽이지 않고 행동을 돌려세우는 쪽이다.
구체적인 예가 좋다. 자료를 가져오는 도구가 부를 때마다 조각 스무 개를 만드는데 모델이 다섯 개 넘어서는 쓰지도 않는 경우다. 그러면 통제 판이 가져올 것을 다섯 개로 깎으라는 명령을 내려보낸다.
값을 지키는 장치도 하나 든다. 쓴 예산의 비율과 쓰는 속도 둘을 보다가 바닥날 것 같으면, 시스템 지시문에 「예산이 모자라니 짧게 내라」는 식으로 끼워 넣는다.
시험용으로 든 것은 찾아보는 에이전트와 간추리는 에이전트 둘이 이어진 흐름이다.
먼저 정책은 다 돌되 집행은 안 하는 모드로 보인다. 실행은 끝까지 가고 화면에는 어떤 정책이 돌았는지가 남는다.
다음은 켠 채로 돌린다. 미리 정한 값을 넘겨 그 자리에서 죽는다. 스스로 이것을 차단기에 빗댄다.
마지막이 돌려세우는 쪽이다.
자기네가 잰 값
| 무엇 | 값 |
|---|---|
| 평균 지출 | 78% 줄었다 |
| 끝맺는 비율 | 67%에서 96% 남짓으로 |
| 견준 대상 | 그냥 조여 막는 방식 |
그냥 조여 막으면 무슨 일이 있어도 실행이 죽는다는 것이 대비의 근거다.
여기서 끝이 아니라고 말한다. 앞으로는 원장을 보고 아직 못 잡는 실패 갈래를 스스로 묻게 해서, 새 정책을 만들거나 있는 값을 다듬게 하고 싶다는 것이다.
잰 값이 전부 자기네 것이다. 78%도 96%도 자기네가 만든 정책 묶음으로 자기네가 쟀다. 견준 대상도 「그냥 조여 막기」 하나뿐이라, 손으로 잘 짠 한도와 견주면 어떤지가 없다.
무엇을 잃었는지 없다. 지출이 78% 줄었다면 답의 품질은 어떻게 됐는지가 나오지 않는다. 짧게 내라고 끼워 넣는 방식은 답을 바꾸는 일인데 그 대가가 없다.
저장소 둘에서 잰 값이다. 오픈소스 두 곳에서 돌렸다고만 하고 실제 업무에서 잰 값이 없다.
우버 넉 달과 수억 달러는 남의 소식이다. 어디서 본 것인지, 무엇이 그렇게 만들었는지가 없다.
판을 얹는 값이 없다. 부르는 자리마다 표시를 달고 명령을 오가게 하면 느려질 텐데 그 값이 나오지 않는다.
공동 발표자는 자막에서 자기 이름을 대지 않는다. 그 이름과 몇몇 도구 이름이 자막에서 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
모델이 2만 개에서 300만 개로 몇 해 만에 150배 늘면서 훑어 찾던 검색이 무너지고 색인 기반으로 갈아탄 이유. 모델 자체와 모델에 관한 것을 다른 저장소에 갈라 둔 구조, 읽기를 어디로 보내고 무엇만 프라이머리에 남기는지의 네 가지 기준, 그리고 파드 자동 확장과 노드 자동 확장을 두 겹으로 쌓은 방식이 구체적으로 나옴. 사용자 1400만 명에서는 1%만 느려도 14만 명이라는 셈이 이 발표의 출발점.
▾한줄 코멘트. 일을 묻는 순간에서 넣는 순간으로 옮긴 것이 이 발표의 뼈대다. 이름을 물을 때마다 훑던 것을 넣을 때 미리 쪼개 두는 쪽으로 바꿨다. 그리고 프라이머리는 프라이머리만 할 수 있는 일에 쓴다는 규칙이 그 뒤를 받친다.
머신러닝 판과 데이터베이스를 맡는다는 사람이 발표한다.
수부터 놓는다. 사용자 1400만 명, 공개 모델 300만 개, 데이터 묶음 100만 개, 조직 5만 곳이다. 포춘 500대 기업의 30% 넘게가 쓴다고 말한다.
늘어난 폭이 문제의 뿌리다. 몇 해 전 2만 개이던 모델이 지금 300만 개 — 150배다. 데이터 묶음도 2022년 1만, 2024년 10만, 한 해가 채 안 되기 전 50만, 지금 100만이다.
큰 모델이 하나 나올 때마다 그 위에 얹은 모델이 수천 개씩 생긴다고 말한다.
이 모든 것을 담고 색인하고 찾을 수 있게 해야 하는데 마지막이 가장 어렵다고 말한다.
나누는 문장이 또렷하다. 2만 개일 때는 색인이 없어도 아무 물음이나 빠르고 아무도 눈치채지 못한다. 300만 개가 되면 같은 방식이 무너진다.
그리고 셈을 댄다. 검색이 느리면 사람들은 그냥 떠난다. 사용자가 1400만이면 1%만 겪어도 14만 명이다.
그래서 보는 수가 다르다. 가운데 값보다 뒤쪽 값이 훨씬 중요하다며 *P99에 매달린다고 말한다.
담는 자리를 갈라 둔다
무엇을 어디에 두나
바탕 구조가 이것이다. 문서 저장소에는 모델 자체가 아니라 모델에 관한 모든 것을 담는다 — 누가 만들었고 어디에 있고 설정과 과금과 권한이 어떤지다.
모델 파일과 딸린 것들은 다른 저장소에 둔다.
얻는 것이 분명하다. 설명하는 쪽과 파일 쪽과 계산하는 쪽을 따로따로 늘릴 수 있다.
물을 때 훑지 말고 넣을 때 쪼갠다
예전 방식을 그대로 밝힌다. 모델 이름을 물을 때마다 무늬로 훑었고, 결과는 인기 점수로 줄 세웠다. 그 점수는 5분마다 다시 셈했고 최근 이레의 내려받기와 좋아요를 봤다.
작을 때는 잘 돌았다. 그런데 훑는 방식은 안 늘어난다. 자료가 급히 커지자 지연이 나기 시작했다.
바꾼 쪽은 이렇다. 이름을 넣는 순간 조각으로 쪼개 배열에 담아 둔다. 그러면 찾을 때 쌓아 둔 색인이 바로 집어 온다.
읽기 쪽도 따로 뒀다. 본래 자료가 든 자리 말고 읽기와 목록만을 위한 사본을 하나 더 둔 것이다.
바꾼 뒤로는 검색창에서 지연 문제가 없다고 말한다.
검색만 있는 것이 아니라고 말한다. 수백 개의 서비스가 같은 저장소를 두드린다.
일곱 대로 묶은 무리를 쓰고, 쓰는 일은 한 대만 할 수 있으니 그쪽으로 보내고 읽는 일은 여러 대로 흩는다.
읽기를 어디로 보내나
| 무엇 | 어디로 | 왜 |
|---|---|---|
| 방금 것이 아니어도 되는 물음 | 따라 적는 쪽 | 굳이 한 대에 몰 이유가 없다 |
| 크게 훑고 모으고 바꾸는 일 | 따라 적는 쪽 | 무겁다 |
| 바뀐 것을 실시간으로 받아 가는 일 | 따라 적는 쪽 | 이것도 가볍지 않다 |
| 그때그때 보는 물음과 보고용 | 숨겨 둔 한 대 | 실제 트래픽과 떼어 놓는다 |
숨겨 둔 한 대는 자료는 계속 받아 오되 평소 요청은 안 받는다. 무거운 물음이 있을 때 거기에 직접 붙는다.
규칙은 한 줄로 정리된다. 프라이머리는 프라이머리만 할 수 있는 일에 쓰고 나머지는 다른 데로 민다.
곧 한 무리로는 모자라진다며 다음 걸음으로 *샤딩을 든다. 모두가 전부를 갖는 대신 자료를 조각내 조각마다 다른 무리에 둔다. 조각마다 그 안에서 또 프라이머리와 따라 적는 쪽을 갖는다. 더 늘리고 싶으면 조각을 더 붙이면 되고 나누는 일은 자동으로 맞춰 준다.
무엇을 기준으로 쪼갤지가 만만찮은 일이라고 인정하면서 이 발표에서 다룰 자리는 아니라고 넘긴다.
자동 확장은 두 겹이다.
두 겹
| 겹 | 무엇이 늘어나나 |
|---|---|
| 위 | 몰릴 때 실행 단위가 늘고 빠지면 준다. 열 개에서 오백 개까지 |
| 아래 | 그것을 얹을 기계가 모자라면 기계를 더 붙인다 |
앞으로 위쪽을 다른 방식으로 옮길 계획이라고 말한다. 지금은 CPU와 메모리만 보고 늘리는데, 바꾸면 초당 요청 수 같은 실제 지표로 늘릴 수 있다. 그래서 CPU는 한가한데 줄이 밀려 있는 상태를 지금 방식은 못 보고 새 방식은 본다는 것이다.
닫는 말이 좋다. 이 얼개의 가장 좋은 점은 쓰는 사람이 이것을 생각할 일이 없다는 것이다. 밑이 아무리 복잡해져도 위를 단순하게 지키는 것이 규모를 늘리는 일의 본질이라고 말한다.
바꾸기 전과 후를 견준 값이 없다. 훑던 시절이 얼마나 느렸고 지금이 얼마인지가 안 나온다. 매달린다는 그 뒤쪽 값도 실제 수치가 한 번도 안 나온다.
드는 값이 없다. 일곱 대를 굴리고 실행 단위를 오백 개까지 늘리는 데 얼마가 드는지가 없다. 비용 효율이라고 말하면서 견준 자리가 없다.
쪼개기는 아직 안 했다. 다음 걸음이라고만 하고, 무엇을 기준으로 쪼갤지는 이 발표에서 안 다룬다고 넘긴다.
바꾼 뒤 문제가 없었는지 없다. 색인 쪽으로 옮기면서 잃은 것 — 이를테면 어떤 물음이 안 되게 됐는지 — 이 나오지 않는다.
읽기를 흩는 데 따르는 어긋남이 없다. 방금 쓴 것이 아직 안 보이는 경우를 어떻게 다루는지가 「강한 일관성이 필요한 것만 남긴다」로만 나온다.
자막이 사람 이름과 도구 이름을 뭉갠다. 발표자 이름부터 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
기기에서 도는 모델이 3~4기가라 앱마다 못 담고 시스템 서비스 하나로 얹어 앱들이 나눠 쓰는 구조. 앱이 백 개가 돼도 괜찮은 이유가 값을 가운데로 몰았기 때문이라는 답, 하루 열댓 번 쓰는 정도는 배터리에 문제없되 쉬지 않고 돌리면 금세 준다는 자인, 앞의 앱이 대기줄에서 먼저 간다는 규칙이 나옴. 새 갈래가 닿는 기기 폭이 가장 좁다는 것도 그대로 밝힘.
▾한줄 코멘트. 모델을 앱이 아니라 시스템이 들고 있다는 한 가지가 이 자리의 전부다. 쓸 만한 것이 최소 1기가이고 실제로 내보내는 것은 3~4기가라 앱 하나가 질 무게가 아니기 때문이다. 슬라이드 발표가 아니라 묻고 답하는 자리라, 값나가는 대목이 대부분 청중 물음에 붙어 있다.
두 사람이 나온다. 한 명은 개발자 쪽을 맡고 한 명은 기기 AI 제품을 맡는다. 이 시간은 발표가 아니라 물음에 답하는 자리로 쓰겠다고 먼저 밝힌다.
기기에서 지능형 기능을 만드는 길
| 갈래 | 어떻게 |
|---|---|
| 기기에서만 | 물음이 기기 안에서 처리되고 서버로 안 나간다 |
| 섞어 쓰기 | 기기에 모델이 있으면 거기서, 없으면 밖에서 |
| 밖에서만 | 전부 서버에 맡긴다 |
*온디바이스로 얻는 것 셋을 든다. 민감한 것이 기기를 안 벗어난다, 끊겨도 된다, 부를 때마다 값이 더 안 든다.
맞는 쓰임으로는 민감한 자료를 다루는 일, 그 사람에 맞추는 일, 그리고 맥락이 짧아도 되는 일을 든다.
기기에서 돌리는 방법이 또 둘로 갈린다. 미리 얹힌 모델을 쓰는 길과 자기 모델을 담는 길이다. 뒤쪽은 바로 다음 발표에서 다룬다며 이 자리에서는 앞쪽만 이야기한다.
앱마다 담을 수 없는 무게
모델을 누가 들고 있나
바탕 구조가 이것이다. 모델은 시스템 서비스를 통해 기기에 들어오고, 기기에 하나만 있고 앱들이 다 그것을 같이 쓴다.
왜 그렇게 했는지는 청중 물음에 답하며 나온다. 쓸 만하려면 가장 작은 것도 1기가이고 실제로 내보내는 것은 3~4기가다. 앱 만드는 쪽이 그걸 담아 내보내기는 쉽지 않다.
그래서 답이 이렇다. 시스템에 한 번 넣어 두면 다 같이 나눠 쓰고 값도 나눠 문다. 그러니 앱이 백 개가 돼도 걱정 없다고 말한다.
딸려 오는 것도 있다. 요청이 서로 섞이지 않게 따로 돌고, 넣은 것과 나온 것을 기기에 안 담아 둔다.
배터리를 묻는 물음에 정직하게 답한다.
최대한 줄였지만 그래도 윗급 성능이 필요하고, 쉬지 않고 돌리면 배터리가 꽤 빨리 준다고 인정한다.
그러면서 실제 씀씀이를 든다. 하루에 열 번, 스무 번쯤 묻고 답 받는 정도이고 그 정도면 배터리가 걱정될 일이 아니라는 것이다. 묶어 처리하는 일처럼 급하지 않은 것은 충전하는 밤에 뒤에서 돌리는 사람들도 있다고 말한다.
여럿이 한 모델을 쓰니 순서 문제도 생긴다. 답은 단순하다. 지금 앞에 떠 있는 앱이 먼저 가고 뒤에서 부르는 것은 줄을 선다.
배터리를 어떻게 다스리느냐에 대한 답도 실용적이다. 어느 앱이 많이 쓰는지 사용자에게 알려 주는 쪽으로 간다는 것이다 — 위치나 무선을 많이 쓰는 앱을 알려 주던 방식과 같다고 말한다.
어디까지 닿나
닿는 폭을 묻는 물음에 세 층으로 답한다.
예전부터 있던 작은 모델들은 훨씬 가벼워 십억 대 넘는 기기에서 문제없이 돈다. 새 갈래는 최근 몇 해의 윗급 기기만 된다. 더 넓히고 싶으면 직접 담는 쪽으로 내려가야 하는데, 그때부터 기기마다 되는지 확인하는 일이 만드는 쪽 몫이 된다.
닿는 폭을 넓히는 다른 길로 섞어 쓰기를 든다. 기기에 모델이 없으면 밖으로 넘기는 방식이고, 몇 주 전에 냈다고 말한다.
이 자리가 정직해지는 대목이 몇 있다.
음성 비서에게 물으면 기기에서 처리되느냐 밖에서 처리되느냐는 물음에 솔직히 잘 모르겠고 밖일 것 같다고 답한다.
글을 벡터로 바꿔 비슷한 것을 찾는 기능을 묻자 아직 그 API가 없고 곧 낸다고 답한다.
스킬을 어떻게 쓰느냐는 물음에는 직접 쓸 일이 아니라 프롬프트에 얹히는 것이라고 정리한다.
잰 값이 없다. 얼마나 빠른지, 배터리를 얼마나 쓰는지가 수로 안 나온다. 하루 열댓 번이면 괜찮다는 말도 근거가 아니라 어림이다.
줄을 서면 얼마나 기다리는지 없다. 앞의 앱이 먼저 간다는 규칙만 있고 뒤의 앱이 얼마나 밀리는지가 없다.
닿는 폭에 수가 하나뿐이다. 예전 모델이 십억 대 넘는다는 것만 있고, 새 갈래가 실제로 몇 대에 닿는지가 없다.
섞어 쓰기의 대가가 없다. 밖으로 넘어갈 때 값이 얼마나 들고 얼마나 느려지는지가 안 나온다.
모두 한 회사 판 안의 이야기다. 다른 방식과 나란히 놓고 잰 자리가 없다.
자막이 제품과 사람 이름을 크게 뭉갠다. 발표자 이름부터 도구 이름까지 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
이름이 「사실상 스무 억」인데 실제 개수는 마흔 억쯤인 이유. 층마다 붙는 임베딩을 계산이 아니라 표 찾기로 만들어 놓아 빠른 자리 대신 느린 자리나 디스크에 둘 수 있고, 그래서 빠른 자리에 올리는 몫으로 이름을 붙였다는 구조가 나옴. 노트북 한 대에서 열 개를 나란히 돌려 초당 100토큰씩 그림을 그리게 한 시연, 라이선스를 통상적인 것으로 바꾼 경위, 내놓은 지 이레 만에 다운로드 1000만 건이라는 수도 함께 있음.
▾한줄 코멘트. 이름이 가진 개수가 아니라 빠른 자리에 올리는 몫을 가리킨다는 대목이 이 발표에서 가장 헷갈리기 쉬운 자리이자 값나가는 자리다. 층마다 붙는 임베딩을 계산이 아니라 표 찾기로 만들어 두었기에 그것을 느린 자리에 밀어 둘 수 있다. 다만 자막에서 모델 크기 숫자가 여러 군데 어긋난다.
이레 전에 새 판을 냈다며 연다. 자막 안에서 발표자가 자기 이름을 대지는 않는다.
*오픈 모델을 이렇게 정의한다. 내려받아 내 장비, 내 기기에서 돌리고 손볼 수 있는 것이다.
한 해 전 판을 두고는 소비자용 그래픽카드 한 장에 들어가는 가장 센 오픈 모델이었다고 말한다. 그때는 십억에서 이십칠억 남짓까지 만들었고, 이번 판은 그보다 넓은 폭으로 냈다.
가장 작은 둘은 휴대폰에서도, 작은 보드에서도 돈다고 말한다. 이틀 전에는 누군가 휴대용 게임기에 얹어 돌리는 것을 봤다고 한다.
이름과 실제 개수가 다르다
이 발표의 손잡이다.
작은 쪽 모델의 이름에 붙은 「사실상 스무 억」이라는 말이 가진 개수를 뜻하지 않는다. 실제로는 마흔 억쯤 갖고 있다.
이름이 가리키는 것은 빠른 자리에 실제로 올려 두는 몫이다.
무게를 어디에 두나
무게를 어디에 두나
되는 이유가 구조에 있다. 층마다 붙는 임베딩이라는 얼개를 쓰는데, 이것이 계산해야 하는 것이 아니라 표에서 꺼내 보는 것처럼 동작한다.
셈을 안 하니 비싼 자리를 차지할 이유가 없다. 그래서 느린 메모리에 두거나 디스크에 둬도 된다.
그러면 오십 억짜리라도 빠른 자리에는 이십 억만 올리고 나머지는 밀어 둘 수 있다. 널리 쓰는 실행 도구에서 깃발 하나로 그 부분을 옮길 수 있다고 말한다.
보여 준 것이 구체적이다. 노트북 한 대에서 열 개를 나란히 돌려 각각 다른 그림을 그리게 했고, 그러고도 초당 100토큰쯤 나왔다.
기능 쪽도 짚는다. 가장 작은 것들도 그림과 영상과 소리를 알아듣고, 말을 글로 옮기거나 옮기면서 번역까지 한다. 140개가 넘는 언어로 배웠다며 널리 안 쓰이는 언어 둘을 예로 든다.
정직한 대목이다. 예전 판의 라이선스가 좋지 않았고 사람들이 제대로 된 것을 원했다는 피드백을 받았다고 밝힌다.
그래서 이번 판에서 통상적인 오픈소스 라이선스로 바꿨다.
발표가 대는 수
| 무엇 | 값 |
|---|---|
| 이번 판 기본 모델 내려받기 | 이레 만에 1000만 건 |
| 이번 판에서 갈라져 나온 모델 | 1000개 넘게 |
| 계열 전체 내려받기 | 5억 건 넘게 |
| 계열 전체 모델 수 | 10만 개 넘게 |
함께 일하는 실행 도구와 배포처를 여럿 든다. 편집기 쪽에도 끊긴 채로 쓰는 모드가 생겨 그 위에서 코드를 돕는다고 말한다.
쓰임 사례도 든다. 안전 판정용으로 갈라 낸 것, 의료 쪽으로 낸 것, 동남아 언어를 훈련하는 곳, 인도에서 정부가 투자해 나라 단위 모델을 만드는 곳이다.
가장 센 사례는 지난 12월 논문이다. 연구자들이 이 모델로 암 치료 경로를 제안했고 실제 실험실에서 확인됐다고 말한다.
닫는 말은 소박하다. 앞으로 두 주 안에 한 시간만이라도 직접 돌려 보라는 것이다.
모델 크기 숫자가 자막에서 어긋난다. 계열의 위쪽 크기를 한 번은 이렇게, 다른 자리에서는 다르게 말하고, 가운데 모델의 크기도 두 수가 나란히 나온다. 정확한 표기는 원문에서 갈린다.
벤치마크를 건너뛴다. 성능 표는 넘기겠다고 말하고 지나간다. 그러니 좋아졌다는 주장이 그림 하나에만 걸려 있다.
그 그림의 한계를 스스로 밝힌다. 쓴 순위표가 완벽한 기준이 아니라고 말하며, 사람들이 얼마나 좋아하는지를 어림잡는 정도라고 덧붙인다.
초당 100토큰의 조건이 없다. 어느 크기 모델이었는지, 어떤 노트북이었는지가 없다.
느린 자리에 밀어 뒀을 때의 대가가 없다. 그만큼 느려질 텐데 얼마나인지가 나오지 않는다.
암 치료 사례의 알맹이가 없다. 무엇을 제안했고 어떻게 확인됐는지가 한 줄로만 지나간다.
내려받기 수는 쓰임이 아니다. 1000만 건도 5억 건도 받은 횟수일 뿐, 실제로 무엇에 얼마나 쓰였는지는 알 수 없다.
용어
서로 다른 틀에서 만든 모델을 한 형식으로 모아 휴대폰·노트북·작은 보드까지 같은 파일로 내보내는 경로. 작은 모델에 함수 호출과 구조화 출력과 사고 과정이 기기 안에서 붙었다는 것, 전용 칩을 쓰면 세 배에서 열 배라는 전망, 경쟁 실행기 대비 모바일 35배라는 자체 값이 나옴. 다만 그 배수들에 조건이 거의 안 붙는다. 그날 아침 만든 로봇 데모가 아직 느리다고 스스로 밝히는 대목도 있음.
▾한줄 코멘트. 한 형식으로 모아 두면 그 뒤로는 어디든 같은 파일 하나로 간다는 것이 이 발표의 뼈대다. 값나가는 대목은 작은 모델에 함수 호출과 구조화 출력이 프롬프트 요령이 아니라 구조로 붙었다는 자리다. 다만 든 배수들 — 세 배에서 열 배, 최대 열세 배, 35배 — 에 조건이 거의 안 붙는다.
기기 쪽 실행기를 맡는다는 사람이 발표한다. 질의응답에 함께할 동료가 있다고 소개하는데 그 이름은 자막에 안 나온다.
기기에서 돌리는 이점으로 넷을 든다. 빠르다, 자료가 안 나간다, 끊겨도 된다, 값이 덜 든다. 첫째의 예로 실시간 카메라 쪽 일을 든다.
한 대목이 눈에 띈다. 이 행사 발표들에서 토큰을 얼마나 썼는지 불평하는 이야기를 많이 봤다며, 기기 쪽이 클라우드와 섞어 쓰는 균형을 준다고 말한다.
이번에 나온 작은 두 모델에 집중한다고 말한다. 큰 판이 대화 상대에서 스스로 움직이는 쪽으로 옮겨 갔다는 것이 이번 세대의 변화라고 한다.
무게도 댄다. 작은 쪽은 1~2기가 남짓 쓰고 목소리로 주고받거나 간추리는 일에 맞는다. 큰 쪽은 노트북이나 사물인터넷 기기처럼 더 큰 판을 겨눈다. 그리고 이 수는 *양자화를 거친 뒤 기준이라고 단서를 단다.
새로 붙은 것 셋이 실무적이다. 도구를 부르는 기능, 정해진 형식으로 답을 내놓는 기능, 그리고 생각을 펼쳐 보이는 모드다. 둘째에 대해 짚는 대목이 값나간다 — 프롬프트를 잘 써서 얻어 내는 것이 아니라 모델 구조에 넣은 것이라고 말한다.
체험용 앱을 소개한다. 기기 안에서 목소리를 받아 적고, 그림을 두고 묻고, 대화하는 것을 보여 준다.
만든 뜻도 밝힌다. 무엇이 되는지 감을 잡게 하는 놀이터이고, 기능마다 예제 코드가 있으며 그대로 떠 가서 자기 것을 만들어도 된다는 것이다.
보인 사례가 구체적이다. 백과사전을 뒤져 답하는 스킬, 하루 기분을 적어 두고 최근 이레의 흐름을 기기 안에서 분석하는 것, 사진을 주고 그 분위기에 맞는 소리를 만들게 하는 것이다.
그리고 그 스킬을 앱을 나가지 않고 앱 안에서 직접 쓸 수 있다고 말한다. 사람들이 만든 것을 올리는 자리도 따로 있다.
배포가 지나는 세 걸음
바닥은 오래된 기기용 실행기 위에 서 있다고 말한다. 앱 10만 개 넘게, 사용자 수십억이 이미 쓰고 있다는 것이다.
이름을 바꾼 이유가 이 절의 요점이다. 자기네 틀에서 만든 것만 받는 게 아니라 다른 틀에서 만든 것도 받는다는 것을 보이려는 것이었다.
경로는 이렇다. 어디서 온 모델이든 한 형식으로 바꾸고, 필요하면 자리수를 줄인다. 그다음 말을 다루는 것이면 그 길로, 아니면 다른 길로 간다.
그러면 같은 파일이 여러 판에서 돈다 — 휴대폰 두 갈래, 데스크톱 세 갈래, 웹, 그리고 작은 보드까지다.
곁들이는 도구도 있다. 그래프를 뜯어보며 어디를 줄일지 정하는 것, 그리고 미리 컴파일할지 그때그때 할지를 정하게 돕는 재기 서비스다.
어느 칩에 얹나
어느 칩에 얹나
일반 연산 장치와 그림 처리 장치는 이미 두루 된다고 말한다. 남은 것이 *NPU다. 두 곳과는 붙였고 다른 곳들과 붙이는 중이라고 밝힌다.
그러면서 전망을 댄다. 전용 장치가 적어도 세 배에서 열 배를 줄 것이고 쓰는 에너지 면에서 판을 바꿀 것이라는 이야기다.
발표가 댄 배수와 값
| 무엇 | 값 | 어떤 값인가 |
|---|---|---|
| 전용 장치 | 3~10배 | 앞으로 그럴 것이라는 전망 |
| 새 가속기 | 경우에 따라 최대 13배 | 어느 경우인지는 안 밝힘 |
| 어느 휴대폰 판 | 초당 56토큰쯤 | 어느 모델·설정인지 없음 |
| 다른 실행기와 견주기 | 모바일 35배, 데스크톱 대등, 사물인터넷 3배 | 자기네가 잰 값 |
그날 아침 만들었다는 작은 보드 로봇도 보인다. 시키는 말에 안테나를 흔든다. 그러고 급히 만들어 아직 성능을 손봐야 한다고 스스로 말한다.
질의응답에서 익숙한 사례를 든다. 휴대폰의 얼굴 잠금이 이미 기기 안에서 이 실행기로 돈다는 것이다. 집에 두는 카메라 같은 것은 진짜인지 확인하는 절차가 따로 필요할 것 같다고 답한다.
배수에 조건이 없다. 35배가 어느 모델, 어느 기기, 어떤 길이에서 나온 값인지가 없다. 최대 13배도 「경우에 따라」로만 말한다.
3~10배는 잰 값이 아니다. 앞으로 그럴 것이라는 전망으로 나온다.
초당 56토큰의 조건이 없다. 어느 크기 모델을 어느 기기에서 돌린 값인지가 안 나온다.
로봇 데모가 느리다고 본인이 말한다. 그러니 작은 보드에서 실제로 쓸 만한지는 이 자리에서 안 보였다.
전용 장치의 대가가 없다. 붙이는 데 무엇이 드는지, 아직 안 붙은 곳에서는 어떻게 되는지가 없다.
앱 10만 개와 사용자 수십억은 옛 실행기의 몫이다. 새로 얹은 모델 쪽 수가 아니다.
자막이 제품과 사람 이름을 뭉갠다. 모델 계열 이름이 한 번 다르게 발화되고 발표자 성 표기도 갈려서, 정확한 표기는 원문에서 확인해야 한다.
용어
이미 널리 쓰이던 실행기 위에 「기기에 모델을 얹고 챙기는 서비스」 한 겹을 새로 얹어 만든 판. 작은 모델을 돌려 초당 90토큰쯤이 나온 실측, 같은 코드가 두 운영체제에서 각기 다른 모델로 도는 시연, 그리고 파일과 이미지를 다루는 도구를 붙여 영수증에서 합계를 뽑는 로컬 에이전트가 나옴. 마지막에 「로컬 모델은 대체로 클라우드만큼 못하다」고 스스로 못 박는 대목이 있음.
▾한줄 코멘트. 새로 만든 것은 가운데 한 겹뿐이라는 것이 이 발표를 읽는 틀이다. 아래 실행기도 위의 도구도 이미 있던 것이고, 그 사이에 기기에 모델을 얹고 챙기는 서비스를 끼워 이어 붙였다. 닫는 말이 정직하다 — 로컬 모델은 대체로 클라우드만큼 못하니 그런 일을 기대하지 말라고 본인이 말한다.
마이크로소프트에서 제품을 맡는다는 사람이 발표한다.
여는 물음이 이것이다. 클라우드가 그렇게 센데 왜 기기에서 돌려야 하나.
고객과 이야기하며 본 이유로 넷을 든다. 망이 나쁘거나 끊겼을 때, 밖으로 나가면 안 되는 자료를 다룰 때, 부르는 횟수가 어마어마해 값이 감당 안 될 때, 그리고 기다릴 수 없을 때다.
첫째에 붙이는 농담이 이 자리답다. 행사장 인터넷이 나쁜 것을 다들 겪었을 텐데 자기 시연은 전부 기기에서 도니 걱정이 없다는 것이다.
셋째의 예로 날마다 수억 번 부르는 게임을 든다.
이어서 지금 준비가 됐느냐를 묻고 셋을 댄다. 기기 쪽 칩이 좋아졌고, 가볍고 빠른 모델이 계속 나오고, 실행하는 쪽 최적화 기법도 붙었다는 것이다.
세 겹 중 새로 만든 것은 하나
만든 과정을 스스로 이렇게 말한다. 이미 좋은 자산이 여럿 있었다.
이어 붙인 것들
| 자산 | 규모로 든 수 |
|---|---|
| 클라우드 쪽 모델 판 | 조직 7만 곳 넘게, 모델 1900개 넘게 |
| 기기 쪽 실행기 | 매달 내려받기 1000만 건 넘게 |
| 운영체제 | 닿는 폭이 크다고만 말한다 |
그 사이에 새로 넣은 것이 기기에 모델을 얹고 챙기는 서비스다. 이것이 클라우드 쪽 판에 붙어 필요할 때 모델을 내려받는다.
쓰는 자리로는 명령줄과 SDK를 준다. 한 달 전에 공식으로 알렸고 두 운영체제에서 쓸 수 있다고 말한다.
칩 회사 여럿과 붙여 두었고, 공식 발표 전 100곳 넘는 고객이 닫힌 시험에 참여했다고 말한다.
깔고 나서 목록을 보면 모델마다 칩에 맞춘 판이 따로 있다. 자기 기기에는 전용 칩이 없어 그 판은 안 보인다고 말한다.
작은 모델을 돌려 물어보고 초당 90토큰쯤이 나오는 것을 확인한다. 그다음 한 판 큰 모델로 같은 것을 물어 본다. 크고 조금 느린데 답이 더 자세하다며 자기라면 이쪽으로 만들겠다고 말한다.
만들어 보인 것은 문서를 간추리는 앱이다. 새 조직에 가서 내부 문서를 빨리 읽어야 하는데 클라우드에 올릴 수 없는 상황을 예로 든다.
그리고 이 발표에서 가장 실용적인 대목이 나온다. 팀원 하나가 다른 운영체제를 써서 프로젝트를 통째로 싸서 보냈고, 그 사람이 같은 명령으로 그대로 실행해 시연을 찍어 보냈다. 다만 그쪽은 다른 모델을 골랐고 답이 더 짧았다.
로컬 에이전트가 도는 순서
마지막이 에이전트다. 아직 닫힌 시험 단계라고 먼저 밝힌다.
짜임은 단순하다. 모델 하나에 도구 서버 하나 이상이다. 여기서 그 서버들을 잇는 규격이 *MCP다.
돌려 보이는 것이 이미지에서 글자를 뽑는 에이전트다. 실행하면 갖춘 것을 먼저 살펴 없으면 허락을 받아 깔고, 어느 폴더까지 볼지 권한을 묻는다.
시킨 일은 영수증을 찾아 합계를 구하는 것이다. 먼저 찾는 도구를 쓰고 그다음 읽어 내는 도구를 쓴 뒤 합계를 내놓는다.
닫는 말이 이 발표에서 가장 정직하다. 로컬 모델은 대체로 클라우드 모델만큼 세지 않다. 그러니 클라우드 쪽이 하는 정교한 일까지 기대하면 안 되지만 그래도 열린 것이 많다는 이야기다.
초당 90토큰의 조건이 없다. 어떤 기기에서, 어느 칩으로, 어떤 설정으로 잰 값인지가 없다. 견준 앞의 값도 없다.
두 모델을 견준 것이 답 하나씩이다. 어느 쪽이 나은지를 한 물음에 대한 인상으로 말한다.
고객 후기에 수가 없다. 메모리와 첫 응답과 초당 토큰이 눈에 띄게 나아졌다고 하는데 얼마나인지가 없다. 후기 자체도 파는 쪽이 골라 실은 것이다.
100곳 넘는 시험 참여자의 결과가 없다. 참여했다는 것만 있고 무엇이 좋았고 무엇이 안 됐는지가 없다.
에이전트 기능은 아직 못 쓴다. 닫힌 시험이라 신청해야 한다고 말한다.
이유를 넷 든다면서 번호를 셋에서 다시 센다. 자막에서 발표자가 「세 번째」를 두 번 말한다.
자막이 제품과 모델 이름을 크게 뭉갠다. 자기 제품 이름부터 여러 군데 다르게 적혀 있어 정확한 표기는 원문에서 갈린다.
용어
서버가 수천 개 등록된 목록이 있어도 기업은 관측·권한·보안 셋을 못 푼다는 진단과, 보안팀이 판 하나만 승인해 주면 그 뒤로는 팀마다 각자 만들어도 된다는 처방. 법무팀이 기술팀을 안 거치고 계약서 다루는 서버를 직접 만드는 그림, 가운데가 대신 맡는 다섯 몫, 그리고 에이전트를 어디에 두든 가운데는 안 바뀐다는 닫는 말이 나옴. 다만 이 발표에는 잰 값이 하나도 없다.
▾한줄 코멘트. 보안팀이 판 하나를 승인해 주면 그 뒤로는 팀마다 각자 만들어도 된다는 한 수가 전부다. 신원·권한·기록·연결·배포를 가운데가 떠맡으면 새로 만드는 쪽은 자기 일만 짜면 된다는 것이다. 다만 이 발표에는 잰 값이 하나도 없다 — 좋아진다는 말은 전부 논리이지 측정이 아니다.
앤스로픽에서 기업 쪽에 나가 붙어 일한다는 사람이 발표한다. 미국 밖에서는 처음이라고 밝힌다.
프로토콜 자체는 열려 있고 공식 목록에 서버가 수천 개 넘게 올라 있으며 지난 한 해 빠르게 늘었다고 말한다.
그런데 기업은 기본이라고 여기는 것들에서 막힌다고 짚는다.
발표가 드는 세 문제
| 문제 | 무엇을 모르나 |
|---|---|
| 관측 | 누가 내 서버와 도구를 쓰는지 |
| 권한 | 맞는 사람에게만 열려 있는지 |
| 보안 | 그 서버가 안전한지, 못 믿을 바깥에서 안쪽 자료에 닿는 것을 어떻게 다룰지 |
이 셋을 머리 셋 달린 괴물에 빗댄다. 그리고 짚는다 — API 시절에는 이미 풀어 둔 문제인데 지금은 마땅한 방법이 없다.
목록이 쓸모없다는 것은 아니라고 말한다. 다만 기업에는 그것만으로 모자라다.
목록이 못 채우는 자리로 넷을 든다. 신원 확인, 권한, 관측, 그리고 자격 관리다.
그래서 지금 현장이 이렇다고 말한다. 팀마다 만들 수는 있는데 배포를 못 한다. 배포해도 원하는 도구에 못 닿고 보안팀은 밀려 있다. 그 위에서는 왜 우리 에이전트는 제대로 안 도느냐는 물음이 내려온다.
여기서 판단이 하나 선다. 기업이 몇 개 안 되는 도구에 머무는 이 상태가 프로토콜 자체를 옥죄고 에이전트를 망친다는 것이다.
가운데를 두면 무엇이 옮겨 가나
누가 뒤치다꺼리를 지나
이 발표에서 꼭 가져가라고 힘주는 대목이다.
흩어져 만들게 두고 싶다면 믿음을 매어 둘 자리, 곧 *신뢰의 뿌리가 하나 있어야 한다. 보안팀이 할 일은 판 하나를 승인하는 것이다.
여기서 가운데에 서는 것이 게이트웨이다. 여러 서버와 어느 쪽 클라이언트 사이에 서는 중간층이라고 정의한다.
무엇이 달라지는지가 구체적이다. 법무팀이 계약서를 다루는 서버를 만든다고 하자. 그 팀은 계약이 들어오면 무엇을 보고 어떻게 표시하고 누구에게 올릴지만 정하면 된다. 기술팀에 다시 가서 부탁할 필요가 없다.
새 서버가 신경 안 써도 되는 것
| 몫 | 무엇 |
|---|---|
| 권한 | 무엇을 할 수 있게 할지 |
| 신원 확인 | 누구인지 대는 일 |
| 관측 | 무엇이 얼마나 쓰였는지 |
| 안전한 연결 | 클라이언트와 서버 사이를 잠그는 일 |
| 올리고 내보내기 | 새 서버를 띄우는 일 |
가운데를 이루는 부품으로는 신원 확인, 역할로 나눈 권한, 길을 대신 잡아 주는 자리, 잠긴 통로, 안쪽 목록, 그리고 만들기 쉽게 하는 도구를 든다. 마지막 것에 값이 있다 — 명령줄 도구가 있으면 새로 만드는 팀이, 또는 그 팀이 부리는 에이전트가 쉽게 붙는다.
관측에 대해서는 한 겹을 더 얹는다. 무엇이 얼마나 쓰였는지만이 아니라 그 도구가 어떻게 정의돼 있는지도 봐야 한다는 것이다.
발표가 서수로 세는 것들
| 이득 | 무엇 |
|---|---|
| 새 창구 붙이기 | 다 같은 가운데를 보므로 한 번만 이으면 된다 |
| 더 잠긴 연결 | 오가는 것을 통째로 잠그고 무엇이 나갔는지 믿을 수 있다 |
| 더 빠른 되풀이 | 법무팀이 매번 보안 검토를 다시 안 받고 고친다 |
| 표준이 생긴다 | 우리가 기대하는 것과 원치 않는 것을 여기 적어 둔다 |
| 자격을 갈아 끼운다 | 회사 것, 팀 것, 기계 몫을 상황에 맞게 |
| 늘릴 수 있다 | 요청을 받아 나눠 주는 자리가 하나면 감당이 된다 |
첫째를 두고 견주는 대목이 또렷하다. 서버 마흔 개를 클라이언트마다 따로 맞추는 세계와 견주라는 것이다.
에이전트와 자료를 갈라 놓는다
닫으며 그리는 그림이 이것이다. 에이전트가 도는 자리를 자료가 있는 자리에서 떼어 놓고 싶다.
그러면 기업은 어느 에이전트를 안에 두고 어느 것을 밖에 둘지 빨리 정할 수 있고, 그 결정과 무관하게 가운데는 그대로 남는다.
가져갈 것 셋으로 닫는다. 공용 바닥에 투자하고 각자 만들지 말 것, 가운데가 믿음의 뿌리를 세워 준다는 것, 그리고 에이전트와 자료가 갈리는 쪽으로 간다는 것이다.
잰 값이 하나도 없다. 가운데를 뒀을 때 무엇이 얼마나 빨라지는지, 값이 얼마나 주는지가 한 줄도 없다. 이 발표의 모든 이득은 논리이지 측정이 아니다.
마흔 개는 견주려고 든 가상의 수다. 실제로 몇 개를 굴리는 곳의 이야기가 아니다.
한계를 스스로 밝히지 않는다. 가운데를 하나 두면 그것이 멈췄을 때 전부 멈추는데 그 이야기가 없다. 그 하나가 뚫렸을 때도 마찬가지다.
늘어난다는 말에 근거가 없다. 수십에서 수십만까지 늘어도 감당된다고 하면서 잰 자리가 없다.
목록의 「수천 개 넘게」도 어림이다. 어느 시점 몇 개인지가 없다.
자막이 제품 이름을 크게 뭉갠다. 어느 창구에 붙는다는 대목의 이름들이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
같은 메시지를 웹소켓으로도 유닉스 소켓으로도, 심지어 메일로도 실어 날라 보이며 「어디로 나르느냐는 사소한 구현 세부」라고 못 박음. 쓰임마다 창구가 늘어 옮기는 데 몇 주씩 걸리던 상태에서 하나로 몰아넣은 과정, 옳은 길을 가장 쉽게 만들어 저절로 굴러떨어지게 한다는 설계 원칙, 그리고 청구 방식이 제각각인 제품 넷을 규격 안의 되묻기 기능으로 푸는 사례가 나옴.
▾한줄 코멘트. 어디로 나르느냐는 사소한 구현 세부라는 한 줄이 이 발표의 뼈대다. 값이 나가는 대목은 설계 원칙 쪽이다 — 규칙을 지키라고 말하는 대신 안 지키는 쪽이 더 번거롭게 만들어 저절로 굴러떨어지게 한다. 다만 이 발표에는 잰 값이 거의 없다.
앤스로픽에서 도구 호출과 연동을 맡는다는 사람이 발표한다. 큰 시스템을 스무 해 만들며 실수를 많이 했다고 밝힌다.
문제가 생긴 시점을 짚는다. 모델이 도구를 제대로 부르게 되면서 저마다의 쓰임마다 전용 창구가 늘어나기 시작했다. 여기저기서 도구를 부르는 자리와 맥락을 받아 오는 자리가 생겼다.
그러다 인증 같은 것이 더 필요하다는 것을 깨닫고 연동이 뒤엉켰다.
아픈 사례가 하나 나온다. 어느 서비스에서 잘 도는 연동을 다른 서비스로 옮기려는데, 새 창구에 맞춰 다시 쓰는 데 3주가 걸린다.
규격 쪽과 나르기 쪽
한 이름 아래 성격이 다른 두 겹
시간이 지나며 깨달은 것이 있다고 말한다. 그 창구들이 하나같이 비슷한 모양으로 수렴하더라는 것이다.
그러면서 규격을 두 겹으로 갈라 본다. 하나는 주고받는 모양을 정한 쪽이고, 다른 하나는 어떤 길로 보내고 어떻게 붙어 있을지를 정한 쪽이다. 앞의 것은 엔지니어에게 바로 값이 되고, 뒤의 것은 모두가 같은 말을 써야 해서 어렵다.
그래서 물었다고 한다. 이걸로 전부 다 할 수 있나. 답은 예였는데 단서를 붙인다 — 모델에게 맥락을 주는 일에 한해서다.
고르는 근거가 실용적이다.
이런 자리에서는 지루한 선택이 좋다고 말한다. 어느 서비스와 잘 통하게 만드는 재주는 남보다 앞서는 무기가 못 된다. 대신 배울 방식이 하나뿐이면 사람들이 빨라진다.
바깥 사정도 든다. 어차피 다들 하고 있으니 안 하고 배길 수가 없고, 큰 연구소들이 다 그 표준을 함께 만들고 있다는 것이다.
거저 얻는 것도 있다고 말한다. 아직 안 마주친 문제까지 미리 풀려 있다는 것이다. 든 예가 구체적이다 — 빨리 만드느라 청구 방식이 제각각인 제품이 넷인 상황이면, 규격 안에 이미 있는 되묻기 기능으로 연동이 *스트림 너머로 물어보고 반대쪽이 답하게 하면 된다.
성공의 웅덩이
여기서 문제가 커진다.
바깥에 원격으로 도는 것들이 생기기 시작했는데, 그것과 통하려면 바깥으로 나가는 길과 신원 확인이 필요해 복잡하다. 동시에 안쪽에서도 코드 검토 봇이며 메신저를 챙기는 것이며 에이전트가 불어났다.
그래서 걱정이 셋 붙는다. 그 서비스들이 죄다 사용자 자격에 손대는 것, 아무 데서나 바깥으로 나가는 길이 열리는 것, 그리고 무엇이 오갔는지 따져 보는 일이 아주 복잡해지는 것이다.
여기서 예전에 배웠다는 사고틀을 꺼낸다. 옳은 일을 가장 쉬운 일로 만들면 조직 전체가 그리로 굴러떨어진다.
그래서 만든 것이 안팎을 가리지 않는 가운데 창구다. 엔지니어에게는 부르는 줄 하나를 주고, 그것이 곧바로 쓸 수 있는 상태를 돌려준다.
가운데가 떠맡는 것
| 몫 | 무엇 |
|---|---|
| 길 잡기 | 주소만 보고 바깥이든 안이든 알아서 보낸다 |
| 자격 챙기기 | 회사 안에서 신원 확인을 다섯 번 만들지 않게 |
| 한도와 기록 | 조이는 자리와 들여다보는 자리를 한곳에 |
| 정책 | 못 믿을 서버를 막고, 오가는 것을 살펴본다 |
돌려주는 것이 규격에 맞춘 물건이라 규격에 새 기능이 붙으면 꾸러미만 올리면 된다고 말한다.
자격을 가운데서 다루니 딸려 오는 것도 있다. 창구 주소가 여럿이어도 돌아오는 자리를 가운데가 알아서 처리하고, 자격이 옮겨 다닐 수 있어 묶어 돌리는 작업에서 사용자가 다시 로그인할 일이 없다.
정책이 필요한 이유도 짚는다. 끼어드는 글로 모델을 꾀는 공격을 다룬 글들이 있고, 모델이 저장소에 닿아 전부 지워 버릴 위험이 일반적으로 있다는 것이다.
이 발표의 제목이 되는 대목이다.
안에서 쓰는 길로 웹소켓을 골랐다고 말한다. 그런데 곧바로 덧붙인다. 연결마다 구멍을 하나씩 열기 싫으면 다른 것으로 묶어도 되고, 같은 기계 안이면 또 다른 방식도 된다.
그러고 메일로 실어 나르는 것까지 만들어 보인다.
요점은 이것이다. 이건 그냥 흐르는 글 뭉치이고, 그것을 회사 안 어디로 흘려보내는지는 작은 구현 세부다. 스트림이 같은 프로세스 안을 지나든 다른 데이터센터를 지나든 회사 장비 더미를 지나든 상관없다.
닫는 말도 세다. 무엇이든 하나로 정하라. 이것이 좋아 보이면 이것으로, 아니면 다른 것으로라도 정하라는 것이다. 그리고 옳은 길을 가장 쉬운 길로 만들어 두라고 되풀이한다.
잰 값이 거의 없다. 가운데를 둔 뒤 무엇이 얼마나 빨라졌는지, 연동을 붙이는 데 걸리던 시간이 얼마로 줄었는지가 없다.
3주도 예시다. 옮기는 데 그만큼 걸린다는 말이 어느 사례에서 나온 것인지가 없다.
가운데가 멈추면 어떻게 되는지 없다. 전부 한 자리를 지나게 만들어 놓고 그 자리가 죽거나 느려질 때의 이야기가 안 나온다.
메일로 나르기는 재미로 보인 것이다. 실제로 쓰는지, 쓴다면 어디에 쓰는지가 없다.
정책이 실제로 무엇을 걸러 냈는지 없다. 막을 수 있다고만 하고 잡아낸 사례가 나오지 않는다.
자막이 규격과 제품 이름을 뭉갠다. 인증 규격 이름과 서비스 주소가 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
에이전트를 한 해 넘게 만들어 온 팀이 쓰는 바닥을 풀어놓음. 상태를 그대로 쥐는 실행 단위 위에, 받은 코드 문자열을 그 자리에서 가둬 돌리는 새 부품을 얹는 구조. 가두는 방향이 흔한 방식과 반대라는 것(아무것도 못 하는 데서 시작해 하나씩 연다), 새로고침해도 받던 것이 이어지는 이유, API 엔드포인트 2600개를 토큰 1000개로 줄여 노출한다는 예고, 그리고 값이 싼 것은 10년 전 인프라 결정 때문이라는 설명이 나옴.
▾한줄 코멘트. 가두는 방향을 뒤집었다는 대목이 이 발표에서 가장 옮겨 갈 만하다. 통째로 도는 판에서 위험한 것을 막아 나가는 대신, 아무것도 못 하는 데서 시작해 나갈 곳만 지정해 연다. 나머지는 자기네 제품 이야기이고 잰 값이 거의 없다.
에이전트 팀에서 일하는 두 사람이 나온다. 진지하게 만들기 시작한 지 한 해가 조금 넘었다고 말한다.
깔아 두는 예가 단순하다. 흔한 *서버리스로 방문 횟수 세는 것을 만들면, 내 컴퓨터에서는 되는데 올리는 순간 실패한다. 세는 값이 거의 늘 0으로 남는다.
그래서 만든 것을 상태를 쥔 서버리스라고 부른다. 스스로 가장 헷갈리는 이름이라고 인정한다 — 원래 서버는 상태를 쥐는 것이기 때문이다.
에이전트에 이것이 맞는 이유로 주소를 갖는다는 점을 든다. 부를 자리가 정해져 있다는 뜻이다.
지연도 든다. 런던에서 15밀리초라고 말하며 화면이 초당 예순 번 바뀔 때의 한 칸이 16밀리초 남짓이라고 견준다.
가두는 방향이 반대다
가둔 자리를 어느 쪽에서 만드나
새로 든 부품이 이것이다. 고객이 보냈든 모델이 지어냈든 코드 문자열을 받아, 따로 가둔 자리에서 그대로 돌린다.
가두는 방향이 뒤집혀 있다. 흔한 방식은 통째로 도는 판에서 시작해 위험한 것을 막아 나가는 쪽인데, 여기서는 자바스크립트만 돌 뿐 바깥으로 나가는 길도 API도 처음엔 하나도 없다. 필요한 것만 지정해 연다 — 이를테면 어느 한 곳으로 나가는 요청만 허용하는 식이다. 환경 변수는 그 코드에 안 보인다.
한계도 그 자리에서 밝힌다. 온전한 파일 체계가 없고, 통째로 도는 판만큼 무겁지도 않다.
이 대목을 두고 하지 말라고 배운 그것을 가져와 부품으로 만든 셈이라고 말한다.
현장 반응이 갈린다는 일화도 든다. 어느 스타트업 쪽 사람은 어느 기업도 지어낸 코드를 돌리게 두지 않을 것이라고 했는데, 큰 방산 회사에서 온 사람은 그런 것을 좋아한다고 했다는 것이다.
끊겨도 이어진다
상태를 서버 쪽이 쥐면 딸려 오는 것들을 든다.
모델이 긴 답을 흘려보내는 중에 화면을 새로 고쳐도, 그 자리에 다시 붙어 앞부분을 받고 뒤를 이어서 받는다.
그래서 탭 여럿과 기기 여럿이 저절로 같은 것을 본다고 말한다.
여기서 남의 제품을 예로 든다. 어느 대화창은 링크를 나눠 둘이 같은 대화에서 함께 일할 수가 없는데, 그것은 그쪽이 그렇게 안 만들었기 때문이라는 것이다.
더 나아가 코딩 에이전트의 뒷단을 이 위에서 돌리면 터미널이든 폰이든 웹이든 어느 쪽에서도 같은 자리에 붙을 수 있다고 말한다. 그런 것을 지금 만들고 있고 곧 내고 싶다고 밝힌다.
발표가 든 쓰임과 부품
| 무엇 | 어떻게 |
|---|---|
| 정해진 때에 스스로 | 금요일 밤에 기록을 훑어 모아 보내는 식 |
| 도구 서버 | 오래 붙어 있는 연결을 쉽게 유지한다 |
| 담아 두기 | 그 안의 작은 데이터베이스와 저장소를 쓴다 |
| 언어 | 자바스크립트와 파이썬이 앞자리, 나머지는 변환해서 |
파이썬은 아직 다듬을 자리가 남았다고 스스로 말한다. 요즘은 다른 언어를 실험 중인데 변환한 꾸러미가 훨씬 작아서 좋다고 한다.
예고도 붙는다. 도구 서버에 코드로 시키는 방식을 얹으면 엔드포인트 2600개를 토큰 1000개 안에 넣어 열 수 있다는 것이다. 자세한 것은 각자의 다른 발표에서 하겠다며 넘긴다.
마지막에 값 이야기가 나온다.
큰 데이터센터를 짓지 않는다. 대신 통신사 가까이에 장비를 두고 대역폭을 크게 묶어 산다는 것이다. 10년 전 결정 덕이라고 말한다.
무료 말고는 월 5달러이고, 그 위에 큰 서비스를 짓는 사람들도 안다고 덧붙인다.
경쟁 제품도 여럿 이름 대며 자기 것만 쓸 필요는 없다고 말한다.
잰 값이 거의 없다. 15밀리초 말고는 성능 수치가 없다. 가둬 돌리는 부품이 얼마나 빨리 뜨는지, 얼마나 드는지가 없다.
2600과 1000은 예고다. 이 자리에서 보여 준 것이 아니라 다른 발표에서 하겠다고 넘긴 수다. 무엇을 잃고 그렇게 줄였는지도 없다.
규모를 뭉갠다. 얼마나 늘어나느냐는 대목에서 수백만이든 수조든 터무니없는 수라고 웃으며 넘어간다.
뚫린 적이 있는지 없다. 기본값이 거절인 구조를 내세우면서 실제로 시험당한 결과가 나오지 않는다.
세부는 블로그와 각자의 발표로 넘긴다. 시간이 모자라 다 설명할 수 없다며 여러 번 미룬다.
자막이 이름을 크게 뭉갠다. 제품과 회사 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
사용자가 자기 앱을 AI에게 시켜 직접 고쳐 쓰게 하는 판을 보여 줌. 화면 쪽과 서버 쪽을 둘 다 가둬 서로에게만 말하게 만들어 「이 코드에서 나올 수 있는 보안 결함 중 문제 되는 것은 없다」고 주장하는 대목이 뼈대. 발표용 슬라이드를 만드는 앱에 모델이 필요한 기능을 스스로 붙여 가며 만든 사례, 라이브 데모가 실패한 대목, 그리고 오픈소스로 풀겠다던 약속이 발표 며칠 전 회사 결정으로 미뤄진 사정까지 그대로 있음.
▾한줄 코멘트. 검사해서 막는 대신 새어 나갈 데를 없앤다는 뒤집기가 이 발표의 값이다. 화면 쪽과 서버 쪽을 둘 다 가둬 두면 지어낸 코드에 결함이 있어도 나갈 곳이 없다는 것이다. 다만 그 주장은 바깥 서비스와 아무것도 주고받지 않을 때의 이야기이고, 주고받는 길은 시간이 없다며 넘긴다.
다시 짜기로 하고 끝나지 않는다
워커스를 만들고 지금도 그 팀을 이끈다는 사람이 발표한다. 2017년에 시작했다고 밝힌다.
여는 이야기는 소프트웨어가 만들어지는 순환이다. 한 벌을 지어 내려보내면 사람마다 자기 쓰임에는 이것이 있어야 한다고 청한다. 그 청을 받아 넣다 보면 몇 사람만 쓰는 갈래가 코드에 쌓인다.
그래서 개발자가 결심한다. 다시 짜야겠다. 갈아 끼울 수 있는 얼개를 만들겠다는 것이다.
그다음이 이 발표의 아픈 대목이다. 그 판이 안 끝난다. 그동안 새 청은 미뤄지고, 해가 가도 얼개는 안 나오고 아무 기능도 안 붙는다.
내놓는 대안은 이렇다. 개발자는 첫 판만 만들고, 필요한 기능은 쓰는 사람이 AI에게 시켜 자기 앱에 붙인다.
그러면 각자 필요한 것을 갖고, 남의 기능에 발목 잡히지 않으며, 개발자는 가운데를 깨끗하게 지킨다는 것이다.
문제는 지금 바닥이 그런 쓰임을 조금도 염두에 두고 만들어지지 않았다는 것이다.
두 갈래로 짚는다. 손안의 기기 쪽은 15년째 문을 잠가 둬서 앱을 만들 수 있는 회사가 다섯 곳쯤이라고 말한다. 자기 기기에 서명 안 된 것을 넣기가 얼마나 까다로운지를 과장해 빗댄다.
웹은 그 문을 돌아가는 길이었다고 말한다. 그리고 막는 쪽이 경고하던 보안 재앙은 일어나지 않았다고 짚는다.
그런데 웹에도 문제가 있다. 25년 동안 클라우드가 잘못된 방향으로 달려왔다는 것이다. 웹 앱을 올리면 내 서버에서 한 벌만 돌아 모두에게 같은 것이 간다. 그러니 쓰는 사람이 자기 것으로 고칠 수가 없다.
지난해 쏟아진 말로 시켜 만드는 판들도 결국 그 바닥을 그대로 쓴다고 짚는다.
만든 것은 말로 시켜 만드는 흔한 판과 다르다고 말한다. 문서 대신 작은 물건이 놓인 사무 묶음에 가깝다는 것이다.
물건 하나하나가 저마다 다른 코드를 가진 앱이다. 만들어 본 것으로 함께 그리는 판, 특정 언어로 온 편지를 골라 주는 것, 봐야 할 코드 검토를 정렬해 주는 것을 든다.
나누는 방식도 있다. 쓸 만한 물건이 나오면 자료는 빼고 코드만 떠서 남에게 준다. 받은 사람은 그것으로 자기 것을 새로 세운다.
여기서 설계 판단이 하나 나온다. 나눔과 권한을 앱이 아니라 판이 맡는다. 그래서 그 앱이 그것을 틀리게 만들 수가 없다는 것이다.
새어 나갈 데가 없다
양쪽을 다 가둔다
이 발표의 가운데다.
화면 쪽은 출처가 없는 틀 안, 곧 *샌드박스 안에서 돈다. 바깥에 말을 걸 수 없고 쿠키에도 못 닿는다. 할 수 있는 것은 자기를 감싼 쪽에 메시지를 보내는 것뿐이다.
그 통로로 서버 쪽에 넘어간다. 그리고 서버 코드도 따로 가둔 자리에서 돌며 바깥이 막혀 있다.
그래서 말한 것을 그대로 옮기면 이렇다. 이 코드에서 나올 수 있는 보안 결함 중에 문제가 되는 것은 없다. 지어낸 그림에 스크립트가 섞여 들어와도 새어 나갈 데가 없기 때문이다.
바깥 서비스와 안전하게 주고받는 장치도 만들었다고 말하는데, 그건 발표를 두 번 더 해야 한다며 넘어간다.
이 발표에서 가장 손에 잡히는 사례다.
발표 슬라이드를 그 판 위의 슬라이드 앱으로 만들었다. 모델에게 문서 링크를 주고 만들라고 시키면서 필요하면 슬라이드 앱 자체에 기능을 붙여도 된다고 했다.
그래서 붙은 것이 셋이다. 글자에 줄 긋기, 가운데 맞추기, 그리고 그림을 끼워 넣는 기능이다. 그 마지막 기능을 붙인 뒤 그 기능으로 넣을 그림도 모델이 지어냈다.
바닥도 밝힌다. 모델만 빼면 전부 워커 위에 있고, 컨테이너도 데이터베이스도 없다. 게다가 지금 이 모든 것이 자기 노트북에서 돌고 있다고 말한다. 런타임이 열려 있어 스스로 세울 수 있다는 것이다.
집 지하실에 두고 집 안 장치와 음악 서비스를 물려 쓰고 싶다고 덧붙인다.
정직한 대목이 둘 있다.
하나는 라이브 데모가 실패했다. 간단한 것을 만들어 보라고 넣었는데 오류가 났고, 그 자리에서 그렇다고 말한다.
다른 하나가 더 무겁다. 발표를 제안할 때는 끝나면서 바로 코드를 공개할 계획이었다. 그런데 최근 몇 주 사이 회사 안에서 관심이 커져 더 진지한 일이 됐고, 발표 며칠 전 최고기술책임자가 미루자고 했다. 그래서 오늘은 못 내고 곧 낼 것이라고 말한다.
잰 값이 없다. 이 판이 얼마나 빠른지, 물건 하나를 세우는 데 얼마가 드는지가 나오지 않는다. 규모로 든 수는 회사 전체의 것이지 이 판의 것이 아니다.
「새어 나갈 데가 없다」는 조건부다. 바깥과 아무것도 주고받지 않을 때의 이야기인데, 주고받는 길을 만들었다고 말하면서 그 부분은 넘긴다. 그 길이 열리는 순간 이 주장이 그대로 서는지가 이 발표에서 안 다뤄진다.
쓰는 사람이 실제로 고쳐 썼는지가 없다. 만든 사람 자신과 동료 하나의 사례뿐이고, 보통 사람이 이 방식으로 자기 앱을 고친 기록이 없다.
지어낸 코드가 얼마나 자주 망가지는지 없다. 격리로 감싸면 안전하다는 것과 제대로 도느냐는 다른 문제인데 뒤쪽 값이 없다.
공개가 미뤄져 확인할 수 없다. 지금은 발표에서 본 것 말고 시험해 볼 방법이 없다.
용어
한 자씩 뽑는 방식보다 훨씬 빠른데도 큰 모델에 아무도 안 넣는 이유를 칩의 나르는 길에서 설명함. 토큰 256개를 스물네 번 훑어 만들면 실어 나르는 횟수가 10분의 1이 된다는 셈, 실제로 찍은 초당 2000토큰, 세 번 훑는 사이 스스로 오답을 두 번 고쳐 맞힌 사례가 나옴. 무엇을 몇 번 훑을지 모델이 스스로 정한다는 대목과, 지금 쓰이는 자리가 기기 위뿐이라는 자인도 함께 있음.
▾한줄 코멘트. 빠른 이유가 셈이 아니라 나르기에 있다는 설명이 이 발표의 값이다. 그리고 드물게 자기 기술이 안 쓰이는 이유를 먼저 말한다 — 한 사람에게는 빨라도 여럿을 한꺼번에 받으면 처리량이 낮아 내보내는 값이 더 든다는 것이다. 든 수치는 대부분 한 해 전 것이고 발표자도 그렇게 밝힌다.
연구소에서 연구원으로 일한다는 사람이 발표한다. 앞을 내다보는 연구 갈래라고 소개한다.
그림 쪽에서 하던 *디퓨전을 그대로 옮긴 것이다. 학습할 때는 정답에 잡음을 섞어 두고 그것을 걷어 내게 가르친다. 만들 때는 온통 잡음인 상태에서 시작해 되풀이해 다듬는다.
글에서는 그 잡음이 아무 토큰으로 바꿔 놓는 것이 된다.
한 해 전 이 방식으로 만든 시험판을 10만 명쯤에게 열었다고 말한다. 그때 견준 상대와 전반적으로 비슷했고 코드 쪽이 조금 낫고 다른 데가 조금 못했는데 지연은 훨씬 나았다고 한다. 그러면서 한 해 전 값이니 지금 기준으로 너무 믿지 말라고 덧붙인다.
빠른 이유는 셈이 아니라 나르기에 있다
한 자를 더 내놓기까지 무엇을 나르나
이 발표에서 가장 또렷한 설명이다.
칩에는 셈할 힘은 넉넉한데 실어 나르는 길이 좁다. 그 길을 넓히는 것이 비싸고 셈하는 힘을 붙이는 것이 싸기 때문이다.
한 자씩 뽑는 방식은 토큰 하나를 내놓을 때마다 가중치와 쌓아 둔 캐시를 통째로 실어 날라야 한다. 그러니 셈이 아니라 나르는 데서 발이 묶인다.
이쪽은 다르다. 긴 자리를 통째로 놓고 몇 번 훑어 고친다. 그래서 셈을 든다 — 토큰 256개를 스물네 번 훑어 만들면 나르는 횟수가 10분의 1이고, 정말 나르기에 묶여 있었다면 그만큼 빨라진다.
실제로 시험판이 초당 2000토큰쯤을 꾸준히 냈다고 말한다. 그것이 브라우저에서 실제로 받는 수였다고 덧붙인다.
딸려 오는 성질도 든다. 한 자씩 뽑는 쪽은 앞만 볼 수 있는데 이쪽은 뒤도 본다. 그리고 되풀이하는 구조라 어려운 것에 더 오래 붙들게 가르칠 수 있다.
바로 이어서 단점을 댄다. 여럿을 한꺼번에 받을 때 처리량이 낮다.
이유가 앞의 셈과 맞물린다. 같은 자리를 여러 번 훑으니 셈하는 힘이 먼저 바닥난다. 그래서 한 사람에게는 빨라도 전체로는 덜 나오고 내보내는 값이 더 든다.
그리고 못 박는다. 지금 큰 모델에 이것을 넣는 곳이 없는 것은 주로 이 단점 때문이다.
보인 사례가 좋다. 계산 문제 하나를 놓고 훑을 때마다 답이 어떻게 바뀌는지를 보인다.
한 번 훑은 뒤에는 틀린 답을 적어 놓았다. 두 번째에 다른 틀린 답으로 바뀌었고, 세 번째에 풀이를 끝까지 밟아 스스로 고쳐 맞혔다.
같은 문제에서 그때 새로 나온 훨씬 큰 모델 둘도 틀렸다고 말한다. 하나는 뒤에 가서 자기가 틀렸다며 고쳤고, 다른 하나는 끝까지 안 고치고 그 틀린 값을 그다음 계산에 그대로 물고 갔다.
어려울수록 오래 훑는다
몇 번 훑을지를 모델이 스스로 정한다.
사내에서 보는 코딩 시험 여섯 종에서는 훑는 횟수를 늘릴수록 품질이 대체로 계속 올랐다고 말한다.
시험별로도 갈렸다. 어려운 쪽에서는 오래 붙들었고 기본 문제 위주인 쪽에서는 아주 짧게 끝냈다.
그림 쪽에서 오려 낸 자리를 주변에 맞춰 메우듯, 글에서도 자리를 짚어 고칠 수 있다.
데모가 둘 나온다. 코드에 버그가 있다고 하면 통째로 다시 쓰지 않고 그 자리만 고친다. 이야기 가운데에 문단을 넣어 달라고 하면 앞뒤를 다 보고 있어 앞뒤에 맞게 채워 넣는다.
지연이 낮아서 되는 것들도 보인다. 누를 때마다 그 자리에서 만들어 채우는 백과사전 화면, 비슷하게 만든 게시판, 그리고 누를 때마다 다음 화면을 지어내는 운영체제 흉내다.
질의응답에서 지금 실제로 쓰이는 자리를 밝힌다. 기기 위에서 도는 쓰임이다 — 로봇 같은 것을 든다. 그리고 품질은 큰 것과 사실상 같다고 말한다.
견준 값이 한 해 전 것이다. 발표자가 직접 그렇게 말한다. 지금 판과 견준 자리가 없다.
초당 2000토큰의 조건이 없다. 어느 크기 모델에서, 어떤 물음 길이로, 몇 명이 동시에 쓸 때인지가 없다. 처리량이 낮다는 단점과 이 수가 어떻게 맞물리는지도 안 나온다.
10분의 1은 셈이지 잰 값이 아니다. 정말 나르기에 묶여 있었다면 그렇다는 조건부 계산이다.
여섯 종 시험은 사내 것이다. 무엇인지 밝히지 않고, 훑는 횟수를 늘리면 값이 얼마나 더 드는지도 없다.
값을 어떻게 매길지 모른다고 답한다. 가격을 묻자 아직 거기까지 안 갔고 자신은 연구 쪽이라고 말한다.
틀린 답을 고친 사례가 한 문제다. 스스로 고치는 일이 얼마나 자주 되는지가 없다.
자막이 모델과 도구 이름을 뭉갠다. 견준 상대와 함께 쓴 그림 모델의 이름이 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어
4편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
클라우드 배치가 500~600밀리초에 답하는 것으로는 대화가 안 된다는 데서 시작해, 음성 합성을 빠르게 해서 번 시간을 언어 모델 몫으로 넘긴다는 구조를 짚음. 소닉 2가 초기 모델보다 2.5배 빨라져 모델 지연 40밀리초로 나가고, 기기 안에서 도는 쪽이 클라우드 왕복보다 약 5배 빠르다는 값이 나온다. 트랜스포머가 입력 길이에 제곱으로 무거워지는 것과 달리 상태공간모델은 추론 때 O(1)이라는 구조 설명, 그리고 클로드를 붙이면 왜 느리냐는 청중 물음에 그 여유로 받으라고 답하는 대목까지 이어짐. 값은 전부 회사 자체 값이다.
▾한줄 코멘트. 「우리 모델이 빠르다」로 들리는데 실제 주장은 한 겹 더 있다. 빨라져서 번 시간이 사용자에게 가지 않고 언어 모델 몫으로 넘어간다는 것이다. 음성 합성을 40밀리초로 줄이면 그만큼 언어 모델이 더 생각할 수 있고, 클라우드 왕복도 견딜 수 있다. 그래서 이 발표의 값은 음성 품질이 아니라 예산 배분 이야기다. 다만 잰 값이 전부 회사 자체 값이고 무엇과 견줬는지는 대지 않는다.
AWS의 파운데이션 모델 학습·추론 팀 사람이 사회를 보고, 카르티시아 AI 공동창업자가 이야기하는 대담이다. 카르티시아는 어느 기기에서든 도는 실시간 멀티모달 지능을 만든다고 소개하고, 이날은 기업용 음성 AI를 어떻게 만드는지에 초점을 둔다.
바꾸려는 것을 먼저 놓는다. 파운데이션 모델 하면 보통 클라우드에 올려 두고 요청을 모아 처리하는 것을 떠올리는데, 그러면 답이 500~600밀리초 뒤에 온다. 글이라면 그래도 된다. 사람이 초당 200토큰씩 읽지는 않기 때문이다.
영상이나 음성처럼 주고받는 자리에서는 다르다. 속도가 가장 중요하고 품질은 기본으로 갖춰야 하는 조건일 뿐이라고 말한다. 옆 사람과 이야기하는데 상대가 1초 늦게 답하면 어색하다는 비유를 든다. 음성에서는 초가 아니라 밀리초 단위로 답해야 한다는 것이다. 고객센터에 전화한 사람은 답이 늦으면 바로 짜증을 낸다.
여기에 음성만의 조건이 붙는다. 말 중간에 끼어드는 것, 억양처럼 나라마다 다른 문제, 통화 중 들어오는 배경 소음이다. 그리고 음성 경험은 몹시 주관적이라 취향과 맞춤이 많이 든다.
카르티시아가 모델을 만들며 잡은 것
| 무엇 | 왜 |
|---|---|
| 품질 | 목소리의 자연스러움이 뛰어나야 한다. 이 정도는 기본 조건이라고 말한다 |
| 지연 | 상대편에서 첫 소리를 최대한 빨리 듣게 한다. 그렇게 번 시간이 에이전트가 더 생각할 시간이 된다 |
| 제어 | 에이전트가 회사와 제품을 어떻게 말하는지가 브랜드라 그 자리를 맞출 수 있어야 한다 |
셋째를 발표자가 가장 중요할 수 있다고 말한다.
트랜스포머의 대안으로 *상태공간모델을 개척했다고 말한다. 트랜스포머는 입력이 길어지면 메모리와 시간이 제곱으로 늘어난다. 상태공간모델은 추론할 때 생성이 O(1)이다. 상태를 쥐고 있다가 거기서 뽑아내는 구조라, 전통적인 트랜스포머로는 못 내는 지연을 낸다는 것이다.
이 계열이 원래 트랜스포머보다 성능이 낮았다는 것도 짚는다. 그 격차를 메웠고 이제 지연만이 아니라 품질에서도 낫다고 말한다. 무엇으로 잰 품질인지는 대지 않는다.
한 턴이 도는 자리
주력 모델은 음성 생성을 맡는 소닉 2인데, 그것은 퍼즐의 한 조각일 뿐이라고 말한다. 실제 음성 에이전트를 세우려면 언어 모델과 *음성 인식 모델까지 이어 붙여야 한다.
가장 큰 문제는 시간이 모자라다는 것이다. 언어 모델은 애초에 지연이 적은 흐름을 염두에 두고 만든 것이 아니라 여유를 최대한 줘야 한다.
번 시간을 누가 쓰나
사람들이 자기네 판을 쓰는 두 번째 이유로 제어를 든다. 목소리 복제와 억양은 물론 배경 소음까지 그대로 담아내는 품질이다. 여기서 재미있는 대목이 나온다. 에이전트 목소리가 너무 완벽하면 오히려 이상하게 느껴져서, 사람들은 통화에서 나던 작은 잡음이나 삑 소리를 오히려 반긴다는 것이다.
고객 자리로는 셋을 든다. 헬스케어, 고객지원, 그리고 실시간 게임이다. 게임에서는 플레이어가 아닌 캐릭터가 상황에 따라 움직이며 말을 주고받기를 바란다는 것이다.
크리에이터를 위한 목소리 장터도 있다고 말한다. 목표가 성우를 대신하는 것이 아니라고 못 박고, 그 사람다움을 남이 라이선스해 쓰도록 자리를 내주는 것이라고 설명한다. 성우들이 실제로 판에 들어와 있다고 한다.
발표에 나온 값
| 값 | 무엇 | 언제 것 · 성격 |
|---|---|---|
| 500~600밀리초 | 클라우드에 올린 모델이 배치로 답하는 시간 | — · 발표자 설명 |
| 초당 200토큰 | 사람이 글을 그 속도로 읽지는 않는다는 비유 | — · 발표자 비유 |
| 40밀리초 | 소닉 2의 모델 지연 | — · 회사 자체 값 |
| 2.5배 | 소닉 2가 초기 모델보다 빠른 정도 | — · 회사 자체 값 |
| 약 5배 | 기기 안에서 도는 쪽이 클라우드 왕복보다 빠른 정도 | — · 회사 자체 값 |
넷째 줄과 다섯째 줄은 자기네 것끼리 견준 값이다. 다른 회사 모델과 견준 값은 나오지 않는다.
청중 물음이 넷 붙는다.
첫째는 클로드를 붙이면 지연 때문에 잘 안 되는 것 같다는 것이었다. *파이프캣과 붙어 있고 둘 다 AWS와 함께 도는데 클라우드는 끝에서 끝까지 하면 여전히 지연이 꽤 크다고 인정한다. 음성 합성 쪽에서 준 여유를 언어 모델 쪽에서 쓰면 되고, 이런 최적화는 대개 언어 모델을 내놓는 쪽의 몫이라고 답한다. 전용 인스턴스를 띄우는 식으로 더 나은 지연을 얻는 길도 있다고 덧붙인다.
둘째는 데이터가 더 필요한지 밀도가 중요한지였다. 답은 그렇기도 하고 아니기도 하다는 것이다. 크게 사전학습하고 정합이나 선호 데이터로 손보는 흐름은 오디오에도 통하는데, 오디오에서는 사람들이 선호하는 것이 워낙 갈려 한 단계 손보기로는 담기지 않는다고 말한다.
셋째는 소리에서 바로 소리로 가는 모델을 어떻게 보느냐였다. 지금은 프로덕션이나 기업 용도로 쓸 단계가 아니라고 답한다. 조각을 이어 붙인 쪽이 각 부분을 어떻게 굴릴지 훨씬 잘 다룰 수 있다는 것이다. 다만 지연만 놓고 보면 결국 그쪽이 앞설 것이라고 말한다.
넷째는 무엇으로 지켜보느냐였다. 평가가 대단히 중요한 부분이고, 문제는 대개 언어 모델 자리에서 난다고 답한다. 앞의 판이 말한 이음매 이야기가 여기서 다시 나온다.
사회를 본 AWS 쪽은 자기네 모델 장터 이야기를 붙인다. 세이지메이커 점프스타트와 베드록에 여러 모델을 두어 고르게 하고, 카르티시아 같은 다음 파운데이션 모델 제공자를 찾아 생태계에 들이려 한다는 것이다.
마지막 물음은 2030년에 어디쯤 가 있겠느냐였다. 음성 AI가 어느 산업에서든 당연한 것이 되어 있을 것이고, 나아가 실시간으로 도는 세계 모델이 조수나 부조종사처럼 함께 일하는 쪽을 기대한다고 답한다.
값이 전부 자기네 것끼리 견준 것이다. 40밀리초도 2.5배도 5배도 무엇과 견줬는지가 자기네 이전 모델이거나 자기네 클라우드 왕복이다. 다른 회사 음성 합성과 나란히 잰 값은 나오지 않는다. 세계에서 가장 빠른 모델을 만들었다는 말이 그 자리를 대신한다.
품질 쪽은 더 얇다. 상태공간모델이 지연만이 아니라 품질에서도 낫다고 말하는데, 무엇으로 어떻게 쟀는지가 없다. 목소리 복제와 억양이 뛰어나다는 것도 잰 값이 아니라 고객들이 그래서 쓴다는 설명이다.
40밀리초가 모델 지연이라는 것도 짚어 둘 자리다. 사람이 실제로 겪는 지연은 음성 인식과 언어 모델과 네트워크를 다 더한 것인데, 그 합이 얼마인지는 발표에 없다. 클라우드 왕복이 여전히 크다고 인정하면서도 그 크기를 대지 않는다.
기기 안에서 도는 쪽도 배수만 있다. 어떤 기기에서 어떤 모델을 돌린 것인지, 그때 품질이 어떻게 되는지가 나오지 않는다.
목소리 장터도 라이선스한다는 데서 멈춘다. 성우가 얼마를 받는지, 복제한 목소리를 어디까지 쓸 수 있는지, 거절할 수 있는지는 다루지 않는다. 성우를 대신하지 않겠다는 말이 그 자리에 놓여 있다.
용어
딥마인드 오디오 쪽을 알아듣기·말하기·실시간·노래 넷으로 훑는 데모 발표. 요청 한 번으로 화자 이름표와 타임스탬프, 언어와 번역, 감정까지 한꺼번에 받아 내는 과정과, 목소리를 수백 개 쌓는 대신 기본 서른 남짓에 감독 노트를 얹어 억양을 만드는 방식이 나옴. 실시간 모델은 지능이 모델 안에 들어 있어 텍스트를 거쳐 언어 모델로 넘기는 방식과 다르다고 말한다. 데모가 여러 번 어긋나고 발표자가 오디오 쪽 벤치마크는 못 믿는다고 스스로 밝혀, 잰 값은 하나도 나오지 않는다.
▾한줄 코멘트. 값이 없는 발표인데 그것을 발표자가 먼저 말한다. 오디오 쪽 벤치마크는 믿을 수 없다는 것이다. 그래서 남는 판단 재료는 데모인데, 데모가 여러 번 어긋난다. 일본어 번역이 안 되고, 중국어는 맞는지 확인할 사람이 방에 없고, 목소리 재생이 실패해 준비해 둔 녹음으로 대신한다. 잘 도는 것을 보여 주는 자리에서 어긋난 것을 그대로 두고 지나간 셈이라, 이 발표에서 확인되는 것은 무엇을 시킬 수 있는지의 목록이지 얼마나 되는지가 아니다.
구글 딥마인드에서 제미나이 API와 AI 스튜디오 쪽 개발자 경험을 맡은 사람이 나온다. 11월에 팀에 합류했는데 제미나이 3이 나오기 바로 전날이었다고 한다. 자막이 이름을 두 가지로 적어 원문에서 갈린다.
발표 제목이 앞의 「구글 딥마인드에 물어보기」를 빼서 오해를 준다고 먼저 밝힌다. AI 오디오 전체를 다루면 한참 걸리니 자기네가 하고 있는 것만 보여 주겠다는 것이다.
최근에 낸 것을 먼저 늘어놓는다. 공개 모델 쪽에서는 젬마 4를 지난주쯤 냈는데 오디오 이해가 들어 있고 기기 위에서도 돌릴 수 있다. 생성 쪽에서는 비디오 3.1 라이트가 가장 최근이다. 오디오 쪽에서는 실시간 대화 모델을 몇 주 전에 냈다. 자막이 그 모델 이름을 여러 번 다르게 적는다.
바탕은 제미나이 3이라고 말한다. 오디오를 알아듣는 일에서 이 모델이 잘하는데, 받아 적는 것을 넘어 그 안에 든 결까지 읽는다는 것이다. 말 자체만이 아니라 그 말이 놓인 맥락, 감정, 말의 속도 같은 것이다. 목표는 깊이 알아듣고 풍부하게 받아 적고 튼튼하게 추론하는 모델이고, 여러 언어와 방언과 억양을 가리지 않는 것이다. 사람들이 겹쳐 말할 때도 잘 받아 적고 언어가 바뀌어도 매끄럽게 따라간다고 말한다.
한 번 물어 이만큼 받는다
에코스크립트라는 앱을 보여 준다. 녹음을 넣으면 제미나이 3 플래시 프리뷰가 뜯어 정보를 뽑는 앱이고, AI 스튜디오로 만들어 갤러리에 올려 뒀다.
시킨 것은 이렇다. 화자를 갈라 낼 것, 맥락이 있으면 이름으로 이름표를 달 것, 정확한 타임스탬프를 줄 것, 언어를 알려 주고 영어가 아니면 번역을 붙일 것, 감정을 행복·슬픔·화남·중립 중에서 고를 것, 그리고 전체 요약을 맨 앞에 둘 것이다.
이것이 호출 한 번이었다고 강조한다. 받을 꼴을 미리 정해 준 덕에 나온 것이 그대로 화면 칸에 들어갔다는 것이다.
데모에서는 어긋난 자리가 여럿이다. 자기 독일어는 보통 화남으로 분류되는데 이번에는 아니었다고 하고, 프랑스어 대목은 중립으로 나왔는데 보통은 슬픔으로 나온다고 말한다. 일본어 번역은 잘 안 됐다고 그대로 밝힌다. 중국어 번역은 방에 읽을 사람이 없어 맞다고 치고 넘어간다.
목소리를 만드는 네 칸
다른 *음성 합성 서비스는 보통 목소리를 잔뜩 쌓아 두고 성별과 억양과 언어로 걸러 고르게 한다. 제미나이는 기본 목소리가 서른 남짓이고, 오디오를 알아듣는 힘을 써서 그 목소리에게 이렇게 연기하라고 시키는 방식이라고 말한다.
보이스 라이브러리라는 앱이 AI 스튜디오 갤러리에 있다. 높은 음의 아일랜드 남자 목소리가 필요해서 제미나이 3 플래시로 음성 생성용 지시문을 짜게 했다고 한다. 이름을 붙이고, 클레어주 해안의 북적이면서 아늑한 펍이라는 장면을 세우고, 진하고 진짜 같은 아일랜드 억양으로 읽으라고 시킨다.
여기서 재생이 실패한다. 준비해 둔 녹음으로 대신 들려준다. 기본 목소리 하나는 표준 미국 억양이고, 다른 목소리는 같은 방식으로 싱가포르 쪽으로 바꿔 들려준다.
실시간 모델은 소리를 받아 소리로 답하는 방식이고 양쪽이 동시에 말할 수 있다. *웹소켓으로 텍스트와 오디오와 영상을 실시간으로 밀어 넣으면 실시간 오디오와 그 글자 기록이 돌아온다.
여기서 발표자가 성능 이야기를 꺼내다 스스로 끊는다. 오디오 쪽 벤치마크는 믿을 수 없다는 것이다.
대신 구조를 든다. 생각하고 추론하는 힘이 모델 안에 그대로 들어 있어서, 소리를 글자로 바꾸고 그 글자를 언어 모델에 넘겨 지능을 얻는 *캐스케이딩 방식과 다르다는 것이다.
신용카드 없이 무료로 써 볼 수 있다고 안내하고 라이브로 시연한다. 친근한 아일랜드 억양으로 말하라는 지시를 주고 카메라를 물려 대화한다. 독일어로 시를 청하자 독일어로 답하는데 아일랜드 억양이 그대로 얹힌다. 그러니 언어마다 지시를 손봐야 한다고 스스로 짚는다.
화면도 밀어 넣을 수 있는데 영상 프레임을 받는 것이고 지금은 초당 한 장이 한계라고 말한다. 파이썬으로 서버끼리 붙이는 예시와 자바스크립트로 브라우저에서 붙이는 예시가 문서에 있다. 실시간 오디오는 까다로운 편이라 코딩 에이전트에 깔아 쓰는 스킬을 제미나이 API 전체에 대해 내놨다고 한다.
리라 3을 최근에 냈고 이제 가사가 붙은 음악을 만든다. 모델이 둘로 갈려 있다. 클립은 30초짜리 짧은 곡을 만들고, 프로는 길이가 다 있는 곡을 만든다.
라이브 주크박스라는 앱을 만들어, 실시간 모델에 리라를 부르는 도구를 쥐여 줬다. 시연에서는 영국 스타트업 판을 다룬 독일 테크노 슐라거를 미친 듯한 기운으로 만들어 달라고 하고 가사는 알아서 채우라고 시킨다.
슬라이드가 필요하면 되감아 링크를 보여 주겠다는 말로 끝난다.
발표가 스스로 밝힌 어긋남
| 어디서 | 무엇 |
|---|---|
| 지난 발표 | 데모 녹화본을 덮어써서 통째로 날렸다고 말한다 |
| 일본어 번역 | 잘 안 됐다고 그대로 밝히고 넘어간다 |
| 중국어 번역 | 방에 읽을 사람이 없어 맞다고 치고 넘어간다 |
| 목소리 재생 | 실패해서 미리 준비한 녹음으로 대신한다 |
| 감정 분류 | 보통 나오던 것과 다른 값이 나왔다고 두 번 말한다 |
| 억양 지시 | 독일어에도 아일랜드 억양이 얹혀, 언어마다 지시를 손봐야 한다고 밝힌다 |
여섯 다 발표자가 무대에서 직접 말한 것이다.
잰 값이 하나도 없다. 벤치마크를 못 믿겠다고 밝힌 것은 정직한 자리인데, 그러면 무엇으로 판단해야 하는지는 대지 않는다. 겹쳐 말하는 것을 잘 받아 적는다는 주장도 데모 한 번이고 얼마나 자주 맞는지가 없다.
감정을 넷 중에서 고르게 한 것도 그대로 지나간다. 그 넷이 무엇을 근거로 정해진 것인지, 사람이 매긴 것과 얼마나 맞는지가 나오지 않는다. 발표자 자신의 독일어와 프랑스어에서 값이 흔들린 것을 두 번 말하고도 그것을 정확도 이야기로 잇지 않는다.
값과 지연도 없다. 실시간 대화가 얼마나 늦게 돌아오는지, 초당 한 장이라는 영상 한계가 무엇 때문인지, 무료로 얼마나 쓸 수 있는지가 나오지 않는다.
목소리 서른이라는 숫자도 「서른 남짓」에서 멈춘다. 그 목소리로 못 만드는 소리가 무엇인지, 억양을 지시로 입히는 방식이 원어민에게 어떻게 들리는지는 다루지 않는다. 싱가포르와 아일랜드 예시를 들려주면서도 그쪽 사람에게 확인한 이야기는 없다.
노래 쪽은 가장 얇다. 두 모델의 길이 차이만 있고, 가사를 모델이 채운다는 것 말고 어떤 자료로 배운 것인지, 만든 곡을 어디까지 쓸 수 있는지가 발표에 없다.
용어
무엇이든 넣어 무엇으로든 낸다는 슬라이드를 발표자가 스스로 정정하는 데서 시작함 — 아직 한 모델이 아니라 이해하는 모델과 만드는 모델이 따로 있고, 그 사이를 함수 호출로 잇는다. 노트북LM 비슷한 것을 만들며 파이프라인을 미리 박지 않고 무엇을 만들지 모델이 정하게 두는 구조를 보여줌. 오디오 1분이 토큰 1,920개로 환산돼 100만 한도면 9시간 넘게, 영상은 한 시간쯤 들어가고, 같은 파일을 되풀이해 물으면 캐싱으로 값이 90% 준다는 계산이 나옴. 실시간 부분은 시간이 없어 동료 녹화로 대신한다.
▾한줄 코멘트. 「무엇이든 무엇으로」라는 제목을 발표자가 첫 몇 분 만에 스스로 깎는다. 아직 한 모델이 아니라 이해하는 모델과 만드는 모델이 따로 있고, 사이를 함수 호출이 잇는다는 것이다. 그래서 이 발표에서 실제로 배우는 것은 모달리티가 아니라 배선이다. 무엇을 그리고 무엇을 읽어 줄지 미리 박아 두지 않고 모델이 정하게 두는 구조인데, 그렇게 두면 무엇이 어긋나는지는 다루지 않는다.
구글 딥마인드에서 제미나이 API와 AI 스튜디오를 맡은 사람이 나온다. 이날 다루는 것은 무엇이든 넣어 무엇으로든 내는 네이티브 *멀티모달 에이전트다.
먼저 할 수 있는 것을 늘어놓는다. 넣는 쪽은 글만이 아니라 코드와 이미지, 오디오와 영상, URL과 구글 검색까지다. 내는 쪽도 글만이 아니라 이미지와 음성, 영상, 함수 호출, 코드다.
그러고는 이 슬라이드가 잘못된 인상을 준다고 스스로 짚는다. 아직 하나의 멀티모달 모델이 아니고 모델이 여럿이라는 것이다. 지금 메인인 제미나이 3 계열은 여러 모달리티를 알아듣지만 내놓는 것은 글이다. 이미지와 음성을 만드는 일은 메인 모델을 바탕에 두고 따로 만든 생성 모델이 맡는다.
로컬 이야기도 붙인다. 젬마가 글과 이미지와 영상을 받고 더 작은 모델은 오디오까지 받는다고 말하면서, 틀리면 정정해 달라고 덧붙인다.
자료에서 결과물까지 도는 고리
목표는 이 자리가 끝나면 청중이 노트북LM 비슷한 것을 스스로 만들 수 있게 하는 것이다. 청중 대부분이 써 본 적 있다고 손을 들었다고 한다. 여러 자료를 넣으면 그것을 설명하는 팟캐스트를 만들어 주는 기능이 인기라고 소개한다.
여기서 결정 하나를 밝힌다. 파이프라인을 손으로 박아 두는 워크플로가 아니라 에이전트로 만든다는 것이다. 무엇을 만들지 에이전트가 정하게 둔다.
구조는 두 단계다. 앞이 자료를 읽어 내는 자리이고, 뒤가 제미나이를 추론 모델로 두고 도구를 부르는 고리다. 고리를 돌면서 자료가 더 필요한지 아니면 이만하면 됐는지를 스스로 따진다. 끝에 나오는 것이 글과 음성과 인포그래픽이다. 넣는 자료는 PDF와 이미지, 강의나 튜토리얼 같은 영상, 음성 메모다.
시작은 간단하다. AI 스튜디오에서 API 키를 무료로 받고 SDK를 깐다. PDF와 영상과 MP3를 올리거나 작은 파일은 그대로 실어 보낸다. 코드를 외울 필요는 없다며 제미나이 API 스킬을 코딩 에이전트에 붙이면 된다고 말한다.
발표가 낸 계산
| 값 | 무엇 |
|---|---|
| 1,920토큰 | 오디오 1분이 환산되는 양 |
| 100만 토큰 | 제미나이의 한도 |
| 9시간 넘게 | 그래서 넣을 수 있는 오디오 길이 |
| 한 시간쯤 | 영상은 이만큼 |
| 90% | 같은 파일을 되풀이해 물을 때 *캐싱으로 아끼는 값 |
받아 적는 일도 된다고 말한다. 플래시는 물론 가장 작은 모델도 오디오를 잘 받아 적는다는 것이다. 구간을 정해 5분부터 15분까지만 보라고 시킬 수도 있고, 파일 API로 더 큰 것을 올리거나 유튜브 주소를 그대로 넘길 수도 있다.
여기까지가 첫 확인 지점이다. 여러 자료를 읽어 요약을 낼 수 있다.
무엇을 부를지 누가 정하나
*함수 호출을 붙이는 방식을 보여 준다. 함수 선언에 이름과 설명을 적고, 이 경우 파라미터는 그림이 어떻게 생겨야 하는지 적을 문자열 하나다. 에이전트에는 그림이 있어야 알아들을 만큼 어려운 개념에는 이미지 생성을 부르고, 소리로 들으면 나을 절에는 음성 생성을 부르라고 시킨다.
이미지는 나노 바나나 2로 부르는 모델이 맡는다. 발표자는 모델 이름 자체는 그리 예쁘지 않다고 말한다. 프롬프트에 인포그래픽을 만들라고 적으면 슬라이드 같은 그림을 만들어 준다.
이 모델들을 네이티브라 부르는 까닭도 짚는다. 메인 제미나이가 받은 학습을 상당 부분 그대로 물려받았기 때문이다. 그래서 세상을 아는 것이 그림에 나타난다. 지도 위에 화살표만 그려 놓고 설명을 시킨 예에서 금문교를 정확히 그렸다. 수학 숙제를 채점해 고친 것을 그림으로 만들고 그림 위에 코드를 얹기도 한다.
음성 쪽은 아직 제미나이 2.5를 바탕으로 한다. 화자 둘이 주고받는 팟캐스트 꼴도 만든다. 시연에서는 트랜스포머를 2분에 설명하는 오디오를 들려준다. 여러 언어를 하고 억양과 말투를 알아듣는다면서 영국식 억양에 이어 자기 바이에른 억양을 실시간으로 들려준다.
여기까지가 두 번째 확인 지점이고, 이미 노트북LM 비슷한 것이 된다고 말한다.
실시간용으로는 제미나이 3.1 플래시 라이브가 있고 이것을 오디오 투 오디오 모델이라 부른다. 소리가 들어가 소리가 나오는 하나의 구조라, 모델 여럿을 이어 붙이던 파이프라인이 더 이상 필요 없다는 것이다.
라이브 시연은 시간이 없어 하지 못하고 동료가 찍어 둔 영상으로 대신한다. 영상에서 모델은 상대의 짧은 머리와 수염, 파란 셔츠 위에 걸친 어두운 재킷을 그 자리에서 짚어 낸다. 직접 해 보라고 주소를 안내한다.
마지막으로 그날 아침 키노트에서 나온 것을 붙인다. 여러 모달리티를 하나의 벡터 공간에 모으는 *임베딩 모델인데 멀티모달 검색 같은 데 쓴다. 로컬로 가려면 젬마 4가 있다고 다시 짚는다. 이 패턴이 다른 분야에도 그대로 옮겨 간다는 말로 닫는다.
성능 값이 없다. 나온 숫자는 토큰 환산과 캐싱 절감뿐이고 둘 다 요금 계산이지 얼마나 잘하는지가 아니다. 작은 모델도 받아 적는 것을 잘한다고 말하면서 무엇으로 잰 것인지 대지 않는다.
에이전트로 두는 데 드는 값도 없다. 무엇을 만들지 모델이 정하게 두면 고리를 몇 번 도는지, 그때 값과 시간이 얼마인지, 파이프라인을 손으로 박은 쪽과 견주면 어떤지가 나오지 않는다. 워크플로가 아니라 에이전트로 만든다는 것이 이 발표의 결정인데 그 결정의 값이 비어 있다.
틀렸을 때의 이야기도 없다. 그림이 필요한 개념을 모델이 잘못 고르면, 인포그래픽에 잘못된 값이 들어가면 무엇이 잡아 주는지가 나오지 않는다. 수학 숙제를 채점해 준다는 예가 나온 자리라 더 걸리는 대목이다.
음성 쪽이 아직 이전 세대 모델을 바탕으로 한다는 것도 그대로 지나간다. 언제 옮겨 가는지, 그때까지 무엇이 다른지는 말하지 않는다.
실시간 부분은 직접 보여 주지 못했다. 동료가 찍은 영상으로 대신했고, 지연이 얼마인지도 나오지 않는다.
용어
이미지·영상 생성 모델을 크게 학습시키는 데 드는 것을 여덟 대목으로 훑는 40분짜리 강의. 생성이 픽셀 위가 아니라 따로 학습시킨 압축기가 만든 좁은 자리에서 일어나고, 텐서가 두 자릿수까지 줄어드는 것이 가능 여부를 정한다는 것부터 짚음. 노이즈를 걷는 한 걸음이 왜 조금씩만 가야 하는지, 가이던스가 스텝마다 모델을 두 번 부르는 대신 무엇을 사 주는지, 증류가 모델을 줄이는 것이 아니라 걸음 수를 줄이는 일이라는 것까지 이어짐. 데이터를 어떻게 고르는지는 비밀이라 말하지 않겠다고 밝힌다.
▾한줄 코멘트. 제품 발표가 아니라 강의라 값이 아니라 구조가 남는다. 그중 하나가 크다. 생성은 픽셀 위에서 일어나지 않는다. 따로 학습시킨 압축기가 만든 좁은 자리에서 돌고, 그 자리가 두 자릿수 작아지는 것이 되느냐 아예 못 하느냐가 여기서 갈린다. 그런데 발표자가 가장 중요하다고 말한 대목은 정작 비워 둔다. 데이터를 어떻게 고르는지가 모델 품질의 비밀이라 말하지 않겠다는 것이다.
구글 딥마인드에서 10년 넘게 일한 연구자이고 생성 미디어 팀에서 영상과 이미지 모델을 만든다고 소개한다. 이 자리는 그런 모델을 크게 학습시키는 데 들어가는 것 전부를 뒤에서 보여 주는 이야기다.
*디퓨전에 초점을 두는 이유를 먼저 댄다. 요즘 소리와 그림을 만드는 데 사람들이 쓰는 방식이 이것이기 때문이다. 언어 모델 쪽이 주로 *자기회귀에 기대는 것과 다르다.
여덟 대목을 다룬다. 데이터 고르기, 표현, 모델링, 아키텍처, 크게 학습시키기, 샘플링, 증류, 제어다. 모델링과 샘플링 쪽에 할 말이 더 많다고 미리 말한다.
첫 대목에서 바로 문을 닫는다. 데이터를 고르는 일이 결과를 정하는 데 대단히 중요하다고 강조하면서, 자기 박사 시절에는 데이터를 들여다보는 것이 권장되지 않았다고 말한다. 남들과 견주려면 정해진 데이터셋을 써야 했기 때문이다. 데이터를 손보는 데 쓰는 시간이 모델을 만지는 시간보다 나은 투자일 때가 있다고 하면서도, 자세한 것은 공개된 것이 적고 모델을 좋게 만드는 비밀에 해당해 말하지 않겠다고 밝힌다.
픽셀에서 만들지 않는다
그림의 흔한 디지털 표현은 픽셀 격자다. 이미지는 2차원, 영상은 3차원이다. 디퓨전 초기에는 이것을 그대로 모델에 밀어 넣었고 놀랄 만큼 잘 됐다고 말한다.
해상도와 길이를 키우면 그 방식이 무너진다. 1080p 영상 30초를 초당 30장으로 잡으면 학습 예제 하나가 몇 기가바이트다. 그러니 안 된다.
기존 영상 코덱이나 JPEG 같은 압축을 쓰지 않는 이유도 짚는다. 그쪽은 작게 만드는 데 집중하느라 데이터의 구조를 가리고, 그러면 생성 모델링이 아주 어려워진다는 것이다.
그래서 압축기를 따로 학습시킨다. *오토인코더가 그 방법인데, 입력을 좁은 목으로 통과시켜 그대로 되살리게 시키면 그 목에서 압축된 표현이 만들어진다. 그다음 단계에서 그 표현을 뽑아 놓고 그 위에 생성 모델을 학습시킨다. 자기회귀여도 되고 디퓨전이어도 되는데, 소리와 그림에서는 같은 파라미터 예산으로 좋은 결과를 내는 데 디퓨전이 앞선다고 말한다. 만들어진 것은 압축된 상태라 미리 학습해 둔 디코더로 픽셀로 되돌린다.
크기를 예로 든다. 256×256 컬러 이미지가 32×32 격자가 되고, 줄어든 만큼을 채널 몇 개로 메운다. 이렇게 두 자릿수까지 줄일 수 있고, 그것이 메모리에 들어가느냐 아무것도 못 하느냐가 여기서 갈린다.
이 압축이 요즘 코덱보다 오히려 원시적인데 그것이 의도라고 말한다. 신경망 구조가 픽셀의 위치 관계를 상당히 기대기 때문에 그 얼개를 남겨 둬야 한다는 것이다. 한 논문의 그림을 빌려, 압축된 값을 색으로 되비쳐 보면 어떤 동물인지 여전히 알아볼 수 있다고 짚는다. 뜻을 지운 것이 아니라 국소 질감과 미세한 구조만 줄인 것이다.
한 걸음이 도는 자리
디퓨전은 먼저 망가뜨리는 과정을 정한다. 노이즈를 조금씩 더해 정보를 지운다. 그리고 그 노이즈를 걷어 내는 모델을 학습시킨다.
조금 더하면 세부가 먼저 사라진다. 토끼 수염은 안 보여도 실루엣은 남는다. 더 더하면 그 실루엣까지 사라진다.
여기서 중요한 성질이 나온다. 노이즈 낀 그림을 보고 원본이 무엇이었냐고 묻는 것은 답이 하나가 아닌 물음이다. 정보가 이미 지워졌으니 여러 그림이 그 노이즈를 낳을 수 있다. 모델은 하나만 내놓아야 하니 그 여럿의 평균을 낸다. 한 걸음에 끝내면 흐릿한 그림이 나오는 이유가 이것이다.
그래서 예측한 방향으로 조금만 간 뒤 다시 묻는다. 많은 알고리즘은 그 작은 걸음 뒤에 노이즈를 조금 도로 더하는데, 오차가 쌓이는 것을 막기 위해서다.
여기에 관찰 하나를 얹는다. 이미지 몇 장의 주파수 스펙트럼을 로그로 그리면 직선이 나온다. 거듭제곱 관계가 있다는 뜻이다. 반면 가우시안 노이즈는 모든 주파수를 고르게 담아 평평하다. 그래서 노이즈를 걷어 내는 일은 낮은 주파수에서 높은 주파수로, 거친 것에서 세밀한 것으로 만들어 가는 일과 같아진다. 발표자는 이것을 스스로 「디퓨전은 결국 스펙트럴 자기회귀」라고 정리했다고 말한다.
디노이징 모델의 구조는 처음에 U-Net이었다. 영상 분할 같은 데 쓰려고 만든 합성곱 신경망이다. 이후 트랜스포머도 된다는 것이 밝혀졌는데, 언어 모델과 달리 앞만 보게 가리지 않는다. 여기서는 양쪽을 다 봐도 괜찮기 때문이다.
영상 쪽은 갈래가 셋이다. 전부 자기회귀로 펴서 토큰 하나씩 만드는 방식, 3차원 덩어리 전체를 한꺼번에 노이즈 씌우고 걷어 내는 방식, 그리고 시간 축은 자기회귀로 가되 각 프레임은 디퓨전으로 만드는 중간 방식이다. 요즘 영상 모델 대부분이 둘째이고, 셋째의 예로 한 모델을 든다.
크게 학습시키는 쪽은 나눠 맡기는 이야기다. 어느 규모까지는 배치를 여러 칩에 갈라 주면 되는데 어느 지점부터는 모델 자체를 갈라야 한다. JAX로 만드는데 칩 사이 통신을 알아서 줄여 주는 도구가 좋다고 말한다.
발표에 나온 값
| 값 | 무엇 |
|---|---|
| 몇 기가바이트 | 1080p 30초 영상 하나를 픽셀로 담을 때 |
| 256×256 → 32×32 | 압축기가 줄이는 격자 크기 |
| 두 자릿수 | 그렇게 줄어드는 텐서 크기의 규모 |
| 스텝당 2회 | 가이던스를 쓸 때 모델을 부르는 횟수 |
| 50번쯤 | 원래 샘플링이 밟던 걸음 수 |
| 3걸음 | 증류로 절충해 노리는 걸음 수 |
샘플링 알고리즘은 노이즈를 도로 더하는 쪽과 안 더하는 쪽이 있고 서로 내는 값이 다르다고 말한다. 결정론적인 쪽은 처음 노이즈와 결과가 일대일로 붙어 있어 증류할 때 쓸모가 있다.
*가이던스는 이 발표에서 가장 값이 큰 대목이다. 조건 없이 낸 예측과 조건을 준 예측의 차이를 델타라 부르고 그 방향을 키워 새 방향으로 삼는다. 이 값을 올리면 다양성은 크게 줄지만 품질이 크게 오른다. 모델이 제 체급 위를 친다는 표현을 쓴다. 대신 스텝마다 모델을 두 번 불러야 한다. 2021년 논문 하나를 들며 가이던스를 쓴 것과 안 쓴 것을 견준 마지막 축에 드는 자료라고 말하고, 그 뒤로는 다들 늘 쓴다고 한다.
*증류는 언어 모델 쪽과 뜻이 다르다고 못 박는다. 모델을 작게 만드는 것이 아니라 샘플링에 드는 걸음 수를 줄이는 일이다. 경로의 접선을 예측하는 대신 끝점을 바로 예측하도록 학습시킨 것이 컨시스턴시 모델이고, 디퓨전 모델을 그렇게 증류할 수 있다. 다만 한 걸음에 끝내려 하면 대개 잘 안 된다. 50번에 나눠 하던 일을 한 번에 하라는 요구이기 때문이다. 그래서 경로의 일부 구간에만 이 방식을 써서 세 걸음쯤으로 줄이는 절충을 쓴다.
글로 시키는 것 말고도 조건을 주는 자리가 늘고 있다고 말한다. 자기 사진이나 짧은 영상을 주고 그 사람이 들어간 영상을 만들게 하는 식이다.
영상에서는 더 나아간다. 카메라가 어떻게 움직이는지, 사건이 얼마나 빠르게 언제 일어나는지 같은 것은 글로 욱여넣을 것이 아니라고 말한다.
문제는 사전학습 데이터 대부분에 그런 조건 정보가 없다는 것이다. 그래서 글 프롬프트만으로 먼저 학습시키고 나중 단계에서 조건 신호를 더하는 편이 쓸모 있다고 말한다. 그 단계에서 사람 평가를 바탕으로 선호를 맞추는 일도 한다. 강화학습이나 선호 최적화를 쓴다.
가장 크게 비어 있는 자리를 발표자가 먼저 말한다. 데이터를 어떻게 고르는지다. 결과를 정하는 데 가장 중요하다고 말하고서 비밀이라 말하지 않겠다고 한다. 그러면 뒤에 나오는 모든 구조 이야기가 어느 정도까지 결과를 설명하는지도 함께 흐려진다.
값이 거의 없다. 나온 숫자는 텐서 크기와 걸음 수뿐이고 성적이나 비용은 없다. 가이던스를 쓰면 품질이 크게 오른다고 말하면서 무엇으로 얼마나 잰 것인지 대지 않는다. 스텝마다 모델을 두 번 부르는 값이 얼마인지도 없다.
증류 쪽도 마찬가지다. 50번을 세 번으로 줄인다는 것은 걸음 수이고, 그때 품질이 얼마나 떨어지는지는 「한 걸음은 잘 안 된다」와 「세 걸음이면 나을 것」 사이에 있다. 잰 값이 붙지 않는다.
영상 아키텍처 셋도 갈래만 있다. 요즘 대부분이 둘째를 쓴다고 하면서 왜 그쪽이 이겼는지, 셋을 같은 조건에서 견준 결과가 있는지는 나오지 않는다.
조종 쪽은 방향만 있다. 카메라 움직임 같은 신호를 나중 단계에서 더한다고 했는데, 그 신호를 어디서 구하는지가 앞의 데이터 문제와 같은 자리인데도 다루지 않는다.
용어
2편입니다. 카드도 이 차례로 서 있습니다 — 위에서부터 읽으면 앞이 뒤를 받칩니다.
전통 기업에서 에이전트 일이 기존 ML·데이터 과학 팀으로 떨어지는 위임 사슬을 짚고, 그 자리가 왜 어긋나는지를 파이프라인 차이로 설명함. 모델이 이미 만들어져 있어 학습·검증 절차가 통째로 빠지고, 행동을 바꾸는 손이 재학습이 아니라 입력과 프롬프트라는 것이다. 정밀도·재현율·F1에 눈이 묶이는 습관이 에이전트 평가에는 좁다는 것이 발표자가 가장 크게 든 반론이고, 대신 가드레일·LLM 심사·파인튜닝 셋에서는 값을 더한다고 결론짓는다. 잰 값은 하나도 나오지 않는다.
▾한줄 코멘트. 조직 이야기처럼 들리지만 실은 평가를 누가 정의하느냐의 이야기다. 발표자가 가장 크게 든 반론이 데이터 과학자가 무엇을 재야 하는지 안 보인다는 것이고, 답으로 데려오라는 사람도 문제에 가장 가까운 비기술 전문가다. 그런데 이 발표는 자기 회사가 파는 것이 바로 그 평가 도구인 자리에서 나온 것이라, 결론이 「사람을 더 데려와라」로 끝나는 대목은 그만큼 깎아서 읽어야 한다. 값은 하나도 나오지 않는다.
브레인트러스트에서 솔루션 엔지니어링 팀을 이끄는 필 헷젤이 나온다. 그 전에는 컨설팅과 시스템 구축을 12년 했고 마지막에는 한 컨설팅 회사에서 데이터브릭스 사업부를 글로벌로 맡았다. 브레인트러스트는 사용자로 먼저 쓰다가 제품이 마음에 들어 지원했고 1년쯤 됐다고 말한다.
컨설팅 시절에 본 것을 하나 든다. 고객들이 생성AI 개념검증은 아주 잘 만드는데 그것을 프로덕션으로 올리는 데는 그만큼 못했다는 것이다.
이날 물음은 하나다. 에이전트와 에이전트 개발이 데이터 과학이나 ML 엔지니어의 것이냐는 것인데, 자기 답이 듣기 좋지는 않을 테니 이유를 들어 달라고 미리 말한다.
자기 회사 제품은 오늘 다루지 않겠다고 하고 아래층 부스로 오라고 한다. 다만 그 회사가 무엇을 하는지는 밝힌다. 에이전트 품질을 다루는 곳이고 기둥이 둘인데, 내보내기 전에 확신을 얻는 *평가와 내보낸 뒤 실제 사용자를 마주하고도 확신을 지키는 *관측이다.
일이 그 팀에 떨어지는 길
전통 기업 쪽 사슬을 먼저 그린다. 결정권자가 잡지에서 에이전트를 만들어야 한다는 글을 읽고 아래로 넘기면, 그것이 다시 기존 ML이나 데이터 과학 플랫폼 팀으로 내려간다. 생성AI라는 이름에 AI가 들어 있으니 기존 AI 팀에 넘기는 것이 자연스러운 선택이 됐다는 것이다. 청중에게 물으니 원래 ML 플랫폼 엔지니어였다가 생성AI를 넘겨받은 사람들이 손을 들었다.
다른 쪽은 AI 네이티브다. 생성AI 이전에 있던 것이 거의 없어 기존 체계를 덜 따지고, 처음부터 에이전트를 중심으로 사업을 세웠다. AI·ML 플랫폼 팀 대신 시대에 맞춰 유연하게 크는 작은 엔지니어 팀을 두고, 제품 엔지니어링과 AI 엔지니어링을 오가는 사람을 쓴다. 회사가 작아 각자가 문제에 더 가까이 있고, 그래서 이 에이전트가 무엇을 풀어야 하는지를 더 잘 안다고 말한다.
전통 ML과 생성AI가 갈리는 두 자리
| 무엇 | 전통 ML | 생성AI |
|---|---|---|
| 모델 | 데이터를 모아 파이프라인에 태우고 학습시키고, 과적합을 피하며 배포하는 일이 그 팀의 일이다 | 앤트로픽·오픈AI·미스트랄이 그 과정을 이미 끝내 끝점으로 내놨다. 남은 일은 그 API를 제품에 붙인 뒤 평가하는 것이다 |
| 고치는 손 | 데이터를 더 넣어 다시 학습시키거나 *피처 엔지니어링을 하고 A/B 시험으로 나아졌는지 본다 | 파인튜닝은 드물어 입력과 프롬프트와 맥락을 바꾼다. 값을 더하는 손이 피처가 아니라 자연어라 다른 재주가 판에 들어온다 |
이 표의 오른쪽 칸이 뒤에 나오는 찬반의 바탕이다. 학습과 검증을 오가는 절차가 통째로 빠져 있다.
발표자가 양쪽으로 세운 근거
| 어느 쪽 | 근거 |
|---|---|
| 데이터 과학자 쪽 | 조직에서 모델을 다스리는 것이 그들이라 신경망과 언어 모델이 어떻게 도는지 아는 것이 많고, 그래서 이 기술의 위험을 더 잘 안다 |
| 데이터 과학자 쪽 | 모델과 그 자산을 프로덕션에 올리는 엄격한 절차를 이미 갖고 있어 회사를 지키는 시험 과정을 안다 |
| 데이터 과학자 쪽 | 시험을 대하는 태도가 엄격하다 |
| 반대 쪽 | 모델이 이미 만들어져 있어 학습도 시험도 필요 없다. *교차검증 같은 절차를 밟지 않는 다른 파이프라인이다 |
| 반대 쪽 | 무엇을 재야 하는지가 다르다. 정밀도·재현율·F1 같은 익숙한 지표에 눈이 묶이는데, 에이전트는 훨씬 넓은 면을 봐야 하고 기술적으로 잘 도는지가 아니라 할 일을 하는지를 봐야 한다. 발표자가 가장 큰 논거라고 지목한 자리다 |
| 반대 쪽 | 언어 모델은 그냥 API다. 제품 엔지니어는 다른 시스템에서 정보를 가져와 쓸모 있게 내놓는 일에 이미 익숙하다 |
여기에 둘을 더 붙인다. 하나는 시스템 쪽이다. 감독 에이전트가 다른 인프라에서 도는 하위 에이전트들을 부르고 그것들이 또 다른 시스템을 부르는 구조가 되면 복잡한 시스템 문제이지 통계나 수학을 하던 사람의 자리가 아니라는 것이다.
다른 하나가 비기술 쪽이다. 주제 전문가나 제품 매니저가 에이전트에 넣는 프롬프트를 직접 쥐는 것이 값이 크다고 말한다. 이 사람들이 그 에이전트가 풀려는 문제에 가장 가깝기 때문이다. 좋은 에이전트를 만드는 데는 사람이 자취를 하나씩 보고 이름표를 다는 큰 작업이 들어가는데, 도메인을 아는 비기술 인력이 자취를 열어 잘 돌았는지, 무엇보다 왜 그런지를 말할 수 있다는 것이다.
기술을 통째로 새로 익히라고 말할 생각은 없다고 못 박고, 이런 판을 만들 때는 팀을 다양하게 꾸리는 것이 맞다고 정리한다. 데이터 과학자가 값을 더하는 자리를 셋 든다.
첫째가 울타리다. 언어 모델은 다음 토큰을 예측할 뿐이고 사실 아는 것이 없는 통계 문제라고 말해 줄 수 있는 사람, 방 안의 어른 노릇을 할 사람이라는 것이다.
둘째가 모델로 채점하는 자리다. 에이전트 평가에서 언어 모델을 심사자로 쓰는 몫이 큰데, 사람들이 그 심사를 그냥 믿고 싶어 한다. 데이터 과학자는 이름표를 단 데이터 묶음을 만들어 정밀도·재현율·F1 식으로 그 심사자를 재는 재주가 있다.
셋째가 파인튜닝이다. 오픈소스 모델을 그 쓰임에 맞춰 손봐야 한다면 가장 기술적이고 재미있는 자리이며 여기서 크게 값을 더한다고 말한다.
팀을 어떻게 세울지도 짚는다. 비기술 전문가는 사람 이름표 작업과 프롬프트·맥락 엔지니어링을 맡고, 제품과 시스템 엔지니어는 그 요구를 제품에 넣고 에이전트가 도는 시스템을 잘 만들고, 데이터 과학자는 평가와 관측 파이프라인을 실제로 만들어 프로덕션과 실험 사이에 되먹임 고리를 세운다.
평가를 낡지 않게 두는 고리
질의응답이 둘 붙는다. 하나는 도구를 누가 갖느냐가 아니라 어떤 문제를 푸느냐로 봐야 하지 않느냐는 물음이었고, 발표자는 같은 생각이라며 전통 기업의 잘못은 이 일을 ML 엔지니어와 데이터 과학자에게만 가둬 두는 것이라고 답한다.
다른 하나는 고리를 닫는 도구에 대한 것이었다. 도메인 전문가가 시스템을 손보기 쉽게 만드는 도구가 빠진 자리라고 말하면서 자기네 판에 사람 이름표 기능과 프롬프트를 시험해 보는 자리가 있다고 답한다. 평가하는 쪽을 낡지 않게 지키는 방법을 묻자, 프로덕션에서 모은 것을 오프라인 평가 묶음에 계속 더하고 그 평가가 사람 판단과 붙는지 갈라지는지를 스스로 본다고 답한다.
결론은 답은 늘 가운데 있다는 것이고, 에이전트를 만들 때 방에 사람을 더 데려오라는 말로 끝난다.
값이 하나도 없다. 조직을 두 갈래로 갈라 놓고도 어느 쪽이 무엇을 얼마나 더 잘 냈는지 잰 것이 없다. 개념검증은 잘 만드는데 프로덕션에 못 올린다는 관찰이 발표의 출발점인데, 몇 곳에서 몇 건이 그랬는지가 없다.
찬반 여섯도 근거의 성격이 같지 않다. 위험을 더 잘 안다거나 시험 태도가 엄격하다는 것은 겪은 인상이고, 학습 절차가 빠진다는 것은 사실이다. 발표는 이 둘을 나란히 세운다.
가장 큰 논거로 든 자리에도 대안이 없다. 정밀도·재현율·F1이 좁다고 했으면 그럼 무엇을 재야 하는지가 나와야 하는데, 훨씬 넓은 면이라는 데서 멈춘다. 뒤에서 데이터 과학자가 심사자를 잴 때 쓰라고 든 지표가 다시 정밀도·재현율·F1이라 앞뒤가 맞물리는 자리인데 그 대목도 짚지 않는다.
비기술 전문가가 프롬프트를 쥔다는 대목의 값도 없다. 이름표 작업이 얼마나 드는 일인지, 그 사람들의 판단이 서로 갈릴 때 무엇으로 맞추는지가 나오지 않는다.
발표자 자신이 평가 도구를 파는 회사 사람이라는 것은 앞에서 밝히고, 제품 이야기는 안 하겠다고 말한다. 다만 결론에 나오는 세 자리와 팀 구성이 그 도구가 필요한 자리와 겹친다는 것은 발표가 다루지 않는다.
용어
제미나이 3 프로가 화요일에, 나노 바나나 프로가 발표 전날에 나온 자리에서 AI 스튜디오 데모만으로 채운 발표. 얼굴 사진 한 장으로 만화책을, 스크린샷 한 장으로 자기 제품 화면을 복제하고, 짧은 프롬프트로 3D 레이싱 게임을 뽑는다. 그 게임을 멀티플레이어로 바꿔 청중 23명을 QR로 넣었는데 준비 버튼이 다 안 눌려 경주는 끝내 시작하지 못했다. 성능 수치는 하나도 나오지 않고, 예고한 풀스택 런타임은 시점도 조건도 밝히지 않는다.
▾한줄 코멘트. 이 발표에 잰 값은 없다. 그래서 남는 것은 만든 물건들인데, 그 물건들의 성격이 한 방향으로 쏠려 있다. 만화책, 셰이더 웹사이트, 레이싱 게임처럼 틀려도 티가 안 나는 것들이다. 마지막에 예고한 저장소와 결제가 붙는 순간부터는 그 성질이 바뀌는데, 발표는 그 자리를 곧 나온다는 말로만 지나간다. 청중 23명을 넣은 멀티플레이어 시연이 끝내 시작하지 못한 대목이 이 발표에서 가장 정직한 자리다.
구글 딥마인드의 두 사람이 나온다. 한 사람은 바이브 코딩과 AI 스튜디오를 맡고 있다고 하고, 다른 사람은 AI 스튜디오의 제품과 디자인 팀을 이끈다고 소개된다. 자막이 두 번째 사람 이름을 부를 때마다 다르게 적어 원문에서 갈린다.
딥마인드가 해 온 일을 늘어놓은 그림을 띄우면서, 이 그림이 닷새 전 것이라 제미나이 2.5에서 끝난다고 말한다. 제미나이 3 프로가 이번 주 초에 나왔고 화요일에 출시됐는데 그 주가 아직 사흘 남았다는 것이다.
제미나이 3의 능력을 둘로 나눈다. 화면과 미감 쪽이 하나, 도구를 부르며 스스로 일하는 쪽이 하나다. 오른쪽에 띄운 소프트웨어 엔지니어링 실험 그림은 여러 모델에 같은 기본 하네스를 씌워 견준 것이라고 하고, 제미나이 3가 에이전트 상황에서 크게 위에 있고 자기네 이전 모델과 전반적인 최고 기록을 뛰어넘는다고 말한다. 축의 값은 말로 대지 않는다.
전날에는 나노 바나나 프로가 나왔다.
나노 바나나 프로에서 발표자가 가장 좋아한다고 꼽은 것은 세상 지식이다. 구글 검색이 뒤에 붙어 있어서, 이 차를 어떻게 우리느냐고 물으면 검색을 돌아 자세한 인포그래픽과 그림을 만들어 준다.
글자 렌더링도 나아졌다고 말한다. 캔 표면을 따라 글자가 정확히 감긴다. 현지화도 되어 같은 참조 이미지 위에 다른 언어를 얹는다. 한국어 예시가 오른쪽에 있다.
한 장에 사람을 열넷까지 넣어 단체 사진을 만들 수 있다고 한다. 더 넣을 수도 있지만 열넷이 지금까지의 기준선이라는 것이다. 초점을 꽃으로 바꾸라는 한 줄만으로 앞 이미지의 나머지를 그대로 두고 초점만 옮기는 예시도 보여 준다. 벽지나 배너, 광고판처럼 화면비가 다른 것도 된다.
한 줄에서 앱까지
AI 스튜디오는 최신 제미나이를 만나는 자리라고 소개한다. API 키를 받고 모델과 대화할 수 있는데, 이날 다루는 것은 만들기 쪽이다.
화면에는 *AI 칩이라 부르는 것들이 있다. 모델 말고도 구글 검색 *그라운딩, 구글 지도 그라운딩, 라이브 API 같은 기능을 고르는 자리다. 발표자는 웹캠으로 자기 테니스 스윙을 넣으면 실시간으로 교정해 주는 앱을 만들어 뒀다고 한다. 자세가 앞으로 너무 기울면 라이브 API가 잔소리를 한다는 앱도 있다.
무료로 쓸 수 있고, 대부분의 모델은 API 키가 필요 없다. 만든 앱을 남에게 넘기면 그 사람의 AI 스튜디오 무료 몫으로 돌아간다. 청구서가 튀어나올 걱정을 안 해도 된다는 것이다.
발표에서 만든 것들
| 무엇 | 어떻게 시켰나 | 무엇이 나왔나 |
|---|---|---|
| 노트북 스티커 | 나노 바나나에 구글 검색 그라운딩을 붙여 사람 이름을 넣는다 | 검색으로 그 사람에 대한 최신 자료를 모아 취향을 짐작하고 스티커를 그린다. 유행하는 쓰임 중 하나라고 말한다 |
| 만화책 | 얼굴 사진을 올리고 장르와 언어를 고른다 | AI 엔지니어 컨퍼런스에서 발표하는 이야기를 만든다. 배경의 행사 배너까지 그려진다. 이야기 중간에 방향을 고르는 기능은 발표자가 직접 넣었다 |
| 셰이더 웹사이트 | 「매끈한 애니메이션 웹사이트를 만들어 줘」 한 줄 | *셰이더 애니메이션으로 화면들이 흐르고 전환 효과가 붙는다. 글꼴도 스스로 골랐다 |
| 화면 복제 | AI 스튜디오 스크린샷 한 장에 「이 화면을 최대한 그대로 복제하고 앤티그래비티로 내보내는 흐름을 붙여라」 | 화면이 복제되고 내보내기 버튼이 생겨 이번 주 초 알린 에이전트형 IDE로 넘어간다 |
| 레이싱 게임 | 짧은 프롬프트 | 3JS로 3D 레이싱이 나온다. 발표자는 자기가 이기려고 가속 기능을 따로 넣었다고 말한다 |
넷이라고 했지만 스티커까지 다섯이다. 전부 라이브로 돌린 것이고 잰 값은 붙지 않는다.
레이싱 게임을 멀티플레이어로 바꿔 QR 코드를 띄우고 청중을 불러들인다. 이렇게 많은 사람으로는 해 본 적이 없다고 미리 말한다.
들어오는 사람 수를 세는 소리가 그대로 남아 있다. 열아홉, 스물, 그리고 스물셋이다. 이 경주가 시작이나 될지 모르겠다고 말한다.
차끼리 부딪히게 만든 것이 실수였다고 스스로 밝힌다. 화면에서 차들이 서로 튕겨 다니는 것이 보인다는 것이다. 그리고 모두가 준비 버튼을 눌러야 시작되는 구조라, 경주를 시작하지 못한 채 마무리로 넘어간다.
다음에 붙는다는 것
지금까지 만든 것은 전부 프런트엔드 리액트 앱이었다고 밝힌다. 곧 백엔드 지원과 풀스택 런타임이 붙는다는 것이 예고다. 컴포넌트 묶음을 깔거나 하는 일도 프롬프트 한 줄로 되고, 멀티플레이어 앱을 만들겠다고 하면 필요한 서버 얼개를 알아서 이어 붙여 그 속을 감춘다.
발표자는 누구나 소프트웨어를 만드는 세상을 위한 도구를 만드는 첫 세대 엔지니어라는 말로 닫는다. 그날 아침 만난 기술지원 담당자가 유튜브를 보고 바이브 코딩을 시작했다는 일화를 든다. 만든 것이나 물어볼 것이 있으면 트위터로 연락하라고 한다.
성능 값이 하나도 없다. 제미나이 3가 에이전트 상황에서 크게 앞선다고 말한 그림도 실험 이름과 「같은 기본 하네스」라는 조건만 있고 점수를 대지 않는다. 어떤 과제 묶음인지, 어느 모델들과 견줬는지도 말로 대지 않는다.
만든 것들이 얼마나 걸렸는지도 없다. 프롬프트 한 줄로 나왔다는 말이 여러 번 나오는데 그 한 줄에서 앱이 서기까지 몇 분이 걸리는지, 몇 번을 다시 시켰는지가 나오지 않는다. 화면 복제는 한 번에 됐다고 밝히지만 나머지는 그런 말도 없다.
만든 뒤의 이야기가 없다. 무료 몫으로 굴러간다고 했는데 그 몫이 얼마인지, 다 쓰면 어떻게 되는지, 남이 쓰는 앱의 값을 누가 무는지가 없다.
풀스택 런타임은 시점도 조건도 없다. 저장소가 필요하면 저장소를, 전자상거래면 결제를 붙인다고 했는데 무엇을 보고 필요하다고 판단하는지, 그렇게 붙은 결제를 누가 책임지는지는 다루지 않는다. 프런트엔드 데모와 달리 여기서는 틀렸을 때의 값이 달라지는데 그 자리를 발표가 지나간다.
시연 실패는 스스로 밝혔다. 차 충돌을 넣은 것이 잘못이었다고 말하고, 준비 버튼 때문에 경주를 못 시작한 채로 넘어간다.
용어