All Products
Search
Document Center

PolarDB:Praktik terbaik Data-Agent

Last Updated:Dec 12, 2025

ChatBI menggunakan teknologi natural language to SQL (NL2SQL) untuk menghasilkan laporan dari kueri dalam bahasa alami. Topik ini menunjukkan fitur utama ChatBI menggunakan sistem manajemen restoran fiktif, "Ali Xiang", guna membantu Anda memanfaatkan layanan ini secara cepat dan efisien.

Aktifkan fitur PolarDB for AI

  1. Tambahkan node AI dan atur akun database-nya. Untuk informasi selengkapnya, lihat Aktifkan fitur PolarDB for AI.

    Catatan
    • Jika Anda telah menambahkan node AI saat membeli kluster, Anda dapat langsung mengatur akun database untuk node AI tersebut. Untuk informasi selengkapnya, lihat Buat akun standar.

    • Akun tersebut harus memiliki izin baca dan tulis untuk mengakses tabel data target serta menjalankan operasi database yang diperlukan oleh ChatBI.

  2. Hubungkan ke kluster PolarDB menggunakan Cluster Endpoint. Untuk informasi selengkapnya, lihat Masuk ke PolarDB for AI.

    Catatan
    • Saat menghubungkan ke kluster dari command line, tambahkan opsi -c.

    • Secara default, DMS menghubungkan ke kluster menggunakan Primary Endpoint. Anda harus mengubah endpoint tersebut secara manual ke Cluster Endpoint. Setelah itu, tutup jendela SQL saat ini dan buka jendela baru untuk menjalankan pernyataan SQL Anda.

Persiapan data

"Ali Xiang" adalah perusahaan restoran fiktif. Sistem manajemen tagihannya berisi tiga tabel seperti di bawah ini, yang dapat Anda unduh.

Tambahkan komentar pada tabel dan kolom Anda berdasarkan skema tabel Anda. Hal ini membantu model bahasa besar (LLM) lebih baik mengenali dan memahami data Anda, sehingga meningkatkan akurasi dan efisiensi model selama pemrosesan dan analisis data.
CREATE TABLE restaurant_info (
  id INT COMMENT 'ID outlet',
  position VARCHAR(128) COMMENT 'Lokasi outlet',
  PRIMARY KEY (id)
) COMMENT='Tabel outlet';

CREATE TABLE menu_info (
  id INT COMMENT 'ID hidangan',
  name VARCHAR(64) COMMENT 'Nama hidangan',
  type INT COMMENT 'Jenis hidangan',
  unit_price INT COMMENT 'Harga satuan hidangan',
  PRIMARY KEY (id)
) COMMENT='Tabel menu';

CREATE TABLE bill_info (
  id INT COMMENT 'ID tagihan',
  items VARCHAR(512) COMMENT 'Hidangan yang dipesan',
  actural_amount INT COMMENT 'Jumlah yang dibayarkan',
  restaurant_id INT COMMENT 'Outlet makan',
  waiter VARCHAR(16) COMMENT 'Pelayan',
  diner_count INT COMMENT 'Jumlah tamu',
  pay_time DATE COMMENT 'Waktu pemesanan',
  PRIMARY KEY (id)
) COMMENT='Tabel tagihan';

Gunakan ChatBI

Anda sekarang dapat menggunakan model NL2SQL PolarDB for AI untuk menghasilkan pernyataan SQL yang sesuai dengan pertanyaan pengguna.

Buat indeks skema tabel

Jalankan pernyataan SQL berikut untuk membuat tabel indeks skema bernama schema_index. Tabel ini menyediakan informasi skema tabel kepada LLM.

/*polar4ai*/CREATE TABLE schema_index(id integer, table_name varchar, table_comment text_ik_max_word, table_ddl text_ik_max_word, column_names text_ik_max_word, column_comments text_ik_max_word, sample_values text_ik_max_word, vecs vector_768,ext text_ik_max_word, PRIMARY key (id));

Tabel ini tidak langsung terlihat di database. Untuk melihat informasinya, jalankan pernyataan SQL berikut.

/*polar4ai*/SHOW TABLES;

Selanjutnya, jalankan pernyataan SQL berikut untuk mengimpor skema tabel data ke dalam tabel indeks schema_index.

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_text2vec, SELECT '') WITH (mode='async', resource='schema') INTO schema_index;

Saat menjalankan pernyataan tersebut, PolarDB for AI melakukan vektorisasi terhadap semua tabel di database saat ini dan mengambil sampel nilai kolom secara default.

Setelah menjalankan pernyataan tersebut, sebuah task_id untuk tugas latar belakang, seperti bce632ea-97e9-11ee-bdd2-492f4dfe0918, dikembalikan. Jalankan pernyataan SQL berikut untuk menanyakan status tugas tersebut. Pembuatan indeks selesai ketika taskStatus bernilai finish.

/*polar4ai*/SHOW TASK `bce632ea-97e9-11ee-bdd2-492f4dfe0918`;

Jawab pertanyaan menggunakan model NL2SQL

Jalankan pernyataan SQL berikut untuk menggunakan fitur NL2SQL berbasis LLM secara online. Dalam contoh ini, pertanyaan pengguna adalah Berapa total pendapatan minggu ini, dan indeks skema tabelnya adalah schema_index.

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'What is the total income for this week') WITH (basic_index_name='schema_index');

Database memerlukan waktu untuk memproses permintaan dan mengambil respons dari LLM. Hasil yang diharapkan ditunjukkan di bawah ini:

image

Berdasarkan contoh sebelumnya, Anda dapat mengajukan pertanyaan khas lainnya. Pertanyaan-pertanyaan ini mencakup berbagai skenario, seperti GROUP BY, JOIN multi-tabel, ORDER BY, dan formula.

No. Pertanyaan

Pertanyaan pengguna

Nilai kembali NL2SQL

1

Urutkan outlet berdasarkan pendapatan

SELECT restaurant_id, SUM(actural_amount) AS total_income FROM bill_info GROUP BY restaurant_id ORDER BY total_income DESC;

2

Outlet mana di Shanghai yang memiliki pendapatan tertinggi?

SELECT b.restaurant_id FROM restaurant_info r JOIN bill_info b ON r.id = b.restaurant_id WHERE r.position LIKE '%Shanghai%' GROUP BY r.position ORDER BY SUM(b.actural_amount) DESC LIMIT 1;

3

Berapa rata-rata pengeluaran per orang di Shanghai?

SELECT AVG(bill_info.actural_amount / bill_info.diner_count) AS average_consumption_per_person FROM bill_info WHERE bill_info.restaurant_id IN (SELECT id FROM restaurant_info WHERE position = 'Shanghai');

4

Apa sepuluh hidangan yang paling sering dipesan bulan ini?

SELECT mi.name, SUM(bi.items) as total_orders FROM bill_info bi JOIN menu_info mi ON bi.items = mi.id WHERE bi.pay_time >= '2024-10-01' AND bi.pay_time < '2024-11-01' GROUP BY mi.name ORDER BY total_orders DESC LIMIT 10;

5

Berapa persentase pertumbuhan pendapatan bulan ke bulan bulan ini dibandingkan bulan lalu?

SELECT (SUM(CASE WHEN MONTH(pay_time) = 10 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END) - SUM(CASE WHEN MONTH(pay_time) = 9 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END)) / SUM(CASE WHEN MONTH(pay_time) = 9 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END) * 100 AS growth_percentage FROM bill_info;

6

Outlet mana di Shanghai yang memiliki trafik pelanggan tertinggi?

SELECT r.position, COUNT(b.id) AS customer_flow FROM restaurant_info r JOIN bill_info b ON r.id = b.restaurant_id WHERE r.position LIKE '%Shanghai%' GROUP BY r.id ORDER BY customer_flow DESC LIMIT 1;

Model NL2SQL berbasis LLM menjawab pertanyaan pengguna dengan baik, tetapi beberapa respons mungkin tidak sesuai harapan. Misalnya, pada pertanyaan kedua, pengguna menginginkan nama outlet. Jika Anda mengubah redaksi pertanyaannya menjadi Outlet mana di Shanghai yang memiliki pendapatan tertinggi? Harap kembalikan nama outletnya., model akan mengembalikan pernyataan SQL berikut: SELECT r.name FROM bill_info b JOIN restaurant_info r ON b.restaurant_id = r.id WHERE r.position = 'Shanghai' ORDER BY b.actural_amount DESC LIMIT 1;. Anda juga dapat melakukan fine-tuning pada model untuk meningkatkan akurasinya. Bagian berikut menjelaskan cara mengatasi masalah-masalah tersebut.

Lakukan fine-tuning pada model

Konfigurasikan templat pertanyaan

Anda dapat menggunakan templat pertanyaan umum untuk memandu model. Templat ini menyediakan pengetahuan spesifik untuk membantu model menghasilkan pernyataan SQL.

  1. Jalankan pernyataan SQL berikut untuk membuat tabel templat pertanyaan polar4ai_nl2sql_pattern.

    CREATE TABLE `polar4ai_nl2sql_pattern` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Kunci primer',
      `pattern_question` text COMMENT 'Pertanyaan templat',
      `pattern_description` text COMMENT 'Deskripsi templat',
      `pattern_sql` text COMMENT 'SQL templat',
      `pattern_params` text COMMENT 'Parameter templat',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

    Nama tabel harus diawali dengan polar4ai_nl2sql_pattern. Skema tabel harus mencakup lima kolom dari pernyataan `CREATE TABLE` tersebut.

  2. Selanjutnya, buat tabel indeks pattern_index untuk templat pertanyaan.

    /*polar4ai*/CREATE TABLE pattern_index(id integer, pattern_question 
    text_ik_max_word, pattern_description text_ik_max_word, pattern_sql 
    text_ik_max_word, pattern_params text_ik_max_word, pattern_tables 
    text_ik_max_word, vecs vector_768, PRIMARY key (id));

    Untuk melakukan fine-tuning pada model, konfigurasikan templat untuk pertanyaan kedua. Tujuannya adalah mengembalikan nama outlet.

    Jalankan pernyataan SQL berikut untuk menambahkan pola baru:

    INSERT INTO polar4ai_nl2sql_pattern (id, pattern_question, pattern_description, pattern_sql, pattern_params) VALUES (
      1, 
      "Which outlet in #{position} has the highest income?", 
      "Which outlet in [location] has the highest income?", 
      "SELECT r.position FROM bill_info b JOIN restaurant_info r ON b.restaurant_id = r.id WHERE r.position LIKE '%#{position}%' ORDER BY b.actural_amount DESC LIMIT 1;", 
      '[{"table_name":"bill_info","param_info":[{"param_name":"#{position}","value":["Shanghai"]}], "explanation": "Consumption location"}]'
    );

    Pola ini menggunakan slot untuk mencocokkan berbagai lokasi. Di kolom pattern_sql, masukkan pernyataan SQL yang benar dan tandai slot dengan #{}. Kolom pattern_params digunakan untuk post-processing tambahan informasi tabel, tetapi Anda dapat mengabaikannya di sini.

  3. Selanjutnya, impor informasi templat pertanyaan ke dalam tabel indeks.

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_text2vec, SELECT '') WITH (mode='async', resource='pattern') INTO pattern_index;

    Seperti proses pembuatan tabel schema_index, sebuah task ID dikembalikan. Anda dapat memeriksa status tugas dengan menjalankan /*polar4ai*/show task 'xxx-xxx-xxx'.

    Catatan

    Jika data di tabel polar4ai_nl2sql_pattern diperbarui, Anda harus membuat ulang pattern_index dan mengimpor data lagi. Gunakan pernyataan SQL berikut untuk menghapus tabel indeks lama:

    /*polar4ai*/DROP TABLE pattern_index;

    Jalankan ulang pernyataan SQL yang bermasalah dan tambahkan petunjuk pattern_index.

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'Which outlet in Shanghai has the highest income?') WITH 
    (basic_index_name='schema_index',pattern_index_name='pattern_index');

    5eecdaf48460cde5ad9d83d5444ce71cd140b5a7e9b23e1258e70b814913bc360a414d3de9277d871abf3af1cbd75249c0734e6846e794467f339bd1442daeacb6461bc7ea938f09d4a6c8551d30df66760f3fe7627db0a6fc653b69905bac42

Buat tabel konfigurasi

Jika Anda ingin melakukan pre-processing pada pertanyaan atau post-processing pada SQL yang dihasilkan, Anda dapat menggunakan tabel konfigurasi.

Petunjuk makna kosakata

Pada pertanyaan keenam, LLM tidak dapat menginterpretasikan istilah "customer traffic" secara akurat. Anda dapat mengonfigurasi tabel polar4ai_nl2sql_llm_config untuk melakukan pre-processing terhadap istilah ini.

CREATE TABLE `polar4ai_nl2sql_llm_config` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Kunci primer',
  `is_functional` int(11) NOT NULL DEFAULT '1' COMMENT 'Apakah aktif',
  `text_condition` text COMMENT 'Kondisi teks',
  `query_function` text COMMENT 'Pemrosesan kueri',
  `formula_function` text COMMENT 'Informasi formula',
  `sql_condition` text COMMENT 'Kondisi SQL',
  `sql_function` text COMMENT 'Pemrosesan SQL',
  PRIMARY KEY (`id`)
);

Anda dapat memasukkan item konfigurasi untuk menginstruksikan Large Language Model (LLM) agar menghitung "customer traffic" atau "customer flow" sebagai jumlah tamu.

INSERT INTO polar4ai_nl2sql_llm_config (id, is_functional, text_condition, query_function, formula_function, sql_condition, sql_function) VALUES (
  1, 
  1, 
  "customer traffic||customer flow", 
  "", 
  "Customer traffic or customer flow is counted as the sum of the number of diners", 
  "", 
  ""
);

Nilai 1 untuk is_functional menunjukkan bahwa item konfigurasi tersebut aktif. Nilai kolom text_condition "customer traffic||customer flow" mencocokkan pertanyaan yang mengandung "customer traffic" atau "customer flow". Kolom formula_function menggunakan teks atau formula untuk menjelaskan makna istilah teknis kepada LLM.

Dalam kasus ini, Anda dapat langsung menjalankan pembuatan SQL tanpa perlu membuat tabel indeks atau melakukan vektorisasi. Hasilnya ditunjukkan di bawah ini.

image

Petunjuk pencarian fuzzy

Pada pertanyaan ketiga, pencocokan nama tempat dengan operator = mungkin gagal. Anda dapat menambahkan item konfigurasi berikut untuk memberi petunjuk bahwa pencarian fuzzy harus digunakan untuk pencocokan nama tempat.

INSERT INTO polar4ai_nl2sql_llm_config (id, is_functional, text_condition, query_function, formula_function, sql_condition, sql_function) VALUES (
  2, 
  1, 
  "", 
  "", 
  "Matching for the outlet location 'position' requires a fuzzy search", 
  "", 
  ""
);

Di sini, text_condition kosong, yang berarti item konfigurasi ini berlaku secara global. Gunakan dengan hati-hati.

Hasilnya ditunjukkan di bawah ini. Pencocokan lokasi sekarang menggunakan pencarian fuzzy dengan benar.

image

Demikian pula, untuk pertanyaan kelima, Anda dapat menambahkan formula perhitungan untuk "month-over-month" dan "year-over-year" ke dalam tabel polar4ai_nl2sql_llm_config. Hal ini meningkatkan presisi SQL yang dihasilkan. Anda dapat mencoba sendiri sebagai tantangan.

Output grafik

Setelah NL2SQL menghasilkan pernyataan SQL, Anda dapat memvisualisasikan hasil kueri sebagai grafik, seperti grafik batang, garis, atau lingkaran. Fitur PolarDB NL2Chart dapat menghasilkan laporan berbasis grafik dari pertanyaan Anda dan pernyataan SQL tersebut. Fitur ini mendukung grafik batang, lingkaran, dan garis.

  1. Asumsikan kueri Anda untuk NL2SQL adalah sebagai berikut:

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'Merchant type statistics') WITH (basic_index_name='schema_index',pattern_index_name='pattern_index');

    Pernyataan SQL berikut dihasilkan. Pastikan pernyataan SQL tersebut dijalankan dan mengembalikan hasil yang tidak kosong:

    SELECT merchtype AS merchant_type,COUNT(*) AS product_count FROM hkrt_merchant_info GROUP BY merchtype;
  2. Gunakan NL2Chart:

    Sintaks

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, <SQL_statement>) WITH (usr_query = <usr_query>, result_type = <result_type>);

    Deskripsi parameter

    Parameter

    Deskripsi

    Contoh

    usr_query

    Pertanyaan pengguna. Ini menjelaskan persyaratan untuk menghasilkan grafik.

    "Sales statistics for each quarter of 2023"

    result_type

    Menentukan jenis hasil. Saat ini hanya 'IMAGE' yang didukung.

    'IMAGE'

    SQL statement

    Pernyataan kueri SQL yang dihasilkan oleh modul NL2SQL untuk mengambil data.

    SELECT quarter, sales FROM sales_data WHERE year = 2023

    Contoh: Ubah hasil kueri dari pernyataan SQL yang dihasilkan menjadi grafik

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, SELECT merchtype AS merchant_type, COUNT(*) AS merchant_count FROM hkrt_merchant_info GROUP BY merchtype) WITH (usr_query = 'Merchant type statistics', result_type='IMAGE');

    Hasilnya sebagai berikut:

    Catatan

    Tautan yang dikembalikan adalah URL citra yang berlaku selama 90 menit.

    http://db4ai-xxx-xx-xxxx-xxx-xxxx.aliyuncs.com/pc-bpze47ma2c515087l6/OSSAccessKeyId=xxxxxxx&Expires=1716130199&Signature=KvPFzfMebIEmqxPIXURurwwbsXM%3D

    image.png

  3. (Opsional) Pilih atau paksa jenis grafik tertentu

    Model memilih grafik yang sesuai berdasarkan pemahamannya terhadap pertanyaan pengguna dan data. Anda dapat memandu model dengan cara merumuskan pertanyaan pengguna.

    Tabel berikut menunjukkan pemetaan antara jenis pertanyaan dan jenis grafik:

    Jenis pertanyaan

    Jenis grafik

    Contoh pertanyaan pengguna

    Deskripsi

    Statistik jumlah

    Grafik batang

    "Please provide statistics on sales by city"

    Menunjukkan perbandingan nilai numerik antar kategori berbeda, seperti jumlah, total, atau frekuensi.

    Perubahan tren

    Grafik garis

    "Please show the user growth trend over the past year"

    Menunjukkan bagaimana data berubah seiring waktu atau di antara kategori berurutan, menekankan kontinuitas.

    Distribusi proporsi

    Grafik lingkaran

    "Please show the sales proportion of each product line"

    Cocok untuk menunjukkan hubungan proporsional bagian terhadap keseluruhan. Datanya harus bersifat kategorikal dan memiliki total yang jelas.

    Anda dapat memaksa jenis grafik tertentu dengan mengubah parameter usr_query. Tambahkan perintah tambahan di akhir parameter usr_query:

    -- Input the output SQL into nl2chart to draw a line chart
    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
    SELECT merchtype AS merchant_type, COUNT(*) AS merchant_count FROM hkrt_merchant_info GROUP BY merchtype
    ) WITH (usr_query = 'Merchant type statistics, draw a line chart', result_type='IMAGE');

    image.png

    -- Input the output SQL into nl2chart to draw a pie chart
    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
    SELECT merchtype AS merchant_type, COUNT(*) AS merchant_count FROM hkrt_merchant_info GROUP BY merchtype
    ) WITH (usr_query = 'Merchant type statistics, draw a pie chart', result_type='IMAGE');

    image.png

Untuk informasi selengkapnya, lihat Natural language to intelligent chart (NL2Chart).

Latih ulang dan fine-tune model

Jika model tidak memenuhi kebutuhan bisnis Anda, Anda dapat melatih ulang dan melakukan fine-tuning pada parameter internalnya untuk mendapatkan hasil yang lebih baik.

Kondisi

  • Fitur ini hanya didukung pada kluster dengan node AI spesifikasi polar.mysql.x8.2xlarge.gpu (16-core, 125 GB, satu GU100).

  • Anda hanya dapat melatih satu model dalam satu waktu.

  • Anda hanya dapat menerapkan satu model dalam satu waktu.

Petunjuk

Latih model

/*polar4ai*/CREATE MODEL udf_qwen14b WITH (model_class='qwen-turbo', model_parameter=(basic_index_name='schema_index', pattern_index_name='pattern_index',training_type='efficient_sft')) as (SELECT '')

Deskripsi parameter

Parameter

Deskripsi

Default

Nilai valid/Rentang

model_class

Jenis model. Saat ini, 'qwen-14b-chat' dan 'qwen-turbo' didukung.

None

{'qwen-14b-chat', 'qwen-turbo'}

model_parameter

Pengaturan parameter model, termasuk parameter wajib dan opsional.

None

None

basic_index_name

Nama tabel indeks tempat informasi database dalam data pelatihan diambil sampelnya. Ini harus berupa tabel indeks database.

None

None

pattern_index_name

Nama tabel indeks tempat informasi templat pertanyaan dalam data pelatihan diambil sampelnya. Ini harus berupa tabel indeks templat pertanyaan.

None

None

training_type

Jenis pelatihan. Nilai valid adalah 'efficient_sft' dan 'sft'. 'efficient_sft' menunjukkan pelatihan efisien, biasanya menggunakan LoRa. 'sft' menunjukkan pelatihan parameter penuh.

None

{'efficient_sft', 'sft'}

n_epochs

Jumlah epoch. Ini adalah jumlah kali model belajar dari set data selama pelatihan. Rentang 1 hingga 3 direkomendasikan, tetapi Anda dapat menyesuaikannya sesuai kebutuhan.

3

[1, 200]

learning_rate

Tingkat pembelajaran. Ini merepresentasikan bobot inkremental untuk setiap pembaruan data. Tingkat pembelajaran yang lebih besar menghasilkan perubahan parameter yang lebih besar dan berdampak lebih besar pada model.

'3e-4'

None

batch_size

Ukuran batch. Ini merepresentasikan ukuran langkah data untuk memperbarui parameter model. Ukuran batch 16 atau 32 direkomendasikan.

16

{8, 16, 32}

lr_scheduler_type

Jenis penjadwal tingkat pembelajaran. Ini mengubah tingkat pembelajaran secara dinamis yang digunakan saat memperbarui bobot selama pelatihan.

'linear'

{'linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup', 'inverse_sqrt', 'reduce_lr_on_plateau'}

eval_steps

Ukuran langkah interval untuk validasi model. Ini digunakan untuk mengevaluasi akurasi dan loss pelatihan secara berkala.

50

[1, 2147483647]

sequence_length

Panjang urutan data pelatihan. Ini adalah panjang maksimum satu sampel. Data yang melebihi panjang ini dipotong secara otomatis.

2048

[500, 2048]

lr_warmup_ratio

Rasio langkah pemanasan terhadap jumlah total langkah pelatihan.

0.05

(0, 1)

weight_decay

Regularisasi L2, yang membantu mengurangi overfitting.

0.01

(0, 0.2)

gradient_checkpointing

Mengaktifkan atau menonaktifkan gradient checkpointing untuk menghemat Memori GPU.

'True'

{'True', 'False'}

use_flash_attn

Menentukan apakah akan menggunakan Flash Attention.

'True'

{'True', 'False'}

lora_rank

Rank dalam pelatihan LoRa. Ini memengaruhi sejauh mana data pelatihan memengaruhi model.

8

{2, 4, 8, 16, 32, 64}

lora_alpha

Faktor penskalaan dalam pelatihan LoRa. Ini digunakan untuk menyesuaikan bobot pelatihan awal.

32

{8, 16, 32, 64}

lora_dropout

Rasio neuron yang di-drop secara acak selama pelatihan. Ini mencegah overfitting dan meningkatkan kemampuan generalisasi model.

0.1

(0, 0.2)

lora_target_modules

Memilih modul spesifik model untuk fine-tuning.

'ALL'

{'ALL', 'AUTO'}

Lihat model

/*polar4ai*/SHOW model udf_qwen14b

Hapus model

/*polar4ai*/DROP model udf_qwen14b

Lihat semua model

/*polar4ai*/SHOW models

Penerapan model

Model yang telah dilatih harus diterapkan sebelum dapat digunakan dalam NL2SQL.

/*polar4ai*/deploy model udf_qwen14b

Lihat penerapan

/*polar4ai*/SHOW deployment udf_qwen14b

Hapus penerapan

/*polar4ai*/DROP deployment udf_qwen14b

Lihat semua penerapan

/*polar4ai*/SHOW deployments

Gunakan model yang diterapkan untuk bahasa alami ke SQL

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, SELECT 'What is the content for id 1?') WITH (basic_index_name='schema_index', llm_model='udf_qwen14b')
Deskripsi parameter

Parameter

Deskripsi

basic_index_name

Wajib. Tabel indeks untuk informasi database yang terkait dengan pertanyaan saat ini.

llm_model

Opsional. Jika Anda biarkan kosong, sistem memanggil model tanpa fine-tuning untuk NL2SQL. Jika Anda menentukan nilai, pastikan itu adalah nama penerapan yang berada dalam status "serving". Model yang belum sepenuhnya diterapkan tidak dapat digunakan.

FAQ

Terjadi error saat menjalankan pernyataan SQL di platform DMS.

DMS secara default menghubungkan ke kluster menggunakan Primary Endpoint. Anda harus mengubahnya secara manual ke Cluster Endpoint. Setelah melakukan perubahan tersebut, tutup jendela SQL saat ini dan buka jendela baru untuk menjalankan pernyataan SQL Anda. Untuk informasi selengkapnya, lihat Masuk ke PolarDB for AI.

Pesan error: 2003 - Execute sql failed in ai db.

  1. Konfirmasi bahwa Anda menggunakan akun database untuk node AI dan memiliki izin baca dan tulis. Untuk informasi selengkapnya, lihat Aktifkan fitur PolarDB for AI.

  2. Jika Anda menggunakan DMS, setelah mengubah koneksi ke Cluster Endpoint, tutup jendela SQL saat ini dan buka jendela baru untuk menjalankan pernyataan SQL Anda. Untuk informasi selengkapnya, lihat Masuk ke PolarDB for AI.

  3. Periksa pernyataan SQL terhadap karakter khusus. Coba hapus komentar, jeda baris, dan indentasi.

Pesan error: 9050 - Empty data 'polar4ai_nl2sql_pattern'.

Error ini menunjukkan bahwa tabel polar4ai_nl2sql_pattern kosong. Jika tidak ada pola yang tersedia, Anda tidak perlu mengimpor data untuk vektorisasi.

Terjadi error saat menjalankan data2chart: 1149 - You have an error in your SQL syntax;.

Error ini dapat disebabkan oleh berbagai hal. Ikuti langkah-langkah berikut untuk memecahkan masalah:

  1. Periksa nama kolom: Konfirmasi bahwa tidak ada kata kunci atau nama fungsi yang digunakan sebagai nama kolom dalam pernyataan SQL.

  2. Masukkan pernyataan SQL sebagai string: Pastikan pernyataan SQL dimasukkan ke dalam database sebagai string.

  3. Ambil SQL menggunakan parameter sql_fetching: Gunakan parameter `sql_fetching` untuk mengambil pernyataan SQL untuk pembuatan.