granite-embedding-107m-multilingual ist ein 107M Biencoder-Einbettungsmodell aus Granite, das zur Generierung hochwertiger Texteinbettungen verwendet werden kann. Dieses Modell erzeugt Einbettungsvektoren der Größe 384 und wird mithilfe einer Kombination aus Open-Source-Relevanzpaardatensätzen mit einer freizügigen, unternehmensfreundlichen Lizenz und IBM gesammelten und generierten Datensätzen trainiert. Dieses Modell wurde mithilfe von kontrastiver Feinabstimmung, Wissensdestillation und Modellzusammenführung für eine verbesserte Leistung entwickelt.
- Entwickler : Granite, IBM
- GitHub Repository: ibm-granite/granite-embedding-models
- Website : Granite Docs
- Paper : Bald verfügbar
- Veröffentlichungsdatum : 18th
- Lizenz: Apache 2.0
Unterstützte Sprachen
Englisch, Deutsch, Spanisch, Französisch, Japanisch, Portugiesisch, Arabisch, Tschechisch, Italienisch, Koreanisch, Niederländisch und Chinesisch. Benutzer können granite-embedding-107m-multilingual für Sprachen über diese 12 Sprachen hinaus anpassen.
Vorgesehene Verwendung
Das Modell ist darauf ausgelegt, Vektordarstellungen mit fester Länge für einen bestimmten Text zu erstellen, die für Textähnlichkeits-, Abruf- und Suchanwendungen verwendet werden können.
Verwendung mit Satztransformationen
Das Modell ist mit SentenceTransformer kompatibel und sehr benutzerfreundlich:
Installieren Sie zunächst die Bibliothek der Satztransformatoren.
pip install sentence_transformers
Das Modell kann dann verwendet werden, um Textpaare zu kodieren und die Ähnlichkeit zwischen ihren Darstellungen zu ermitteln.
from sentence_transformers import SentenceTransformer, util
model_path = "ibm-granite/granite-embedding-107m-multilingual"
# Load the Sentence Transformer model
model = SentenceTransformer(model_path)
input_queries = [
' Who made the song My achy breaky heart? ',
'summit define'
]
input_passages = [
"Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
"Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."
]
# encode queries and passages
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)
# calculate cosine similarity
print(util.cos_sim(query_embeddings, passage_embeddings))
Verwendung mit Huggingface Transformers
Dies ist ein einfaches Beispiel für die Verwendung granite-embedding-107m-multilingual mit der Transformers-Bibliothek und PyTorch.
Installieren Sie zunächst die erforderlichen Bibliotheken.
pip install transformers torch
Das Modell kann dann zur Verschlüsselung von Textpaaren verwendet werden.
import torch
from transformers import AutoModel, AutoTokenizer
model_path = "ibm-granite/granite-embedding-107m-multilingual"
# Load the model and tokenizer
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()
input_queries = [
' Who made the song My achy breaky heart? ',
'summit define'
]
# tokenize inputs
tokenized_queries = tokenizer(input_queries, padding=True, truncation=True, return_tensors='pt')
# encode queries
with torch.no_grad():
# Queries
model_output = model(**tokenized_queries)
# Perform pooling. granite-embedding-107m-multilingual uses CLS Pooling
query_embeddings = model_output[0][:, 0]
# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)
Evaluierung
Die durchschnittliche Leistung granite-embedding-107m-multilingual bei Multilingual Miracl (in 18 Sprachen), Mintaka Retrieval (in 8 Sprachen) und MTEB Retrieval für Englisch (in 15 Aufgaben), Deutsch (über 4 Aufgaben), Spanisch (über 2 Aufgaben), Französisch (über 5 Aufgaben), Japanisch (über 2 Aufgaben), Arabisch (1 Aufgabe), Koreanisch (1 Aufgabe) und Chinesisch (über 8 Aufgaben) wird unten berichtet. Das 107 m lange granite-embedding-107m-multilingual Granit-Modell ist doppelt so schnell wie andere Modelle mit ähnlichen Einbettungsabmessungen.
Modell | Parameter (M) | Einbettungsdimension | Miracl (18) | Mintaka-Bergung (8) | MTEB Englisch (15) | MTEB Deutsch (4) | MTEB Spanisch (2) | MTEB Französisch (5) | MTEB Japanisch (2) | MTEB Arabisch (1) | MTEB Koreanisch (1) | MTEB Chinesisch (8) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
granite-embedding-107m-multilingual | 107 | 384 | 55.9 | 22.6 | 45.3 | 70.3 | 48.7 | 51.1 | 59.0 | 63.2 | 70.5 | 40.8 |
Modellarchitektur
Das granite-embedding-107m-multilingual Granit-Modell basiert auf einer reinen XLM-RoBERTa Transformatorarchitektur, die intern bei IBM trainiert wurde.
Modell | granite-embedding-30m-english | granite-embedding-125m-english | granite-embedding-107m-multilingual | granite-embedding-278m-multilingual |
---|---|---|---|---|
Einbettungsgröße | 384 | 768 | 384 | 768 |
Anzahl Ebenen | 6 | 12. | 6 | 12. |
Anzahl der Aufmerksamkeitsspitzen | 12. | 12. | 12 | 12. |
Zwischengröße | 1536 | 3072 | 1536 | 3072 |
Aktivierungsfunktion | GeLU | GeLU | GeLU | GeLU |
Wortschatzgröße | 50265 | 50265 | 250002 | 250002 |
Maximale Sequenzlänge | 512 | 512 | 512 | 512 |
Anzahl Parameter | 30M | 125M | 107M | 278M |
Trainingsdaten
Insgesamt bestehen die Trainingsdaten aus vier Hauptquellen: (1) unüberwachte, aus dem Internet zusammengetragene Titel-Text-Datenpaare, (2) öffentlich verfügbare Datenpaare mit einer freizügigen, unternehmensfreundlichen Lizenz, (3) IBM Datenpaare, die auf bestimmte technische Bereiche abzielen, und (4) IBM synthetische Daten. Die Daten sind unten aufgeführt:
Dataset | Num. Paare |
---|---|
MC4 | 52.823.484 |
Mehrsprachige Website | 12.369.322 |
Englische Wikipedia | 20.745.403 |
Mehrsprachige Wikimedia | 2.911.090 |
Miraculous Corpus (Titel-Textkörper) | 10.120.398 |
Stack Exchange Doppelte Fragen (Titel) | 304.525 |
Stack Exchange Doppelte Fragen (Titel) | 304.525 |
Stack Exchange Doppelte Fragen (Textkörper) | 250.519 |
Maschinelle Übersetzungen von Stack Exchange Doppelte Fragen (Titel) | 187.195 |
Paare aus Titel und Antwort in der Stack Exchange | 4.067.139 |
Stack Exchange (Titel, Text) Paare | 23.978.013 |
Stack Exchange (Titel, Text) Paare | 23.978.013 |
Maschinelle Übersetzungen von Stack-Exchange-Paaren (Titel+Text, Antwort) | 1.827,15 |
SearchQA | 582.261 |
S2ORC (Titel, Zusammenfassung) | 41.769.185 |
WikiAnswers Doppelte Fragenpaare | 77.427.422 |
CCNews | 614.664 |
XSum | 226.711 |
SimpleWiki | 102.225 |
Maschinell übersetzte, sprachübergreifende, parallele Korpora | 28.376.115 |
SPECTER-Zitat-Drillinge | 684.100 |
Maschinelle Übersetzungen von SPECTER-Zitat-Triplets | 4.104.600 |
Natürliche Fragen (NQ) | 100.231 |
SQuAD2.0 | 87.599 |
HotpotQA | 85.000 |
Fieber | 109.810 |
PubMed | 20.000.000 |
Mehrsprachige Miracl-Drillinge | 81.409 |
Mehrsprachiger MrTydi | 48.715 |
Sadeeem Frage Beantwortung | 4.037 |
DBPedia Titel-Text-Paare | 4.635.922 |
Synthetisch: Englische Abfrage – Wikipedia-Passage | 1.879.093 |
Synthetisch: Englische Faktenüberprüfung | 9.888 |
Synthetisch: Mehrsprachige Abfrage – Wikipedia-Passage | 300.266 |
Synthetisch: Mehrsprachige Nachrichtenzusammenfassungen | 37.489 |
IBM interne Dreifachbelegungen | 40.290 |
IBM Interne Titel-Text-Paare | 1.524.586 |
Insbesondere verwenden wir den beliebten MS-MARCO-Abrufdatensatz aufgrund seiner nicht kommerziellen Lizenz nicht in unserem Trainingskorpus, während andere Open-Source-Modelle aufgrund seiner hohen Qualität mit diesem Datensatz trainieren.
Infrastruktur
Wir trainieren Granite Embedding Models mithilfe des Computerclusters Cognitive Compute Cluster von IBM, der mit NVIDIA A100 80gb GPUs ausgestattet ist. Dieser Cluster bietet eine skalierbare und effiziente Infrastruktur für das Training unserer Modelle über mehrere GPUs.
Ethische Überlegungen und Einschränkungen
Die englischen Daten, die zum Trainieren des Basissprachenmodells verwendet wurden, wurden gefiltert, um Texte zu entfernen, die Hass, Beleidigungen und Obszönitäten enthielten.
Ressourcen
- Informieren Sie sich über die neuesten Updates für Granite : IBM Granite -Website
- Erste Schritte mit Tutorials, Best Practices und sofortiger technischer Beratung: IBM Granite -Dokumentation
- Erfahren Sie mehr über die neuesten Lernressourcen Granite : IBM