ajh-code's picture
Add files using upload-large-folder tool
c41750d verified
|
Raw
History Blame Contribute Delete
6.15 kB
## ์š”๊ตฌ ์‚ฌ์–‘
- GPU ๋ฉ”๋ชจ๋ฆฌ: 24GB (์ถ”๋ก  ์‹œ)
- ์‹œ์Šคํ…œ: Linux, WSL
## ์‹œ์Šคํ…œ ์„ค์ •
Fish Audio S2๋Š” ๋‹ค์–‘ํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์„ธ์š”.
**์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ**: ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:
``` bash
apt install portaudio19-dev libsox-dev ffmpeg
```
### Conda
```bash
conda create -n fish-speech python=3.12
conda activate fish-speech
# GPU ๋ฒ„์ „ ์„ค์น˜ (CUDA ๋ฒ„์ „ ์„ ํƒ: cu126, cu128, cu129)
pip install -e .[cu129]
# CPU ๋ฒ„์ „๋งŒ ์„ค์น˜
pip install -e .[cpu]
# ๊ธฐ๋ณธ ์„ค์น˜ (PyTorch ๊ธฐ๋ณธ ์ธ๋ฑ์Šค ์‚ฌ์šฉ)
pip install -e .
# pyaudio ์„ค์น˜ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”:
# conda install pyaudio
# ๊ทธ๋Ÿฐ ๋‹ค์Œ pip install -e . ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”
```
### UV
UV๋Š” ๋” ๋น ๋ฅธ ์˜์กด์„ฑ ํ•ด๊ฒฐ ๋ฐ ์„ค์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:
```bash
# GPU ๋ฒ„์ „ ์„ค์น˜ (CUDA ๋ฒ„์ „ ์„ ํƒ: cu126, cu128, cu129)
uv sync --python 3.12 --extra cu129
# CPU ๋ฒ„์ „๋งŒ ์„ค์น˜
uv sync --python 3.12 --extra cpu
```
### Intel Arc XPU ์ง€์›
Intel Arc GPU ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด XPU ์ง€์›์„ ์„ค์น˜ํ•˜์„ธ์š”:
```bash
conda create -n fish-speech python=3.12
conda activate fish-speech
# ํ•„์š”ํ•œ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
conda install libstdcxx -c conda-forge
# Intel XPU๋ฅผ ์ง€์›ํ•˜๋Š” PyTorch ์„ค์น˜
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
# Fish Speech ์„ค์น˜
pip install -e .
```
!!! warning
`compile` ์˜ต์…˜์€ Windows์™€ macOS์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ ค๋ฉด Triton์„ ์ง์ ‘ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
## Docker ์„ค์ •
Fish Audio S2 ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์€ ๋‹ค์–‘ํ•œ ์š”๊ตฌ์— ๋ถ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ Docker ๋ฐฐํฌ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Docker Hub์˜ ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Docker Compose๋กœ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜, ์ˆ˜๋™์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
WebUI์™€ API ์„œ๋ฒ„ ๋ชจ๋‘์— ๋Œ€ํ•ด GPU(๊ธฐ๋ณธ๊ฐ’ CUDA 12.6) ๋ฐ CPU ๋ฒ„์ „์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Docker Hub์˜ ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Docker Compose๋กœ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜, ์ˆ˜๋™์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”. ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด [์ถ”๋ก  ๊ฐ€์ด๋“œ](inference.md)๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์„ธ์š”.
### ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
- Docker ๋ฐ Docker Compose ์„ค์น˜
- NVIDIA Docker ๋Ÿฐํƒ€์ž„ ์„ค์น˜ (GPU ์ง€์›์šฉ)
- CUDA ์ถ”๋ก ์„ ์œ„ํ•œ ์ตœ์†Œ 24GB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ
### Docker Compose ์‚ฌ์šฉ
๊ฐœ๋ฐœ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜๋ฅผ ์œ„ํ•ด Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
```bash
# ๋จผ์ € ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
# CUDA๋กœ WebUI ์‹œ์ž‘
docker compose --profile webui up
# ์ปดํŒŒ์ผ ์ตœ์ ํ™”๋กœ WebUI ์‹œ์ž‘
COMPILE=1 docker compose --profile webui up
# API ์„œ๋ฒ„ ์‹œ์ž‘
docker compose --profile server up
# ์ปดํŒŒ์ผ ์ตœ์ ํ™”๋กœ API ์„œ๋ฒ„ ์‹œ์ž‘
COMPILE=1 docker compose --profile server up
# CPU ์ „์šฉ ๋ฐฐํฌ
BACKEND=cpu docker compose --profile webui up
```
#### Docker Compose ํ™˜๊ฒฝ ๋ณ€์ˆ˜
ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
```bash
# .env ํŒŒ์ผ ์˜ˆ์‹œ
BACKEND=cuda # ๋˜๋Š” cpu
COMPILE=1 # ์ปดํŒŒ์ผ ์ตœ์ ํ™” ํ™œ์„ฑํ™”
GRADIO_PORT=7860 # WebUI ํฌํŠธ
API_PORT=8080 # API ์„œ๋ฒ„ ํฌํŠธ
UV_VERSION=0.8.15 # UV ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฒ„์ „
```
์ด ๋ช…๋ น์€ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. WebUI๋Š” `http://localhost:7860`์—์„œ, API ์„œ๋ฒ„๋Š” `http://localhost:8080`์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
### ์ˆ˜๋™ Docker ๋นŒ๋“œ
๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋ ค๋Š” ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด:
```bash
# CUDA๋ฅผ ์ง€์›ํ•˜๋Š” WebUI ์ด๋ฏธ์ง€ ๋นŒ๋“œ
docker build \
--platform linux/amd64 \
-f docker/Dockerfile \
--build-arg BACKEND=cuda \
--build-arg CUDA_VER=12.6.0 \
--build-arg UV_EXTRA=cu126 \
--target webui \
-t fish-speech-webui:cuda .
# CUDA๋ฅผ ์ง€์›ํ•˜๋Š” API ์„œ๋ฒ„ ์ด๋ฏธ์ง€ ๋นŒ๋“œ
docker build \
--platform linux/amd64 \
-f docker/Dockerfile \
--build-arg BACKEND=cuda \
--build-arg CUDA_VER=12.6.0 \
--build-arg UV_EXTRA=cu126 \
--target server \
-t fish-speech-server:cuda .
# CPU ์ „์šฉ ์ด๋ฏธ์ง€ ๋นŒ๋“œ (๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ์ง€์›)
docker build \
--platform linux/amd64,linux/arm64 \
-f docker/Dockerfile \
--build-arg BACKEND=cpu \
--target webui \
-t fish-speech-webui:cpu .
# ๊ฐœ๋ฐœ์šฉ ์ด๋ฏธ์ง€ ๋นŒ๋“œ
docker build \
--platform linux/amd64 \
-f docker/Dockerfile \
--build-arg BACKEND=cuda \
--target dev \
-t fish-speech-dev:cuda .
```
#### ๋นŒ๋“œ ์ธ์ž
- `BACKEND`: `cuda` ๋˜๋Š” `cpu` (๊ธฐ๋ณธ๊ฐ’: `cuda`)
- `CUDA_VER`: CUDA ๋ฒ„์ „ (๊ธฐ๋ณธ๊ฐ’: `12.6.0`)
- `UV_EXTRA`: CUDA์šฉ UV ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ (๊ธฐ๋ณธ๊ฐ’: `cu126`)
- `UBUNTU_VER`: Ubuntu ๋ฒ„์ „ (๊ธฐ๋ณธ๊ฐ’: `24.04`)
- `PY_VER`: Python ๋ฒ„์ „ (๊ธฐ๋ณธ๊ฐ’: `3.12`)
### ๋ณผ๋ฅจ ๋งˆ์šดํŠธ
๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ๋‹ค์Œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งˆ์šดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:
- `./checkpoints:/app/checkpoints` - ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ ๋””๋ ‰ํ† ๋ฆฌ
- `./references:/app/references` - ์ฐธ์กฐ ์˜ค๋””์˜ค ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ
### ํ™˜๊ฒฝ ๋ณ€์ˆ˜
- `COMPILE=1` - `torch.compile`์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ถ”๋ก  ์†๋„ ํ–ฅ์ƒ (์•ฝ 10๋ฐฐ)
- `GRADIO_SERVER_NAME=0.0.0.0` - WebUI ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ
- `GRADIO_SERVER_PORT=7860` - WebUI ์„œ๋ฒ„ ํฌํŠธ
- `API_SERVER_NAME=0.0.0.0` - API ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ
- `API_SERVER_PORT=8080` - API ์„œ๋ฒ„ ํฌํŠธ
!!! note
Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๊ฐ€ `/app/checkpoints`์— ๋งˆ์šดํŠธ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
!!! warning
GPU ์ง€์›์—๋Š” NVIDIA Docker ๋Ÿฐํƒ€์ž„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. CPU ์ „์šฉ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ `--gpus all` ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  CPU ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.