How we make AI coding more cost efficient without sacrificing task quality

개요

GitHub Copilot은 개별 AI 상호작용의 토큰 수만 줄이는 것이 아니라, 전체 코딩 작업의 결과물을 최적화하여 AI 코딩의 비용 효율성을 높이면서 작업 품질을 유지하는 네 가지 주요 변경 사항을 적용했습니다.

주요 내용

* 반복적인 출력은 줄이고 유용한 컨텍스트는 보존:
* 기존에는 짧은 출력이 오히려 추가적인 호출이나 작업 복구 단계를 유발하여 전체 작업이 더 느리고 비싸질 수 있습니다.
* GitHub Copilot은 install, build, test, lint 출력에서 반복적인 노이즈는 압축하고, cat, git diff와 같은 원본 소스 또는 임의의 명령 결과는 그대로 보존하거나 검색 결과를 효율적으로 재구성합니다.
* 압축 시 에이전트가 필요한 정보를 복구하기 위해 저장된 원본을 열거나 명령을 다시 실행하는 경우가 거의 없어, 오프라인 작업에서 통계적으로 유의미한 작업 성공률 저하가 감지되지 않았고 온라인 실험에서도 비용이 소폭 감소했습니다.
* 가치 없는 형식 제거:
* 파일 내용을 읽을 때 사용되던 view 도구의 줄 번호 접두사를 제거했습니다. 이전 파일 편집 도구는 줄 번호를 사용했지만, 현재 도구는 주변 코드를 매칭하여 줄 번호를 사용하지 않기 때문입니다.
* 이 변경으로 오프라인 벤치마크에서 모델 추론 비용이 약 5% 감소했으며, 온라인 실험에서는 사용자당 평균 일일 모델 추론 비용이 약 3% 감소했습니다.
* 유용한 동작 변경 없이 지침(Prompt) 축소:
* GitHub Copilot의 task 도구는 병렬 작업을 위해 전문화된 에이전트를 실행하는데, 메타 프롬프팅 루프를 통해 프롬프트 크기를 약 절반으로 줄였습니다.
* 초기에는 병렬 실행 지침이 하드 스케줄링 정책으로 변경되어 에이전트가 순차적으로 실행되는 회귀 현상이 발생했으나, "독립적인 에이전트는 병렬로 실행될 수 있으며 부작용을 고려하라"는 한 문장으로 수정하여 문제를 해결했습니다.
* 이 변경으로 각 모델 턴마다 약 1,300개의 태스크-도구 프롬프트 토큰이 절감되었습니다.
* 추가 검색 단계 없이 완료된 백그라운드 작업 전달:
* 에이전트가 백그라운드 작업을 기다릴 때, 작업이 완료되면 이전에는 별도의 검색 단계를 거쳐야 했으나, 이제는 완료 알림과 함께 결과를 직접 전달합니다.
* 이 변경으로 여러 작업이 완료될 때 발생하는 불필요한 모델 호출을 줄이고, 평균 토큰 사용량을 약 2.3% 감소시켰습니다.

시사점

AI 코딩 효율성은 개별 도구 호출의 토큰 수를 최적화하는 것이 아니라, 사용자의 요청부터 최종 결과까지 전체 작업의 흐름을 개선함으로써 달성할 수 있습니다. GitHub Copilot의 이러한 개선은 AI 코딩 에이전트 개발에 있어 결과물 중심의 최적화, 오케스트레이션 최적화, 압축 시 내용 보존, 프롬프트 변경 시 동작 검증, 그리고 각 워크플로우별 측정의 중요성을 보여줍니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions