내 AI 에이전트의 병목 현상은 모델이 아니었다. 바로 아키텍처였다.

3개월 전, 고객의 워크플로우가 중단되는 일이 발생했습니다.

저는 문서 분류, 태깅, 요약을 위해 하나의 에이전트를 사용했습니다. 하루 50건 정도의 문서에는 잘 작동했습니다. 그러다 처리량이 500건으로 늘어났습니다.

에이전트는 배치당 40분이 걸렸습니다. 확장성이 없었고, 결국 시스템이 다운되었습니다.

저는 더 큰 모델로 교체하지 않았습니다. 대신, 에이전트를 세 가지 전문화된 역할로 나누었습니다. 이 역할들은 병렬로 실행되었습니다.

처리 시간은 40분에서 4분으로 단축되었습니다. 모델은 그대로였지만, 아키텍처가 바뀌었습니다.

대부분의 개발자는 순차적(sequential) 에이전트를 구축하는 실수를 범합니다. 하나의 에이전트가 모든 일을 차례대로 처리하는 방식입니다.

만약 500개의 문서가 있고 문서당 세 가지 작업이 있다면, 1,500번의 LLM 호출을 하나씩 순차적으로 수행하게 됩니다. 호출당 2초만 걸린다고 해도 50분을 기다려야 합니다. 모델은 대부분의 시간을 대기하며 보내게 됩니다.

해결책은 동시에 실행되는 전문화된 에이전트를 사용하는 것입니다.

  • 더 작고 집중된 시스템 프롬프트를 사용하세요.
  • 독립적인 작업들을 동시에 실행하세요.
  • 작업을 관리하기 위해 디스패처(dispatcher)를 사용하세요.

전문화된 에이전트는 더 빠르고 저렴합니다. 정교한 프롬프트를 갖춘 작은 모델이 특정 작업에서는 거대한 범용 모델보다 더 뛰어난 성능을 발휘합니다.

하지만 모든 것을 병렬화해서는 안 됩니다. 다음과 같은 실수를 피하세요:

  • 서로 의존적인 작업은 병렬화하지 마세요. 작업 B가 작업 A의 출력을 필요로 한다면, 반드시 순서대로 실행해야 합니다.
  • 아주 작은 작업들을 병렬화하지 마세요. 에이전트를 관리하는 오버헤드가 작업 자체보다 더 오래 걸릴 수 있습니다.
  • 검색(retrieval) 속도를 무시하지 마세요. 데이터베이스 조회 때문에 시스템이 느린 것이라면, LLM 호출을 병렬화하는 것은 도움이 되지 않습니다.

확장을 위해 다음 단계를 따르세요:

  • 먼저 시스템을 프로파일링하세요. 실제로 어디에서 시간이 낭비되는지 찾아내야 합니다.
  • 특정 역할을 위해 전문화된 에이전트를 사용하세요.
  • 코드를 작성하기 전에 의존성 그래프(dependency graph)를 설계하세요.

AI 에이전트를 구축하는 것은 두 가지 서로 다른 문제입니다. 하나는 에이전트가 '무엇을 하는가'이고, 다른 하나는 에이전트가 '시스템에 어떻게 통합되는가'입니다.

프로덕션 시스템의 성패는 두 번째 문제에 달려 있습니다.

한계에 부딪혔다면 단순히 더 큰 모델을 구매하지 마세요. 먼저 시스템 맵을 그려보세요. 아키텍처가 진짜 문제라는 것을 발견하게 될 수도 있습니다.

출처: https://dev.to/mrclaw207/my-ai-agent-bottleneck-wasnt-the-model-it-was-the-architecture-2h9m

선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi