Теперь после этого я применил это в списке образцов из 20 обзоров, чтобы вручную проверить ее производительность, которая была достаточно приличной, но применительно к DataSet, что больше, чем на 14K, не показывают, что на 1K. ?
Код: Выделить всё
class ReviewDataset(Dataset):
def __init__(self, texts):
self.inputs = ["fix: " + text for text in texts]
def __len__(self):
return len(self.inputs)
def __getitem__(self, idx):
return self.inputs[idx]
def collate_fn(batch):
encodings = tokenizer(
batch,
padding=True,
truncation=True,
max_length=128,
return_tensors="pt"
)
return encodings
< /code>
Я реализовал это путем переработки пакетов < /p>
df = pd.read_csv("reviews.csv",encoding="latin-1")
dataset = ReviewDataset(df["review_text"].tolist())
dataloader = DataLoader(dataset, batch_size=256, collate_fn=collate_fn)
all_predictions = []
with torch.no_grad():
for batch in dataloader:
input_ids = batch["input_ids"].to(device)
attention_mask = batch["attention_mask"].to(device)
outputs = model.generate(input_ids=input_ids, attention_mask=attention_mask, max_length=64)
decoded = tokenizer.batch_decode(outputs, skip_special_tokens=True)
all_predictions.extend(decoded)
df["corrected_review"] = all_predictions
df.to_csv("corrected_reviews_batched.csv", index=False)
Подробнее здесь: https://stackoverflow.com/questions/796 ... tune-model