lily_fast_api / WINDOWS_GPU_DEPLOYMENT_GUIDE.md
gbrabbit's picture
Fresh start for HF Spaces deployment
526927a
# πŸ–₯️ Windows GPU ν™˜κ²½ 배포 κ°€μ΄λ“œ
## πŸ“‹ 사전 μš”κ΅¬μ‚¬ν•­
### 1. ν•˜λ“œμ›¨μ–΄ μš”κ΅¬μ‚¬ν•­
- **GPU**: NVIDIA GPU (RTX 3060 이상 ꢌμž₯)
- **λ©”λͺ¨λ¦¬**: μ΅œμ†Œ 16GB RAM, ꢌμž₯ 32GB RAM
- **μ €μž₯곡간**: μ΅œμ†Œ 50GB μ—¬μœ  곡간
### 2. μ†Œν”„νŠΈμ›¨μ–΄ μš”κ΅¬μ‚¬ν•­
#### NVIDIA λ“œλΌμ΄λ²„ μ„€μΉ˜
1. **NVIDIA μ›Ήμ‚¬μ΄νŠΈ λ°©λ¬Έ**: https://www.nvidia.com/Download/index.aspx
2. **GPU λͺ¨λΈ 선택**: μ‚¬μš© 쀑인 GPU λͺ¨λΈ 선택
3. **λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ**: μ΅œμ‹  λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ 및 μ„€μΉ˜
4. **μž¬λΆ€νŒ…**: μ„€μΉ˜ μ™„λ£Œ ν›„ μ‹œμŠ€ν…œ μž¬λΆ€νŒ…
#### Docker Desktop μ„€μΉ˜
1. **Docker Desktop λ‹€μš΄λ‘œλ“œ**: https://www.docker.com/products/docker-desktop
2. **μ„€μΉ˜ μ‹€ν–‰**: λ‹€μš΄λ‘œλ“œν•œ 파일 μ‹€ν–‰
3. **WSL 2 μ„€μ •**: Windows Subsystem for Linux 2 ν™œμ„±ν™”
4. **μž¬λΆ€νŒ…**: μ„€μΉ˜ μ™„λ£Œ ν›„ μ‹œμŠ€ν…œ μž¬λΆ€νŒ…
#### Python GPU 라이브러리 μ„€μΉ˜
```cmd
# κ°€μƒν™˜κ²½ ν™œμ„±ν™”
lily_llm_env\Scripts\activate
# PyTorch GPU 버전 μ„€μΉ˜
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# Hugging Face 라이브러리 μ„€μΉ˜
pip install transformers huggingface_hub
# μΆ”κ°€ GPU 라이브러리 μ„€μΉ˜
pip install accelerate bitsandbytes
```
## πŸ”§ ν™˜κ²½ μ„€μ •
### 1. GPU ν™˜κ²½ 확인
```cmd
cd C:\Project\lily_generate_project\lily_generate_package
python check_gpu_environment.py
```
### 2. Windows GPU μ„€μ •
```cmd
# Windows GPU ν™˜κ²½ μ„€μ • 슀크립트 μ‹€ν–‰
windows_gpu_setup.bat
```
### 3. Hugging Face μ„€μ •
```cmd
# Hugging Face 토큰 μ„€μ •
huggingface-cli login
# λ˜λŠ” Python 슀크립트둜 μ„€μ •
python huggingface_gpu_setup.py
```
## πŸš€ 배포 μ‹€ν–‰
### 1. μžλ™ 배포 (ꢌμž₯)
```cmd
# Windows GPU 배포 슀크립트 μ‹€ν–‰
deploy_gpu_windows.bat
```
### 2. μˆ˜λ™ 배포
```cmd
# 1. κΈ°μ‘΄ μ»¨ν…Œμ΄λ„ˆ 정리
docker-compose -f docker-compose.gpu.yml down --volumes --remove-orphans
# 2. 이미지 λΉŒλ“œ
docker-compose -f docker-compose.gpu.yml build --no-cache
# 3. μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘
docker-compose -f docker-compose.gpu.yml up -d
# 4. μ„œλΉ„μŠ€ μƒνƒœ 확인
docker-compose -f docker-compose.gpu.yml logs -f
```
## πŸ§ͺ ν…ŒμŠ€νŠΈ
### 1. GPU 배포 ν…ŒμŠ€νŠΈ
```cmd
python test_gpu_deployment.py
```
### 2. Hugging Face λͺ¨λΈ ν…ŒμŠ€νŠΈ
```cmd
python huggingface_gpu_setup.py
```
### 3. API ν…ŒμŠ€νŠΈ
```cmd
curl http://localhost:8001/health
```
## πŸ“Š λͺ¨λ‹ˆν„°λ§
### 1. GPU μ‚¬μš©λŸ‰ 확인
```cmd
# GPU 정보 확인
nvidia-smi
# μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§
nvidia-smi -l 1
```
### 2. μ»¨ν…Œμ΄λ„ˆ μƒνƒœ 확인
```cmd
# μ‹€ν–‰ 쀑인 μ»¨ν…Œμ΄λ„ˆ 확인
docker ps
# μ»¨ν…Œμ΄λ„ˆ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰ 확인
docker stats
```
### 3. 둜그 확인
```cmd
# 전체 둜그
docker-compose -f docker-compose.gpu.yml logs -f
# νŠΉμ • μ„œλΉ„μŠ€ 둜그
docker-compose -f docker-compose.gpu.yml logs -f lily-llm-api-gpu
```
## πŸ”§ 문제 ν•΄κ²°
### 1. NVIDIA λ“œλΌμ΄λ²„ 문제
```cmd
# λ“œλΌμ΄λ²„ 버전 확인
nvidia-smi
# 문제 λ°œμƒ μ‹œ λ“œλΌμ΄λ²„ μž¬μ„€μΉ˜
# 1. κΈ°μ‘΄ λ“œλΌμ΄λ²„ 제거
# 2. μ΅œμ‹  λ“œλΌμ΄λ²„ λ‹€μš΄λ‘œλ“œ 및 μ„€μΉ˜
# 3. μ‹œμŠ€ν…œ μž¬λΆ€νŒ…
```
### 2. Docker 문제
```cmd
# Docker Desktop μž¬μ‹œμž‘
# Docker Desktop > Settings > General > Restart
# WSL 2 확인
wsl --list --verbose
# Docker κΆŒν•œ 문제 ν•΄κ²°
# Docker Desktop > Settings > Resources > WSL Integration
```
### 3. CUDA 버전 좩돌
```cmd
# PyTorch CUDA 버전 확인
python -c "import torch; print(torch.version.cuda)"
# CUDA 버전에 λ§žλŠ” PyTorch μž¬μ„€μΉ˜
pip uninstall torch torchvision torchaudio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```
### 4. λ©”λͺ¨λ¦¬ λΆ€μ‘±
```cmd
# GPU λ©”λͺ¨λ¦¬ 확인
nvidia-smi
# μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘
docker-compose -f docker-compose.gpu.yml restart
# λ©”λͺ¨λ¦¬ μ΅œμ ν™” 적용
python performance_optimization.py
```
## πŸ“ˆ μ„±λŠ₯ μ΅œμ ν™”
### 1. Windows μ „μš© μ΅œμ ν™”
```cmd
# 가상 λ©”λͺ¨λ¦¬ 증가
# μ œμ–΄νŒ > μ‹œμŠ€ν…œ > κ³ κΈ‰ μ‹œμŠ€ν…œ μ„€μ • > μ„±λŠ₯ > μ„€μ • > κ³ κΈ‰ > 가상 λ©”λͺ¨λ¦¬
# 전원 μ„€μ • μ΅œμ ν™”
# μ œμ–΄νŒ > 전원 μ˜΅μ…˜ > κ³ μ„±λŠ₯ 선택
```
### 2. Docker μ΅œμ ν™”
```cmd
# Docker Desktop μ„€μ • μ΅œμ ν™”
# Docker Desktop > Settings > Resources
# - Memory: 8GB 이상 ν• λ‹Ή
# - CPUs: 4개 이상 ν• λ‹Ή
# - Disk image size: 64GB 이상
```
### 3. GPU λ©”λͺ¨λ¦¬ μ΅œμ ν™”
```python
# 4-bit μ–‘μžν™” 적용
python huggingface_gpu_setup.py
# 배치 크기 μ‘°μ •
# config.yamlμ—μ„œ batch_size μ‘°μ •
```
## πŸ”„ μ—…λ°μ΄νŠΈ
### 1. λͺ¨λΈ μ—…λ°μ΄νŠΈ
```cmd
# μ΅œμ‹  λͺ¨λΈ λ‹€μš΄λ‘œλ“œ
python huggingface_gpu_setup.py
# μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘
docker-compose -f docker-compose.gpu.yml restart
```
### 2. μ½”λ“œ μ—…λ°μ΄νŠΈ
```cmd
# μ½”λ“œ λ³€κ²½ ν›„ μž¬λΉŒλ“œ
docker-compose -f docker-compose.gpu.yml build --no-cache
docker-compose -f docker-compose.gpu.yml up -d
```
## πŸ“ž 지원
### 문제 λ°œμƒ μ‹œ 확인사항
1. **GPU λ“œλΌμ΄λ²„**: `nvidia-smi` λͺ…λ Ήμ–΄ μ‹€ν–‰ κ°€λŠ₯ μ—¬λΆ€
2. **Docker Desktop**: WSL 2 톡합 ν™œμ„±ν™” μ—¬λΆ€
3. **CUDA 버전**: PyTorch와 CUDA 버전 ν˜Έν™˜μ„±
4. **μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬**: 16GB 이상 μ—¬μœ  λ©”λͺ¨λ¦¬
5. **GPU λ©”λͺ¨λ¦¬**: 8GB 이상 GPU λ©”λͺ¨λ¦¬
### 둜그 파일 μœ„μΉ˜
- **Docker 둜그**: `docker-compose -f docker-compose.gpu.yml logs`
- **μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 둜그**: `logs/` 디렉토리
- **GPU 둜그**: `nvidia-smi`
## 🎯 Windows μ „μš© 팁
### 1. WSL 2 μ΅œμ ν™”
```cmd
# WSL 2 λ©”λͺ¨λ¦¬ μ œν•œ μ„€μ •
# %UserProfile%\.wslconfig 파일 생성
[wsl2]
memory=8GB
processors=4
```
### 2. Windows Defender μ˜ˆμ™Έ μ„€μ •
```cmd
# ν”„λ‘œμ νŠΈ 폴더λ₯Ό Windows Defender μ˜ˆμ™Έμ— μΆ”κ°€
# Windows λ³΄μ•ˆ > λ°”μ΄λŸ¬μŠ€ 및 μœ„ν˜‘ λ°©μ§€ > μ„€μ • > μ˜ˆμ™Έ μΆ”κ°€
```
### 3. 전원 관리 μ΅œμ ν™”
```cmd
# κ³ μ„±λŠ₯ 전원 κ³„νš 선택
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
```
## πŸš€ λΉ λ₯Έ μ‹œμž‘
### 1단계: ν™˜κ²½ 확인
```cmd
windows_gpu_setup.bat
```
### 2단계: Hugging Face μ„€μ •
```cmd
python huggingface_gpu_setup.py
```
### 3단계: GPU 배포
```cmd
deploy_gpu_windows.bat
```
### 4단계: ν…ŒμŠ€νŠΈ
```cmd
python test_gpu_deployment.py
```
## πŸŽ‰ 성곡 확인
배포가 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜λ©΄ λ‹€μŒ μ„œλΉ„μŠ€λ“€μ΄ μ‹€ν–‰λ©λ‹ˆλ‹€:
- βœ… **Lily LLM API**: http://localhost:8001
- βœ… **Hearth Chat**: http://localhost:8000
- βœ… **LaTeX-OCR Service**: 별도 μ»¨ν…Œμ΄λ„ˆλ‘œ μ‹€ν–‰
- βœ… **GPU 가속**: NVIDIA GPU ν™œμš©
- βœ… **Hugging Face λͺ¨λΈ**: μ΅œμ ν™”λœ λͺ¨λΈ λ‘œλ“œ