로컬 LLM 구축 : 사양부터 모델 선택까지

로컬 LLM 구축 : 사양부터 모델 선택까지

요즘에는 한 주가 지나고 나면 새로운 AI 모델이나 기능들이 발표가 된다. 라고 말해도 좋을 정도로 생성형 AI와 같은 인공지능과 관련된 분야가 빠르게 발전하는 것을 느낄 수 있습니다.

특히 GPT-4, Claude, Gemini와 같은 상용 AI 모델들의 성능이 높아지면서, 이제는 개인 PC에서도 이와 유사한 수준의 AI 모델을 직접 구동하려는 수요가 증가하고 있습니다. 로컬 LLM(Large Language Model)은 인터넷 연결 없이도 작동하며, 개인 정보가 외부로 유출되지 않고, 필요에 따라 맞춤 조정이 가능하다는 장점이 있죠.

하지만 로컬 LLM을 구축하려면 PC 사양부터 어떤 모델을 선택해야 할지까지 고려해야 할 사항이 많습니다. 적합한 하드웨어가 없다면 성능이 떨어지거나 아예 구동이 불가능할 수 있고, 용도에 맞지 않는 모델을 선택하면 기대한 결과를 얻기 어렵기도 하죠.

그렇기에 이번 포스팅에서는 로컬 LLM 구축을 위한 PC 사양 선택부터 목적별 최적의 모델 추천까지 자세히 알아보도록 하겠습니다. 직접 AI 모델을 로컬 환경에서 구축하고 활용하고 싶은 분들에게 실질적인 도움이 될 수 있는 내용으로 준비했으니 참고해보시면 좋을 것 같네요.

1. 로컬 LLM 구축을 위한 하드웨어 요구사항은?

그래픽카드

로컬 LLM을 구축하기 위해서는 우선 적절한 하드웨어가 필요한데요. 특히 GPU의 VRAM(비디오 메모리) 용량이 가장 중요한 요소입니다. 기본적으로 모델의 크기에 따라 필요한 VRAM 용량이 달라지므로, 어떤 수준의 모델을 구동할 계획인지에 따라 선택해야 합니다.

일반적으로 모델 크기는 매개변수(파라미터) 개수로 표현되는데, 7B(70억), 13B(130억), 34B(340억), 70B(700억) 등으로 구분됩니다. 매개변수가 많을수록 더 뛰어난 성능을 보이지만, 그만큼 필요한 하드웨어 요구사항도 높아지죠.


로컬 LLM 구동을 위한 GPU별 VRAM 요구사항을 정리하면 다음과 같습니다:

  • RTX 3060 (12GB ): 주로 7B 모델을 4비트 양자화하여 구동 가능
  • RTX 3080/4070 (10-16GB) : 13B 모델까지 4비트 양자화로 구동 가능
  • RTX 3090/4080 (24GB) : 34B 모델까지 4비트 양자화로 구동 가능
  • RTX 4090 (24GB) : 대부분의 34B 모델과 일부 70B 모델을 4비트 양자화로 구동 가능
  • 듀얼 GPU 또는 A100/H100 : 70B 이상의 대형 모델 구동에 필요


여기서 양자화란 모델의 파라미터 정밀도를 낮춰 메모리 사용량을 줄이는 기술입니다. 예를 들어 FP16(16비트 부동소수점) 형식의 모델을 4비트로 변환하면 메모리 사용량이 1/4로 줄어들지만, 약간의 성능 저하가 발생할 수 있습니다.

CPU, RAM(메모리)

GPU 외에도 시스템 RAM은 최소 16GB 이상을 권장하며, 32GB 이상이면 안정적인 구동이 가능합니다. 특히 34B 이상의 대형 모델을 사용할 계획이라면 64GB RAM을 갖추는 것이 좋습니다. 저장 공간은 모델 파일 자체가 수 GB에서 수십 GB까지 차지하므로, 최소 100GB 이상의 여유 공간이 필요합니다.

또한 속도 측면에서는 NVMe SSD가 강력히 권장됩니다. 모델 로딩 시간이 HDD에 비해 몇 배 이상 빠르며, 모델이 메모리를 넘어서는 경우 디스크 스왑에도 유리합니다.

만약 현재 사용 중인 PC가 위 요구사항을 충족하지 못하더라도, Google Colab이나 Kaggle과 같은 클라우드 서비스를 통해 무료 또는 저렴한 비용으로 테스트해볼 수 있습니다. 하지만 속도와 안정성 측면에서는 로컬 환경에 비해 제한적일 수 있다는 점을 잊지 않으셨으면 좋겠네요.

2. 목적별 추천 모델 선택 가이드

로컬 LLM을 구축할 때는 사용 목적에 맞는 모델을 선택하는 것이 중요합니다. 같은 크기의 모델이라도 어떤 데이터로 학습되었는지, 어떤 용도로 최적화되었는지에 따라 성능 차이가 크기 때문이죠. 여기서는 주요 용도별로 최적의 모델을 알아보겠습니다.

1) 일반 대화 및 비서형 챗봇

Llama 2 Chat 13B - Meta

​일상적인 대화나 비서 역할에 적합한 모델로는 Llama 2 Chat 13B가 추천됩니다. Meta에서 개발한 이 모델은 GPT-3.5 수준의 대화 성능을 보이며, 안전성이 강화되어 있습니다. RTX 3080 이상의 GPU에서 4비트 양자화를 적용하면 약 10GB VRAM으로 구동 가능합니다.

Llama 2 Chat 13B는 상업적 활용도 자유롭고, 다양한 주제에 대해 유용한 응답을 생성할 수 있어 가정용 챗봇으로 적합합니다. 또한 오픈소스로 공개되어 있어 원하는 대로 미세 조정(fine-tuning)할 수 있다는 것도 장점이죠.

만약 더 작은 GPU를 사용 중이라면 Mistral 7B Instruct나 Phi-2와 같은 더 작은 모델을 고려해볼 수 있습니다. 이들은 크기 대비 뛰어난 성능을 보이며 6-8GB VRAM으로도 구동 가능합니다.

2) 코드 보조 도구

Phind-CodeLlama 34B-v2

프로그래밍에 도움이 필요하다면 Phind-CodeLlama 34B-v2 모델이 현재 최고의 선택입니다. 이 모델은 Meta의 Code Llama를 기반으로 Phind에서 추가 학습시킨 것으로, HumanEval 벤치마크에서 73.8%의 정답률을 기록하며 공개 모델 중 최고 수준의 코딩 성능을 보여줍니다.

Phind-CodeLlama 34B-v2는 Python, Java, JavaScript 등 주요 프로그래밍 언어에 능통하며, 코드 작성, 버그 수정, 알고리즘 설계 등 다양한 코딩 작업에 활용할 수 있습니다. 다만 모델 크기가 크기 때문에 RTX 4090급(24GB VRAM)의 고성능 GPU를 권장합니다.

더 작은 GPU를 사용 중이라면 CodeLlama 13B나 WizardCoder 15B와 같은 중형 모델을 고려해볼 수 있습니다. 이들도 상당히 좋은 코딩 성능을 보이면서 16GB 이하의 VRAM으로 구동 가능합니다.

3) 문서 요약 및 검색

Yi 34B 200K

​긴 문서를 요약하거나 방대한 자료에서 정보를 검색하는 용도라면 Yi 34B 200K 모델이 최적의 선택입니다. 이 모델은 최대 200,000 토큰(약 15만 단어)의 초장문 컨텍스트를 처리할 수 있는 것이 가장 큰 강점입니다.

Yi 34B 200K는 01.AI에서 개발한 모델로, 긴 문서에서 핵심을 찾아내는 능력이 뛰어나고, 문서 내용을 기반으로 질문에 답하는 문서 분석에 적합합니다. 이 모델 역시 RTX 4090급의 GPU를 권장하며, 4비트 양자화 적용 시 약 18GB VRAM이 필요합니다.

참고로 이 모델은 대화용으로 미세 조정되지 않은 기본(Base) 모델이므로, 문서 요약이나 검색에 활용하려면 적절한 프롬프트 설계가 필요합니다. 대화용으로 튜닝된 Yi-34B-Chat 버전도 있으니 용도에 맞게 선택하면 좋을 것 같네요.

3. 로컬 LLM 설치 및 최적화 (Windows)

이제 하드웨어와 모델을 선택했다면, 실제 로컬 환경에 LLM을 설치하고 최적화하는 방법을 알아보겠습니다.

1) 설치 환경 준비

​로컬 LLM을 구동하기 위한 가장 인기 있는 방법은 Oobabooga의 text-generation-webui를 사용하는 것입니다. 이 도구는 사용자 친화적인 웹 인터페이스를 제공하며, 다양한 모델을 쉽게 불러오고 관리할 수 있습니다.

Windows에서 설치하는 경우, 깃허브에서 제공하는 원클릭 설치 스크립트(start_windows.bat)를 이용하면 간편합니다. 이 스크립트가 필요한 Python 환경과 의존성 패키지들을 자동으로 설치해줍니다.

Oobabooga text-generation-webui

설치가 완료되면 웹 브라우저에서 localhost:7860으로 접속하여 웹 인터페이스를 사용할 수 있습니다. 여기서 사용하려는 모델을 다운로드하거나 이미 다운로드한 모델을 로드할 수 있죠.

2) 모델 다운로드 및 로드

hugging face - llama 2 chat 13B

​모델 파일은 주로 Hugging Face에서 다운로드할 수 있습니다. 예를 들어 앞서 추천한 Llama 2 Chat 13B 모델은 다음과 같이 검색할 수 있습니다.​

  • 원본 모델 : meta-llama/Llama-2-13b-chat-hf
  • 양자화 버전 : TheBloke/Llama-2-13B-chat-GPTQ

​양자화된 버전을 사용하면 VRAM 사용량을 크게 줄일 수 있으므로, 일반적으로 TheBloke와 같은 커뮤니티 기여자들이 제공하는 GPTQ나 AWQ 버전을 사용하는 것이 좋습니다.

text-generation-webui에서는 ‘Model’ 탭에서 Hugging Face 모델 ID를 입력하고 다운로드 버튼을 클릭하여 모델을 받을 수 있습니다. 또는 수동으로 다운로드한 모델 파일을 ‘models’ 폴더에 복사하여 사용할 수도 있죠.

3) 메모리 최적화 방법

​대형 LLM을 효율적으로 구동하기 위해서는 메모리 최적화가 필수적입니다. 다음은 주요 최적화 방법들입니다.

  • 양자화(Quantization) : 모델의 가중치를 낮은 정밀도로 변환하는 기술로, 4비트 양자화를 적용하면 메모리 사용량을 1/4로 줄일 수 있습니다.
  • GPU 오프로딩 : 일부 레이어를 CPU 메모리로 옮겨 GPU VRAM 사용량을 줄이는 방식입니다. 속도는 느려지지만 더 큰 모델을 구동할 수 있습니다.
  • 전용 백엔드 : ExLlama, llama.cpp와 같은 최적화된 백엔드를 사용하면 메모리 효율성과
  • 실행 속도가 크게 향상됩니다.

​text-generation-webui에서는 ‘Parameters’ 탭에서 이러한 설정을 조정할 수 있습니다. 예를 들어 ‘GPTQ’ 옵션을 선택하고 ‘ExLlama’ 백엔드를 활성화하면 양자화된 모델을 더 효율적으로 실행할 수 있으니 참고해보시면 좋을 것 같네요.

4. 맺음말

오늘은 로컬 LLM 구축을 위한 하드웨어 요구사항부터 목적별 추천 모델, 그리고 설치 및 최적화 방법까지 알아보았습니다.

지금까지 내용을 요약하자면, 로컬 LLM을 구축하기 위해서는 적절한 GPU VRAM 용량이 가장 중요하며, 사용 목적에 따라 일반 대화용으로는 Llama 2 Chat 13B, 코딩 도구로는 Phind-CodeLlama 34B-v2, 문서 요약 및 검색에는 Yi 34B 200K 모델이 추천됩니다. 설치는 text-generation-webui를 이용하면 간편하게 할 수 있으며, 양자화 및 전용 백엔드를 활용하여 메모리 효율성을 극대화할 수 있습니다.

개인적으로는 로컬 LLM을 구축하는 것이 학습과 실험에 매우 유용하다고 생각합니다. 비록 상용 서비스에 비해 성능이 다소 제한적일 수 있지만, 프라이버시를 보호하고 인터넷 연결 없이도 AI 모델을 활용할 수 있다는 장점은 분명히 있습니다. 특히 코딩이나 문서 작업과 같은 특정 용도에 맞춰 모델을 선택한다면, 클라우드 서비스 못지않은 성능을 경험할 수 있을 것입니다.

다만 하드웨어 요구사항이 높다는 점은 진입 장벽으로 작용할 수 있으니, 처음 시작하시는 분들은 작은 모델부터 시작하여 점진적으로 확장해 나가는 것을 권장드립니다. 또한 모델과 최적화 방법은 계속해서 발전하고 있으므로, 관련 커뮤니티나 포럼을 통해 최신 정보를 꾸준히 확인하는 것도 중요하겠네요.

RECENT POSTING