Instructions to use czyhust/finetune_moss-sortformer with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use czyhust/finetune_moss-sortformer with NeMo:
# tag did not correspond to a valid NeMo domain.
- Notebooks
- Google Colab
- Kaggle
精简 src/third_party/nemo —— 不需要的文件清单
基于
data/prepare_data.sh、*.sh、所有项目.py/.yaml中的导入分析,生成可删除的 NeMo 文件列表。
保留范围总结
项目仅依赖以下 NeMo 子系统:
nemo.collections.asr(Sortformer 训练/推理、数据仿真)nemo.collections.common(少数 data/manifest 工具)nemo.core(config、classes、neural_types)nemo.utils(logging、exp_manager、model_utils 等)nemo.lightning(部分 io/strategies/callbacks,来自 asr 的传递依赖)nemo.constantsnemo.package_info
可直接删除的顶层目录
| 路径 | 原因 |
|---|---|
nemo/export/ |
无任何 TRT/ONNX/VLLM 导出需求 |
可删除的 nemo/collections/ 子目录
| 路径 | 原因 |
|---|---|
nemo/collections/tts/ |
无 TTS 使用 |
nemo/collections/nlp/ |
无 NLP 使用 |
nemo/collections/multimodal/ |
无多模态使用 |
nemo/collections/speechlm/ |
无 SpeechLM 使用 |
nemo/collections/vision/ |
无视觉使用 |
可删除的 nemo/collections/asr/ 模块
models/ 目录
保留:
sortformer_diar_models.py— SortformerEncLabelModelasr_model.py— 被 sortformer_diar_models 继承__init__.py— 包导出
可删除:
clustering_diarizer.pyctc_models.pyctc_bpe_models.pyhybrid_rnnt_ctc_models.pyhybrid_rnnt_ctc_bpe_models.pyhybrid_autoregressive_transducer_models.pyrnnt_models.pyrnnt_bpe_models.pyssl_models.pyspeech_to_text.pyspeech_to_text_bpe.pytransformer_bpe_models.pymsdd_models.pywave2vec.pyclassification_models.py
modules/ 目录
保留:
conformer_encoder.pysortformer_modules.pyaudio_preprocessing.pyconv_asr.py— 被 conformer_encoder 子模块引用transformer/— 被 conformer_encoder 引用__init__.py
可删除:
beam_search_decoder.pyflashlight_decoder.pygraph_decoder.pyhybrid_autoregressive_transducer.pylstm_decoder.pymsdd_diarizer.pyrnnt.pyrnnt_abstract.pyrnn_encoder.pysqueezeformer_encoder.pyssl_modules/wav2vec_modules.py
losses/ 目录
保留:
bce_loss.py__init__.py
可删除:
angularloss.pyctc_loss.pyhat_loss.pyhinge_loss.pyrnnt_loss.pyspeaker_ce_loss.pytdt_loss.py
metrics/ 目录
保留:
der.pymulti_binary_acc.pywer.py__init__.py
可删除:
rnnt_metrics.pytdt_metrics.py
data/ 目录
保留:
data_simulation.pyaudio_to_diar_label.pyaudio_to_diar_label_lhotse.pyaudio_to_label.pyaudio_to_text.py__init__.py
可删除:
audio_to_speech_label.pyaudio_to_speech.pyaudio_to_rir.pyaudio_to_text_lhotse_prompted.py
parts/ 子目录
parts/preprocessing/
保留:segment.py、features.py、perturb.py、feature_loader.py、__init__.py
可删除:无(全量保留)
parts/mixins/
保留:
diarization.pystreaming.pymixins.py__init__.py
可删除:
asr_adapter_mixins.pyinterctc_mixin.pymultitalker_asr_mixins.pytranscription.py
parts/submodules/
保留:
jasper.pyconformer_modules.pycausal_convs.pysubsampling.pymulti_head_attention.pyclassifier.pybatchnorm.pyspectr_augment.pystateless_net.pytdnn_attention.pysqueezeformer_modules.pytoken_classifier.py__init__.py
可删除:
ngram_lm/transducer_decoding/aed_decoding/adapters/wfst_decoder.pyctc_beam_decoding.pyctc_batched_beam_decoding.pyctc_decoding.pyctc_greedy_decoding.pycuda_graph_rnnt_greedy_decoding.pymultitask_beam_decoding.pymultitask_decoding.pymultitask_greedy_decoding.pyrnnt_beam_decoding.pyrnnt_decoding.pyrnnt_greedy_decoding.pyrnnt_maes_batched_computer.pyrnnt_malsd_batched_computer.pyssl_quantizers.pytdt_beam_decoding.pytdt_malsd_batched_computer.py
parts/utils/
保留(由依赖链引用):
speaker_utils.pytranscribe_utils.pyvad_utils.pydata_simulation_utils.pymanifest_utils.pyasr_multispeaker_utils.pyrnnt_utils.pystreaming_utils.pyoffline_clustering.pylongform_clustering.pyonline_clustering.pyoptimization_utils.pydiarization_utils.pyaligner_utils.pytimestamp_utils.pyeval_utils.pyasr_confidence_utils.pyasr_confidence_benchmarking_utils.pyasr_batching.pyasr_module_utils.pybatched_beam_decoding_utils.pyconfidence_metrics.pydecoder_timestamps_utils.pymultispk_transcribe_utils.pyslu_utils.pywfst_utils.pychunking_utils.pyadapter_utils.pyactivations.pyregularization_utils.pynumba_utils.pytokenizer_utils.py__init__.py
可删除:无(依赖链拉入了几乎所有 utils 文件)
parts/context_biasing/
可删除:无引用
parts/k2/
可删除:无 K2 解码引用
parts/numba/
保留:
spec_augment/spec_aug_numba.py— 可能被 spectr_augment 引用
可删除:
rnnt_loss/— 无 RNNT 损失引用
可删除的 nemo/lightning/ 子目录
保留(被 asr models/utils 传递依赖的):
base.py、base_callback.py、callback_group.pyckpt_utils.py、data.pyio/、pytorch/(trainer、callbacks、strategies)resume.pymegatron_init.py、megatron_parallel.pynemo_logger.py、one_logger_callback.pyrun/__init__.py
可删除:
fabric/— 无 Fabric 使用README.md
可删除的 nemo/utils/ 文件
保留(核心依赖):
logging.py→nemo_logging.pyexp_manager.pymodel_utils.pyapp_state.pycallbacks/config_utils.pydata_utils.pyenum.py、exceptions.py、env_var_parsing.pyfile_utils.py、cloud.pyget_rank.py、distributed.pyimport_utils.py、cast_utils.py、dtype.pyloggers/lightning_logger_patch.pymetaclasses.pymcore_logger.pymegatron_utils.pymsc_utils.pynotebook_utils.pynvtx.pys3_dirpath_utils.py、s3_utils.pytimers.pytrainer_utils.py__init__.py
可删除:
decorators/— deprecated/experimental/port_docsformatters/sequence_packing_utils.pyte_utils.py— Transformer Enginetrt_utils.py— TRTexport_utils.pyflops_formulas.pyhyena_flops_formulas.pyarguments.pydebug_hook.pyoptional_libs.py— 检查是否需要(用于条件导入 guard)process_launcher/
可删除的 nemo/core/ 文件
保留:
config/— hydra_runner、base_configclasses/— common、ModelPT、module、loss、dataset、exportableclasses/mixins/— access_mixins、adapter_mixins、hf_io_mixinneural_types/— 全量connectors/save_restore_connector.pyoptim/— optimizers、lr_scheduler、novograd、radamutils/— cuda_python_utils、neural_type_utils、numba_utils、optional_libs__init__.py
可删除:
core/config/templates/— model_card 模板core/config/pytorch.py— 如果未被引用core/config/pytorch_lightning.py— 同上core/optim/mcore_optim.py— 如果未使用 Megatroncore/optim/megatron_fused_adam.py— 同上core/optim/distributed_adam.py— 同上core/optim/adan.py— 同上core/optim/adafactor.py— 同上core/optim/optimizer_with_main_params.py— 同上core/utils/k2_guard.py、k2_utils.py— 无 K2core/utils/process_launcher/
删除命令(示例)
cd src/third_party/nemo
# 顶层
rm -rf export/
# collections
rm -rf collections/tts/ collections/nlp/ collections/multimodal/ collections/speechlm/ collections/vision/ 2>/dev/null
# asr/models
rm -f collections/asr/models/{clustering_diarizer,ctc_models,ctc_bpe_models,hybrid_rnnt_ctc_models,hybrid_rnnt_ctc_bpe_models,hybrid_autoregressive_transducer_models,rnnt_models,rnnt_bpe_models,ssl_models,speech_to_text,speech_to_text_bpe,transformer_bpe_models,msdd_models,wav2vec,classification_models}.py
# asr/modules
rm -f collections/asr/modules/{beam_search_decoder,flashlight_decoder,graph_decoder,hybrid_autoregressive_transducer,lstm_decoder,msdd_diarizer,rnnt,rnnt_abstract,rnn_encoder,squeezeformer_encoder,wav2vec_modules}.py
rm -rf collections/asr/modules/ssl_modules/
# asr/losses
rm -f collections/asr/losses/{angularloss,ctc_loss,hat_loss,hinge_loss,rnnt_loss,speaker_ce_loss,tdt_loss}.py
# asr/metrics
rm -f collections/asr/metrics/{rnnt_metrics,tdt_metrics}.py
# asr/data
rm -f collections/asr/data/{audio_to_speech_label,audio_to_speech,audio_to_rir,audio_to_text_lhotse_prompted}.py
# asr/parts/mixins
rm -f collections/asr/parts/mixins/{asr_adapter_mixins,interctc_mixin,multitalker_asr_mixins,transcription}.py
# asr/parts/context_biasing & k2
rm -rf collections/asr/parts/{context_biasing,k2}/
# asr/parts/submodules (decoders not needed)
rm -rf collections/asr/parts/submodules/{ngram_lm,transducer_decoding,aed_decoding,adapters}/
rm -f collections/asr/parts/submodules/{wfst_decoder,ctc_beam_decoding,ctc_batched_beam_decoding,ctc_decoding,ctc_greedy_decoding,cuda_graph_rnnt_greedy_decoding,multitask_beam_decoding,multitask_decoding,multitask_greedy_decoding,rnnt_beam_decoding,rnnt_decoding,rnnt_greedy_decoding,rnnt_maes_batched_computer,rnnt_malsd_batched_computer,ssl_quantizers,tdt_beam_decoding,tdt_malsd_batched_computer}.py
# asr/parts/numba (keep only spec_augment)
rm -rf collections/asr/parts/numba/rnnt_loss/
# lightning
rm -rf lightning/fabric/ lightning/README.md
# utils
rm -rf utils/{decorators,formatters,process_launcher}/
rm -f utils/{sequence_packing_utils,te_utils,trt_utils,export_utils,flops_formulas,hyena_flops_formulas,arguments,debug_hook}.py
# core
rm -rf core/config/templates/ core/utils/{k2_guard,k2_utils}.py core/utils/process_launcher/
rm -f core/optim/{mcore_optim,megatron_fused_adam,distributed_adam,adan,adafactor,optimizer_with_main_params}.py
验证
以下验证在实际环境(conda nemo)中通过,当前裸 Python 环境因缺少
hydra包而报ModuleNotFoundError,不影响文件完整性。
删除后通过文件系统检查确认所有保留模块路径存在:
cd finetune_pipeline
# 检查所有关键模块文件是否存在
for mod in \
nemo/collections/asr/models/sortformer_diar_models.py \
nemo/collections/asr/data/data_simulation.py \
nemo/collections/asr/parts/utils/speaker_utils.py \
nemo/collections/asr/parts/utils/manifest_utils.py \
nemo/collections/asr/parts/utils/vad_utils.py \
nemo/collections/asr/parts/utils/data_simulation_utils.py \
nemo/collections/asr/parts/utils/transcribe_utils.py \
nemo/collections/asr/losses/bce_loss.py \
nemo/collections/asr/metrics/der.py \
nemo/collections/asr/metrics/wer.py \
nemo/collections/asr/metrics/multi_binary_acc.py \
nemo/collections/asr/modules/audio_preprocessing.py \
nemo/collections/asr/modules/conformer_encoder.py \
nemo/collections/asr/modules/sortformer_modules.py \
nemo/collections/asr/modules/conv_asr.py \
nemo/collections/asr/parts/mixins/diarization.py \
nemo/collections/asr/parts/mixins/streaming.py \
nemo/collections/asr/parts/preprocessing/segment.py \
nemo/collections/asr/parts/preprocessing/features.py \
nemo/collections/asr/parts/preprocessing/perturb.py \
nemo/collections/common/parts/preprocessing/manifest.py \
nemo/core/config/hydra_runner.py \
nemo/utils/exp_manager.py
do
if [ -f "src/third_party/$mod" ]; then echo "OK: $mod"; else echo "MISSING: $mod"; fi
done
清理过程总结
已删除
| 类别 | 路径 |
|---|---|
| 导出 | nemo/export/ |
| 非ASR集合 | collections/tts/, nlp/, multimodal/, speechlm/, vision/ |
| ASR模型 | clustering_diarizer, ctc_*, hybrid_*, rnnt_*, ssl_*, speech_to_text*, transformer_bpe_*, msdd_*, wav2vec, classification_models |
| ASR模块 | beam_search_decoder, flashlight_decoder, graph_decoder, hybrid_autoregressive_transducer, lstm_decoder, msdd_diarizer, rnnt*, rnn_encoder, squeezeformer_encoder, ssl_modules/, wav2vec_modules |
| ASR损失 | angularloss, hat_loss, hinge_loss, rnnt_loss, speaker_ce_loss, tdt_loss |
| ASR指标 | rnnt_metrics, tdt_metrics |
| ASR数据 | audio_to_speech_label, audio_to_speech, audio_to_rir, audio_to_text_lhotse_prompted |
| 混入 | asr_adapter_mixins, interctc_mixin, multitalker_asr_mixins, transcription |
| 子模块 | ngram_lm/, transducer_decoding/, aed_decoding/, adapters/, wfst_decoder, ctc_*_decoding, rnnt_*_decoding, multitask_*, ssl_quantizers, tdt_* |
| 分区 | context_biasing/, k2/, numba/rnnt_loss/ |
| 工具 | utils/decorators/, formatters/, process_launcher/, sequence_packing_utils, te_utils, trt_utils, export_utils, flops_formulas, hyena_flops_formulas, arguments, debug_hook |
| Lightning | lightning/fabric/, lightning/README.md |
| Core | core/config/templates/, core/utils/k2_*, core/utils/process_launcher/, core/optim/mcore_*, megatron_fused_adam, distributed_adam, adan, adafactor, optimizer_with_main_params |
已修复的 __init__.py
删除文件后,以下 __init__.py 中仍引用了已删除模块,已修正为仅导入现存模块:
nemo/collections/asr/losses/__init__.py— 移除angularloss,lattice_losses,ssl_losses导入nemo/collections/asr/models/__init__.py— 仅保留SortformerEncLabelModelnemo/collections/asr/modules/__init__.py— 移除beam_search_decoder,graph_decoder,hybrid_autoregressive_transducer,lstm_decoder,msdd_diarizer,rnn_encoder,rnnt,squeezeformer_encoder,ssl_modulesnemo/collections/asr/parts/mixins/__init__.py— 移除asr_adapter_mixins,interctc_mixin,multitalker_asr_mixins,transcription
结果
- 磁盘占用:28M
- 顶层目录结构:
collections/,core/,lightning/,utils/,constants.py,package_info.py