数据集

注意

sentence_transformers.datasets 类已被弃用,仅为兼容已弃用的训练而存在。

sentence_transformers.datasets 包含用于组织训练输入示例的类。

ParallelSentencesDataset

ParallelSentencesDataset 用于多语言训练。有关详细信息,请参阅多语言训练

class sentence_transformers.datasets.ParallelSentencesDataset(student_model: SentenceTransformer, teacher_model: SentenceTransformer, batch_size: int = 8, use_embedding_cache: bool = True)[source]

此数据集读取器可用于读取并行句子,即它读取一个文件,其中包含以制表符分隔的不同语言的相同句子。例如,该文件可以如下所示(EN DE ES):hello world hallo welt hola mundo second sentence zweiter satz segunda oración

第一列中的句子将使用给定的嵌入器映射到句子嵌入。例如,嵌入器是英语的单语言句子嵌入方法。其他语言中的句子也将映射到此英语句子嵌入。

从数据集中获取样本时,我们将获得一个带有该句子相应句子嵌入的句子。

teacher_model 可以是任何实现了编码函数的类。编码函数获取一个句子列表并返回一个句子嵌入列表。

并行句子数据集读取器,用于在给定教师模型的情况下训练学生模型。

参数:
  • student_model (SentenceTransformer) – 应该训练的学生句子嵌入模型。

  • teacher_model (SentenceTransformer) – 为数据集文件第一列提供句子嵌入的教师模型。

  • batch_size (int, optional) – 训练的批处理大小。默认为 8。

  • use_embedding_cache (bool, optional) – 是否使用嵌入缓存。默认为 True。

SentenceLabelDataset

SentenceLabelDataset 可用于您有标注句子并希望使用三重损失进行训练的情况。

class sentence_transformers.datasets.SentenceLabelDataset(examples: list[InputExample], samples_per_label: int = 2, with_replacement: bool = False)[source]

此数据集可用于某些特定的三重损失,例如 BATCH_HARD_TRIPLET_LOSS,它要求一个批次中包含具有相同标签的多个示例。

它每次从一个标签中抽取 n 个连续、随机且唯一的样本。这会为每个标签重复。

少于 n 个唯一样本的标签将被忽略。这也适用于不带替换的抽取,一旦某个标签剩余的样本少于 n 个,它就会被跳过。

不会检查标签是否多于批次大小,或者批次大小是否可被每个标签抽取的样本整除。

为 SentenceLabelDataset 创建 LabelSampler。

参数:
  • examples (List[InputExample]) – InputExample 列表。

  • samples_per_label (int, optional) – 每个标签抽取到的连续、随机且唯一的样本数。批处理大小应为 samples_per_label 的倍数。默认为 2。

  • with_replacement (bool, optional) – 如果为 True,则每个样本最多抽取一次(取决于每个标签的总样本数)。如果为 False,则一个样本可以在多次抽取中被抽取,但不能在同一次抽取中多次被抽取。默认为 False。

DenoisingAutoEncoderDataset

DenoisingAutoEncoderDataset 用于使用 TSDAE 方法进行无监督训练。

class sentence_transformers.datasets.DenoisingAutoEncoderDataset(sentences: list[str], noise_fn=<function DenoisingAutoEncoderDataset.<lambda>>)[source]

DenoisingAutoEncoderDataset 以以下格式返回 InputExample:texts=[noise_fn(sentence), sentence] 它与 DenoisingAutoEncoderLoss 结合使用:在这里,解码器尝试重构没有噪声的句子。

参数:
  • sentences – 句子列表。

  • noise_fn – 噪声函数:给定一个字符串,它返回一个带有噪声的字符串,例如删除的单词。

NoDuplicatesDataLoader

NoDuplicatesDataLoader 可以与 MultipleNegativeRankingLoss 一起使用,以确保同一批次中没有重复的句子。

class sentence_transformers.datasets.NoDuplicatesDataLoader(train_examples, batch_size)[source]

一个特殊的 DataLoader,与 MultipleNegativesRankingLoss 配合使用。此 DataLoader 确保同一批次中没有重复的句子。