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 엔진
종합 데모 기능
프로젝트는 세 가지 모드를 통합한 종합 데모를 제공합니다.
- Chat 모드: 표준 대화 상호 작용
- Tool 모드: 도구 호출 데모
- Code Interpreter 모드: 코드 실행 환경
라이선스 및 사용 약관
- 학술 연구: 완전 개방 사용
- 상업적 사용: 설문지 작성 후 무료 상업적 사용 허용
- 사용 제한: 국가 및 사회에 해를 끼칠 수 있는 용도로 사용 불가
- 안전 요구 사항: 안전 평가 및 등록을 거친 서비스 필요
기술 아키텍처 특징
모델 아키텍처
- GLM 아키텍처 기반의 개선 버전
- 최적화된 주의 메커니즘
- 더 나은 다국어 지원
- 기본적으로 도구 호출 지원
훈련 최적화
- 더욱 다양한 훈련 데이터
- 더욱 충분한 훈련 단계
- 더욱 합리적인 훈련 전략
- 중국어에 대한 최적화
커뮤니티 기여
프로젝트는 오픈 소스 커뮤니티를 적극적으로 수용하고 여러 우수한 프로젝트와 긴밀하게 협력하여 완전한 생태계를 형성했습니다. 개발자는 ChatGLM3를 기반으로 다양한 혁신적인 응용 프로그램을 개발할 수 있습니다.