Efficient LLM Inference with KCache
·
AI/기술,논문 리뷰
🔥🔥[KCache] EFFICIENT LLM INFERENCE WITH KCACHE(@Qiaozhi He, Zhihua Wu)https://arxiv.org/pdf/2404.18057TL; DR이 논문은 "KCache"라는 새로운 기술에 대해 설명합니다. 이 기술은 대형 언어 모델(LLM)의 추론 과정에서 메모리 병목 현상을 완화하고 시스템 처리량을 40% 향상시키면서도 정확성을 유지하는 방법을 제시합니다. KCache는 기존의 KV Cache를 대체하여, 메모리 사용량을 줄이면서 추론 속도를 개선합니다. 이를 위해 K 캐시는 HBM(High Bandwidth Memory)에 유지하고, V 캐시는 CPU 메모리에 저장하여 필요한 정보만 동적으로 선택하고 GPU로 복사합니다.또한, 이 논문은 LLM의 ..
Triton Inference Server #2. 모델 스케쥴링
·
AI/MLOps
딥러닝 모델의 성능을 최적화하고 배포하는 것은 현대 AI 애플리케이션의 핵심 요소 중 하나입니다. 그 중에서도 모델을 효율적으로 관리하고 운영하는 것은 매우 중요합니다. Triton Inference Server는 이러한 요구에 부응하기 위해 설계된 강력한 도구입니다. 이번 시리즈에서는 Triton Inference Server에 대해 샅샅히 파헤처보는 글을 작성해보려고 합니다. 지난 포스트 다시보기 Triton Inference Server #1. Triton Inference Server란?딥러닝 모델의 성능을 최적화하고 배포하는 것은 현대 AI 애플리케이션의 핵심 요소 중 하나입니다. 그 중에서도 모델을 효율적으로 관리하고 운영하는 것은 매우 중요합니다. Triton Inference Serverd..
Triton Inference Server #1. Triton Inference Server란?
·
AI/MLOps
딥러닝 모델의 성능을 최적화하고 배포하는 것은 현대 AI 애플리케이션의 핵심 요소 중 하나입니다. 그 중에서도 모델을 효율적으로 관리하고 운영하는 것은 매우 중요합니다. Triton Inference Server는 이러한 요구에 부응하기 위해 설계된 강력한 도구입니다. 이번 시리즈에서는 Triton Inference Server에 대해 샅샅히 파헤처보는 글을 작성해보려고 합니다.  Triton Inference ServerStandardizes model deployment and delivers fast and scalable AI in production.developer.nvidia.com  Triton Inference Server란?Triton Inference Server는 NVIDIA에서 개..
LLM 애플리케이션 개발 훑어보기 - LangChain #3 Model I/O
·
AI/어플리케이션 개발
Model I/O LangChain 패키지는 NLP 어플리케이션을 원활하게 만들기 위해서 필요한 여러 모듈을 제공합니다. 오늘은 그 중 Model I/O와 관련된 내용을 다룹니다. 이 모듈을 통해 LangChain은 모든 언어 모델과 상호 작용하고, 모델에 대한 입력을 관리하고 출력에서 정보를 추출하는 등의 작업을 수행할 수 있습니다. Prompts 언어 모델에 입력되는 것은 보통 프롬프트라 불립니다. 종종 앱에서 사용자 입력은 모델에 직접적으로 입력되는 것이 아닙니다. 그 대신, 사용자의 입력은 어떤 방식으로든 변형되어 최종적으로 모델에 들어가는 문자열 또는 메시지의 형태로 생성됩니다. 사용자 입력을 받아 최종 문자열 또는 메시지로 변환하는 객체를 PromptTemplate이라고 합니다. LangCha..
LLM 애플리케이션 개발 훑어보기 - LangChain #2 LangChain Expression Language (LCEL)
·
AI/어플리케이션 개발
LangChain Experssion Language(LCEL) LangChain Expression Language(LCEL)은 체인을 쉽게 구성할 수 있는 선언적 방식입니다. LCEL은 가장 간단한 "프롬프트 + LLM" 체인부터 가장 복잡한 체인까지 코드 변경 없이 프로토타입을 프로덕션에 적용하는 것을 지원하도록 설계되었습니다. LangChain 공식 문서에서는 LCEL을 사용해야 하는 이유를 다음과 같이 소개하고 있습니다. Streaming support: LCEL로 체인을 구축하면 첫 번째 토큰에 도달하는 시간(첫 번째 출력 청크가 나올 때까지 경과한 시간)을 최대한 단축할 수 있습니다. Async support: LCEL로 구축된 모든 체인은 동기식 API(예: 프로토타이핑 중 Jupyter ..
LLM 애플리케이션 개발 훑어보기 - LangChain #1 Intro 및 QuickStart
·
AI/어플리케이션 개발
Introduction LangChain은 인공 지능(AI) 및 그 기계 학습 하위 집합으로 작업하는 소프트웨어 개발자가 대규모 언어 모델을 다른 외부 구성 요소와 결합하여 LLM 기반 애플리케이션을 개발할 수 있는 오픈 소스 프레임워크입니다. LangChain의 목표는 OpenAI의 GPT-3.5 및 GPT-4와 같은 강력한 LLM을 다양한 외부 데이터 소스에 연결하여 자연어 처리(NLP) 애플리케이션의 이점을 활용하고 생성하는 것입니다. 파이썬, 자바스크립트 또는 타입스크립트 프로그래밍 언어에 대한 경험이 있는 개발자, 소프트웨어 엔지니어, 데이터 과학자는 해당 언어로 제공되는 LangChain의 패키지를 사용할 수 있습니다. LangChain은 2022년 공동 창립자인 해리슨 체이스와 안쿠시 골라에..
S-LoRA: Serving Thousands of Concurrent LoRA Adapters
·
AI/기술,논문 리뷰
github: https://github.com/S-LoRA/S-LoRA paper: https://arxiv.org/abs/2311.03285 pretrain-then-finetune LLM 배포에는 일반적으로 pretrain-then-finetune 패러다임이 채택됩니다. Low-Rank Adaptation (LoRA)는 parameter-efficient fine-tuning(PEFT) method로써, base model을 여러 tasks에 적용하는 데 자주 사용되며, 그 결과 하나의 base model에서 파생된 상당한 양의 LoRA adapter가 생성됩니다. 이러한 패러다임은 서비스를 제공하는 동안 batched inference에 상당한 기회 요인을 제공합니다. 이러한 기회를 활용하기 위해..
LLM 인퍼런스 훑어보기 (6) - quantization
·
AI/모델 인퍼런스
이전 포스트에서는 LLM 인퍼런스에서 batching 기법의 중요성을 알아보았고, GPU util을 극대화하기 위한 batching 기법인 continuous batching에 대해서 알아보았습니다. continuous batching에 대해 자세히 알아보고 싶으신 분들은 이전 포스트를 참고하시면 좋을 것 같습니다. LLM 인퍼런스 훑어보기 (5) - continuous batching 이전 포스트에서는 kernel funsion에 대해 알아보는 내용을 다뤘었습니다. 커널 퓨전의 의미, 구현 방법, 그리고 활용 사례에 대해 자세히 알아보고 싶으신 분들은 이전 포스트를 참고하시면 좋을 dytis.tistory.com 오늘은 LLM 인퍼런스에서 메모리 효율화 기법 중 하나인 quantization에 대해서 ..
LLM 인퍼런스 훑어보기 (5) - continuous batching
·
AI/모델 인퍼런스
이전 포스트에서는 kernel funsion에 대해 알아보는 내용을 다뤘었습니다. 커널 퓨전의 의미, 구현 방법, 그리고 활용 사례에 대해 자세히 알아보고 싶으신 분들은 이전 포스트를 참고하시면 좋을 것 같습니다. LLM 인퍼런스 훑어보기 (4) - kernel fusion 이전 포스트에서는 KV Cache에 대해 더 깊게 알아보는 내용을 다뤘었습니다. 주로 Hugging Face Transformers의 구현체와 vLLM 프로젝트의 구현체를 탐구해 보았죠. 더 자세한 내용은 아래 링크에서 확인하 dytis.tistory.com 오늘은 LLM 인퍼런스에서 Batching 기법에 대해서 다루고자 합니다. Batch ML에서 "batch"는 일반적으로 훈련 데이터를 나누는 단위를 나타냅니다. 전체 데이터셋을..
LLM 인퍼런스 훑어보기 (4) - kernel fusion
·
AI/모델 인퍼런스
이전 포스트에서는 KV Cache에 대해 더 깊게 알아보는 내용을 다뤘었습니다. 주로 Hugging Face Transformers의 구현체와 vLLM 프로젝트의 구현체를 탐구해 보았죠. 더 자세한 내용은 아래 링크에서 확인하실 수 있습니다: LLM 인퍼런스 훑어보기 (3) - KV Cache (deep dive) 이전 포스트에서는 트랜스포머의 구조와 어텐션 메커니즘이 무엇인지 다루었다. 그리고 LLM 인퍼런스에서 KV Cache가 무엇이며, 왜 도입되어 사용되는지에 대해서 다뤘다. 지난 포스트는 아래 링 dytis.tistory.com 오늘은 LLM 인퍼런스 가속화 방법 중 하나로 알려진 "커널 퓨전 (kernel fusion)"에 대해 알아보려고 합니다. Kernel fusion GPU는 주로 다양한..