├── .gitignore ├── License.txt ├── OFA ├── criterions │ ├── __init__.py │ ├── clip_scst_loss.py │ ├── label_smoothed_cross_entropy.py │ ├── label_smoothed_encouraging_loss.py │ └── scst_loss.py ├── data │ ├── __init__.py │ ├── cv_data │ │ └── image_classify_dataset.py │ ├── data_utils.py │ ├── file_dataset.py │ ├── mm_data │ │ ├── __init__.py │ │ ├── caption_dataset.py │ │ ├── image_gen_dataset.py │ │ ├── refcoco_dataset.py │ │ ├── snli_ve_dataset.py │ │ └── vqa_gen_dataset.py │ ├── nlg_data │ │ └── summary_dataset.py │ ├── nlu_data │ │ ├── cola_dataset.py │ │ ├── mnli_dataset.py │ │ ├── mrpc_dataset.py │ │ ├── qnli_dataset.py │ │ ├── qqp_dataset.py │ │ ├── rte_dataset.py │ │ └── sst2_dataset.py │ ├── ofa_dataset.py │ └── pretrain_data │ │ └── unify_dataset.py ├── distributed │ ├── __init__.py │ ├── _sharded_tensor │ │ ├── __init__.py │ │ ├── api.py │ │ └── ops │ │ │ ├── __init__.py │ │ │ └── linear.py │ ├── _sharding_spec │ │ ├── __init__.py │ │ ├── _internals.py │ │ └── api.py │ ├── algorithms │ │ ├── __init__.py │ │ ├── ddp_comm_hooks │ │ │ ├── __init__.py │ │ │ ├── ddp_zero_hook.py │ │ │ ├── debugging_hooks.py │ │ │ ├── default_hooks.py │ │ │ ├── post_localSGD_hook.py │ │ │ ├── powerSGD_hook.py │ │ │ └── quantization_hooks.py │ │ ├── join.py │ │ └── model_averaging │ │ │ ├── __init__.py │ │ │ ├── averagers.py │ │ │ └── utils.py │ ├── argparse_util.py │ ├── autograd │ │ └── __init__.py │ ├── constants.py │ ├── distributed_c10d.py │ ├── elastic │ │ ├── __init__.py │ │ ├── agent │ │ │ ├── __init__.py │ │ │ └── server │ │ │ │ ├── __init__.py │ │ │ │ ├── api.py │ │ │ │ └── local_elastic_agent.py │ │ ├── events │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── handlers.py │ │ ├── metrics │ │ │ ├── __init__.py │ │ │ └── api.py │ │ ├── multiprocessing │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ ├── errors │ │ │ │ ├── __init__.py │ │ │ │ ├── error_handler.py │ │ │ │ └── handlers.py │ │ │ ├── redirects.py │ │ │ └── tail_log.py │ │ ├── rendezvous │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ ├── c10d_rendezvous_backend.py │ │ │ ├── dynamic_rendezvous.py │ │ │ ├── etcd_rendezvous.py │ │ │ ├── etcd_rendezvous_backend.py │ │ │ ├── etcd_server.py │ │ │ ├── etcd_store.py │ │ │ ├── registry.py │ │ │ ├── static_tcp_rendezvous.py │ │ │ └── utils.py │ │ ├── timer │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ └── local_timer.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ ├── data │ │ │ ├── __init__.py │ │ │ ├── cycling_iterator.py │ │ │ └── elastic_distributed_sampler.py │ │ │ ├── distributed.py │ │ │ ├── log_level.py │ │ │ ├── logging.py │ │ │ └── store.py │ ├── launch.py │ ├── launcher │ │ ├── __init__.py │ │ └── api.py │ ├── nn │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ └── remote_module.py │ │ ├── functional.py │ │ └── jit │ │ │ ├── __init__.py │ │ │ ├── instantiator.py │ │ │ └── templates │ │ │ ├── __init__.py │ │ │ └── remote_module_template.py │ ├── optim │ │ ├── __init__.py │ │ ├── functional_adadelta.py │ │ ├── functional_adagrad.py │ │ ├── functional_adam.py │ │ ├── functional_adamax.py │ │ ├── functional_adamw.py │ │ ├── functional_rmsprop.py │ │ ├── functional_rprop.py │ │ ├── functional_sgd.py │ │ ├── optimizer.py │ │ ├── post_localSGD_optimizer.py │ │ └── zero_redundancy_optimizer.py │ ├── pipeline │ │ ├── __init__.py │ │ └── sync │ │ │ ├── __init__.py │ │ │ ├── _balance │ │ │ ├── __init__.py │ │ │ ├── blockpartition.py │ │ │ └── profile.py │ │ │ ├── batchnorm.py │ │ │ ├── checkpoint.py │ │ │ ├── copy.py │ │ │ ├── dependency.py │ │ │ ├── microbatch.py │ │ │ ├── phony.py │ │ │ ├── pipe.py │ │ │ ├── pipeline.py │ │ │ ├── skip │ │ │ ├── __init__.py │ │ │ ├── layout.py │ │ │ ├── namespace.py │ │ │ ├── portal.py │ │ │ ├── skippable.py │ │ │ └── tracker.py │ │ │ ├── stream.py │ │ │ ├── utils.py │ │ │ └── worker.py │ ├── remote_device.py │ ├── rendezvous.py │ ├── rpc │ │ ├── __init__.py │ │ ├── _testing │ │ │ ├── __init__.py │ │ │ └── faulty_agent_backend_registry.py │ │ ├── api.py │ │ ├── backend_registry.py │ │ ├── constants.py │ │ ├── functions.py │ │ ├── internal.py │ │ ├── options.py │ │ ├── rref_proxy.py │ │ └── server_process_global_profiler.py │ └── run.py ├── evaluate.py ├── fairseq │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ ├── ISSUE_TEMPLATE │ │ │ ├── bug_report.md │ │ │ ├── documentation.md │ │ │ ├── feature_request.md │ │ │ └── how-to-question.md │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ ├── stale.yml │ │ └── workflows │ │ │ ├── build.yml │ │ │ └── build_wheels.yml │ ├── .gitignore │ ├── .gitmodules │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── docs │ │ ├── Makefile │ │ ├── _static │ │ │ └── theme_overrides.css │ │ ├── command_line_tools.rst │ │ ├── conf.py │ │ ├── criterions.rst │ │ ├── data.rst │ │ ├── docutils.conf │ │ ├── fairseq.gif │ │ ├── fairseq_logo.png │ │ ├── getting_started.rst │ │ ├── hydra_integration.md │ │ ├── index.rst │ │ ├── lr_scheduler.rst │ │ ├── make.bat │ │ ├── models.rst │ │ ├── modules.rst │ │ ├── optim.rst │ │ ├── overview.rst │ │ ├── requirements.txt │ │ ├── tasks.rst │ │ ├── tutorial_classifying_names.rst │ │ └── tutorial_simple_lstm.rst │ ├── examples │ │ ├── .gitignore │ │ ├── __init__.py │ │ ├── adaptive_span │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── adagrad_with_grad_clip.py │ │ │ ├── adaptive_span_attention.py │ │ │ ├── adaptive_span_loss.py │ │ │ ├── adaptive_span_model.py │ │ │ ├── adaptive_span_model_wrapper.py │ │ │ └── truncated_bptt_lm_task.py │ │ ├── backtranslation │ │ │ ├── README.md │ │ │ ├── deduplicate_lines.py │ │ │ ├── extract_bt_data.py │ │ │ ├── prepare-de-monolingual.sh │ │ │ ├── prepare-wmt18en2de.sh │ │ │ ├── sacrebleu.sh │ │ │ └── tokenized_bleu.sh │ │ ├── bart │ │ │ ├── README.glue.md │ │ │ ├── README.md │ │ │ ├── README.summarization.md │ │ │ └── summarize.py │ │ ├── byte_level_bpe │ │ │ ├── README.md │ │ │ ├── get_bitext.py │ │ │ ├── get_data.sh │ │ │ └── gru_transformer.py │ │ ├── camembert │ │ │ └── README.md │ │ ├── constrained_decoding │ │ │ ├── README.md │ │ │ ├── normalize.py │ │ │ └── tok.py │ │ ├── conv_seq2seq │ │ │ └── README.md │ │ ├── criss │ │ │ ├── README.md │ │ │ ├── download_and_preprocess_flores_test.sh │ │ │ ├── download_and_preprocess_tatoeba.sh │ │ │ ├── mining │ │ │ │ ├── mine.py │ │ │ │ └── mine_example.sh │ │ │ ├── save_encoder.py │ │ │ ├── sentence_retrieval │ │ │ │ ├── encoder_analysis.py │ │ │ │ └── sentence_retrieval_tatoeba.sh │ │ │ └── unsupervised_mt │ │ │ │ └── eval.sh │ │ ├── cross_lingual_language_model │ │ │ └── README.md │ │ ├── discriminative_reranking_nmt │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── config │ │ │ │ └── deen.yaml │ │ │ ├── criterions │ │ │ │ ├── __init__.py │ │ │ │ └── discriminative_reranking_criterion.py │ │ │ ├── drnmt_rerank.py │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ └── discriminative_reranking_model.py │ │ │ ├── scripts │ │ │ │ └── prep_data.py │ │ │ └── tasks │ │ │ │ ├── __init__.py │ │ │ │ └── discriminative_reranking_task.py │ │ ├── fast_noisy_channel │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── noisy_channel_beam_search.py │ │ │ ├── noisy_channel_sequence_generator.py │ │ │ └── noisy_channel_translation.py │ │ ├── flores101 │ │ │ ├── README.md │ │ │ └── flores_logo.png │ │ ├── fully_sharded_data_parallel │ │ │ └── README.md │ │ ├── gottbert │ │ │ └── README.md │ │ ├── hubert │ │ │ ├── README.md │ │ │ ├── config │ │ │ │ ├── decode │ │ │ │ │ ├── ax_sweep │ │ │ │ │ │ ├── ngram.yaml │ │ │ │ │ │ └── transformer.yaml │ │ │ │ │ ├── infer_fsqlm.yaml │ │ │ │ │ ├── infer_kenlm.yaml │ │ │ │ │ ├── infer_viterbi.yaml │ │ │ │ │ └── run │ │ │ │ │ │ ├── submitit_slurm.yaml │ │ │ │ │ │ └── submitit_slurm_8gpu.yaml │ │ │ │ ├── finetune │ │ │ │ │ ├── base_10h.yaml │ │ │ │ │ ├── ckpt │ │ │ │ │ │ └── it1.yaml │ │ │ │ │ ├── lm │ │ │ │ │ │ └── ls_4gram.yaml │ │ │ │ │ └── run │ │ │ │ │ │ └── submitit_reg.yaml │ │ │ │ └── pretrain │ │ │ │ │ ├── data │ │ │ │ │ ├── iter1.yaml │ │ │ │ │ └── iter2.yaml │ │ │ │ │ ├── hubert_base_librispeech.yaml │ │ │ │ │ ├── hubert_large_librivox.yaml │ │ │ │ │ ├── hubert_xlarge_librivox.yaml │ │ │ │ │ └── run │ │ │ │ │ └── submitit_reg.yaml │ │ │ ├── measure_teacher_quality.py │ │ │ ├── simple_kmeans │ │ │ │ ├── README.md │ │ │ │ ├── dump_hubert_feature.py │ │ │ │ ├── dump_hubert_feature_s2t.py │ │ │ │ ├── dump_km_label.py │ │ │ │ ├── dump_mfcc_feature.py │ │ │ │ ├── dump_w2v2_feature.py │ │ │ │ ├── feature_utils.py │ │ │ │ └── learn_kmeans.py │ │ │ └── update_ckpt.py │ │ ├── joint_alignment_translation │ │ │ ├── README.md │ │ │ └── prepare-wmt18en2de_no_norm_no_escape_no_agressive.sh │ │ ├── language_model │ │ │ ├── README.adaptive_inputs.md │ │ │ ├── README.conv.md │ │ │ ├── README.md │ │ │ └── prepare-wikitext-103.sh │ │ ├── laser │ │ │ ├── README.md │ │ │ └── laser_src │ │ │ │ ├── __init__.py │ │ │ │ ├── laser_lstm.py │ │ │ │ ├── laser_task.py │ │ │ │ ├── laser_transformer.py │ │ │ │ └── multitask_data_utils.py │ │ ├── latent_depth │ │ │ ├── README.md │ │ │ └── latent_depth_src │ │ │ │ ├── __init__.py │ │ │ │ ├── loss │ │ │ │ ├── __init__.py │ │ │ │ └── latent_depth.py │ │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── latent_multilingual_transformer.py │ │ │ │ └── latent_transformer.py │ │ │ │ ├── modules │ │ │ │ ├── __init__.py │ │ │ │ └── latent_layers.py │ │ │ │ └── multilingual_translation_latent_depth.py │ │ ├── layerdrop │ │ │ └── README.md │ │ ├── linformer │ │ │ ├── README.md │ │ │ └── linformer_src │ │ │ │ ├── __init__.py │ │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ └── linformer_roberta.py │ │ │ │ └── modules │ │ │ │ ├── __init__.py │ │ │ │ ├── linformer_sentence_encoder.py │ │ │ │ ├── linformer_sentence_encoder_layer.py │ │ │ │ └── multihead_linear_attention.py │ │ ├── m2m_100 │ │ │ ├── README.md │ │ │ ├── install_dependecies.sh │ │ │ ├── process_data │ │ │ │ ├── clean_histogram.py │ │ │ │ ├── dedup_data.py │ │ │ │ └── remove_too_much_punc.py │ │ │ ├── tok.sh │ │ │ └── tokenizers │ │ │ │ ├── README.md │ │ │ │ ├── seg_ja.sh │ │ │ │ ├── seg_ko.sh │ │ │ │ ├── thirdparty │ │ │ │ └── .gitignore │ │ │ │ ├── tokenize_indic.py │ │ │ │ ├── tokenize_thai.py │ │ │ │ ├── tokenize_zh.py │ │ │ │ └── tokenizer_ar.sh │ │ ├── mbart │ │ │ └── README.md │ │ ├── megatron_11b │ │ │ ├── README.md │ │ │ └── detok.py │ │ ├── multilingual │ │ │ ├── ML50_langs.txt │ │ │ ├── README.md │ │ │ ├── data_scripts │ │ │ │ ├── README.md │ │ │ │ ├── binarize.py │ │ │ │ ├── check_iswlt_test_data.py │ │ │ │ ├── check_self_overlaps.py │ │ │ │ ├── check_valid_test_overlaps.py │ │ │ │ ├── dedup_all.py │ │ │ │ ├── download_ML50_v1.sh │ │ │ │ ├── download_af_xh.sh │ │ │ │ ├── download_flores_data.sh │ │ │ │ ├── download_iitb.sh │ │ │ │ ├── download_iwslt_and_extract.sh │ │ │ │ ├── download_lotus.sh │ │ │ │ ├── download_ted_and_extract.py │ │ │ │ ├── download_wat19_my.sh │ │ │ │ ├── download_wmt19_and_before.py │ │ │ │ ├── download_wmt20.sh │ │ │ │ ├── preprocess_ML50_v1.sh │ │ │ │ ├── remove_valid_test_in_train.py │ │ │ │ ├── requirement.txt │ │ │ │ └── utils │ │ │ │ │ ├── dedup.py │ │ │ │ │ ├── fasttext_multi_filter.py │ │ │ │ │ └── strip_sgm.sh │ │ │ ├── finetune_multilingual_model.sh │ │ │ ├── multilingual_fairseq_gen.sh │ │ │ └── train_multilingual_model.sh │ │ ├── noisychannel │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── rerank.py │ │ │ ├── rerank_generate.py │ │ │ ├── rerank_options.py │ │ │ ├── rerank_score_bw.py │ │ │ ├── rerank_score_lm.py │ │ │ ├── rerank_tune.py │ │ │ └── rerank_utils.py │ │ ├── nonautoregressive_translation │ │ │ ├── README.md │ │ │ └── scripts.md │ │ ├── paraphraser │ │ │ ├── README.md │ │ │ └── paraphrase.py │ │ ├── pay_less_attention_paper │ │ │ └── README.md │ │ ├── pointer_generator │ │ │ ├── README.md │ │ │ ├── README.xsum.md │ │ │ ├── pointer_generator_src │ │ │ │ ├── __init__.py │ │ │ │ └── transformer_pg.py │ │ │ ├── postprocess.py │ │ │ └── preprocess.py │ │ ├── quant_noise │ │ │ ├── README.md │ │ │ └── transformer_quantization_config.yaml │ │ ├── roberta │ │ │ ├── README.custom_classification.md │ │ │ ├── README.glue.md │ │ │ ├── README.md │ │ │ ├── README.pretraining.md │ │ │ ├── README.race.md │ │ │ ├── commonsense_qa │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── commonsense_qa_task.py │ │ │ │ └── download_cqa_data.sh │ │ │ ├── config │ │ │ │ ├── finetuning │ │ │ │ │ ├── cola.yaml │ │ │ │ │ ├── mnli.yaml │ │ │ │ │ ├── mrpc.yaml │ │ │ │ │ ├── qnli.yaml │ │ │ │ │ ├── qqp.yaml │ │ │ │ │ ├── rte.yaml │ │ │ │ │ ├── sst_2.yaml │ │ │ │ │ └── sts_b.yaml │ │ │ │ └── pretraining │ │ │ │ │ └── base.yaml │ │ │ ├── multiprocessing_bpe_encoder.py │ │ │ ├── preprocess_GLUE_tasks.sh │ │ │ ├── preprocess_RACE.py │ │ │ ├── preprocess_RACE.sh │ │ │ └── wsc │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── wsc_criterion.py │ │ │ │ ├── wsc_task.py │ │ │ │ └── wsc_utils.py │ │ ├── rxf │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ └── rxf_src │ │ │ │ ├── __init__.py │ │ │ │ ├── label_smoothed_cross_entropy_r3f.py │ │ │ │ └── sentence_prediction_r3f.py │ │ ├── scaling_nmt │ │ │ └── README.md │ │ ├── shuffled_word_order │ │ │ ├── README.finetuning.md │ │ │ └── README.md │ │ ├── simultaneous_translation │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── docs │ │ │ │ ├── ende-mma.md │ │ │ │ └── enja-waitk.md │ │ │ ├── eval │ │ │ │ └── agents │ │ │ │ │ └── simul_t2t_enja.py │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── convtransformer_simul_trans.py │ │ │ │ └── transformer_monotonic_attention.py │ │ │ ├── modules │ │ │ │ ├── __init__.py │ │ │ │ ├── fixed_pre_decision.py │ │ │ │ ├── monotonic_multihead_attention.py │ │ │ │ └── monotonic_transformer_layer.py │ │ │ ├── tests │ │ │ │ └── test_text_models.py │ │ │ └── utils │ │ │ │ ├── __init__.py │ │ │ │ ├── functions.py │ │ │ │ ├── monotonic_attention.py │ │ │ │ └── p_choose_strategy.py │ │ ├── speech_recognition │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── criterions │ │ │ │ ├── ASG_loss.py │ │ │ │ ├── __init__.py │ │ │ │ └── cross_entropy_acc.py │ │ │ ├── data │ │ │ │ ├── __init__.py │ │ │ │ ├── asr_dataset.py │ │ │ │ ├── collaters.py │ │ │ │ ├── data_utils.py │ │ │ │ └── replabels.py │ │ │ ├── datasets │ │ │ │ ├── asr_prep_json.py │ │ │ │ └── prepare-librispeech.sh │ │ │ ├── infer.py │ │ │ ├── kaldi │ │ │ │ ├── __init__.py │ │ │ │ ├── add-self-loop-simple.cc │ │ │ │ ├── config │ │ │ │ │ └── kaldi_initializer.yaml │ │ │ │ ├── kaldi_decoder.py │ │ │ │ └── kaldi_initializer.py │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── vggtransformer.py │ │ │ │ └── w2l_conv_glu_enc.py │ │ │ ├── new │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── conf │ │ │ │ │ ├── hydra │ │ │ │ │ │ └── sweeper │ │ │ │ │ │ │ └── ax.yaml │ │ │ │ │ └── infer.yaml │ │ │ │ ├── decoders │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base_decoder.py │ │ │ │ │ ├── decoder.py │ │ │ │ │ ├── decoder_config.py │ │ │ │ │ ├── flashlight_decoder.py │ │ │ │ │ └── viterbi_decoder.py │ │ │ │ └── infer.py │ │ │ ├── tasks │ │ │ │ ├── __init__.py │ │ │ │ └── speech_recognition.py │ │ │ ├── utils │ │ │ │ └── wer_utils.py │ │ │ └── w2l_decoder.py │ │ ├── speech_synthesis │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── data_utils.py │ │ │ ├── docs │ │ │ │ ├── common_voice_example.md │ │ │ │ ├── ljspeech_example.md │ │ │ │ └── vctk_example.md │ │ │ ├── evaluation │ │ │ │ ├── __init__.py │ │ │ │ ├── eval_asr.py │ │ │ │ ├── eval_f0.py │ │ │ │ ├── eval_sp.py │ │ │ │ └── get_eval_manifest.py │ │ │ ├── generate_waveform.py │ │ │ ├── preprocessing │ │ │ │ ├── __init__.py │ │ │ │ ├── denoise_and_vad_audio.py │ │ │ │ ├── denoiser │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── demucs.py │ │ │ │ │ ├── pretrained.py │ │ │ │ │ ├── resample.py │ │ │ │ │ └── utils.py │ │ │ │ ├── get_common_voice_audio_manifest.py │ │ │ │ ├── get_feature_manifest.py │ │ │ │ ├── get_ljspeech_audio_manifest.py │ │ │ │ ├── get_speaker_embedding.py │ │ │ │ ├── get_vctk_audio_manifest.py │ │ │ │ ├── speaker_embedder │ │ │ │ │ └── __init__.py │ │ │ │ └── vad │ │ │ │ │ └── __init__.py │ │ │ └── utils.py │ │ ├── speech_text_joint_to_text │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ │ └── mustc_noise.list │ │ │ ├── criterions │ │ │ │ ├── __init__.py │ │ │ │ └── text_guide_cross_entropy_acc.py │ │ │ ├── docs │ │ │ │ ├── ende-mustc.md │ │ │ │ └── iwslt2021.md │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── s2t_dualinputtransformer.py │ │ │ │ └── s2t_dualinputxmtransformer.py │ │ │ ├── scripts │ │ │ │ └── g2p_encode.py │ │ │ └── tasks │ │ │ │ ├── __init__.py │ │ │ │ └── speech_text_joint.py │ │ ├── speech_to_text │ │ │ ├── README.md │ │ │ ├── data_utils.py │ │ │ ├── docs │ │ │ │ ├── covost_example.md │ │ │ │ ├── librispeech_example.md │ │ │ │ ├── mtedx_example.md │ │ │ │ ├── mustc_example.md │ │ │ │ └── simulst_mustc_example.md │ │ │ ├── prep_covost_data.py │ │ │ ├── prep_librispeech_data.py │ │ │ ├── prep_mtedx_data.py │ │ │ ├── prep_mustc_data.py │ │ │ ├── seg_mustc_data.py │ │ │ └── simultaneous_translation │ │ │ │ └── agents │ │ │ │ └── fairseq_simul_st_agent.py │ │ ├── stories │ │ │ └── README.md │ │ ├── textless_nlp │ │ │ └── gslm │ │ │ │ ├── README.md │ │ │ │ ├── metrics │ │ │ │ ├── README.md │ │ │ │ ├── abx_metrics │ │ │ │ │ ├── README.md │ │ │ │ │ └── dump_abx_feats.py │ │ │ │ └── asr_metrics │ │ │ │ │ ├── README.md │ │ │ │ │ ├── continuation_eval.py │ │ │ │ │ ├── misc │ │ │ │ │ ├── bleu_utils.py │ │ │ │ │ ├── cut_as.py │ │ │ │ │ └── dict.ltr.txt │ │ │ │ │ ├── ppx.py │ │ │ │ │ └── self_auto_bleu.py │ │ │ │ ├── speech2unit │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── clustering │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── cluster_kmeans.py │ │ │ │ │ ├── dump_feats.py │ │ │ │ │ ├── quantize_with_kmeans.py │ │ │ │ │ └── utils.py │ │ │ │ └── pretrained │ │ │ │ │ ├── cpc_feature_reader.py │ │ │ │ │ ├── hubert_feature_reader.py │ │ │ │ │ ├── logmel_feature_reader.py │ │ │ │ │ ├── utils.py │ │ │ │ │ └── w2v2_feature_reader.py │ │ │ │ ├── tools │ │ │ │ ├── README.md │ │ │ │ └── resynthesize_speech.py │ │ │ │ ├── ulm │ │ │ │ ├── README.md │ │ │ │ └── sample.py │ │ │ │ └── unit2speech │ │ │ │ ├── README.md │ │ │ │ ├── convert_to_16k.py │ │ │ │ ├── glow.py │ │ │ │ ├── multiproc.py │ │ │ │ ├── synthesize_audio_from_units.py │ │ │ │ ├── tacotron2 │ │ │ │ ├── __init__.py │ │ │ │ ├── audio_processing.py │ │ │ │ ├── cleaners.py │ │ │ │ ├── cmudict.py │ │ │ │ ├── layers.py │ │ │ │ ├── model.py │ │ │ │ ├── numbers.py │ │ │ │ ├── stft.py │ │ │ │ ├── symbols.py │ │ │ │ ├── text.py │ │ │ │ ├── utils.py │ │ │ │ └── waveglow_denoiser.py │ │ │ │ ├── tts_data.py │ │ │ │ └── utils.py │ │ ├── translation │ │ │ ├── README.md │ │ │ ├── prepare-iwslt14.sh │ │ │ ├── prepare-iwslt17-multilingual.sh │ │ │ ├── prepare-wmt14en2de.sh │ │ │ └── prepare-wmt14en2fr.sh │ │ ├── translation_moe │ │ │ ├── README.md │ │ │ ├── score.py │ │ │ └── translation_moe_src │ │ │ │ ├── __init__.py │ │ │ │ ├── logsumexp_moe.py │ │ │ │ ├── mean_pool_gating_network.py │ │ │ │ └── translation_moe.py │ │ ├── truncated_bptt │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── transformer_xl_model.py │ │ │ └── truncated_bptt_lm_task.py │ │ ├── unsupervised_quality_estimation │ │ │ ├── README.md │ │ │ ├── aggregate_scores.py │ │ │ ├── meteor.py │ │ │ └── repeat_lines.py │ │ ├── wav2vec │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── config │ │ │ │ ├── finetuning │ │ │ │ │ ├── base_100h.yaml │ │ │ │ │ ├── base_10h.yaml │ │ │ │ │ ├── base_10m.yaml │ │ │ │ │ ├── base_1h.yaml │ │ │ │ │ ├── base_960h.yaml │ │ │ │ │ ├── vox_100h.yaml │ │ │ │ │ ├── vox_10h.yaml │ │ │ │ │ ├── vox_10m.yaml │ │ │ │ │ ├── vox_1h.yaml │ │ │ │ │ └── vox_960h.yaml │ │ │ │ └── pretraining │ │ │ │ │ ├── wav2vec2_base_librispeech.yaml │ │ │ │ │ ├── wav2vec2_large_librivox.yaml │ │ │ │ │ ├── wav2vec2_large_librivox_tpu-pod.yaml │ │ │ │ │ └── wav2vec2_large_librivox_tpu.yaml │ │ │ ├── libri_labels.py │ │ │ ├── scripts │ │ │ │ └── binarize_manifest.sh │ │ │ ├── unsupervised │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── config │ │ │ │ │ ├── finetuning │ │ │ │ │ │ └── w2v_finetune.yaml │ │ │ │ │ ├── gan │ │ │ │ │ │ └── w2vu.yaml │ │ │ │ │ ├── generate │ │ │ │ │ │ └── viterbi.yaml │ │ │ │ │ ├── timit_matched │ │ │ │ │ │ ├── test.uid │ │ │ │ │ │ ├── train.uid │ │ │ │ │ │ ├── train_text.uid │ │ │ │ │ │ └── valid.uid │ │ │ │ │ └── timit_unmatched │ │ │ │ │ │ ├── test.uid │ │ │ │ │ │ ├── train.uid │ │ │ │ │ │ ├── train_text.uid │ │ │ │ │ │ └── valid.uid │ │ │ │ ├── data │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── extracted_features_dataset.py │ │ │ │ │ └── random_input_dataset.py │ │ │ │ ├── kaldi_self_train │ │ │ │ │ ├── README.md │ │ │ │ │ └── st │ │ │ │ │ │ ├── cmd.sh │ │ │ │ │ │ ├── decode_phone.sh │ │ │ │ │ │ ├── decode_word_step1.sh │ │ │ │ │ │ ├── decode_word_step2.sh │ │ │ │ │ │ ├── local │ │ │ │ │ │ ├── copy_aligned_text.py │ │ │ │ │ │ ├── decode.sh │ │ │ │ │ │ ├── prepare_data_from_w2v.py │ │ │ │ │ │ ├── prepare_lang.sh │ │ │ │ │ │ ├── prepare_lang_word.sh │ │ │ │ │ │ ├── prepare_lm.sh │ │ │ │ │ │ ├── score.sh │ │ │ │ │ │ ├── show_wer.sh │ │ │ │ │ │ ├── train_subset_lgbeam.sh │ │ │ │ │ │ ├── unsup_select.py │ │ │ │ │ │ ├── unsup_select_decode.sh │ │ │ │ │ │ └── unsup_select_decode_word.sh │ │ │ │ │ │ ├── path.sh │ │ │ │ │ │ ├── steps │ │ │ │ │ │ ├── steps_gan │ │ │ │ │ │ ├── train_deltas.sh │ │ │ │ │ │ ├── train_lda_mllt.sh │ │ │ │ │ │ └── train_sat.sh │ │ │ │ │ │ ├── train.sh │ │ │ │ │ │ └── utils │ │ │ │ ├── models │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── wav2vec_u.py │ │ │ │ ├── scripts │ │ │ │ │ ├── apply_pca.py │ │ │ │ │ ├── copy_labels.py │ │ │ │ │ ├── filter_lexicon.py │ │ │ │ │ ├── filter_tsv.py │ │ │ │ │ ├── g2p_wrd_to_phn.py │ │ │ │ │ ├── ltr_to_wrd.py │ │ │ │ │ ├── mean_pool.py │ │ │ │ │ ├── merge_clusters.py │ │ │ │ │ ├── normalize_and_filter_text.py │ │ │ │ │ ├── normalize_text.py │ │ │ │ │ ├── pca.py │ │ │ │ │ ├── phonemize_with_sil.py │ │ │ │ │ ├── prepare_audio.sh │ │ │ │ │ ├── prepare_text.sh │ │ │ │ │ ├── prepare_timit.sh │ │ │ │ │ ├── remove_silence.py │ │ │ │ │ ├── vads.py │ │ │ │ │ ├── wav2vec_apply_cluster_faiss.py │ │ │ │ │ ├── wav2vec_cluster_faiss.py │ │ │ │ │ ├── wav2vec_extract_features.py │ │ │ │ │ ├── wer.py │ │ │ │ │ └── wrd_to_ltr.py │ │ │ │ ├── tasks │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── unpaired_audio_text.py │ │ │ │ └── w2vu_generate.py │ │ │ ├── vq-wav2vec_featurize.py │ │ │ ├── wav2vec_featurize.py │ │ │ └── wav2vec_manifest.py │ │ ├── wmt19 │ │ │ └── README.md │ │ ├── wmt20 │ │ │ └── README.md │ │ └── xlmr │ │ │ └── README.md │ ├── fairseq │ │ ├── __init__.py │ │ ├── benchmark │ │ │ ├── __init__.py │ │ │ ├── dummy_dataset.py │ │ │ ├── dummy_lm.py │ │ │ ├── dummy_masked_lm.py │ │ │ ├── dummy_model.py │ │ │ └── dummy_mt.py │ │ ├── binarizer.py │ │ ├── checkpoint_utils.py │ │ ├── clib │ │ │ ├── cuda │ │ │ │ ├── ngram_repeat_block_cuda.cpp │ │ │ │ └── ngram_repeat_block_cuda_kernel.cu │ │ │ ├── libbase │ │ │ │ └── balanced_assignment.cpp │ │ │ ├── libbleu │ │ │ │ ├── libbleu.cpp │ │ │ │ └── module.cpp │ │ │ ├── libnat │ │ │ │ └── edit_dist.cpp │ │ │ └── libnat_cuda │ │ │ │ ├── binding.cpp │ │ │ │ ├── edit_dist.cu │ │ │ │ └── edit_dist.h │ │ ├── config │ │ │ ├── __init__.py │ │ │ ├── config.yaml │ │ │ └── model │ │ │ │ ├── transformer_lm │ │ │ │ ├── transformer_lm_baevski_gbw.yaml │ │ │ │ ├── transformer_lm_baevski_wiki103.yaml │ │ │ │ ├── transformer_lm_big.yaml │ │ │ │ ├── transformer_lm_gbw.yaml │ │ │ │ ├── transformer_lm_gpt.yaml │ │ │ │ ├── transformer_lm_gpt2_big.yaml │ │ │ │ ├── transformer_lm_gpt2_medium.yaml │ │ │ │ ├── transformer_lm_gpt2_small.yaml │ │ │ │ └── transformer_lm_wiki103.yaml │ │ │ │ ├── wav2vec │ │ │ │ └── vq_wav2vec_gumbel.yaml │ │ │ │ └── wav2vec2 │ │ │ │ ├── wav2vec2_base.yaml │ │ │ │ └── wav2vec2_large.yaml │ │ ├── criterions │ │ │ ├── __init__.py │ │ │ ├── adaptive_loss.py │ │ │ ├── composite_loss.py │ │ │ ├── cross_entropy.py │ │ │ ├── ctc.py │ │ │ ├── fairseq_criterion.py │ │ │ ├── fastspeech2_loss.py │ │ │ ├── hubert_criterion.py │ │ │ ├── label_smoothed_cross_entropy.py │ │ │ ├── label_smoothed_cross_entropy_latency_augmented.py │ │ │ ├── label_smoothed_cross_entropy_with_alignment.py │ │ │ ├── legacy_masked_lm.py │ │ │ ├── masked_lm.py │ │ │ ├── model_criterion.py │ │ │ ├── nat_loss.py │ │ │ ├── sentence_prediction.py │ │ │ ├── sentence_ranking.py │ │ │ ├── tacotron2_loss.py │ │ │ └── wav2vec_criterion.py │ │ ├── data │ │ │ ├── __init__.py │ │ │ ├── add_target_dataset.py │ │ │ ├── append_token_dataset.py │ │ │ ├── audio │ │ │ │ ├── __init__.py │ │ │ │ ├── audio_utils.py │ │ │ │ ├── data_cfg.py │ │ │ │ ├── feature_transforms │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── global_cmvn.py │ │ │ │ │ ├── specaugment.py │ │ │ │ │ └── utterance_cmvn.py │ │ │ │ ├── frm_text_to_speech_dataset.py │ │ │ │ ├── hubert_dataset.py │ │ │ │ ├── multi_modality_dataset.py │ │ │ │ ├── raw_audio_dataset.py │ │ │ │ ├── speech_to_text_dataset.py │ │ │ │ ├── speech_to_text_joint_dataset.py │ │ │ │ └── text_to_speech_dataset.py │ │ │ ├── backtranslation_dataset.py │ │ │ ├── base_wrapper_dataset.py │ │ │ ├── bucket_pad_length_dataset.py │ │ │ ├── colorize_dataset.py │ │ │ ├── concat_dataset.py │ │ │ ├── concat_sentences_dataset.py │ │ │ ├── data_utils.py │ │ │ ├── data_utils_fast.pyx │ │ │ ├── denoising_dataset.py │ │ │ ├── dictionary.py │ │ │ ├── encoders │ │ │ │ ├── __init__.py │ │ │ │ ├── byte_bpe.py │ │ │ │ ├── byte_utils.py │ │ │ │ ├── bytes.py │ │ │ │ ├── characters.py │ │ │ │ ├── fastbpe.py │ │ │ │ ├── gpt2_bpe.py │ │ │ │ ├── gpt2_bpe_utils.py │ │ │ │ ├── hf_bert_bpe.py │ │ │ │ ├── hf_byte_bpe.py │ │ │ │ ├── moses_tokenizer.py │ │ │ │ ├── nltk_tokenizer.py │ │ │ │ ├── sentencepiece_bpe.py │ │ │ │ ├── space_tokenizer.py │ │ │ │ ├── subword_nmt_bpe.py │ │ │ │ └── utils.py │ │ │ ├── fairseq_dataset.py │ │ │ ├── fasta_dataset.py │ │ │ ├── huffman │ │ │ │ ├── __init__.py │ │ │ │ ├── huffman_coder.py │ │ │ │ └── huffman_mmap_indexed_dataset.py │ │ │ ├── id_dataset.py │ │ │ ├── indexed_dataset.py │ │ │ ├── iterators.py │ │ │ ├── language_pair_dataset.py │ │ │ ├── legacy │ │ │ │ ├── __init__.py │ │ │ │ ├── block_pair_dataset.py │ │ │ │ ├── masked_lm_dataset.py │ │ │ │ └── masked_lm_dictionary.py │ │ │ ├── list_dataset.py │ │ │ ├── lm_context_window_dataset.py │ │ │ ├── lru_cache_dataset.py │ │ │ ├── mask_tokens_dataset.py │ │ │ ├── monolingual_dataset.py │ │ │ ├── multi_corpus_dataset.py │ │ │ ├── multi_corpus_sampled_dataset.py │ │ │ ├── multilingual │ │ │ │ ├── __init__.py │ │ │ │ ├── multilingual_data_manager.py │ │ │ │ ├── multilingual_utils.py │ │ │ │ ├── sampled_multi_dataset.py │ │ │ │ ├── sampled_multi_epoch_dataset.py │ │ │ │ └── sampling_method.py │ │ │ ├── nested_dictionary_dataset.py │ │ │ ├── noising.py │ │ │ ├── num_samples_dataset.py │ │ │ ├── numel_dataset.py │ │ │ ├── offset_tokens_dataset.py │ │ │ ├── pad_dataset.py │ │ │ ├── plasma_utils.py │ │ │ ├── prepend_dataset.py │ │ │ ├── prepend_token_dataset.py │ │ │ ├── raw_label_dataset.py │ │ │ ├── replace_dataset.py │ │ │ ├── resampling_dataset.py │ │ │ ├── roll_dataset.py │ │ │ ├── round_robin_zip_datasets.py │ │ │ ├── shorten_dataset.py │ │ │ ├── sort_dataset.py │ │ │ ├── strip_token_dataset.py │ │ │ ├── subsample_dataset.py │ │ │ ├── text_compressor.py │ │ │ ├── token_block_dataset.py │ │ │ ├── token_block_utils_fast.pyx │ │ │ ├── transform_eos_dataset.py │ │ │ └── transform_eos_lang_pair_dataset.py │ │ ├── dataclass │ │ │ ├── __init__.py │ │ │ ├── configs.py │ │ │ ├── constants.py │ │ │ ├── initialize.py │ │ │ └── utils.py │ │ ├── distributed │ │ │ ├── __init__.py │ │ │ ├── distributed_timeout_wrapper.py │ │ │ ├── fully_sharded_data_parallel.py │ │ │ ├── legacy_distributed_data_parallel.py │ │ │ ├── module_proxy_wrapper.py │ │ │ ├── tpu_distributed_data_parallel.py │ │ │ └── utils.py │ │ ├── file_chunker_utils.py │ │ ├── file_io.py │ │ ├── file_utils.py │ │ ├── hub_utils.py │ │ ├── incremental_decoding_utils.py │ │ ├── iterative_refinement_generator.py │ │ ├── logging │ │ │ ├── __init__.py │ │ │ ├── meters.py │ │ │ ├── metrics.py │ │ │ └── progress_bar.py │ │ ├── model_parallel │ │ │ ├── __init__.py │ │ │ ├── criterions │ │ │ │ ├── __init__.py │ │ │ │ └── vocab_parallel_cross_entropy.py │ │ │ ├── megatron_trainer.py │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── pipeline_parallel_transformer │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── layers.py │ │ │ │ │ └── model.py │ │ │ │ ├── roberta │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── model.py │ │ │ │ ├── transformer.py │ │ │ │ └── transformer_lm.py │ │ │ └── modules │ │ │ │ ├── __init__.py │ │ │ │ ├── multihead_attention.py │ │ │ │ └── transformer_layer.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── bart │ │ │ │ ├── __init__.py │ │ │ │ ├── hub_interface.py │ │ │ │ └── model.py │ │ │ ├── composite_encoder.py │ │ │ ├── distributed_fairseq_model.py │ │ │ ├── ema │ │ │ │ ├── __init__.py │ │ │ │ └── ema.py │ │ │ ├── fairseq_decoder.py │ │ │ ├── fairseq_encoder.py │ │ │ ├── fairseq_incremental_decoder.py │ │ │ ├── fairseq_model.py │ │ │ ├── fconv.py │ │ │ ├── fconv_lm.py │ │ │ ├── fconv_self_att.py │ │ │ ├── hubert │ │ │ │ ├── __init__.py │ │ │ │ ├── hubert.py │ │ │ │ └── hubert_asr.py │ │ │ ├── huggingface │ │ │ │ ├── __init__.py │ │ │ │ └── hf_gpt2.py │ │ │ ├── lightconv.py │ │ │ ├── lightconv_lm.py │ │ │ ├── lstm.py │ │ │ ├── lstm_lm.py │ │ │ ├── masked_lm.py │ │ │ ├── model_utils.py │ │ │ ├── multilingual_transformer.py │ │ │ ├── nat │ │ │ │ ├── __init__.py │ │ │ │ ├── cmlm_transformer.py │ │ │ │ ├── fairseq_nat_model.py │ │ │ │ ├── insertion_transformer.py │ │ │ │ ├── iterative_nonautoregressive_transformer.py │ │ │ │ ├── levenshtein_transformer.py │ │ │ │ ├── levenshtein_utils.py │ │ │ │ ├── nat_crf_transformer.py │ │ │ │ ├── nonautoregressive_ensembles.py │ │ │ │ └── nonautoregressive_transformer.py │ │ │ ├── roberta │ │ │ │ ├── __init__.py │ │ │ │ ├── alignment_utils.py │ │ │ │ ├── enc_dec.py │ │ │ │ ├── hub_interface.py │ │ │ │ ├── model.py │ │ │ │ ├── model_camembert.py │ │ │ │ ├── model_gottbert.py │ │ │ │ └── model_xlmr.py │ │ │ ├── speech_to_text │ │ │ │ ├── __init__.py │ │ │ │ ├── berard.py │ │ │ │ ├── convtransformer.py │ │ │ │ ├── modules │ │ │ │ │ ├── augmented_memory_attention.py │ │ │ │ │ └── emformer.py │ │ │ │ ├── s2t_transformer.py │ │ │ │ ├── utils.py │ │ │ │ └── xm_transformer.py │ │ │ ├── text_to_speech │ │ │ │ ├── __init__.py │ │ │ │ ├── fastspeech2.py │ │ │ │ ├── hifigan.py │ │ │ │ ├── tacotron2.py │ │ │ │ ├── tts_transformer.py │ │ │ │ └── vocoder.py │ │ │ ├── transformer │ │ │ │ ├── __init__.py │ │ │ │ ├── transformer_base.py │ │ │ │ ├── transformer_config.py │ │ │ │ ├── transformer_decoder.py │ │ │ │ ├── transformer_encoder.py │ │ │ │ └── transformer_legacy.py │ │ │ ├── transformer_align.py │ │ │ ├── transformer_from_pretrained_xlm.py │ │ │ ├── transformer_lm.py │ │ │ └── wav2vec │ │ │ │ ├── __init__.py │ │ │ │ ├── wav2vec.py │ │ │ │ ├── wav2vec2.py │ │ │ │ └── wav2vec2_asr.py │ │ ├── modules │ │ │ ├── __init__.py │ │ │ ├── adaptive_input.py │ │ │ ├── adaptive_softmax.py │ │ │ ├── base_layer.py │ │ │ ├── beamable_mm.py │ │ │ ├── character_token_embedder.py │ │ │ ├── checkpoint_activations.py │ │ │ ├── conv_tbc.py │ │ │ ├── cross_entropy.py │ │ │ ├── cuda_utils.cu │ │ │ ├── downsampled_multihead_attention.py │ │ │ ├── dynamic_convolution.py │ │ │ ├── dynamic_crf_layer.py │ │ │ ├── dynamicconv_layer │ │ │ │ ├── __init__.py │ │ │ │ ├── cuda_function_gen.py │ │ │ │ ├── dynamicconv_cuda.cpp │ │ │ │ ├── dynamicconv_cuda.cuh │ │ │ │ ├── dynamicconv_cuda_kernel.cu │ │ │ │ ├── dynamicconv_layer.py │ │ │ │ ├── dynamiconv_cpu.cpp │ │ │ │ └── setup.py │ │ │ ├── fairseq_dropout.py │ │ │ ├── fp32_group_norm.py │ │ │ ├── gelu.py │ │ │ ├── grad_multiply.py │ │ │ ├── gumbel_vector_quantizer.py │ │ │ ├── kmeans_attention.py │ │ │ ├── kmeans_vector_quantizer.py │ │ │ ├── layer_drop.py │ │ │ ├── layer_norm.py │ │ │ ├── learned_positional_embedding.py │ │ │ ├── lightconv_layer │ │ │ │ ├── __init__.py │ │ │ │ ├── cuda_function_gen.py │ │ │ │ ├── lightconv_cuda.cpp │ │ │ │ ├── lightconv_cuda.cuh │ │ │ │ ├── lightconv_cuda_kernel.cu │ │ │ │ ├── lightconv_layer.py │ │ │ │ └── setup.py │ │ │ ├── lightweight_convolution.py │ │ │ ├── linearized_convolution.py │ │ │ ├── location_attention.py │ │ │ ├── lstm_cell_with_zoneout.py │ │ │ ├── multihead_attention.py │ │ │ ├── positional_embedding.py │ │ │ ├── quant_noise.py │ │ │ ├── quantization │ │ │ │ ├── __init__.py │ │ │ │ ├── pq │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── em.py │ │ │ │ │ ├── modules │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── qconv.py │ │ │ │ │ │ ├── qemb.py │ │ │ │ │ │ └── qlinear.py │ │ │ │ │ ├── pq.py │ │ │ │ │ └── utils.py │ │ │ │ ├── quantization_options.py │ │ │ │ └── scalar │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── modules │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── qact.py │ │ │ │ │ ├── qconv.py │ │ │ │ │ ├── qemb.py │ │ │ │ │ └── qlinear.py │ │ │ │ │ ├── ops.py │ │ │ │ │ └── utils.py │ │ │ ├── same_pad.py │ │ │ ├── scalar_bias.py │ │ │ ├── sinusoidal_positional_embedding.py │ │ │ ├── sparse_multihead_attention.py │ │ │ ├── sparse_transformer_sentence_encoder.py │ │ │ ├── sparse_transformer_sentence_encoder_layer.py │ │ │ ├── transformer_layer.py │ │ │ ├── transformer_sentence_encoder.py │ │ │ ├── transformer_sentence_encoder_layer.py │ │ │ ├── transpose_last.py │ │ │ ├── unfold.py │ │ │ └── vggblock.py │ │ ├── nan_detector.py │ │ ├── ngram_repeat_block.py │ │ ├── optim │ │ │ ├── __init__.py │ │ │ ├── adadelta.py │ │ │ ├── adafactor.py │ │ │ ├── adagrad.py │ │ │ ├── adam.py │ │ │ ├── adamax.py │ │ │ ├── amp_optimizer.py │ │ │ ├── bmuf.py │ │ │ ├── composite.py │ │ │ ├── cpu_adam.py │ │ │ ├── dynamic_loss_scaler.py │ │ │ ├── fairseq_optimizer.py │ │ │ ├── fp16_optimizer.py │ │ │ ├── fused_adam.py │ │ │ ├── fused_lamb.py │ │ │ ├── lr_scheduler │ │ │ │ ├── __init__.py │ │ │ │ ├── cosine_lr_scheduler.py │ │ │ │ ├── fairseq_lr_scheduler.py │ │ │ │ ├── fixed_schedule.py │ │ │ │ ├── inverse_square_root_schedule.py │ │ │ │ ├── manual_lr_scheduler.py │ │ │ │ ├── pass_through.py │ │ │ │ ├── polynomial_decay_schedule.py │ │ │ │ ├── reduce_lr_on_plateau.py │ │ │ │ ├── step_lr_scheduler.py │ │ │ │ ├── tri_stage_lr_scheduler.py │ │ │ │ └── triangular_lr_scheduler.py │ │ │ ├── nag.py │ │ │ ├── sgd.py │ │ │ └── shard.py │ │ ├── options.py │ │ ├── pdb.py │ │ ├── quantization_utils.py │ │ ├── registry.py │ │ ├── scoring │ │ │ ├── __init__.py │ │ │ ├── bleu.py │ │ │ ├── chrf.py │ │ │ ├── tokenizer.py │ │ │ └── wer.py │ │ ├── search.py │ │ ├── sequence_generator.py │ │ ├── sequence_scorer.py │ │ ├── speech_generator.py │ │ ├── tasks │ │ │ ├── __init__.py │ │ │ ├── audio_finetuning.py │ │ │ ├── audio_pretraining.py │ │ │ ├── cross_lingual_lm.py │ │ │ ├── denoising.py │ │ │ ├── fairseq_task.py │ │ │ ├── frm_text_to_speech.py │ │ │ ├── hubert_pretraining.py │ │ │ ├── language_modeling.py │ │ │ ├── legacy_masked_lm.py │ │ │ ├── masked_lm.py │ │ │ ├── multilingual_denoising.py │ │ │ ├── multilingual_masked_lm.py │ │ │ ├── multilingual_translation.py │ │ │ ├── online_backtranslation.py │ │ │ ├── semisupervised_translation.py │ │ │ ├── sentence_prediction.py │ │ │ ├── sentence_ranking.py │ │ │ ├── simultaneous_translation.py │ │ │ ├── speech_to_text.py │ │ │ ├── text_to_speech.py │ │ │ ├── translation.py │ │ │ ├── translation_from_pretrained_bart.py │ │ │ ├── translation_from_pretrained_xlm.py │ │ │ ├── translation_lev.py │ │ │ └── translation_multi_simple_epoch.py │ │ ├── token_generation_constraints.py │ │ ├── tokenizer.py │ │ ├── trainer.py │ │ ├── utils.py │ │ └── version.txt │ ├── fairseq_cli │ │ ├── __init__.py │ │ ├── eval_lm.py │ │ ├── generate.py │ │ ├── hydra_train.py │ │ ├── interactive.py │ │ ├── preprocess.py │ │ ├── score.py │ │ ├── train.py │ │ └── validate.py │ ├── hubconf.py │ ├── pyproject.toml │ ├── scripts │ │ ├── __init__.py │ │ ├── average_checkpoints.py │ │ ├── build_sym_alignment.py │ │ ├── compare_namespaces.py │ │ ├── compound_split_bleu.sh │ │ ├── constraints │ │ │ ├── extract.py │ │ │ └── validate.py │ │ ├── convert_dictionary.lua │ │ ├── convert_model.lua │ │ ├── count_docs.py │ │ ├── read_binarized.py │ │ ├── rm_pt.py │ │ ├── sacrebleu.sh │ │ ├── shard_docs.py │ │ ├── split_train_valid_docs.py │ │ ├── spm_decode.py │ │ ├── spm_encode.py │ │ ├── spm_train.py │ │ └── test_fsdp.sh │ ├── setup.py │ ├── tests │ │ ├── __init__.py │ │ ├── distributed │ │ │ ├── __init__.py │ │ │ ├── test_bmuf.py │ │ │ ├── test_distributed_timeout_wrapper.py │ │ │ ├── test_module_proxy_wrapper.py │ │ │ ├── test_utils.py │ │ │ └── utils.py │ │ ├── gpu │ │ │ ├── __init__.py │ │ │ ├── test_binaries_gpu.py │ │ │ ├── test_ema_gpu.py │ │ │ └── transformer_quantization_config.yaml │ │ ├── speech_recognition │ │ │ ├── __init__.py │ │ │ ├── asr_test_base.py │ │ │ ├── test_collaters.py │ │ │ ├── test_cross_entropy.py │ │ │ ├── test_data_utils.py │ │ │ └── test_vggtransformer.py │ │ ├── test_activation_checkpointing.py │ │ ├── test_amp_optimizer.py │ │ ├── test_average_checkpoints.py │ │ ├── test_backtranslation_dataset.py │ │ ├── test_binaries.py │ │ ├── test_character_token_embedder.py │ │ ├── test_checkpoint_utils.py │ │ ├── test_concat_dataset.py │ │ ├── test_constraints.py │ │ ├── test_convtbc.py │ │ ├── test_data_utils.py │ │ ├── test_dataclass_utils.py │ │ ├── test_dataset.py │ │ ├── test_dictionary.py │ │ ├── test_ema.py │ │ ├── test_export.py │ │ ├── test_file_chunker_utils.py │ │ ├── test_file_io.py │ │ ├── test_fp16_optimizer.py │ │ ├── test_huffman.py │ │ ├── test_inference_dropout.py │ │ ├── test_iopath.py │ │ ├── test_iterators.py │ │ ├── test_label_smoothing.py │ │ ├── test_lm_context_window.py │ │ ├── test_lstm_jitable.py │ │ ├── test_memory_efficient_fp16.py │ │ ├── test_metrics.py │ │ ├── test_multi_corpus_dataset.py │ │ ├── test_multi_corpus_sampled_dataset.py │ │ ├── test_multihead_attention.py │ │ ├── test_noising.py │ │ ├── test_online_backtranslation.py │ │ ├── test_plasma_utils.py │ │ ├── test_reproducibility.py │ │ ├── test_resampling_dataset.py │ │ ├── test_roberta.py │ │ ├── test_sequence_generator.py │ │ ├── test_sequence_scorer.py │ │ ├── test_sparse_multihead_attention.py │ │ ├── test_token_block_dataset.py │ │ ├── test_train.py │ │ ├── test_transformer.py │ │ ├── test_utils.py │ │ ├── test_valid_subset_checks.py │ │ └── utils.py │ └── train.py ├── models │ ├── __init__.py │ ├── clip │ │ ├── __init__.py │ │ ├── bpe_simple_vocab_16e6.txt.gz │ │ ├── clip.py │ │ ├── model.py │ │ └── simple_tokenizer.py │ ├── ofa │ │ ├── __init__.py │ │ ├── frozen_bn.py │ │ ├── ofa.py │ │ ├── resnet.py │ │ ├── unify_multihead_attention.py │ │ ├── unify_transformer.py │ │ └── unify_transformer_layer.py │ ├── search.py │ ├── sequence_generator.py │ └── taming │ │ ├── lr_scheduler.py │ │ ├── models │ │ ├── __pycache__ │ │ │ ├── vqgan.cpython-36.pyc │ │ │ ├── vqgan.cpython-37.pyc │ │ │ ├── vqgan.cpython-38.pyc │ │ │ └── vqgan.cpython-39.pyc │ │ └── vqgan.py │ │ ├── modules │ │ ├── diffusionmodules │ │ │ ├── __pycache__ │ │ │ │ ├── model.cpython-36.pyc │ │ │ │ ├── model.cpython-37.pyc │ │ │ │ ├── model.cpython-38.pyc │ │ │ │ └── model.cpython-39.pyc │ │ │ └── model.py │ │ ├── discriminator │ │ │ └── model.py │ │ ├── losses │ │ │ ├── __init__.py │ │ │ ├── lpips.py │ │ │ ├── segmentation.py │ │ │ └── vqperceptual.py │ │ ├── misc │ │ │ └── coord.py │ │ ├── util.py │ │ └── vqvae │ │ │ ├── __pycache__ │ │ │ ├── quantize.cpython-36.pyc │ │ │ ├── quantize.cpython-37.pyc │ │ │ ├── quantize.cpython-38.pyc │ │ │ └── quantize.cpython-39.pyc │ │ │ └── quantize.py │ │ └── util.py ├── ofa_module │ └── __init__.py ├── requirements.txt ├── results │ └── task_emb_post_process.ipynb ├── run_scripts │ └── refcoco │ │ ├── evaluate_refcoco.sh │ │ ├── refcoco_task_emb.sh │ │ ├── train_refcoco_adapter.sh │ │ ├── train_refcoco_adapter_interpolation.sh │ │ ├── train_refcoco_lora.sh │ │ ├── train_refcoco_prefix.sh │ │ ├── train_refcocog_adapter.sh │ │ ├── train_refcocog_adapter_interpolation.sh │ │ ├── train_refcocoplus_adapter.sh │ │ └── train_refcocoplus_adapter_interpolation.sh ├── task_emb.py ├── tasks │ ├── __init__.py │ ├── cv_tasks │ │ ├── __init__.py │ │ └── image_classify.py │ ├── mm_tasks │ │ ├── __init__.py │ │ ├── caption.py │ │ ├── image_gen.py │ │ ├── refcoco.py │ │ ├── snli_ve.py │ │ └── vqa_gen.py │ ├── nlg_tasks │ │ ├── __init__.py │ │ └── gigaword.py │ ├── nlu_tasks │ │ ├── __init__.py │ │ ├── cola.py │ │ ├── mnli.py │ │ ├── mrpc.py │ │ ├── qnli.py │ │ ├── qqp.py │ │ ├── rte.py │ │ └── sst2.py │ ├── ofa_task.py │ └── pretrain_tasks │ │ ├── __init__.py │ │ └── unify_task.py ├── train.py ├── trainer.py └── utils │ ├── BERT_CN_dict │ ├── dict.txt │ └── vocab.txt │ ├── BPE │ ├── __init__.py │ ├── dict.txt │ ├── encoder.json │ └── vocab.bpe │ ├── __init__.py │ ├── checkpoint_utils.py │ ├── cider │ └── pyciderevalcap │ │ ├── __init__.py │ │ ├── cider │ │ ├── __init__.py │ │ ├── cider.py │ │ └── cider_scorer.py │ │ └── ciderD │ │ ├── __init__.py │ │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── __init__.cpython-37.pyc │ │ ├── __init__.cpython-38.pyc │ │ ├── __init__.cpython-39.pyc │ │ ├── ciderD.cpython-36.pyc │ │ ├── ciderD.cpython-37.pyc │ │ ├── ciderD.cpython-38.pyc │ │ ├── ciderD.cpython-39.pyc │ │ ├── ciderD_scorer.cpython-36.pyc │ │ ├── ciderD_scorer.cpython-37.pyc │ │ ├── ciderD_scorer.cpython-38.pyc │ │ └── ciderD_scorer.cpython-39.pyc │ │ ├── ciderD.py │ │ └── ciderD_scorer.py │ ├── custom_tasks_splits │ ├── pre_ft_for_image.json │ ├── pre_ft_for_text.json │ └── text_data.json │ ├── eval_utils.py │ ├── rouge.py │ ├── transforms.py │ ├── trie.py │ ├── vision_helper.py │ └── zero_shot_utils.py ├── README.md ├── checkpoints.md ├── datasets.md └── imgs ├── Tab1.png ├── Tab2.png ├── Tab3.png └── overview.png /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .vscode 3 | # JetBrains PyCharm IDE 4 | .idea/ 5 | 6 | # Byte-compiled / optimized / DLL files 7 | */__pycache__/ 8 | *.py[cod] 9 | *$py.class 10 | 11 | # C extensions 12 | *.so 13 | 14 | # macOS dir files 15 | .DS_Store 16 | -------------------------------------------------------------------------------- /OFA/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | from .scst_loss import ScstRewardCriterion 2 | from .label_smoothed_cross_entropy import AdjustLabelSmoothedCrossEntropyCriterion 3 | from .clip_scst_loss import ClipScstRewardCriterion 4 | from .label_smoothed_encouraging_loss import AdjustLabelSmoothedEncouragingLossCriterion 5 | -------------------------------------------------------------------------------- /OFA/data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/data/__init__.py -------------------------------------------------------------------------------- /OFA/data/mm_data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/data/mm_data/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/_sharded_tensor/ops/__init__.py: -------------------------------------------------------------------------------- 1 | from .linear import sharded_linear 2 | -------------------------------------------------------------------------------- /OFA/distributed/_sharding_spec/__init__.py: -------------------------------------------------------------------------------- 1 | from .api import ( 2 | ChunkShardingSpec, 3 | DevicePlacementSpec, 4 | EnumerableShardingSpec, 5 | PlacementSpec, 6 | ShardMetadata, 7 | ShardingSpec, 8 | ) 9 | -------------------------------------------------------------------------------- /OFA/distributed/algorithms/__init__.py: -------------------------------------------------------------------------------- 1 | from .join import Join 2 | from .join import Joinable 3 | from .join import JoinHook 4 | -------------------------------------------------------------------------------- /OFA/distributed/algorithms/ddp_comm_hooks/debugging_hooks.py: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | import torch 4 | import torch.distributed as dist 5 | 6 | 7 | def noop_hook(_: Any, bucket: dist.GradBucket) -> torch.futures.Future[torch.Tensor]: 8 | """ 9 | This DDP communication hook returns the a future that wraps the input, 10 | so it is a noop that does not incur any communication overheads. 11 | 12 | This hook should **only** be used for headroom analysis of allreduce optimization, 13 | instead of the normal gradient synchronization. 14 | For example, if only less than 10% speedup of training time can be observed after this hook is registered, 15 | it usually implies that allreduce is not a performance bottleneck for this case. 16 | Such instrumentation can be particularly useful 17 | if GPU traces cannot be easily retrieved or the trace analysis is complicated 18 | some factors such as the overlap between allreduce and computation or the desynchronization across ranks. 19 | 20 | Example:: 21 | >>> ddp_model.register_comm_hook(None, noop_hook) 22 | """ 23 | fut: torch.futures.Future[torch.Tensor] = torch.futures.Future() 24 | fut.set_result(bucket.buffer()) 25 | 26 | return fut 27 | -------------------------------------------------------------------------------- /OFA/distributed/algorithms/model_averaging/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/algorithms/model_averaging/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/constants.py: -------------------------------------------------------------------------------- 1 | from torch._C._distributed_c10d import _DEFAULT_PG_TIMEOUT 2 | # Default process group wide timeout, if applicable. 3 | # This only applies to the gloo and nccl backends 4 | # (only if NCCL_BLOCKING_WAIT or NCCL_ASYNC_ERROR_HANDLING is set to 1). 5 | # To make an attempt at backwards compatibility with THD, we use an 6 | # extraordinarily high default timeout, given that THD did not have timeouts. 7 | default_pg_timeout = _DEFAULT_PG_TIMEOUT 8 | -------------------------------------------------------------------------------- /OFA/distributed/elastic/agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/elastic/agent/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/elastic/events/handlers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | 9 | import logging 10 | from typing import Dict 11 | 12 | 13 | _log_handlers: Dict[str, logging.Handler] = { 14 | "console": logging.StreamHandler(), 15 | "dynamic_rendezvous": logging.NullHandler(), 16 | "null": logging.NullHandler(), 17 | } 18 | 19 | 20 | def get_logging_handler(destination: str = "null") -> logging.Handler: 21 | global _log_handlers 22 | return _log_handlers[destination] 23 | -------------------------------------------------------------------------------- /OFA/distributed/elastic/multiprocessing/errors/handlers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | # Multiprocessing error-reporting module 9 | 10 | 11 | from torch.distributed.elastic.multiprocessing.errors.error_handler import ErrorHandler 12 | 13 | 14 | def get_error_handler(): 15 | return ErrorHandler() 16 | -------------------------------------------------------------------------------- /OFA/distributed/elastic/utils/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | 9 | from .api import get_env_variable_or_raise, get_socket_with_port, macros # noqa: F401 10 | -------------------------------------------------------------------------------- /OFA/distributed/elastic/utils/data/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | 9 | from .cycling_iterator import CyclingIterator # noqa: F401 10 | from .elastic_distributed_sampler import ElasticDistributedSampler # noqa: F401 11 | -------------------------------------------------------------------------------- /OFA/distributed/elastic/utils/log_level.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | 9 | 10 | def get_log_level() -> str: 11 | """ 12 | Return default log level for pytorch. 13 | """ 14 | return "WARNING" 15 | -------------------------------------------------------------------------------- /OFA/distributed/launcher/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env/python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # All rights reserved. 5 | # 6 | # This source code is licensed under the BSD-style license found in the 7 | # LICENSE file in the root directory of this source tree. 8 | 9 | 10 | from torch.distributed.launcher.api import ( # noqa: F401 11 | LaunchConfig, 12 | elastic_launch, 13 | launch_agent, 14 | ) 15 | -------------------------------------------------------------------------------- /OFA/distributed/nn/__init__.py: -------------------------------------------------------------------------------- 1 | from .api.remote_module import RemoteModule 2 | from .functional import * # noqa: F403 3 | -------------------------------------------------------------------------------- /OFA/distributed/nn/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/nn/api/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/nn/jit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/nn/jit/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/nn/jit/templates/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/nn/jit/templates/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/pipeline/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/distributed/pipeline/__init__.py -------------------------------------------------------------------------------- /OFA/distributed/pipeline/sync/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Kakao Brain 2 | # 3 | # Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. 4 | # 5 | # This source code is licensed under the BSD license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | """A Pipe implementation in PyTorch.""" 8 | from .checkpoint import is_checkpointing, is_recomputing 9 | from .pipe import Pipe, WithDevice 10 | from .microbatch import NoChunk 11 | 12 | __all__ = ["Pipe", "is_checkpointing", "is_recomputing"] 13 | -------------------------------------------------------------------------------- /OFA/distributed/pipeline/sync/skip/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Kakao Brain 2 | # 3 | # Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. 4 | # 5 | # This source code is licensed under the BSD license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | """Supports efficiency with skip connections.""" 8 | from .namespace import Namespace 9 | from .skippable import pop, skippable, stash, verify_skippables 10 | 11 | __all__ = ["skippable", "stash", "pop", "verify_skippables", "Namespace"] 12 | -------------------------------------------------------------------------------- /OFA/distributed/pipeline/sync/utils.py: -------------------------------------------------------------------------------- 1 | from torch import nn 2 | from typing import List 3 | 4 | def partition_model( 5 | module: nn.Sequential, 6 | balance: List[int], 7 | devices: List[int] = None): 8 | """ 9 | Given an :class:`nn.Sequential ` module, partitions 10 | the model across multiple GPU devices according the provided ``balance`` 11 | and ``devices``. 12 | 13 | Args: 14 | module (:class:`nn.Sequential `): 15 | Sequential model representing the pipe. 16 | balance (List[int]): 17 | List indicating the number of layers in each partition. 18 | devices (List[int], optional): 19 | List indicating the device to use for each partition. Defaults to 20 | ``range(len(balance))`` 21 | """ 22 | device_idx = 0 23 | pipe_idx = 0 24 | balanced_pipe = [] 25 | for num_layers in balance: 26 | layers = [] 27 | for i in range(num_layers): 28 | layers.append(module[pipe_idx]) 29 | pipe_idx += 1 30 | device = device_idx if devices is None else devices[device_idx] 31 | balanced_pipe.append(nn.Sequential(*layers).to(device)) 32 | device_idx += 1 33 | 34 | return nn.Sequential(*balanced_pipe) 35 | -------------------------------------------------------------------------------- /OFA/distributed/rpc/_testing/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | import torch 3 | 4 | 5 | def is_available(): 6 | return hasattr(torch._C, "_faulty_agent_init") 7 | 8 | 9 | if is_available() and not torch._C._faulty_agent_init(): 10 | raise RuntimeError("Failed to initialize torch.distributed.rpc._testing") 11 | 12 | if is_available(): 13 | # Registers FAULTY_TENSORPIPE RPC backend. 14 | from . import faulty_agent_backend_registry 15 | from torch._C._distributed_rpc_testing import ( 16 | FaultyTensorPipeRpcBackendOptions, 17 | FaultyTensorPipeAgent, 18 | ) 19 | -------------------------------------------------------------------------------- /OFA/distributed/rpc/constants.py: -------------------------------------------------------------------------------- 1 | from datetime import timedelta 2 | 3 | from torch._C._distributed_rpc import ( 4 | _DEFAULT_INIT_METHOD, 5 | _DEFAULT_NUM_WORKER_THREADS, 6 | _DEFAULT_RPC_TIMEOUT_SEC, 7 | _UNSET_RPC_TIMEOUT, 8 | ) 9 | 10 | 11 | # For any RpcAgent. 12 | DEFAULT_RPC_TIMEOUT_SEC: float = _DEFAULT_RPC_TIMEOUT_SEC 13 | DEFAULT_INIT_METHOD: str = _DEFAULT_INIT_METHOD 14 | DEFAULT_SHUTDOWN_TIMEOUT: float = 5.0 15 | 16 | # For TensorPipeAgent. 17 | DEFAULT_NUM_WORKER_THREADS: int = _DEFAULT_NUM_WORKER_THREADS 18 | # Ensure that we don't time out when there are long periods of time without 19 | # any operations against the underlying ProcessGroup. 20 | DEFAULT_PROCESS_GROUP_TIMEOUT: timedelta = timedelta(milliseconds=2 ** 31 - 1) 21 | # Value indicating that timeout is not set for RPC call, and the default should be used. 22 | UNSET_RPC_TIMEOUT: float = _UNSET_RPC_TIMEOUT 23 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## 👉 [Please follow one of these issue templates](https://github.com/pytorch/fairseq/issues/new/choose) 👈 2 | 3 | Note: to keep the backlog clean and actionable, issues may be immediately closed if they do not follow one of the above issue templates. 4 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 📚 Documentation/Typos 3 | about: Report an issue related to documentation or a typo 4 | labels: 'documentation, needs triage' 5 | --- 6 | 7 | ## 📚 Documentation 8 | 9 | For typos and doc fixes, please go ahead and: 10 | 11 | 1. Create an issue. 12 | 2. Fix the typo. 13 | 3. Submit a PR. 14 | 15 | Thanks! 16 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🚀 Feature Request 3 | about: Submit a proposal/request for a new feature 4 | labels: 'enhancement, help wanted, needs triage' 5 | --- 6 | 7 | ## 🚀 Feature Request 8 | 9 | 10 | ### Motivation 11 | 12 | 13 | 14 | ### Pitch 15 | 16 | 17 | 18 | ### Alternatives 19 | 20 | 21 | 22 | ### Additional context 23 | 24 | 25 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/ISSUE_TEMPLATE/how-to-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ❓ Questions/Help 3 | about: If you have questions, please first search existing issues and docs 4 | labels: 'question, needs triage' 5 | --- 6 | 7 | ## ❓ Questions and Help 8 | 9 | ### Before asking: 10 | 1. search the issues. 11 | 2. search the docs. 12 | 13 | 14 | 15 | #### What is your question? 16 | 17 | #### Code 18 | 19 | 20 | 21 | #### What have you tried? 22 | 23 | #### What's your environment? 24 | 25 | - fairseq Version (e.g., 1.0 or main): 26 | - PyTorch Version (e.g., 1.0) 27 | - OS (e.g., Linux): 28 | - How you installed fairseq (`pip`, source): 29 | - Build command you used (if compiling from source): 30 | - Python version: 31 | - CUDA/cuDNN version: 32 | - GPU models and configuration: 33 | - Any other relevant information: 34 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Before submitting 2 | 3 | - [ ] Was this discussed/approved via a Github issue? (no need for typos, doc improvements) 4 | - [ ] Did you read the [contributor guideline](https://github.com/pytorch/fairseq/blob/main/CONTRIBUTING.md)? 5 | - [ ] Did you make sure to update the docs? 6 | - [ ] Did you write any new necessary tests? 7 | 8 | ## What does this PR do? 9 | Fixes # (issue). 10 | 11 | ## PR review 12 | Anyone in the community is free to review the PR once the tests have passed. 13 | If we didn't discuss your PR in Github issues there's a high chance it will not be merged. 14 | 15 | ## Did you have fun? 16 | Make sure you had fun coding 🙃 17 | -------------------------------------------------------------------------------- /OFA/fairseq/.github/workflows/build_wheels.yml: -------------------------------------------------------------------------------- 1 | name: build_wheels 2 | 3 | on: 4 | push: 5 | branches: 6 | - v[0-9]+.[0-9]+.[x0-9]+ 7 | tags: 8 | - v* 9 | 10 | jobs: 11 | build_wheels: 12 | name: Build wheels on ${{ matrix.os }} 13 | runs-on: ${{ matrix.os }} 14 | strategy: 15 | matrix: 16 | os: [ubuntu-latest, macos-latest] 17 | 18 | steps: 19 | - uses: actions/checkout@v2 20 | 21 | - name: Install Python 22 | uses: actions/setup-python@v2 23 | with: 24 | python-version: '3.7' 25 | 26 | - name: Install cibuildwheel 27 | run: | 28 | python -m pip install cibuildwheel 29 | 30 | - name: Build wheels for CPython 31 | run: | 32 | python -m cibuildwheel --output-dir dist 33 | env: 34 | CIBW_BUILD: "cp36-*64 cp37-*64 cp38-*64" 35 | CIBW_MANYLINUX_X86_64_IMAGE: manylinux1 36 | CIBW_BEFORE_BUILD: git submodule update --init --recursive && pip install . 37 | 38 | - uses: actions/upload-artifact@v2 39 | with: 40 | name: wheels 41 | path: ./dist/*.whl 42 | -------------------------------------------------------------------------------- /OFA/fairseq/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "fairseq/model_parallel/megatron"] 2 | path = fairseq/model_parallel/megatron 3 | url = https://github.com/ngoyal2707/Megatron-LM 4 | branch = fairseq 5 | -------------------------------------------------------------------------------- /OFA/fairseq/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Facebook AI Research Sequence-to-Sequence Toolkit (fairseq) 2 | We want to make contributing to this project as easy and transparent as 3 | possible. 4 | 5 | ## Pull Requests 6 | We actively welcome your pull requests. 7 | 8 | 1. Fork the repo and create your branch from `main`. 9 | 2. If you've added code that should be tested, add tests. 10 | 3. If you've changed APIs, update the documentation. 11 | 4. Ensure the test suite passes. 12 | 5. Make sure your code lints. 13 | 6. If you haven't already, complete the Contributor License Agreement ("CLA"). 14 | 15 | ## Contributor License Agreement ("CLA") 16 | In order to accept your pull request, we need you to submit a CLA. You only need 17 | to do this once to work on any of Facebook's open source projects. 18 | 19 | Complete your CLA here: 20 | 21 | ## Issues 22 | We use GitHub issues to track public bugs. Please ensure your description is 23 | clear and has sufficient instructions to be able to reproduce the issue. 24 | 25 | ## License 26 | By contributing to Facebook AI Research Sequence-to-Sequence Toolkit (fairseq), 27 | you agree that your contributions will be licensed under the LICENSE file in 28 | the root directory of this source tree. 29 | -------------------------------------------------------------------------------- /OFA/fairseq/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Facebook, Inc. and its affiliates. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = python -msphinx 7 | SPHINXPROJ = fairseq 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /OFA/fairseq/docs/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | .wy-table-responsive table td kbd { 2 | white-space: nowrap; 3 | } 4 | .wy-table-responsive table td { 5 | white-space: normal !important; 6 | } 7 | .wy-table-responsive { 8 | overflow: visible !important; 9 | } 10 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/criterions.rst: -------------------------------------------------------------------------------- 1 | .. role:: hidden 2 | :class: hidden-section 3 | 4 | .. _Criterions: 5 | 6 | Criterions 7 | ========== 8 | 9 | Criterions compute the loss function given the model and batch, roughly:: 10 | 11 | loss = criterion(model, batch) 12 | 13 | .. automodule:: fairseq.criterions 14 | :members: 15 | 16 | .. autoclass:: fairseq.criterions.FairseqCriterion 17 | :members: 18 | :undoc-members: 19 | 20 | .. autoclass:: fairseq.criterions.adaptive_loss.AdaptiveLoss 21 | :members: 22 | :undoc-members: 23 | .. autoclass:: fairseq.criterions.composite_loss.CompositeLoss 24 | :members: 25 | :undoc-members: 26 | .. autoclass:: fairseq.criterions.cross_entropy.CrossEntropyCriterion 27 | :members: 28 | :undoc-members: 29 | .. autoclass:: fairseq.criterions.label_smoothed_cross_entropy.LabelSmoothedCrossEntropyCriterion 30 | :members: 31 | :undoc-members: 32 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/docutils.conf: -------------------------------------------------------------------------------- 1 | [writers] 2 | option-limit=0 3 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/fairseq.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/docs/fairseq.gif -------------------------------------------------------------------------------- /OFA/fairseq/docs/fairseq_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/docs/fairseq_logo.png -------------------------------------------------------------------------------- /OFA/fairseq/docs/index.rst: -------------------------------------------------------------------------------- 1 | .. fairseq documentation master file, created by 2 | sphinx-quickstart on Fri Aug 17 21:45:30 2018. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | :github_url: https://github.com/pytorch/fairseq 7 | 8 | 9 | fairseq documentation 10 | ===================== 11 | 12 | Fairseq is a sequence modeling toolkit written in `PyTorch 13 | `_ that allows researchers and developers to 14 | train custom models for translation, summarization, language modeling and other 15 | text generation tasks. 16 | 17 | .. toctree:: 18 | :maxdepth: 1 19 | :caption: Getting Started 20 | 21 | getting_started 22 | command_line_tools 23 | 24 | .. toctree:: 25 | :maxdepth: 1 26 | :caption: Extending Fairseq 27 | 28 | overview 29 | tutorial_simple_lstm 30 | tutorial_classifying_names 31 | 32 | .. toctree:: 33 | :maxdepth: 2 34 | :caption: Library Reference 35 | 36 | tasks 37 | models 38 | criterions 39 | optim 40 | lr_scheduler 41 | data 42 | modules 43 | 44 | 45 | Indices and tables 46 | ================== 47 | 48 | * :ref:`genindex` 49 | * :ref:`search` 50 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/lr_scheduler.rst: -------------------------------------------------------------------------------- 1 | .. role:: hidden 2 | :class: hidden-section 3 | 4 | .. _Learning Rate Schedulers: 5 | 6 | Learning Rate Schedulers 7 | ======================== 8 | 9 | Learning Rate Schedulers update the learning rate over the course of training. 10 | Learning rates can be updated after each update via :func:`step_update` or at 11 | epoch boundaries via :func:`step`. 12 | 13 | .. automodule:: fairseq.optim.lr_scheduler 14 | :members: 15 | 16 | .. autoclass:: fairseq.optim.lr_scheduler.FairseqLRScheduler 17 | :members: 18 | :undoc-members: 19 | 20 | .. autoclass:: fairseq.optim.lr_scheduler.cosine_lr_scheduler.CosineSchedule 21 | :members: 22 | :undoc-members: 23 | .. autoclass:: fairseq.optim.lr_scheduler.fixed_schedule.FixedSchedule 24 | :members: 25 | :undoc-members: 26 | .. autoclass:: fairseq.optim.lr_scheduler.inverse_square_root_schedule.InverseSquareRootSchedule 27 | :members: 28 | :undoc-members: 29 | .. autoclass:: fairseq.optim.lr_scheduler.reduce_lr_on_plateau.ReduceLROnPlateau 30 | :members: 31 | :undoc-members: 32 | .. autoclass:: fairseq.optim.lr_scheduler.triangular_lr_scheduler.TriangularSchedule 33 | :members: 34 | :undoc-members: 35 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=python -msphinx 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | set SPHINXPROJ=fairseq 13 | 14 | if "%1" == "" goto help 15 | 16 | %SPHINXBUILD% >NUL 2>NUL 17 | if errorlevel 9009 ( 18 | echo. 19 | echo.The Sphinx module was not found. Make sure you have Sphinx installed, 20 | echo.then set the SPHINXBUILD environment variable to point to the full 21 | echo.path of the 'sphinx-build' executable. Alternatively you may add the 22 | echo.Sphinx directory to PATH. 23 | echo. 24 | echo.If you don't have Sphinx installed, grab it from 25 | echo.http://sphinx-doc.org/ 26 | exit /b 1 27 | ) 28 | 29 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% 30 | goto end 31 | 32 | :help 33 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% 34 | 35 | :end 36 | popd 37 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/modules.rst: -------------------------------------------------------------------------------- 1 | Modules 2 | ======= 3 | 4 | Fairseq provides several stand-alone :class:`torch.nn.Module` classes that may 5 | be helpful when implementing a new :class:`~fairseq.models.BaseFairseqModel`. 6 | 7 | .. automodule:: fairseq.modules 8 | :members: 9 | :undoc-members: 10 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/optim.rst: -------------------------------------------------------------------------------- 1 | .. role:: hidden 2 | :class: hidden-section 3 | 4 | .. _optimizers: 5 | 6 | Optimizers 7 | ========== 8 | 9 | Optimizers update the Model parameters based on the gradients. 10 | 11 | .. automodule:: fairseq.optim 12 | :members: 13 | 14 | .. autoclass:: fairseq.optim.FairseqOptimizer 15 | :members: 16 | :undoc-members: 17 | 18 | .. autoclass:: fairseq.optim.adadelta.Adadelta 19 | :members: 20 | :undoc-members: 21 | .. autoclass:: fairseq.optim.adagrad.Adagrad 22 | :members: 23 | :undoc-members: 24 | .. autoclass:: fairseq.optim.adafactor.FairseqAdafactor 25 | :members: 26 | :undoc-members: 27 | .. autoclass:: fairseq.optim.adam.FairseqAdam 28 | :members: 29 | :undoc-members: 30 | .. autoclass:: fairseq.optim.fp16_optimizer.FP16Optimizer 31 | :members: 32 | :undoc-members: 33 | .. autoclass:: fairseq.optim.nag.FairseqNAG 34 | :members: 35 | :undoc-members: 36 | .. autoclass:: fairseq.optim.sgd.SGD 37 | :members: 38 | :undoc-members: 39 | -------------------------------------------------------------------------------- /OFA/fairseq/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx<2.0 2 | sphinx-argparse 3 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/.gitignore: -------------------------------------------------------------------------------- 1 | !*/*.sh 2 | !*/*.md 3 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | try: 7 | from fairseq.version import __version__ # noqa 8 | except ImportError: 9 | pass 10 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/adaptive_span/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | # automatically import any Python files in the current directory 10 | cur_dir = os.path.dirname(__file__) 11 | for file in os.listdir(cur_dir): 12 | path = os.path.join(cur_dir, file) 13 | if ( 14 | not file.startswith("_") 15 | and not file.startswith(".") 16 | and (file.endswith(".py") or os.path.isdir(path)) 17 | ): 18 | mod_name = file[: file.find(".py")] if file.endswith(".py") else file 19 | module = importlib.import_module(__name__ + "." + mod_name) 20 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/adaptive_span/truncated_bptt_lm_task.py: -------------------------------------------------------------------------------- 1 | ../truncated_bptt/truncated_bptt_lm_task.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/backtranslation/sacrebleu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $# -ne 5 ]; then 4 | echo "usage: $0 [dataset=wmt14/full] [langpair=en-de] [databin] [bpecode] [model]" 5 | exit 6 | fi 7 | 8 | 9 | DATASET=$1 10 | LANGPAIR=$2 11 | DATABIN=$3 12 | BPECODE=$4 13 | MODEL=$5 14 | 15 | SRCLANG=$(echo $LANGPAIR | cut -d '-' -f 1) 16 | TGTLANG=$(echo $LANGPAIR | cut -d '-' -f 2) 17 | 18 | 19 | BPEROOT=examples/backtranslation/subword-nmt/subword_nmt 20 | if [ ! -e $BPEROOT ]; then 21 | BPEROOT=subword-nmt/subword_nmt 22 | if [ ! -e $BPEROOT ]; then 23 | echo 'Cloning Subword NMT repository (for BPE pre-processing)...' 24 | git clone https://github.com/rsennrich/subword-nmt.git 25 | fi 26 | fi 27 | 28 | 29 | sacrebleu -t $DATASET -l $LANGPAIR --echo src \ 30 | | sacremoses tokenize -a -l $SRCLANG -q \ 31 | | python $BPEROOT/apply_bpe.py -c $BPECODE \ 32 | | fairseq-interactive $DATABIN --path $MODEL \ 33 | -s $SRCLANG -t $TGTLANG \ 34 | --beam 5 --remove-bpe --buffer-size 1024 --max-tokens 8000 \ 35 | | grep ^H- | cut -f 3- \ 36 | | sacremoses detokenize -l $TGTLANG -q \ 37 | | sacrebleu -t $DATASET -l $LANGPAIR 38 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/constrained_decoding/normalize.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # 5 | # This source code is licensed under the MIT license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | import sys 9 | 10 | from sacremoses.normalize import MosesPunctNormalizer 11 | 12 | 13 | def main(args): 14 | normalizer = MosesPunctNormalizer(lang=args.lang, penn=args.penn) 15 | for line in sys.stdin: 16 | print(normalizer.normalize(line.rstrip()), flush=True) 17 | 18 | 19 | if __name__ == "__main__": 20 | import argparse 21 | 22 | parser = argparse.ArgumentParser() 23 | parser.add_argument("--lang", "-l", default="en") 24 | parser.add_argument("--penn", "-p", action="store_true") 25 | args = parser.parse_args() 26 | 27 | main(args) 28 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/constrained_decoding/tok.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # 5 | # This source code is licensed under the MIT license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | import sys 9 | 10 | import sacremoses 11 | 12 | 13 | def main(args): 14 | """Tokenizes, preserving tabs""" 15 | mt = sacremoses.MosesTokenizer(lang=args.lang) 16 | 17 | def tok(s): 18 | return mt.tokenize(s, return_str=True) 19 | 20 | for line in sys.stdin: 21 | parts = list(map(tok, line.split("\t"))) 22 | print(*parts, sep="\t", flush=True) 23 | 24 | 25 | if __name__ == "__main__": 26 | import argparse 27 | 28 | parser = argparse.ArgumentParser() 29 | parser.add_argument("--lang", "-l", default="en") 30 | parser.add_argument("--penn", "-p", action="store_true") 31 | parser.add_argument("--fields", "-f", help="fields to tokenize") 32 | args = parser.parse_args() 33 | 34 | main(args) 35 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/discriminative_reranking_nmt/__init__.py: -------------------------------------------------------------------------------- 1 | from . import criterions, models, tasks # noqa 2 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/discriminative_reranking_nmt/config/deen.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | common: 4 | fp16: true 5 | log_format: json 6 | log_interval: 50 7 | seed: 2 8 | 9 | checkpoint: 10 | no_epoch_checkpoints: true 11 | best_checkpoint_metric: bleu 12 | maximize_best_checkpoint_metric: true 13 | 14 | task: 15 | _name: discriminative_reranking_nmt 16 | data: ??? 17 | num_data_splits: ??? 18 | include_src: true 19 | mt_beam: 50 20 | eval_target_metric: true 21 | target_metric: bleu 22 | 23 | dataset: 24 | batch_size: 50 25 | num_workers: 6 26 | required_batch_size_multiple: 50 27 | valid_subset: ??? 28 | 29 | criterion: 30 | _name: kl_divergence_rereanking 31 | target_dist_norm: minmax 32 | temperature: 0.5 33 | 34 | optimization: 35 | max_epoch: 200 36 | lr: [0.00005] 37 | update_freq: [32] 38 | 39 | optimizer: 40 | _name: adam 41 | adam_betas: (0.9,0.98) 42 | adam_eps: 1e-06 43 | 44 | lr_scheduler: 45 | _name: polynomial_decay 46 | warmup_updates: 8000 47 | total_num_update: 320000 48 | 49 | model: 50 | _name: discriminative_nmt_reranker 51 | pretrained_model: ??? 52 | classifier_dropout: 0.2 53 | 54 | distributed_training: 55 | ddp_backend: no_c10d 56 | distributed_world_size: 16 57 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/discriminative_reranking_nmt/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | from .discriminative_reranking_criterion import KLDivergenceRerankingCriterion 2 | 3 | 4 | __all__ = [ 5 | "KLDivergenceRerankingCriterion", 6 | ] 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/discriminative_reranking_nmt/models/__init__.py: -------------------------------------------------------------------------------- 1 | from .discriminative_reranking_model import DiscriminativeNMTReranker 2 | 3 | 4 | __all__ = [ 5 | "DiscriminativeNMTReranker", 6 | ] 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/discriminative_reranking_nmt/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .discriminative_reranking_task import DiscriminativeRerankingNMTTask 2 | 3 | 4 | __all__ = [ 5 | "DiscriminativeRerankingNMTTask", 6 | ] 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/fast_noisy_channel/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import noisy_channel_translation # noqa 7 | from . import noisy_channel_sequence_generator # noqa 8 | from . import noisy_channel_beam_search # noqa 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/flores101/flores_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/flores101/flores_logo.png -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/ax_sweep/ngram.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | common_eval: 4 | results_path: ${decoding.exp_dir}/decode/${decoding.decoder.name}_ax/${dataset.gen_subset} 5 | 6 | hydra: 7 | sweeper: 8 | ax_config: 9 | max_trials: 60 10 | early_stop: 11 | minimize: true 12 | max_epochs_without_improvement: 10 13 | epsilon: 0.025 14 | experiment: 15 | name: ${dataset.gen_subset} 16 | objective_name: wer 17 | minimize: true 18 | parameter_constraints: null 19 | outcome_constraints: null 20 | status_quo: null 21 | client: 22 | verbose_logging: false 23 | random_seed: null 24 | params: 25 | decoding.decoder.lmweight: 26 | type: range 27 | bounds: [0.0, 8.0] 28 | decoding.decoder.wordscore: 29 | type: range 30 | bounds: [-5.0, 5.0] 31 | decoding.decoder.silweight: 32 | type: range 33 | bounds: [-10.0, 0.0] 34 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/ax_sweep/transformer.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | common_eval: 4 | results_path: ${decoding.exp_dir}/decode/${decoding.decoder.name}_ax/${dataset.gen_subset} 5 | 6 | hydra: 7 | sweeper: 8 | ax_config: 9 | max_trials: 60 10 | early_stop: 11 | minimize: true 12 | max_epochs_without_improvement: 10 13 | epsilon: 0.025 14 | experiment: 15 | name: ${dataset.gen_subset} 16 | objective_name: wer 17 | minimize: true 18 | parameter_constraints: null 19 | outcome_constraints: null 20 | status_quo: null 21 | client: 22 | verbose_logging: false 23 | random_seed: null 24 | params: 25 | decoding.decoder.lmweight: 26 | type: range 27 | bounds: [0.0, 4.0] 28 | decoding.decoder.wordscore: 29 | type: range 30 | bounds: [-5.0, 5.0] 31 | decoding.decoder.silweight: 32 | type: range 33 | bounds: [-8.0, 0.0] 34 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/infer_fsqlm.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | defaults: 4 | - model: null 5 | 6 | hydra: 7 | run: 8 | dir: ${common_eval.results_path}/beam${decoding.beam}_th${decoding.beamthreshold}_lmw${decoding.lmweight}_wrd${decoding.wordscore}_sil${decoding.silweight} 9 | sweep: 10 | dir: ${common_eval.results_path} 11 | subdir: beam${decoding.beam}_th${decoding.beamthreshold}_lmw${decoding.lmweight}_wrd${decoding.wordscore}_sil${decoding.silweight} 12 | 13 | task: 14 | _name: hubert_pretraining 15 | single_target: true 16 | fine_tuning: true 17 | data: ??? 18 | normalize: ??? 19 | 20 | decoding: 21 | type: fairseqlm 22 | lexicon: ??? 23 | lmpath: ??? 24 | beamthreshold: 25 25 | beam: 500 26 | lmweight: 2 27 | wordscore: -1 28 | silweight: 0 29 | unique_wer_file: true 30 | common_eval: 31 | results_path: ??? 32 | path: ??? 33 | post_process: letter 34 | dataset: 35 | max_tokens: 1100000 36 | gen_subset: ??? 37 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/infer_kenlm.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | defaults: 4 | - model: null 5 | 6 | hydra: 7 | run: 8 | dir: ${common_eval.results_path}/beam${decoding.beam}_th${decoding.beamthreshold}_lmw${decoding.lmweight}_wrd${decoding.wordscore}_sil${decoding.silweight} 9 | sweep: 10 | dir: ${common_eval.results_path} 11 | subdir: beam${decoding.beam}_th${decoding.beamthreshold}_lmw${decoding.lmweight}_wrd${decoding.wordscore}_sil${decoding.silweight} 12 | 13 | task: 14 | _name: hubert_pretraining 15 | single_target: true 16 | fine_tuning: true 17 | data: ??? 18 | normalize: ??? 19 | 20 | decoding: 21 | type: kenlm 22 | lexicon: ??? 23 | lmpath: ??? 24 | beamthreshold: 100 25 | beam: 500 26 | lmweight: 2 27 | wordscore: -1 28 | silweight: 0 29 | unique_wer_file: true 30 | common_eval: 31 | results_path: ??? 32 | path: ??? 33 | post_process: letter 34 | dataset: 35 | max_tokens: 1100000 36 | gen_subset: ??? 37 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/infer_viterbi.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | defaults: 4 | - model: null 5 | 6 | hydra: 7 | run: 8 | dir: ${common_eval.results_path}/viterbi 9 | sweep: 10 | dir: ${common_eval.results_path} 11 | subdir: viterbi 12 | 13 | task: 14 | _name: hubert_pretraining 15 | single_target: true 16 | fine_tuning: true 17 | data: ??? 18 | normalize: ??? 19 | 20 | decoding: 21 | type: viterbi 22 | unique_wer_file: true 23 | common_eval: 24 | results_path: ??? 25 | path: ??? 26 | post_process: letter 27 | dataset: 28 | max_tokens: 1100000 29 | gen_subset: ??? 30 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/run/submitit_slurm.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | hydra: 3 | launcher: 4 | cpus_per_task: ${distributed_training.distributed_world_size} 5 | gpus_per_node: ${distributed_training.distributed_world_size} 6 | tasks_per_node: ${hydra.launcher.gpus_per_node} 7 | nodes: 1 8 | mem_gb: 200 9 | timeout_min: 4320 10 | max_num_timeout: 50 11 | name: ${hydra.job.config_name} 12 | submitit_folder: ${hydra.sweep.dir}/submitit 13 | 14 | distributed_training: 15 | distributed_world_size: 1 16 | distributed_no_spawn: true 17 | distributed_port: 29761 18 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/decode/run/submitit_slurm_8gpu.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | hydra: 3 | launcher: 4 | cpus_per_task: ${distributed_training.distributed_world_size} 5 | gpus_per_node: ${distributed_training.distributed_world_size} 6 | tasks_per_node: ${hydra.launcher.gpus_per_node} 7 | nodes: 1 8 | mem_gb: 200 9 | timeout_min: 4320 10 | max_num_timeout: 50 11 | name: ${hydra.job.config_name} 12 | submitit_folder: ${hydra.sweep.dir}/submitit 13 | 14 | distributed_training: 15 | distributed_world_size: 8 16 | distributed_no_spawn: true 17 | distributed_port: 29761 18 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/finetune/ckpt/it1.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | task: 4 | normalize: false 5 | 6 | model: 7 | w2v_path: /checkpoint/wnhsu/w2v/hubert_final/iter1/hubert.km.randcrop.pmw1_0.puw0_0.grpnorm.ml10.mp0_8.untie.mxsz250000.ufreq1.maxtok1400000.MU400k.s1337.ngpu32/checkpoint_last.pt 8 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/finetune/lm/ls_4gram.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | criterion: 4 | wer_kenlm_model: /checkpoint/abdo/old_checkpoint02/datasets/librispeech/4-gram.bin 5 | wer_lexicon: /checkpoint/abdo/old_checkpoint02/datasets/librispeech/10h/raw/lexicon_ltr.lst 6 | wer_lm_weight: 2.0 7 | wer_word_score: -1.0 8 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/finetune/run/submitit_reg.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | hydra: 4 | launcher: 5 | cpus_per_task: 8 6 | gpus_per_node: 8 7 | tasks_per_node: ${hydra.launcher.gpus_per_node} 8 | nodes: 1 9 | comment: null 10 | mem_gb: 384 11 | timeout_min: 4320 12 | max_num_timeout: 100 13 | constraint: volta32gb 14 | name: ${hydra.job.config_name}/${hydra.job.override_dirname} 15 | submitit_folder: ${hydra.sweep.dir}/submitit/%j 16 | 17 | distributed_training: 18 | distributed_world_size: 8 19 | distributed_port: 29671 20 | nprocs_per_node: 8 21 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/pretrain/data/iter1.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | task: 4 | label_dir: ??? 5 | labels: ["km"] 6 | 7 | model: 8 | label_rate: 100 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/pretrain/data/iter2.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | task: 4 | label_dir: ??? 5 | labels: ["km"] 6 | 7 | model: 8 | label_rate: 50 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/config/pretrain/run/submitit_reg.yaml: -------------------------------------------------------------------------------- 1 | # @package _global_ 2 | 3 | hydra: 4 | launcher: 5 | cpus_per_task: 8 6 | gpus_per_node: 8 7 | tasks_per_node: ${hydra.launcher.gpus_per_node} 8 | nodes: 4 9 | comment: null 10 | mem_gb: 384 11 | timeout_min: 4320 12 | max_num_timeout: 100 13 | constraint: volta32gb 14 | name: ${hydra.job.config_name}/${hydra.job.override_dirname} 15 | submitit_folder: ${hydra.sweep.dir}/submitit/%j 16 | 17 | distributed_training: 18 | distributed_world_size: 32 19 | distributed_port: 29671 20 | nprocs_per_node: 8 21 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/hubert/update_ckpt.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | src_ckpt = "/checkpoint/wnhsu/w2v/archived/hubert_base_ls960_it2.pt" 9 | ref_ckpt = "/checkpoint/wnhsu/w2v/hubert_icassp_oss_v3/iter2_km100-400k-grp-L6/oss.km500_p0_1_s334.pmw1_0.puw0_0.grpnorm.ml10.mp0_8.untie.mxsz250000.ufreq1.maxtok1400000.MU100k.s1337.ngpu32/checkpoint_last.pt" 10 | new_ckpt = "/checkpoint/wnhsu/w2v/archived/hubert_base_ls960_it2_updated.pt" 11 | 12 | 13 | def update_state(state): 14 | state["model"]["label_embs_concat"] = state["model"].pop("label_embs") 15 | state["args"].task = "hubert_pretraining" 16 | state["args"].labels = f"['{state['args'].labels}']" 17 | return state 18 | 19 | 20 | src_state = torch.load(src_ckpt) 21 | src_state = update_state(src_state) 22 | torch.save(src_state, new_ckpt) 23 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/language_model/prepare-wikitext-103.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Adapted from https://github.com/facebookresearch/MIXER/blob/master/prepareData.sh 3 | 4 | URLS=( 5 | "https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-v1.zip" 6 | ) 7 | FILES=( 8 | "wikitext-103-v1.zip" 9 | ) 10 | 11 | for ((i=0;i<${#URLS[@]};++i)); do 12 | file=${FILES[i]} 13 | if [ -f $file ]; then 14 | echo "$file already exists, skipping download" 15 | else 16 | url=${URLS[i]} 17 | wget "$url" 18 | if [ -f $file ]; then 19 | echo "$url successfully downloaded." 20 | else 21 | echo "$url not successfully downloaded." 22 | exit -1 23 | fi 24 | if [ ${file: -4} == ".tgz" ]; then 25 | tar zxvf $file 26 | elif [ ${file: -4} == ".tar" ]; then 27 | tar xvf $file 28 | elif [ ${file: -4} == ".zip" ]; then 29 | unzip $file 30 | fi 31 | fi 32 | done 33 | cd .. 34 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/laser/laser_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .laser_task import * # noqa 7 | from .laser_lstm import * # noqa 8 | from .laser_transformer import * # noqa 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/latent_depth/latent_depth_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import multilingual_translation_latent_depth # noqa 7 | from .loss import latent_depth # noqa 8 | from .models import latent_multilingual_transformer # noqa 9 | from .modules import latent_layers # noqa 10 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/latent_depth/latent_depth_src/loss/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/latent_depth/latent_depth_src/loss/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/latent_depth/latent_depth_src/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/latent_depth/latent_depth_src/models/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/latent_depth/latent_depth_src/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/latent_depth/latent_depth_src/modules/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/linformer/README.md: -------------------------------------------------------------------------------- 1 | # Linformer: Self-Attention with Linear Complexity (Wang et al., 2020) 2 | 3 | This example contains code to train Linformer models as described in our paper 4 | [Linformer: Self-Attention with Linear Complexity](https://arxiv.org/abs/2006.04768). 5 | 6 | ## Training a new Linformer RoBERTa model 7 | 8 | You can mostly follow the [RoBERTa pretraining README](/examples/roberta/README.pretraining.md), 9 | updating your training command with `--user-dir examples/linformer/linformer_src --arch linformer_roberta_base`. 10 | 11 | ## Citation 12 | 13 | If you use our work, please cite: 14 | 15 | ```bibtex 16 | @article{wang2020linformer, 17 | title={Linformer: Self-Attention with Linear Complexity}, 18 | author={Wang, Sinong and Li, Belinda and Khabsa, Madian and Fang, Han and Ma, Hao}, 19 | journal={arXiv preprint arXiv:2006.04768}, 20 | year={2020} 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/linformer/linformer_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .models import linformer_roberta # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/linformer/linformer_src/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/linformer/linformer_src/models/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/linformer/linformer_src/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/linformer/linformer_src/modules/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/README.md: -------------------------------------------------------------------------------- 1 | # M2M-100 Tokenization 2 | 3 | We apply different tokenization strategies for different languages following the existing literature. Here we provide tok.sh a tokenizer that can be used to reproduce our results. 4 | 5 | To reproduce the results, follow these steps: 6 | 7 | ``` 8 | tgt_lang=... 9 | reference_translation=... 10 | cat generation_output | grep -P "^H" | sort -V | cut -f 3- | sh tok.sh $tgt_lang > hyp 11 | cat $reference_translation |sh tok.sh $tgt_lang > ref 12 | sacrebleu -tok 'none' ref < hyp 13 | ``` 14 | 15 | ## Installation 16 | 17 | Tools needed for all the languages except Arabic can be installed by running install_dependencies.sh 18 | If you want to evaluate Arabic models, please follow the instructions provided here: http://alt.qcri.org/tools/arabic-normalizer/ to install 19 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/seg_ja.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | SCRIPT=`realpath $0` 7 | KYTEA=`dirname $SCRIPT`/thirdparty/kytea 8 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KYTEA/lib:/usr/local/lib 9 | export PATH=$PATH:"$KYTEA/bin" 10 | 11 | cat - | tr -d "[:blank:]" | kytea -notags 12 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/seg_ko.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | SCRIPT=`realpath $0` 7 | MECAB=`dirname $SCRIPT`/thirdparty/mecab-0.996-ko-0.9.2 8 | 9 | export PATH=$PATH:"$MECAB/bin":"$MECAB/lib" 10 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$MECAB/lib" 11 | 12 | cat - | mecab -O wakati 13 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/thirdparty/.gitignore: -------------------------------------------------------------------------------- 1 | seg_my.py 2 | indic_nlp_library/ 3 | indic_nlp_resources/ 4 | kytea/ 5 | mecab-0.996-ko-0.9.2.tar.gz 6 | mecab-0.996-ko-0.9.2/ 7 | mosesdecoder/ 8 | wat2020.my-en.zip 9 | wat2020.my-en/ 10 | wmt16-scripts/ 11 | mecab-ko-dic-2.1.1-20180720/ 12 | mecab-ko-dic-2.1.1-20180720.tar.gz -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/tokenize_indic.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | # Use: echo {text} | python tokenize_indic.py {language} 8 | 9 | import sys 10 | 11 | from indicnlp.normalize.indic_normalize import IndicNormalizerFactory 12 | from indicnlp.tokenize.indic_tokenize import trivial_tokenize 13 | 14 | 15 | factory = IndicNormalizerFactory() 16 | normalizer = factory.get_normalizer( 17 | sys.argv[1], remove_nuktas=False, nasals_mode="do_nothing" 18 | ) 19 | 20 | for line in sys.stdin: 21 | normalized_line = normalizer.normalize(line.strip()) 22 | tokenized_line = " ".join(trivial_tokenize(normalized_line, sys.argv[1])) 23 | print(tokenized_line) 24 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/tokenize_thai.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import sys 8 | 9 | from pythainlp import word_tokenize 10 | 11 | 12 | for line in sys.stdin: 13 | print(" ".join(word_tokenize(line.strip()))) 14 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/tokenize_zh.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | 8 | import fileinput 9 | 10 | import sacrebleu 11 | 12 | 13 | for line in fileinput.input(): 14 | print(sacrebleu.tokenize_zh(line)) 15 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/m2m_100/tokenizers/tokenizer_ar.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | # 7 | # Please follow the instructions here http://alt.qcri.org/tools/arabic-normalizer/ 8 | # to install tools needed for Arabic 9 | 10 | echo "Please install Arabic tools: http://alt.qcri.org/tools/arabic-normalizer/" 11 | echo "Then update environment variables in tokenizer_ar.sh" 12 | exit 1 13 | 14 | SVMTOOL=... 15 | GOMOSESGO=... 16 | QCRI_ARABIC_NORMALIZER=... 17 | 18 | export PERL5LIB="$SVMTOOL/lib":"$GOMOSESGO/bin/MADA-3.2":$PERL5LIB 19 | 20 | 21 | tempfile=$(mktemp) 22 | cat - > $tempfile 23 | 24 | cd $QCRI_ARABIC_NORMALIZER 25 | 26 | bash qcri_normalizer_mada3.2_aramorph1.2.1.sh $tempfile 27 | cat $tempfile.mada_norm-aramorph.europarl_tok 28 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/megatron_11b/detok.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import argparse 8 | import fileinput 9 | 10 | import sacremoses 11 | 12 | 13 | def main(): 14 | parser = argparse.ArgumentParser(description="") 15 | parser.add_argument("files", nargs="*", help="input files") 16 | args = parser.parse_args() 17 | 18 | detok = sacremoses.MosesDetokenizer() 19 | 20 | for line in fileinput.input(args.files, openhook=fileinput.hook_compressed): 21 | print( 22 | detok.detokenize(line.strip().split(" ")) 23 | .replace(" @", "") 24 | .replace("@ ", "") 25 | .replace(" =", "=") 26 | .replace("= ", "=") 27 | .replace(" – ", "–") 28 | ) 29 | 30 | 31 | if __name__ == "__main__": 32 | main() 33 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/ML50_langs.txt: -------------------------------------------------------------------------------- 1 | ar_AR 2 | cs_CZ 3 | de_DE 4 | en_XX 5 | es_XX 6 | et_EE 7 | fi_FI 8 | fr_XX 9 | gu_IN 10 | hi_IN 11 | it_IT 12 | ja_XX 13 | kk_KZ 14 | ko_KR 15 | lt_LT 16 | lv_LV 17 | my_MM 18 | ne_NP 19 | nl_XX 20 | ro_RO 21 | ru_RU 22 | si_LK 23 | tr_TR 24 | vi_VN 25 | zh_CN 26 | af_ZA 27 | az_AZ 28 | bn_IN 29 | fa_IR 30 | he_IL 31 | hr_HR 32 | id_ID 33 | ka_GE 34 | km_KH 35 | mk_MK 36 | ml_IN 37 | mn_MN 38 | mr_IN 39 | pl_PL 40 | ps_AF 41 | pt_XX 42 | sv_SE 43 | sw_KE 44 | ta_IN 45 | te_IN 46 | th_TH 47 | tl_XX 48 | uk_UA 49 | ur_PK 50 | xh_ZA 51 | gl_ES 52 | sl_SI -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Install dependency 3 | ```bash 4 | pip install -r requirement.txt 5 | ``` 6 | 7 | # Download the data set 8 | ```bash 9 | export WORKDIR_ROOT= 10 | 11 | ``` 12 | The downloaded data will be at $WORKDIR_ROOT/ML50 13 | 14 | # preprocess the data 15 | Install SPM [here](https://github.com/google/sentencepiece) 16 | ```bash 17 | export WORKDIR_ROOT= 18 | export SPM_PATH= 19 | ``` 20 | * $WORKDIR_ROOT/ML50/raw: extracted raw data 21 | * $WORKDIR_ROOT/ML50/dedup: dedup data 22 | * $WORKDIR_ROOT/ML50/clean: data with valid and test sentences removed from the dedup data 23 | 24 | 25 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/download_ML50_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # All rights reserved. 4 | # 5 | # This source code is licensed under the license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | if [ -z $WORKDIR_ROOT ] ; 9 | then 10 | echo "please specify your working directory root in environment variable WORKDIR_ROOT. Exitting..." 11 | exit 12 | fi 13 | 14 | # first run download_wmt20.sh; it will install a few useful tools for other scripts 15 | # TODO: need to print out instructions on downloading a few files which requires manually authentication from the websites 16 | bash ./download_wmt20.sh 17 | 18 | python ./download_wmt19_and_before.py 19 | bash ./download_wat19_my.sh 20 | python ./download_ted_and_extract.py 21 | bash ./download_lotus.sh 22 | bash ./download_iitb.sh 23 | bash ./download_af_xh.sh 24 | 25 | 26 | # IWSLT downloading URLs have changed in between; TODO: fix them: 27 | bash ./download_iwslt_and_extract.sh 28 | 29 | # TODO: globalvoices URLs changed; need to be fixed 30 | bash ./download_flores_data.sh 31 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/download_iitb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # All rights reserved. 4 | # 5 | # This source code is licensed under the license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | 9 | if [ -z $WORKDIR_ROOT ] ; 10 | then 11 | echo "please specify your working directory root in environment variable WORKDIR_ROOT. Exitting..." 12 | exit 13 | fi 14 | 15 | IITB=$WORKDIR_ROOT/IITB 16 | mkdir -p $IITB 17 | pushd $IITB 18 | 19 | wget http://www.cfilt.iitb.ac.in/~moses/iitb_en_hi_parallel/iitb_corpus_download/parallel.tgz 20 | tar -xvzf parallel.tgz 21 | 22 | wget http://www.cfilt.iitb.ac.in/~moses/iitb_en_hi_parallel/iitb_corpus_download/dev_test.tgz 23 | tar -xvzf dev_test.tgz 24 | 25 | DESTDIR=${WORKDIR_ROOT}/ML50/raw/ 26 | 27 | cp parallel/IITB.en-hi.en $DESTDIR/train.hi_IN-en_XX.en_XX 28 | cp parallel/IITB.en-hi.hi $DESTDIR/train.hi_IN-en_XX.hi_IN 29 | 30 | cp dev_test/dev.en $DESTDIR/valid.hi_IN-en_XX.en_XX 31 | cp dev_test/dev.hi $DESTDIR/valid.hi_IN-en_XX.hi_IN 32 | 33 | cp dev_test/test.en $DESTDIR/test.hi_IN-en_XX.en_XX 34 | cp dev_test/test.hi $DESTDIR/test.hi_IN-en_XX.hi_IN 35 | popd -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/preprocess_ML50_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # All rights reserved. 4 | # 5 | # This source code is licensed under the license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | if [ -z $WORKDIR_ROOT ] ; 9 | then 10 | echo "please specify your working directory root in environment variable WORKDIR_ROOT. Exitting..." 11 | exit 12 | fi 13 | 14 | if [ -z $SPM_PATH ] ; 15 | then 16 | echo "Please install sentence piecence from https://github.com/google/sentencepiece and set SPM_PATH pointing to the installed spm_encode.py. Exitting..." 17 | exit 18 | fi 19 | 20 | ML50=${WORKDIR_ROOT}/ML50 21 | 22 | mkdir -p $ML50/dedup 23 | mkdir -p $ML50/cleaned_dedup 24 | 25 | python ./dedup_all.py --from-folder $ML50/raw --to-folder $ML50/dedup 26 | python ./remove_valid_test_in_train.py --from-folder $ML50/dedup --to-folder $ML50/clean 27 | python ./binarize.py --raw-folder $ML50/clean -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/requirement.txt: -------------------------------------------------------------------------------- 1 | wget 2 | pandas -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/data_scripts/utils/strip_sgm.sh: -------------------------------------------------------------------------------- 1 | grep "seg id" | sed 's///g' | sed 's/<\/seg>//g' 2 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/multilingual/multilingual_fairseq_gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # All rights reserved. 4 | # 5 | # This source code is licensed under the license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | lang_pairs="en-fr,en-cs,fr-en,cs-en" 9 | path_2_data=$1 # 10 | lang_list=$2 # 11 | model=$3 # 12 | source_lang=cs 13 | target_lang=en 14 | 15 | fairseq-generate "$path_2_data" \ 16 | --path "$model" \ 17 | --task translation_multi_simple_epoch \ 18 | --gen-subset test \ 19 | --source-lang "$source_lang" \ 20 | --target-lang "$target_lang" \ 21 | --sacrebleu --remove-bpe 'sentencepiece'\ 22 | --batch-size 32 \ 23 | --encoder-langtok "src" \ 24 | --decoder-langtok \ 25 | --lang-dict "$lang_list" \ 26 | --lang-pairs "$lang_pairs" 27 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/noisychannel/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .rerank_options import * # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/pointer_generator/pointer_generator_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import transformer_pg # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/quant_noise/transformer_quantization_config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | # This file defines example configuration arguments for quantizing 7 | # a transformer model with product quantization 8 | 9 | # Number of Centroids for Product Quantization, by default 256 (byte-aligned) 10 | n_centroids: 11 | Linear: 12 | key: in_features 13 | value: {"*": 256} 14 | Embedding: 15 | key: embedding_dim 16 | value: {"*": 256} 17 | 18 | # Block Sizes for Product Quantization 19 | # We suggest: 8 for FFN, 4 for ATTN, 4 for embedding projections, 8 for embeddings 20 | block_sizes: 21 | Linear: 22 | key: fuzzy_name 23 | value: {fc: 8, attn: 4, emb: 4} 24 | Embedding: 25 | key: fuzzy_name 26 | value: {emb: 8} 27 | 28 | # Layers to Quantize Sequentially 29 | # We suggest: first FFN, then EMB, then ATTN 30 | layers_to_quantize: 31 | - decoder\\.layers\\.\d+\\.fc[12] 32 | - decoder\\.embed_tokens\\.embeddings\\.[012]\\.[01] 33 | - decoder\\.layers\\.\d+\\.self_attn\\.(k_proj|v_proj|q_proj|out_proj) 34 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/roberta/commonsense_qa/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import commonsense_qa_task # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/roberta/commonsense_qa/download_cqa_data.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | OUTDIR=data/CommonsenseQA 8 | 9 | mkdir -p $OUTDIR 10 | 11 | wget -O $OUTDIR/train.jsonl https://s3.amazonaws.com/commensenseqa/train_rand_split.jsonl 12 | wget -O $OUTDIR/valid.jsonl https://s3.amazonaws.com/commensenseqa/dev_rand_split.jsonl 13 | wget -O $OUTDIR/test.jsonl https://s3.amazonaws.com/commensenseqa/test_rand_split_no_answers.jsonl 14 | wget -O $OUTDIR/dict.txt https://dl.fbaipublicfiles.com/fairseq/gpt2_bpe/dict.txt 15 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/roberta/config/finetuning/sts_b.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | common: 4 | fp16: true 5 | fp16_init_scale: 4 6 | threshold_loss_scale: 1 7 | fp16_scale_window: 128 8 | log_format: json 9 | log_interval: 200 10 | 11 | task: 12 | _name: sentence_prediction 13 | data: ??? 14 | init_token: 0 15 | separator_token: 2 16 | num_classes: 1 17 | max_positions: 512 18 | 19 | checkpoint: 20 | restore_file: ??? 21 | reset_optimizer: true 22 | reset_dataloader: true 23 | reset_meters: true 24 | no_epoch_checkpoints: true 25 | 26 | distributed_training: 27 | find_unused_parameters: true 28 | distributed_world_size: 1 29 | 30 | criterion: 31 | _name: sentence_prediction 32 | regression_target: true 33 | 34 | dataset: 35 | batch_size: 16 36 | required_batch_size_multiple: 1 37 | max_tokens: 4400 38 | 39 | optimizer: 40 | _name: adam 41 | weight_decay: 0.1 42 | adam_betas: (0.9,0.98) 43 | adam_eps: 1e-06 44 | 45 | lr_scheduler: 46 | _name: polynomial_decay 47 | warmup_updates: 214 48 | 49 | optimization: 50 | clip_norm: 0.0 51 | lr: [2e-05] 52 | max_update: 3598 53 | max_epoch: 10 54 | 55 | model: 56 | _name: roberta 57 | dropout: 0.1 58 | attention_dropout: 0.1 59 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/roberta/config/pretraining/base.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | common: 3 | fp16: true 4 | log_format: json 5 | log_interval: 200 6 | 7 | checkpoint: 8 | no_epoch_checkpoints: true 9 | 10 | task: 11 | _name: masked_lm 12 | data: ??? 13 | sample_break_mode: complete 14 | tokens_per_sample: 512 15 | 16 | criterion: masked_lm 17 | 18 | dataset: 19 | batch_size: 16 20 | ignore_unused_valid_subsets: true 21 | 22 | optimizer: 23 | _name: adam 24 | weight_decay: 0.01 25 | adam_betas: (0.9,0.98) 26 | adam_eps: 1e-06 27 | 28 | lr_scheduler: 29 | _name: polynomial_decay 30 | warmup_updates: 10000 31 | 32 | optimization: 33 | clip_norm: 0 34 | lr: [0.0005] 35 | max_update: 125000 36 | update_freq: [16] 37 | 38 | model: 39 | _name: roberta 40 | max_positions: 512 41 | dropout: 0.1 42 | attention_dropout: 0.1 43 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/roberta/wsc/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import wsc_criterion # noqa 7 | from . import wsc_task # noqa 8 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/rxf/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import rxf_src # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/rxf/rxf_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import label_smoothed_cross_entropy_r3f, sentence_prediction_r3f # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/simultaneous_translation/README.md: -------------------------------------------------------------------------------- 1 | # Simultaneous Translation 2 | Examples of simultaneous translation in fairseq 3 | - [English-to-Japanese text-to-text wait-k model](docs/enja-waitk.md) 4 | - [English-to-Germen text-to-text monotonic multihead attention model](docs/ende-mma.md) 5 | - [English-to-Germen speech-to-text simultaneous translation model](../speech_to_text/docs/simulst_mustc_example.md) 6 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/simultaneous_translation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import models # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/simultaneous_translation/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | for file in sorted(os.listdir(os.path.dirname(__file__))): 11 | if file.endswith(".py") and not file.startswith("_"): 12 | model_name = file[: file.find(".py")] 13 | importlib.import_module( 14 | "examples.simultaneous_translation.models." + model_name 15 | ) 16 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/simultaneous_translation/modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | 7 | import os 8 | import importlib 9 | from fairseq import registry 10 | 11 | ( 12 | build_monotonic_attention, 13 | register_monotonic_attention, 14 | MONOTONIC_ATTENTION_REGISTRY, 15 | _, 16 | ) = registry.setup_registry("--simul-type") 17 | 18 | for file in sorted(os.listdir(os.path.dirname(__file__))): 19 | if file.endswith(".py") and not file.startswith("_"): 20 | model_name = file[: file.find(".py")] 21 | importlib.import_module( 22 | "examples.simultaneous_translation.modules." + model_name 23 | ) 24 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/simultaneous_translation/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | # automatically import any Python files in the criterions/ directory 11 | for file in sorted(os.listdir(os.path.dirname(__file__))): 12 | if file.endswith(".py") and not file.startswith("_"): 13 | module = file[: file.find(".py")] 14 | importlib.import_module("examples.simultaneous_translation.utils." + module) 15 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/__init__.py: -------------------------------------------------------------------------------- 1 | from . import criterions, models, tasks # noqa 2 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | import os 3 | 4 | 5 | # ASG loss requires flashlight bindings 6 | files_to_skip = set() 7 | try: 8 | import flashlight.lib.sequence.criterion 9 | except ImportError: 10 | files_to_skip.add("ASG_loss.py") 11 | 12 | for file in sorted(os.listdir(os.path.dirname(__file__))): 13 | if file.endswith(".py") and not file.startswith("_") and file not in files_to_skip: 14 | criterion_name = file[: file.find(".py")] 15 | importlib.import_module( 16 | "examples.speech_recognition.criterions." + criterion_name 17 | ) 18 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/data/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .asr_dataset import AsrDataset 7 | 8 | 9 | __all__ = [ 10 | "AsrDataset", 11 | ] 12 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/kaldi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/speech_recognition/kaldi/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/kaldi/config/kaldi_initializer.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | data_dir: ??? 4 | fst_dir: ??? 5 | in_labels: ??? 6 | kaldi_root: ??? 7 | lm_arpa: ??? 8 | blank_symbol: 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/models/__init__.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | import os 3 | 4 | 5 | for file in sorted(os.listdir(os.path.dirname(__file__))): 6 | if file.endswith(".py") and not file.startswith("_"): 7 | model_name = file[: file.find(".py")] 8 | importlib.import_module("examples.speech_recognition.models." + model_name) 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/speech_recognition/new/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/conf/hydra/sweeper/ax.yaml: -------------------------------------------------------------------------------- 1 | # @package hydra.sweeper 2 | _target_: hydra_plugins.hydra_ax_sweeper.ax_sweeper.AxSweeper 3 | max_batch_size: null 4 | ax_config: 5 | max_trials: 128 6 | early_stop: 7 | minimize: true 8 | max_epochs_without_improvement: 32 9 | epsilon: 1.0e-05 10 | experiment: 11 | name: ${dataset.gen_subset} 12 | objective_name: wer 13 | minimize: true 14 | parameter_constraints: null 15 | outcome_constraints: null 16 | status_quo: null 17 | client: 18 | verbose_logging: false 19 | random_seed: null 20 | params: 21 | decoding.lmweight: 22 | type: range 23 | bounds: [0.0, 5.0] 24 | decoding.wordscore: 25 | type: range 26 | bounds: [-5.0, 5.0] 27 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/conf/infer.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | defaults: 4 | - task: null 5 | - model: null 6 | 7 | hydra: 8 | run: 9 | dir: ${common_eval.results_path}/${dataset.gen_subset} 10 | sweep: 11 | dir: ${common_eval.results_path} 12 | subdir: ${dataset.gen_subset} 13 | common_eval: 14 | results_path: null 15 | path: null 16 | post_process: letter 17 | quiet: true 18 | dataset: 19 | max_tokens: 1000000 20 | gen_subset: test 21 | distributed_training: 22 | distributed_world_size: 1 23 | decoding: 24 | beam: 5 25 | type: viterbi 26 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/decoders/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/speech_recognition/new/decoders/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/decoders/decoder.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # 5 | # This source code is licensed under the MIT license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | from typing import Union 9 | 10 | from fairseq.data.dictionary import Dictionary 11 | 12 | from .decoder_config import DecoderConfig, FlashlightDecoderConfig 13 | from .base_decoder import BaseDecoder 14 | 15 | 16 | def Decoder( 17 | cfg: Union[DecoderConfig, FlashlightDecoderConfig], tgt_dict: Dictionary 18 | ) -> BaseDecoder: 19 | 20 | if cfg.type == "viterbi": 21 | from .viterbi_decoder import ViterbiDecoder 22 | 23 | return ViterbiDecoder(tgt_dict) 24 | if cfg.type == "kenlm": 25 | from .flashlight_decoder import KenLMDecoder 26 | 27 | return KenLMDecoder(cfg, tgt_dict) 28 | if cfg.type == "fairseqlm": 29 | from .flashlight_decoder import FairseqLMDecoder 30 | 31 | return FairseqLMDecoder(cfg, tgt_dict) 32 | raise NotImplementedError(f"Invalid decoder name: {cfg.name}") 33 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/new/decoders/viterbi_decoder.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # 5 | # This source code is licensed under the MIT license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | import torch 9 | 10 | from typing import List, Dict 11 | 12 | from .base_decoder import BaseDecoder 13 | 14 | 15 | class ViterbiDecoder(BaseDecoder): 16 | def decode( 17 | self, 18 | emissions: torch.FloatTensor, 19 | ) -> List[List[Dict[str, torch.LongTensor]]]: 20 | def get_pred(e): 21 | toks = e.argmax(dim=-1).unique_consecutive() 22 | return toks[toks != self.blank] 23 | 24 | return [[{"tokens": get_pred(x), "score": 0}] for x in emissions] 25 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_recognition/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | import os 3 | 4 | 5 | for file in sorted(os.listdir(os.path.dirname(__file__))): 6 | if file.endswith(".py") and not file.startswith("_"): 7 | task_name = file[: file.find(".py")] 8 | importlib.import_module("examples.speech_recognition.tasks." + task_name) 9 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_synthesis/README.md: -------------------------------------------------------------------------------- 1 | Speech Synthesis (S^2) 2 | === 3 | 4 | Speech synthesis with fairseq. 5 | 6 | - Autoregressive and non-autoregressive models 7 | - Multi-speaker synthesis 8 | - Audio preprocessing 9 | - Automatic metrics 10 | - Similar data configuration as [S2T](../speech_to_text/README.md) 11 | 12 | 13 | ## Examples 14 | - [Single-speaker synthesis on LJSpeech](docs/ljspeech_example.md) 15 | - [Multi-speaker synthesis on VCTK](docs/vctk_example.md) 16 | - [Multi-speaker synthesis on Common Voice](docs/common_voice_example.md) 17 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_synthesis/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_synthesis/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_synthesis/preprocessing/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_synthesis/preprocessing/denoiser/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_text_joint_to_text/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import tasks, criterions, models # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_text_joint_to_text/configs/mustc_noise.list: -------------------------------------------------------------------------------- 1 | "(Applause) NOISE 2 | "(Laughter) VOICE 3 | "(Laughter)" VOICE 4 | (Applause) NOISE 5 | (Applause). NOISE 6 | (Audience) VOICE 7 | (Audio) NOISE 8 | (Beat) NOISE 9 | (Beatboxing) VOICE 10 | (Beep) NOISE 11 | (Beeps) NOISE 12 | (Cheering) VOICE 13 | (Cheers) VOICE 14 | (Claps) NOISE 15 | (Clicking) NOISE 16 | (Clunk) NOISE 17 | (Coughs) NOISE 18 | (Drums) NOISE 19 | (Explosion) NOISE 20 | (Gasps) VOICE 21 | (Guitar) NOISE 22 | (Honk) NOISE 23 | (Laugher) VOICE 24 | (Laughing) VOICE 25 | (Laughs) VOICE 26 | (Laughter) VOICE 27 | (Laughter). VOICE 28 | (Laughter)... VOICE 29 | (Mumbling) VOICE 30 | (Music) NOISE 31 | (Noise) NOISE 32 | (Recording) VOICE 33 | (Ringing) NOISE 34 | (Shouts) VOICE 35 | (Sigh) VOICE 36 | (Sighs) VOICE 37 | (Silence) NOISE 38 | (Singing) VOICE 39 | (Sings) VOICE 40 | (Spanish) VOICE 41 | (Static) NOISE 42 | (Tones) NOISE 43 | (Trumpet) NOISE 44 | (Video) NOISE 45 | (Video): NOISE 46 | (Voice-over) NOISE 47 | (Whistle) NOISE 48 | (Whistling) NOISE 49 | (video): NOISE 50 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_text_joint_to_text/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | for file in os.listdir(os.path.dirname(__file__)): 11 | if file.endswith(".py") and not file.startswith("_"): 12 | criterion_name = file[: file.find(".py")] 13 | importlib.import_module( 14 | "examples.speech_text_joint_to_text.criterions." + criterion_name 15 | ) 16 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_text_joint_to_text/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | for file in os.listdir(os.path.dirname(__file__)): 10 | if file.endswith(".py") and not file.startswith("_"): 11 | model_name = file[: file.find(".py")] 12 | importlib.import_module( 13 | "examples.speech_text_joint_to_text.models." + model_name 14 | ) 15 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/speech_text_joint_to_text/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | for file in os.listdir(os.path.dirname(__file__)): 10 | if file.endswith(".py") and not file.startswith("_"): 11 | task_name = file[: file.find(".py")] 12 | importlib.import_module("examples.speech_text_joint_to_text.tasks." + task_name) 13 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/metrics/README.md: -------------------------------------------------------------------------------- 1 | # GSLM Metrics 2 | 3 | ## ASR Metrics 4 | The suite of metrics here uses an ASR model to transcribe the synthesized speech into text, and then uses text-based metrics. We also use word error rate from ASR transcription itself as one of the metrics. [More details](asr_metrics) 5 | 6 | ## ABX Metrics 7 | We use [ABX](https://www.semanticscholar.org/paper/ABX-Discriminability-Measures-and-Applications-Schatz/13d3537228f728c1063cc83743cb118bba3367a0) to evaluate how well-separated phonetic categories are with quantized representations. [More details](abx_metrics) 8 | 9 | ## sWUGGY and sBLIMP 10 | We refer to [ZeroSpeech challenge](https://www.zerospeech.com/2021/track_s.html#scoring-based-metrics) for details on the sWUGGY and sBLIMP metrics. 11 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/metrics/asr_metrics/misc/dict.ltr.txt: -------------------------------------------------------------------------------- 1 | | 94802 2 | E 51860 3 | T 38431 4 | A 33152 5 | O 31495 6 | N 28855 7 | I 28794 8 | H 27187 9 | S 26071 10 | R 23546 11 | D 18289 12 | L 16308 13 | U 12400 14 | M 10685 15 | W 10317 16 | C 9844 17 | F 9062 18 | G 8924 19 | Y 8226 20 | P 6890 21 | B 6339 22 | V 3936 23 | K 3456 24 | ' 1023 25 | X 636 26 | J 598 27 | Q 437 28 | Z 213 29 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/speech2unit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/textless_nlp/gslm/speech2unit/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/speech2unit/clustering/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/textless_nlp/gslm/speech2unit/clustering/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/speech2unit/clustering/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from typing import List, Tuple 7 | 8 | 9 | def get_audio_files(manifest_path: str) -> Tuple[str, List[str], List[int]]: 10 | fnames, sizes = [], [] 11 | with open(manifest_path, "r") as f: 12 | root_dir = f.readline().strip() 13 | for line in f: 14 | items = line.strip().split("\t") 15 | assert ( 16 | len(items) == 2 17 | ), f"File must have two columns separated by tab. Got {line}" 18 | fnames.append(items[0]) 19 | sizes.append(int(items[1])) 20 | return root_dir, fnames, sizes 21 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/speech2unit/pretrained/logmel_feature_reader.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import soundfile as sf 7 | import torch 8 | import torchaudio.compliance.kaldi as kaldi 9 | 10 | 11 | class LogMelFeatureReader: 12 | """ 13 | Wrapper class to run inference on HuBERT model. 14 | Helps extract features for a given audio file. 15 | """ 16 | 17 | def __init__(self, *args, **kwargs): 18 | self.num_mel_bins = kwargs.get("num_mel_bins", 80) 19 | self.frame_length = kwargs.get("frame_length", 25.0) 20 | 21 | def get_feats(self, file_path): 22 | wav, sr = sf.read(file_path) 23 | feats = torch.from_numpy(wav).float() 24 | feats = kaldi.fbank( 25 | feats.unsqueeze(0), 26 | num_mel_bins=self.num_mel_bins, 27 | frame_length=self.frame_length, 28 | sample_frequency=sr, 29 | ) 30 | return feats 31 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/tools/README.md: -------------------------------------------------------------------------------- 1 | # GSLM Tools 2 | 3 | ## Resynthesis 4 | You can use the command line tool below to input an audio file and get the resynthesized audio. This tool implements the unsupervised method for resynthesis described in the paper. The way to invoke the command line tool is shown below. 5 | ``` 6 | FAIRSEQ_ROOT= 7 | TYPE= 8 | ACOUSTIC_MODEL_PATH= 9 | LAYER= 10 | KM_MODEL_PATH= 11 | TTS_MODEL_PATH= 12 | WAVEGLOW_PATH= 13 | 14 | PYTHONPATH=${FAIRSEQ_ROOT}:${FAIRSEQ_ROOT}/examples/textless_nlp/gslm/unit2speech python ${FAIRSEQ_ROOT}/examples/textless_nlp/gslm/tools/gen_speech.py \ 15 | --feature_type $TYPE \ 16 | --acoustic_model_path $ACOUSTIC_MODEL_PATH \ 17 | --layer $LAYER \ 18 | --kmeans_model_path $KM_MODEL_PATH \ 19 | --tts_model_path $TTS_MODEL_PATH \ 20 | --waveglow_path $WAVEGLOW_PATH \ 21 | --max_decoder_steps 2000 22 | ``` -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/unit2speech/multiproc.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import torch 4 | import sys 5 | import subprocess 6 | 7 | argslist = list(sys.argv)[1:] 8 | log_dir = argslist[-1] 9 | num_gpus = torch.cuda.device_count() 10 | argslist.append('--n_gpus={}'.format(num_gpus)) 11 | workers = [] 12 | job_id = time.strftime("%Y_%m_%d-%H%M%S") 13 | argslist.append("--group_name=group_{}".format(job_id)) 14 | 15 | print("GPU log directory is {}".format(log_dir)) 16 | os.makedirs(log_dir, exist_ok=True) 17 | for i in range(num_gpus): 18 | argslist.append('--rank={}'.format(i)) 19 | stdout = None if i == 0 else open("{}/{}_GPU_{}.log".format(log_dir, job_id, i), 20 | "w") 21 | print(argslist) 22 | p = subprocess.Popen([str(sys.executable)]+argslist, stdout=stdout) 23 | workers.append(p) 24 | argslist = argslist[:-1] 25 | 26 | for p in workers: 27 | p.wait() 28 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/unit2speech/tacotron2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/textless_nlp/gslm/unit2speech/tacotron2/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/textless_nlp/gslm/unit2speech/tacotron2/symbols.py: -------------------------------------------------------------------------------- 1 | """ from https://github.com/keithito/tacotron """ 2 | 3 | ''' 4 | Defines the set of symbols used in text input to the model. 5 | 6 | The default is a set of ASCII characters that works well for English or text that has been run through Unidecode. For other data, you can modify _characters. See TRAINING_DATA.md for details. ''' 7 | from . import cmudict 8 | 9 | _pad = '_' 10 | _punctuation = '!\'(),.:;? ' 11 | _special = '-' 12 | _letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 13 | 14 | # Prepend "@" to ARPAbet symbols to ensure uniqueness (some are the same as uppercase letters): 15 | _arpabet = ['@' + s for s in cmudict.valid_symbols] 16 | 17 | # Export all symbols: 18 | symbols = [_pad] + list(_special) + list(_punctuation) + list(_letters) + _arpabet 19 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/translation_moe/translation_moe_src/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import translation_moe # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/translation_moe/translation_moe_src/logsumexp_moe.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | 9 | class LogSumExpMoE(torch.autograd.Function): 10 | """Standard LogSumExp forward pass, but use *posterior* for the backward. 11 | 12 | See `"Mixture Models for Diverse Machine Translation: Tricks of the Trade" 13 | (Shen et al., 2019) `_. 14 | """ 15 | 16 | @staticmethod 17 | def forward(ctx, logp, posterior, dim=-1): 18 | ctx.save_for_backward(posterior) 19 | ctx.dim = dim 20 | return torch.logsumexp(logp, dim=dim) 21 | 22 | @staticmethod 23 | def backward(ctx, grad_output): 24 | (posterior,) = ctx.saved_tensors 25 | grad_logp = grad_output.unsqueeze(ctx.dim) * posterior 26 | return grad_logp, None, None 27 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/truncated_bptt/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import transformer_xl_model, truncated_bptt_lm_task # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/unsupervised_quality_estimation/repeat_lines.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import argparse 7 | import sys 8 | 9 | 10 | def _normalize_spaces(line): 11 | return " ".join(line.split()) 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser() 16 | parser.add_argument("-i", "--input_file", required=True, type=str) 17 | parser.add_argument("-n", "--repeat_times", required=True, type=int) 18 | parser.add_argument("-o", "--output_file", required=False, type=str) 19 | args = parser.parse_args() 20 | stream = open(args.output_file, "w") if args.output_file else sys.stdout 21 | 22 | for line in open(args.input_file): 23 | for _ in range(args.repeat_times): 24 | stream.write(_normalize_spaces(line) + "\n") 25 | 26 | 27 | if __name__ == "__main__": 28 | main() 29 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/wav2vec/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/config/finetuning/base_960h.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | common: 4 | fp16: true 5 | log_format: json 6 | log_interval: 200 7 | 8 | checkpoint: 9 | no_epoch_checkpoints: true 10 | best_checkpoint_metric: wer 11 | 12 | task: 13 | _name: audio_finetuning 14 | data: ??? 15 | normalize: false 16 | labels: ltr 17 | 18 | dataset: 19 | num_workers: 6 20 | max_tokens: 3200000 21 | skip_invalid_size_inputs_valid_test: true 22 | valid_subset: dev_other 23 | 24 | distributed_training: 25 | ddp_backend: legacy_ddp 26 | distributed_world_size: 8 27 | 28 | criterion: 29 | _name: ctc 30 | zero_infinity: true 31 | 32 | optimization: 33 | max_update: 320000 34 | lr: [0.0001] 35 | sentence_avg: true 36 | 37 | optimizer: 38 | _name: adam 39 | adam_betas: (0.9,0.98) 40 | adam_eps: 1e-08 41 | 42 | lr_scheduler: 43 | _name: tri_stage 44 | phase_ratio: [0.1, 0.4, 0.5] 45 | final_lr_scale: 0.05 46 | 47 | model: 48 | _name: wav2vec_ctc 49 | w2v_path: ??? 50 | apply_mask: true 51 | mask_prob: 0.5 52 | mask_channel_prob: 0.1 53 | mask_channel_length: 64 54 | layerdrop: 0.1 55 | activation_dropout: 0.1 56 | feature_grad_mult: 0.0 57 | freeze_finetune_updates: 0 58 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/config/finetuning/vox_960h.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | common: 4 | fp16: true 5 | log_format: json 6 | log_interval: 200 7 | 8 | checkpoint: 9 | no_epoch_checkpoints: true 10 | best_checkpoint_metric: wer 11 | 12 | task: 13 | _name: audio_finetuning 14 | data: ??? 15 | normalize: true 16 | labels: ltr 17 | 18 | dataset: 19 | num_workers: 6 20 | max_tokens: 1280000 21 | skip_invalid_size_inputs_valid_test: true 22 | valid_subset: dev_other 23 | 24 | distributed_training: 25 | ddp_backend: legacy_ddp 26 | distributed_world_size: 24 27 | 28 | criterion: 29 | _name: ctc 30 | zero_infinity: true 31 | 32 | optimization: 33 | max_update: 320000 34 | lr: [0.00003] 35 | sentence_avg: true 36 | 37 | optimizer: 38 | _name: adam 39 | adam_betas: (0.9,0.98) 40 | adam_eps: 1e-08 41 | 42 | lr_scheduler: 43 | _name: tri_stage 44 | phase_ratio: [0.1, 0.4, 0.5] 45 | final_lr_scale: 0.05 46 | 47 | model: 48 | _name: wav2vec_ctc 49 | w2v_path: ??? 50 | apply_mask: true 51 | mask_prob: 0.5 52 | mask_channel_prob: 0.25 53 | mask_channel_length: 64 54 | layerdrop: 0.1 55 | activation_dropout: 0.1 56 | feature_grad_mult: 0.0 57 | freeze_finetune_updates: 10000 58 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/examples/wav2vec/unsupervised/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/config/generate/viterbi.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | fairseq: 4 | task: 5 | _name: unpaired_audio_text 6 | labels: phn 7 | data: ??? 8 | sort_by_length: false 9 | shuffle: false 10 | text_data: '' 11 | 12 | common_eval: 13 | path: ??? 14 | quiet: true 15 | 16 | dataset: 17 | gen_subset: valid 18 | batch_size: 1 19 | 20 | w2l_decoder: VITERBI 21 | post_process: silence 22 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/data/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .extracted_features_dataset import ExtractedFeaturesDataset 7 | from .random_input_dataset import RandomInputDataset 8 | 9 | 10 | __all__ = [ 11 | "ExtractedFeaturesDataset", 12 | "RandomInputDataset", 13 | ] 14 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/cmd.sh: -------------------------------------------------------------------------------- 1 | # you can change cmd.sh depending on what type of queue you are using. 2 | # If you have no queueing system and want to run on a local machine, you 3 | # can change all instances 'queue.pl' to run.pl (but be careful and run 4 | # commands one by one: most recipes will exhaust the memory on your 5 | # machine). queue.pl works with GridEngine (qsub). slurm.pl works 6 | # with slurm. Different queues are configured differently, with different 7 | # queue names and different ways of specifying things like memory; 8 | # to account for these differences you can create and edit the file 9 | # conf/queue.conf to match your queue's configuration. Search for 10 | # conf/queue.conf in http://kaldi-asr.org/doc/queue.html for more information, 11 | # or search for the string 'default_config' in utils/queue.pl or utils/slurm.pl. 12 | 13 | export train_cmd="run.pl --mem 2G" 14 | export decode_cmd="run.pl --mem 4G" 15 | export mkgraph_cmd="run.pl --mem 8G" 16 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/decode_phone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # decode into phones (and prepare a new data directory for HMM outputs) 4 | 5 | . ./path.sh 6 | 7 | set -eu 8 | 9 | out_dir= # same as in train.sh 10 | dec_lmparam= # LM hyperparameters (e.g., 7.0.0) 11 | dec_exp= 12 | dec_script= 13 | dec_splits="train valid" 14 | dec_data_dir=$out_dir/dec_data # where to write HMM output 15 | 16 | data_dir=${out_dir}/data 17 | 18 | local/decode.sh --nj 40 --graph_name graph \ 19 | --val_sets "$dec_splits" --decode_script $dec_script \ 20 | $out_dir/exp/$dec_exp $data_dir $data_dir/lang_test 21 | 22 | if [ ! -z $dec_lmparam ]; then 23 | for x in $dec_splits; do 24 | mkdir -p $dec_data_dir/$x 25 | cp $data_dir/$x/{feats.scp,cmvn.scp,utt2spk,spk2utt} $dec_data_dir/$x/ 26 | 27 | tra=$out_dir/exp/$dec_exp/decode_${x}/scoring/${dec_lmparam}.tra 28 | cat $tra | utils/int2sym.pl -f 2- $data_dir/lang/words.txt | \ 29 | sed 's:::g' | sed 's:::g' > $dec_data_dir/${x}/text 30 | utils/fix_data_dir.sh $dec_data_dir/${x} 31 | echo "WER on ${x} is" $(compute-wer ark:$data_dir/${x}_gt/text ark:$dec_data_dir/$x/text | cut -d" " -f2-) 32 | done 33 | fi 34 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/decode_word_step2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # prepare a new data directory of HMM word output 4 | 5 | . ./path.sh 6 | 7 | set -eu 8 | 9 | out_dir= # same as in train.sh 10 | dec_lmparam= # LM hyperparameters (e.g., 7.0.0) 11 | 12 | dec_exp=tri3b # what HMM stage to decode (e.g., tri3b) 13 | dec_suffix=word 14 | dec_splits="train valid" 15 | dec_data_dir=$out_dir/dec_data_word # where to write HMM output 16 | 17 | data_dir=$out_dir/data 18 | wrd_data_dir=$out_dir/data_word 19 | 20 | for x in $dec_splits; do 21 | mkdir -p $dec_data_dir/$x 22 | cp $data_dir/$x/{feats.scp,cmvn.scp,utt2spk,spk2utt} $dec_data_dir/$x/ 23 | 24 | tra=$out_dir/exp/$dec_exp/decode${dec_suffix}_${x}/scoring/${dec_lmparam}.tra 25 | cat $tra | utils/int2sym.pl -f 2- $data_dir/lang_word/words.txt | \ 26 | sed 's:::g' | sed 's:::g' > $dec_data_dir/$x/text 27 | utils/fix_data_dir.sh $dec_data_dir/$x 28 | echo "WER on $x is" $(compute-wer ark:$wrd_data_dir/${x}_gt/text ark:$dec_data_dir/$x/text | cut -d" " -f2-) 29 | done 30 | 31 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/copy_aligned_text.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | for idx, line in enumerate(sys.stdin): 4 | print(f"utt{idx:010d} {line}", end='') -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/decode.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -u 4 | 5 | val_sets="dev_other" 6 | graph_name=graph 7 | decode_suffix="" 8 | decode_script="steps/decode_fmllr.sh" 9 | decode_args="" 10 | nj=60 11 | 12 | . ./cmd.sh 13 | . ./path.sh 14 | . parse_options.sh 15 | 16 | set -x 17 | exp_dir=$1 18 | data_root=$2 19 | lang_test=$3 20 | 21 | graph=$exp_dir/$graph_name 22 | 23 | if [ ! -d $graph ]; then 24 | utils/mkgraph.sh $lang_test $exp_dir $graph 25 | fi 26 | 27 | for part in $val_sets; do 28 | dec_dir=$exp_dir/decode${decode_suffix}_${part} 29 | if [ ! -d $dec_dir ]; then 30 | echo "decoding $part for $exp_dir" 31 | $decode_script --nj $nj --cmd "$decode_cmd" $decode_args \ 32 | $graph $data_root/$part $dec_dir & 33 | else 34 | echo "$dec_dir exists. skip" 35 | fi 36 | done 37 | 38 | wait 39 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/prepare_lang.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sil_prob=0.5 4 | num_sil_states=3 5 | num_nonsil_states=1 6 | 7 | . ./cmd.sh 8 | . ./path.sh 9 | . parse_options.sh 10 | 11 | set -eux 12 | 13 | dict=$1 14 | data_dir=$2 15 | 16 | dict_dir=$data_dir/local/dict 17 | tmplm_dir=$data_dir/local/lang_tmp 18 | lm_dir=$data_dir/lang 19 | 20 | mkdir -p $dict_dir $tmplm_dir $lm_dir 21 | 22 | # prepare dict 23 | echo "SIL" > $dict_dir/silence_phones.txt 24 | echo "SIL" > $dict_dir/optional_silence.txt 25 | awk '{print $1}' $dict > $dict_dir/nonsilence_phones.txt 26 | 27 | echo "SIL SIL" > $dict_dir/lexicon.txt 28 | echo " SIL" >> $dict_dir/lexicon.txt 29 | awk '{print $1" "$1}' $dict >> $dict_dir/lexicon.txt 30 | 31 | echo "SIL" > $dict_dir/extra_questions.txt 32 | awk '{printf $1" "} END {printf "\n"}' $dict >> $dict_dir/extra_questions.txt 33 | 34 | # prepare lang 35 | utils/prepare_lang.sh --sil-prob $sil_prob --position-dependent-phones false \ 36 | --num_sil_states $num_sil_states --num_nonsil_states $num_nonsil_states \ 37 | $dict_dir "" $tmplm_dir $lm_dir 38 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/prepare_lang_word.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | num_sil_states=3 4 | num_nonsil_states=1 5 | 6 | . ./cmd.sh 7 | . ./path.sh 8 | . parse_options.sh 9 | 10 | set -eux 11 | 12 | dict=$1 13 | data_dir=$2 14 | lexicon=$3 15 | 16 | dict_dir=$data_dir/local/dict_word 17 | tmplm_dir=$data_dir/local/lang_tmp_word 18 | lm_dir=$data_dir/lang_word 19 | 20 | mkdir -p $dict_dir $tmplm_dir $lm_dir 21 | 22 | # prepare dict 23 | echo "SIL" > $dict_dir/silence_phones.txt 24 | echo "SIL" > $dict_dir/optional_silence.txt 25 | awk '{print $1}' $dict > $dict_dir/nonsilence_phones.txt 26 | 27 | (echo "!SIL SIL"; echo " SIL";) | cat - $lexicon > $dict_dir/lexicon.txt 28 | 29 | echo "SIL" > $dict_dir/extra_questions.txt 30 | awk '{printf $1" "} END {printf "\n"}' $dict >> $dict_dir/extra_questions.txt 31 | 32 | # prepare lang 33 | utils/prepare_lang.sh --position-dependent-phones false \ 34 | --num_sil_states $num_sil_states --num_nonsil_states $num_nonsil_states \ 35 | $dict_dir "" $tmplm_dir $lm_dir 36 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/prepare_lm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | langdir="" 4 | lmdir="" 5 | 6 | . ./cmd.sh 7 | . ./path.sh 8 | . parse_options.sh 9 | 10 | arpa_lm=$1 11 | data=$2 12 | 13 | if [ -z $langdir ]; then 14 | langdir=$data/lang 15 | fi 16 | if [ -z $lmdir ]; then 17 | lmdir=$data/lang_test 18 | fi 19 | 20 | if [ ! -d $langdir ]; then 21 | echo "$langdir not found. run local/prepare_lang.sh first" && exit 1 22 | fi 23 | 24 | mkdir -p $lmdir 25 | cp -r $langdir/* $lmdir 26 | 27 | if [[ "$arpa_lm" == *.gz ]]; then 28 | gunzip -c $arpa_lm | arpa2fst --disambig-symbol=#0 --read-symbol-table=$lmdir/words.txt - $lmdir/G.fst 29 | else 30 | arpa2fst --disambig-symbol=#0 --read-symbol-table=$lmdir/words.txt $arpa_lm $lmdir/G.fst 31 | fi 32 | fstisstochastic $lmdir/G.fst 33 | utils/validate_lang.pl $lmdir || exit 1 34 | 35 | echo "done preparing lm ($lmdir)" 36 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/unsup_select_decode.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | split="dev_other" 4 | ref_txt="" # ground truth transcript path 5 | psd_txt="" # pseudo transcript path 6 | get_best_wer=true 7 | dec_name="decode" 8 | graph_name="graph" 9 | kenlm_path=/checkpoint/abaevski/data/speech/libri/librispeech_lm_novox.phnc_o6.bin 10 | 11 | . ./cmd.sh 12 | . ./path.sh 13 | . parse_options.sh 14 | 15 | exp_root=$1 16 | unsup_args="" 17 | if [ $# -ge 2 ]; then 18 | unsup_args=$2 19 | fi 20 | 21 | set -eu 22 | 23 | if [ ! -z $ref_txt ] && $get_best_wer; then 24 | echo "==== WER w.r.t. real transcript (select based on unsupervised metric)" 25 | for x in $exp_root/*/${dec_name}_${split}*; do 26 | lang=$(dirname $x)/$graph_name 27 | 28 | ( 29 | for tra in $x/scoring/*.tra; do 30 | cat $tra | utils/int2sym.pl -f 2- $lang/words.txt | sed 's:::g' | sed 's:::g' > $tra.txt 31 | python local/unsup_select.py $psd_txt $tra.txt --kenlm_path $kenlm_path --gt_tra $ref_txt $unsup_args 32 | done 2>/dev/null | grep "score=" | sed 's/=/ /g' | sed 's/;//g' | sort -k3n | head -n1 33 | ) & 34 | done 35 | fi 36 | wait 37 | 38 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/local/unsup_select_decode_word.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | split="dev_other" 4 | ref_txt="" # ground truth transcript path 5 | psd_txt="" # pseudo transcript path 6 | get_best_wer=true 7 | dec_name="decode" 8 | graph_name="graph" 9 | kenlm_path=/checkpoint/abaevski/data/speech/libri/librispeech_lm_novox.phnc_o6.bin 10 | phonemize_lexicon="" 11 | 12 | . ./cmd.sh 13 | . ./path.sh 14 | . parse_options.sh 15 | . /private/home/wnhsu/unsup_asr/fairseq-py-unsup/env.sh 16 | 17 | exp_root=$1 18 | 19 | set -eu 20 | 21 | if [ ! -z $ref_txt ] && $get_best_wer; then 22 | echo "==== WER w.r.t. real transcript (select based on unsupervised metric)" 23 | for x in $exp_root/*/${dec_name}_${split}*; do 24 | lang=$(dirname $x)/$graph_name 25 | 26 | for tra in $x/scoring/*.tra; do 27 | cat $tra | utils/int2sym.pl -f 2- $lang/words.txt | sed 's:\::g' > $tra.txt 28 | python local/unsup_select.py $psd_txt $tra.txt \ 29 | --kenlm_path $kenlm_path --gt_tra $ref_txt --phonemize \ 30 | --phonemize_lexicon "$phonemize_lexicon" 31 | done | grep "score=" | sed 's/=/ /g' | sed 's/;//g' | sort -k3n | head -n1 32 | done 33 | fi 34 | 35 | 36 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/path.sh: -------------------------------------------------------------------------------- 1 | export KALDI_ROOT=`pwd`/../../.. 2 | export PATH=$PWD/utils/:$KALDI_ROOT/tools/openfst/bin:$PWD:$PATH 3 | [ ! -f $KALDI_ROOT/tools/config/common_path.sh ] && echo >&2 "The standard file $KALDI_ROOT/tools/config/common_path.sh is not present -> Exit!" && exit 1 4 | . $KALDI_ROOT/tools/config/common_path.sh 5 | export LC_ALL=C 6 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/steps: -------------------------------------------------------------------------------- 1 | ../../wsj/s5/steps -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/kaldi_self_train/st/utils: -------------------------------------------------------------------------------- 1 | ../../wsj/s5/utils -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .wav2vec_u import Wav2vec_U 7 | 8 | 9 | __all__ = [ 10 | "Wav2vec_U", 11 | ] 12 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/copy_labels.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import sys 8 | 9 | for idx, line in enumerate(sys.stdin): 10 | print(f"utt{idx:010d} {line}", end="") 11 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/filter_lexicon.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import argparse 8 | import sys 9 | 10 | from fairseq.data import Dictionary 11 | 12 | 13 | def get_parser(): 14 | parser = argparse.ArgumentParser( 15 | description="filters a lexicon given a unit dictionary" 16 | ) 17 | parser.add_argument("-d", "--unit-dict", help="unit dictionary", required=True) 18 | return parser 19 | 20 | 21 | def main(): 22 | parser = get_parser() 23 | args = parser.parse_args() 24 | 25 | d = Dictionary.load(args.unit_dict) 26 | symbols = set(d.symbols) 27 | 28 | for line in sys.stdin: 29 | items = line.rstrip().split() 30 | skip = len(items) < 2 31 | for x in items[1:]: 32 | if x not in symbols: 33 | skip = True 34 | break 35 | if not skip: 36 | print(line, end="") 37 | 38 | 39 | if __name__ == "__main__": 40 | main() 41 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/filter_tsv.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import os 8 | import argparse 9 | import sys 10 | 11 | 12 | parser = argparse.ArgumentParser() 13 | parser.add_argument("--tsv", required=True, type=str) 14 | parser.add_argument("--no-skip", action="store_true") 15 | parser.add_argument("--keep", action="store_true") 16 | params = parser.parse_args() 17 | 18 | 19 | def get_fname(line): 20 | p = os.path.basename(line.split("\t")[0]) 21 | p = os.path.splitext(p)[0] 22 | return p 23 | 24 | 25 | # filenames to exclude 26 | seen = set() 27 | with open(params.tsv) as f: 28 | if not params.no_skip: 29 | root = next(f).rstrip() 30 | for line in f: 31 | seen.add(get_fname(line)) 32 | 33 | for i, line in enumerate(sys.stdin): 34 | exists = get_fname(line) in seen 35 | keep = (exists and params.keep) or (not exists and not params.keep) 36 | if i == 0 or keep: 37 | print(line, end="") 38 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/ltr_to_wrd.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import sys 8 | 9 | 10 | def main(): 11 | for line in sys.stdin: 12 | print(line.replace(" ", "").replace("|", " ").strip()) 13 | 14 | 15 | if __name__ == "__main__": 16 | main() 17 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/normalize_text.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import regex 8 | import sys 9 | 10 | 11 | def main(): 12 | filter_r = regex.compile(r"[^\p{L}\p{N}\p{M}\' \-]") 13 | 14 | for line in sys.stdin: 15 | line = line.strip() 16 | line = filter_r.sub(" ", line) 17 | line = " ".join(line.split()) 18 | print(line) 19 | 20 | 21 | if __name__ == "__main__": 22 | main() 23 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/scripts/wrd_to_ltr.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import sys 8 | 9 | 10 | def main(): 11 | for line in sys.stdin: 12 | print(" ".join(list(line.strip().replace(" ", "|"))) + " |") 13 | 14 | 15 | if __name__ == "__main__": 16 | main() 17 | -------------------------------------------------------------------------------- /OFA/fairseq/examples/wav2vec/unsupervised/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .unpaired_audio_text import UnpairedAudioText 7 | 8 | 9 | __all__ = [ 10 | "UnpairedAudioText", 11 | ] 12 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/benchmark/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | # import models/tasks to register them 7 | from . import dummy_dataset, dummy_lm, dummy_masked_lm, dummy_model, dummy_mt # noqa 8 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/benchmark/dummy_dataset.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from fairseq.data import FairseqDataset 3 | 4 | 5 | class DummyDataset(FairseqDataset): 6 | def __init__(self, batch, num_items, item_size): 7 | super().__init__() 8 | self.batch = batch 9 | self.num_items = num_items 10 | self.item_size = item_size 11 | 12 | def __getitem__(self, index): 13 | return index 14 | 15 | def __len__(self): 16 | return self.num_items 17 | 18 | def collater(self, samples): 19 | return self.batch 20 | 21 | @property 22 | def sizes(self): 23 | return np.array([self.item_size] * self.num_items) 24 | 25 | def num_tokens(self, index): 26 | return self.item_size 27 | 28 | def size(self, index): 29 | return self.item_size 30 | 31 | def ordered_indices(self): 32 | return np.arange(self.num_items) 33 | 34 | @property 35 | def supports_prefetch(self): 36 | return False 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/clib/libbleu/module.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #include 10 | 11 | static PyMethodDef method_def[] = {{NULL, NULL, 0, NULL}}; // NOLINT 12 | 13 | static struct PyModuleDef module_def = { 14 | PyModuleDef_HEAD_INIT, 15 | "libbleu", /* name of module */ 16 | // NOLINTNEXTLINE 17 | NULL, /* module documentation, may be NULL */ 18 | -1, /* size of per-interpreter state of the module, 19 | or -1 if the module keeps state in global variables. */ 20 | method_def}; // NOLINT 21 | 22 | #if PY_MAJOR_VERSION == 2 23 | PyMODINIT_FUNC init_libbleu() 24 | #else 25 | PyMODINIT_FUNC PyInit_libbleu() 26 | #endif 27 | { 28 | PyObject* m = PyModule_Create(&module_def); 29 | if (!m) { 30 | return NULL; 31 | } 32 | return m; 33 | } 34 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/clib/libnat_cuda/edit_dist.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | torch::Tensor LevenshteinDistanceCuda( 14 | torch::Tensor source, 15 | torch::Tensor target, 16 | torch::Tensor source_length, 17 | torch::Tensor target_length); 18 | 19 | torch::Tensor GenerateDeletionLabelCuda( 20 | torch::Tensor source, 21 | torch::Tensor operations); 22 | 23 | std::pair GenerateInsertionLabelCuda( 24 | torch::Tensor source, 25 | torch::Tensor operations); 26 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/config.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | hydra: 4 | run: 5 | dir: . 6 | 7 | defaults: 8 | - _self_ 9 | - task: null 10 | - model: null 11 | - criterion: cross_entropy 12 | - optimizer: null 13 | - lr_scheduler: fixed 14 | - bpe: null 15 | - tokenizer: null 16 | - scoring: null 17 | - generation: null 18 | - common_eval: null 19 | - eval_lm: null 20 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_baevski_gbw.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "relu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 512 8 | decoder_output_dim: 512 9 | decoder_input_dim: 512 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 12 12 | decoder_attention_heads: 16 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: true 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_baevski_wiki103.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "relu" 3 | dropout: 0.3 4 | attention_dropout: 0.1 5 | activation_dropout: 0.1 6 | relu_dropout: 0.1 7 | decoder_embed_dim: 1024 8 | decoder_output_dim: 1024 9 | decoder_input_dim: 1024 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 16 12 | decoder_attention_heads: 8 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: true 15 | adaptive_softmax_cutoff: "20000,60000" 16 | adaptive_softmax_dropout: 0.2 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: true 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: "20000,60000" 27 | tie_adaptive_weights: true 28 | tie_adaptive_proj: true 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_big.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "relu" 3 | dropout: 0.1 4 | attention_dropout: 0.0 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 1024 8 | decoder_output_dim: 1024 9 | decoder_input_dim: 1024 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 12 12 | decoder_attention_heads: 16 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: false 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_gbw.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "relu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 512 8 | decoder_output_dim: 512 9 | decoder_input_dim: 512 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 12 12 | decoder_attention_heads: 16 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: true 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_gpt.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "gelu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 768 8 | decoder_output_dim: 768 9 | decoder_input_dim: 768 10 | decoder_ffn_embed_dim: 3072 11 | decoder_layers: 12 12 | decoder_attention_heads: 12 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: false 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_gpt2_big.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "gelu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 1600 8 | decoder_output_dim: 1600 9 | decoder_input_dim: 1600 10 | decoder_ffn_embed_dim: 6400 11 | decoder_layers: 48 12 | decoder_attention_heads: 25 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: false 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_gpt2_medium.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "gelu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 1280 8 | decoder_output_dim: 1280 9 | decoder_input_dim: 1280 10 | decoder_ffn_embed_dim: 5120 11 | decoder_layers: 36 12 | decoder_attention_heads: 20 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: false 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_gpt2_small.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "gelu" 3 | dropout: 0.1 4 | attention_dropout: 0.1 5 | activation_dropout: 0.0 6 | relu_dropout: 0.0 7 | decoder_embed_dim: 1024 8 | decoder_output_dim: 1024 9 | decoder_input_dim: 1024 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 24 12 | decoder_attention_heads: 16 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: false 15 | adaptive_softmax_cutoff: null 16 | adaptive_softmax_dropout: 0 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: false 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: null 27 | tie_adaptive_weights: false 28 | tie_adaptive_proj: false 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/transformer_lm/transformer_lm_wiki103.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation_fn: "relu" 3 | dropout: 0.3 4 | attention_dropout: 0.1 5 | activation_dropout: 0.1 6 | relu_dropout: 0.1 7 | decoder_embed_dim: 1024 8 | decoder_output_dim: 1024 9 | decoder_input_dim: 1024 10 | decoder_ffn_embed_dim: 4096 11 | decoder_layers: 16 12 | decoder_attention_heads: 8 13 | decoder_normalize_before: true 14 | no_decoder_final_norm: true 15 | adaptive_softmax_cutoff: "20000,60000" 16 | adaptive_softmax_dropout: 0.2 17 | adaptive_softmax_factor: 4 18 | no_token_positional_embeddings: false 19 | share_decoder_input_output_embed: false 20 | character_embeddings: false 21 | character_filters: "[(1, 64), (2, 128), (3, 192), (4, 256), (5, 256), (6, 256), (7, 256)]" 22 | character_embedding_dim: 4 23 | char_embedder_highway_layers: 2 24 | adaptive_input: true 25 | adaptive_input_factor: 4 26 | adaptive_input_cutoff: "20000,60000" 27 | tie_adaptive_weights: true 28 | tie_adaptive_proj: true 29 | decoder_learned_pos: false 30 | decoder_layerdrop: 0 31 | decoder_layers_to_keep: null 32 | layernorm_embedding: false 33 | no_scale_embedding: false 34 | quant_noise_pq: 0 35 | quant_noise_pq_block_size: 8 36 | quant_noise_scalar: 0 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/wav2vec/vq_wav2vec_gumbel.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | activation: gelu 3 | vq_type: gumbel 4 | vq_depth: 2 5 | combine_groups: true 6 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/wav2vec2/wav2vec2_base.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | quantize_targets: true 4 | final_dim: 256 5 | encoder_layerdrop: 0.05 6 | dropout_input: 0.1 7 | dropout_features: 0.1 8 | feature_grad_mult: 0.1 9 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/config/model/wav2vec2/wav2vec2_large.yaml: -------------------------------------------------------------------------------- 1 | # @package _group_ 2 | 3 | quantize_targets: true 4 | extractor_mode: layer_norm 5 | layer_norm_first: true 6 | final_dim: 768 7 | latent_temp: [2.0,0.1,0.999995] 8 | encoder_layerdrop: 0.0 9 | dropout_input: 0.0 10 | dropout_features: 0.0 11 | dropout: 0.0 12 | attention_dropout: 0.0 13 | conv_bias: true 14 | 15 | encoder_layers: 24 16 | encoder_embed_dim: 1024 17 | encoder_ffn_embed_dim: 4096 18 | encoder_attention_heads: 16 19 | 20 | feature_grad_mult: 1.0 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """isort:skip_file""" 6 | 7 | import importlib 8 | import os 9 | 10 | from fairseq import registry 11 | from fairseq.criterions.fairseq_criterion import ( # noqa 12 | FairseqCriterion, 13 | LegacyFairseqCriterion, 14 | ) 15 | from omegaconf import DictConfig 16 | 17 | 18 | ( 19 | build_criterion_, 20 | register_criterion, 21 | CRITERION_REGISTRY, 22 | CRITERION_DATACLASS_REGISTRY, 23 | ) = registry.setup_registry( 24 | "--criterion", base_class=FairseqCriterion, default="cross_entropy" 25 | ) 26 | 27 | 28 | def build_criterion(cfg: DictConfig, task): 29 | return build_criterion_(cfg, task) 30 | 31 | 32 | # automatically import any Python files in the criterions/ directory 33 | for file in sorted(os.listdir(os.path.dirname(__file__))): 34 | if file.endswith(".py") and not file.startswith("_"): 35 | file_name = file[: file.find(".py")] 36 | importlib.import_module("fairseq.criterions." + file_name) 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/audio/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/fairseq/data/audio/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/audio/feature_transforms/global_cmvn.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from fairseq.data.audio.feature_transforms import ( 3 | AudioFeatureTransform, 4 | register_audio_feature_transform, 5 | ) 6 | 7 | 8 | @register_audio_feature_transform("global_cmvn") 9 | class GlobalCMVN(AudioFeatureTransform): 10 | """Global CMVN (cepstral mean and variance normalization). The global mean 11 | and variance need to be pre-computed and stored in NumPy format (.npz).""" 12 | 13 | @classmethod 14 | def from_config_dict(cls, config=None): 15 | _config = {} if config is None else config 16 | return GlobalCMVN(_config.get("stats_npz_path")) 17 | 18 | def __init__(self, stats_npz_path): 19 | self.stats_npz_path = stats_npz_path 20 | stats = np.load(stats_npz_path) 21 | self.mean, self.std = stats["mean"], stats["std"] 22 | 23 | def __repr__(self): 24 | return self.__class__.__name__ + f'(stats_npz_path="{self.stats_npz_path}")' 25 | 26 | def __call__(self, x): 27 | x = np.subtract(x, self.mean) 28 | x = np.divide(x, self.std) 29 | return x 30 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/colorize_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | from . import BaseWrapperDataset 9 | 10 | 11 | class ColorizeDataset(BaseWrapperDataset): 12 | """ Adds 'colors' property to net input that is obtained from the provided color getter for use by models """ 13 | 14 | def __init__(self, dataset, color_getter): 15 | super().__init__(dataset) 16 | self.color_getter = color_getter 17 | 18 | def collater(self, samples): 19 | base_collate = super().collater(samples) 20 | if len(base_collate) > 0: 21 | base_collate["net_input"]["colors"] = torch.tensor( 22 | list(self.color_getter(self.dataset, s["id"]) for s in samples), 23 | dtype=torch.long, 24 | ) 25 | return base_collate 26 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | 7 | import importlib 8 | import os 9 | 10 | from fairseq import registry 11 | 12 | 13 | build_tokenizer, register_tokenizer, TOKENIZER_REGISTRY, _ = registry.setup_registry( 14 | "--tokenizer", 15 | default=None, 16 | ) 17 | 18 | 19 | build_bpe, register_bpe, BPE_REGISTRY, _ = registry.setup_registry( 20 | "--bpe", 21 | default=None, 22 | ) 23 | 24 | 25 | # automatically import any Python files in the encoders/ directory 26 | for file in sorted(os.listdir(os.path.dirname(__file__))): 27 | if file.endswith(".py") and not file.startswith("_"): 28 | module = file[: file.find(".py")] 29 | importlib.import_module("fairseq.data.encoders." + module) 30 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/bytes.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | 7 | from fairseq.data.encoders import register_bpe 8 | from fairseq.data.encoders.byte_utils import ( 9 | SPACE, 10 | SPACE_ESCAPE, 11 | byte_encode, 12 | smart_byte_decode, 13 | ) 14 | 15 | 16 | @register_bpe("bytes") 17 | class Bytes(object): 18 | def __init__(self, *unused): 19 | pass 20 | 21 | @staticmethod 22 | def add_args(parser): 23 | pass 24 | 25 | @staticmethod 26 | def encode(x: str) -> str: 27 | encoded = byte_encode(x) 28 | escaped = encoded.replace(SPACE, SPACE_ESCAPE) 29 | return SPACE.join(list(escaped)) 30 | 31 | @staticmethod 32 | def decode(x: str) -> str: 33 | unescaped = x.replace(SPACE, "").replace(SPACE_ESCAPE, SPACE) 34 | return smart_byte_decode(unescaped) 35 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/characters.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | 7 | from fairseq.data.encoders import register_bpe 8 | 9 | 10 | SPACE = chr(32) 11 | SPACE_ESCAPE = chr(9601) 12 | 13 | 14 | @register_bpe("characters") 15 | class Characters(object): 16 | def __init__(self, *unused): 17 | pass 18 | 19 | @staticmethod 20 | def add_args(parser): 21 | pass 22 | 23 | @staticmethod 24 | def encode(x: str) -> str: 25 | escaped = x.replace(SPACE, SPACE_ESCAPE) 26 | return SPACE.join(list(escaped)) 27 | 28 | @staticmethod 29 | def decode(x: str) -> str: 30 | return x.replace(SPACE, "").replace(SPACE_ESCAPE, SPACE) 31 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/nltk_tokenizer.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from fairseq.data.encoders import register_tokenizer 7 | from fairseq.dataclass import FairseqDataclass 8 | 9 | 10 | @register_tokenizer("nltk", dataclass=FairseqDataclass) 11 | class NLTKTokenizer(object): 12 | def __init__(self, *unused): 13 | try: 14 | from nltk.tokenize import word_tokenize 15 | 16 | self.word_tokenize = word_tokenize 17 | except ImportError: 18 | raise ImportError("Please install nltk with: pip install nltk") 19 | 20 | def encode(self, x: str) -> str: 21 | return " ".join(self.word_tokenize(x)) 22 | 23 | def decode(self, x: str) -> str: 24 | return x 25 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/space_tokenizer.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import re 7 | 8 | from fairseq.data.encoders import register_tokenizer 9 | from fairseq.dataclass import FairseqDataclass 10 | 11 | 12 | @register_tokenizer("space", dataclass=FairseqDataclass) 13 | class SpaceTokenizer(object): 14 | def __init__(self, *unused): 15 | self.space_tok = re.compile(r"\s+") 16 | 17 | def encode(self, x: str) -> str: 18 | return self.space_tok.sub(" ", x) 19 | 20 | def decode(self, x: str) -> str: 21 | return x 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/encoders/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | from fairseq.data import encoders 8 | 9 | 10 | def get_whole_word_mask(args, dictionary): 11 | bpe = encoders.build_bpe(args) 12 | if bpe is not None: 13 | 14 | def is_beginning_of_word(i): 15 | if i < dictionary.nspecial: 16 | # special elements are always considered beginnings 17 | return True 18 | tok = dictionary[i] 19 | if tok.startswith("madeupword"): 20 | return True 21 | try: 22 | return bpe.is_beginning_of_word(tok) 23 | except ValueError: 24 | return True 25 | 26 | mask_whole_words = torch.ByteTensor( 27 | list(map(is_beginning_of_word, range(len(dictionary)))) 28 | ) 29 | return mask_whole_words 30 | return None 31 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/huffman/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .huffman_coder import HuffmanCodeBuilder, HuffmanCoder 7 | from .huffman_mmap_indexed_dataset import ( 8 | HuffmanMMapIndex, 9 | HuffmanMMapIndexedDataset, 10 | HuffmanMMapIndexedDatasetBuilder, 11 | vocab_file_path, 12 | ) 13 | 14 | __all__ = [ 15 | "HuffmanCoder", 16 | "HuffmanCodeBuilder", 17 | "HuffmanMMapIndexedDatasetBuilder", 18 | "HuffmanMMapIndexedDataset", 19 | "HuffmanMMapIndex", 20 | "vocab_file_path", 21 | ] 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/id_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | from . import FairseqDataset 9 | 10 | 11 | class IdDataset(FairseqDataset): 12 | def __getitem__(self, index): 13 | return index 14 | 15 | def __len__(self): 16 | return 0 17 | 18 | def collater(self, samples): 19 | return torch.tensor(samples) 20 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/legacy/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .block_pair_dataset import BlockPairDataset 7 | from .masked_lm_dataset import MaskedLMDataset 8 | from .masked_lm_dictionary import BertDictionary, MaskedLMDictionary 9 | 10 | 11 | __all__ = [ 12 | "BertDictionary", 13 | "BlockPairDataset", 14 | "MaskedLMDataset", 15 | "MaskedLMDictionary", 16 | ] 17 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/list_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import BaseWrapperDataset 7 | 8 | 9 | class ListDataset(BaseWrapperDataset): 10 | def __init__(self, dataset, sizes=None): 11 | super().__init__(dataset) 12 | self._sizes = sizes 13 | 14 | def __iter__(self): 15 | for x in self.dataset: 16 | yield x 17 | 18 | def collater(self, samples): 19 | return samples 20 | 21 | @property 22 | def sizes(self): 23 | return self._sizes 24 | 25 | def num_tokens(self, index): 26 | return self.sizes[index] 27 | 28 | def size(self, index): 29 | return self.sizes[index] 30 | 31 | def set_epoch(self, epoch): 32 | pass 33 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/lru_cache_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from functools import lru_cache 7 | 8 | from . import BaseWrapperDataset 9 | 10 | 11 | class LRUCacheDataset(BaseWrapperDataset): 12 | def __init__(self, dataset, token=None): 13 | super().__init__(dataset) 14 | 15 | @lru_cache(maxsize=8) 16 | def __getitem__(self, index): 17 | return self.dataset[index] 18 | 19 | @lru_cache(maxsize=8) 20 | def collater(self, samples): 21 | return self.dataset.collater(samples) 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/multilingual/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/num_samples_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import FairseqDataset 7 | 8 | 9 | class NumSamplesDataset(FairseqDataset): 10 | def __getitem__(self, index): 11 | return 1 12 | 13 | def __len__(self): 14 | return 0 15 | 16 | def collater(self, samples): 17 | return sum(samples) 18 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/numel_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import numpy as np 7 | import torch 8 | 9 | from . import BaseWrapperDataset 10 | 11 | 12 | class NumelDataset(BaseWrapperDataset): 13 | def __init__(self, dataset, reduce=False): 14 | super().__init__(dataset) 15 | self.reduce = reduce 16 | 17 | def __getitem__(self, index): 18 | item = self.dataset[index] 19 | if torch.is_tensor(item): 20 | return torch.numel(item) 21 | else: 22 | return np.size(item) 23 | 24 | def __len__(self): 25 | return len(self.dataset) 26 | 27 | def collater(self, samples): 28 | if self.reduce: 29 | return sum(samples) 30 | else: 31 | return torch.tensor(samples) 32 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/offset_tokens_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import BaseWrapperDataset 7 | 8 | 9 | class OffsetTokensDataset(BaseWrapperDataset): 10 | def __init__(self, dataset, offset): 11 | super().__init__(dataset) 12 | self.offset = offset 13 | 14 | def __getitem__(self, idx): 15 | return self.dataset[idx] + self.offset 16 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/pad_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from fairseq.data import data_utils 7 | 8 | from . import BaseWrapperDataset 9 | 10 | 11 | class PadDataset(BaseWrapperDataset): 12 | def __init__(self, dataset, pad_idx, left_pad): 13 | super().__init__(dataset) 14 | self.pad_idx = pad_idx 15 | self.left_pad = left_pad 16 | 17 | def collater(self, samples): 18 | return data_utils.collate_tokens(samples, self.pad_idx, left_pad=self.left_pad) 19 | 20 | 21 | class LeftPadDataset(PadDataset): 22 | def __init__(self, dataset, pad_idx): 23 | super().__init__(dataset, pad_idx, left_pad=True) 24 | 25 | 26 | class RightPadDataset(PadDataset): 27 | def __init__(self, dataset, pad_idx): 28 | super().__init__(dataset, pad_idx, left_pad=False) 29 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/prepend_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import numpy as np 7 | import torch 8 | 9 | from . import BaseWrapperDataset 10 | 11 | 12 | class PrependDataset(BaseWrapperDataset): 13 | def __init__(self, dataset, prepend_getter, ensure_first_token_is=None): 14 | super().__init__(dataset) 15 | self.prepend_getter = prepend_getter 16 | self.ensure_first_token = ensure_first_token_is 17 | 18 | def __getitem__(self, idx): 19 | item = self.dataset[idx] 20 | is_tuple = isinstance(item, tuple) 21 | src = item[0] if is_tuple else item 22 | 23 | assert self.ensure_first_token is None or src[0] == self.ensure_first_token 24 | prepend_idx = self.prepend_getter(self.dataset, idx) 25 | assert isinstance(prepend_idx, int) 26 | src[0] = prepend_idx 27 | item = tuple((src,) + item[1:]) if is_tuple else src 28 | return item 29 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/raw_label_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | from . import FairseqDataset 9 | 10 | 11 | class RawLabelDataset(FairseqDataset): 12 | def __init__(self, labels): 13 | super().__init__() 14 | self.labels = labels 15 | 16 | def __getitem__(self, index): 17 | return self.labels[index] 18 | 19 | def __len__(self): 20 | return len(self.labels) 21 | 22 | def collater(self, samples): 23 | return torch.tensor(samples) 24 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/roll_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | from . import BaseWrapperDataset 9 | 10 | 11 | class RollDataset(BaseWrapperDataset): 12 | def __init__(self, dataset, shifts): 13 | super().__init__(dataset) 14 | self.shifts = shifts 15 | 16 | def __getitem__(self, index): 17 | item = self.dataset[index] 18 | return torch.roll(item, self.shifts) 19 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/sort_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import numpy as np 7 | 8 | from . import BaseWrapperDataset 9 | 10 | 11 | class SortDataset(BaseWrapperDataset): 12 | def __init__(self, dataset, sort_order): 13 | super().__init__(dataset) 14 | if not isinstance(sort_order, (list, tuple)): 15 | sort_order = [sort_order] 16 | self.sort_order = sort_order 17 | 18 | assert all(len(so) == len(dataset) for so in sort_order) 19 | 20 | def ordered_indices(self): 21 | return np.lexsort(self.sort_order) 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/data/strip_token_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import BaseWrapperDataset 7 | 8 | 9 | class StripTokenDataset(BaseWrapperDataset): 10 | def __init__(self, dataset, id_to_strip): 11 | super().__init__(dataset) 12 | self.id_to_strip = id_to_strip 13 | 14 | def __getitem__(self, index): 15 | item = self.dataset[index] 16 | while len(item) > 0 and item[-1] == self.id_to_strip: 17 | item = item[:-1] 18 | while len(item) > 0 and item[0] == self.id_to_strip: 19 | item = item[1:] 20 | return item 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/dataclass/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .configs import FairseqDataclass 7 | from .constants import ChoiceEnum 8 | 9 | 10 | __all__ = [ 11 | "FairseqDataclass", 12 | "ChoiceEnum", 13 | ] 14 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/distributed/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .distributed_timeout_wrapper import DistributedTimeoutWrapper 7 | from .fully_sharded_data_parallel import fsdp_enable_wrap, fsdp_wrap, FullyShardedDataParallel 8 | from .legacy_distributed_data_parallel import LegacyDistributedDataParallel 9 | from .module_proxy_wrapper import ModuleProxyWrapper 10 | from .tpu_distributed_data_parallel import TPUDistributedDataParallel 11 | 12 | 13 | __all__ = [ 14 | "DistributedTimeoutWrapper", 15 | "fsdp_enable_wrap", 16 | "fsdp_wrap", 17 | "FullyShardedDataParallel", 18 | "LegacyDistributedDataParallel", 19 | "ModuleProxyWrapper", 20 | "TPUDistributedDataParallel", 21 | ] 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/logging/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/fairseq/logging/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from . import criterions, models, modules # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/criterions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | # automatically import any Python files in the criterions/ directory 11 | for file in sorted(os.listdir(os.path.dirname(__file__))): 12 | if file.endswith(".py") and not file.startswith("_"): 13 | module = file[: file.find(".py")] 14 | importlib.import_module("fairseq.model_parallel.criterions." + module) 15 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | # automatically import any Python files in the models/ directory 11 | models_dir = os.path.dirname(__file__) 12 | for file in os.listdir(models_dir): 13 | path = os.path.join(models_dir, file) 14 | if ( 15 | not file.startswith("_") 16 | and not file.startswith(".") 17 | and (file.endswith(".py") or os.path.isdir(path)) 18 | ): 19 | model_name = file[: file.find(".py")] if file.endswith(".py") else file 20 | module = importlib.import_module("fairseq.model_parallel.models." + model_name) 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/models/pipeline_parallel_transformer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .model import * # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/models/roberta/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .model import * # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/model_parallel/modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """isort:skip_file""" 6 | 7 | from .multihead_attention import ModelParallelMultiheadAttention 8 | from .transformer_layer import ( 9 | ModelParallelTransformerEncoderLayer, 10 | ModelParallelTransformerDecoderLayer, 11 | ) 12 | 13 | __all__ = [ 14 | "ModelParallelMultiheadAttention", 15 | "ModelParallelTransformerEncoderLayer", 16 | "ModelParallelTransformerDecoderLayer", 17 | ] 18 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/bart/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .hub_interface import * # noqa 7 | from .model import * # noqa 8 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/ema/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | from .ema import EMA 10 | 11 | 12 | def build_ema(model, cfg, device): 13 | return EMA(model, cfg, device) 14 | 15 | 16 | # automatically import any Python files in the models/ema/ directory 17 | for file in sorted(os.listdir(os.path.dirname(__file__))): 18 | if file.endswith(".py") and not file.startswith("_"): 19 | file_name = file[: file.find(".py")] 20 | importlib.import_module("fairseq.models.ema." + file_name) 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/hubert/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .hubert import * # noqa 7 | from .hubert_asr import * # noqa 8 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/huggingface/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import importlib 7 | import os 8 | 9 | 10 | # automatically import any Python files in the models/huggingface/ directory 11 | models_dir = os.path.dirname(__file__) 12 | for file in os.listdir(models_dir): 13 | path = os.path.join(models_dir, file) 14 | if ( 15 | not file.startswith("_") 16 | and not file.startswith(".") 17 | and (file.endswith(".py") or os.path.isdir(path)) 18 | ): 19 | model_name = file[: file.find(".py")] if file.endswith(".py") else file 20 | module = importlib.import_module("fairseq.models.huggingface." + model_name) 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/nat/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """isort:skip_file""" 6 | 7 | from .fairseq_nat_model import * 8 | from .nonautoregressive_transformer import * 9 | from .nat_crf_transformer import * 10 | from .iterative_nonautoregressive_transformer import * 11 | from .cmlm_transformer import * 12 | from .levenshtein_transformer import * 13 | from .insertion_transformer import * 14 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/roberta/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .hub_interface import * # noqa 7 | from .model import * # noqa 8 | from .enc_dec import * # noqa 9 | from .model_camembert import * # noqa 10 | from .model_gottbert import * # noqa 11 | from .model_xlmr import * # noqa 12 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/speech_to_text/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .berard import * # noqa 7 | from .convtransformer import * # noqa 8 | from .s2t_transformer import * # noqa 9 | from .xm_transformer import * # noqa 10 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/text_to_speech/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .tacotron2 import * # noqa 7 | from .tts_transformer import * # noqa 8 | from .fastspeech2 import * # noqa 9 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/models/wav2vec/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .wav2vec import * # noqa 7 | from .wav2vec2 import * # noqa 8 | from .wav2vec2_asr import * # noqa 9 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/dynamicconv_layer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .dynamicconv_layer import DynamicconvLayer # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/dynamicconv_layer/dynamiconv_cpu.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | std::vector 5 | dynamicconv_cpu_forward(float* input, float* filters, int padding_l); 6 | 7 | std::vector dynamicconv_cpu_backward( 8 | float* gradOutput, 9 | int padding_l, 10 | float* input, 11 | float* filters); 12 | 13 | std::vector 14 | dynamicconv_forward(float* input, float* filters, int padding_l) { 15 | return dynamicconv_cpu_forward(input, filters, padding_l); 16 | } 17 | 18 | std::vector dynamicconv_backward( 19 | float* gradOutput, 20 | int padding_l, 21 | float* input, 22 | float* filters) { 23 | return dynamicconv_cpu_backward(gradOutput, padding_l, input, filters); 24 | } 25 | 26 | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { 27 | m.def("forward", &dynamicconv_forward, "dynamicconv forward (CPU)"); 28 | m.def("backward", &dynamicconv_backward, "dynamicconv backward (CPU)"); 29 | } 30 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/dynamicconv_layer/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from setuptools import setup 8 | from torch.utils.cpp_extension import BuildExtension, CUDAExtension 9 | 10 | 11 | setup( 12 | name="dynamicconv_layer", 13 | ext_modules=[ 14 | CUDAExtension( 15 | name="dynamicconv_cuda", 16 | sources=[ 17 | "dynamicconv_cuda.cpp", 18 | "dynamicconv_cuda_kernel.cu", 19 | ], 20 | ), 21 | ], 22 | cmdclass={"build_ext": BuildExtension}, 23 | ) 24 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/fp32_group_norm.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """ 6 | Layer norm done in fp32 (for fp16 training) 7 | """ 8 | 9 | import torch.nn as nn 10 | import torch.nn.functional as F 11 | 12 | 13 | class Fp32GroupNorm(nn.GroupNorm): 14 | def __init__(self, *args, **kwargs): 15 | super().__init__(*args, **kwargs) 16 | 17 | def forward(self, input): 18 | output = F.group_norm( 19 | input.float(), 20 | self.num_groups, 21 | self.weight.float() if self.weight is not None else None, 22 | self.bias.float() if self.bias is not None else None, 23 | self.eps, 24 | ) 25 | return output.type_as(input) 26 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/gelu.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """ 6 | See "Gaussian Error Linear Units (GELUs)" by Dan Hendrycks and Kevin Gimpel with 7 | the corresponding GitHub repo: https://github.com/hendrycks/GELUs 8 | """ 9 | 10 | import math 11 | 12 | import torch 13 | import torch.nn as nn 14 | 15 | 16 | def gelu_accurate(x): 17 | if not hasattr(gelu_accurate, "_a"): 18 | gelu_accurate._a = math.sqrt(2 / math.pi) 19 | return ( 20 | 0.5 * x * (1 + torch.tanh(gelu_accurate._a * (x + 0.044715 * torch.pow(x, 3)))) 21 | ) 22 | 23 | 24 | def gelu(x: torch.Tensor) -> torch.Tensor: 25 | return torch.nn.functional.gelu(x.float()).type_as(x) 26 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/grad_multiply.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch 7 | 8 | 9 | class GradMultiply(torch.autograd.Function): 10 | @staticmethod 11 | def forward(ctx, x, scale): 12 | ctx.scale = scale 13 | res = x.new(x) 14 | return res 15 | 16 | @staticmethod 17 | def backward(ctx, grad): 18 | return grad * ctx.scale, None 19 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/lightconv_layer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .lightconv_layer import LightconvLayer # noqa 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/lightconv_layer/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from setuptools import setup 8 | from torch.utils.cpp_extension import BuildExtension, CUDAExtension 9 | 10 | 11 | setup( 12 | name="lightconv_layer", 13 | ext_modules=[ 14 | CUDAExtension( 15 | "lightconv_cuda", 16 | [ 17 | "lightconv_cuda.cpp", 18 | "lightconv_cuda_kernel.cu", 19 | ], 20 | ), 21 | ], 22 | cmdclass={"build_ext": BuildExtension}, 23 | ) 24 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/quantization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/fairseq/modules/quantization/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/quantization/pq/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .utils import SizeTracker, get_param, attrsetter, quantize_model_ # NOQA 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/quantization/pq/modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .qconv import PQConv2d # NOQA 7 | from .qemb import PQEmbedding # NOQA 8 | from .qlinear import PQLinear # NOQA 9 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/quantization/scalar/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .utils import quantize_model_ # NOQA 7 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/quantization/scalar/modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from .qact import ActivationQuantizer # NOQA 7 | from .qconv import IntConv2d # NOQA 8 | from .qemb import IntEmbedding # NOQA 9 | from .qlinear import IntLinear # NOQA 10 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/same_pad.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | 7 | from torch import nn 8 | 9 | 10 | class SamePad(nn.Module): 11 | def __init__(self, kernel_size, causal=False): 12 | super().__init__() 13 | if causal: 14 | self.remove = kernel_size - 1 15 | else: 16 | self.remove = 1 if kernel_size % 2 == 0 else 0 17 | 18 | def forward(self, x): 19 | if self.remove > 0: 20 | x = x[:, :, : -self.remove] 21 | return x 22 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/scalar_bias.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | # 6 | 7 | import torch 8 | 9 | 10 | class ScalarBias(torch.autograd.Function): 11 | """ 12 | Adds a vector of scalars, used in self-attention mechanism to allow 13 | the model to optionally attend to this vector instead of the past 14 | """ 15 | 16 | @staticmethod 17 | def forward(ctx, input, dim, bias_init): 18 | size = list(input.size()) 19 | size[dim] += 1 20 | output = input.new(*size).fill_(bias_init) 21 | output.narrow(dim, 1, size[dim] - 1).copy_(input) 22 | ctx.dim = dim 23 | return output 24 | 25 | @staticmethod 26 | def backward(ctx, grad): 27 | return grad.narrow(ctx.dim, 1, grad.size(ctx.dim) - 1), None, None 28 | 29 | 30 | def scalar_bias(input, dim, bias_init=0): 31 | return ScalarBias.apply(input, dim, bias_init) 32 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/transpose_last.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """ 6 | transpose last 2 dimensions of the input 7 | """ 8 | 9 | import torch.nn as nn 10 | 11 | 12 | class TransposeLast(nn.Module): 13 | def __init__(self, deconstruct_idx=None): 14 | super().__init__() 15 | self.deconstruct_idx = deconstruct_idx 16 | 17 | def forward(self, x): 18 | if self.deconstruct_idx is not None: 19 | x = x[self.deconstruct_idx] 20 | return x.transpose(-2, -1) 21 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/modules/unfold.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import torch.nn.functional as F 7 | 8 | 9 | def unfold1d(x, kernel_size, padding_l, pad_value=0): 10 | """unfold T x B x C to T x B x C x K""" 11 | if kernel_size > 1: 12 | T, B, C = x.size() 13 | x = F.pad( 14 | x, (0, 0, 0, 0, padding_l, kernel_size - 1 - padding_l), value=pad_value 15 | ) 16 | x = x.as_strided((T, B, C, kernel_size), (B * C, C, 1, B * C)) 17 | else: 18 | x = x.unsqueeze(3) 19 | return x 20 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/optim/lr_scheduler/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | """isort:skip_file""" 6 | 7 | import importlib 8 | import os 9 | 10 | from fairseq import registry 11 | from fairseq.optim.lr_scheduler.fairseq_lr_scheduler import ( # noqa 12 | FairseqLRScheduler, 13 | LegacyFairseqLRScheduler, 14 | ) 15 | from omegaconf import DictConfig 16 | 17 | 18 | ( 19 | build_lr_scheduler_, 20 | register_lr_scheduler, 21 | LR_SCHEDULER_REGISTRY, 22 | LR_SCHEDULER_DATACLASS_REGISTRY, 23 | ) = registry.setup_registry( 24 | "--lr-scheduler", base_class=FairseqLRScheduler, default="fixed" 25 | ) 26 | 27 | 28 | def build_lr_scheduler(cfg: DictConfig, optimizer): 29 | return build_lr_scheduler_(cfg, optimizer) 30 | 31 | 32 | # automatically import any Python files in the optim/lr_scheduler/ directory 33 | for file in sorted(os.listdir(os.path.dirname(__file__))): 34 | if file.endswith(".py") and not file.startswith("_"): 35 | file_name = file[: file.find(".py")] 36 | importlib.import_module("fairseq.optim.lr_scheduler." + file_name) 37 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/scoring/chrf.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | from fairseq.scoring import BaseScorer, register_scorer 7 | 8 | 9 | @register_scorer("chrf") 10 | class ChrFScorer(BaseScorer): 11 | def __init__(self, args): 12 | super(ChrFScorer, self).__init__(args) 13 | import sacrebleu 14 | 15 | self.sacrebleu = sacrebleu 16 | 17 | def add_string(self, ref, pred): 18 | self.ref.append(ref) 19 | self.pred.append(pred) 20 | 21 | def score(self, order=4): 22 | return self.result_string(order).score 23 | 24 | def result_string(self, order=4): 25 | if order != 4: 26 | raise NotImplementedError 27 | return self.sacrebleu.corpus_chrf(self.pred, [self.ref]).format() 28 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/tokenizer.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import re 7 | 8 | 9 | SPACE_NORMALIZER = re.compile(r"\s+") 10 | 11 | 12 | def tokenize_line(line): 13 | line = SPACE_NORMALIZER.sub(" ", line) 14 | line = line.strip() 15 | return line.split() 16 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq/version.txt: -------------------------------------------------------------------------------- 1 | 1.0.0a0 2 | -------------------------------------------------------------------------------- /OFA/fairseq/fairseq_cli/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/fairseq_cli/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools", "wheel", "cython"] 3 | build-backend = "setuptools.build_meta" 4 | -------------------------------------------------------------------------------- /OFA/fairseq/scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/scripts/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/scripts/compound_split_bleu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $# -ne 1 ]; then 4 | echo "usage: $0 GENERATE_PY_OUTPUT" 5 | exit 1 6 | fi 7 | 8 | GEN=$1 9 | 10 | SYS=$GEN.sys 11 | REF=$GEN.ref 12 | 13 | if [ $(tail -n 1 $GEN | grep BLEU | wc -l) -ne 1 ]; then 14 | echo "not done generating" 15 | exit 16 | fi 17 | 18 | grep ^H $GEN | awk -F '\t' '{print $NF}' | perl -ple 's{(\S)-(\S)}{$1 ##AT##-##AT## $2}g' > $SYS 19 | grep ^T $GEN | cut -f2- | perl -ple 's{(\S)-(\S)}{$1 ##AT##-##AT## $2}g' > $REF 20 | fairseq-score --sys $SYS --ref $REF 21 | -------------------------------------------------------------------------------- /OFA/fairseq/scripts/constraints/validate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) Facebook, Inc. and its affiliates. 4 | # 5 | # This source code is licensed under the MIT license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | import sys 9 | 10 | 11 | """Reads in a fairseq output file, and verifies that the constraints 12 | (C- lines) are present in the output (the first H- line). Assumes that 13 | constraints are listed prior to the first hypothesis. 14 | """ 15 | 16 | constraints = [] 17 | found = 0 18 | total = 0 19 | for line in sys.stdin: 20 | if line.startswith("C-"): 21 | constraints.append(line.rstrip().split("\t")[1]) 22 | elif line.startswith("H-"): 23 | text = line.split("\t")[2] 24 | 25 | for constraint in constraints: 26 | total += 1 27 | if constraint in text: 28 | found += 1 29 | else: 30 | print(f"No {constraint} in {text}", file=sys.stderr) 31 | 32 | constraints = [] 33 | 34 | print(f"Found {found} / {total} = {100 * found / total:.1f}%") 35 | -------------------------------------------------------------------------------- /OFA/fairseq/scripts/convert_dictionary.lua: -------------------------------------------------------------------------------- 1 | -- Copyright (c) Facebook, Inc. and its affiliates. 2 | -- 3 | -- This source code is licensed under the MIT license found in the 4 | -- LICENSE file in the root directory of this source tree. 5 | -- 6 | -- Usage: convert_dictionary.lua 7 | require 'fairseq' 8 | require 'torch' 9 | require 'paths' 10 | 11 | if #arg < 1 then 12 | print('usage: convert_dictionary.lua ') 13 | os.exit(1) 14 | end 15 | if not paths.filep(arg[1]) then 16 | print('error: file does not exit: ' .. arg[1]) 17 | os.exit(1) 18 | end 19 | 20 | dict = torch.load(arg[1]) 21 | dst = paths.basename(arg[1]):gsub('.th7', '.txt') 22 | assert(dst:match('.txt$')) 23 | 24 | f = io.open(dst, 'w') 25 | for idx, symbol in ipairs(dict.index_to_symbol) do 26 | if idx > dict.cutoff then 27 | break 28 | end 29 | f:write(symbol) 30 | f:write(' ') 31 | f:write(dict.index_to_freq[idx]) 32 | f:write('\n') 33 | end 34 | f:close() 35 | -------------------------------------------------------------------------------- /OFA/fairseq/scripts/sacrebleu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $# -ne 4 ]; then 4 | echo "usage: $0 TESTSET SRCLANG TGTLANG GEN" 5 | exit 1 6 | fi 7 | 8 | TESTSET=$1 9 | SRCLANG=$2 10 | TGTLANG=$3 11 | 12 | GEN=$4 13 | 14 | if ! command -v sacremoses &> /dev/null 15 | then 16 | echo "sacremoses could not be found, please install with: pip install sacremoses" 17 | exit 18 | fi 19 | 20 | grep ^H $GEN \ 21 | | sed 's/^H\-//' \ 22 | | sort -n -k 1 \ 23 | | cut -f 3 \ 24 | | sacremoses detokenize \ 25 | > $GEN.sorted.detok 26 | 27 | sacrebleu --test-set $TESTSET --language-pair "${SRCLANG}-${TGTLANG}" < $GEN.sorted.detok 28 | -------------------------------------------------------------------------------- /OFA/fairseq/scripts/spm_train.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # All rights reserved. 4 | # 5 | # This source code is licensed under the license found in the 6 | # LICENSE file in the root directory of this source tree. 7 | 8 | from __future__ import absolute_import, division, print_function, unicode_literals 9 | 10 | import sys 11 | 12 | import sentencepiece as spm 13 | 14 | 15 | if __name__ == "__main__": 16 | spm.SentencePieceTrainer.Train(" ".join(sys.argv[1:])) 17 | -------------------------------------------------------------------------------- /OFA/fairseq/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/tests/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/tests/distributed/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/tests/distributed/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/tests/gpu/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/tests/gpu/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/tests/gpu/transformer_quantization_config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | # This file defines example configuration arguments for quantizing 7 | # a transformer model with product quantization 8 | 9 | n_centroids: 10 | Linear: 11 | key: in_features 12 | value: {"*": 8} 13 | Embedding: 14 | key: embedding_dim 15 | value: {"*": 8} 16 | 17 | block_sizes: 18 | Linear: 19 | key: fuzzy_name 20 | value: {fc: 8, attn: 4, emb: 4} 21 | Embedding: 22 | key: fuzzy_name 23 | value: {emb: 8} 24 | 25 | layers_to_quantize: 26 | - decoder\\.layers\\.\d+\\.fc[12] 27 | - decoder\\.embed_tokens\\.embeddings\\.[012]\\.[01] 28 | - decoder\\.layers\\.\d+\\.self_attn\\.(k_proj|v_proj|q_proj|out_proj) 29 | -------------------------------------------------------------------------------- /OFA/fairseq/tests/speech_recognition/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/fairseq/tests/speech_recognition/__init__.py -------------------------------------------------------------------------------- /OFA/fairseq/tests/test_iopath.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # 3 | # This source code is licensed under the MIT license found in the 4 | # LICENSE file in the root directory of this source tree. 5 | 6 | import unittest 7 | from unittest import mock 8 | 9 | 10 | class TestIOPath(unittest.TestCase): 11 | 12 | def test_no_iopath(self): 13 | from .test_reproducibility import TestReproducibility 14 | 15 | with mock.patch.dict("sys.modules", {"iopath": None}): 16 | # reuse reproducibility tests, which are e2e tests that should cover 17 | # most checkpoint related functionality 18 | TestReproducibility._test_reproducibility(self, "test_reproducibility") 19 | 20 | def test_no_supports_rename(self): 21 | from .test_reproducibility import TestReproducibility 22 | 23 | with mock.patch("fairseq.file_io.PathManager.supports_rename") as mock_fn: 24 | mock_fn.return_value = False 25 | TestReproducibility._test_reproducibility(self, "test_reproducibility") 26 | 27 | 28 | if __name__ == "__main__": 29 | unittest.main() 30 | -------------------------------------------------------------------------------- /OFA/fairseq/train.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 -u 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # 4 | # This source code is licensed under the MIT license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | """ 7 | Legacy entry point. Use fairseq_cli/train.py or fairseq-train instead. 8 | """ 9 | 10 | from fairseq_cli.train import cli_main 11 | 12 | 13 | if __name__ == "__main__": 14 | cli_main() 15 | -------------------------------------------------------------------------------- /OFA/models/__init__.py: -------------------------------------------------------------------------------- 1 | from .ofa import OFAModel, ofa_base_architecture, ofa_large_architecture, ofa_huge_architecture -------------------------------------------------------------------------------- /OFA/models/clip/__init__.py: -------------------------------------------------------------------------------- 1 | from .clip import * 2 | -------------------------------------------------------------------------------- /OFA/models/clip/bpe_simple_vocab_16e6.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/clip/bpe_simple_vocab_16e6.txt.gz -------------------------------------------------------------------------------- /OFA/models/ofa/__init__.py: -------------------------------------------------------------------------------- 1 | from .ofa import OFAModel, ofa_base_architecture, ofa_large_architecture, ofa_huge_architecture -------------------------------------------------------------------------------- /OFA/models/taming/models/__pycache__/vqgan.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/models/__pycache__/vqgan.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/models/taming/models/__pycache__/vqgan.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/models/__pycache__/vqgan.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/models/taming/models/__pycache__/vqgan.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/models/__pycache__/vqgan.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/models/taming/models/__pycache__/vqgan.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/models/__pycache__/vqgan.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/diffusionmodules/__pycache__/model.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/losses/__init__.py: -------------------------------------------------------------------------------- 1 | from models.taming.modules.losses.vqperceptual import DummyLoss 2 | 3 | -------------------------------------------------------------------------------- /OFA/models/taming/modules/losses/segmentation.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | import torch.nn.functional as F 3 | 4 | 5 | class BCELoss(nn.Module): 6 | def forward(self, prediction, target): 7 | loss = F.binary_cross_entropy_with_logits(prediction,target) 8 | return loss, {} 9 | 10 | 11 | class BCELossWithQuant(nn.Module): 12 | def __init__(self, codebook_weight=1.): 13 | super().__init__() 14 | self.codebook_weight = codebook_weight 15 | 16 | def forward(self, qloss, target, prediction, split): 17 | bce_loss = F.binary_cross_entropy_with_logits(prediction,target) 18 | loss = bce_loss + self.codebook_weight*qloss 19 | return loss, {"{}/total_loss".format(split): loss.clone().detach().mean(), 20 | "{}/bce_loss".format(split): bce_loss.detach().mean(), 21 | "{}/quant_loss".format(split): qloss.detach().mean() 22 | } 23 | -------------------------------------------------------------------------------- /OFA/models/taming/modules/misc/coord.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | class CoordStage(object): 4 | def __init__(self, n_embed, down_factor): 5 | self.n_embed = n_embed 6 | self.down_factor = down_factor 7 | 8 | def eval(self): 9 | return self 10 | 11 | def encode(self, c): 12 | """fake vqmodel interface""" 13 | assert 0.0 <= c.min() and c.max() <= 1.0 14 | b,ch,h,w = c.shape 15 | assert ch == 1 16 | 17 | c = torch.nn.functional.interpolate(c, scale_factor=1/self.down_factor, 18 | mode="area") 19 | c = c.clamp(0.0, 1.0) 20 | c = self.n_embed*c 21 | c_quant = c.round() 22 | c_ind = c_quant.to(dtype=torch.long) 23 | 24 | info = None, None, c_ind 25 | return c_quant, None, info 26 | 27 | def decode(self, c): 28 | c = c/self.n_embed 29 | c = torch.nn.functional.interpolate(c, scale_factor=self.down_factor, 30 | mode="nearest") 31 | return c 32 | -------------------------------------------------------------------------------- /OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/models/taming/modules/vqvae/__pycache__/quantize.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/ofa_module/__init__.py: -------------------------------------------------------------------------------- 1 | import data 2 | import models 3 | import tasks 4 | import criterions 5 | import utils -------------------------------------------------------------------------------- /OFA/requirements.txt: -------------------------------------------------------------------------------- 1 | -e ./fairseq/ 2 | opencv-python 3 | timm 4 | ftfy==6.0.3 5 | tensorboardX==2.4.1 6 | pytorch_lightning==1.5.9 7 | einops 8 | datasets 9 | rouge_score 10 | loralib -------------------------------------------------------------------------------- /OFA/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .cv_tasks import * 2 | from .mm_tasks import * 3 | from .nlg_tasks import * 4 | from .nlu_tasks import * 5 | from .pretrain_tasks import * 6 | from .unified_tasks import * 7 | from .ofa_task import OFATask 8 | from .multi_task_preft import MultiTaskPreFTTask 9 | -------------------------------------------------------------------------------- /OFA/tasks/cv_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .image_classify import ImageClassifyTask -------------------------------------------------------------------------------- /OFA/tasks/mm_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .caption import CaptionTask 2 | from .image_gen import ImageGenTask 3 | from .refcoco import RefcocoTask 4 | from .snli_ve import SnliVeTask 5 | from .vqa_gen import VqaGenTask -------------------------------------------------------------------------------- /OFA/tasks/nlg_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .gigaword import GigawordTask -------------------------------------------------------------------------------- /OFA/tasks/nlu_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .sst2 import SST2Task 2 | from .qqp import QQPTask 3 | from .qnli import QNLITask 4 | from .mrpc import MRPCTask 5 | from .rte import RTETask 6 | from .mnli import MNLITask 7 | from .cola import COLATask -------------------------------------------------------------------------------- /OFA/tasks/pretrain_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | from .unify_task import UnifyTask -------------------------------------------------------------------------------- /OFA/utils/BPE/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/BPE/__init__.py -------------------------------------------------------------------------------- /OFA/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/__init__.py -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'tylin' 2 | -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/cider/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'tylin' 2 | -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'tylin' 2 | -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-36.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-37.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-38.pyc -------------------------------------------------------------------------------- /OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/OFA/utils/cider/pyciderevalcap/ciderD/__pycache__/ciderD_scorer.cpython-39.pyc -------------------------------------------------------------------------------- /OFA/utils/custom_tasks_splits/pre_ft_for_image.json: -------------------------------------------------------------------------------- 1 | { 2 | "dataset": { 3 | "text":[ 4 | "rte", 5 | "circa", 6 | "superglue-rte", 7 | "ade_corpus", 8 | "glue-qnli", 9 | "superglue-wic", 10 | "ag_news", 11 | "sst2", 12 | "superglue-wsc", 13 | "mnli", 14 | "wnli", 15 | "anli", 16 | "superglue-cb", 17 | "glue-qqp"], 18 | "vqa": ["vqav2"], 19 | "visual_entailment": ["snli_ve"] 20 | } 21 | } -------------------------------------------------------------------------------- /OFA/utils/custom_tasks_splits/pre_ft_for_text.json: -------------------------------------------------------------------------------- 1 | { 2 | "dataset": { 3 | "image": ["food101"], 4 | "vqa": ["vqav2"], 5 | "visual_entailment": ["snli_ve"] 6 | } 7 | } -------------------------------------------------------------------------------- /OFA/utils/custom_tasks_splits/text_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "dataset": { 3 | "text": ["mnli", "sst2"], 4 | "image": ["food101"], 5 | "vqa": ["vqav2"], 6 | "visual_entailment": ["snli_ve"] 7 | } 8 | } -------------------------------------------------------------------------------- /OFA/utils/trie.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The OFA-Sys Team. 2 | # All rights reserved. 3 | # This source code is licensed under the Apache 2.0 license 4 | # found in the LICENSE file in the root directory. 5 | 6 | from collections import defaultdict 7 | 8 | 9 | class TreeNode(): 10 | def __init__(self): 11 | self.child = defaultdict(TreeNode) 12 | 13 | class Trie: 14 | 15 | def __init__(self, eos): 16 | self.root = TreeNode() 17 | self.eos = eos 18 | 19 | def insert(self, word): 20 | cur = self.root 21 | for c in word: 22 | cur = cur.child[c] 23 | 24 | def get_next_layer(self, word): 25 | cur = self.root 26 | for c in word: 27 | cur = cur.child.get(c) 28 | if cur is None: 29 | return [self.eos] 30 | return list(cur.child.keys()) 31 | -------------------------------------------------------------------------------- /imgs/Tab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/imgs/Tab1.png -------------------------------------------------------------------------------- /imgs/Tab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/imgs/Tab2.png -------------------------------------------------------------------------------- /imgs/Tab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/imgs/Tab3.png -------------------------------------------------------------------------------- /imgs/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentARC/pi-Tuning/3b60701962e2dcfff7ff295bbd1ec649581a2c77/imgs/overview.png --------------------------------------------------------------------------------