CPU LLM Runtime, 모두 같은 방식으로 실행되지 않는다

모델마다 다른 CPU LLM Runtime

CPU LLM Runtime을 직접 구현하면서 여러 소형 모델을 하나씩 추가해보니 예상보다 재미있는 문제가 발생했다. 처음에는 Transformer라는 공통 구조를 가지고 있기 때문에 모델의 이름과 몇 가지 설정값만 변경하면 비슷한 방식으로 실행할 수 있을 것이라고 생각하기 쉽지만 그렇지 않다. 실제 Runtime을 구현해보면 Gemma, Llama, Qwen은 같은 LLM이면서도 모델마다 처리해야 하는 세부 사항이 상당히 다르다. 모델의 Tensor 구성이나 … 더 읽기

소형 모델 CPU LLM Runtime 구현

소형언어모델 CPU LLM Runtime 구현

LLM을 직접 개발한 CPU LLM Runtime에서 여러 소형 모델을 하나씩 테스트해봤다. 이번 테스트의 목적은 특정 모델 하나의 성능을 확인하는 것이 아니라, 서로 다른 모델을 하나의 Runtime에서 실제로 실행할 수 있는지 확인하는 것이다.현재 Runtime에는 Gemma, Llama, Qwen 계열의 여러 모델이 등록되어 있으며 모델을 선택해 직접 실행할 수 있다. 소형 LLM을 CPU LLM Runtime에서 실행하다 처음에는 작은 … 더 읽기

LLM KV Cache는 왜 계속 메모리를 추가로 요구하는가?

LLM KV Cache

LLM을 실행할 때 모델의 크기만 확인하고 필요한 메모리를 계산하면 실제 실행 환경에서는 예상과 다른 결과가 나온다.모델의 가중치는 로딩이 끝나면 크게 변하지 않지만, 추론 과정에서 사용하는 KV Cache는 Context가 늘어날수록 계속 증가하기 때문이다. 그 중심에 있는 것이 LLM KV Cache다.LLM KV Cache는 LLM의 토큰 생성 속도를 높이기 위해 반드시 필요한 구조이면서, 동시에 추론 과정에서 메모리를 계속 … 더 읽기

0%