728x90

전체 글 48

집에서도 LLM을 돌릴 수 있다? prima.cpp

https://arxiv.org/pdf/2504.08791 집에서 큰 인공지능 모델을 돌리는 게 왜 어려울까요? 우리가 사용하는 chatGPT나 Gemini 같은 인공지능 모델, 즉 LLM을 직접 돌려보고 싶다는 생각 해보신 적 있나요? 그렇다면 매달 구독료를 내지 않아도 될텐데 말이죠? 그런데 생각보다 쉽지 않습니다. 기존의 LLM 시스템들은 엄청나게 좋은 컴퓨터가 필요하기 때문이죠. GPU 클러스터나 아주 많은 RAM, VRAM 같은 하드웨어가 있어야만 돌아갈 수 있는 구조로 되어 있고, 이런 장비들은 일반 가정집에는 잘 없잖아요? 특히 10B가 넘는 큰 모델들은 일반 컴퓨터에서 돌리기 정말 힘들답니다. 예를 들어, 8GB RAM을 가진 맥 M1에서 14B 모델을 돌리면 토큰 하나 만드는데 10초 이..

Paper review 2025.05.17

소프트웨어 개발자들의 발전과 변화에 대한 이야기

발전과 변화에 대한 이야기.나름 오랫동안 소프트웨어 개발을 해오면서 관찰한 재밌는 사실이 하나 있습니다. 바로 사람들의 발전하는 속도와 방식이 매우 다르다는 것입니다. 어떤 사람들은 매우 빠르게 발전하고, 어떤 사람들은 점진적으로 성장합니다. 개인의 역량 차이도 있고, 성향 차이도 있고, 업무와 fit이 잘 맞는지도 한 몫합니다. 제가 관찰하면서 주목했던 부분은 이러한 성장의 속도는 아니었습니다. 어떤 사람들은 시간이 흐름에 따라 분명 이전과는 달라졌는데 전혀 발전이 되어 있지 않았던 거죠. 직책을 포함해 업무 레벨 등이 외면적으로는 분명 변화했으나 실질적인 발전이 없었습니다. 이런 사람들이 공통적으로 말하는 것은 이렇습니다. “이제 내가 책임이니까 이렇게(만) 해야지” “나는 수석이니까 이런 일(만)을..

Think 2025.05.08

배움의 과정도 숏컷으로

숏폼의 시대. 배움의 과정도 숏컷으로?애들이 유튜브 영상을 보는 걸 가만히 관찰해 봤습니다. 숏츠를 보는 것 뿐 아니라 긴 영상도 건너뛰기를 하거나 빨리감기를 하면서 보더라구요. 이야기가 계속 연결되는 영화 같은 것들을 볼 때에도요. 회사에서 일할 때에도 이와 같은 상황을 많이 보게 됩니다. 후배들을 지도해야할 경우가 많았는데, 굉장히 고효율을 추구하는 성향을 가진 친구들은 단계별로 뭔가를 배우는 것을 이해를 못하는 듯 하더라구요. 결국 최종적으로 자신이 만들어서 성과를 보여줄 수 있는 아웃풋의 형태는 저것인데, 왜 이런 작은 부분부터, 또는 이전 단계부터 업무를 해야 하느냐는 것이죠.영화를 볼 때 전체 러닝타임을 관통하는, 말하고자 하는 내용이 있죠. 또는 클라이막스를 위한 여러 장치들도 있습니다. 그..

Think 2025.05.07

업무를 진행하는 방법에 대한 단상

업무를 진행하는 방법. 최근 몇년사이 "수평문화"라는 것에 대한 것들이 화두가 되면서 회사의 분위기도 많이 바뀌었습니다. 여전히 위에서 아래로의 수직적인 위계질서를 중요시하는 조직도 있겠습니다만, 제가 경험했던 소프트웨어 개발 조직들은 굉장히 많이 분위기가 바뀌었습니다.제가 저년차때 대부분의 업무는 태스크별로 쪼개진 다음, 아주 짧은 일정과 함께 기계적으로 "배분"되었습니다. 자신의 생각을 반영할 부분이 별로 없었죠. 도메인 지식이 부족하기도하고, 경험이 많은 선배들의 업무지시가 대부분 맞는 방향이었거든요. 왜 이 업무를 해야 하는지에 대한 배경지식을 설명해주는 선배도 별로 없었고, 다른 방식으로 기능을 구현하고 싶다고 하면 니가 책임질꺼야?라는 말로 겁을 주는 선배들도 있었습니다. 그럼에도 불구하고 그..

Think 2025.05.06

Agile 개발 방법론이 팀에 잘 정착하기 필요한 두가지

Agile 개발 방법론. 다들 잘 사용하고 있으신가요?전 최근 agile 개발 방법론이 팀에 잘 정착하기 위해서 중요한 것은 집중과 헌신이 가장 먼저 아닐까? 생각했습니다. Agile 방법론을 도입한 팀에서는 종종 스프린트 결과물을 두고 완성도가 낮다거나 기능이 부족하다는 오해가 생기곤 합니다. 이 때문에 상사들로부터, 또는 개발자 스스로 개발 속도를 무리하게 높이거나, 현재 맥락과 다른 기능을 급하게 포팅하자는 의견으로 이어져 팀의 방향성을 흔들기도 하죠.Agile에서 매 스프린트마다 만들어내는 결과물은 미완성품이 아닙니다. 오랫동안 agile 개발 방법론을 사용하자! 라고 외쳤던 많은 조직들에서, 그걸 하자고 말하는 사람이나, 실제 수행하는 사람들 모두 이에 대한 이해가 부족했던 것 같습니다. Fix..

Think 2025.05.06

Comet: Fine-grained Computation-communication Overlapping for Mixture-of-Experts

https://arxiv.org/pdf/2502.19811 1. 제안 기법 대규모 Mixture-of-Experts (MoE) 모델은 각 입력 토큰에 대해 소수의 전문가 네트워크만을 활성화함으로써, 방대한 수의 파라미터를 활용하면서도 연산 비용을 효율적으로 관리할 수 있다는 장점을 지닌다. 그러나 이러한 모델 구조를 분산 환경에 적용할 경우, GPU 간의 통신 빈도가 급증하여 전체 실행 시간 중 상당 부분을 통신에 할애하게 되는 문제가 발생한다. 실제로 일부 연구 결과에 따르면, 주요 MoE 모델의 forward 연산 과정에서 GPU 간 통신이 전체 모델 실행 시간의 약 47%를 차지하는 것으로 보고되었다. 이러한 성능 저하 문제를 해결하기 위해, MoE 레이어 내 통신과 연산을 파이프라인 방식으로 병행..

Paper review 2025.04.13

SGLang: 구조화된 LLM 프로그램의 효율적 실행 기술 분석

https://arxiv.org/pdf/2312.07104 전체 아키텍처 구성 및 구성 요소 역할SGLang 시스템은 구조화된 생성 언어(Structured Generation Language)인 프론트엔드와 SGLang 런타임(SRT)인 백엔드 런타임으로 구성됩니다. 프론트엔드는 Python에 내장된 DSL로서, 개발자가 다수의 LLM 호출과 제어 흐름을 포함하는 구조화된 프롬프트 프로그램을 용이하게 작성할 수 있도록 지원합니다. 백엔드 런타임은 이러한 프로그램을 효율적으로 실행하는 엔진으로서, RadixAttention 및 압축 FSM 등의 최적화를 통해 성능을 향상시킵니다. 백엔드 SRT는 서버 프로세스로 작동하며 여러 구성 요소로 이루어져 있습니다. 주요 구성 요소와 그 역할은 다음과 같습니다.F..

Tech 2025.04.09

Sarathi-Serve 상세 기술 분석

전체 아키텍처 개요 및 모듈 구조Sarathi-Serve는 대규모 언어 모델(LLM)의 온라인 추론을 위한 고성능 서빙 엔진으로서, 낮은 지연 시간과 높은 처리량을 동시에 확보하기 위해 특화된 구조로 설계되었습니다. 전체 시스템은 엔진 프로세스와 워커 프로세스로 구분되어 운영되며, 주요 구성 요소로는 스케줄러, 시퀀스 관리자, 블록 메모리 관리자, 모델 실행기, 요청 처리기(API 서버) 등이 있습니다. 각 구성 요소의 역할은 다음과 같습니다.• 엔진: 중앙 제어 모듈로서, 새로운 요청을 접수하고 스케줄러를 통해 요청들의 배치 및 실행 방법을 결정합니다. 엔진은 워커들과의 통신을 담당하며, 결과를 취합하여 응답을 반환합니다.• 스케줄러: 실행 대기 중인 모든 시퀀스들을 관리하며, 각 반복 단계에서 특정 ..

Tech 2025.04.05

An Analysis of Technology to Improve LLM Inference Throughput-Latency Tradeoff Using Sarathi-Serve

https://arxiv.org/pdf/2403.02310 Summary대규모 언어 모델(LLM)의 추론 서비스에서는 높은 처리량(throughput)과 낮은 지연 시간(latency)을 동시에 달성하는 데 어려움이 따르는 상충 관계가 존재합니다. 각 요청은 프리필(prefill) 단계와 디코드(decode) 단계를 거치게 됩니다. 프리필 단계에서는 입력 프롬프트 전체를 일괄적으로 처리하여 첫 번째 출력 토큰을 생성하므로 GPU 활용도는 높으나 지연 시간이 길어지는 반면, 디코드 단계에서는 매 반복마다 하나의 토큰만을 생성하기 때문에 개별 반복 지연 시간은 짧지만 GPU 자원 활용도가 낮다. 이로 인해 디코드 단계에서는 배치(batch) 크기를 확대하여 병렬 처리를 수행하면 처리량이 크게 향상되는 반면,..

Paper review 2025.04.05

vLLM의 PagedAttention 방식이 L1/L2 캐시 히트율 저하시키는 이유

PagedAttention은 수요 페이징(Demand Paging) 방식의 KV 캐시로, KV 캐시를 여러 개의 작은 메모리 블록(페이지)으로 나누어 불연속적인 주소 공간에 배치하고, 필요할 때 요청 단위나 토큰 단위로 동적으로 할당 및 관리하는 방식입니다. 이 구조는 특히 vLLM과 같은 최신 LLM 추론 엔진에서 메모리 사용 효율을 크게 높일 수 있습니다. 그러나 이러한 이점과는 반대로 L1·L2 캐시의 활용률(hit ratio)을 떨어뜨려 성능 저하를 유발하기도 합니다. 여기서는 NVIDIA H100 GPU를 기준으로, PagedAttention 방식이 L1/L2 캐시 히트율을 저하시키는 원인을 자세히 살펴보겠습니다. 먼저 NVIDIA H100 GPU의 캐시 아키텍처를 간략히 살펴보면, H100 G..

Tech 2025.03.16
728x90