Wir führen Einbettungen ein, einen neuen Endpunkt in der OpenAI-API, der es einfach macht, natürliche Sprache und Codeaufgaben wie semantische Suche, Clustering, Themenmodellierung und Klassifizierung auszuführen. Einbettungen sind numerische Darstellungen von Konzepten, die in Zahlenfolgen umgewandelt wurden, die es Computern erleichtern, die Beziehungen zwischen diesen Konzepten zu verstehen. Unsere Embeddings übertreffen Top-Modelle in 3 Standard-Benchmarks, einschließlich einer relativen Verbesserung von 20 % bei der Codesuche.
Einbettungen sind nützlich für die Arbeit mit natürlicher Sprache und Code, da sie leicht von anderen maschinellen Lernmodellen und Algorithmen wie Clustering oder Suche verwendet und verglichen werden können.
Numerisch ähnliche Einbettungen sind auch semantisch ähnlich. Beispielsweise ist der Einbettungsvektor von „Hundebegleiter sagen“ dem Einbettungsvektor von „Woof“ ähnlicher als dem von „Miau“.
Der neue Endpunkt verwendet neuronale Netzwerkmodelle, die Nachkommen von GPT-3 sind, um Text und Code auf eine Vektordarstellung abzubilden und sie in einen hochdimensionalen Raum „einzubetten“. Jede Dimension erfasst einen Aspekt der Eingabe.
The new /Einbettungen Endpunkt in der OpenAI-API bietet Text- und Code-Einbettungen mit wenigen Codezeilen:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Wir veröffentlichen drei Familien von Einbettungsmodellen, die jeweils auf unterschiedliche Funktionalitäten abgestimmt sind: Textähnlichkeit, Textsuche und Codesuche. Die Modelle nehmen entweder Text oder Code als Eingabe und geben einen Einbettungsvektor zurück.
Modelle | Anwendungsbeispiele | |
---|---|---|
Textähnlichkeit: Erfasst semantische Ähnlichkeit zwischen Textteilen. | Textähnlichkeit-{ada, babbage, curie, davinci}-001 | Clustering, Regression, Anomalieerkennung, Visualisierung |
Textsuche: Semantischer Informationsabruf über Dokumente. | Textsuche-{ada, babbage, curie, davinci}-{query, doc}-001 | Suche, Kontextrelevanz, Informationsabruf |
Codesuche: Relevanten Code mit einer Abfrage in natürlicher Sprache finden. | Codesuche-{ada, babbage}-{code, text}-001 | Codesuche und Relevanz |
Textähnlichkeitsmodelle
Textähnlichkeitsmodelle stellen Einbettungen bereit, die die semantische Ähnlichkeit von Textteilen erfassen. Diese Modelle sind für viele Aufgaben nützlich, einschließlich Clustering, Datenvisualisierung und Einstufung.
Die folgende interaktive Visualisierung zeigt Einbettungen von Textbeispielen aus dem DBpedia-Datensatz:
Um die Ähnlichkeit zweier Textteile zu vergleichen, verwenden Sie einfach die Skalarprodukt zu den Texteinbettungen. Das Ergebnis ist ein „Ähnlichkeitswert“, manchmal auch „Kosinusähnlichkeit”, zwischen –1 und 1, wobei eine höhere Zahl mehr Ähnlichkeit bedeutet. In den meisten Anwendungen können die Einbettungen vorberechnet werden, und dann ist der Skalarproduktvergleich extrem schnell durchzuführen.
import openai, numpy as np resp = openai.Embedding.create( input=["feline friends go", "meow"], engine="text-similarity-davinci-001") embedding_a = resp['data'][0]['embedding']
embedding_b = resp['data'][1]['embedding'] similarity_score = np.dot(embedding_a, embedding_b)
Eine beliebte Verwendung von Einbettungen besteht darin, sie als Features in maschinellen Lernaufgaben wie der Klassifizierung zu verwenden. In der Literatur zum maschinellen Lernen wird diese Klassifizierungsaufgabe bei Verwendung eines linearen Klassifikators als „lineare Sonde“ bezeichnet. Unsere Textähnlichkeitsmodelle erzielen neue State-of-the-Art-Ergebnisse zur linearen Sondenklassifikation in GesendetEval (Conneauet al., 2018), ein häufig verwendeter Benchmark zur Bewertung der Einbettungsqualität.
Modelle für die Textsuche
Textsuchmodelle bieten Einbettungen, die umfangreiche Suchaufgaben ermöglichen, wie z. B. das Auffinden eines relevanten Dokuments in einer Sammlung von Dokumenten bei einer Textabfrage. Die Einbettung für die Dokumente und die Abfrage wird separat erzeugt, und dann wird die Kosinus-Ähnlichkeit verwendet, um die Ähnlichkeit zwischen der Abfrage und jedem Dokument zu vergleichen.
Die einbettungsbasierte Suche kann besser verallgemeinern als Wortüberlappungstechniken, die bei der klassischen Schlüsselwortsuche verwendet werden, da sie die semantische Bedeutung von Text erfasst und weniger empfindlich auf exakte Phrasen oder Wörter reagiert. Wir bewerten die Leistung des Textsuchmodells auf der BEIR (Thakur et al. 2021) Search Evaluation Suite und erhalten eine bessere Suchleistung als frühere Methoden. Unsere Anleitung zur Textsuche enthält weitere Details zur Verwendung von Einbettungen für Suchaufgaben.
Codesuchmodelle
Codesuchmodelle bieten Code- und Texteinbettungen für Codesuchaufgaben. Bei einer gegebenen Sammlung von Codeblöcken besteht die Aufgabe darin, den relevanten Codeblock für eine Abfrage in natürlicher Sprache zu finden. Wir evaluieren die Codesuchmodelle auf der CodeSearchNet (Husianet al., 2019) Evaluierungssuite, bei der unsere Einbettungen deutlich bessere Ergebnisse erzielen als frühere Methoden. Probier das aus Anleitung zur Codesuche Einbettungen für die Codesuche zu verwenden.
Beispiele für die Einbettungs-API in Aktion
JetBrains-Forschung
JetBrains Research Labor für Astroteilchenphysik analysiert Daten wie Das Telegramm des Astronomen und NASAs GCN-Rundschreiben, bei denen es sich um Berichte handelt, die astronomische Ereignisse enthalten, die von herkömmlichen Algorithmen nicht geparst werden können.
Angetrieben von OpenAIs Einbettungen dieser astronomischen Berichte sind Forscher nun in der Lage, in mehreren Datenbanken und Publikationen nach Ereignissen wie „Krabbenpulsarausbrüchen“ zu suchen. Einbettungen erzielten außerdem eine Genauigkeit von 99.85 % bei der Datenquellenklassifizierung durch K-Means-Clustering.
FineTune-Lernen
FineTune-Lernen ist ein Unternehmen, das hybride Human-AI-Lösungen für das Lernen entwickelt, wie z adaptive Lernschleifen die den Schülern helfen, akademische Standards zu erreichen.
Die Einbettungen von OpenAI haben die Aufgabe, Lehrbuchinhalte basierend auf Lernzielen zu finden, erheblich verbessert. Mit einer Top-5-Genauigkeit von 89.1 % übertraf das Textsuche-Curie-Einbettungsmodell von OpenAI frühere Ansätze wie Sentence-BERT (64.5 %). Während menschliche Experten immer noch besser sind, ist das FineTune-Team jetzt in der Lage, ganze Lehrbücher in Sekundenschnelle zu beschriften, im Gegensatz zu den Stunden, die die Experten dafür brauchten.
Fabius
Fabius hilft Unternehmen, Kundengespräche in strukturierte Erkenntnisse umzuwandeln, die die Planung und Priorisierung unterstützen. Die Einbettungen von OpenAI ermöglichen es Unternehmen, Anrufprotokolle von Kunden mit Funktionsanfragen einfacher zu finden und zu markieren.
Beispielsweise könnten Kunden Wörter wie „automatisiert“ oder „benutzerfreundlich“ verwenden, um nach einer besseren Self-Service-Plattform zu fragen. Zuvor verwendete Fabius eine unscharfe Schlüsselwortsuche, um zu versuchen, diese Transkripte mit dem Label der Self-Service-Plattform zu versehen. Mit den Einbettungen von OpenAI können sie jetzt im Allgemeinen 2x mehr Beispiele finden und 6x–10x mehr Beispiele für Funktionen mit abstrakten Anwendungsfällen, die kein klares Schlüsselwort haben, das Kunden verwenden könnten.
Alle API-Kunden können mit der beginnen Einbettungsdokumentation für die Verwendung von Einbettungen in ihren Anwendungen.
.vector-diagram img { Anzeige: keine;
}
.Vektordiagramm img:first-child { display: block;
}
var printResponse = function (btn) { // Antwort anhängen var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) return; callParentEl.appendChild(responseEl); // Schaltfläche ausblenden btn.style.display= 'none';
}; var initRotate = function () { var rotiert = document.querySelectorAll('.js-rotate'); if (!rotates.length) return; // für jeden Rotationssatz rotiert.forEach(function (r) { // erstes untergeordnetes Element alle n Sekunden zum Ende verschieben window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = function (Elternteil, Kind) { parent.removeChild(child); parent.appendChild(Kind); // An Elternteil anhängen
}; var initShowMore = function () { var showmores = document.querySelectorAll('.js-showmore'); showmores.forEach(function (e) { e.addEventListener('click', function () { var showmoreparent = this.parentElement; if (!showmoreparent) return; var more = showmoreparent.querySelector('.js-more'); if (!more) return; more.style.display = 'block'; this.style.display = 'none'; }); });
}; // drin
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
importiere {Runtime, Inspector, Library} aus „https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js“;
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
import notebook_embed3d from „https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3“ const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(“ Größe ändern", Größe geändert); return function() { window.removeEventListener("Größe ändern", Größe geändert); }; });
}; const topk_renders = { „Diagramm“: „#topk-Diagramm“,
};
new Runtime(Object.assign(new Library, {width: customWidth("#topk-chart")})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // key existiert gibt neuen Inspektor(document.querySelector(selector)); } else {return true; }
}); const embed3d_renders = { „Diagramm“: „#embed3d-Diagramm“, „Legende“: „#embed3d-Legende“,
};
new Runtime(Object.assign(new Library, {width: customWidth("#embed3d-chart")})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (selector) { // key existiert gibt neuen Inspektor zurück(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- erreicht
- über
- Algorithmen
- unter
- Bienen
- Anwendungen
- verfügbar
- Benchmark
- Blockieren
- Building
- rufen Sie uns an!
- Kann bekommen
- Fälle
- Übernehmen
- der
- Einstufung
- Code
- Sammlung
- Unternehmen
- Unternehmen
- verglichen
- Computer
- Inhalt
- Gespräche
- Kunden
- technische Daten
- Datenbanken
- Entdeckung
- anders
- Abmessungen
- Display
- Unterlagen
- leicht
- Endpunkt
- Veranstaltungen
- Beispiel
- Experten
- Familien
- FAST
- Merkmal
- Eigenschaften
- Feedback
- Vorname
- Folgende
- Funktion
- Allgemeines
- Höhe
- Hilfe
- hilft
- Verbergen
- Ultraschall
- Hilfe
- HTTPS
- Hybrid
- Einschließlich
- Information
- Einblicke
- interaktive
- IT
- Wesentliche
- Sprache
- gelernt
- lernen
- Bibliothek
- Kataloge
- Maschine
- Maschinelles Lernen
- Karte
- Abstimmung
- Materie
- Bedeutung
- Metrik
- Modell
- für
- Morgan
- vor allem warme
- schlauer bewegen
- NASA
- Natürliche
- Netzwerk
- Anzahl
- Andere
- Leistung
- Sätze
- Physik
- Planung
- Plattform
- Beliebt
- Prognosen
- Sonde
- Produziert
- Produkt
- Programmierung
- die
- bietet
- Qualität
- RE
- Beziehungen
- Release
- berichten
- Meldungen
- Antwort
- Die Ergebnisse
- Suche
- ausgewählt
- kompensieren
- ähnlich
- Lösungen
- Raumfahrt
- Normen
- begonnen
- State-of-the-art
- Stil
- und Aufgaben
- Team
- Techniken
- Durch
- Top
- traditionell
- verstehen
- -
- Visualisierung
- W
- W3
- Wikipedia
- .
- Worte
- arbeiten,
- Yuan