Wir sind alle von LLMs für unsere alltäglichen Aktivitäten angewiesen, aber quantifizieren “Wie effizient sie sind”Ist eine gigantische Herausforderung. Konventionelle Metriken wie z. BleuAnwesend ROUGEUnd METEOR In der Regel die tatsächliche Bedeutung des Textes zu verstehen. Sie sind zu sehr darauf, ähnliche Wörter zu entsprechen, anstatt das Konzept dahinter zu verstehen. Bertscore kehrt dies um, indem sie Bert -Einbettungen anwenden, um die Qualität des Textes mit besserem Verständnis von Bedeutung und Kontext zu bewerten.
Egal, ob Sie einen Chatbot trainieren, übersetzen oder Zusammenfassungen erstellen, Bertscore erleichtert es Ihnen, Ihre Modelle besser zu bewerten. Es erfasst, wenn zwei Sätze trotz der Verwendung verschiedener Wörter dasselbe vermitteln – etwas vermissen ältere Metriken. Wenn wir uns mit der Funktionsweise von Bertscore befassen, erfahren Sie, wie dieser brillante Bewertungsansatz die Computermessung und die menschliche Instinct zusammenbindet und die Artwork und Weise revolutioniert, wie wir die heutigen raffinierten Sprachmodelle testen und verfeinern.
Was ist Bertscore?
Bertscore ist eine neuronale Bewertungsmetrik für die Textgenerierung, die kontextbezogene Einbettungen von vorgeborenen Sprachmodellen wie Bert verwendet, um Ähnlichkeitsbewertungen zwischen Kandidaten- und Referenztexten zu berechnen. Im Gegensatz zu herkömmlichen Metriken auf N-Gram-basierten Metriken kann Bertscore die semantische Äquivalenz auch dann identifizieren, wenn verschiedene Wörter verwendet werden, wodurch es für die Bewertung von Sprachaufgaben nützlich ist, bei denen mehrere gültige Ausgänge vorhanden sind.

Formuliert von Zhang et al. und präsentiert in ihrer Zeitung von 2019 ““Bertscore: Bewertung der Textgenerierung mit Bert“Diese Punktzahl hat aufgrund ihrer hohen Korrelation mit der menschlichen Bewertung über eine Reihe von Aufgaben der Textgenerierung eine rasche Akzeptanz innerhalb der NLP -Neighborhood erlangt.
Bertscore Architektur
Die Architektur von Bertscore ist elegant einfach und doch leistungsfähig und besteht aus drei Hauptkomponenten:
- Einbettung der Erzeugung: Jeder Token in Referenz- und Kandidatentexten wird unter Verwendung eines vorgeborenen Kontext-Einbettungsmodells (typischerweise Bert) eingebettet.
- Token -Matching: Der Algorithmus berechnet paarweise Cosinus -Ähnlichkeiten zwischen allen Token in der Referenz- und Kandidatentexte und erzeugt eine Ähnlichkeitsmatrix.
- Rating -Aggregation: Diese Ähnlichkeitswerte werden in Präzisions-, Rückruf- und F1 -Maßnahmen zusammengefasst, die darstellen, wie intestine der Kandidatentext mit der Referenz übereinstimmt.

Das Schöne an Bertscore ist, dass es das kontextbezogene Verständnis von vorgebliebenen Modellen nutzt, ohne zusätzliche Schulungen für die Bewertungsaufgabe zu erfordern.
Wie benutze ich Bertscore?
Bertscore kann mit mehreren Parametern zu den spezifischen Bewertungsanforderungen angepasst werden:
Parameter | Beschreibung | Normal |
model_type | Vorausgebildeter Modell (z. | „Roberta-Giant“ |
num_layers | Die Einbettungen der Schicht zu verwenden? | 17 (für Roberta-Giant) |
idf | Ob Sie die IDF -Gewichtung für Token -Wichtigkeit verwenden möchten | FALSCH |
Rescale_with_Baseline | Ob auf einer Basislinie basierend | FALSCH |
Baseline_Path | Pfad zu Grundlinienwerten | Keiner |
Lang | Sprache der Texte verglichen werden | ‚en‘ |
use_fast_tokenizer | Ob Sie die schnellen Tokenisierer von Suggingface verwenden möchten | FALSCH |
Diese Parameter ermöglichen es den Forschern, Bertscore für verschiedene Sprachen, Domänen und Bewertungsanforderungen zu optimieren.
Wie funktioniert Bertscore?
Bertscore bewertet die Ähnlichkeit zwischen generiertem Textual content und Referenztext über einen Matching-Prozess auf Token-Ebene unter Verwendung von kontextuellen Einbettungen. Hier finden Sie eine Schritt-für-Schritt-Aufschlüsselung der Funktionsweise:

- Tokenisierung: Sowohl Kandidaten (generiert) als auch Referenztexte werden unter Verwendung des Tokenizers, der dem verwendeten vorgebreiteten Modell entspricht, tokenisiert (z. B. Bert, Roberta).
- Kontexteinbettung: Jeder Token wird dann unter Verwendung eines vorgebliebenen Kontextmodells eingebettet. Wichtig ist, dass diese Einbettungen die Bedeutung von Wörtern im Kontext erfassen und nicht statische Wortdarstellungen. Zum Beispiel hätte das Wort „Financial institution“ in „River Financial institution“ unterschiedliche Einbettungen als „Monetary Financial institution“.
- Cosinus -Ähnlichkeitsberechnung: Für jeden Token im Kandidatentext berechnet Bertscore seine Cosinus -Ähnlichkeit mit jedem Token im Referenztext und erstellt eine Ähnlichkeitsmatrix.
- Gieriger Matching:
- Für Präzision: Jeder Kandidaten -Token ist mit dem ähnlichsten Referenztoken übereinstimmt
- Für Rückruf: Jeder Referenztoken ist mit dem ähnlichsten Kandidaten -Token abgestimmt
- Wichtigkeitsgewichtung (non-obligatory): Token können durch ihre inverse Dokumentfrequenz (IDF) gewichtet werden, um Inhaltswörter über Funktionswörter zu betonen.
- Rating -Aggregation:
- Präzision wird als Durchschnitt der maximalen Ähnlichkeitswerte für jeden Kandidaten -Token berechnet
- Abrufen wird als Durchschnitt der maximalen Ähnlichkeitswerte für jeden Referenztoken berechnet
- F1 kombiniert Präzision und Rückruf unter Verwendung der harmonischen Mittelwertformel
- Rating Normalisierung (non-obligatory): Rohwerte können basierend auf den Basiswerten neu skaliert werden, um sie interpretierbarer zu machen.
Dieser Ansatz ermöglicht es Bertscore, semantische Äquivalenz zu erfassen, selbst wenn verschiedene Wörter verwendet werden, um die gleiche Bedeutung auszudrücken, und es robuster als lexikalische Übereinstimmungsmetriken für die Bewertung moderner Textgenerierungssysteme.
Implementierung in Python
Lassen Sie uns Bertscore Schritt für Schritt implementieren, um zu verstehen, wie es in der Praxis funktioniert.
1. Setup und Set up
Installieren Sie zunächst die erforderlichen Pakete:
# Set up the bert-score package deal
pip set up bert-score
2. Grundlegende Implementierung
So berechnen Sie Bertscore zwischen Kandidaten- und Referenztexten:
import bert_score
# Outline reference and candidate texts
references = ("The cat sat on the mat.", "The feline rested on the ground overlaying.")
candidates = ("A cat was sitting on a mat.", "The cat was on the mat.")
# Calculate BERTScore
P, R, F1 = bert_score.rating(
candidates,
references,
lang="en",
model_type="roberta-large",
num_layers=17,
verbose=True
)
# Print outcomes
for i, (p, r, f) in enumerate(zip(P, R, F1)):
print(f"Instance {i+1}:")
print(f" Precision: {p.merchandise():.4f}")
print(f" Recall: {r.merchandise():.4f}")
print(f" F1: {f.merchandise():.4f}")
print()
Ausgabe:

Dies zeigt, wie Bertscore die semantische Ähnlichkeit erfasst, auch wenn verschiedene Phrasen verwendet werden.
Bert -Einbettungen und Cosinus -Ähnlichkeit
Der Kern von Bertscore liegt darin, wie er kontextbezogene Einbettungen und die Ähnlichkeit der Cosinus nutzt. Lassen Sie uns den Prozess aufschlüsseln:
1. Erzeugen von kontextuellen Einbettungen: Vor diesem Hintergrund ist Bertscore eine Maßnahme wirklich alternativ zu den traditionellen N-Gram-basierten Maßnahmen, da sie auf der Erzeugung der kontextuellen Einbettung basiert. Im Gegensatz zu statischen Worteinbettungen (wie Word2Vec oder Handschuh) sind kontextbezogene Einbettungen für die semantische Ähnlichkeitsbewertung fein abgestimmt, da sie die Bedeutung des umgebenden Kontextes für die Zuweisung von Bedeutung an Wörter berücksichtigen.
import torch
from transformers import AutoTokenizer, AutoModel
def get_bert_embeddings(texts, model_name="bert-base-uncased"):
# Load tokenizer and mannequin
tokenizer = AutoTokenizer.from_pretrained(model_name)
mannequin = AutoModel.from_pretrained(model_name)
# Transfer mannequin to GPU if obtainable
machine = "cuda" if torch.cuda.is_available() else "cpu"
mannequin.to(machine)
# Course of texts in batch
encoded_input = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")
encoded_input = {okay: v.to(machine) for okay, v in encoded_input.objects()}
# Get mannequin output
with torch.no_grad():
outputs = mannequin(**encoded_input)
# Use embeddings from the final layer
embeddings = outputs.last_hidden_state
# Take away padding tokens
attention_mask = encoded_input('attention_mask')
embeddings = (emb(masks.bool()) for emb, masks in zip(embeddings, attention_mask))
return embeddings
# Instance utilization
texts = ("The cat sat on the mat.", "A cat was sitting on a mat.")
embeddings = get_bert_embeddings(texts)
print(f"Variety of texts: {len(embeddings)}")
print(f"Form of first textual content embeddings: {embeddings(0).form}")
Ausgabe:

2. Laptop -Ähnlichkeit Cosinus: Bertscore verwendet die Ähnlichkeit der Cosinus, eine Metrik, die misst, wie ausgerichtet zwei Vektoren im Einbettungsraum unabhängig von ihrer Größe sind, um die semantische Ähnlichkeit zwischen Token zu berechnen, sobald kontextbezogene Einbettungen für die Referenz- und Kandidatentexte erstellt wurden.

Lassen Sie uns nun die Berechnung der Cosinus -Ähnlichkeit zwischen Token implementieren:
def token_cosine_similarity(embeddings1, embeddings2):
# Normalize embeddings for cosine similarity
embeddings1_norm = embeddings1 / embeddings1.norm(dim=1, keepdim=True)
embeddings2_norm = embeddings2 / embeddings2.norm(dim=1, keepdim=True)
similarity_matrix = torch.matmul(embeddings1_norm, embeddings2_norm.transpose(0, 1))
return similarity_matrix
# Instance utilization with our beforehand generated embeddings
sim_matrix = token_cosine_similarity(embeddings(0), embeddings(1))
print(f"Form of similarity matrix: {sim_matrix.form}")
print("Similarity matrix (token-to-token):")
print(sim_matrix)
Ausgabe:

Bertscore: Präzision, Rückruf und F1
Lassen Sie uns die Kernberechnung von BERTSCORE von Grund auf neu implementieren, um die Mathematik dahinter zu verstehen:
Mathematische Formulierung
Bertscore berechnet drei Metriken:
1. Präzision: Wie viele Token im Kandidatentext übereinstimmen Token in der Referenz?

2. Abrufen: Wie viele Token im Referenztext werden vom Kandidaten abgedeckt?

3. F1: Das harmonische Mittel der Präzision und des Rückrufs

Wo:
- X Und y sind die Kandidaten- und Referenztexte
- Xi Und yJ sind die Token -Einbettungen.

Durchführung
def calculate_bertscore(candidate_embeddings, reference_embeddings):
# Compute similarity matrix
sim_matrix = token_cosine_similarity(candidate_embeddings, reference_embeddings)
# Compute precision (max similarity for every candidate token)
precision = sim_matrix.max(dim=1)(0).imply().merchandise()
# Compute recall (max similarity for every reference token)
recall = sim_matrix.max(dim=0)(0).imply().merchandise()
# Compute F1
f1 = 2 * precision * recall / (precision + recall) if precision + recall > 0 else 0
return precision, recall, f1
# Instance
cand_emb = embeddings(0) # "The cat sat on the mat."
ref_emb = embeddings(1) # "A cat was sitting on a mat."
precision, recall, f1 = calculate_bertscore(cand_emb, ref_emb)
print(f"Customized BERTScore calculation:")
print(f" Precision: {precision:.4f}")
print(f" Recall: {recall:.4f}")
print(f" F1: {f1:.4f}")
Ausgabe:

Diese Implementierung zeigt den Kernalgorithmus hinter Bertscore. Die tatsächliche Bibliothek umfasst zusätzliche Optimierungen, IDF -Gewichtungsoptionen und Foundation -Neuübertragung.
Vorteile und Einschränkungen
Vorteile | Einschränkungen |
Erfasst semantische Ähnlichkeit über die lexikalische Überlappung hinaus | Rechnerisch intensiver als N-Gramm-Metriken |
Korreliert besser mit menschlichen Urteilen | Die Leistung hängt von der Qualität der zugrunde liegenden Einbettungen ab |
Funktioniert intestine über verschiedene Aufgaben und Domänen hinweg intestine | Kann nicht strukturelle oder logische Kohärenz erfassen |
Kein Coaching, das speziell für die Bewertung erforderlich ist | Kann empfindlich auf die Wahl der Bert -Schicht und des Modells sein |
Verarbeitet Synonyme und paraphrasen natürlich | Weniger interpretierbar als explizite passende Metriken |
Sprach-Agnostiker (mit geeigneten Modellen) | Erfordert GPU für eine effiziente Verarbeitung großer Datensätze |
Kann mit verschiedenen Einbettungsmodellen angepasst werden | Nicht entwickelt, um die sachliche Korrektheit zu bewerten |
Bearbeitet effektiv mehrere gültige Referenzen | Kann mit sehr kreativem oder ungewöhnlichem Textual content kämpfen |
Praktische Anwendungen
Bertscore hat eine breite Anwendung bei zahlreichen NLP -Aufgaben gefunden:
- Maschinelle Übersetzung: Bertscore hilft bei der Bewertung von Übersetzungen, indem sie sich eher auf die Erhaltung der Bedeutung konzentriert als genaue Formulierung, was angesichts der unterschiedlichen gültigen Möglichkeiten, einen Satz zu übersetzen, besonders wertvoll ist.
- Zusammenfassung: Bei der Bewertung von Zusammenfassungen kann Bertscore identifizieren, wenn verschiedene Phrasen dieselben Schlüsselinformationen erfassen und so flexibler als Rouge für die Bewertung der Zusammenfassung der Qualität werden.
- Dialogsysteme: Bei der Konversations -KI kann Bertscore die Angemessenheit der Antwort bewerten, indem sie die semantische Ähnlichkeit mit Referenzantworten misst, selbst wenn sich der Wortlaut erheblich unterscheidet.
- SMS -Vereinbarung: Bertscore kann beurteilen, ob Vereinfachungen die ursprüngliche Bedeutung beibehalten, während sie unterschiedliche Vokabeln verwenden, eine Aufgabe, bei der Lexikal -Überlappungsmetriken häufig zu kurz kommen.
- Inhaltserstellung: Bei der Bewertung kreativer Inhalte von AI-generierten kann Bertscore messen, wie intestine die Era die beabsichtigten Themen oder Informationen erfasst, ohne eine genaue Übereinstimmung zu erfordern.
Vergleich mit anderen Metriken
Wie stapelt Bertscore gegen andere Bewertungskennzahlen für beliebte Bewertungen?
Metrisch | Foundation | Stärken | Schwächen | Menschliche Korrelation |
Bleu | N-Gramm-Präzision | Schnell, interpretierbar | Oberflächenebene, position-unempfindlich | Mäßig |
ROUGE | N-Gram-Rückruf | Intestine für die Zusammenfassung | Vermisst semantische Äquivalenz | Mäßig |
METEOR | Verbesserte lexikalische Übereinstimmung | Verarbeitet Synonyme | Immer noch hauptsächlich lexikalisch | Mittelschwer |
Bertscore | Kontext -Einbettungen | Semantisches Verständnis | Rechnerisch intensiv | Hoch |
BleTurt | Gelernte Metrik (fein abgestimmter) | Aufgabenspezifisch | Erfordert Coaching | Sehr hoch |
LLM-AS-Choose | Direkte LLM -Bewertung | Umfassend | Black Field, teuer | Sehr hoch |
Bertscore bietet ein Gleichgewicht zwischen Raffinesse und Praktikabilität und erfasst semantische Ähnlichkeit, ohne aufgabenspezifische Schulungen zu erfordern.
Abschluss
Bertscore stellt einen signifikanten Fortschritt bei den Fortschritten der Textgenerierung dar, indem die semantischen Verständnisfähigkeiten kontextbezogener Einbettungen eingesetzt werden. Seine Fähigkeit, Bedeutung über lexikalische Übereinstimmungen auf Oberflächenebene zu erfassen, macht es für die Bewertung moderner Sprachmodelle wertvoll, wobei Kreativität und Variation der Ausgaben erwartet und gewünscht werden.
Während keine einzelne Metrik die Textqualität perfekt bewerten kann, ist es wichtig zu beachten, dass Bertscore einen zuverlässigen Rahmen bietet, der nicht nur mit der menschlichen Bewertung über verschiedene Aufgaben hinweg übereinstimmt, sondern auch konsistente Ergebnisse bietet. In Kombination mit traditionellen Metriken und menschlichen Analysen ermöglicht es letztendlich tiefere Einblicke in die Funktionen der Sprachgenerierung.
Während sich Sprachmodelle entwickeln, werden Instruments wie Bertscore zur Identifizierung von Modellstärken und -schwächen und zur Verbesserung der Gesamtqualität der natürlichen Sprachgenerierungssysteme notwendig.
Melden Sie sich an, um weiter zu lesen und Experten-Kuratinhalte zu genießen.