7P by xguru 9일전 | favorite | 댓글과 토론
  • 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주 정도 개발 시간 절약 가능

아키텍처 설계 및 기술 구현

  • 모듈형 아키텍처로 확장성, 유연성, 사용 편의성 제공

자동화

  1. 엔지니어가 앱 이름 등 관련 세부 정보를 제출하면 GitLab 프로젝트 생성이 트리거됨
  2. LLM 앱용으로 특별히 설계된 코드 스캐폴드가 생성됨
  3. 동일 저장소 내에 CI/CD용 GitLab CI 파일이 생성됨
  4. ECR, EKS 등의 스테이징 인프라가 생성됨
  5. 인프라 프로비저닝용 Terraform 폴더가 생성되고 프로덕션 인프라 배포로 이어짐
  6. 파이프라인 끝에 GPT 토큰이 보안 Vault 경로에 푸시되고 엔지니어에게 완료 알림이 전송됨

스캐폴드 코드 구조

  1. Agents: LangChain 에이전트 프레임워크 기반으로 에이전트 초기화하는 코드 포함
  2. Auth: Grab 내 일부 API 실행을 위한 인증 및 권한 부여 모듈
  3. Core: 구성 추출(GPT 토큰 등)과 LLM 앱 실행을 위한 시크릿 암호 해독 포함
  4. Models: Grab 내 핵심 LLM API용 구조 정의
  5. Routes: LLM 앱용 REST API 엔드포인트 정의(상태 확인, 인증, 권한 부여, 간단한 에이전트 등 포함)
  6. Storage: Grab의 관리형 Vector DB인 PGVector와의 연결성 및 DB 스키마 포함
  7. Tools: LLM 에이전트용 도구로 사용되는 기능
  8. Tracing: 프로덕션 앱의 다양한 메트릭 모니터링을 위해 추적 및 모니터링 도구와 통합
  9. 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 개발
  • 폴링 기반 에이전트 제공 기능 개발
  • 이러한 발전을 통해 엔지니어에게 더욱 원활하고 효율적인 개발 경험을 제공하고자 함