ChatGLM3 로컬 배포 및 주의사항 가이드

프로젝트 소개

ChatGLM3는 Zhipu AI와 Tsinghua University KEG 연구소가 공동으로 출시한 대화형 사전 훈련 모델입니다. ChatGLM3-6B는 이 시리즈의 오픈소스 버전으로, 이전 세대의 원활한 대화와 낮은 배포 임계값 등의 장점을 유지하면서 새로운 기능들을 추가했습니다.

  • 강화된 기본 모델: ChatGLM3-6B는 다양한 훈련 데이터와 더 효율적인 전략을 사용하여 개선되었습니다. 이를 통해 10B 미만의 모델 중 가장 뛰어난 성능을 보여줍니다.
  • 다양한 기능 지원: 새로운 프롬프트 형식을 도입했으며, 도구 호출(Function Call), 코드 실행(Code Interpreter) 등을 지원합니다.

환경 설정

먼저 필요한 Python과 Conda 환경을 설치해야 합니다.

Python

최소 Python 3.10 이상이 필요하며, 설치 후 아래 명령어로 확인합니다.

python -V

Conda

Miniconda를 권장합니다. 공식 문서를 참고해 설치하고, 아래 명령어로 설치 여부를 확인하세요.

conda --version

배포 과정

먼저 GitHub 리포지토리를 클론합니다.

git clone https://github.com/THUDM/ChatGLM3.git

의존성 패키지를 설치합니다.

cd ChatGLM3
pip install -r requirements.txt

스트림릿 애플리케이션을 실행합니다.

streamlit run web_demo_streamlit.py

처음 실행 시 큰 크기의 모델 파일(약 11GB)을 다운로드하므로, 해외 서버를 이용하는 것이 권장됩니다.

CPU에서의 문제 해결

아래 경고 메시지가 표시된다면 CPU로 동작 중임을 나타냅니다.

WARNING:root:Some parameters are on the meta device because they were offloaded to the CPU and disk.

코드를 수정하여 GPU를 사용하도록 변경합니다.

def load_model():
    tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
    model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True).quantize(4).to("cuda")
    return tokenizer, model

PyTorch 및 CUDA 설치

GPU를 사용하려면 올바른 PyTorch와 CUDA 버전이 필요합니다.

현재 설치된 PyTorch 버전을 확인합니다.

import torch as t
print(t.cuda.is_available())
print(t.__version__)

CUDA 버전도 확인해야 합니다.

nvidia-smi

공식 사이트에서 맞는 버전을 설치하세요.

테스트

설치가 완료되면 아래 코드로 CUDA 사용 가능 여부를 확인합니다.

import torch
print(torch.cuda.is_available())

결론

배포 과정에서 몇 가지 문제를 겪었지만, 올바른 PyTorch와 CUDA 버전을 사용하면 GPU를 통해 성능을 크게 향상시킬 수 있습니다. 다만 현지 GPU 성능에 따라 여전히 느릴 수 있으니, 필요하다면 클라우드 서버를 고려하세요.

태그: ChatGLM3 PyTorch CUDA

6월 1일 08:20에 게시됨