이 저장소에는 논문의 공식 코드가 포함되어 있습니다 : 오디오 스펙트로 그램 변압기 [1] ( 2024 IEEE MLSP 워크숍에서 출판 ) 및 어댑터의 소프트 혼합물을 통한 오디오 스펙트럼 변압기의 효율적인 미세 조정 [2] ( interspeech 2024에서 공개 )를 통한 오디오 스펙트럼 변압기의 효율적인 미세 조정.
두 논문 모두 다양한 오디오/음성 다운 스트림 작업에 대한 AST (Audio Spectrogram Transformer) 모델에 매개 변수 효율적인 전송 학습 ( PETL ) 방법을 적용하는 방법을 연구합니다. [1]은 다양한 시나리오 및 제약 하에서 PETL 방법 (프롬프트 조정, LORA, 어댑터)에 대한 포괄적 인 개요를 제공하지만 [2]는 PETL의 전문가 아키텍처의 혼합물을 효율적으로 활용하는 방법을 탐구합니다.
아래에는 결과를 복제하기위한 모든 세부 사항이 포함되어 있습니다. 중요 : 실험에 사용한 환경과 호환되는 환경을 설정하십시오. 요구 사항 .txt 파일을 사용하여 동일한 패키지 버전을 설치하십시오.
Umberto Cappellazzo, Daniele Falavigna, Alessio Brutti, Mirco Ravanelli
이 논문은 2024 IEEE MLSP 워크숍에서 받아 들여졌습니다 . 이 논문은 다양한 오디오 및 음성 처리 작업에 오디오 스펙트로 그램 변압기 모델에 적용되는 다양한 PETL 방법의 사용을 탐구합니다. 또한, 우리는 컨 포머 모델의 컨볼 루션 모듈을 이용하는 새로운 어댑터 설계를 제안하여 표준 PETL 접근 방식보다 우수한 성능을 유발하고 매개 변수의 0.29% 만 업데이트하여 완전한 미세 조정으로 성능 패리티를 능가하거나 달성합니다.
![]() |
|---|
| AST 모델과 PETL 방법의 그림. |
실험을 실행하기위한 요청 된 라이브러리는 요구 사항.txt 파일에 나열되어 있습니다. 아래 명령을 실행하여 설치하십시오.
pip install -r requirements.txt
실험을 추적하기 위해 무게와 편견 (https://wandb.ai/site)을 사용합니다 (따뜻하게 추천합니다). 그럼에도 불구하고 명령 줄에서 --use_wandb = False 설정하여 비활성화 할 수 있습니다.
사용자가 이미 데이터 세트를 다운로드했을 것으로 기대합니다.
실험을 실행하려면 필요한 모든 것은 python3 main.py 명령을 사용한 다음 명령 줄에 전달 된 인수를 사용하여 설정을 지정하는 것입니다. 필수 매개 변수는 다음과 같습니다.
--data_path : 데이터 세트가 포함 된 폴더로가는 경로.--dataset_name : 선택한 데이터 세트. 현재 5 개의 데이터 세트가 있습니다 : ['FSC', 'ESC-50', 'urbansound8k', 'GSC', 'IEMOCAP'] .--method : 선택된 PETL 방법. 지원되는 PETL 방법의 목록은 ['linear', 'full-FT', 'adapter', 'prompt-tuning', 'prefix-tuning', 'LoRA', 'BitFit', 'Dense-MoA', 'Soft-MoA'] . 조밀 한/소프트 MOA 실험을 진행하려면 다른 논문을 확인하십시오.--is_AST : true로 설정되면 AST 미리 훈련 된 모델을 사용합니다. False로 설정하면 WAV2VEC 2.0 사전 훈련 된 모델을 사용합니다.main.py 스크립트를 살펴보십시오.hparams/train.yaml 에서 검사 및 수정할 수 있습니다. 현재 값은 실험에 사용한 값에 해당하며 최상의 결과로 이어졌습니다.각 PETL 방법에는 일부 특정 매개 변수가 제공됩니다. 아래에 간단한 설명을 제공합니다. 여기서 우리는 간결성에 대한 참조를 포함하지 않으며 논문을 참조하십시오.
reduction_rate_adapter > 어댑터 모듈의 병목 현상 희미한 규칙 (예 : d가 숨겨진 치수이고 RR이 감소율 인 경우 어댑터의 희미한 것은 d /rr); seq_or_par > 어댑터를 평행하게 또는 순차적으로 삽입할지 여부; adapter_type > 파이퍼 또는 houlsby 구성; adapter_block > 병목 현상 또는 순응 자 (제안 된 어댑터 설계); apply_residual > 잔여 연결을 적용할지 여부. 용지 에보 고 된 바와 같이, 병렬 어댑터는 잔차와 함께 분배되어야하는 반면, 순차적 어댑터는 잔차로부터 혜택을받습니다.prompt_len_prompt > 사용할 프롬프트 수; is_deep_prompt > DPT ( Deep Promptuning )를 활성화하려면 True 로 설정됩니다. drop_prompt > 프롬프트의 드롭 아웃 속도. 우리의 실험에서 우리는 그것을 0. 으로 설정했습니다.reduction_rate_lora > reduction_rate_adapter 참조하십시오. alpha_lora > 원본 용지에 정의 된 lora_alpha. 이것은 스케일링에 사용됩니다 (예 : s = alpha_lora/rr).예를 들어, 구성 순응 자, 병렬, 파이퍼, RR = 64로 어댑터를 테스트하고 AST 모델의 FSC 데이터 세트에서 테스트하려고한다고 가정하십시오. 그런 다음 실행하라는 명령은 다음과 같습니다.
python3 main.py --data_path ' /path_to_your_dataset ' --is_AST True --dataset_name ' FSC ' --method ' adapter ' --seq_or_par ' parallel ' --reduction_rate_adapter 64 --adapter_type ' Pfeiffer ' --apply_residual False --adapter_block ' conformer ' 소수의 샷 학습 실험을 실행하려면 플래그 --is_few_shot_exp True 로 설정하고 --few_shot_samples 당 샘플의 #을 지정하면됩니다.
질문에 대해 저에게 연락하십시오.
우리는 캐나다의 디지털 리서치 얼라이언스 (Alliancecan.ca)의 지원을 인정합니다.
@misc{cappellazzo2023parameterefficient,
title={Parameter-Efficient Transfer Learning of Audio Spectrogram Transformers},
author={Umberto Cappellazzo and Daniele Falavigna and Alessio Brutti and Mirco Ravanelli},
year={2023},
eprint={2312.03694},
archivePrefix={arXiv},
primaryClass={eess.AS}
}Umberto Cappellazzo, Daniele Falavigna, Alessio Brutti
이 논문은 Interspeech 2024에서 받아 들여졌다 . 그것은 AST의 효율적인 미세 조정을 위해 전문가 (MOE)의 혼합 사용을 조사합니다. 구체적으로, 우리는 최근의 소프트 MOE 방법을 매개 변수 효율적인 설정에 적용합니다. 여기서 각 전문가는 어댑터 모듈로 표시됩니다. 우리는 그것을 소프트 MOA (어댑터의 소프트 혼합물)라고 부릅니다. Soft-MOA는 계산 비용을 줄이면 밀도가 높은 대응 (조밀 한 MOA)으로 성능 패리티를 달성합니다. 또한 전통적인 단일 어댑터보다 우수한 성능을 보여줍니다.
![]() |
|---|
| a) 각 AST 층에 어댑터 삽입. b) 밀도가 높다. c) 소프트 -MOA. |
조밀하고 부드러운 MOA로 실험을하는 것은 산들 바람입니다. 우리는 종이 [1] 에 사용한 것과 동일한 절차를 따릅니다. --method 매개 변수를 Dense-MoA 또는 Soft-MoA 로 설정하고 일부 임시 매개 변수를 지정하면됩니다.
--reduction_rate_moa : 다른 PETL 방법과 마찬가지로 각 어댑터 전문가의 감소율을 지정해야합니다. 감소율이 높을수록 병목 현상 차원이 작습니다.--adapter_type_moa : 파이퍼 또는 houlsby 구성.--location_moa : MHSA 또는 FFN 블록에 평행 한 소프트/빽빽한 MOA 층을 적용할지 여부. -adapter_type_moa == houlsby, mhsa 및 ffn이 auomically 선택됩니다.--adapter_module_moa : 어댑터 유형. 우리는 현재로서 병목 현상 과 Convpass를 지원합니다.--num_adapters : 각 부드러운/조밀 한 MOA 층에 얼마나 많은 어댑터가 사용됩니까? 우리의 실험 에서이 값은 2에서 15 사이입니다.--num_slots : 소프트 -MOA에 사용되는 슬롯 수. 일반적으로 1 또는 2로 설정됩니다. [ NB : Soft-MOA에서만 사용].--normalize : L2가 원래 소프트 MOE 용지에 제안 된 입력 벡터와 PHI 행렬을 정규화할지 여부 (섹션 2.3, "정규화"참조). 논문에 언급 된 바와 같이, 모델의 숨겨진 크기가 우리의 경우 (예 : 768)과 같이 작아서 정규화 작업은 거의 영향을 미치지 않으므로 정규화를 사용하지 않았다. [ NB : Soft-MOA에서만 사용]예를 들어 FSC 데이터 세트에서 Soft-MOA를 테스트하려고한다고 가정하십시오. 또한, 우리는 MHSA 층에만 소프트 -MOA 층을 포함하도록 선택하고 7 개의 Botteneck 어댑터를 사용합니다. 그런 다음 실행하라는 명령은 다음과 같습니다.
python3 main.py --data_path ' /path_to_your_dataset ' --dataset_name ' FSC ' --method ' Soft-MoA ' --reduction_rate_moa 128 --adapter_type_moa ' Pfeiffer ' --location ' MHSA ' --adapter_module_moa ' bottleneck ' --num_adapters 7 --num_slots 1 --normalize False@misc{cappellazzo2024efficient,
title={Efficient Fine-tuning of Audio Spectrogram Transformers via Soft Mixture of Adapters},
author={Umberto Cappellazzo and Daniele Falavigna and Alessio Brutti},
year={2024},
eprint={2402.00828},
archivePrefix={arXiv},
primaryClass={eess.AS}
}