Kami memperkenalkan embeddings, titik akhir baru di OpenAI API yang memudahkan untuk melakukan tugas bahasa dan kode alami seperti pencarian semantik, pengelompokan, pemodelan topik, dan klasifikasi. Embeddings adalah representasi numerik dari konsep yang diubah menjadi urutan angka, yang memudahkan komputer untuk memahami hubungan antara konsep-konsep tersebut. Penyematan kami mengungguli model teratas dalam 3 tolok ukur standar, termasuk peningkatan relatif 20% dalam pencarian kode.
Penyematan berguna untuk bekerja dengan bahasa dan kode alami, karena dapat dengan mudah digunakan dan dibandingkan dengan model dan algoritme pembelajaran mesin lainnya seperti pengelompokan atau pencarian.
Embeddings yang serupa secara numerik juga serupa secara semantik. Misalnya, vektor penyematan "kata teman anjing" akan lebih mirip dengan vektor penyematan "guk" daripada "meong".
Titik akhir baru menggunakan model jaringan saraf, yang merupakan turunan dari GPT-3, untuk memetakan teks dan kode ke representasi vektorโโmenyematkanโ mereka dalam ruang dimensi tinggi. Setiap dimensi menangkap beberapa aspek input.
Baru / embedding titik akhir di API OpenAI menyediakan penyematan teks dan kode dengan beberapa baris kode:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Kami merilis tiga kelompok model penyematan, masing-masing disetel untuk bekerja dengan baik pada fungsi yang berbeda: kesamaan teks, pencarian teks, dan pencarian kode. Model mengambil teks atau kode sebagai input dan mengembalikan vektor embedding.
Model | Gunakan Kasus | |
---|---|---|
Kesamaan teks: Menangkap kesamaan semantik antara potongan teks. | teks-kemiripan-{ada, babbage, curie, davinci}-001 | Pengelompokan, regresi, deteksi anomali, visualisasi |
Pencarian Teks: Pengambilan informasi semantik atas dokumen. | pencarian teks-{ada, babbage, curie, davinci}-{query, doc}-001 | Pencarian, relevansi konteks, pencarian informasi |
Pencarian kode: Temukan kode yang relevan dengan kueri dalam bahasa alami. | pencarian-kode-{ada, babbage}-{kode, teks}-001 | Pencarian kode dan relevansi |
Model Kesamaan Teks
Model kesamaan teks menyediakan embeddings yang menangkap kesamaan semantik potongan teks. Model-model ini berguna untuk banyak tugas termasuk: kekelompokan, visualisasi data, dan klasifikasi.
Visualisasi interaktif berikut menunjukkan penyematan sampel teks dari kumpulan data DBpedia:
Untuk membandingkan kesamaan dua bagian teks, Anda cukup menggunakan produk titik pada penyematan teks. Hasilnya adalah "skor kesamaan", kadang-kadang disebut "kesamaan cosinus,โ antara -1 dan 1, di mana angka yang lebih tinggi berarti lebih banyak kesamaan. Di sebagian besar aplikasi, embeddings dapat dihitung sebelumnya, dan kemudian perbandingan produk titik sangat cepat dilakukan.
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)
Salah satu penggunaan embeddings yang populer adalah menggunakannya sebagai fitur dalam tugas pembelajaran mesin, seperti klasifikasi. Dalam literatur pembelajaran mesin, saat menggunakan pengklasifikasi linier, tugas klasifikasi ini disebut "penyelidikan linier". Model kesamaan teks kami mencapai hasil mutakhir baru pada klasifikasi probe linier di TerkirimEval (Conneau dkk., 2018), tolok ukur yang umum digunakan untuk mengevaluasi kualitas penyematan.
Model Pencarian Teks
Model pencarian teks menyediakan penyematan yang memungkinkan tugas pencarian skala besar, seperti menemukan dokumen yang relevan di antara kumpulan dokumen yang diberikan kueri teks. Penyematan untuk dokumen dan kueri diproduksi secara terpisah, lalu kesamaan kosinus digunakan untuk membandingkan kesamaan antara kueri dan setiap dokumen.
Pencarian berbasis embedding dapat menggeneralisasi lebih baik daripada teknik tumpang tindih kata yang digunakan dalam pencarian kata kunci klasik, karena menangkap makna semantik teks dan kurang sensitif terhadap frasa atau kata yang tepat. Kami mengevaluasi kinerja model pencarian teks di BEIR (Thakur, dkk. 2021) rangkaian evaluasi pencarian dan dapatkan kinerja pencarian yang lebih baik daripada metode sebelumnya. Kita panduan pencarian teks memberikan detail lebih lanjut tentang penggunaan penyematan untuk tugas pencarian.
Model Pencarian Kode
Model pencarian kode menyediakan penyisipan kode dan teks untuk tugas pencarian kode. Diberikan kumpulan blok kode, tugasnya adalah menemukan blok kode yang relevan untuk kueri bahasa alami. Kami mengevaluasi model pencarian kode di CodeSearchNet (Husian dkk., 2019) rangkaian evaluasi tempat penyematan kami mencapai hasil yang jauh lebih baik daripada metode sebelumnya. Lihat panduan pencarian kode untuk menggunakan embeddings untuk pencarian kode.
Contoh Embeddings API dalam Tindakan
Penelitian JetBrains
Penelitian JetBrains Lab Fisika Astropartikel menganalisis data seperti Telegram Astronom dan NASA Surat Edaran GCN, yang merupakan laporan yang berisi peristiwa astronomi yang tidak dapat diuraikan oleh algoritme tradisional.
Didukung oleh embeddings OpenAI dari laporan astronomi ini, para peneliti sekarang dapat mencari peristiwa seperti "ledakan pulsar kepiting" di beberapa database dan publikasi. Embeddings juga mencapai akurasi 99.85% pada klasifikasi sumber data melalui k-means clustering.
Pembelajaran FineTune
Pembelajaran FineTune adalah perusahaan yang membangun solusi AI manusia hibrida untuk pembelajaran, seperti loop pembelajaran adaptif yang membantu siswa mencapai standar akademik.
Penyematan OpenAI secara signifikan meningkatkan tugas menemukan konten buku teks berdasarkan tujuan pembelajaran. Mencapai akurasi 5 teratas sebesar 89.1%, model embeddings pencarian teks-curie OpenAI mengungguli pendekatan sebelumnya seperti Sentence-BERT (64.5%). Sementara ahli manusia masih lebih baik, tim FineTune sekarang dapat melabeli seluruh buku teks dalam hitungan detik, berbeda dengan jam yang dibutuhkan para ahli.
Fabius
Fabius membantu perusahaan mengubah percakapan pelanggan menjadi wawasan terstruktur yang menginformasikan perencanaan dan prioritas. Penyematan OpenAI memungkinkan perusahaan untuk lebih mudah menemukan dan menandai transkrip panggilan pelanggan dengan permintaan fitur.
Misalnya, pelanggan mungkin menggunakan kata-kata seperti "otomatis" atau "mudah digunakan" untuk meminta platform layanan mandiri yang lebih baik. Sebelumnya, Fabius menggunakan pencarian kata kunci fuzzy untuk mencoba menandai transkrip tersebut dengan label platform layanan mandiri. Dengan penyematan OpenAI, mereka sekarang dapat menemukan 2x lebih banyak contoh secara umum, dan 6xโ10x lebih banyak contoh untuk fitur dengan kasus penggunaan abstrak yang tidak memiliki kata kunci yang jelas yang mungkin digunakan pelanggan.
Semua pelanggan API dapat memulai dengan dokumentasi penyematan untuk menggunakan embeddings dalam aplikasi mereka.
.vektor-diagram img { tampilan: tidak ada;
}
.vektor-diagram img:anak pertama { tampilan: blok;
}
var printResponse = function (btn) { // tambahkan respons var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') jika (!responseEl || !callParentEl) kembali; callParentEl.appendChild(responseEl); // sembunyikan tombol btn.style.display= 'tidak ada';
}; var initRotate = function() { var rotates = document.querySelectorAll('.js-rotate'); if (!rotates.length) kembali; // untuk setiap set rotasi rotates.forEach(function (r) { // pindahkan anak pertama ke akhir setiap n detik window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = function (induk, anak) { parent.removeChild(anak); parent.appendChild(anak); // tambahkan ke induk
}; 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 = 'none'; }); });
}; // inisiasi
document.addEventListener('DOMContentLoaded', fungsi () { initRotate(); initShowMore();
});
impor {Runtime, Inspector, Library} dari โhttps://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.jsโ;
import notebook_topk from โhttps://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3โ;
import notebook_embed3d from โ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); fungsi diubah ukurannya() { var w = document.querySelector(selector).clientWidth; if (w !== lebar) change(width = w); } window.addEventListener(โ ubah ukuranโ, ubah ukuran); return function() { window.removeEventListener(โmengubah ukuranโ, diubah ukurannya); }; });
}; const topk_renders = { โbaganโ: โ#topk-baganโ,
};
runtime baru(Object.assign(Perpustakaan baru, {width: customWidth("#topk-chart")})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // key ada kembalikan Inspektur baru(document.querySelector(selector)); } else { kembalikan true; }
}); const embed3d_renders = { โbaganโ: โ#embed3d-chartโ, โlegendโ: โ#embed3d-legendโ,
};
runtime baru(Object.assign(Perpustakaan baru, {width: customWidth("#embed3d-chart")})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (selector) { // key ada kembalikan Inspektur baru(document.querySelector(selector)); } else { kembalikan true; }
});
- '
- 100
- 11
- 3d
- 7
- dicapai
- di seluruh
- algoritma
- antara
- api
- aplikasi
- tersedia
- patokan
- Memblokir
- Bangunan
- panggilan
- Bisa Dapatkan
- kasus
- perubahan
- anak
- klasifikasi
- kode
- koleksi
- Perusahaan
- perusahaan
- dibandingkan
- komputer
- Konten
- percakapan
- pelanggan
- data
- database
- Deteksi
- berbeda
- Dimensi
- Display
- dokumen
- mudah
- Titik akhir
- peristiwa
- contoh
- ahli
- keluarga
- FAST
- Fitur
- Fitur
- umpan balik
- Pertama
- berikut
- fungsi
- Umum
- tinggi
- membantu
- membantu
- menyembunyikan
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- Hibrida
- Termasuk
- informasi
- wawasan
- interaktif
- IT
- kunci
- bahasa
- belajar
- pengetahuan
- Perpustakaan
- literatur
- mesin
- Mesin belajar
- peta
- sesuai
- hal
- makna
- Metrik
- model
- model
- morgan
- paling
- pindah
- NASA
- Alam
- jaringan
- jumlah
- Lainnya
- prestasi
- frase
- Fisika
- perencanaan
- Platform
- Populer
- Prediksi
- penyelidikan
- Diproduksi
- Produk
- Pemrograman
- memberikan
- menyediakan
- kualitas
- RE
- Hubungan
- melepaskan
- melaporkan
- laporan
- tanggapan
- Hasil
- Pencarian
- terpilih
- set
- mirip
- Solusi
- Space
- standar
- mulai
- state-of-the-art
- gaya
- tugas
- tim
- teknik
- Melalui
- puncak
- tradisional
- memahami
- menggunakan
- visualisasi
- W
- W3
- Wikipedia
- dalam
- kata
- kerja
- Yuan