"당신의 여정은 당신이 정의할 것이고, 당신의 꿈은 당신이 추구할 것이며, 당신의 이야기는 당신이 쓸 것입니다." -- 이것으로 첫 번째 게시물을 시작합니다.
현재 탐구하고 있는 새로운 주제라 제가 이해한 바를 공유하고자 합니다. 혹시 잘못된 부분이 있다면 추가하거나 수정해 주시면 저에게도 도움이 되고 이 글을 읽는 모든 초보자들에게도 큰 도움이 될 것입니다.
오픈 웨이트 AI 모델이란 무엇인가?
오픈 웨이트(Open-Weight) AI 모델은 훈련된 매개변수(parameters), 즉 '가중치(weights)'를 사람들이 다운로드하고, 실행하며, 때로는 자신들의 애플리케이션을 위해 미세 조정(fine-tune)할 수 있도록 공개하는 AI 모델입니다.
일부 인기 있는 오픈 웨이트 AI 모델에는 Gemma (Google DeepMind 제공), gpt-oss (OpenAI 제공), Qwen, Llama (Meta 제공) 등이 있습니다.
- 그렇다면 가중치를 다운로드할 수는 있지만, 실행하려면 얼마나 많은 RAM이 필요할까요? 공식은 다음과 같습니다:
WEIGHT 메모리 (GB 단위) = (매개변수 * 매개변수당 비트 수) / 8
매개변수 - 매개변수의 개수(Billion, B) [예: 4B, 8B, 70B]
...
또한 KV 캐시와 추가적인 런타임 오버헤드를 위한 메모리도 필요합니다.
총 메모리 = 가중치 메모리 + KV 캐시 메모리 + 런타임 오버헤드
예를 들어, 4비트 양자화(quantization)된 7B 모델은 이론적으로 약 3.5 GB의 가중치 저장 공간을 필요로 합니다. 하지만 KV 캐시와 다른 오버헤드를 위해 추가 공간이 필요할 수 있으므로 실제로는 약 7~8GB가 될 수 있습니다.
간단한 머신러닝(ML)에서 다음과 같은 관계에 익숙할 수 있습니다:
가격 = w1(면적) + w2(침실 개수) + b
여기서 w1, w2는 매개변수에 지나지 않습니다.
매개변수는 AI 모델 내부의 숫자 값으로, 훈련 과정에서 학습됩니다. 이 값들은 모델이 패턴을 인식하고, 언어를 이해하며, 코드를 작성하고, 답변을 생성하는 데 도움을 줍니다.
- 매개변수가 많다고 해서 더 똑똑한 AI를 의미할까요?
반드시 그렇지는 않습니다. 더 큰 모델은 복잡한 패턴을 학습할 수 있는 더 큰 용량(capacity)을 갖는 경우가 많지만, 실제 성능은 다음 요소에도 달려 있습니다:
- 학습 데이터의 품질과 양.
- 모델 아키텍처.
- 학습 방법.
- 파인튜닝 및 추론 능력.
- 요청하는 작업.
Open-Weight AI 모델을 실행하고 사용하는 방법은?
가장 간단한 방법은 다음과 같습니다:
- 사전 학습된 모델 다운로드하기
- 메모리에 로드하기
- 로드된 모델을 사용하여 인터페이스로 상호작용하기
이러한 작업을 가장 쉽게 수행하는 방법은 ollama, vLLM 또는 기타 도구를 사용하는 것입니다.
이 도구들은 사용자가 오픈 소스 모델(예: Llama 3, Qwen, Mistral)을 다운로드하고 자신의 하드웨어에서 직접 실행/배포할 수 있도록 하는 엔진이자 파이프라인입니다.
컴퓨터에 설치하면 다음과 같은 작업을 수행합니다:
- Hugging Face나 Ollama Library와 같은 오픈 레포지토리에서 원본 두뇌(모델 가중치)를 다운로드합니다.
- 해당 모델을 컴퓨터의 RAM 또는 GPU 메모리에 로드합니다.
- 사용자의 장치에 로컬 네트워크 주소(http://localhost:11434 또는 http://localhost:8000)를 활성화합니다.
- 작성하는 모든 앱은 이제 이 주소로 텍스트를 전송할 수 있으며, 컴퓨터가 응답을 생성합니다—이는 100% 로컬에서, 무료로, 그리고 완전히 오프라인으로 이루어집니다.
Ollama 대 vLLM
-
Ollama는 단순성을 우선시합니다: AI 모델에 대한 Docker와 같습니다. 매우 깔끔한 인터페이스 뒤에서 다운로드, 메모리 정리 및 실행을 관리합니다. 소비자 하드웨어에 모델을 압축하기 위해 내부적으로 llama.cpp를 사용합니다.
-
vLLM은 순수 성능을 우선시합니다: PagedAttention과 Continuous Batching이라는 고급 메모리 관리 알고리즘을 사용합니다. vLLM은 사용자 요청을 순차적으로 처리하는 대신(Ollama가 부하 시 주로 하는 방식), 들어오는 쿼리를 동적으로 중첩하여 다중 사용자 환경에서 최대 20배~24배 높은 처리량을 달성합니다.
이것이 마음에 드셨기를 바랍니다 - 저에게도 새로운 것이라 감사드립니다. 의견과 리뷰를 공유해 주시면 정말 고맙겠습니다.