Nous introduisons les incorporations, un nouveau point de terminaison dans l'API OpenAI qui facilite l'exécution de tâches de langage naturel et de code telles que la recherche sémantique, le regroupement, la modélisation de sujets et la classification. Les incorporations sont des représentations numériques de concepts converties en séquences de nombres, ce qui permet aux ordinateurs de comprendre facilement les relations entre ces concepts. Nos intégrations surpassent les meilleurs modèles dans 3 benchmarks standard, y compris une amélioration relative de 20 % dans la recherche de code.
Les incorporations sont utiles pour travailler avec le langage naturel et le code, car elles peuvent être facilement consommées et comparées par d'autres modèles et algorithmes d'apprentissage automatique comme le clustering ou la recherche.
Les imbrications qui sont numériquement similaires sont également sémantiquement similaires. Par exemple, le vecteur d'intégration de "les compagnons canins disent" sera plus similaire au vecteur d'intégration de "woof" qu'à celui de "miaou".
Le nouveau point de terminaison utilise des modèles de réseau neuronal, qui sont des descendants de GPT-3, pour mapper le texte et le code sur une représentation vectorielle, en les « incorporant » dans un espace de grande dimension. Chaque dimension capture un aspect de l'entrée.
Le nouveau système d’ /encastrements point final dans le API OpenAI fournit des incorporations de texte et de code avec quelques lignes de code :
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Nous publions trois familles de modèles d'intégration, chacun réglé pour bien fonctionner sur différentes fonctionnalités : similarité de texte, recherche de texte et recherche de code. Les modèles prennent du texte ou du code en entrée et renvoient un vecteur d'intégration.
Des modèles photo | Cas d'usage | |
---|---|---|
Similitude du texte: capture la similarité sémantique entre des morceaux de texte. | similarité de texte-{ada, babbage, curie, davinci}-001 | Clustering, régression, détection d'anomalies, visualisation |
Recherche de texte: Recherche d'informations sémantiques sur des documents. | recherche de texte-{ada, babbage, curie, davinci}-{query, doc}-001 | Recherche, pertinence du contexte, recherche d'informations |
Recherche de code: Trouvez le code pertinent avec une requête en langage naturel. | recherche de code-{ada, babbage}-{code, text}-001 | Recherche de code et pertinence |
Modèles de similarité de texte
Les modèles de similarité de texte fournissent des incorporations qui capturent la similarité sémantique de morceaux de texte. Ces modèles sont utiles pour de nombreuses tâches, y compris regroupement, visualisation de donnéeset classification.
La visualisation interactive suivante montre des incorporations d'échantillons de texte à partir de l'ensemble de données DBpedia :
Pour comparer la similarité de deux morceaux de texte, il vous suffit d'utiliser le produit scalaire sur les incrustations de texte. Le résultat est un « score de similarité », parfois appelé «similitude cosinus», entre –1 et 1, où un nombre plus élevé signifie plus de similarité. Dans la plupart des applications, les plongements peuvent être pré-calculés, puis la comparaison du produit scalaire est extrêmement rapide à réaliser.
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)
Une utilisation courante des représentations vectorielles continues consiste à les utiliser comme fonctionnalités dans des tâches d'apprentissage automatique, telles que la classification. Dans la littérature sur l'apprentissage automatique, lors de l'utilisation d'un classificateur linéaire, cette tâche de classification est appelée une « sonde linéaire ». Nos modèles de similarité de texte obtiennent de nouveaux résultats de pointe sur la classification linéaire des sondes dans EnvoyéEval (Conneau et coll., 2018), une référence couramment utilisée pour évaluer la qualité de l'intégration.
Modèles de recherche de texte
Les modèles de recherche de texte fournissent des incorporations qui permettent des tâches de recherche à grande échelle, comme la recherche d'un document pertinent parmi une collection de documents à partir d'une requête textuelle. L'intégration des documents et de la requête est produite séparément, puis la similarité cosinus est utilisée pour comparer la similarité entre la requête et chaque document.
La recherche basée sur l'intégration peut mieux généraliser que les techniques de chevauchement de mots utilisées dans la recherche par mot-clé classique, car elle capture la signification sémantique du texte et est moins sensible aux phrases ou mots exacts. Nous évaluons les performances du modèle de recherche textuelle sur BIER (Thakur et al. 2021) recherchez la suite d'évaluation et obtenez de meilleures performances de recherche que les méthodes précédentes. Notre guide de recherche de texte fournit plus de détails sur l'utilisation des représentations vectorielles continues pour les tâches de recherche.
Modèles de recherche de code
Les modèles de recherche de code fournissent des incorporations de code et de texte pour les tâches de recherche de code. Étant donné une collection de blocs de code, la tâche consiste à trouver le bloc de code pertinent pour une requête en langage naturel. Nous évaluons les modèles de recherche de code sur le CodeRechercheNet (Husian et coll., 2019) suite d'évaluation où nos intégrations obtiennent des résultats nettement meilleurs que les méthodes précédentes. Vérifiez Guide de recherche de codes pour utiliser les incorporations pour la recherche de code.
Exemples d'API Embeddings en action
Recherche JetBrains
Recherche JetBrains Laboratoire de physique des astroparticules analyse des données comme Le télégramme de l'astronome et de la NASA Circulaires GCN, qui sont des rapports contenant des événements astronomiques qui ne peuvent pas être analysés par les algorithmes traditionnels.
Propulsés par les intégrations d'OpenAI de ces rapports astronomiques, les chercheurs sont désormais en mesure de rechercher des événements tels que des "rafales de pulsars de crabe" dans plusieurs bases de données et publications. Les intégrations ont également atteint une précision de 99.85 % sur la classification des sources de données grâce au clustering k-means.
Apprentissage précis
Apprentissage précis est une entreprise qui crée des solutions hybrides humain-IA pour l'apprentissage, comme boucles d'apprentissage adaptatives qui aident les étudiants à atteindre les normes académiques.
Les intégrations d'OpenAI ont considérablement amélioré la tâche de recherche de contenu de manuels en fonction des objectifs d'apprentissage. Atteignant une précision de 5 % dans le top 89.1, le modèle d'incorporation de curie de recherche de texte d'OpenAI a surpassé les approches précédentes telles que Sentence-BERT (64.5 %). Alors que les experts humains sont encore meilleurs, l'équipe FineTune est désormais capable d'étiqueter des manuels entiers en quelques secondes, contrairement aux heures qu'il a fallu aux experts.
Fabius
Fabius aide les entreprises à transformer les conversations avec les clients en informations structurées qui éclairent la planification et la hiérarchisation. Les intégrations d'OpenAI permettent aux entreprises de trouver et de marquer plus facilement les transcriptions des appels des clients avec des demandes de fonctionnalités.
Par exemple, les clients peuvent utiliser des mots comme « automatisé » ou « facile à utiliser » pour demander une meilleure plate-forme en libre-service. Auparavant, Fabius utilisait une recherche par mots-clés flous pour tenter de marquer ces transcriptions avec l'étiquette de la plate-forme en libre-service. Avec les incorporations d'OpenAI, ils sont désormais en mesure de trouver 2x plus d'exemples en général, et 6x à 10x plus d'exemples pour les fonctionnalités avec des cas d'utilisation abstraits qui n'ont pas de mot-clé clair que les clients pourraient utiliser.
Tous les clients de l'API peuvent commencer avec le documentation des incorporations pour utiliser les intégrations dans leurs applications.
.vector-diagram img { affichage : aucun ;
}
.vector-diagram img:first-child { affichage : bloc ;
}
var printResponse = function (btn) { // ajouter la réponse 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); // masque le bouton btn.style.display= 'aucun';
} ; var initRotate = function () { var tourne = document.querySelectorAll('.js-rotate'); si (!tourne.longueur) retour ; // pour chaque ensemble de rotations rotates.forEach(function (r) { // déplacer le premier enfant à la fin toutes les n secondes window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = function (parent, enfant) { parent.removeChild(child); parent.appendChild(enfant); // ajoute au parent
} ; 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'; }); });
} ; // initialisation
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
importer {Runtime, Inspector, Library} depuis "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 depuis "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(“ redimensionner", redimensionné); return function() { window.removeEventListener("redimensionner", redimensionné); }; });
} ; const topk_renders = { "graphique": "#topk-graphique",
};
new Runtime(Object.assign(new Library, {width: customWidth("#topk-chart")})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // clé existe return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { "chart": "#embed3d-chart", "legend": "#embed3d-legend",
};
new Runtime(Object.assign(new Library, {width: customWidth("#embed3d-chart")})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (selector) { // clé existe return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- atteint
- à travers
- algorithmes
- parmi
- api
- applications
- disponibles
- référence
- Block
- Développement
- Appelez-nous
- Peut obtenir
- cas
- Change
- enfant
- classification
- code
- collection
- Sociétés
- Société
- par rapport
- ordinateurs
- contenu
- conversations
- Clients
- données
- bases de données
- Détection
- différent
- Dimension
- Commande
- INSTITUTIONNELS
- même
- Endpoint
- événements
- exemple
- de santé
- familles
- RAPIDE
- Fonctionnalité
- Fonctionnalités:
- Réactions
- Prénom
- Abonnement
- fonction
- Général
- la taille
- aider
- aide
- Cacher
- Comment
- How To
- HTTPS
- Hybride
- Y compris
- d'information
- idées.
- Interactif
- IT
- ACTIVITES
- langue
- savant
- apprentissage
- Bibliothèque
- littérature
- click
- machine learning
- Localisation
- assorti
- Matière
- sens
- Métrique
- modèle
- numériques jumeaux (digital twin models)
- Morgan
- (en fait, presque toutes)
- Bougez
- NASA
- Nature
- réseau et
- nombre
- Autre
- performant
- les expressions clés
- Physique
- et la planification de votre patrimoine
- plateforme
- Populaire
- Prédictions
- sonde
- Produit
- Produit
- Programmation
- fournir
- fournit
- qualité
- RE
- Les relations
- libérer
- rapport
- Rapports
- réponse
- Résultats
- Rechercher
- choisi
- set
- similaires
- Solutions
- Space
- Normes
- j'ai commencé
- state-of-the-art
- Catégorie
- tâches
- équipe
- techniques
- Avec
- top
- traditionnel
- comprendre
- utilisé
- visualisation
- W
- W3
- Wikipédia
- dans les
- des mots
- de travail
- Yuan