游雁
2024-06-09 1163110135c625a8a3ebd94e050d9adb5b55bb84
funasr/datasets/openai_datasets/datasets.py
@@ -51,7 +51,7 @@
        self.batch_size = kwargs.get("batch_size")
        self.batch_type = kwargs.get("batch_type")
        self.prompt_ids_len = 0
        self.retry = kwargs.get("retry", 10)
        self.retry = kwargs.get("retry", 100)
        self.permute = False
        from funasr.frontends.whisper_frontend import WhisperFrontend
@@ -162,7 +162,7 @@
            if badcase_flag:
                continue
            input_ids = torch.tensor(input_ids, dtype=torch.int64)  # [: self.max_token_length]
            attention_mask = torch.tensor([len(input_ids)], dtype=torch.int32)
            attention_mask = torch.tensor([1] * len(input_ids), dtype=torch.int32)
            labels = torch.tensor(labels, dtype=torch.int64)  # [: self.max_token_length]
            fbank = speech[0, :, :]
@@ -211,14 +211,11 @@
            if self.batch_type != "example":
                b, t = outputs["input_ids"].shape
                if b * t > self.batch_size * self.batch_size_scale_ratio_max:
                    beg = torch.randint(0, 2, ()).item()
                    if b < 2:
                        beg = 0
                if b > 1 and b * t > self.batch_size * self.batch_size_scale_ratio_max:
                    logging.info(
                        f"Warning, b * t: {b * t} > {self.batch_size}, b: {b}, t: {t}, drop half data {idx}th, beg:{beg}"
                        f"Warning, b*t: {b}*{t}={b * t} > batch_size*relax: {self.batch_size_scale_ratio_max}*{self.batch_size}={self.batch_size_scale_ratio_max*self.batch_size}, drop last data"
                    )
                    samples = samples[beg : beg + b : 2]
                    samples = samples[:-1]
                    continue
            break