메인 콘텐츠로 건너뛰기
Background

엣지 기반 LLM 챗봇 구축

Akamai Functions와 GPU 기반 추론을 활용해 LLM 챗봇을 구축하고 전 세계에 배포하는 방법을 알아보세요.

타임스탬프가 포함된 요약

타임스탬프가 포함된 요약

[00:00~00:58] 소개: 토르스텐 한스(Thorsten Hans)가 Linode GPU 인스턴스, Ollama, Spin, Akamai Functions를 활용해 Akamai Cloud에서 LLM 기반 챗봇 애플리케이션을 구축하는 방법에 대한 튜토리얼을 소개합니다.

[00:58~02:22] 아키텍처 개요: 다단계 시스템 다이어그램을 통해 NVIDIA GPU를 탑재한 Linode 인스턴스에서 Ollama를 실행하고, Akamai Functions가 분산 키-값 저장소를 활용해 Spin 애플리케이션(Astro 프론트엔드 및 TypeScript API)을 호스팅하는 구조를 상세히 설명합니다.

[02:22~03:30] Spin 및 애플리케이션 구성요소: Spin이 CNCF 웹어셈블리 프레임워크로서 어떻게 작동하는지 간략히 설명하고, Astro 프론트엔드와 TypeScript API라는 두 가지 애플리케이션 구성요소에 대해 소개합니다.

[03:30~06:21] API 로직 및 캐싱 흐름: TypeScript API가 요청을 처리하는 방식, 분산 키-값 저장소를 쿼리해 캐시된 응답을 제공하는 방법, 새로운 쿼리에 대한 프롬프트 구조와 가드레일을 적용하는 방법, 생성된 응답을 캐시하는 방법을 단계별로 설명합니다.

[06:21~09:03] Terraform을 활용한 인프라 설정: Terraform 설정 방법을 자세히 살펴보면서 Linode 프로바이더, 전용 NVIDIA GPU를 통한 인스턴스 프로비저닝, null 프로바이더의 폴링 로직을 확인합니다.

[09:03~10:05] 방화벽 및 네트워크 설정: Terraform에서 Linode 방화벽 설정을 검토하고, SSH 접속 및 포트 11434의 Ollama HTTP API 트래픽에 대한 룰을 지정합니다.

[10:05~12:26] 클라우드 초기화 및 GPU 드라이버 설치: 패키지 업데이트, GPU 드라이버 설치, 시스템 재부팅, Ollama 서비스 초기화를 자동화하는 Linode.yaml 클라우드 초기화 스크립트를 분석합니다.

[12:26~14:49] Terraform 프로비저닝 실행: 클라우드 인프라를 구축하기 위해 terraform apply를 실행한 후, 약 5분 정도 소요되는 프로비저닝 프로세스를 빠르게 진행합니다.

[14:49~16:07] Spin 애플리케이션 매니페스트(spin.toml): spin.toml 파일을 검토해 HTTP 트리거, 구성요소 라우팅, 환경 변수, 키-값 저장소 접속 권한, 아웃바운드 호스트 사용 권한에 대해 자세히 알아봅니다.

[16:07~17:53] API 구현 및 가드레일: index.ts, handler.ts, guardrails.ts의 코드 분석을 통해 요청 검증, 인풋 길이 제한(500자), 프롬프트 인젝션 방지를 위한 정규식 패턴 매칭에 대해 설명합니다.

[17:53~19:30] 세션 기록 및 키-값 캐싱: 쿠키 기반 세션을 추적하는 방법과 키-값 저장소에서 캐시된 쿼리 응답을 확인하고 반환하기 위해 kvService.ts를 구현하는 방법을 설명합니다.

[19:30~20:54] LangChain을 통한 LLM 호출: llaService.ts 파일을 자세히 분석해 시스템 프롬프트, 세션 기록, 사용자 쿼리를 조합해 프롬프트를 생성하고, LangChain JS와 Ollama 패키지를 활용해 LLM을 호출하는 과정을 확인합니다.

[20:54~21:38] 패키지 의존성: package.json을 검토하면서 웹어셈블리 애플리케이션을 구축하는 데 필요한 Spin SDK와 LangChain의 의존성을 강조합니다.

[21:38~22:27] 웹어셈블리로 컴파일: 터미널에서 spin build를 실행해 프론트엔드 및 API 구성요소를 모두 .wasm 파일로 컴파일합니다.

[22:27~23:59] Akamai Functions에 배포: spin aka login을 통해 인증을 거친 후, 환경 변수를 활용해 spin aka deploy를 실행해 웹어셈블리 애플리케이션을 전 세계에 게시합니다.

공유