Menghasilkan nilai dari data perusahaan: Praktik terbaik untuk Text2SQL dan AI generatif | Layanan Web Amazon

Menghasilkan nilai dari data perusahaan: Praktik terbaik untuk Text2SQL dan AI generatif | Layanan Web Amazon

AI generatif telah membuka banyak potensi di bidang AI. Kami melihat banyak kegunaan, termasuk pembuatan teks, pembuatan kode, ringkasan, terjemahan, chatbots, dan banyak lagi. Salah satu bidang yang berkembang adalah penggunaan pemrosesan bahasa alami (NLP) untuk membuka peluang baru dalam mengakses data melalui kueri SQL yang intuitif. Daripada berurusan dengan kode teknis yang rumit, pengguna bisnis dan analis data dapat mengajukan pertanyaan terkait data dan wawasan dalam bahasa yang sederhana. Tujuan utamanya adalah menghasilkan kueri SQL secara otomatis dari teks bahasa alami. Untuk melakukan ini, masukan teks diubah menjadi representasi terstruktur, dan dari representasi ini, kueri SQL yang dapat digunakan untuk mengakses database dibuat.

Dalam postingan ini, kami memberikan pengenalan teks ke SQL (Text2SQL) dan menjelajahi kasus penggunaan, tantangan, pola desain, dan praktik terbaik. Secara khusus, kami membahas hal berikut:

  • Mengapa kita membutuhkan Text2SQL
  • Komponen kunci untuk Teks ke SQL
  • Pertimbangan teknis yang cepat untuk bahasa alami atau Teks ke SQL
  • Pengoptimalan dan praktik terbaik
  • Pola arsitektur

Mengapa kita membutuhkan Text2SQL?

Saat ini, sejumlah besar data tersedia dalam analisis data tradisional, pergudangan data, dan database, yang mungkin tidak mudah untuk ditanyakan atau dipahami oleh sebagian besar anggota organisasi. Tujuan utama Text2SQL adalah membuat database kueri lebih mudah diakses oleh pengguna non-teknis, yang bisa memberikan kueri mereka dalam bahasa alami.

NLP SQL memungkinkan pengguna bisnis menganalisis data dan mendapatkan jawaban dengan mengetik atau mengucapkan pertanyaan dalam bahasa alami, seperti berikut:

  • โ€œTampilkan total penjualan untuk setiap produk bulan laluโ€
  • โ€œProduk mana yang menghasilkan lebih banyak pendapatan?โ€
  • โ€œBerapa persentase pelanggan dari masing-masing wilayah?โ€

Batuan Dasar Amazon adalah layanan terkelola sepenuhnya yang menawarkan pilihan model fondasi (FM) berperforma tinggi melalui satu API, yang memungkinkan pembuatan dan penskalaan aplikasi Gen AI dengan mudah. Hal ini dapat dimanfaatkan untuk menghasilkan kueri SQL berdasarkan pertanyaan serupa dengan yang tercantum di atas dan mengkueri data terstruktur organisasi serta menghasilkan respons bahasa alami dari data respons kueri.

Komponen kunci untuk teks ke SQL

Sistem Text-to-SQL melibatkan beberapa tahapan untuk mengubah kueri bahasa alami menjadi SQL yang dapat dijalankan:

  • Pemrosesan bahasa alami:
    • Analisis permintaan masukan pengguna
    • Ekstrak elemen dan maksud kunci
    • Konversikan ke format terstruktur
  • generasi SQL:
    • Petakan detail yang diekstraksi ke dalam sintaksis SQL
    • Hasilkan kueri SQL yang valid
  • Permintaan basis data:
    • Jalankan kueri SQL yang dihasilkan AI pada database
    • Ambil hasil
    • Kembalikan hasil ke pengguna

Salah satu kemampuan luar biasa dari Model Bahasa Besar (LLM) adalah pembuatan kode, termasuk Structured Query Language (SQL) untuk database. LLM ini dapat dimanfaatkan untuk memahami pertanyaan bahasa alami dan menghasilkan kueri SQL yang sesuai sebagai keluaran. LLM akan mendapatkan keuntungan dengan mengadopsi pembelajaran dalam konteks dan pengaturan penyesuaian seiring dengan semakin banyaknya data yang disediakan.

Diagram berikut mengilustrasikan aliran Text2SQL dasar.

Teks 2 alur proses tingkat tinggi SQL

Pertimbangan teknis yang cepat untuk bahasa alami ke SQL

Prompt sangat penting ketika menggunakan LLM untuk menerjemahkan bahasa alami ke dalam kueri SQL, dan ada beberapa pertimbangan penting untuk rekayasa prompt.

Efektif rekayasa cepat adalah kunci untuk mengembangkan bahasa alami untuk sistem SQL. Perintah yang jelas dan lugas memberikan instruksi yang lebih baik untuk model bahasa. Memberikan konteks bahwa pengguna meminta kueri SQL bersama dengan detail skema database yang relevan memungkinkan model menerjemahkan maksud secara akurat. Menyertakan beberapa contoh perintah bahasa alami dan kueri SQL yang terkait membantu memandu model untuk menghasilkan keluaran yang sesuai dengan sintaksis. Selain itu, menggabungkan Retrieval Augmented Generation (RAG), di mana model mengambil contoh serupa selama pemrosesan, semakin meningkatkan akurasi pemetaan. Perintah yang dirancang dengan baik yang memberikan instruksi, konteks, contoh, dan augmentasi pengambilan yang memadai kepada model sangat penting untuk menerjemahkan bahasa alami ke dalam kueri SQL dengan andal.

Berikut ini adalah contoh prompt dasar dengan representasi kode database dari whitepaper Meningkatkan Kemampuan Text-to-SQL dalam Model Bahasa Besar: Studi tentang Strategi Desain Cepat.

/* Given the following database schema : */
CREATE TABLE IF NOT EXISTS " gymnast " ( " Gymnast_ID " int , " Floor_Exercise_Points " real , " Pommel_Horse_Points " real , " Rings_Points " real , " Vault_Points " real , " Parallel_Bars_Points " real , " Horizontal_Bar_Points " real , " Total_Points " real , PRIMARY KEY ( " Gymnast_ID " ) , FOREIGN KEY ( " Gymnast_ID " ) REFERENCES " people " ( " People_ID " ) ) ; CREATE TABLE IF NOT EXISTS " people " ( " People_ID " int , " Name " text , " Age " real , " Height " real , " Hometown " text , PRIMARY KEY ( " People_ID " ) ) ; /* Answer the following : Return the total points of the gymnast with the lowest age .
*/ select t1 . total_points from gymnast as t1 join people as t2 on t1 . gymnast_id = t2 .
people_id order by t2 . age asc limit 1

Seperti yang diilustrasikan dalam contoh ini, pembelajaran beberapa langkah berbasis prompt memberikan model beberapa contoh beranotasi dalam prompt itu sendiri. Ini menunjukkan pemetaan target antara bahasa alami dan SQL untuk model. Biasanya, prompt akan berisi sekitar 2โ€“3 pasangan yang menampilkan kueri bahasa alami dan pernyataan SQL yang setara. Beberapa contoh ini memandu model untuk menghasilkan kueri SQL yang sesuai sintaksis dari bahasa alami tanpa memerlukan data pelatihan ekstensif.

Penyempurnaan vs. rekayasa cepat

Saat membangun bahasa alami untuk sistem SQL, kita sering berdiskusi tentang apakah menyempurnakan model adalah teknik yang tepat atau apakah rekayasa cepat yang efektif adalah cara yang tepat. Kedua pendekatan tersebut dapat dipertimbangkan dan dipilih berdasarkan serangkaian persyaratan yang tepat:

    • Mencari setelan โ€“ Model dasar telah dilatih sebelumnya pada korpus teks umum yang besar dan kemudian dapat digunakan penyempurnaan berbasis instruksi, yang menggunakan contoh berlabel untuk meningkatkan kinerja model dasar terlatih pada text-SQL. Ini menyesuaikan model dengan tugas target. Penyempurnaan secara langsung melatih model pada tugas akhir tetapi memerlukan banyak contoh teks-SQL. Anda dapat menggunakan penyesuaian yang diawasi berdasarkan LLM Anda untuk meningkatkan efektivitas text-to-SQL. Untuk ini, Anda dapat menggunakan beberapa kumpulan data seperti Labah-labah, WikiSQL, MENGEJAR, BURUNG-SQL, atau CoSQL.
    • Rekayasa cepat โ€“ Model dilatih untuk menyelesaikan perintah yang dirancang untuk meminta sintaks SQL target. Saat membuat SQL dari bahasa alami menggunakan LLM, memberikan instruksi yang jelas pada prompt penting untuk mengontrol keluaran model. Di prompt untuk memberi anotasi pada komponen yang berbeda seperti menunjuk ke kolom, skema, dan kemudian menginstruksikan jenis SQL mana yang akan dibuat. Ini bertindak seperti instruksi yang memberi tahu model cara memformat keluaran SQL. Prompt berikut menunjukkan contoh di mana Anda mengarahkan kolom tabel dan memerintahkan untuk membuat kueri MySQL:
Table offices, columns = [OfficeId, OfficeName]
Table employees, columns = [OfficeId, EmployeeId,EmployeeName]
Create a MySQL query for all employees in the Machine Learning Department

Pendekatan yang efektif untuk model text-to-SQL adalah memulai dengan LLM dasar tanpa penyesuaian khusus tugas apa pun. Perintah yang dibuat dengan baik kemudian dapat digunakan untuk mengadaptasi dan menggerakkan model dasar untuk menangani pemetaan text-to-SQL. Rekayasa cepat ini memungkinkan Anda mengembangkan kemampuan tanpa perlu melakukan penyesuaian. Jika rekayasa cepat pada model dasar tidak mencapai akurasi yang memadai, penyesuaian pada sekumpulan kecil contoh teks-SQL kemudian dapat dieksplorasi bersama dengan rekayasa cepat lebih lanjut.

Kombinasi penyempurnaan dan rekayasa cepat mungkin diperlukan jika rekayasa cepat pada model mentah yang sudah dilatih sebelumnya tidak memenuhi persyaratan. Namun, yang terbaik adalah mencoba rekayasa cepat terlebih dahulu tanpa melakukan penyesuaian, karena hal ini memungkinkan iterasi cepat tanpa pengumpulan data. Jika hal ini gagal memberikan kinerja yang memadai, penyempurnaan bersamaan dengan rekayasa cepat adalah langkah berikutnya yang layak. Pendekatan keseluruhan ini memaksimalkan efisiensi sambil tetap memungkinkan penyesuaian jika metode berbasis cepat saja tidak cukup.

Pengoptimalan dan praktik terbaik

Optimalisasi dan praktik terbaik sangat penting untuk meningkatkan efektivitas dan memastikan sumber daya digunakan secara optimal dan hasil yang tepat dapat dicapai dengan cara terbaik. Teknik ini membantu meningkatkan kinerja, mengendalikan biaya, dan mencapai hasil dengan kualitas lebih baik.

Saat mengembangkan sistem text-to-SQL menggunakan LLM, teknik pengoptimalan dapat meningkatkan kinerja dan efisiensi. Berikut ini adalah beberapa bidang utama yang perlu dipertimbangkan:

  • caching โ€“ Untuk meningkatkan latensi, pengendalian biaya, dan standarisasi, Anda dapat menyimpan cache SQL yang diurai dan permintaan kueri yang dikenali dari LLM teks-ke-SQL. Hal ini untuk menghindari pemrosesan ulang kueri yang berulang.
  • Pemantauan โ€“ Log dan metrik seputar penguraian kueri, pengenalan cepat, pembuatan SQL, dan hasil SQL harus dikumpulkan untuk memantau sistem LLM text-to-SQL. Hal ini memberikan visibilitas untuk contoh pengoptimalan yang memperbarui perintah atau meninjau kembali penyesuaian dengan kumpulan data yang diperbarui.
  • Tampilan terwujud vs. tabel โ€“ Tampilan terwujud dapat menyederhanakan pembuatan SQL dan meningkatkan kinerja untuk kueri teks-ke-SQL yang umum. Mengkueri tabel secara langsung dapat mengakibatkan SQL yang kompleks dan juga mengakibatkan masalah performa, termasuk pembuatan teknik performa seperti indeks secara terus-menerus. Selain itu, Anda dapat menghindari masalah kinerja ketika tabel yang sama digunakan untuk area aplikasi lain pada waktu yang sama.
  • Menyegarkan data โ€“ Tampilan yang terwujud perlu disegarkan sesuai jadwal agar data tetap terkini untuk kueri teks-ke-SQL. Anda dapat menggunakan pendekatan penyegaran batch atau inkremental untuk menyeimbangkan overhead.
  • Katalog data pusat โ€“ Membuat katalog data terpusat memberikan satu panel tampilan ke sumber data organisasi dan akan membantu LLM memilih tabel dan skema yang sesuai untuk memberikan respons yang lebih akurat. Vektor pernikahan dibuat dari katalog data pusat dapat diberikan ke LLM bersama dengan informasi yang diminta untuk menghasilkan respons SQL yang relevan dan tepat.

Dengan menerapkan praktik terbaik pengoptimalan seperti caching, pemantauan, tampilan material, penyegaran terjadwal, dan katalog terpusat, Anda dapat secara signifikan meningkatkan kinerja dan efisiensi sistem text-to-SQL menggunakan LLM.

Pola arsitektur

Mari kita lihat beberapa pola arsitektur yang dapat diimplementasikan untuk alur kerja teks ke SQL.

Rekayasa cepat

Diagram berikut mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat.

mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat

Dalam pola ini, pengguna membuat pembelajaran beberapa langkah berbasis perintah yang menyediakan model dengan contoh beranotasi dalam perintah itu sendiri, yang mencakup detail tabel dan skema serta beberapa contoh kueri beserta hasilnya. LLM menggunakan perintah yang disediakan untuk mengembalikan SQL yang dihasilkan AI, yang divalidasi dan kemudian dijalankan terhadap database untuk mendapatkan hasilnya. Ini adalah pola paling mudah untuk mulai menggunakan rekayasa cepat. Untuk ini, Anda bisa menggunakan Batuan Dasar Amazon or model pondasi in Mulai Lompatan Amazon SageMaker.

Dalam pola ini, pengguna membuat pembelajaran beberapa langkah berbasis perintah yang menyediakan model dengan contoh beranotasi dalam perintah itu sendiri, yang mencakup detail tabel dan skema serta beberapa contoh kueri beserta hasilnya. LLM menggunakan prompt yang disediakan untuk mengembalikan SQL yang dihasilkan AI yang divalidasi dan dijalankan terhadap database untuk mendapatkan hasilnya. Ini adalah pola paling mudah untuk mulai menggunakan rekayasa cepat. Untuk ini, Anda bisa menggunakan Batuan Dasar Amazon yang merupakan layanan terkelola sepenuhnya yang menawarkan pilihan model dasar (FM) berperforma tinggi dari perusahaan AI terkemuka melalui satu API, bersama dengan serangkaian kemampuan yang Anda perlukan untuk membangun aplikasi AI generatif dengan keamanan, privasi, dan AI yang bertanggung jawab atau Model Fondasi JumpStart yang menawarkan model dasar canggih untuk kasus penggunaan seperti penulisan konten, pembuatan kode, menjawab pertanyaan, copywriting, ringkasan, klasifikasi, pengambilan informasi, dan banyak lagi

Rekayasa yang cepat dan penyempurnaan

Diagram berikut mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat dan penyesuaian.

mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat dan penyesuaian

Alur ini mirip dengan pola sebelumnya, yang sebagian besar bergantung pada rekayasa cepat, namun dengan alur tambahan penyesuaian pada kumpulan data khusus domain. LLM yang disempurnakan digunakan untuk menghasilkan kueri SQL dengan nilai kontekstual minimal untuk prompt. Untuk ini, Anda dapat menggunakan SageMaker JumpStart untuk menyempurnakan LLM pada kumpulan data khusus domain dengan cara yang sama seperti Anda melatih dan menerapkan model apa pun di Amazon SageMaker.

Rekayasa cepat dan RAG

Diagram berikut mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat dan RAG.

mengilustrasikan arsitektur untuk menghasilkan kueri dengan LLM menggunakan rekayasa cepat dan RAG

Dalam pola ini, kami menggunakan Pengambilan Augmented Generation menggunakan penyimpanan penyematan vektor, seperti Penyematan Amazon Titan or Kohere Sematkan, Pada Batuan Dasar Amazon dari katalog data pusat, seperti Lem AWS Katalog Data, database dalam suatu organisasi. Penyematan vektor disimpan dalam database vektor seperti Mesin Vektor untuk Amazon OpenSearch Tanpa Server, Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. vektor pg ekstensi, atau AmazonKendra. LLM menggunakan penyematan vektor untuk memilih database, tabel, dan kolom yang tepat dari tabel dengan lebih cepat saat membuat kueri SQL. Penggunaan RAG sangat membantu ketika data dan informasi relevan yang perlu diambil oleh LLM disimpan dalam beberapa sistem database terpisah dan LLM harus dapat mencari atau menanyakan data dari semua sistem yang berbeda ini. Di sinilah penyediaan penyematan vektor dari katalog data terpusat atau terpadu ke LLM menghasilkan informasi yang lebih akurat dan komprehensif yang dikembalikan oleh LLM.

Kesimpulan

Dalam postingan ini, kita membahas bagaimana kita dapat menghasilkan nilai dari data perusahaan menggunakan bahasa alami hingga pembuatan SQL. Kami mempelajari komponen utama, pengoptimalan, dan praktik terbaik. Kami juga mempelajari pola arsitektur mulai dari rekayasa cepat dasar hingga penyempurnaan dan RAG. Untuk mempelajari lebih lanjut, lihat Batuan Dasar Amazon untuk dengan mudah membangun dan menskalakan aplikasi AI generatif dengan model dasar


Tentang Penulis

Menghasilkan nilai dari data perusahaan: Praktik terbaik untuk Text2SQL dan AI generatif | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Randy De Fauw adalah Senior Principal Solutions Architect di AWS. Dia memegang gelar MSEE dari University of Michigan, tempat dia mengerjakan visi komputer untuk kendaraan otonom. Dia juga memegang gelar MBA dari Colorado State University. Randy telah memegang berbagai posisi di bidang teknologi, mulai dari rekayasa perangkat lunak hingga manajemen produk. Memasuki ruang Big Data pada tahun 2013 dan terus menjelajahi area tersebut. Dia aktif mengerjakan proyek di ruang ML dan telah mempresentasikan di berbagai konferensi termasuk Strata dan GlueCon.

Menghasilkan nilai dari data perusahaan: Praktik terbaik untuk Text2SQL dan AI generatif | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Nitin Eusebius adalah Sr. Enterprise Solutions Architect di AWS, berpengalaman dalam Rekayasa Perangkat Lunak, Arsitektur Perusahaan, dan AI/ML. Dia sangat bersemangat mengeksplorasi kemungkinan AI generatif. Dia berkolaborasi dengan pelanggan untuk membantu mereka membangun aplikasi yang dirancang dengan baik di platform AWS, dan berdedikasi untuk memecahkan tantangan teknologi dan membantu perjalanan cloud mereka.

Menghasilkan nilai dari data perusahaan: Praktik terbaik untuk Text2SQL dan AI generatif | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Arghya Banerjee adalah Sr. Solutions Architect di AWS di San Francisco Bay Area yang berfokus membantu pelanggan mengadopsi dan menggunakan AWS Cloud. Arghya berfokus pada Big Data, Data Lakes, Streaming, Batch Analytics, serta layanan dan teknologi AI/ML.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS