Εισάγουμε τις ενσωματώσεις, ένα νέο τελικό σημείο στο OpenAI API που διευκολύνει την εκτέλεση εργασιών φυσικής γλώσσας και κώδικα, όπως σημασιολογική αναζήτηση, ομαδοποίηση, μοντελοποίηση θεμάτων και ταξινόμηση. Οι ενσωματώσεις είναι αριθμητικές αναπαραστάσεις εννοιών που μετατρέπονται σε ακολουθίες αριθμών, οι οποίες διευκολύνουν τους υπολογιστές να κατανοήσουν τις σχέσεις μεταξύ αυτών των εννοιών. Οι ενσωματώσεις μας ξεπερνούν τα κορυφαία μοντέλα σε 3 τυπικά σημεία αναφοράς, συμπεριλαμβανομένης μιας σχετικής βελτίωσης κατά 20% στην αναζήτηση κώδικα.
Οι ενσωματώσεις είναι χρήσιμες για την εργασία με φυσική γλώσσα και κώδικα, επειδή μπορούν εύκολα να καταναλωθούν και να συγκριθούν με άλλα μοντέλα και αλγόριθμους μηχανικής εκμάθησης, όπως η ομαδοποίηση ή η αναζήτηση.
Οι ενσωματώσεις που είναι αριθμητικά παρόμοιες είναι επίσης σημασιολογικά παρόμοιες. Για παράδειγμα, το διάνυσμα ενσωμάτωσης του "canine companions say" θα είναι περισσότερο παρόμοιο με το διάνυσμα ενσωμάτωσης του "woof" παρά αυτό του "meow".
Το νέο τελικό σημείο χρησιμοποιεί μοντέλα νευρωνικών δικτύων, τα οποία είναι απόγονοι του 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:
Για να συγκρίνετε την ομοιότητα δύο τμημάτων κειμένου, απλώς χρησιμοποιείτε το προϊόν με κουκκίδες στις ενσωματώσεις κειμένου. Το αποτέλεσμα είναι μια «βαθμολογία ομοιότητας», που μερικές φορές ονομάζεται «ομοιότητα συνημίτονο», μεταξύ –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), ένα ευρέως χρησιμοποιούμενο σημείο αναφοράς για την αξιολόγηση της ποιότητας ενσωμάτωσης.
Μοντέλα αναζήτησης κειμένου
Τα μοντέλα αναζήτησης κειμένου παρέχουν ενσωματώσεις που επιτρέπουν εργασίες αναζήτησης μεγάλης κλίμακας, όπως η εύρεση ενός σχετικού εγγράφου μεταξύ μιας συλλογής εγγράφων στα οποία δίνεται ένα ερώτημα κειμένου. Η ενσωμάτωση για τα έγγραφα και το ερώτημα παράγονται χωριστά και, στη συνέχεια, χρησιμοποιείται ομοιότητα συνημιτόνου για να συγκριθεί η ομοιότητα μεταξύ του ερωτήματος και κάθε εγγράφου.
Η αναζήτηση με βάση την ενσωμάτωση μπορεί να γενικεύσει καλύτερα από τις τεχνικές επικάλυψης λέξεων που χρησιμοποιούνται στην κλασική αναζήτηση λέξεων-κλειδιών, επειδή αποτυπώνει τη σημασιολογική έννοια του κειμένου και είναι λιγότερο ευαίσθητη σε ακριβείς φράσεις ή λέξεις. Αξιολογούμε την απόδοση του μοντέλου αναζήτησης κειμένου στο ΜΠΕΙΡ (Thakur, et al. 2021) σουίτα αξιολόγησης αναζήτησης και αποκτήστε καλύτερη απόδοση αναζήτησης από προηγούμενες μεθόδους. Μας οδηγός αναζήτησης κειμένου παρέχει περισσότερες λεπτομέρειες σχετικά με τη χρήση ενσωματώσεων για εργασίες αναζήτησης.
Μοντέλα αναζήτησης κώδικα
Τα μοντέλα αναζήτησης κώδικα παρέχουν ενσωματώσεις κώδικα και κειμένου για εργασίες αναζήτησης κώδικα. Δεδομένης μιας συλλογής μπλοκ κώδικα, η εργασία είναι να βρείτε το σχετικό μπλοκ κώδικα για ένα ερώτημα φυσικής γλώσσας. Αξιολογούμε τα μοντέλα αναζήτησης κώδικα στο CodeSearchNet (Husian et al., 2019) σουίτα αξιολόγησης όπου οι ενσωματώσεις μας επιτυγχάνουν σημαντικά καλύτερα αποτελέσματα από προηγούμενες μεθόδους. Ελέγξτε το οδηγός αναζήτησης κώδικα για να χρησιμοποιήσετε ενσωματώσεις για αναζήτηση κώδικα.
Παραδείγματα του 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 είναι πλέον σε θέση να επισημαίνει ολόκληρα σχολικά βιβλία μέσα σε λίγα δευτερόλεπτα, σε αντίθεση με τις ώρες που χρειάστηκαν οι ειδικοί.
Fabius
Fabius βοηθά τις εταιρείες να μετατρέψουν τις συνομιλίες με τους πελάτες σε δομημένες γνώσεις που ενημερώνουν τον προγραμματισμό και την ιεράρχηση προτεραιοτήτων. Οι ενσωματώσεις του OpenAI επιτρέπουν στις εταιρείες να βρίσκουν πιο εύκολα και να προσθέτουν ετικέτες στις μεταγραφές κλήσεων πελατών με αιτήματα για λειτουργίες.
Για παράδειγμα, οι πελάτες μπορεί να χρησιμοποιήσουν λέξεις όπως "αυτοματοποιημένο" ή "εύχρηστο" για να ζητήσουν μια καλύτερη πλατφόρμα αυτοεξυπηρέτησης. Προηγουμένως, ο Fabius χρησιμοποιούσε ασαφή αναζήτηση λέξεων-κλειδιών για να προσπαθήσει να προσθέσει ετικέτα σε αυτές τις μεταγραφές με την ετικέτα της πλατφόρμας αυτοεξυπηρέτησης. Με τις ενσωματώσεις του OpenAI, μπορούν πλέον να βρίσκουν 2 φορές περισσότερα παραδείγματα γενικά και 6x–10 φορές περισσότερα παραδείγματα για λειτουργίες με περιπτώσεις αφηρημένης χρήσης που δεν έχουν σαφή λέξη-κλειδί που μπορεί να χρησιμοποιήσουν οι πελάτες.
Όλοι οι πελάτες API μπορούν να ξεκινήσουν με το τεκμηρίωση ενσωματώσεων για τη χρήση ενσωματώσεων στις εφαρμογές τους.
.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; }
})?
- '
- 100
- 11
- 3d
- 7
- επιτευχθεί
- απέναντι
- αλγόριθμοι
- μεταξύ των
- api
- εφαρμογές
- διαθέσιμος
- αναφοράς
- Αποκλεισμός
- Κτίριο
- κλήση
- Μπορεί να πάρει
- περιπτώσεις
- αλλαγή
- παιδί
- ταξινόμηση
- κωδικός
- συλλογή
- Εταιρείες
- εταίρα
- σύγκριση
- υπολογιστές
- περιεχόμενο
- συνομιλίες
- Πελάτες
- ημερομηνία
- βάσεις δεδομένων
- Ανίχνευση
- διαφορετικές
- Διάσταση
- Display
- έγγραφα
- εύκολα
- Τελικό σημείο
- εκδηλώσεις
- παράδειγμα
- εμπειρογνώμονες
- οικογένειες
- FAST
- Χαρακτηριστικό
- Χαρακτηριστικά
- ανατροφοδότηση
- Όνομα
- Εξής
- λειτουργία
- General
- ύψος
- βοήθεια
- βοηθά
- Κρύβω
- Πως
- Πώς να
- HTTPS
- Υβριδικό
- Συμπεριλαμβανομένου
- πληροφορίες
- ιδέες
- διαδραστικό
- IT
- Κλειδί
- Γλώσσα
- μάθει
- μάθηση
- Βιβλιοθήκη
- λογοτεχνία
- μηχανή
- μάθηση μηχανής
- χάρτη
- ταιριάζουν
- ύλη
- νόημα
- Metrics
- μοντέλο
- μοντέλα
- Morgan
- πλέον
- μετακινήσετε
- Nasa
- Φυσικό
- δίκτυο
- αριθμός
- ΑΛΛΑ
- επίδοση
- φράσεις
- Φυσική
- σχεδιασμό
- πλατφόρμες
- Δημοφιλής
- Προβλέψεις
- καθετήρας
- Παράγεται
- Προϊόν
- Προγραμματισμός
- παρέχουν
- παρέχει
- ποιότητα
- RE
- Σχέσεις
- απελευθερώνουν
- αναφέρουν
- Εκθέσεις
- απάντησης
- Αποτελέσματα
- Αναζήτηση
- επιλέγονται
- σειρά
- παρόμοιες
- Λύσεις
- Χώρος
- πρότυπα
- ξεκίνησε
- state-of-the-art
- στυλ
- εργασίες
- τεχνικές
- Μέσω
- κορυφή
- παραδοσιακός
- καταλαβαίνω
- χρήση
- οραματισμός
- W
- W3
- Wikipedia
- εντός
- λόγια
- εργαζόμενος
- Γιουάν