10월 3일 토요일
AI 시스템의 병목은 모델 호출 밖에서 생긴다. 클러스터의 장애 격리와 캐시부터 에이전트의 외부 메모리와 검증 루프까지, 오늘은 실행 계층을 품질의 중심에 놓는다.
모델 바깥의 실패를 시험하는 운영 계층
GPU 클라우드와 생성형 AI 백엔드는 사양표가 아니라 장애 주입, 격리, 캐시, 폴백, 품질 관측으로 비교해야 한다.

AI 인프라를 실제 워크로드에 맡기기 전에 어떤 실패 경로를 검증해야 하는가?
관리형 GPU 클러스터 77곳을 직접 시험하고 시장 323곳을 추적한 평가는 최신 GPU의 보유 여부보다 운영 계층을 본다. 고장 난 자원이 작업에 섞이지 않는지, 통신과 스토리지가 가속기를 굶기지 않는지, 캐시와 자동 확장이 비용을 왜곡하지 않는지, 보안 경계와 서비스 수준 계약이 실제 복구 경로를 담는지가 구매 기준이다. 생성형 AI 제품의 백엔드도 같은 문제를 더 작은 단위에서 만난다. 모델 호출은 비결정적이고 느리며 부분 실패하고, 성공 응답이 좋은 결과를 보장하지 않는다. 따라서 모델을 파이프라인의 외부 노드로 격리하고 이벤트 스트림, 캐시, 재시도 대기열, 폴백, 동적 설정, 품질 대시보드로 감싸야 한다. 두 현장이 공유하는 결론은 단순하다. AI 시스템의 신뢰성은 모델의 평균 성능이 아니라 실패를 발견하고 격리하고 되돌리는 실행 계층에서 결정된다.
- 01
구매 전에 실제 장애를 계약의 시험 항목으로 만든다
GPU 모델과 시간당 가격만 비교하면 공급 부족이 가린 운영 부채를 떠안을 수 있다. 능동형 검사는 유휴 시간에 실제 또는 모의 작업을 실행해 GPU와 링크의 이상을 찾고, 수동형 검사는 고객 작업 중 낮은 비용으로 로그와 상태를 감시한다. XID 장애를 주입했을 때 노드가 즉시 격리되고, 검증과 복구를 거쳐 정상 자원만 다시 작업을 받는지 확인해야 한다. 장애 감지, drain, 예비 자원 투입, 재부팅 또는 수리의 시간을 각각 재고 서비스 수준 계약의 중단 정의와 보상 조건에 연결하는 편이 좋다.
- 02
네트워크와 캐시는 비용을 숨기는 두 번째 사양표다
다중 GPU 통신은 한 번의 최고 수치가 아니라 여러 메시지 크기와 노드 수에서 성능 곡선이 매끄러운지 보아야 한다. 스토리지와 통신 설정이 나쁘면 같은 가속기를 써도 학습이 느려진다. 추론 쪽에서는 캐시 인식 라우팅의 차이가 더 직접적인 비용으로 드러난다. 약 800토큰의 요청 기록을 되풀이한 시험에서 캐시 적중률 75%는 99% 수준과 비교해 같은 정확도의 실행 비용을 약 200달러에서 400달러로 만들 수 있었다. 엔드포인트가 응답한다는 사실과 경제적으로 운영된다는 사실을 분리해 측정해야 한다.
- 03
모델을 외부 노드로 두고 전통적 복구 장치를 되살린다
실서비스의 모델 호출을 외부 노드로 추상화하면 타임아웃, 재시도, 폴백, 격리, 관측이라는 익숙한 시스템 설계를 적용할 수 있다. 토스증권 사례에서는 하나의 이벤트 스트림을 여러 사용자에게 전달하고, 입력을 더 작은 의미 단위로 쪼개며, 생성 결과를 DB와 캐시에 함께 적재해 요청 경로의 지연과 비용을 줄였다. 실패한 작업은 별도 대기열에서 재시도하고 다른 모델로 폴백할 수 있다. 이때 타임아웃은 단순한 인프라 숫자가 아니라 사용자가 기다릴 수 있는 경험의 상한이다.
- 04
HTTP 성공과 생성 품질을 다른 지표로 운영한다
AI 제품은 요청이 성공해도 결과가 쓸모없을 수 있다. 추론 성공률, 시스템 응답, 인프라 상태, 오류 유형을 관찰하는 것과 생성 데이터의 품질을 평가하는 일을 분리해야 한다. 결과 대시보드에서 이상을 보고 조건값을 바꾸고 다시 결과를 확인하는 피드백 루프가 필요하다. 배포가 어려운 시간대에는 키워드와 임계값을 동적 설정으로 분리해 코드 배포 없이 조정할 수 있어야 한다. 마지막 검증 경계는 ‘호출이 끝났는가’가 아니라 ‘제품이 약속한 품질을 냈는가’다.
인프라 선정과 애플리케이션 설계를 같은 체크리스트로 연결하자. 장애를 주입하고, 격리와 복구 시간을 재고, 통신과 캐시 비용을 실제 요청으로 재생하며, 모델 호출과 생성 품질을 별도 지표로 본다. 좋은 AI 운영 계층은 화려한 기능을 많이 보이는 계층이 아니라 고장 난 자원을 자동으로 빼고 비용과 품질의 이상을 빨리 드러내며 안전한 폴백을 실행하는 계층이다. 사양표는 출발점일 뿐이고, acceptance test와 관측 루프가 계약의 본문이어야 한다.
긴 작업을 더 긴 프롬프트가 아니라 하네스로 푼다
외부 메모리, 코드, 검증기, 서브에이전트를 조합하되 탐색 비용과 실패 비용을 작업 구조에 맞춰 제한한다.
컨텍스트를 프롬프트 밖으로 오프로딩한다
재귀적 언어 모델의 핵심은 전체 작업 궤적을 매 호출의 프롬프트에 밀어 넣지 않는 데 있다. 상위 프로그램이 코드로 외부 메모리를 읽고 쓰고, 필요한 하위 문제만 서브에이전트에 맡기면 각 호출은 모델이 다루기 쉬운 지역 분포 안에 남는다. 이 구조에서 모델 한 번의 답변보다 코드, 메모리, 검증기, 지속성, 서브에이전트를 어떻게 조합하는지가 주요 설계 대상이 된다. 짧은 작업에서 학습한 전략이 8~30배 긴 작업과 다른 도메인에도 이어지는지 확인해야 하며, 이미 압축만으로 충분한 문제에 재귀 구조를 쓰면 오히려 느리고 비싸질 수 있다.
군집의 계산량과 전문가의 선택 능력을 분리한다
대규모 군집은 넓은 탐색을 제공하지만 유효한 경로를 골라주지는 않는다. 소개된 한 실험은 1만 개 에이전트를 88시간 실행하고 약 1,300억 출력 토큰을 사용했으며 공개 API 가격으로 약 4,000만 달러에 해당하는 규모였다. 동시에 일반적인 군집 탐색의 약 95%가 쓸모없을 수 있다는 경험적 추정도 제시됐다. 계산량이 전문가의 탐색 공간 축소를 대신한다고 가정하면 비용과 품질을 모두 잃는다. 문제의 답이 얼마나 빨리 수렴하는지와 실패를 자동으로 판정할 수 있는지를 먼저 보고 단일 에이전트, 재귀 구조, 군집 중 하나를 고르는 편이 낫다.
병렬 스레드는 대화가 아니라 검증 가능한 작업 단위다
여러 에이전트를 운영할 때 사람은 모든 출력을 실시간으로 감시하기보다 완료와 입력 필요 상태를 확인하는 쪽으로 이동한다. 그러려면 문제 발견, 구현, 테스트, 리뷰, 배포, 정리가 하나의 작업 파이프라인으로 이어져야 한다. 병합 전 자동 검증으로 위험을 낮추고, 병합 뒤에는 모니터링과 빠른 되돌리기로 실패 비용을 제한한다. 원문은 잘못된 변경을 되돌리는 데 15초보다 오래 걸린다면 에이전트를 더 늘리기 전에 시스템을 고치라는 기준을 제시한다. 이는 속도의 목표를 생성량이 아니라 실패 반경으로 바꾸는 운영 원칙이다. 각 스레드에는 종료 조건, 자동 검사, 되돌릴 단위, 사람에게 입력을 요청할 상태가 있어야 한다. 남는 계산량도 무작정 소모하지 않고 문서화, 테스트 보강, 오래된 프로젝트 조사처럼 결과가 남고 검증 가능한 작업에 배정한다. 병렬성의 상한은 구독량이 아니라 검증과 복구가 감당할 수 있는 작업 수다.
아직 못 읽은 북마크
북마크를 고르는 중…