콘텐츠로 이동

AI 백엔드는 모델 호출 앞뒤에서 무엇을 맡을까

언어 모델은 전체 시스템의 한 구성 요소입니다. 사내 지식을 안전하게 찾고, 적절한 모델과 도구를 선택하며, 결과 품질·비용·지연을 검증하는 서버 구조를 설명합니다.

예상 읽기 시간 9분 · 핵심 질문: 정상 응답인데 틀린 답을 어떻게 발견하고 줄일 것인가

일반 API는 응답 코드와 데이터 규칙을 검사하면 성공 여부를 비교적 명확히 알 수 있다. 언어 모델은 같은 입력에도 다른 문장을 만들고, 자연스럽지만 사실과 다른 답을 반환할 수 있다. 따라서 모델 API가 200을 반환했다는 사실만으로 서비스가 성공했다고 판단할 수 없다.

AI 백엔드는 모델 앞에서 필요한 지식과 권한을 준비하고, 모델 뒤에서 근거·형식·비용과 업무 결과를 검증한다. 검색과 모델 선택, 도구 호출, 상태 저장, 캐시와 평가가 필요한 이유가 여기에 있다.

문서를 수집해 검색 인덱스를 만드는 경로와 사용자 질문을 권한 확인, 하이브리드 검색, 재순위화, 모델 생성과 평가로 연결하는 RAG 구조

검색 증강 생성은 문서 수집 경로와 질문 처리 경로를 함께 운영한다. 접근 권한은 문서를 모델 입력에 넣기 전에 검사하고, 품질은 검색과 생성을 나눠 평가한다.

임베딩은 의미를 비교하고 문맥 창은 모델이 한 번에 볼 범위를 정한다

LLM(Large Language Model, 대규모 언어 모델)은 텍스트를 토큰이라는 처리 단위로 나누고 앞선 토큰을 바탕으로 다음 토큰의 확률을 계산한다. 모델이 한 요청에서 참고할 수 있는 토큰 범위가 문맥 창(context window)이다.

문맥 창이 크다고 모든 사내 문서를 넣을 수 있는 것은 아니다. 관련 없는 정보가 많으면 중요한 근거가 묻히고 지연·비용과 정보 노출 범위가 늘어난다. 필요한 자료를 먼저 찾고 제한된 근거만 넣는 이유다.

임베딩(embedding)은 문장이나 문서를 의미를 나타내는 숫자 배열인 벡터로 바꾼 표현이다. 학습된 공간에서 의미가 비슷한 문장은 가까이 놓일 가능성이 높다. “비밀번호를 바꾸는 법”과 “계정 암호 변경”처럼 단어가 달라도 관련 문서를 찾는 데 유용하다. 반면 정확한 오류 코드·상품 번호·고유명사는 단어 검색이 더 잘 찾을 수 있다.

벡터 검색은 정확도와 조회 비용을 교환한다

가장 가까운 벡터를 정확히 찾으려면 질문 벡터를 모든 문서 벡터와 비교해야 한다. 데이터가 커지면 비싸므로 ANN(Approximate Nearest Neighbor, 근사 최근접 이웃) 인덱스로 후보를 줄인다.

HNSW(Hierarchical Navigable Small World)는 여러 층의 근접 그래프를 따라 가까운 후보로 이동한다. 조회 성능과 재현율이 좋지만 인덱스 메모리와 생성 비용이 크다. IVFFlat은 벡터를 여러 목록으로 군집화하고 질문과 가까운 목록 일부만 조사한다. 인덱스 생성과 메모리 비용은 상대적으로 작지만 목록과 탐색 범위 설정에 따라 필요한 문서를 놓칠 수 있다.

ANN의 핵심 지표는 재현율(recall)이다. 정확 검색이 찾은 관련 문서 가운데 근사 검색이 몇 개를 다시 찾았는지 본다. 속도만 측정해 5ms가 나와도 정답 근거를 자주 놓치면 좋은 검색이 아니다.

권한이나 문서 유형 필터를 ANN 후보를 뽑은 뒤 적용하면 상위 후보가 모두 제거돼 결과가 부족할 수 있다. 필터별 인덱스, 사전 필터, 더 많은 후보를 반복 조사하는 방식 가운데 데이터 분포에 맞는 방법을 선택한다.

검색은 넓게 찾고 순위 결정은 적은 후보를 정밀하게 비교한다

검색 단계는 많은 문서에서 가능한 후보를 빠르게 찾는다. 순위 결정 단계는 질문과 후보의 관계를 더 비싼 모델이나 규칙으로 다시 계산한다. 처음부터 모든 문서를 정밀 모델로 비교하면 비용이 너무 크기 때문에 두 단계를 나눈다.

상위 문서 수를 늘리면 필요한 근거를 포함할 가능성은 커지지만 불필요한 문서와 모델 토큰도 늘어난다. 필요한 근거가 검색 후보에 들어왔는지와 최종 답이 맞는지를 따로 측정해야, 검색 실패를 생성 모델 탓으로 돌리지 않는다.

접근 제어 목록인 ACL(Access Control List)은 사용자가 문서를 볼 수 있는지 나타낸다. 권한 검사를 답변 생성 뒤에 하면 비밀 문서가 이미 모델 입력에 들어간 뒤다. 후보가 문맥 구성기로 넘어가기 전에 검사하고, 문서 권한 변경이 인덱스에 반영되는 지연도 관측한다.

하이브리드 검색은 정확한 단어와 의미 유사성을 함께 쓴다

BM25 같은 단어 기반 검색은 문서에 흔하지 않은 정확한 단어가 얼마나 중요한지 계산한다. 제품 코드·오류 문자열·법률 문구에 강하다. 벡터 검색은 표현이 달라도 의미가 비슷한 문서를 찾는 데 강하다.

하이브리드 검색은 두 후보 집합을 합친다. 점수 범위가 서로 다르므로 바로 더하기보다 순위 기반 결합이나 점수 정규화를 사용한다. 어떤 방식이 좋은지는 문서와 질문에 따라 달라지므로 실제 정답 집합에서 검색 재현율과 최종 순위를 비교한다.

RAG는 문서를 넣는 경로와 질문을 처리하는 경로가 함께 있다

RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 외부 자료를 먼저 찾고 그 근거를 모델 입력에 넣어 답을 만드는 구조다. 모델을 다시 학습하지 않고도 최신 사내 문서와 제품 정보를 연결하고 답의 출처를 제시할 수 있다.

문서 수집 경로에서는 원문을 읽어 형식을 통일하고, 제목과 절 같은 의미 단위로 나누고, 문서 식별자·버전·ACL을 붙인다. 그다음 단어 색인과 벡터 색인에 기록한다. 문서 조각이 너무 작으면 정의와 전제가 떨어지고, 너무 크면 불필요한 내용과 토큰 비용이 늘어난다. 고정 글자 수보다 원문의 구조를 보존하는 분할이 이해에 유리한 경우가 많다.

질문 경로에서는 사용자를 인증하고 질문을 검색 형태로 바꾼다. 단어·벡터 후보를 합치고 ACL을 적용한 뒤 재순위화한다. 제한된 문맥 예산 안에 근거를 구성해 모델에 전달하고, 응답의 출처와 형식을 검증한다. 결과가 없거나 신뢰가 낮을 때는 모델이 빈칸을 추측하게 두지 않고 모른다고 답하거나 질문을 구체화한다.

RAG의 실패는 모델만의 실패가 아니다. 새 문서가 아직 색인되지 않았거나, 필요한 조각을 찾지 못했거나, 순위가 틀렸거나, 문서 안의 악성 지시를 모델이 따를 수 있다. 수집 버전·검색 후보·사용한 근거·모델과 프롬프트 버전을 한 추적으로 연결해야 원인을 나눌 수 있다.

재순위화는 적은 후보에만 비싼 판단을 쓴다

임베딩 검색은 문서 벡터를 미리 계산해 빠르지만 질문과 문서의 세밀한 단어 관계를 모두 보지 못한다. 교차 인코더나 언어 모델 재순위화기는 질문과 각 후보를 함께 읽어 더 정확히 비교할 수 있지만 지연과 비용이 크다.

그래서 빠른 검색이 만든 작은 후보 집합에만 적용하고, 제한 시간을 넘으면 원래 하이브리드 순위로 기능을 축소할 수 있다. 재순위화가 실제 답변 정확도를 얼마나 올렸는지와 p95·p99 비용을 함께 본다.

에이전트는 모델의 반복 호출보다 작업 상태와 권한이 중요하다

에이전트는 모델이 다음 행동이나 도구를 고르고, 실행 결과를 다시 관찰해 다음 단계를 정하는 반복 구조다. 간단한 시연은 도구 목록과 반복문만으로 만들 수 있지만 운영 환경에서는 최대 단계, 전체 마감 시각, 비용 예산, 사용자 승인과 중복 실행 방지가 필요하다.

메일 발송이나 환불처럼 부수 효과가 있는 도구 호출에는 멱등성 키와 현재 사용자 권한을 다시 확인한다. 모델이 만든 JSON이나 SQL을 검증 없이 실행하지 않는다. 허용된 스키마와 값 범위를 검사하고, 중요한 작업은 실행 전 사용자가 정확한 동작을 승인하게 한다.

오래 실행되는 작업 상태를 모델 대화 내용에만 두면 프로세스 재시작과 시간 초과 뒤 복구하기 어렵다. 완료된 단계, 다음 단계와 도구 결과를 영속 저장하고 안전한 지점부터 재개한다. 모델 재시도가 외부 도구를 다시 실행하지 않도록 실행 기록도 함께 저장한다.

MCP는 모델 애플리케이션과 도구 사이의 접점을 표준화한다

MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)는 AI 애플리케이션이 외부 도구·자원·프롬프트를 발견하고 사용하는 클라이언트-서버 접점을 정의한다. 서비스마다 제각각인 연동 방식을 줄일 수 있다.

프로토콜 연결이 보안을 대신하지는 않는다. 어떤 MCP 서버를 신뢰할지, 사용자에게 어떤 도구를 허용할지, 도구 결과 안의 악성 지시를 어떻게 다룰지, 부수 효과 전에 언제 승인을 받을지는 애플리케이션 정책이다. 규격이 빠르게 발전하므로 구현 시점의 공식 규격과 기능 협상, 호환 정책을 고정해 기록한다.

A2A(Agent2Agent)는 서로 다른 에이전트가 능력을 알리고 작업·메시지·결과물을 교환하기 위한 상호운용 프로토콜이다. MCP가 주로 에이전트와 도구·맥락 사이의 접점을 다룬다면 A2A는 독립 에이전트 사이의 작업 위임을 다룬다.

에이전트 위임은 새로운 신뢰 경계다. 요청 주체, 작업 소유권, 시간 제한, 중복 작업과 결과 검증을 정해야 한다. 표준 메시지 형식이 생겨도 상대 에이전트의 판단을 신뢰할 근거와 취소·감사 정책은 남는다.

AI 게이트웨이는 모델 선택과 공통 정책을 한 경계에 둔다

AI 게이트웨이는 여러 제공자의 인증, 사용량 제한, 민감 정보 가림, 재시도와 관측을 공통화한다. 모델 선택기는 질문의 난도·지연 목표·비용·리전·도구 지원에 따라 사용할 모델을 고를 수 있다.

저렴한 모델로 바꿨을 때 JSON 형식과 도구 호출 능력이 같은지, 장애 대체 모델이 필요한 정책을 지원하는지 검증한다. 중앙 게이트웨이는 모든 프롬프트가 지나는 공통 장애점과 민감 정보 경계가 될 수 있으므로 테넌트 격리, 우회와 기능 축소 경로를 둔다.

모델 캐시는 같은 문자열보다 같은 조건을 확인한다

정확 캐시는 정규화된 입력이 완전히 같을 때 결과를 재사용한다. 의미 캐시는 임베딩이 가까운 질문의 답을 재사용해 비용을 더 줄일 수 있지만 비슷해 보이는 다른 의도를 섞을 위험이 있다.

캐시 키에는 모델·프롬프트·검색 색인과 문서 버전, 온도, 사용자 권한과 도구 상태처럼 결과를 바꾸는 조건이 들어가야 한다. 다른 테넌트의 답이나 오래된 정책 답을 재사용하지 않도록 범위를 좁힌다. 환율·재고·개인 데이터처럼 최신성이 중요한 질문에는 의미 캐시를 쓰지 않는 편이 안전할 수 있다.

평가는 검색 실패와 생성 실패를 분리한다

정답 근거가 표시된 평가 집합을 만들고, 검색 단계에서는 필요한 문서가 상위 k개 안에 들어오는 비율과 순위를 본다. 생성 단계에서는 답의 정확성, 제공한 근거와의 일치, 인용 정확성, 형식과 안전성을 본다. 에이전트는 최종 작업 성공률, 잘못된 도구 호출, 단계 수와 승인 우회를 별도로 본다.

품질만 올리고 지연과 비용이 목표를 넘으면 운영 가능한 개선이 아니다. 각 결과에 모델·프롬프트·임베딩·색인·문서 집합 버전을 남겨 회귀 원인을 구분한다. 오프라인 평가 집합은 실제 질문 변화와 선택 편향을 놓칠 수 있으므로 운영 피드백과 실패 사례를 검토해 계속 보완한다.

벡터 검색 기반 구조는 색인 교체와 재구축까지 포함한다

운영 구조에는 원문 저장소, 문서 분할과 임베딩 생성 대기열, 단어·벡터 색인, 메타데이터와 ACL, 재순위화기, 캐시와 평가 경로가 있다. 하나의 “벡터 데이터베이스”가 전체 RAG를 맡는 것이 아니다.

임베딩 모델을 바꾸면 벡터 차원과 공간의 의미가 달라질 수 있다. 새·이전 색인에 함께 기록하고, 전체 문서를 새 모델로 다시 임베딩하며, 평가를 통과한 뒤 읽기 경로를 전환한다. 문제가 생기면 이전 색인으로 돌아갈 수 있게 버전을 나눈다.

용량을 계획할 때 벡터 원본뿐 아니라 HNSW 같은 인덱스의 메모리, 생성 시간, 변경 로그와 복제본을 포함한다. 필터가 많은 실제 질문에서 재현율과 p99를 측정하고, 근사 결과를 주기적으로 정확 검색과 비교한다.

AI 백엔드의 성공 기준은 모델이 아니라 전체 작업이다

정상 응답률과 모델 지연만 보면 그럴듯한 오답과 권한 누출을 놓친다. 검색이 필요한 근거를 찾았는지, 사용자가 볼 수 있는 문서만 들어갔는지, 답이 근거와 일치하는지, 도구의 부수 효과가 한 번만 실행됐는지, 전체 비용과 지연이 목표 안인지 함께 본다.

처음부터 에이전트와 여러 모델을 모두 넣지 않는다. 입력 안에 필요한 정보가 있고 실패 영향이 작은 요약이라면 한 번의 모델 호출과 형식 검증으로 시작할 수 있다. 사내 지식이 필요해질 때 검색을, 외부 행동이 필요할 때 권한이 제한된 도구와 영속 상태를 추가한다. 새 계층은 확인된 품질·권한·복구 문제를 직접 해결할 때만 가치가 있다.

참고 자료