Spaces:
Running
Running
# --------------------------- | |
# Настройки корпусов данных | |
# --------------------------- | |
[datasets.meld] | |
base_dir = "E:/MELD" | |
csv_path = "{base_dir}/meld_{split}_labels.csv" | |
wav_dir = "{base_dir}/wavs/{split}" | |
[datasets.resd] | |
base_dir = "E:/RESD" | |
csv_path = "{base_dir}/resd_{split}_labels.csv" | |
wav_dir = "{base_dir}/wavs/{split}" | |
[synthetic_data] | |
use_synthetic_data = false | |
synthetic_path = "E:/MELD_S" | |
synthetic_ratio = 0.005 | |
# --------------------------- | |
# Список модальностей и эмоций | |
# --------------------------- | |
modalities = ["audio"] | |
# emotion_columns = ["neutral", "happy", "sad", "anger", "surprise", "disgust", "fear"] | |
emotion_columns = ["anger", "disgust", "fear", "happy", "neutral", "sad", "surprise"] | |
# --------------------------- | |
# DataLoader параметры | |
# --------------------------- | |
[dataloader] | |
num_workers = 0 | |
shuffle = true | |
prepare_only = false | |
# --------------------------- | |
# Аудио | |
# --------------------------- | |
[audio] | |
sample_rate = 16000 # Целевая частота дискретизации | |
wav_length = 4 # Целевая длина (в секундах) для аудио | |
save_merged_audio = true | |
merged_audio_base_path = "saved_merges" | |
merged_audio_suffix = "_merged" | |
force_remerge = false | |
# --------------------------- | |
# Whisper и текст | |
# --------------------------- | |
[text] | |
# Если "csv", то мы стараемся брать текст из CSV, если там есть | |
# (поле text_column). Если нет - тогда Whisper (если нужно). | |
source = "csv" | |
text_column = "text" | |
whisper_model = "base" | |
# Указываем, где запускать Whisper: "cuda" (GPU) или "cpu" | |
whisper_device = "cpu" | |
# Если для dev/test в CSV нет текста, нужно ли всё же вызывать Whisper? | |
use_whisper_for_nontrain_if_no_text = true | |
# --------------------------- | |
# Общие параметры тренировки | |
# --------------------------- | |
[train.general] | |
random_seed = 42 # фиксируем random seed для воспроизводимости (0 = каждый раз разный) | |
subset_size = 100 # ограничение на количество примеров (0 = использовать весь датасет) | |
merge_probability = 0 # процент склеивания коротких файлов | |
batch_size = 8 # размер батча | |
num_epochs = 75 # число эпох тренировки | |
max_patience = 10 # максимальное число эпох без улучшений (для Early Stopping) | |
save_best_model = false | |
save_prepared_data = true # сохранять извлеченные признаки (эмбеддинги) | |
save_feature_path = './features/' # путь для сохранения эмбеддингов | |
search_type = "none" # стратегия поиска: "greedy", "exhaustive" или "none" | |
path_to_df_ls = 'Phi-4-mini-instruct_emotions_union.csv' # путь к датафрейму со смягченными метками - Qwen3-4B_emotions_union или Phi-4-mini-instruct_emotions_union | |
smoothing_probability = 0.0 # процент использования смягченных меток | |
# --------------------------- | |
# Параметры модели | |
# --------------------------- | |
[train.model] | |
model_name = "BiFormer" # название модели (BiGraphFormer, BiFormer, BiGatedGraphFormer, BiGatedFormer, BiMamba, PredictionsFusion, BiFormerWithProb, BiMambaWithProb, BiGraphFormerWithProb, BiGatedGraphFormerWithProb) | |
hidden_dim = 256 # размер скрытого состояния | |
hidden_dim_gated = 128 # скрытое состояние для gated механизмов | |
num_transformer_heads = 16 # количество attention голов в трансформере | |
num_graph_heads = 2 # количество голов в граф-механизме | |
tr_layer_number = 5 # количество слоев в трансформере | |
mamba_d_state = 16 # размер состояния в Mamba | |
mamba_ker_size = 6 # размер кернела в Mamba | |
mamba_layer_number = 5 # количество слоев Mamba | |
positional_encoding = false # использовать ли позиционное кодирование | |
dropout = 0.15 # dropout между слоями | |
out_features = 256 # размер финальных признаков перед классификацией | |
mode = 'mean' # способ агрегации признаков (например, "mean", "max", и т.д.) | |
# --------------------------- | |
# Параметры оптимизатора | |
# --------------------------- | |
[train.optimizer] | |
optimizer = "adam" # тип оптимизатора: "adam", "adamw", "lion", "sgd", "rmsprop" | |
lr = 1e-4 # начальная скорость обучения | |
weight_decay = 0.0 # weight decay для регуляризации | |
momentum = 0.9 # momentum (используется только в SGD) | |
# --------------------------- | |
# Параметры шедулера | |
# --------------------------- | |
[train.scheduler] | |
scheduler_type = "plateau" # тип шедулера: "none", "plateau", "cosine", "onecycle" ил и HuggingFace-стиль ("huggingface_linear", "huggingface_cosine" "huggingface_cosine_with_restarts" и т.д.) | |
warmup_ratio = 0.1 # отношение количества warmup-итераций к общему числу шагов (0.1 = 10%) | |
[embeddings] | |
# audio_model = "amiriparian/ExHuBERT" # Hugging Face имя модели для аудио | |
audio_model = "audeering/wav2vec2-large-robust-12-ft-emotion-msp-dim" # Hugging Face имя модели для аудио | |
audio_classifier_checkpoint = "best_audio_model_2.pt" | |
text_classifier_checkpoint = "best_text_model.pth" | |
text_model = "jinaai/jina-embeddings-v3" # Hugging Face имя модели для текста | |
audio_embedding_dim = 256 # размерность аудио-эмбеддинга | |
text_embedding_dim = 1024 # размерность текст-эмбеддинга | |
emb_normalize = false # нормализовать ли вектор L2-нормой | |
max_tokens = 95 # ограничение на длину текста (токенов) при токенизации | |
device = "cpu" # "cuda" или "cpu", куда грузить модель | |
# audio_pooling = "mean" # "mean", "cls", "max", "min", "last", "attention" | |
# text_pooling = "cls" # "mean", "cls", "max", "min", "last", "sum", "attention" | |
[textgen] | |
# model_name = "deepseek-ai/DeepSeek-R1-Distill-Llama-8B" # deepseek-ai/deepseek-llm-1.3b-base или любая другая модель | |
# model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B" # deepseek-ai/deepseek-llm-1.3b-base или любая другая модель | |
max_new_tokens = 50 | |
temperature = 1.0 | |
top_p = 0.95 | |