일반 소개
Chitu는 칭화대학교의 PACMAN 팀이 개발한 오픈 소스 추론 프레임워크로, 대규모 언어 모델을 실행하기 위해 특별히 설계된 "Red Rabbit"이라고 불립니다. Chitu는 NVIDIA의 GPU와 국산 칩 등 다양한 하드웨어를 지원하며, 독립형부터 대규모 클러스터까지 사용할 수 있습니다.특히 FP8 모델을 사용한 추론은 비용을 획기적으로 절감할 수 있는데, GPU를 절반만 사용하고 vLLM보다 3배 이상 빠른 A800에서 DeepSeek-671B를 실행하는 것이 대표적입니다.이 코드는 GitHub에서 공개적으로 사용 가능하며 기업이나 개인이 무료로 다운로드하여 사용할 수 있습니다. 이 도구는 프로덕션 환경에서 바로 사용할 수 있는 도구로, 비용을 절감하면서도 성능을 원하는 팀에 적합합니다.

기능 목록
- FP8 및 BF16 모델 추론을 지원하며, 저비용 고성능으로 구형 GPU 및 국산 칩에서도 실행할 수 있습니다.
- 순수 CPU부터 NVIDIA A800, H20 등의 GPU, 대규모 클러스터에 이르기까지 다양한 하드웨어에 적응할 수 있습니다.
- CUDA 그래프로 추론 속도를 최적화하여 한 번의 요청으로 더 빠른 결과를 얻을 수 있습니다.
- HTTP 요청을 통해 모델을 직접 호출할 수 있는 서비스 인터페이스를 제공합니다.
- 대용량 작업 처리에 적합한 다중 노드 분산 추론을 지원합니다.
- 기업이 필요에 따라 변경하거나 최적화할 수 있는 오픈 소스 코드입니다.
도움말 사용
설치 프로세스
Chitu 설치는 복잡하지는 않지만 약간의 준비가 필요합니다. 자세한 단계는 다음과 같습니다:
- 환경 준비하기
- 시스템: 우분투 22.04 권장, NVIDIA GPU(예: A800 또는 H20)가 탑재된 컴퓨터.
- 소프트웨어: Git, Python 3.10, CUDA 12.1(사용 중인 GPU 버전에 맞게 조정), PyTorch 2.1을 설치합니다.
- 명령 예제:
sudo apt update && sudo apt install -y git python3.10 python3-pip pip install -U torch==2.1 --index-url https://download.pytorch.org/whl/cu121
- 코드 다운로드
- Git을 사용하여 로컬에서 Chitu의 코드를 복제합니다:
git clone --recursive https://github.com/thu-pacman/chitu cd chitu
- Git을 사용하여 로컬에서 Chitu의 코드를 복제합니다:
- 종속성 설치
- 필요한 Python 패키지와 컴파일 환경을 설치합니다:
pip install -r requirements-build.txt pip install flash-attn
- 필요한 Python 패키지와 컴파일 환경을 설치합니다:
- 컴파일 및 설치
- 컴파일 파라미터를 설정하고(GPU에 따라 TORCH_CUDA_ARCH_LIST를 조정합니다(예: A800의 경우 8.0)) 컴파일합니다:
TORCH_CUDA_ARCH_LIST=8.0 CHITU_SETUP_JOBS=4 MAX_JOBS=4 pip install --no-build-isolation .
- 컴파일 파라미터를 설정하고(GPU에 따라 TORCH_CUDA_ARCH_LIST를 조정합니다(예: A800의 경우 8.0)) 컴파일합니다:
- 설치 확인
- 테스트를 실행하여 문제가 없는지 확인합니다:
torchrun --nproc_per_node 1 test/single_req_test.py
- 테스트를 실행하여 문제가 없는지 확인합니다:
사용 방법
Chitu가 로드되면 명령줄에서 서비스를 시작하거나 단일 테스트를 실행할 수 있습니다. 방법은 다음과 같습니다:
추론 서비스 시작
- 모델 경로 구성
- 모델 파일(예: DeepSeek-R1)을 로컬 디렉터리에 준비합니다(예
/data/DeepSeek-R1
). - 편집 명령에서
models.ckpt_dir
매개변수는 모델 경로를 가리킵니다.
- 모델 파일(예: DeepSeek-R1)을 로컬 디렉터리에 준비합니다(예
- 서비스 시작
- 포트 21002에서 수신 대기 중인 토치런으로 독립 실행형 서비스를 시작하세요:
export WORLD_SIZE=1 torchrun --nproc_per_node 1 chitu/serve.py \ serve.port=21002 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ infer.use_cuda_graph=True \ request.max_new_tokens=100
- 포트 21002에서 수신 대기 중인 토치런으로 독립 실행형 서비스를 시작하세요:
- 테스트 서비스
- 컬을 사용하여 요청을 보내고 모델이 제대로 응답하는지 확인합니다:
curl localhost:21002/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"messages": [{"role": "user", "content": "你好,Chitu 是什么?"}]}'
- 반환 결과는 모델의 답변이 포함된 JSON 형식입니다.
- 컬을 사용하여 요청을 보내고 모델이 제대로 응답하는지 확인합니다:
단일 추론 테스트 실행
- 서비스를 시작하지 않으려면 모델 출력을 테스트하기만 하면 됩니다:
torchrun --nproc_per_node 1 test/single_req_test.py \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ request.max_new_tokens=64
- 출력은 터미널에 표시되어 모델이 생성한 내용을 알려줍니다.
다중 노드 분산 추론
- 여러 대의 컴퓨터 준비
- 각 머신에 Chitu 및 종속성이 로드되어 있고 모델 파일이 공유 스토리지에 있는지 확인합니다.
- 분산 서비스 시작
- 각각 8개의 GPU가 장착된 2대의 머신에서 실행하세요:
torchrun --nnodes 2 --nproc_per_node 8 test/single_req_test.py \ request.max_new_tokens=64 \ infer.pp_size=2 \ infer.tp_size=8 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1
- 각각 8개의 GPU가 장착된 2대의 머신에서 실행하세요:
- 효과 확인
- 멀티 노드 실행 후 출력은 단일 머신보다 빨라져 대량의 요청을 처리하는 데 적합합니다.
주요 기능 작동
FP8 모델로 비용과 속도 절약
- Chitu는 GPU 사용량이 적고 BF16보다 빠른 FP8 형식 모델을 지원합니다.
- 작동: 시작 시 추가
infer.soft_fp8=True
예를 들어 모델이 FP8 형식인 경우 모델은 FP8 형식이어야 합니다. 예를 들어torchrun --nproc_per_node 1 chitu/serve.py \ serve.port=21002 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ infer.soft_fp8=True
CUDA 그래프로 가속화
- 파라미터를 추가하여 CUDA 그래프로 단일 요청을 가속화할 수 있습니다.
infer.use_cuda_graph=True
. - 테스트 효과: 단일 추론을 실행하고 추가 유무에 따른 속도 차이를 비교합니다.
성능 테스트
- Chitu에는 처리량과 지연 시간을 측정하는 벤치마킹 도구가 함께 제공됩니다:
python benchmarks/benchmark_serving.py \ --model "deepseek-r1" \ --iterations 10 \ --seq-len 10 \ --base-url http://localhost:21002
- 결과는 다음과 같이 표시됩니다. 토큰 숫자를 입력하면 할당량을 최적화하는 데 도움이 됩니다.
주의
- 여러 노드를 사용하는 경우 네트워크가 안정적이어야 하며, 그렇지 않으면 네트워크가 끊어집니다.
- GPU 메모리가 부족하면 OOM 오류가 발생할 수 있으므로 메모리를 낮추세요.
infer.max_seq_len
또는 더 적은 수의 노드로. - 국내 칩 지원은 아직 최적화 중이므로 코드를 변경하여 적용해야 할 수 있습니다.
Chitu는 사용하기 어렵지 않으며, 단계를 따르기만 하면 바로 실행할 수 있습니다. 문서와 커뮤니티도 GitHub에 있으므로 궁금한 점이 있으면 문제를 제기할 수 있습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...