- Grab의 LLM-Kit은 프로덕션 레벨의 Generative AI 어플리케이션 설정을 가속화할 수 있게 설계된 프레임워크
- 민감한 데이터를 다루는 AI 어플리케이션 개발에서는 보안과 데이터 안전성이 매우 중요한데, 확장성, 통합, 모니터링, 표준화 등의 이슈들을 LLM-Kit이 해결해줌
- 이를 통해 장기적으로 효율적이고 효과적인 LLM 애플리케이션 개발을 가능하게 하여, Grab에서 수백개의 GenAI 어플리케이션 온보딩을 도와줌
LLM-Kit의 특징
- 사전 구성된 구조(API 서버, 설정 관리, 샘플 LLM 에이전트, 테스트 등)를 제공함
- Poetry, Gunicorn, FastAPI, LangChain, LangSmith, Hashicorp Vault, Amazon EKS, Gitlab CI 등과 통합됨
- Datadog, LangSmith 연동으로 실시간 모니터링이 가능한 옵저버빌리티 기능
- Python의 configparser와 Vault를 활용한 설정 및 시크릿 관리
- OpenID Connect(OIDC) 인증 헬퍼
- Swagger와 Redoc을 사용한 API 문서화
- Redis 및 Vector DB와의 통합
- 스테이징 및 프로덕션 환경용 배포 파이프라인
- LangSmith의 강력한 평가 프레임워크 연동
- 쿡북 : Grab에서 자주 사용되는 예제를 모아 개발자를 위한 자원 제공
- 지속형 메모리 에이전트, Slackbot LLM 에이전트, 이미지 분석기, 사용자 인터페이스가 포함된 풀스택 챗봇 등 다양한 사례 포함
LLM-Kit의 가치
- 사전 구성 및 통합된 기술 스택으로 LLM 어플리케이션 개발 속도 향상
- LangSmith, Datadog 연동으로 실시간 모니터링 및 이슈 탐지/해결 가능
- OIDC 인증과 Vault 시크릿 관리로 보안 향상
- Vector DB로 데이터 스토리지/검색의 효율성 향상
- 모범사례 및 표준화 촉진하는 포장도로 프레임워크 제공
- 팀이 첫 기능 작업에 들어가기 전 약 1.5주 정도 개발 시간 절약 가능
아키텍처 설계 및 기술 구현
- 모듈형 아키텍처로 확장성, 유연성, 사용 편의성 제공
자동화
- 엔지니어가 앱 이름 등 관련 세부 정보를 제출하면 GitLab 프로젝트 생성이 트리거됨
- LLM 앱용으로 특별히 설계된 코드 스캐폴드가 생성됨
- 동일 저장소 내에 CI/CD용 GitLab CI 파일이 생성됨
- ECR, EKS 등의 스테이징 인프라가 생성됨
- 인프라 프로비저닝용 Terraform 폴더가 생성되고 프로덕션 인프라 배포로 이어짐
- 파이프라인 끝에 GPT 토큰이 보안 Vault 경로에 푸시되고 엔지니어에게 완료 알림이 전송됨
스캐폴드 코드 구조
- Agents: LangChain 에이전트 프레임워크 기반으로 에이전트 초기화하는 코드 포함
- Auth: Grab 내 일부 API 실행을 위한 인증 및 권한 부여 모듈
- Core: 구성 추출(GPT 토큰 등)과 LLM 앱 실행을 위한 시크릿 암호 해독 포함
- Models: Grab 내 핵심 LLM API용 구조 정의
- Routes: LLM 앱용 REST API 엔드포인트 정의(상태 확인, 인증, 권한 부여, 간단한 에이전트 등 포함)
- Storage: Grab의 관리형 Vector DB인 PGVector와의 연결성 및 DB 스키마 포함
- Tools: LLM 에이전트용 도구로 사용되는 기능
- Tracing: 프로덕션 앱의 다양한 메트릭 모니터링을 위해 추적 및 모니터링 도구와 통합
- Utils: 유틸리티 기능용 기본 폴더
인프라 프로비저닝 및 배포
- 동일 코드베이스 내에 인프라 프로비저닝, 배포, 빌드 프로세스에 필요한 코드를 자동으로 스캐폴드하는 포괄적인 파이프라인 통합됨
- Terraform을 사용해 필요한 인프라를 원활하게 프로비저닝함
- 배포 파이프라인은 .gitlab-ci.yml 파일에 정의되어 자동화된 배포 보장
- 빌드 프로세스는 Dockerfile에 지정되어 일관된 빌드 허용
- 자동화된 스캐폴딩으로 개발자가 기본 인프라 및 배포 복잡성 대신 비즈니스 로직 작성에 집중 가능
RAG 스캐폴딩
- LLM-Kit을 사용해 Vector DB(PGVector) 설정 및 서비스 허용 목록 추가 과정이 간소화됨
- 폼 제출 후 자격 증명 및 DB 호스트 경로에 액세스 가능
- 시크릿이 Vault 경로에 자동 추가됨
- 엔지니어는 스캐폴드된 LLM-Kit 앱의 구성 파일에 DB 호스트 경로만 포함하면 됨
결론
- LLM-Kit은 Grab의 AI 및 ML 혁신과 성장을 지원하는 중요한 도구
- 팀이 직면한 과제를 해결하고 포괄적이고 확장 가능하며 유연한 LLM 앱 개발 프레임워크를 제공함으로써 Grab의 차세대 AI 앱 개발을 선도하고 있음
성장과 향후 계획
- 웹 서버의 동시성과 확장성을 크게 향상시키는 한편 안정적이고 사용하기 쉬운 SDK 제공할 계획
- 평가 및 가드레일 프레임워크를 포함한 재사용 가능하고 결합 가능한 LLM SDK 제공 예정
- 버전 업데이트 및 개발 도구용 CLI 개발
- 폴링 기반 에이전트 제공 기능 개발
- 이러한 발전을 통해 엔지니어에게 더욱 원활하고 효율적인 개발 경험을 제공하고자 함