Vi introducerer indlejringer, et nyt slutpunkt i OpenAI API, der gør det nemt at udføre naturlige sprog- og kodeopgaver som semantisk søgning, klyngedannelse, emnemodellering og klassificering. Indlejringer er numeriske repræsentationer af begreber konverteret til talsekvenser, som gør det nemt for computere at forstå sammenhængen mellem disse begreber. Vores indlejringer overgår topmodeller i 3 standard benchmarks, herunder en relativ forbedring på 20 % i kodesøgning.
Indlejringer er nyttige til at arbejde med naturligt sprog og kode, fordi de let kan forbruges og sammenlignes af andre maskinlæringsmodeller og algoritmer som clustering eller søgning.
Indlejringer, der er numerisk ens, er også semantisk ens. For eksempel vil indlejringsvektoren for "hunde-ledsager siger" være mere lig indlejringsvektoren for "woof" end den for "miav".
Det nye endepunkt bruger neurale netværksmodeller, som er efterkommere af GPT-3, til at kortlægge tekst og kode til en vektorrepræsentation - "indlejring" af dem i et højdimensionelt rum. Hver dimension fanger nogle aspekter af inputtet.
Den nye /indlejringer endepunkt i Åbn AI API giver tekst- og kodeindlejringer med et par linjer kode:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Vi udgiver tre familier af indlejringsmodeller, som hver er indstillet til at fungere godt på forskellige funktioner: tekstlighed, tekstsøgning og kodesøgning. Modellerne tager enten tekst eller kode som input og returnerer en indlejringsvektor.
Modeller | Brug cases | |
---|---|---|
Tekst lighed: Fanger semantisk lighed mellem tekststykker. | tekst-lighed-{ada, babbage, curie, davinci}-001 | Clustering, regression, anomalidetektion, visualisering |
Tekstsøgning: Semantisk informationssøgning over dokumenter. | text-search-{ada, babbage, curie, davinci}-{query, doc}-001 | Søgning, kontekstrelevans, informationssøgning |
Kodesøgning: Find relevant kode med en forespørgsel i naturligt sprog. | kode-søgning-{ada, babbage}-{kode, tekst}-001 | Kodesøgning og relevans |
Tekstlighedsmodeller
Tekstlighedsmodeller giver indlejringer, der fanger den semantiske lighed mellem tekststykker. Disse modeller er nyttige til mange opgaver, herunder klyngedannelse, datavisualiseringog klassificering.
Følgende interaktive visualisering viser indlejringer af teksteksempler fra DBpedia-datasættet:
For at sammenligne ligheden mellem to stykker tekst, bruger du blot prik produkt på tekstindlejringerne. Resultatet er en "lighedsscore", nogle gange kaldet "cosinus lighed,” mellem –1 og 1, hvor et højere tal betyder mere lighed. I de fleste applikationer kan indlejringerne forudberegnes, og så er prikproduktsammenligningen ekstremt hurtig at udføre.
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)
En populær anvendelse af indlejringer er at bruge dem som funktioner i maskinlæringsopgaver, såsom klassificering. I maskinlæringslitteratur kaldes denne klassifikationsopgave, når du bruger en lineær klassifikator, en "lineær sonde". Vores tekstlighedsmodeller opnår nye state-of-the-art resultater på lineær sondeklassificering i SentEval (Conneau et al., 2018), et almindeligt brugt benchmark til evaluering af indlejringskvalitet.
Tekstsøgningsmodeller
Tekstsøgemodeller giver indlejringer, der muliggør store søgeopgaver, som at finde et relevant dokument blandt en samling af dokumenter, der får en tekstforespørgsel. Indlejring af dokumenterne og forespørgslen produceres separat, og derefter bruges cosinus-lighed til at sammenligne ligheden mellem forespørgslen og hvert dokument.
Indlejringsbaseret søgning kan generalisere bedre end ordoverlapningsteknikker, der bruges i klassisk søgeordssøgning, fordi den fanger den semantiske betydning af tekst og er mindre følsom over for eksakte sætninger eller ord. Vi evaluerer tekstsøgemodellens ydeevne på BEIR (Thakur, et al. 2021) søgeevalueringspakke og opnå bedre søgeydelse end tidligere metoder. Vores guide til tekstsøgning giver flere detaljer om brug af indlejringer til søgeopgaver.
Kodesøgningsmodeller
Kodesøgningsmodeller giver kode- og tekstindlejringer til kodesøgningsopgaver. Givet en samling af kodeblokke er opgaven at finde den relevante kodeblok til en naturlig sprogforespørgsel. Vi evaluerer kodesøgningsmodellerne på CodeSearchNet (Husian et al., 2019) evalueringssuite, hvor vores indlejringer opnår væsentligt bedre resultater end tidligere metoder. Tjek ud kode søge guide at bruge indlejringer til kodesøgning.
Eksempler på Embeddings API i aktion
JetBrains Research
JetBrains Research Astropartikelfysiklaboratorium analyserer data som f.eks Astronomens telegram og NASA GCN-cirkulærer, som er rapporter, der indeholder astronomiske begivenheder, som ikke kan analyseres af traditionelle algoritmer.
Drevet af OpenAI's indlejringer af disse astronomiske rapporter er forskere nu i stand til at søge efter begivenheder som "krabbepulsarudbrud" på tværs af flere databaser og publikationer. Indlejringer opnåede også 99.85 % nøjagtighed på datakildeklassificering gennem k-betyder klyngedannelse.
FineTune læring
FineTune læring er en virksomhed, der bygger hybride human-AI-løsninger til læring, som f.eks adaptive læringsløkker som hjælper eleverne med at nå akademiske standarder.
OpenAI's indlejringer forbedrede markant opgaven med at finde lærebogsindhold baseret på læringsmål. Med en top-5-nøjagtighed på 89.1 % overgik OpenAIs tekst-search-curie-indlejringsmodel tidligere tilgange som Sentence-BERT (64.5 %). Mens menneskelige eksperter stadig er bedre, er FineTune-teamet nu i stand til at mærke hele lærebøger på få sekunder, i modsætning til de timer, det tog eksperterne.
Fabius
Fabius hjælper virksomheder med at gøre kundesamtaler til strukturerede indsigter, der informerer om planlægning og prioritering. OpenAI's indlejringer giver virksomheder mulighed for lettere at finde og tagge kundeopkaldsudskrifter med funktionsanmodninger.
For eksempel kan kunder bruge ord som "automatiseret" eller "let at bruge" til at bede om en bedre selvbetjeningsplatform. Tidligere brugte Fabius fuzzy søgeordssøgning til at forsøge at mærke disse transskriptioner med selvbetjeningsplatformen. Med OpenAI's indlejringer er de nu i stand til at finde 2x flere eksempler generelt, og 6x-10x flere eksempler på funktioner med abstrakte use cases, som ikke har et klart søgeord, kunder kan bruge.
Alle API-kunder kan komme i gang med indlejringsdokumentation for at bruge indlejringer i deres applikationer.
.vector-diagram img { display: ingen;
}
.vector-diagram img:first-child { display: blok;
}
var printResponse = function (btn) { // tilføj svar var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') hvis (!responseEl || !callParentEl) returnerer; callParentEl.appendChild(responsEl); // hide button btn.style.display= 'ingen';
}; var initRotate = function () { var rotates = document.querySelectorAll('.js-rotate'); hvis (!roterer.længde) returnerer; // for hvert sæt rotates rotates.forEach(function (r) { // flyt det første barn for at afslutte hvert n. sekund window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = funktion (forælder, barn) { parent.removeChild(child); parent.appendChild(child); // føje til forælder
}; 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 = 'blok'; this.style.display = 'ingen'; }); });
}; // i det
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
importere {Runtime, Inspector, Library} fra "https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js";
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
importer notebook_embed3d fra "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(“ resize”, ændret størrelse); return function() { window.removeEventListener(“ændre størrelse”, ændret størrelse); }; });
}; const topk_renders = { “chart”: “#topk-chart”,
};
new Runtime(Object.assign(new Library, {width: customWidth(“#topk-chart”)})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // key eksisterer returner ny 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) { // key eksisterer returner ny Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- opnået
- tværs
- algoritmer
- blandt
- api
- applikationer
- til rådighed
- benchmark
- Bloker
- Bygning
- ringe
- Kan få
- tilfælde
- lave om
- barn
- klassificering
- kode
- samling
- Virksomheder
- selskab
- sammenlignet
- computere
- indhold
- samtaler
- Kunder
- data
- databaser
- Detektion
- forskellige
- Dimension
- Skærm
- dokumenter
- nemt
- Endpoint
- begivenheder
- eksempel
- eksperter
- familier
- FAST
- Feature
- Funktionalitet
- tilbagemeldinger
- Fornavn
- efter
- funktion
- Generelt
- højde
- hjælpe
- hjælper
- Skjule
- Hvordan
- How To
- HTTPS
- Hybrid
- Herunder
- oplysninger
- indsigt
- interaktiv
- IT
- Nøgle
- Sprog
- lærte
- læring
- Bibliotek
- litteratur
- maskine
- machine learning
- kort
- matchende
- Matter
- betyder
- Metrics
- model
- modeller
- Morgan
- mest
- bevæge sig
- Nasa
- Natural
- netværk
- nummer
- Andet
- ydeevne
- sætninger
- Fysik
- planlægning
- perron
- Populær
- Forudsigelser
- sonde
- produceret
- Produkt
- Programmering
- give
- giver
- kvalitet
- RE
- Relationer
- frigive
- indberette
- Rapporter
- svar
- Resultater
- Søg
- valgt
- sæt
- lignende
- Løsninger
- Space
- standarder
- påbegyndt
- state-of-the-art
- stil
- opgaver
- hold
- teknikker
- Gennem
- top
- traditionelle
- forstå
- brug
- visualisering
- W
- W3
- Wikipedia
- inden for
- ord
- arbejder
- Yuan