언어모델 LLM/모델 및 프레임워크

Docker로 llama.cpp 쉽게 실행하기

General AI 2024. 7. 2. 03:50
728x90
반응형

Docker로 llama.cpp 쉽게 실행하기: 대규모 언어 모델의 간편한 활용

Docker로 llama.cpp 쉽게 실행하기

llama.cpp는 Meta의 LLaMA와 같은 대규모 언어 모델을 순수 C/C++로 구현하여 CPU나 GPU에서 효율적으로 실행할 수 있게 해주는 오픈소스 프로젝트로, 다양한 하드웨어에서 최소한의 의존성으로 고성능 텍스트 생성을 가능하게 합니다.
이 포스팅에서는 fboulnois의 llama-cpp-docker 프로젝트를 기반으로 llama.cpp를 Docker 환경에서 손쉽게 실행하는 방법을 소개해드리려고 합니다. 이 프로젝트는 llama.cpp 서버를 이용하여 llama와 같은 대규모 언어 모델을 누구나 쉽게 사용할 수 있도록 해주는 훌륭한 도구입니다.

llama-cpp-docker 프로젝트 소개

llama-cpp-docker는 Facebook의 LLaMA, Mistral AI의 Mistral 등 여러 강력한 언어 모델들을 Docker 컨테이너 안에서 실행할 수 있게 해줍니다. GPU 가속을 지원하여 고성능 추론이 가능하며, GPU가 없는 환경에서도 CPU로 실행할 수 있어 접근성이 뛰어납니다.

빠른 시작 가이드

다음 세 줄의 명령어만으로 LLaMA 2 13B 모델을 실행할 수 있습니다. 참고로 LLaMA-2 13B는 Meta AI에서 개발한 대규모 언어 모델로, 130억 개의 매개변수를 가진 오픈소스 모델이며, 다양한 자연어 처리 작업에서 우수한 성능을 보이면서도 GPT-3에 비해 상대적으로 작은 크기로 효율적인 학습과 추론이 가능합니다.

make build
make llama-2-13b
make up

이 명령어들은 차례대로 Docker 이미지를 빌드하고, LLaMA 2 13B 모델을 다운로드한 후, 서비스를 시작합니다. 서비스가 시작되면 http://localhost:8080에서 웹 인터페이스를 통해 모델을 테스트 해볼 수 있습니다.

다양한 모델 지원

이 프로젝트의 큰 장점 중 하나는 다양한 최신 언어 모델을 지원한다는 것입니다. LLaMA 2, Mistral, Solar, Starling 등 여러 인기 있는 모델을 쉽게 다운로드하고 실행할 수 있습니다. 각 모델은 Makefile 타겟으로 정의되어 있어, make [모델명] 명령어로 간단히 다운로드할 수 있습니다.

네, 지원하는 모델들을 테이블로 정리해드리겠습니다:

모델명 크기 필요 (V)RAM 점수* ELO** 비고
llama-2-13b 13B 11.73 GB 55.69 1067 원조 오픈 LLM
solar-10b 10.7B 10.10 GB 74.20 1066 Huggingface에서 높은 점수
phi-3-mini 3B 3.13 GB 69.91 1074 현재 최고의 소형 모델
mistral-7b 7B 7.63 GB 65.71 1074 가장 인기 있는 7B 모델
starling-7b 7B 5.13 GB 69.88 1118 Huggingface에서 높은 점수
command-r 35B 25.00 GB 68.54 1149 현재 최고의 중형 모델
llama-3-8b 8B 5.73 GB 62.55 1154 현재 최고의 소형 모델

이 테이블은 각 모델의 크기, 필요한 메모리, 성능 점수 등을 보여줍니다. 사용자는 자신의 하드웨어 사양과 필요한 성능 수준에 따라 적절한 모델을 선택할 수 있습니다.

유연한 설정

docker-compose.yml 파일에서 환경 변수를 통해 다양한 옵션을 설정할 수 있습니다. 특히 LLAMA_ 접두사가 붙은 환경 변수는 자동으로 llama.cpp 서버의 명령줄 인자로 변환되어, 서버 설정을 매우 유연하게 조정할 수 있습니다.

GPU 가속 지원

CUDA 가능한 GPU가 있다면, 이 프로젝트는 자동으로 GPU 가속을 활용합니다. 최소 8GB의 VRAM이 필요하지만, 이를 통해 훨씬 빠른 추론 속도를 경험할 수 있습니다. llama.cpp는 GPU가 없어도 자동으로 CPU 버전을 빌드하고 사용하므로, 어떤 환경에서든 작동합니다.

실행 화면

프로젝트를 설치하고 실행한 후, 웹 브라우저에서 http://localhost:8080에 접속하면 다음과 같은 인터페이스를 만나볼 수 있습니다.

Docker로 llama.cpp 쉽게 실행하기

이 웹 인터페이스를 통해 다음과 같은 기능들을 사용할 수 있습니다:

  • 채팅 모드와 완성 모드 선택
  • 사용자 이름과 봇 이름 설정
  • 프롬프트 템플릿과 채팅 히스토리 템플릿 커스터마이즈
  • 문법 규칙 설정 (GBNF 또는 JSON Schema)
  • 다양한 생성 매개변수 조정 (온도, top-k, top-p 등)
  • 고급 옵션 설정 (TFS-Z, Typical P, Mirostat 등)

Docker로 llama.cpp 쉽게 실행하기

AI의 답변 분석에서는 모델이 서울에 대한 기본적인 사실(수도, 위치, 인구)을 정확히 제시하면서도, 도시의 문화적 특성과 역사적 중요성을 간략히 언급하고, Gyeongbokgung Palace와 같은 구체적인 랜드마크를 예로 들어 정보의 깊이를 더했으며, "Hello!"로 시작하는 친근한 톤을 사용해 사용자와의 자연스러운 대화를 유도하는 등, 짧은 답변 안에 정확성, 관련성, 구체성, 그리고 대화의 적절성을 모두 담아내는 균형 잡힌 응답 능력을 보여주었습니다.

llama-cpp-docker 프로젝트는 llama.cpp의 강력한 기능을 Docker의 편리함과 결합하여, 대규모 언어 모델을 누구나 쉽게 실험하고 활용할 수 있게 해줍니다. 연구자, 개발자, 그리고 AI에 관심 있는 모든 분들에게 이 도구를 강력히 추천합니다.

728x90
반응형