Vi introduserer embeddings, et nytt endepunkt i OpenAI API som gjør det enkelt å utføre naturlige språk- og kodeoppgaver som semantisk søk, klynging, emnemodellering og klassifisering. Innebygginger er numeriske representasjoner av konsepter konvertert til tallsekvenser, som gjør det enkelt for datamaskiner å forstå relasjonene mellom disse konseptene. Våre innebygginger utkonkurrerer toppmodeller i 3 standard benchmarks, inkludert en 20 % relativ forbedring i kodesøk.
Innebygginger er nyttige for å jobbe med naturlig språk og kode, fordi de lett kan konsumeres og sammenlignes av andre maskinlæringsmodeller og algoritmer som klynging eller søk.
Innebygginger som er numerisk like, er også semantisk like. For eksempel vil innebyggingsvektoren til «hjørnevennene sier» være mer lik innbyggingsvektoren for «woff» enn den til «mjau».
Det nye endepunktet bruker nevrale nettverksmodeller, som er etterkommere av GPT-3, for å kartlegge tekst og kode til en vektorrepresentasjon – «innebygde» dem i et høydimensjonalt rom. Hver dimensjon fanger opp et aspekt av input.
Den nye /embeddings endepunkt i Åpne AI API gir tekst- og kodeinnbygginger med noen få linjer med kode:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Vi lanserer tre familier med innbyggingsmodeller, som hver er innstilt for å yte godt på forskjellige funksjoner: tekstlikhet, tekstsøk og kodesøk. Modellene tar enten tekst eller kode som input og returnerer en innebyggingsvektor.
Modeller | Bruk saker | |
---|---|---|
Tekstlikhet: Fanger semantisk likhet mellom tekststykker. | tekstlikhet-{ada, babbage, curie, davinci}-001 | Clustering, regresjon, anomalideteksjon, visualisering |
Tekstsøk: Semantisk informasjonsinnhenting over dokumenter. | text-search-{ada, babbage, curie, davinci}-{query, doc}-001 | Søk, kontekstrelevans, informasjonsinnhenting |
Kodesøk: Finn relevant kode med en spørring på naturlig språk. | kodesøk-{ada, babbage}-{kode, tekst}-001 | Kodesøk og relevans |
Tekstlikhetsmodeller
Tekstlikhetsmodeller gir innbygginger som fanger den semantiske likheten til tekststykker. Disse modellene er nyttige for mange oppgaver, inkludert gruppering, datavisualiseringog klassifisering.
Følgende interaktive visualisering viser innbygginger av teksteksempler fra DBpedia-datasettet:
For å sammenligne likheten mellom to tekststykker bruker du ganske enkelt prikkprodukt på tekstinnbyggingene. Resultatet er en "likhetspoeng", noen ganger kalt "cosinus-likhet,” mellom –1 og 1, der et høyere tall betyr mer likhet. I de fleste applikasjoner kan innbyggingene forhåndsberegnes, og da er punktproduktsammenligningen ekstremt rask å gjennomfø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 bruk av innebygginger er å bruke dem som funksjoner i maskinlæringsoppgaver, for eksempel klassifisering. I maskinlæringslitteratur, når du bruker en lineær klassifisering, kalles denne klassifiseringsoppgaven en "lineær probe." Våre tekstlikhetsmodeller oppnår nye toppmoderne resultater på lineær sondeklassifisering i SentEval (Conneau et al., 2018), en vanlig referanse for evaluering av innebyggingskvalitet.
Tekstsøkemodeller
Tekstsøkemodeller gir innbygginger som muliggjør store søkeoppgaver, som å finne et relevant dokument blant en samling dokumenter gitt en tekstforespørsel. Innebygging for dokumentene og spørringen produseres separat, og deretter brukes cosinuslikhet for å sammenligne likheten mellom spørringen og hvert dokument.
Innebyggingsbasert søk kan generalisere bedre enn ordoverlappingsteknikker som brukes i klassisk søkeordsøk, fordi det fanger opp den semantiske betydningen av tekst og er mindre følsom for eksakte fraser eller ord. Vi evaluerer tekstsøkemodellens ytelse på BEIR (Thakur, et al. 2021) søkeevalueringssuite og oppnå bedre søkeytelse enn tidligere metoder. Vår tekstsøkeguide gir flere detaljer om bruk av innebygginger for søkeoppgaver.
Kodesøkemodeller
Kodesøkemodeller gir kode- og tekstinnbygging for kodesøkeoppgaver. Gitt en samling av kodeblokker, er oppgaven å finne den relevante kodeblokken for en naturlig språkspørring. Vi evaluerer kodesøkemodellene på CodeSearchNet (Husian et al., 2019) evalueringssuite der våre innbygginger oppnår betydelig bedre resultater enn tidligere metoder. Sjekk ut kodesøkeguide å bruke innebygginger for kodesøk.
Eksempler på Embeddings API i aksjon
JetBrains forskning
JetBrains Research Astropartikkelfysikklab analyserer data som Astronomens telegram og NASA GCN-rundskriv, som er rapporter som inneholder astronomiske hendelser som ikke kan analyseres av tradisjonelle algoritmer.
Drevet av OpenAIs integrering av disse astronomiske rapportene, kan forskere nå søke etter hendelser som "krabbepulsarutbrudd" på tvers av flere databaser og publikasjoner. Innebygginger oppnådde også 99.85 % nøyaktighet på datakildeklassifisering gjennom k-betyr klynging.
FineTune læring
FineTune læring er et selskap som bygger hybride human-AI-løsninger for læring, som adaptive læringsløkker som hjelper studentene med å nå akademiske standarder.
OpenAIs innebygginger forbedret oppgaven med å finne lærebokinnhold basert på læringsmål betydelig. Med en topp-5-nøyaktighet på 89.1 %, overgikk OpenAIs tekst-søk-curie-innbyggingsmodell tidligere tilnærminger som Sentence-BERT (64.5 %). Mens menneskelige eksperter fortsatt er bedre, er FineTune-teamet nå i stand til å merke hele lærebøker i løpet av sekunder, i motsetning til timene det tok ekspertene.
fabius
fabius hjelper bedrifter å gjøre kundesamtaler til strukturert innsikt som informerer planlegging og prioritering. OpenAIs innebygginger lar bedrifter lettere finne og merke kundeanropsutskrifter med funksjonsforespørsler.
Kunder kan for eksempel bruke ord som "automatisert" eller "enkel å bruke" for å be om en bedre selvbetjeningsplattform. Tidligere brukte Fabius uklare nøkkelordsøk for å prøve å merke disse transkripsjonene med selvbetjeningsplattformen. Med OpenAIs innebygginger er de nå i stand til å finne 2x flere eksempler generelt, og 6x–10x flere eksempler for funksjoner med abstrakte brukstilfeller som ikke har et klart nøkkelord som kunder kan bruke.
Alle API-kunder kan komme i gang med innbyggingsdokumentasjon for å bruke innebygginger i sine applikasjoner.
.vector-diagram img { display: ingen;
}
.vector-diagram img:first-child { display: block;
}
var printResponse = function (btn) { // append response var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') hvis (!responseEl || !callParentEl) returnerer; ring ParentEl.appendChild(responsEl); // hide button btn.style.display= 'ingen';
}; var initRotate = function () { var rotates = document.querySelectorAll('.js-rotate'); if (!roterer.lengde) returner; // for hvert sett med roterer rotates.forEach(function (r) { // flytte det første barnet til slutten hvert n. sekund window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = funksjon (foreldre, barn) { parent.removeChild(child); forelder.appendChild(barn); // legge til forelder
}; 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 = 'blokk'; 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(“ endre størrelse”, endre størrelse); return function() { window.removeEventListener(“endre størrelse”, endre 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 exists 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) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- oppnådd
- tvers
- algoritmer
- blant
- api
- søknader
- tilgjengelig
- benchmark
- Blokker
- Bygning
- ring
- Kan få
- saker
- endring
- barn
- klassifisering
- kode
- samling
- Selskaper
- Selskapet
- sammenlignet
- datamaskiner
- innhold
- samtaler
- Kunder
- dato
- databaser
- Gjenkjenning
- forskjellig
- Dimensjon
- Vise
- dokumenter
- lett
- Endpoint
- hendelser
- eksempel
- eksperter
- familier
- FAST
- Trekk
- Egenskaper
- tilbakemelding
- Først
- etter
- funksjon
- general
- høyde
- hjelpe
- hjelper
- Gjemme seg
- Hvordan
- Hvordan
- HTTPS
- Hybrid
- Inkludert
- informasjon
- innsikt
- interaktiv
- IT
- nøkkel
- Språk
- lært
- læring
- Bibliotek
- litteratur
- maskin
- maskinlæring
- kart
- matchende
- Saken
- betyr
- Metrics
- modell
- modeller
- Morgan
- mest
- flytte
- Nasa
- Naturlig
- nettverk
- Antall
- Annen
- ytelse
- setninger
- Fysikk
- planlegging
- plattform
- Populær
- Spådommer
- probe
- produsert
- Produkt
- Programmering
- gi
- gir
- kvalitet
- RE
- Relasjoner
- slipp
- rapporterer
- Rapporter
- svar
- Resultater
- Søk
- valgt
- sett
- lignende
- Solutions
- Rom
- standarder
- startet
- state-of-the-art
- stil
- oppgaver
- lag
- teknikker
- Gjennom
- topp
- tradisjonelle
- forstå
- bruke
- visualisering
- W
- W3
- Wikipedia
- innenfor
- ord
- arbeid
- yuan