AI / LLM Engineering
XGEN 플랫폼, LLM 서빙, RAG, MCP 기반 에이전트, 그래프 기반 도구 검색까지 실제 서비스 개발과 운영에서 나온 AI 엔지니어링 기록입니다.
LLM Serving · RAG · MCP Agent
학습 경로
-
Step 1
모델과 검색 기반 다지기
토큰화, Transformer, RAG 검색 구조를 먼저 잡습니다.
- 01
Tokenization 기법 정리: BPE, WordPiece, SentencePiece 비교
NLP에서 텍스트를 토큰으로 분할하는 주요 기법(BPE, WordPiece, SentencePiece)의 원리와 차이를 정리한다. BERT, GPT 등 Transformer 모델에서 사용하는 토크나이저 비교.
- 02
Transformer의 Query, Key, Value 행렬 생성 과정
Transformer 어텐션에서 Q, K, V 행렬이 생성되는 과정을 단계별로 정리한다. 입력 임베딩에서 가중치 행렬을 곱해 Query, Key, Value를 만들고 어텐션 스코어를 계산하기까지.
- 03
Iterative RAG: 반복 검색으로 복잡한 질문 답변하기
xgen-workflow에서 단순 RAG의 한계를 넘어 Iterative 방식으로 반복 검색하며 컨텍스트를 보완하는 4단계 파이프라인 구현 - Query Expansion, Large-Scale Search, Iterative Filtering, Compression
- 01
-
Step 2
LLM 서빙과 RAG 운영
vLLM, 임베딩 서버, Qdrant 기반 검색 파이프라인을 봅니다.
- 01
vLLM vs LMDeploy vs SGLang: LLM 서빙 프레임워크 3종 벤치마크 비교
vLLM, LMDeploy, SGLang 세 가지 LLM 추론 프레임워크의 처리 속도, 메모리 효율, 동시 요청 처리 능력을 벤치마크 기반으로 비교 분석한다.
- 02
Embedding 모델 서빙: batch size 최적화로 긴 문서 처리
XGEN 모델 서버에서 임베딩 모델을 서빙할 때 batch size 512→2048 증가로 긴 문서 임베딩을 지원하고, n_ubatch와 n_batch 차이, CPU 전용 처리 결정까지의 실전 기록
- 03
Qdrant 하이브리드 검색: Sparse + Dense 벡터 통합
xgen-retrieval에서 Qdrant의 Prefetch+Fusion API로 BM25 Sparse Vector와 Dense Embedding을 결합하는 하이브리드 검색 구현, Full-Text Index 추가, 컬렉션 설정까지
- 01
-
Step 3
Agent와 Tool Retrieval
MCP, 그래프 기반 도구 검색, 실행 계획 컴파일러로 이어집니다.
- 01
graph-tool-call: LLM Agent를 위한 그래프 기반 도구 검색 엔진
1,077개 API endpoint를 가진 커머스 플랫폼에서 LLM Agent가 적절한 도구를 찾는 문제를 해결하기 위해 그래프 기반 도구 검색 엔진을 설계하고 구현한 과정을 정리한다. OpenAPI 스펙 자동 수집, 관계 그래프 구축, BM25+그래프확장+임베딩 하이브리드 검색, MCP Annotation-Aware Retrieval까지 8일간의 개발 여정을 다룬다.
- 02
graph-tool-call v0.20 개발기: RPC 탐지에서 Plan-and-Execute 컴파일러까지
graph-tool-call v0.19의 tool result 압축 이후, v0.20 방향으로 진행한 RPC 패턴 감지, 동적 prefix 탐지, intent parser, graph 기반 path synthesizer, runner, response synthesizer, zero-vector retrieval까지의 설계 변화를 정리한다. 아직 릴리스 전 브랜치 기준의 개발기다.
- 03
gwanjong-mcp — AI 소셜 에이전트 MCP 시스템 설계와 구현
4개 소셜 플랫폼(Dev.to, Bluesky, Twitter, Reddit)을 하나의 인터페이스로 통합하고, Stateful Pipeline MCP 프레임워크 위에 Scout/Draft/Strike 3단계 파이프라인을 구축한 AI 소셜 에이전트의 아키텍처와 구현 과정을 정리한다.
- 01
대표 글
- AI수정일:
graph-tool-call: LLM Agent를 위한 그래프 기반 도구 검색 엔진
1,077개 API endpoint를 가진 커머스 플랫폼에서 LLM Agent가 적절한 도구를 찾는 문제를 해결하기 위해 그래프 기반 도구 검색 엔진을 설계하고 구현한 과정을 정리한다. OpenAPI 스펙 자동 수집, 관계 그래프 구축, BM25+그래프확장+임베딩 하이브리드 검색, MCP Annotation-Aware Retrieval까지 8일간의 개발 여정을 다룬다.
LLM AgentTool Retrieval - AI
graph-tool-call v0.20 개발기: RPC 탐지에서 Plan-and-Execute 컴파일러까지
graph-tool-call v0.19의 tool result 압축 이후, v0.20 방향으로 진행한 RPC 패턴 감지, 동적 prefix 탐지, intent parser, graph 기반 path synthesizer, runner, response synthesizer, zero-vector retrieval까지의 설계 변화를 정리한다. 아직 릴리스 전 브랜치 기준의 개발기다.
graph-tool-callAI Agent - AI수정일:
vLLM에서 llama.cpp로: LLM 서빙 아키텍처 통합 마이그레이션
vLLM Ray Serve 분산 구조에서 통합 모델 서빙 서비스로 마이그레이션한 과정. 백엔드 스위칭 매니저 설계, llama.cpp와 vLLM 런타임 전환까지.
모델서빙리팩토링 - AI
Qdrant 하이브리드 검색: Sparse + Dense 벡터 통합
xgen-retrieval에서 Qdrant의 Prefetch+Fusion API로 BM25 Sparse Vector와 Dense Embedding을 결합하는 하이브리드 검색 구현, Full-Text Index 추가, 컬렉션 설정까지
Qdrant하이브리드검색
핵심 태그
시리즈
최신 글
전체 글아이폰이 잠겨도 AI 코딩 작업은 계속된다: SSH 재접속과 분리 실행 설계
iOS 앱의 SSH 연결이 끊겨도 Claude Code와 Codex 작업이 서버에서 계속되도록 프로세스, 출력 파일, 재개 위치를 분리했다. 바이트 오프셋 복구, APNs 완료 알림, SQLite 동시성 문제까지 실제 시행착오를 정리한다.
graph-tool-call v0.36: LLM이 필요한 도구를 안전하게 고르게 만들기
수정일:LLM 에이전트가 수백 개 API 도구 중 필요한 도구를 고르고, 선행 호출을 안전하게 붙이고, 그 근거를 재현 가능한 실험 파일로 남긴 과정을 정리한다.
884만 문서에서 알게 된 것: 검색보다 어려운 건 검색을 시키는 일
수정일:synaptic-memory를 884만 MS MARCO passage 위에서 평가하며, 검색 정확도보다 agent loop의 도구 선택, query rewrite, 증거 누적, 실패 기억이 더 큰 병목으로 드러난 과정을 정리한다.
XGEN K3s 인프라 완전 해부 (1) — 전체 구조와 컨테이너 빌드 전략
수정일:XGEN 2.0 AI 에이전트 플랫폼의 K3s 기반 인프라를 처음부터 끝까지 해부한다. 1편에서는 전체 아키텍처 구조, Python/Rust/Node.js 4종 Dockerfile 멀티스테이지 빌드 전략, Docker Compose 인프라 스택, K8s-Docker 경계 연결 패턴을 다룬다.
보험 광고 영상을 AI로 검사하기: OCR, STT, RAG, 객체 탐지를 묶은 심의 QA 파이프라인
수정일:보험 광고 영상의 필수 고지, 음성 안내, 금지표현, 금지 이미지, 자막 위치 요건을 OCR, STT, RAG, 객체 탐지, LLM 판정으로 자동 점검한 POC 과정을 정리한다.
텍스트가 안 뽑히는 PDF를 에이전트가 읽게 만드는 법
XGEN Agent 파일 처리에서 스캔 PDF를 fast pre-scan으로 판별하고, 페이지 렌더링과 VLM fallback으로 텍스트 레이어가 없는 문서까지 읽게 만든 과정을 정리한다.
K8s 없이 Workbench 띄우기: XGEN Workbench Docker 독립 스택과 폐쇄망 배포
Kubernetes 기반 XGEN Workbench를 단일 GPU 서버와 폐쇄망 환경에서도 운영할 수 있도록 Docker 독립 스택, DockerDriver, USB 이미지 반입, pull_policy never, GPU 세션 이미지를 정리한 과정을 다룬다.
xgen-model 멀티노드 GPU 서빙 구조: DaemonSet, Headless Service, 서버 타겟 라우팅
xgen-model을 단일 GPU Pod에서 GPU 노드 전체로 확장하기 위해 DaemonSet, Headless Service, cluster-aware API, 서버 타겟 라우팅, gpu_ids 기반 슬롯 분리를 적용한 과정을 정리한다.