music_mind_app / README.md
Bartosz Pietrzak
Final touches
710c57b
|
raw
history blame
3.41 kB

Music Mind

Aplikacja gradio projektu

CI/CD Pipeline

1. Wyb贸r modelu

Je艣li model nie pochodzi z biblioteki HF, trzeba si臋 upewni膰, 偶e jest kompatybilny z klas膮 Trainer biblioteki HuggingFace LINK

2. Wyb贸r danych trenuj膮cych

Je偶eli dataset pochodzi z biblioteki HuggingFace, mo偶na ten krok pomin膮膰.

  1. Zb贸r ucz膮cy musi posiada膰:

    • Pliki muzyczne w formacie; znajduj膮ce si臋 w jednym folderze [.ogg, .mp3 .wav]
    • Plik json zawieraj膮cy oznaczenia dla wszystkich plik贸w muzycznych:
    {
        "file1.ogg": "jazz",
        "file2.ogg": "hiphop"
    }
    
  2. Aby dataset mia艂 form臋 kompatybiln膮 z trenerem HF, dost臋pny zbi贸r danych nale偶y sparsowa膰 za pomoc膮 skryptu make_dataset.py znajduj膮cego si臋 w katalogu dl/ projektu:

    python make_dataset.py --dir sciezka/do/folderu/plikow/audio --file sciezka/do/pliku/json.json --output lokalizacja/wygenerowanego/datasetu
    

3. Trening Modelu

Trening modelu odbywa si臋 poprzez skrypt train.py znajduj膮cy si臋 w katalogu /dl/ projektu.

Skrupt posiada nast臋puj膮ce flagi:

  • learning_rate: Wsp贸艂czynnik uczenia podczas treningu modelu.
  • train_eval_split: Stosunek danych trenuj膮cych do ca艂ego zbioru; reszta to dane walidacyjne.
  • model_id: Identyfikator modelu z Hugging Face lub 艣cie偶ka do lokalnego modelu.
  • num_epochs: Liczba epok treningowych.
  • seed: Ziarno liczb losowych.
  • save_dir: 艢cie偶ka do katalogu wag tranowanego modelu.
  • dataset: Nazwa/lokalizacja zbioru danych.

Przyk艂adowe uruchomienie skryptu:

python train_audio_model.py --model_id "facebook/wav2vec2-base-960h" --learning_rate 0.0001 --train_eval_split 0.8 --num_epochs 10 --seed 42 --save_dir "/path/to/save/models" --dataset "marsyas/gtzan"

Wagi i pliki konfiguracyjne modelu zostan膮 zapisane w podanej 艣cierzce pod nazw膮 sk艂adaj膮c膮 si臋 z parametr贸w uczenia np:

/path/to/save/facebook-wav2vec2-base-960h-123-marsyas-gtzan-0.0001

4. Wersjonowanie model贸w

Modele mo偶na przesy艂a膰 do repozytorium na huggingface.

Za pomoc膮 skryptu push_model.py:

python script_name.py --username your_username --model_dir /path/to/your/model --repo_name your_repo_name --private True

lub za pomoc膮 GUI strony HuggingFace LINK

Widok strony pocz膮tkowej zak艂adania repozytorium modelu

Dodawanie plik贸w do repozytorium

Na stronie:

alt text

alt text

6. Aktualizowanie modelu w deployowanej aplikacji

Po dodaniu modelu do repozytorium nale偶y go wykorzysta膰 w deployowanej aplikacji dost臋pnej pod tym adresem:

git clone https://huggingface.co/spaces/bjpietrzak/music_mind

W katalogu g艂贸wnym projektu znajduje si臋 plik main.py. W jego wn臋trzu znajduje si臋 zmienna config:

config = {
    "sampling_rate": 16000,
    "model": "bjpietrzak/distilhubert-gtzan-20-5e-5",
}

Nazw臋 repozytorium, oraz model mo偶na umie艣ci膰 w warto艣ci klucza model, je艣li jest taka potrzeba, nale偶y zmieni膰 sampling rate.

Po zmianie zmian, nale偶y je pchn膮膰:

git push

Zmiany powinny by膰 widoczne po kilku minutach:

alt text