CVAT 프로젝트 생성 및 사용방법

이미지
CVAT 사용방법 1. cvat 프로젝트 생성     Add label 클릭   label 이름 text 입력 타입은 디폴트 Any  선택 Add an attribute 클릭하여 속성 추가   속성 2개 추가 하나는 이미지에 있는 텍스트, 또 하나는 정답 텍스트 속성  text 입력 타입은 Text 이고 수정가능하게 Mutable 체크 속성 transcription 추가 타입은 Text 이고 수정가능학 Mutable 체크 다 추가 한 후에 Submit & Open 클릭하여 저장 2. Tasks 생성 Tasks 탭에서 Create a new task 클릭 Name 입력 :  알아볼수 있는 이름 Project : 기존에 만든 프로젝트 선택 Subset 필수는 아님 그냥 Train 선택 이미지 파일 추가 Advanced configuration image quality 좋게 100% 입력 Overlap size 0 으로 입력해야 추가한 이미지 그룹으로 묶임 segment size 비워둬야 추가한 이미지 전체가 그룹으로 묶임 저장하고 나면 Jobs에 추가한 Tasks가 보임 Jobs 에 클릭하여 들어가서 작업 영역을 잘 선택후 속성에서 text 에는 이미지에 보이는 텍스트 transcription 에는 이미지에 오타가 있을수도 있기 때문에 text와 조금 다를수 있음 대부분 text와 같음 정답을 입력

Qwen/Qwen3-VL-32B-Instruct 리눅스 셋팅하기

Qwen/Qwen3-VL-32B-Instruct


/* gpu 서버 가상환경 생성 */
1) 가상환경
python3 -m venv /data/cbw/venvs/qwen3

source /data/cbw/venvs/qwen3/bin/activate

# 최신 pip로 업데이트
python -m pip install -U pip

2) Hugging Face CLI & 라이브러리 설치
pip install --upgrade pip setuptools wheel && pip cache purge && pip install -U "transformers>=4.45.0" "tokenizers>=0.19.1" "huggingface_hub[cli]" "accelerate"
-- pip install -U "huggingface_hub[cli]" transformers accelerate

(선택) 로그인 – Private 모델 쓸 때
huggingface-cli login

# 3-1) 디렉터리 준비
mkdir -p /data/cbw/huggingface/hf_cache

# 3-2) 현재 쉘 세션에 적용
export HF_HOME=/data/cbw/huggingface/hf_cache

# 3-3) 영구 반영 (zsh 예시: ~/.zshrc / bash면 ~/.bashrc)
echo 'export HF_HOME=/data/cbw/huggingface/hf_cache' >> ~/.bashrc
# 새 터미널에서 자동 적용되며, 현 세션엔 아래로 즉시 적용:
source ~/.bashrc

(빠른 확인)
python - << 'PY'
import os; print("HF_HOME =", os.environ.get("HF_HOME"))
PY

4) (선택) 모델을 미리 내려받아 캐시 확인
huggingface-cli download Qwen/Qwen3-VL-32B-Instruct

다운로드 후 캐시 위치가 바뀌었는지 확인:
du -sh /data/cbw/huggingface/hf_cache/hub

이미지 입력을 쓰실 계획이라면 qwen-vl-utils 패키지를 함께 설치하세요:
pip install qwen-vl-utils

5) vLLM 설치
pip install -U vllm

6) 기동
-- Qwen3-VL-32B-Instruct 기동 명령어
CC=/usr/bin/gcc-11 CXX=/usr/bin/g++-11 \
CUDA_VISIBLE_DEVICES=0,1 \
TRITON_CACHE_DIR=/data/cbw/triton_cache/qwen3 \
nohup vllm serve Qwen/Qwen3-VL-32B-Instruct \
  --tensor-parallel-size 2 \
  --dtype bfloat16 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.72 \
  --limit-mm-per-prompt.video 0 \
  --mm-encoder-tp-mode data \
  --max-num-seqs 8 \
  --disable-log-stats \
  --async-scheduling \
  --port 8001 \
  > >(cronolog /data/cbw/logs/qwen3_vl_%Y-%m-%d.log) 2>&1 &


/* 에러발생 해결절차 */
CUDA Toolkit 설치 (nvcc 포함)

sudo apt update
sudo apt install -y nvidia-cuda-toolkit

/* 설치후 확인 */
nvcc --version

(qwen3) cbw@userver91-41:/data/cbw$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

Cuda compilation tools, release 12.x, V12.x.xxx 형태가 나오면 정상입니다.

CUDA 환경 변수 등록
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
echo 'export PATH=$CUDA_HOME/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

/* 호환성 있는 gcc11 버전 설치 기존버전은 gcc13.3.0 임 */
/* 설치후 update-alternatives 버전을 체인지 하던가 시스템에서 gcc13.3을 디폴트로 사용할수 있으니까 CUDA 빌드용으로만 gcc-11 사용 */

gcc 11 설치

sudo apt install -y gcc-11 g++-11

/* 여러 버전 등록 */
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 120
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 120
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110

이렇게 하면 gcc 13이 기본이지만, 필요 시 gcc 11로 쉽게 바꿀 수 있습니다.

다시 gcc 13으로 되돌리려면
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

위 명령으로 13.x 버전을 다시 선택하면 즉시 복구됩니다.

CUDA 빌드용으로만 gcc-11 사용

vLLM이나 PyTorch/Triton이 CUDA 커널을 빌드할 때만 gcc 11을 사용하게 할 수도 있습니다.
다음처럼 CC 환경변수를 일시적으로 지정하면 됩니다:

CC=/usr/bin/gcc-11 CXX=/usr/bin/g++-11 \
CUDA_VISIBLE_DEVICES=0,1 \
vllm serve Qwen/Qwen3-VL-32B-Instruct \
  --tensor-parallel-size 2 \
  --dtype bfloat16 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.82 \
  --limit-mm-per-prompt.video 0 \
  --mm-encoder-tp-mode data \
  --max-num-seqs 8 \
  --disable-log-stats \
  --async-scheduling \
  --port 8001 


/* 기동중 아래와 같은 오류 발생시 */
fatal error: Python.h: 그런 파일이나 디렉터리가 없습니다

원인 요약

이건 Python C 확장 빌드 시, Python 헤더(Python.h)가 없어서 생긴 오류입니다.
즉, 시스템에 Python 해더 파일 (python3.12-dev) 이 설치되어 있지 않아서 생긴 겁니다.

Triton이 내부적으로 C 확장(.so)을 빌드할 때,
Python.h를 포함해야 하는데 이게 /usr/include/python3.12/ 안에 없어서 죽은 겁니다.

/* Python 개발 헤더 설치 */
sudo apt install -y python3.12-dev

설치 후 확인:

ls /usr/include/python3.12/Python.h
파일이 존재하면 정상입니다.

/* vllm 기동시 속도 개선 */
1️⃣ Triton이 뭐냐면?
TRITON_CACHE_DIR는 vLLM이 내부적으로 GPU 커널을 컴파일할 때 사용하는 캐시 경로를 지정하는 환경변수입니다.
조금 풀어서 설명드리면 아래와 같습니다

vLLM은 PyTorch + Triton 커널을 사용해서, 모델 연산을 GPU에서 최적화합니다.

Triton은 CUDA 커널을 “실시간으로 컴파일(JIT)”해서 성능을 높이는데,
처음 실행 시에는 CUDA 코드를 컴파일해야 하기 때문에 느리고,
두 번째부터는 캐시된 결과를 재사용합니다.

2️⃣ TRITON_CACHE_DIR의 역할

Triton은 기본적으로 /tmp/ 밑에 임시 캐시를 저장하지만,
이건 리부팅하거나 임시폴더 청소 시 전부 사라집니다.

그래서 아래처럼 지정해주면:

TRITON_CACHE_DIR=/data/cbw/triton_cache

이 의미는 곧

“CUDA 커널을 한 번만 컴파일하고,
결과를 /data/cbw/triton_cache 폴더에 저장해서
다음 실행부터는 즉시 불러와라.”

라는 뜻이에요.

4️⃣ 폴더 준비

최초 한 번은 폴더를 직접 만들어줘야 합니다:
mkdir -p /data/cbw/triton_cache
chmod 777 /data/cbw/triton_cache

/* 캐시폴더 지정후 실행 */
CC=/usr/bin/gcc-11 CXX=/usr/bin/g++-11 \
CUDA_VISIBLE_DEVICES=0,1 \
TRITON_CACHE_DIR=/data/cbw/triton_cache \
vllm serve Qwen/Qwen3-VL-32B-Instruct \
  --tensor-parallel-size 2 \
  --dtype bfloat16 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.82 \
  --limit-mm-per-prompt.video 0 \
  --mm-encoder-tp-mode data \
  --max-num-seqs 8 \
  --disable-log-stats \
  --async-scheduling \
  --port 8001 

/* 테스트 */
curl http://182.162.91.41:8001/v1/chat/completions   -H "Content-Type: application/json"   -d '{
    "model": "Qwen/Qwen3-VL-32B-Instruct",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "안녕하세요, 자기소개 해주세요."}
    ],
    "max_tokens": 128,
    "temperature": 0.7
  }'


/* 백그라운 기동 */
- 날짜별로 로그파일 생성하기 위해서 cronolog 설치
sudo apt-get update
sudo apt-get install cronolog -y

/* 백그라운드 명령어 */
CC=/usr/bin/gcc-11 CXX=/usr/bin/g++-11 \
CUDA_VISIBLE_DEVICES=0,1 \
TRITON_CACHE_DIR=/data/cbw/triton_cache \
nohup vllm serve Qwen/Qwen3-VL-32B-Instruct \
  --tensor-parallel-size 2 \
  --dtype bfloat16 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.82 \
  --limit-mm-per-prompt.video 0 \
  --mm-encoder-tp-mode data \
  --max-num-seqs 8 \
  --disable-log-stats \
  --async-scheduling \
  --port 8001 \
  > >(cronolog vllm_%Y-%m-%d.log) 2>&1 &



/* 프로세스 확인 */
ps aux | grep vllm

/* 종료 */
pkill -f "vllm serve"







댓글

이 블로그의 인기 게시물

티베로 이관 작업 절차

아파치 보안관련 기본설정

윈도우 네트워크 리소스 사용권한 오류