Search
moon
sun

사실확인서

국문

AirWARDS 군사특화 번역 Vertical AI 고도화

군사번역 데이터 플라이휠 구축 및 운영

사용자 요구사항 수집·반영: 군 내 번역 업무자 수십 명에게 직접 연락하여 번역 패턴, 군사용어 선택 방식 및 서비스 이용 중 불편사항을 조사하고, 요구사항을 기능에 반영한 뒤 변경 내용을 공유하여 후속 의견 확인
번역 데이터 플라이휠 설계·구현: ① 프로덕션 환경에 Langfuse를 도입하여 입력 문장, 군사용어 해석 선택, 모델·프롬프트별 번역 결과 등 사용자 상호작용을 관측하고 피드백을 수집, ② AI가 제시한 군사약어 해석을 번역가가 확인·교정하는 과정에서 발생한 선택을 적합성 피드백 신호로 수집하여 이후 번역에 반영, ③ 축적된 피드백을 파인튜닝 데이터로 변환하여 지속 파인튜닝으로 연결하는 3단계 구조를 설계하고 1·2단계 구현
프로덕트 확산: 일일 번역 요청량이 수천 문장 수준에서 최대 약 4만 문장으로 증가하고, 입출력 합산 약 1억 2천만 토큰 규모의 번역 서비스로 성장

군사약어 중의성 개선

군사약어 의미 판별: 하나의 군사약어가 군 내 조직에 따라 다수의 해석을 갖는 군사 도메인의 특성을 반영하여, 전후문맥과 군사용어 사전의 해석 후보를 LLM에 제공하고 문맥상 적합한 해석을 자동 선택하는 구조 구현
AI가 선택한 해석과 대체 해석 후보를 화면에 함께 제시하여 번역가가 선택 결과를 빠르게 확인·교정할 수 있도록 사용자 화면과 상호작용 방식 설계
번역 RAG 구조 구현: 사용자가 번역 요청한 문장 벡터를 기반으로 과거 번역문 중 의미적으로 유사한 문장을 검색·복원하여 약어 해석 성능 향상
군사 지식 중앙화: 각 부대와 개인에게 분산되어 있던 군사용어 사전과 번역 노하우를 중앙화하여 약어 해석 후보 구성과 군사특화 번역에 활용

LLM 평가체계 구축

평가 및 과거 실사용 데이터 기반 검증 자동화: Langfuse에 규칙 기반 및 루브릭 기반 평가 지표를 정의하고, 실제 사용자의 번역 요청 문장을 이용하여 모델·프롬프트 변경안을 비교·검증할 수 있는 평가 환경 구축
비교 기준 표준화: 모델과 프롬프트 선택 시 동일한 프로덕션 데이터와 평가 지표를 사용하도록 하여 변경안별 성능 비교가 가능한 의사결정 구조 마련

번역 파이프라인 안정화 및 아키텍처 개선

실행 구조 안정화: 비동기 함수 내부의 외부 서비스 클라이언트 반복 생성, 스트리밍 구간의 동기 실행 및 DB Connection Pool 누수로 인한 자원 고갈 원인을 분석하고 클라이언트·연결 생명주기 개선
구성요소 교체 구조 구축: 의존성 주입·Clean Architecture를 적용하여 핵심 번역 로직을 LLM, 프롬프트, Langfuse 로깅 코드, Vector DB 및 군사 사전 구현체로부터 분리

군사회의 AI 녹취 서비스 개발 및 k3s 인프라 특성을 고려한 배포

신규 서비스 end-to-end 구현: 새로운 AI 녹취 서비스 구현 요청을 받아, 분석 대상 파일 처리부터 음성 분석·결과 조회까지 이어지는 전체 백엔드 흐름을 최소 구성으로 단독 구현하고, 상급자 시연을 통해 후속 개발 및 배포 승인 확보
확장형 서비스 구현 및 배포: 승인 후 API·작업 큐·GPU worker 구조로 컨테이너화하여 k3s 배포, 새로운 분석 요청마다 GPU worker Pod를 할당하는 방식으로 처리량을 확장할 수 있는 구조 구축
인프라 제약 기반 기술 의사결정: 기존 Docker 작업과 k3s Pod가 동일한 물리 GPU를 공유하여 가용 연산 자원과 VRAM이 계속 변하는 환경을 고려하고, Pod 시작 시점의 측정값으로 병렬도를 고정하는 방식 대신 실행 중 GPU 여유와 설정 상한에 따라 chunk 병렬도를 조절하도록 설계

폐쇄망 Python 개발·배포 환경 표준화 및 Kubernetes 배포 확산

Python 개발·배포 절차 표준화: 로컬/서버가 동일한 Docker 이미지를 사용하는 개발·배포 절차를 정립하고, 동료 Python 개발자들이 동일한 방식으로 개발·배포할 수 있도록 공유
컨테이너화한 python BE를 GitLab CI와 Argo CD에 연계 실증화
개발 방식 표준화: 서버의 Jupyter Notebook에서 프로덕션 서비스를 직접 실행하던 방식에서 재현 가능한 Docker 이미지 기반 개발·배포 방식 제시
베이스 이미지의 상위 레이어에 SSH daemon과 VSCode Server를 사전 구성하는 이미지 패턴 자산화

AI 서비스 Health Check 관제체계 구축 및 정착

관제체계 재설계: 단순 Health Check 엔드포인트가 아니라 애플리케이션의 주요 기능과 AI 응답의 필수 형식·조건을 검증하도록 기준 확립
Uptime Kuma를 서비스 등록·상태 확인 인터페이스, Prometheus는 운영 상태 데이터 수집, Grafana는 알림 정책 관리에 사용하도록 역할 분리
조직 내 관제체계 정착: 등록 기준과 사용 방법을 개발자·상급자에게 직접 안내하여 사무실 중앙 대형 TV에 서비스 상태를 표시하는 핵심 장애를 상시 확인할 수 있는 관제체계로 정착

영문

AirWARDS — Military Translation Vertical AI Enhancement

Military Translation Data Flywheel

Conducted user research with dozens of military personnel engaged in translation to identify translation practices, terminology choices, and service pain points; incorporated the findings into product features and collected follow-up feedback after communicating the changes.
Designed a three-stage translation data flywheel to (1) capture production inputs, selected term interpretations, model/prompt outputs, and user feedback in Langfuse; (2) use translators’ confirmations and corrections as relevance signals for subsequent translations; and (3) convert accumulated feedback into continuous fine-tuning data. Implemented stages 1 and 2.
Scaled daily translation volume from several thousand to a peak of approximately 40,000 sentences and processed approximately 120 million combined input/output tokens.

Military Abbreviation Disambiguation

Implemented context-aware disambiguation for military abbreviations with organization-specific meanings by supplying the LLM with surrounding context and candidate interpretations from a military terminology dictionary.
Designed the user interface and interaction flow to display the AI-selected interpretation alongside alternatives, enabling translators to review and correct selections efficiently.
Implemented a translation RAG pipeline using sentence embeddings to retrieve semantically similar prior translations and improve abbreviation interpretation.
Centralized military terminology dictionaries and translation expertise previously dispersed across units and individuals to generate abbreviation candidates and support military-domain translation.

LLM Evaluation Framework

Defined rule-based and rubric-based metrics in Langfuse and built an evaluation environment to compare and validate model and prompt changes against actual user translation requests.
Standardized model and prompt evaluations using the same production data and metrics, enabling consistent performance comparisons across alternatives.

Translation Pipeline Stabilization and Architectural Improvement

Diagnosed resource exhaustion caused by repeated external-service client creation within asynchronous functions, synchronous execution in streaming paths, and database connection-pool leaks; improved client and connection lifecycle management.
Applied dependency injection and Clean Architecture to decouple core translation logic from LLM backends, prompts, Langfuse logging, vector databases, and military terminology dictionary implementations.

AI Transcription Service for Military Meetings — k3s Deployment

Developed a minimal end-to-end backend independently, covering file processing, speech analysis, and result retrieval; demonstrated it to senior leadership and secured approval for further development and deployment.
Containerized the API, task queue, and GPU worker components; deployed them on k3s; and implemented a scale-out architecture that allocated one GPU worker Pod per analysis request.
Designed dynamic chunk-level concurrency based on available GPU headroom and a configured cap to accommodate compute and VRAM fluctuations caused by Docker workloads and k3s Pods sharing the same physical GPU.

Air-Gapped Python Development Standardization and Kubernetes Adoption

Established and shared a workflow using the same Docker image locally and on servers, enabling consistent Python development and deployment.
Integrated the containerized Python backend with GitLab CI and Argo CD to validate the workflow in practice.
Proposed a reproducible Docker image-based development and deployment model to replace direct production execution from server-hosted Jupyter Notebooks.
Codified a reusable derived-image pattern by preconfiguring an SSH daemon and VS Code Server in a layer above the base image.

AI Service Health Monitoring

Redefined health checks to validate critical application functions and required AI response formats and conditions rather than endpoint liveness alone.
Separated monitoring responsibilities across Uptime Kuma for service registration and status visibility, Prometheus for operational telemetry collection, and Grafana for alert-policy management.
Operationalized the monitoring framework by briefing developers and leadership on registration criteria and usage and displaying service status continuously on a central office screen to surface critical failures.