RAW_TEXT - Die rohen Textbrocken < /li>
Beschriftung - Entsprechende Beschriftung für den Text - True oder False. (1 oder 0) < /li>
< /ol>
Ich wollte ein Satztransformatormodell einstellen, so dass die Einbettungen auf eine Weise optimiert werden, dass alle wahren Sätze im Vektorraum näher sind als alle falschen Satz-TRANS-Dokumentationen. Für meine Art von Daten und Anwendungsfall. Ich beuge mich unten in Richtung:
Da es mit meinem Datenformat übereinstimmt. Wenn ich mehr über diese Verluste und die Art und Weise, wie sie mit Anker berechnet werden, lesen, ist ich weniger zuversichtlich, sie zu verwenden, da meine Daten diese Art von Paar nicht haben.
Code: Select all
from sentence_transformers import SentenceTransformer, InputExample, SentencesDataset, LoggingHandler, losses
from torch.utils.data import DataLoader
import pandas as pd
# Load a pre-trained Sentence Transformer model
# model = SentenceTransformer('stsb-roberta-base') #Hugging face says this model produces embeddings of low quality
model = SentenceTransformer('all-mpnet-base-v2')
# Assume 'transportation_data' is your dataset containing 'page_raw_text' and 'is_practical' columns
data = pd.DataFrame({'text': train_data['page_raw_text'], 'label': train_data['label']})
# Create InputExample objects
examples = [InputExample(texts=[txt], label=label) for txt, label in zip(data['text'], data['label'])]
# Create a DataLoader object and a Loss model
train_dataset = SentencesDataset(examples=examples, model=model)
train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=8)
train_loss = losses.BatchAllTripletLoss(model=model)
# Define your training arguments
num_epochs = 10
evaluation_steps = 1
model.fit(train_objectives=[(train_dataloader, train_loss)], epochs=num_epochs,evaluation_steps=1)