Esittelemme upotukset, OpenAI API:n uuden päätepisteen, jonka avulla on helppo suorittaa luonnollisen kielen ja koodin tehtäviä, kuten semanttinen haku, klusterointi, aihemallinnus ja luokittelu. Upotukset ovat käsitteiden numeerisia esityksiä, jotka on muunnettu numerosarjoiksi, minkä ansiosta tietokoneiden on helppo ymmärtää näiden käsitteiden väliset suhteet. Upotuksemme ovat tehokkaampia kuin huippumallit kolmessa vakiovertailussa, mukaan lukien 3 %:n suhteellinen parannus koodihaussa.
Upotukset ovat hyödyllisiä luonnollisen kielen ja koodin kanssa työskentelyssä, koska niitä voidaan helposti käyttää ja verrata muihin koneoppimismalleihin ja -algoritmeihin, kuten klusterointiin tai hakuun.
Numeerisesti samankaltaiset upotukset ovat myös semanttisesti samanlaisia. Esimerkiksi "koiran kumppanit sanovat" upotusvektori on samankaltainen kuin "woof" kuin "miau" upotusvektori.
Uusi päätepiste käyttää hermoverkkomalleja, jotka ovat GPT-3:n jälkeläisiä, kartoittaakseen tekstin ja koodin vektoriesitykseen - "upotamalla" ne korkean ulottuvuuden tilaan. Jokainen ulottuvuus kaappaa jonkin osan syötteestä.
Uusi / upotukset päätepiste kohdassa OpenAI-sovellusliittymä tarjoaa tekstin ja koodin upotukset muutamalla koodirivillä:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Julkaisemme kolme upotusmalliperhettä, joista jokainen on viritetty toimimaan hyvin eri toiminnoissa: tekstin samankaltaisuus, tekstihaku ja koodihaku. Mallit syöttävät joko tekstiä tai koodia ja palauttavat upotusvektorin.
Mallit | Käytä koteloita | |
---|---|---|
Tekstin samankaltaisuus: Vangitsee semanttisen samankaltaisuuden tekstin osien välillä. | text-similarity-{ada, babbage, curie, davinci}-001 | Klusterointi, regressio, poikkeamien havaitseminen, visualisointi |
Tekstihaku: Semanttisen tiedon haku asiakirjoista. | text-search-{ada, babbage, curie, davinci}-{query, doc}-001 | Haku, kontekstin relevanssi, tiedonhaku |
Koodihaku: Etsi asiaankuuluva koodi kyselyllä luonnollisella kielellä. | koodihaku-{ada, babbage}-{koodi, teksti}-001 | Koodin haku ja osuvuus |
Tekstin samankaltaisuusmallit
Tekstin samankaltaisuusmallit tarjoavat upotuksia, jotka vangitsevat tekstin osien semanttisen samankaltaisuuden. Nämä mallit ovat hyödyllisiä moniin tehtäviin, mukaan lukien klustereiden, datan visualisointija luokittelu.
Seuraava interaktiivinen visualisointi näyttää tekstinäytteiden upotukset DBpedia-tietojoukosta:
Vertaaksesi kahden tekstin samankaltaisuutta, käytät yksinkertaisesti pistetuote tekstin upotuksissa. Tuloksena on "samankaltaisuuspisteet", jota joskus kutsutaan "kosinin samankaltaisuus”, välillä –1 ja 1, jossa suurempi luku tarkoittaa enemmän samankaltaisuutta. Useimmissa sovelluksissa upotukset voidaan laskea etukäteen, jolloin pistetuotevertailu on erittäin nopea suorittaa.
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)
Yksi suosittu upotusten käyttötapa on käyttää niitä ominaisuuksina koneoppimistehtävissä, kuten luokittelussa. Koneoppimiskirjallisuudessa, kun käytetään lineaarista luokittelijaa, tätä luokittelutehtävää kutsutaan "lineaariseksi koettimeksi". Tekstin samankaltaisuusmallimme saavuttavat uusia huippuluokan tuloksia lineaarisen koettimen luokittelussa SentEval (Conneau ym., 2018), yleisesti käytetty vertailukohta upottamisen laadun arvioinnissa.
Tekstihaun mallit
Tekstihakumallit tarjoavat upotuksia, jotka mahdollistavat suuren mittakaavan hakutehtävät, kuten sopivan asiakirjan löytämisen tekstikyselyllä annettujen asiakirjojen joukosta. Asiakirjojen ja kyselyn upotus tuotetaan erikseen, ja sitten kosinin samankaltaisuutta käytetään vertaamaan kyselyn ja kunkin asiakirjan samankaltaisuutta.
Upotuspohjainen haku voi yleistää paremmin kuin perinteisessä avainsanahaussa käytetyt sanojen päällekkäisyystekniikat, koska se vangitsee tekstin semanttisen merkityksen ja on vähemmän herkkä tarkille lauseille tai sanoille. Arvioimme tekstihakumallin suorituskyvyn BEIR (Thakur et ai. 2021) etsi arviointiohjelmistoa ja saat paremman hakutuloksen kuin aikaisemmat menetelmät. Meidän tekstihakuopas sisältää lisätietoja upotusten käyttämisestä hakutehtävissä.
Koodihakumallit
Koodihakumallit tarjoavat koodin ja tekstin upotuksia koodihakutehtäviin. Kun on annettu kokoelma koodilohkoja, tehtävänä on löytää asiaankuuluva koodilohko luonnollisen kielen kyselylle. Arvioimme koodihakumalleja CodeSearchNet (Husian ym., 2019) arviointisarja, jossa upotuksillamme saavutetaan huomattavasti parempia tuloksia kuin aikaisemmilla menetelmillä. Tutustu koodihakuopas käyttääksesi upotuksia koodihakuun.
Esimerkkejä Embeddings API:sta toiminnassa
JetBrains-tutkimus
JetBrains Research's Astroparticle Physics Lab analysoi dataa esim Tähtitieteilijän sähke ja NASA: n GCN-kiertokirjeet, jotka sisältävät tähtitieteellisiä tapahtumia, joita ei voida jäsentää perinteisillä algoritmeilla.
OpenAI:n näiden tähtitieteellisten raporttien upotusten avulla tutkijat voivat nyt etsiä tapahtumia, kuten "rapupulsaaripurkauksia" useista tietokannoista ja julkaisuista. Embeddings saavutti myös 99.85 % tarkkuuden tietolähteiden luokittelussa k-means-klusteroinnin avulla.
FineTune-oppiminen
FineTune-oppiminen on yritys, joka rakentaa hybridi-ihmis-AI-ratkaisuja oppimiseen, kuten mukautuvat oppimissilmukat jotka auttavat opiskelijoita saavuttamaan akateemiset tasot.
OpenAI:n upotukset paransivat merkittävästi oppikirjasisällön löytämistä oppimistavoitteiden perusteella. OpenAI:n teksti-haku-curie-upotusmalli saavutti viiden parhaan 5 prosentin tarkkuuden, joka ylitti aiemmat lähestymistavat, kuten Sentence-BERT (89.1 %). Vaikka ihmisten asiantuntijat ovat edelleen parempia, FineTune-tiimi pystyy nyt merkitsemään kokonaisia oppikirjoja muutamassa sekunnissa, toisin kuin asiantuntijoiden tuntimäärässä.
Fabius
Fabius auttaa yrityksiä muuttamaan asiakaskeskustelut jäsennellyiksi oivalluksiksi, jotka auttavat suunnittelussa ja priorisoinnissa. OpenAI:n upotusten avulla yritykset voivat helpommin löytää ja merkitä asiakkaiden puhelujen transkriptioita ominaisuuspyynnöillä.
Asiakkaat voivat esimerkiksi käyttää sanoja "automaattinen" tai "helppokäyttöinen" pyytääkseen parempaa itsepalvelualustaa. Aiemmin Fabius käytti sumeaa avainsanahakua yrittääkseen merkitä nämä transkriptit itsepalvelualustan tunnisteella. OpenAI:n upotusten avulla he voivat nyt löytää 2x enemmän esimerkkejä yleensä ja 6x–10x enemmän esimerkkejä ominaisuuksista, joissa on abstrakteja käyttötapauksia, joilla ei ole selkeää avainsanaa, jota asiakkaat voisivat käyttää.
Kaikki API-asiakkaat voivat aloittaa upotusten dokumentaatio upotusten käyttämisestä sovelluksissaan.
.vector-diagram img { näyttö: ei mitään;
}
.vector-diagram img:first-child { näyttö: block;
}
var printResponse = funktio (btn) { // liitä vastaus var vastausEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = asiakirja .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) return; callParentEl.appendChild(responseEl); // piilota painike btn.style.display= 'ei mitään';
}; var initRotate = funktio () { var kiertää = document.querySelectorAll('.js-rotate'); if (!rotates.length) return; // kullekin rotates-joukolle rotates.forEach(function (r) { // siirrä ensimmäinen lapsi loppuun n sekunnin välein window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500; }) ;
};
var moveToEnd = funktio (vanhempi, lapsi) { vanhempi.poistaLapsi(lapsi); vanhempi.appendLapsi(lapsi); // liittää vanhemmalle
}; 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 = 'ei mitään'; }); });
}; // sen sisällä
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
tuo {Runtime, Inspector, Library} osoitteesta https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js;
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
tuo notebook_embed3d osoitteesta “https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3” const customWidth = function (valitsin) { return (uusi kirjasto).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); funktio resized() { var w = document.querySelector(selector).clientWidth; if (w !== leveys) change(width = w); } window.addEventListener(“ muuta kokoa", kokoa muutettu); return function() { window.removeEventListener("muuta kokoa", kokoa muutettu); }; });
}; const topk_renders = { "kaavio": "#topk-kaavio",
};
new Runtime(Object.assign(new Library, {width: customWidth(“#topk-chart”)})).module(notebook_topk, name => { const selector = topk_renders[name]; if (valitsin) { //-näppäin olemassa return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { "kaavio": "#embed3d-kaavio", "legend": "#embed3d-legend",
};
new Runtime(Object.assign(new Library, {width: customWidth("#embed3d-chart"}))).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (valitsin) { // avain olemassa return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- saavutettu
- poikki
- algoritmit
- keskuudessa
- api
- sovellukset
- saatavissa
- benchmark
- Tukkia
- Rakentaminen
- soittaa
- Voi saada
- tapauksissa
- muuttaa
- lapsi
- luokittelu
- koodi
- kokoelma
- Yritykset
- yritys
- verrattuna
- tietokoneet
- pitoisuus
- keskustelut
- Asiakkaat
- tiedot
- tietokannat
- Detection
- eri
- Ulottuvuus
- näyttö
- asiakirjat
- helposti
- päätepiste
- Tapahtumat
- esimerkki
- asiantuntijat
- perheet
- FAST
- Ominaisuus
- Ominaisuudet
- palaute
- Etunimi
- jälkeen
- toiminto
- general
- korkeus
- auttaa
- auttaa
- Piilottaa
- Miten
- Miten
- HTTPS
- Hybridi
- Mukaan lukien
- tiedot
- oivalluksia
- vuorovaikutteinen
- IT
- avain
- Kieli
- oppinut
- oppiminen
- Kirjasto
- kirjallisuus
- kone
- koneoppiminen
- kartta
- matching
- asia
- merkitys
- Metrics
- malli
- mallit
- Morgan
- eniten
- liikkua
- Nasa
- Luonnollinen
- verkko
- numero
- Muut
- suorituskyky
- lausekkeet
- Fysiikka
- suunnittelu
- foorumi
- Suosittu
- Ennusteet
- anturi
- valmistettu
- Tuotteet
- Ohjelmointi
- toimittaa
- tarjoaa
- laatu
- RE
- Ihmissuhteet
- vapauta
- raportti
- Raportit
- vastaus
- tulokset
- Haku
- valittu
- setti
- samankaltainen
- Ratkaisumme
- Tila
- standardit
- alkoi
- huippu-
- tyyli
- tehtävät
- joukkue-
- tekniikat
- Kautta
- ylin
- perinteinen
- ymmärtää
- käyttää
- visualisointi
- W
- W3
- wikipedia
- sisällä
- sanoja
- työskentely
- yuan