LoRA Training

ACE-Step LoRA 학습 가이드

커스텀 LoRA 어댑터로 ACE-Step을 파인튜닝하여 당신만의 스타일로 음악을 생성하세요.

최종 업데이트: 2026년 2월

LoRA 파인튜닝이란?

LoRA(Low-Rank Adaptation)는 소량의 어댑터 가중치만 학습하여 대형 모델을 효율적으로 파인튜닝하는 기술입니다. ACE-Step의 경우 20~50개의 참조 트랙을 사용하여 특정 음악 스타일을 모델에 가르칠 수 있습니다.

데이터셋 준비

고품질 데이터는 LoRA 학습에서 가장 중요한 요소입니다. 각 오디오 파일은 30~120초, 단일 악기 또는 명확히 믹스된 것이어야 하며 목표 스타일을 일관되게 나타내야 합니다.

  • 기본 스타일 캡처를 위한 최소 20개 샘플
  • 견고한 스타일 일반화를 위한 50~100개 샘플
  • 스템 분리 도구로 깔끔한 보컬이나 악기 추출
  • 각 파일에 정확한 텍스트 캡션 태그 달기(장르, 템포, 조성, 분위기)
  • 일관성을 위해 오디오 라우드니스를 -14 LUFS로 정규화
# Using Demucs for stem separation
pip install demucs
python -m demucs --two-stems=vocals audio/mixed_track.wav

Stem separation with Demucs for cleaner vocal isolation

# Normalize to -14 LUFS using ffmpeg
ffmpeg -i input.wav -filter:a loudnorm=I=-14:TP=-1.5:LRA=11 output.wav

Loudness normalization to -14 LUFS

학습 파라미터

이러한 권장 파라미터는 대부분의 음악 스타일 LoRA에 적용됩니다. 데이터셋 크기와 목표 스타일 특이성에 따라 조정하세요.

ParameterRecommendedRangeNote
LoRA Rank164–64Higher = more capacity, slower training
LoRA Alpha328–128Usually 2× rank value
Learning Rate1e-45e-5 – 5e-4Lower for small datasets
Batch Size41–16Reduce if OOM errors occur
Epochs50–15020–500Monitor for overfitting
Warmup Steps500–200Stabilizes early training

학습 단계

  1. 1

    학습 데이터 준비

    목표 스타일을 나타내는 20~100개의 오디오 샘플을 수집합니다. 더 깔끔한 학습 신호를 위해 스템 분리를 사용합니다. 44.1kHz의 WAV/FLAC로 내보냅니다.

    # Recommended directory structure:
    dataset/
      audio/
        track_001.wav
        track_002.wav
        ...
      metadata.json
  2. 2

    텍스트 캡션 생성

    각 오디오 파일에 정확한 설명적 캡션 작성: 장르, 악기, 템포, 분위기, 조성. 캡션 품질이 LoRA 효과에 직접 영향을 미칩니다.

    [
      {
        "file": "audio/track_001.wav",
        "caption": "upbeat indie folk, acoustic guitar, female vocals, 120 BPM, C major, energetic"
      },
      {
        "file": "audio/track_002.wav",
        "caption": "melancholic jazz, piano and double bass, slow tempo, 70 BPM, F minor, introspective"
      }
    ]
  3. 3

    학습 스크립트 구성

    configs/lora_training_template.yaml을 configs/my_lora.yaml로 복사합니다. data_dir을 데이터셋 경로로 설정하고 데이터셋 크기에 따라 num_epochs를 조정합니다.

    # configs/my_lora.yaml
    model:
      base_model: "ace-step-1.5"
      lora_rank: 16
      lora_alpha: 32
      target_modules: ["q_proj", "v_proj", "k_proj", "out_proj"]
    
    training:
      num_epochs: 100
      batch_size: 4
      learning_rate: 1.0e-4
      warmup_steps: 50
      save_every: 25
    
    data:
      data_dir: "./dataset"
      sample_rate: 44100
      max_duration: 120
  4. 4

    학습 실행

    실행: python train_lora.py --config configs/my_lora.yaml. 손실 곡선 모니터링 — 학습 손실이 급등 없이 꾸준히 감소해야 합니다.

    python train_lora.py \
      --config configs/my_lora.yaml \
      --data_dir ./dataset \
      --output_dir ./lora_output \
      --num_epochs 100 \
      --batch_size 4 \
      --learning_rate 1e-4 \
      --lora_rank 16
  5. 5

    테스트 및 반복

    LoRA 체크포인트를 로드하고 다양한 프롬프트로 테스트합니다. 출력이 목표 스타일과 일치하지 않으면 학습 데이터나 에포크를 늘리세요.

    # Load and use your trained LoRA
    python generate.py \
      --prompt "upbeat indie folk with acoustic guitar" \
      --lora_path ./lora_output/checkpoint-100 \
      --lora_weight 0.8

FAQ

FM9으로 제로샷 스타일 제어

LoRA 학습에는 20~50개의 참조 트랙, 8GB+ GPU, 수 시간의 컴퓨팅이 필요합니다. FM9은 설명적인 프롬프트로 음악 스타일을 제어할 수 있습니다 — 학습 불필요, 데이터 수집 불필요, 대기 불필요.

무료로 만들기 시작