개혁자의 적응 : 텍스트 음성 연설 작업을위한 효율적인 변압기.
이 프로젝트에는 다음이 포함됩니다.
우리는 트랜스포머 아키텍처를 최신 개혁자 논문에서 제안한 최적화로 대체함으로써보다 효율적인 최첨단 텍스트 음성 연설 모델을 만들고자했습니다. 우리는 그것을 사용 하여이 목적을 위해 특별히 만든 그의 연설의 맞춤형 데이터 세트를 기반으로 도널드 트럼프의 믿을만한 심해를 생성 할 것입니다.
불행히도, 우리는 2 개월에 걸쳐 100 개 이상의 하이퍼 파라미터 조합을 실험 한 후 변압기 TTS 용지의 결과와 일치하는 결과를 얻을 수 없었습니다. 우리는 모델 크기가 여기서 중요한 요소라고 생각하며, TTS를 위해 변압기를 훈련시키는 데 실제로 길고 꾸준한 훈련 프로세스 (RTX 2080TI에 대한 ~ 1 주간의 교육)를 허용하기 위해 너무 적합성을 줄여야합니다.
또한 변압기 TT의 원래 구현에 액세스하면 큰 도움이 될 것입니다.
개혁자는 우리의 기대치와 일치하지는 않았지만, 압착물 구현은 FP16 지원없이 원래의 성능과 일치합니다.
또한 훈련 및 추론을위한 CLI ( 사용 섹션 참조) 및 실험 재생산에 필요한 모든 데이터 ( 개발 섹션 참조)도 포함합니다.
이 프로젝트는 중요한 리팩터 아래에 있으며,이 버전은 이전의 전기와의 양성을 허용하기 위해 여기에 남겨져 있으며 가까운 시일 내에 이동할 것입니다 .
이 프로젝트는 일반적인 파이썬 패키지이며 Python 3.8 이상인 경우 pip 사용하여 설치할 수 있습니다.
최신 릴리스의 설치 명령어를 찾으려면 릴리스 페이지로 이동하십시오.
설치 후 실행하여 사용 가능한 명령을 볼 수 있습니다.
python -m reformer_tts.cli --help모든 명령은 CLI를 사용하여 실행됩니다.
python -m reformer_tts.cli train-vocoder 대부분의 매개 변수 (특히, 모든 훈련 하이퍼 파라미터)는 cli (실행하려는 명령 이전)에 대한 --config 코피그 인수를 통해 지정됩니다.
python -m reformer_tts.cli -c /path/to/your/config.yml train-vocoder 기본값은 reformer_tts.config.Config (및 해당 필드)에서 찾을 수 있습니다.
Conda-Forge 커뮤니티 덕분에 하나의 명령을 사용하여 모든 패키지 ( ffmpeg 와 같은 필요한 바이너리 포함)를 설치할 수 있습니다.
conda env create -f environment.ymlPython>=3.8 인지 확인하십시오. which python
python --versionpip install -r requirements.txt ffmpeg>=3.4,<4.0 설치 (설치 지침)인지 확인하십시오.
교육을 위해 CUDA 및 GPU 드라이버가 설치되어 있는지 확인하십시오 (자세한 내용은 Pytorch 웹 사이트의 지침 참조).
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-credentials.json참고 : 읽기 ACCE 만 필요하면 (복제를 위해) 1 단계를 수행 할 필요가 없습니다.
dvc pull이를 위해 프로젝트 테스트를 실행할 수 있습니다.
python -m pytest --pyargs reformer_tts모든 테스트는 CPU 및 GPU에서 작동해야하며 완료하는 데 최대 1 분이 걸릴 수 있습니다.
--pyargs reformer_tts pytest로 전달하는 것을 잊지 마십시오. 그렇지 않으면 테스트에 대한 데이터 디렉토리를 검색합니다.
Python>=3.8 사용하십시오requirements.txt 에 있어서도 environment.ymlreformer_tts/cli.py , run python reformer_tts/cli.py --help 자세한 참조를위한 help구성은 데이터 클래스 구조로 구성됩니다.
config.py 라고하는 자체 구성 파일이 있습니다. 여기서 매개 변수와 기본값 이 정의됩니다. 예를 들어, 데이터 세트 구성 매개 변수는 reformer_tts.dataset.config 에 지정됩니다.reformer_tts.config.Config 클래스에는 모든 하위 모듈의 구성 설정이 포함되어 있습니다이런 식으로 기본값은 사용되는 장소에 가깝게 설정되며 원하는 곳에 구성 값이 재정의 할 수 있습니다.
런타임 구성을 변경합니다
python reformer_tts/cli.py save-config -o config/custom.yml 사용하여 기본값으로 구성을 자동으로 생성하거나 config/ directory에서 기존 구성 파일 중 하나를 수동으로 복사하십시오.-c 옵션을 사용하여 CLI 스크립트를 실행할 때 구성을 지정하십시오. 즉 : python reformer_tts/cli.py -c config/custom.yml [COMMAND]새 모듈에 대한 구성을 추가합니다
config.py 만듭니다dataset 및 squeezewave 모듈 모두에 대해 동일한 위치에 한 번만 스펙트로 그램 채널 수를 지정했습니다).reformer_tts.config 메인 구성 클래스에서 데이터 클래스에 대한 필드 추가 데이터 처리 파이프 라인을 정의하기 위해 DVC를 사용합니다. 자세한 내용은 Google Cloud Storage에서 설정되어 있으며 dvc config list 실행됩니다.
실행 준비가 된 노드 :
/scidatalg 에서 데이터 세트 경로가 구성되어 있는지 확인하십시오달리기 전에 :
훈련 실행 :
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash/scidatalg/reformer-tts/reformer-tts/ 리포지토리가 당겨지고 적절한 지점에서 확인jobs/train_entropy.sbatch 채우기 노드 이름 및 교육 명령sbatch your/job/script/location.sbatch 실행하십시오 Pro Tip watch -n 1 squeue -u your_username 작업이 이미 실행 중인지 확인하려면 Pro Tip2 를 확인하십시오 tail -f file.log 또는 less --follow-name +F file.log 실행하여 로그에 대한 업데이트를 볼 수 있습니다.
DVC에서 가져 오려면 jobs/entropy_dvc_pull.sbatch 사용하십시오.
/scidatasm directory가 동기화되지 않기 때문에 훈련을 받으려면 각 노드에서 각 노드에 대한 교육을 구체적으로 설정해야합니다. 새 노드에 대한 ENV를 설정하려면이 인scess를 따르십시오.
참고 : /scidatalg가있는 노드만이 스크립트에서 지원됩니다. 이러한 노드는 Asusgpu4, Asusgpu3, Asusgpu2, Asusgpu1, Arnold, Sylvester입니다
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash${HOME}/gcp-cred.json 에 복사하십시오 (좋아하는 편집기 사용)scripts/setup_entropy_node.sh 의 내용을 홈의 새 파일에 복사하십시오 (편집기를 사용하여 다시)