Home
Login

즈푸 AI와 칭화대학교 KEG 연구실이 공동 발표한 오픈 소스 이중 언어 대화형 대규모 언어 모델로, 도구 호출, 코드 실행 등의 기능을 지원합니다.

Apache-2.0Python 13.7kTHUDM Last Updated: 2025-01-13

ChatGLM3 프로젝트 상세 소개

프로젝트 개요

ChatGLM3는 즈푸AI와 칭화대학교 KEG 연구실이 공동으로 발표한 대화형 사전 훈련 모델입니다. ChatGLM3-6B는 ChatGLM3 시리즈의 오픈 소스 모델로, 이전 두 세대 모델의 대화 유창성, 낮은 배포 장벽 등 많은 우수한 특성을 유지하면서 ChatGLM3-6B는 여러 가지 중요한 새로운 특성과 개선 사항을 도입했습니다.

프로젝트 주소: https://github.com/THUDM/ChatGLM3

핵심 특징

1. 더욱 강력한 기초 모델

ChatGLM3-6B의 기초 모델인 ChatGLM3-6B-Base는 더욱 다양한 훈련 데이터, 충분한 훈련 단계 및 합리적인 훈련 전략을 채택했습니다. 의미, 수학, 추론, 코드, 지식 등 다양한 각도의 데이터 세트에서 평가한 결과, ChatGLM3-6B-Base는 10B 이하의 기초 모델 중 가장 강력한 성능을 가지고 있습니다.

2. 더욱 완전한 기능 지원

  • 새로운 Prompt 형식: 새롭게 설계된 Prompt 형식을 채택하여 더욱 유연한 대화 상호 작용을 지원합니다.
  • 도구 호출 (Function Call): 기본적으로 도구 호출 기능을 지원하여 모델이 외부 도구를 능동적으로 호출할 수 있습니다.
  • 코드 실행 (Code Interpreter): Jupyter 환경에서 코드를 실행하고 결과를 얻는 것을 지원합니다.
  • Agent 작업: 복잡한 에이전트 작업 시나리오를 지원합니다.

3. 더욱 포괄적인 오픈 소스 시퀀스

다양한 요구 사항을 충족하기 위해 여러 버전을 제공합니다.

  • ChatGLM3-6B: 표준 대화 모델, 8K 컨텍스트 길이 지원
  • ChatGLM3-6B-Base: 기초 사전 훈련 모델
  • ChatGLM3-6B-32K: 장문 텍스트 대화 모델, 32K 컨텍스트 지원
  • ChatGLM3-6B-128K: 초장문 텍스트 이해 모델, 128K 컨텍스트 지원

성능 표현

기초 능력 평가

8개의 중영문 대표 데이터 세트에서의 테스트 결과:

모델 GSM8K MATH BBH MMLU C-Eval CMMLU MBPP AGIEval
ChatGLM2-6B-Base 32.4 6.5 33.7 47.9 51.7 50.0 - -
ChatGLM3-6B-Base 72.3 25.7 66.1 61.4 69.0 67.5 52.4 53.7

장문 텍스트 처리 능력

여러 장문 텍스트 응용 시나리오에서 ChatGLM3-6B-32K에 대한 수동 평가 테스트를 수행했습니다. 2세대 모델과 비교하여 효과가 평균 50% 이상 향상되었습니다. 논문 읽기, 문서 요약 및 재무 보고서 분석과 같은 응용 분야에서 특히 향상되었습니다.

설치 및 사용

환경 준비

git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
pip install -r requirements.txt

기초 사용 예시

from transformers import AutoTokenizer, AutoModel

# 모델 로드
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')
model = model.eval()

# 대화 상호 작용
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

하드웨어 요구 사항

  • 표준 로드: 약 13GB의 VRAM 필요 (FP16 정밀도)
  • 양자화 로드: 4-bit 양자화 후 VRAM 요구 사항이 크게 감소
  • CPU 추론: 약 32GB의 메모리 필요
  • 다중 GPU 지원: 모델을 여러 GPU에 분산 가능

배포 방식

1. Web 인터페이스 배포

# Gradio 버전
python web_demo_gradio.py

# Streamlit 버전
streamlit run web_demo_streamlit.py

2. 명령줄 상호 작용

python cli_demo.py

3. API 서비스 배포

cd openai_api_demo
python api_server.py

OpenAI 호환 API 인터페이스 제공, 다음 지원:

  • 표준 대화 인터페이스
  • 도구 호출 인터페이스
  • 스트리밍 응답
  • 온도 및 top_p 매개변수 제어

미세 조정 및 확장

미세 조정 지원

프로젝트는 완전한 미세 조정 도구 세트를 제공하며 다음을 지원합니다.

  • 명령어 미세 조정
  • 대화 미세 조정
  • 작업 특정 미세 조정

커뮤니티 생태계

여러 우수한 오픈 소스 프로젝트 지원:

추론 가속:

  • chatglm.cpp: llama.cpp와 유사한 양자화 가속 솔루션
  • ChatGLM3-TPU: TPU 가속 추론
  • TensorRT-LLM: NVIDIA GPU 고성능 추론
  • OpenVINO: Intel 장비 가속 추론

미세 조정 프레임워크:

  • LLaMA-Factory: 효율적인 미세 조정 프레임워크

응용 프레임워크:

  • LangChain-Chatchat: RAG 지식 베이스 프로젝트
  • BISHENG: 대규모 모델 응용 개발 플랫폼
  • RAGFlow: 심층 문서 이해 RAG 엔진

종합 데모 기능

프로젝트는 세 가지 모드를 통합한 종합 데모를 제공합니다.

  1. Chat 모드: 표준 대화 상호 작용
  2. Tool 모드: 도구 호출 데모
  3. Code Interpreter 모드: 코드 실행 환경

라이선스 및 사용 약관

  • 학술 연구: 완전 개방 사용
  • 상업적 사용: 설문지 작성 후 무료 상업적 사용 허용
  • 사용 제한: 국가 및 사회에 해를 끼칠 수 있는 용도로 사용 불가
  • 안전 요구 사항: 안전 평가 및 등록을 거친 서비스 필요

기술 아키텍처 특징

모델 아키텍처

  • GLM 아키텍처 기반의 개선 버전
  • 최적화된 주의 메커니즘
  • 더 나은 다국어 지원
  • 기본적으로 도구 호출 지원

훈련 최적화

  • 더욱 다양한 훈련 데이터
  • 더욱 충분한 훈련 단계
  • 더욱 합리적인 훈련 전략
  • 중국어에 대한 최적화

커뮤니티 기여

프로젝트는 오픈 소스 커뮤니티를 적극적으로 수용하고 여러 우수한 프로젝트와 긴밀하게 협력하여 완전한 생태계를 형성했습니다. 개발자는 ChatGLM3를 기반으로 다양한 혁신적인 응용 프로그램을 개발할 수 있습니다.