zhifu gao
2024-01-19 2cca8104d26b454112f39b8405dcb0e70d365990
Funasr1.0 (#1275)

* funasr1.0 funetine

* funasr1.0 pbar

* update with main (#1260)

* Update websocket_protocol_zh.md

* update

---------

Co-authored-by: Yabin Li <wucong.lyb@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>

* update with main (#1264)

* Funasr1.0 (#1261)

* funasr1.0 funetine

* funasr1.0 pbar

* update with main (#1260)

* Update websocket_protocol_zh.md

* update

---------

Co-authored-by: Yabin Li <wucong.lyb@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>

---------

Co-authored-by: Yabin Li <wucong.lyb@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>

* bug fix

---------

Co-authored-by: Yabin Li <wucong.lyb@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>

* funasr1.0 sanm scama

* funasr1.0 infer_after_finetune

* funasr1.0 fsmn-vad bug fix

* funasr1.0 fsmn-vad bug fix

* funasr1.0 fsmn-vad bug fix

* funasr1.0 finetune

* funasr1.0 finetune

* funasr1.0 finetune

---------

Co-authored-by: Yabin Li <wucong.lyb@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>
6个文件已修改
28 ■■■■■ 已修改文件
examples/industrial_data_pretraining/paraformer/finetune.sh 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/auto/auto_model.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/bin/train.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/datasets/audio_datasets/samplers.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/models/fsmn_vad_streaming/model.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/train_utils/trainer.py 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
examples/industrial_data_pretraining/paraformer/finetune.sh
@@ -11,9 +11,9 @@
+model_revision="v2.0.2" \
+train_data_set_list="/Users/zhifu/funasr_github/test_local/aishell2_dev_ios/asr_task_debug_len_10.jsonl" \
+valid_data_set_list="/Users/zhifu/funasr_github/test_local/aishell2_dev_ios/asr_task_debug_len_10.jsonl" \
++dataset_conf.batch_size=2 \
++dataset_conf.batch_size=64 \
++dataset_conf.batch_type="example" \
++train_conf.max_epoch=2 \
++dataset_conf.num_workers=4 \
+output_dir="outputs/debug/ckpt/funasr2/exp2" \
+device="cpu" \
+debug="true"
funasr/auto/auto_model.py
@@ -132,7 +132,7 @@
        self.punc_kwargs = punc_kwargs
        self.spk_model = spk_model
        self.spk_kwargs = spk_kwargs
        self.model_path = kwargs["model_path"]
        self.model_path = kwargs.get("model_path", "./")
  
        
    def build_model(self, **kwargs):
funasr/bin/train.py
@@ -40,7 +40,7 @@
def main(**kwargs):
    print(kwargs)
    # set random seed
    tables.print()
    set_all_random_seed(kwargs.get("seed", 0))
funasr/datasets/audio_datasets/samplers.py
@@ -28,7 +28,7 @@
        self.shuffle = shuffle and is_training
    
    def __len__(self):
        return self.total_samples
        return (self.total_samples-1) // self.batch_size + 1
    
    def set_epoch(self, epoch):
        np.random.seed(epoch)
funasr/models/fsmn_vad_streaming/model.py
@@ -255,7 +255,6 @@
        self.waveform = None
        self.last_drop_frames = 0
@tables.register("model_classes", "FsmnVADStreaming")
class FsmnVADStreaming(nn.Module):
    """
@@ -500,7 +499,6 @@
        #     # reset class variables and clear the dict for the next query
        #     self.AllResetDetection()
        return segments
    def init_cache(self, cache: dict = {}, **kwargs):
    
funasr/train_utils/trainer.py
@@ -148,7 +148,15 @@
            
            self._train_epoch(epoch)
            
            if self.use_ddp or self.use_fsdp:
                dist.barrier()
            self._validate_epoch(epoch)
            if self.use_ddp or self.use_fsdp:
                dist.barrier()
            
            if self.rank == 0:
                self._save_checkpoint(epoch)
@@ -164,6 +172,8 @@
            
        if self.use_ddp or self.use_fsdp:
            dist.barrier()
        if self.writer:
        self.writer.close()
        
    
@@ -230,6 +240,8 @@
                        continue
                
                # Execute an optimization step (update model parameters)
                if self.use_ddp or self.use_fsdp:
                    dist.barrier()
                self.optim.step()
                self.scheduler.step()
                # Clear gradients for the next accumulation stage
@@ -244,7 +256,7 @@
            pbar.update(1)
            if self.local_rank == 0:
                description = (
                    f"Epoch: {epoch}/{self.max_epoch}, "
                    f"Train epoch: {epoch}/{self.max_epoch}, "
                    f"step {batch_idx}/{len(self.dataloader_train)}, "
                    f"{speed_stats}, "
                    f"(loss: {loss.detach().cpu().item():.3f}), "
@@ -306,7 +318,7 @@
                pbar.update(1)
                if self.local_rank == 0:
                    description = (
                        f"validation: \nEpoch: {epoch}/{self.max_epoch}, "
                        f"validation epoch: {epoch}/{self.max_epoch}, "
                        f"step {batch_idx}/{len(self.dataloader_train)}, "
                        f"{speed_stats}, "
                        f"(loss: {loss.detach().cpu().item():.3f}), "