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๋Š” ๋‹ค์–‘ํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์„ธ์š”.

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ: ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

apt install portaudio19-dev libsox-dev ffmpeg

Conda

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๋Š” ๋” ๋น ๋ฅธ ์˜์กด์„ฑ ํ•ด๊ฒฐ ๋ฐ ์„ค์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

# 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 ์ง€์›์„ ์„ค์น˜ํ•˜์„ธ์š”:

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๋กœ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜, ์ˆ˜๋™์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”. ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ถ”๋ก  ๊ฐ€์ด๋“œ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Docker ๋ฐ Docker Compose ์„ค์น˜
  • NVIDIA Docker ๋Ÿฐํƒ€์ž„ ์„ค์น˜ (GPU ์ง€์›์šฉ)
  • CUDA ์ถ”๋ก ์„ ์œ„ํ•œ ์ตœ์†Œ 24GB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ

Docker Compose ์‚ฌ์šฉ

๊ฐœ๋ฐœ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜๋ฅผ ์œ„ํ•ด Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# ๋จผ์ € ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค
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 ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# .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 ๋นŒ๋“œ

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋ ค๋Š” ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด:

# 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 ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.