Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API

Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API

Εισάγουμε τις ενσωματώσεις, ένα νέο τελικό σημείο στο OpenAI API που διευκολύνει την εκτέλεση εργασιών φυσικής γλώσσας και κώδικα, όπως σημασιολογική αναζήτηση, ομαδοποίηση, μοντελοποίηση θεμάτων και ταξινόμηση. Οι ενσωματώσεις είναι αριθμητικές αναπαραστάσεις εννοιών που μετατρέπονται σε ακολουθίες αριθμών, οι οποίες διευκολύνουν τους υπολογιστές να κατανοήσουν τις σχέσεις μεταξύ αυτών των εννοιών. Οι ενσωματώσεις μας ξεπερνούν τα κορυφαία μοντέλα σε 3 τυπικά σημεία αναφοράς, συμπεριλαμβανομένης μιας σχετικής βελτίωσης κατά 20% στην αναζήτηση κώδικα.

Διαβάστε την τεκμηρίωσηΔιαβάστε χαρτί

Οι ενσωματώσεις είναι χρήσιμες για την εργασία με φυσική γλώσσα και κώδικα, επειδή μπορούν εύκολα να καταναλωθούν και να συγκριθούν με άλλα μοντέλα και αλγόριθμους μηχανικής εκμάθησης, όπως η ομαδοποίηση ή η αναζήτηση.

Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API

Οι ενσωματώσεις που είναι αριθμητικά παρόμοιες είναι επίσης σημασιολογικά παρόμοιες. Για παράδειγμα, το διάνυσμα ενσωμάτωσης του "canine companions say" θα είναι περισσότερο παρόμοιο με το διάνυσμα ενσωμάτωσης του "woof" παρά αυτό του "meow".

Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API
Παρουσιάζοντας τις ενσωματώσεις κειμένου και κώδικα στο OpenAI API

Το νέο τελικό σημείο χρησιμοποιεί μοντέλα νευρωνικών δικτύων, τα οποία είναι απόγονοι του GPT-3, για να αντιστοιχίσουν κείμενο και κώδικα σε μια διανυσματική αναπαράσταση — «ενσωματώνοντάς τα» σε ένα χώρο υψηλών διαστάσεων. Κάθε διάσταση καταγράφει κάποια πτυχή της εισόδου.

Το νέο /ενσωματώσεις τελικό σημείο στο API OpenAI παρέχει ενσωματώσεις κειμένου και κώδικα με μερικές γραμμές κώδικα:

import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")

Κυκλοφορούμε τρεις οικογένειες μοντέλων ενσωμάτωσης, καθεμία ρυθμισμένη να έχει καλή απόδοση σε διαφορετικές λειτουργίες: ομοιότητα κειμένου, αναζήτηση κειμένου και αναζήτηση κώδικα. Τα μοντέλα λαμβάνουν είτε κείμενο είτε κώδικα ως είσοδο και επιστρέφουν ένα διάνυσμα ενσωμάτωσης.

Μοντέλα Χρήση περιπτώσεων
Ομοιότητα κειμένου: Καταγράφει σημασιολογική ομοιότητα μεταξύ τμημάτων κειμένου. κείμενο-ομοιότητα-{ada, babbage, curie, davinci}-001 Ομαδοποίηση, παλινδρόμηση, ανίχνευση ανωμαλιών, οπτικοποίηση
Αναζήτηση κειμένου: Ανάκτηση σημασιολογικών πληροφοριών πάνω από έγγραφα. text-search-{ada, babbage, curie, davinci}-{query, doc}-001 Αναζήτηση, συνάφεια πλαισίου, ανάκτηση πληροφοριών
Αναζήτηση κώδικα: Βρείτε σχετικό κώδικα με ερώτημα σε φυσική γλώσσα. code-search-{ada, babbage}-{code, text}-001 Αναζήτηση κώδικα και συνάφεια

Μοντέλα ομοιότητας κειμένου

Τα μοντέλα ομοιότητας κειμένου παρέχουν ενσωματώσεις που αποτυπώνουν τη σημασιολογική ομοιότητα τμημάτων κειμένου. Αυτά τα μοντέλα είναι χρήσιμα για πολλές εργασίες, συμπεριλαμβανομένων ομαδοποίηση, οπτικοποίηση δεδομένων, να ταξινόμηση.

Η ακόλουθη διαδραστική απεικόνιση δείχνει ενσωματώσεις δειγμάτων κειμένου από το σύνολο δεδομένων DBpedia:

Σύρετε για μετατόπιση, κύλιση ή τσίμπημα για μεγέθυνση

Ενσωματώσεις από το text-similarity-babbage-001 μοντέλο, που εφαρμόζεται στο DBpedia σύνολο δεδομένων. Επιλέξαμε τυχαία 100 δείγματα από το σύνολο δεδομένων που καλύπτουν 5 κατηγορίες και υπολογίσαμε τις ενσωματώσεις μέσω του /ενσωματώσεις τελικό σημείο. Οι διαφορετικές κατηγορίες εμφανίζονται ως 5 σαφείς ομάδες στον χώρο ενσωμάτωσης. Για να οπτικοποιήσουμε τον χώρο ενσωμάτωσης, μειώσαμε τη διάσταση ενσωμάτωσης από το 2048 σε 3 χρησιμοποιώντας PCA. Ο κώδικας για τον τρόπο οπτικοποίησης της ενσωμάτωσης του χώρου σε τρισδιάστατη διάσταση είναι διαθέσιμος εδώ.

Για να συγκρίνετε την ομοιότητα δύο τμημάτων κειμένου, απλώς χρησιμοποιείτε το προϊόν με κουκκίδες στις ενσωματώσεις κειμένου. Το αποτέλεσμα είναι μια «βαθμολογία ομοιότητας», που μερικές φορές ονομάζεται «ομοιότητα συνημίτονο», μεταξύ –1 και 1, όπου μεγαλύτερος αριθμός σημαίνει μεγαλύτερη ομοιότητα. Στις περισσότερες εφαρμογές, οι ενσωματώσεις μπορούν να υπολογιστούν εκ των προτέρων και, στη συνέχεια, η σύγκριση προϊόντων με κουκκίδες είναι εξαιρετικά γρήγορη.

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)

Μια δημοφιλής χρήση των ενσωματώσεων είναι η χρήση τους ως δυνατότητες σε εργασίες μηχανικής εκμάθησης, όπως η ταξινόμηση. Στη βιβλιογραφία μηχανικής μάθησης, όταν χρησιμοποιείται ένας γραμμικός ταξινομητής, αυτή η εργασία ταξινόμησης ονομάζεται "γραμμικός ανιχνευτής". Τα μοντέλα ομοιότητας κειμένου μας επιτυγχάνουν νέα τελευταίας τεχνολογίας αποτελέσματα σχετικά με την ταξινόμηση γραμμικών ανιχνευτών SentEval (Conneau et al., 2018), ένα ευρέως χρησιμοποιούμενο σημείο αναφοράς για την αξιολόγηση της ποιότητας ενσωμάτωσης.

Γραμμική ταξινόμηση ανιχνευτών σε 7 σύνολα δεδομένων
Προηγούμενο SOTA (Οι Gao et al. 2021)
90.2%
text-similarity-davinci-001
92.2%
Δείτε περισσότερα

Μοντέλα αναζήτησης κειμένου

Τα μοντέλα αναζήτησης κειμένου παρέχουν ενσωματώσεις που επιτρέπουν εργασίες αναζήτησης μεγάλης κλίμακας, όπως η εύρεση ενός σχετικού εγγράφου μεταξύ μιας συλλογής εγγράφων στα οποία δίνεται ένα ερώτημα κειμένου. Η ενσωμάτωση για τα έγγραφα και το ερώτημα παράγονται χωριστά και, στη συνέχεια, χρησιμοποιείται ομοιότητα συνημιτόνου για να συγκριθεί η ομοιότητα μεταξύ του ερωτήματος και κάθε εγγράφου.

Η αναζήτηση με βάση την ενσωμάτωση μπορεί να γενικεύσει καλύτερα από τις τεχνικές επικάλυψης λέξεων που χρησιμοποιούνται στην κλασική αναζήτηση λέξεων-κλειδιών, επειδή αποτυπώνει τη σημασιολογική έννοια του κειμένου και είναι λιγότερο ευαίσθητη σε ακριβείς φράσεις ή λέξεις. Αξιολογούμε την απόδοση του μοντέλου αναζήτησης κειμένου στο ΜΠΕΙΡ (Thakur, et al. 2021) σουίτα αξιολόγησης αναζήτησης και αποκτήστε καλύτερη απόδοση αναζήτησης από προηγούμενες μεθόδους. Μας οδηγός αναζήτησης κειμένου παρέχει περισσότερες λεπτομέρειες σχετικά με τη χρήση ενσωματώσεων για εργασίες αναζήτησης.

Μοντέλα αναζήτησης κώδικα

Τα μοντέλα αναζήτησης κώδικα παρέχουν ενσωματώσεις κώδικα και κειμένου για εργασίες αναζήτησης κώδικα. Δεδομένης μιας συλλογής μπλοκ κώδικα, η εργασία είναι να βρείτε το σχετικό μπλοκ κώδικα για ένα ερώτημα φυσικής γλώσσας. Αξιολογούμε τα μοντέλα αναζήτησης κώδικα στο CodeSearchNet (Husian et al., 2019) σουίτα αξιολόγησης όπου οι ενσωματώσεις μας επιτυγχάνουν σημαντικά καλύτερα αποτελέσματα από προηγούμενες μεθόδους. Ελέγξτε το οδηγός αναζήτησης κώδικα για να χρησιμοποιήσετε ενσωματώσεις για αναζήτηση κώδικα.

Μέση ακρίβεια πάνω από 6 γλώσσες προγραμματισμού
Προηγούμενο SOTA (Guo, et al. 2021)
77.4%
code-search-babbage-{doc, query}-001
93.5%
Δείτε περισσότερα

Παραδείγματα του API ενσωματώσεων σε δράση

Έρευνα JetBrains

JetBrains Research's Εργαστήριο Αστροσωματιδιακής Φυσικής αναλύει δεδομένα όπως Το τηλεγράφημα του αστρονόμου και της NASA Εγκύκλιοι GCN, οι οποίες είναι αναφορές που περιέχουν αστρονομικά γεγονότα που δεν μπορούν να αναλυθούν από παραδοσιακούς αλγόριθμους.

Με την υποστήριξη των ενσωματώσεων του OpenAI αυτών των αστρονομικών αναφορών, οι ερευνητές μπορούν πλέον να αναζητούν γεγονότα όπως "εκρήξεις πάλσαρ καβουριών" σε πολλές βάσεις δεδομένων και δημοσιεύσεις. Οι ενσωματώσεις πέτυχαν επίσης 99.85% ακρίβεια στην ταξινόμηση των πηγών δεδομένων μέσω της ομαδοποίησης k-means.

FineTune Learning

FineTune Learning είναι μια εταιρεία που κατασκευάζει υβριδικές λύσεις ανθρώπου-AI για μάθηση, όπως προσαρμοστικούς βρόχους μάθησης που βοηθούν τους μαθητές να φτάσουν τα ακαδημαϊκά πρότυπα.

Οι ενσωματώσεις του OpenAI βελτίωσαν σημαντικά το έργο της εύρεσης περιεχομένου σχολικών βιβλίων με βάση τους μαθησιακούς στόχους. Επιτυγχάνοντας μια κορυφαία ακρίβεια 5%, το μοντέλο ενσωματώσεων αναζήτησης κειμένου-curie του OpenAI ξεπέρασε τις προηγούμενες προσεγγίσεις όπως το Sentence-BERT (89.1%). Ενώ οι ειδικοί στον άνθρωπο είναι ακόμα καλύτεροι, η ομάδα του FineTune είναι πλέον σε θέση να επισημαίνει ολόκληρα σχολικά βιβλία μέσα σε λίγα δευτερόλεπτα, σε αντίθεση με τις ώρες που χρειάστηκαν οι ειδικοί.

Σύγκριση των ενσωματώσεών μας με το Sentence-BERT, Αναζήτηση GPT-3 και ειδικοί σε θέματα ανθρώπινων αντικειμένων για την αντιστοίχιση περιεχομένου σχολικών βιβλίων με μαθητευόμενους στόχους. αναφέρουμε ακρίβεια@κ, πόσες φορές η σωστή απάντηση βρίσκεται εντός των top-k προβλέψεων.

Fabius

Fabius βοηθά τις εταιρείες να μετατρέψουν τις συνομιλίες με τους πελάτες σε δομημένες γνώσεις που ενημερώνουν τον προγραμματισμό και την ιεράρχηση προτεραιοτήτων. Οι ενσωματώσεις του OpenAI επιτρέπουν στις εταιρείες να βρίσκουν πιο εύκολα και να προσθέτουν ετικέτες στις μεταγραφές κλήσεων πελατών με αιτήματα για λειτουργίες.

Για παράδειγμα, οι πελάτες μπορεί να χρησιμοποιήσουν λέξεις όπως "αυτοματοποιημένο" ή "εύχρηστο" για να ζητήσουν μια καλύτερη πλατφόρμα αυτοεξυπηρέτησης. Προηγουμένως, ο Fabius χρησιμοποιούσε ασαφή αναζήτηση λέξεων-κλειδιών για να προσπαθήσει να προσθέσει ετικέτα σε αυτές τις μεταγραφές με την ετικέτα της πλατφόρμας αυτοεξυπηρέτησης. Με τις ενσωματώσεις του OpenAI, μπορούν πλέον να βρίσκουν 2 φορές περισσότερα παραδείγματα γενικά και 6x–10 φορές περισσότερα παραδείγματα για λειτουργίες με περιπτώσεις αφηρημένης χρήσης που δεν έχουν σαφή λέξη-κλειδί που μπορεί να χρησιμοποιήσουν οι πελάτες.

Όλοι οι πελάτες API μπορούν να ξεκινήσουν με το τεκμηρίωση ενσωματώσεων για τη χρήση ενσωματώσεων στις εφαρμογές τους.

Διαβάστε την τεκμηρίωση


Ευχαριστίες

Ευχαριστούμε τους ακόλουθους για τη συνεισφορά τους σε αυτήν την έκδοση:

Tao Xu, Chris Hallacy, Raul Puri, Alec Radford, Jesse Michael Han, Jerry Tworek, Qiming Yuan, Nikolas Tezak, Jong Wook Kim, Johannes Heidecke, Pranav Shyam, Tyna Eloundou Nekoul, Girish Sastry, Gretchen Krueger, David Schnurr, Felipe Τέτοιοι, ο Kenny Hsu, η Madeleine Thompson, ο Tabarak Khan και ο Toki Sherbakov.

Ευχαριστούμε τους ακόλουθους για τα σχόλιά τους σχετικά με αυτήν την ανάρτηση: Tom Kleinpeter, Morgan Gallant, Sam Altman, Ilya Sutskever, Steve Dowling, Rachel Lim, Arun Vijayvergiya, Rajeev Nayak, Peter Welinder, Justin Jay Wang.

.vector-diagram img { display: none;
}
.vector-diagram img:first-child { display: block;
}

var printResponse = συνάρτηση (btn) { // προσθήκη απάντησης var answerEl = έγγραφο .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = έγγραφο .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) επιστρέψει; callParentEl.appendChild(responseEl); // κουμπί απόκρυψης btn.style.display= 'κανένα';
}; var initRotate = συνάρτηση () { var rotates = document.querySelectorAll('.js-rotate'); αν (!rotates.length) επιστρέψει? // για κάθε σύνολο rotates rotates.forEach(function (r) { // move first child to end every n seconds window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = συνάρτηση (γονέας, παιδί) { parent.removeChild(child); parent.appendChild(child); // προσάρτηση στον γονέα
}; var initShowMore = συνάρτηση () { 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'); εάν (!περισσότερα) επιστρέψει· more.style.display = 'block'; this.style.display = 'none'; }); });
}; // μέσα σε αυτό
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
})?
εισαγωγή {Runtime, Inspector, Library} από το "https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js";
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
εισαγωγή notebook_embed3d από "https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3" const customWidth = function (επιλογέας) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() {var w = document.querySelector(selector).clientWidth; if (w !== πλάτος) change(width = w); } window.addEventListener(“ αλλαγή μεγέθους", αλλαγή μεγέθους); συνάρτηση επιστροφής() { window.removeEventListener("αλλαγή μεγέθους", αλλαγή μεγέθους); }; });
}; const topk_renders = { "διάγραμμα": "#topk-chart",
};
new Runtime(Object.assign(new Library, {width: customWidth("#topk-chart")})).module(notebook_topk, name => {const Selector = topk_renders[name]; if (selector) { // key υπάρχει επιστροφή new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { "διάγραμμα": "#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 υπάρχει επιστροφή new Inspector(document.querySelector(selector)); } else { return true; }
})?

Σφραγίδα ώρας:

Περισσότερα από OpenAI