채용 공고보다가 궁금해져서 찾아봤습니다.
목차
vLLM
- Virtual LargeLanguage Model
- vLLM 커뮤니티에 의해 유지 관리되는 오픈소스 코드 라이브러리
- 네트워크 트래픽을 관리하는 추론서버와 계산 속도를 극대화하는 추론서버가 포함되어 있고, PagedAttention 알고리즘을 바탕으로 GPU 메모리를 효율적으로 활용하는 것이 특징이며 LLM이 계산을 더욱 효율적이고 대규모로 수행할 수 있도록 한다.
vLLM의 작동 방식
- vLLM의 추론 서버와 LLM의 기본 작동 메커니즘을 이해하는 것이 중요하다.
추론서버
- 이전에 학습한 내용을 바탕으로 새로운 결론을 내리는 서버
- 근거를 기반으로 결론 도출
수학을 통해 결론을 도출
- 학습 과정에서 수학적 계산을 통해 답변을 생성한다.
- 수학을 사용하여 각 단어가 관련된 방식 및 연관짓고 단어를 추론한다.
PagedAttention
- 운영 체제 내의 페이징 시스템과 가상 메모리에서 영감을 얻어 vLLM에 적용된 메모리 관리 기법
- Key value 캐시가 처리 중에 어떻게 감소하고 증가하는지 확인하고 안정적인 방식으로 공간과 컴퓨팅 성능을 관리하기 위한 솔루션
캐시 관리 방식(KV 캐시)
- 캐시 데이터를 key를 이용해서 Key-Value 형태의 자료 구조로 관리
연속적 배치 처리
- 전반적인 처리 효율을 개선하기 위해 여러 쿼리를 동시에 처리하는데 사용되는 기법
- 새로운 응답을 생성하는 대신 KV 캐시에 메모리를 저장하고 이전에 수행한 계산과 유사한 새 쿼리에 대한 바로가기를 만들 수 있다.
장점
- PageAttention 알고리즘을 활용하여 리소스를 효율적으로 활용하기에 GPU 하드웨어 자원을 아낄 수 있다.
- LLM용 추론 서버로 사용시, Hugging Face Transformers와 비교하여 높은 처리량을 제공
- 확장성: 가상 메모리를 구성하기에 GPU가 사용자의 동시 요청을 더 많이 처리할 수 있도록 한다.
- 데이터 프라이버시: vLLM을 통해 LLM을 자체 호스팅하는 경우 데이터 프라이버시와 데이터 사용을 더 적극적으로 제어할 수 있다.
- 오픈소스 혁신: 커뮤니티가 vLLM 유지 관리에 개입하여 코드를 지속적으로 개선할 수 있다.
특징
- PyTorch 컴파일/CUDA 그래프로 GPU 메모리 최적화
- 양자화(Quantization)로 모델 실행에 필요한 메모리 공간 절약
- 텐서 병렬 처리로 여러 GPU에 처리 작업 분할
- 추측 디코딩(Speculative Decoding)으로 작은 모델을 사용하여 토큰을 예측하고 더 방대한 모델을 사용하여 해당 예측을 검증하는 방식으로 텍스트 생성 속도 향상
- 플래시 어텐션(Flash Attention)으로 트랜스포머 모델의 효율성 개선
참고