PolarDB for AI tidak hanya mencakup model besar bawaan, tetapi juga memungkinkan Anda membuat model kustom dan memuat model eksternal menggunakan pernyataan SQL. Topik ini menjelaskan operasi model, termasuk pembuatan, evaluasi, dan inferensi.
Ikhtisar model
Kategori | Deskripsi |
Built-in model | Anda dapat menjalankan pernyataan SQL di PolarDB untuk memanggil model AI besar bawaan guna menangani tugas analisis kompleks, tanpa perlu menyinkronkan data secara manual ke platform AI lainnya. Untuk informasi selengkapnya, lihat: |
Custom model | Jika model AI besar bawaan tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat model kustom yang telah disesuaikan (fine-tuned). Selain itu, PolarDB for AI mendukung menjalankan model dalam kontainer rahasia untuk meningkatkan keamanan data. Alur kerja untuk membuat model kustom adalah sebagai berikut: |
Buat model
Membuat model pembelajaran mesin. Proses ini bersifat asinkron, sehingga Anda perlu memeriksa status model untuk memastikan proses telah selesai.
Sintaks
CREATE MODEL model_name WITH ( model_class = '', x_cols = '', y_cols='',model_parameter=()) AS (SELECT select_expr [, select_expr] ... FROM table_reference)Parameter
Parameter | Deskripsi |
model_name | Nama model. |
model_class | Jenis model. Nilai yang valid:
|
x_cols | Kolom input. Catatan Pisahkan beberapa nama kolom dengan koma (,). |
y_cols | Kolom output. |
model_parameter | Parameter model.
|
select_expr | Nama kolom. |
table_reference | Nama tabel. |
Contoh
Buat model airlines_gbm.
/*polar4ai*/CREATE MODEL airlines_gbm WITH (model_class='lightgbm', x_cols ='Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length', y_cols='Delay',model_parameter=(boosting_type='gbdt', n_estimators=100, max_depth=8, num_leaves=256)) as (SELECT * FROM db4ai.airlines_train)Hasil contoh:
Query OK, 0 rows affected (0.79 sec)Tenerapkan model
Terapkan model yang telah diunggah ke platform PolarDB for AI. Penerapan yang berhasil akan membawa model ke mode online, sehingga memungkinkan inferensi model lebih cepat.
Sintaks
DEPLOY MODEL model_nameParameter
Parameter | Deskripsi |
model_name | Nama model yang akan diterapkan. |
Contoh
Terapkan model bernama my_model ke platform PolarDB for AI.
/*polar4ai*/ DEPLOY MODEL my_model;Contoh output:
Query OK, 0 rows affected (0.29 sec)Jalankan perintah berikut untuk memeriksa status model:
/*polar4ai*/ SHOW MODEL my_model;Contoh output:
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
| modelStatus | modelPath |
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
| serving | http://db4ai-collie-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/xxxxx.pkl?OSSAccessKeyId=xxxxxx&Expires=xxxx&Signature=xxxxxx |
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.23 sec)Status modelStatus bernilai serving menunjukkan penerapan berhasil.
Lihat model
Anda hanya dapat melihat model kustom dan model eksternal yang Anda buat atau unggah. Model bawaan di PolarDB for AI tidak dapat dilihat.
Daftar model
Menampilkan semua model kustom dan eksternal di kluster saat ini.
Sintaks
SHOW MODELSContoh
/*polar4ai*/SHOW MODELSBerikut ini adalah hasil contoh:
+-----------------------+-----------------+--------------+
| model_name | model_class | model_status |
+-----------------------+-----------------+--------------+
| airline_rfr | randomforestreg | saved |
| gbrt1 | gbrt | saved |
| airline_deepfm | deepfm | saved |
| airlines_gbm | lightgbm | saved |
| lgbm1 | lightgbm | saved |
| blackfriday_linearreg | linearreg | saved |
+-----------------------+-----------------+--------------+
6 rows in set (0.24 sec)Status model
Menampilkan status terkini suatu model. Setelah membuat model, Anda dapat menggunakan perintah ini untuk memeriksa apakah pelatihan telah selesai. Model dapat memiliki salah satu status berikut:
training: Model sedang dilatih.
loading_data: Data sedang dimuat untuk model.
trained: Model telah selesai dilatih.
saved: Model telah disimpan.
serving: Model telah diterapkan dan siap digunakan.
deleted: Model telah dihapus.
Sintaks
SHOW MODEL model_name Parameter
Parameter | Deskripsi |
model_name | Nama model. |
Contoh
Lihat status terkini model airlines_gbm.
/*polar4ai*/SHOW MODEL airlines_gbm;Berikut ini adalah hasil contoh:
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
| modelStatus | modelPath |
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
| saved | http://db4ai-collie-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/xxxxx.pkl?OSSAccessKeyId=xxxxxx&Expires=xxxx&Signature=xxxxxx |
+-------------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.23 sec)modelPath berlaku selama 100 menit. Anda dapat memeriksa parameter Expires di modelPath untuk memastikan tautan masih berlaku. Jika Anda perlu mengakses tautan tersebut, pastikan melakukannya sebelum masa berlaku habis.
Detail model
Sintaks
DESCRIBE MODEL model_nameParameter
Parameter | Deskripsi |
model_name | Nama model. |
Contoh
Lihat detail model airlines_gbm.
/*polar4ai*/DESCRIBE MODEL airlines_gbm;Berikut ini adalah hasil contoh:
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| model_name | model_description |
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| airlines_gbm | basic information:model_name:airlines_gbm model_class:lightgbm feature important:features,imp_gain,imp_splitAirline,0.3327,0.0376 AirportFrom,0.2178,0.1842 Time,0.1893,0.1999 AirportTo,0.1668,0.187 DayOfWeek,0.0384,0.1236 Length,0.0307,0.1269 Flight,0.0242,0.1408 |
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.65 sec)Evaluasi model
Menilai kinerja model yang telah dilatih.
Sintaks
SELECT select_expr [, select_expr] ... FROM EVALUATE (MODEL model_name, SELECT select_expr_for_prediction [, select_expr_for_prediction] ... FROM table_reference ) WITH (x_cols = '', y_cols='', metrics='')Parameter
Parameter | Deskripsi |
select_expr | Kolom yang akan ditampilkan dalam hasil evaluasi model. |
model_name | Nama model. |
select_expr_for_prediction | Kolom yang akan digunakan untuk evaluasi model. |
table_reference | Nama tabel. |
x_cols | Kolom input yang digunakan untuk membuat model. Pisahkan beberapa nama kolom dengan koma (,). |
y_cols | Kolom output yang digunakan untuk membuat model. |
metrics | Metrik evaluasi. Nilai yang valid:
|
Contoh
Gunakan model
airlines_gbmyang telah dibuat untuk melakukan evaluasi model./*polar4ai*/SELECT Delay FROM evaluate(MODEL airlines_gbm, SELECT * FROM db4ai.airlines_test) WITH (x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length', y_cols='Delay', metrics='acc');Hasil contoh:
+--------------------------------------+ | task_id | +--------------------------------------+ | df05244e-21f7-11ed-be66-xxxxxxxxxxxx | +--------------------------------------+ 1 row in set (0.95 sec)Gunakan perintah berikut untuk memeriksa status tugas.
/*polar4ai*/SHOW TASK `df05244e-21f7-11ed-be66-xxxxxxxxxxxx`;Hasil contoh:
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ | taskStatus | filePath | results | startTime | endTime | +------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ | finish | http://db4ai-collie-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/pc-xxxxxxx/airlines_gbm/xxxxx.csv?OSSAccessKeyId=xxxxxx&Expires=xxxx&Signature=xxxxxx | {"acc": 0.6694} | 2022-08-22 17:22:21.122101 | 2022-08-22 17:22:39.428811 | +------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ 1 row in set (0.24 sec)CatatanfilePathberlaku selama 100 menit. Anda dapat memeriksa parameterExpiresdifilePathuntuk memastikan tautan masih berlaku. Jika Anda perlu mengakses tautan tersebut, lakukanlah dalam periode validitasnya.
Inferensi model
Gunakan model yang telah dilatih untuk melakukan inferensi online atau offline.
Sintaks
SELECT select_expr [, select_expr] ... FROM PREDICT (MODEL model_name, SELECT select_expr_for_prediction [, select_expr_for_prediction] ... FROM table_reference LIMIT row_count) WITH (x_cols= '')Parameter
Parameter | Deskripsi |
select_expr | Menentukan kolom yang akan ditampilkan dalam hasil inferensi model. |
model_name | Menentukan nama model. |
select_expr_for_prediction | Menentukan kolom data masukan yang akan digunakan untuk inferensi. |
table_reference | Menentukan tabel masukan. |
mode | Menentukan mode inferensi. Atur parameter ini ke async untuk melakukan inferensi offline. Jika Anda menghilangkan parameter ini, sistem akan melakukan inferensi online. |
row_count | Menentukan jumlah sampel yang akan digunakan untuk inferensi. |
x_cols | Menentukan kolom input untuk model. Pisahkan beberapa nama kolom dengan koma (,). |
Contoh
Inferensi online
Gunakan model
airlines_gbmuntuk melakukan inferensi online./*polar4ai*/SELECT Delay FROM PREDICT(MODEL airlines_gbm, SELECT * FROM db4ai.airlines_test LIMIT 10) WITH (x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length', y_cols='Delay');Berikut ini adalah hasil contoh:
+-------+-------------------+ | Delay | predicted_results | +-------+-------------------+ | 1 | 0 | | 0 | 0 | | 0 | 0 | | 0 | 0 | | 0 | 0 | | 0 | 0 | | 1 | 0 | | 0 | 0 | | 0 | 0 | | 1 | 0 | +-------+-------------------+ 10 rows in set (0.74 sec)Inferensi offline
Jika Anda menjalankan inferensi pada lebih dari 1.000 sampel, PolarDB for AI akan mengembalikan error berikut:
ERROR 9050 (HY000): Please limit the SQL selected data length to less than '1000' or convert to offline predictionUntuk membuat tugas offline, jalankan pernyataan berikut:
/*polar4ai*/SELECT Delay FROM predict(MODEL airlines_gbm, SELECT * FROM db4ai.airlines_test) WITH (x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length', y_cols='Delay', mode='async');Berikut ini adalah hasil contoh:
+--------------------------------------+ | task_id | +--------------------------------------+ | bd0c1722-21e7-11ed-94a8-xxxxxxxxxxxx | +--------------------------------------+ 1 row in set (0.75 sec)Kueri ini mengembalikan
task_idtugas tersebut. Anda dapat menggunakan ID tugas ini untuk menanyakan status tugas dan URL unduhan hasilnya./*polar4ai*/SHOW TASK `bd0c1722-21e7-11ed-94a8-xxxxxxxxxxxx`Berikut ini adalah hasil contoh:
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ | taskStatus | filePath | results | startTime | endTime | +------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ | finish | http://db4ai-collie-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/pc-xxxxxxx/airlines_gbm/xxxxx.csv?OSSAccessKeyId=xxxxxx&Expires=xxxx&Signature=xxxxxx | | 2022-08-22 14:57:51.355240 | 2022-08-22 14:58:18.316818 | +------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+ 1 row in set (0.24 sec)CatatanfilePathberlaku selama 100 menit. Anda dapat memeriksa parameterExpiresdifilePathuntuk memastikan tautan masih berlaku. Jika Anda perlu mengakses tautan tersebut, lakukanlah dalam periode validitasnya.
Evaluasi dan inferensi offline
Tugas offline adalah tugas pemrosesan batch jangka panjang yang tidak mengembalikan hasil secara real time. Tugas offline mencakup evaluasi offline dan inferensi offline.
Lihat tugas
Lihat semua tugas offline di kluster saat ini.
Sintaks
SHOW TASKSContoh
Jalankan perintah berikut untuk melihat semua tugas offline di kluster saat ini.
/*polar4ai*/SHOW TASKS;Berikut ini adalah hasil contoh:
+--------------------------------------+------------+-------------+----------------------------+----------------------------+
| task_id | task_type | task_status | start_timestr | end_timestr |
+--------------------------------------+------------+-------------+----------------------------+----------------------------+
| 2cba0c74-1f8f-11ed-934a-xxxxxxxxxxxx | prediction | finish | 2022-08-19 15:18:51.206829 | |
| 77b3a186-1f94-11ed-8eaa-xxxxxxxxxxxx | evaluation | finish | 2022-08-19 15:56:44.465594 | |
| 972547a4-1fa3-11ed-9c6b-xxxxxxxxxxxx | evaluation | finish | 2022-08-19 17:44:59.790353 | 2022-08-19 17:45:23.750100 |
| bd0c1722-21e7-11ed-94a8-xxxxxxxxxxxx | prediction | finish | 2022-08-22 14:57:51.355240 | 2022-08-22 14:58:18.316818 |
| df05244e-21f7-11ed-be66-xxxxxxxxxxxx | evaluation | finish | 2022-08-22 16:53:20.381577 | 2022-08-22 16:53:37.189953 |
| ec956db8-21fb-11ed-8400-xxxxxxxxxxxx | evaluation | finish | 2022-08-22 17:22:21.122101 | 2022-08-22 17:22:39.428811 |
+--------------------------------------+------------+-------------+----------------------------+----------------------------+
9 rows in set (0.18 sec)Lihat status tugas
Tugas offline dapat memiliki salah satu status berikut:
init: Tugas sedang diinisialisasi.running: Tugas sedang berjalan.finish: Tugas telah selesai.fail: Tugas gagal.
Sintaks
SHOW TASK `task_id` Parameter
Parameter | Deskripsi |
task_id | ID tugas. |
Contoh
Jalankan perintah berikut untuk melihat status tugas dengan ID df05244e-21f7-11ed-be66-xxxxxxxxxxxx.
/*polar4ai*/SHOW TASK `df05244e-21f7-11ed-be66-xxxxxxxxxxxx`Berikut ini adalah hasil contoh:
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+
| taskStatus | filePath | results | startTime | endTime |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+
| finish | http://db4ai-collie-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/pc-xxxxxxx/airlines_gbm/xxxxx.csv?OSSAccessKeyId=xxxxxx&Expires=xxxx&Signature=xxxxxx | {"acc": 0.6694} | 2022-08-22 17:22:21.122101 | 2022-08-22 17:22:39.428811 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------------------+----------------------------+
1 row in set (0.24 sec)filePath berlaku selama 100 menit. Anda dapat memeriksa parameter Expires di filePath untuk memastikan tautan masih berlaku. Jika Anda perlu mengakses tautan tersebut, lakukanlah dalam periode validitasnya.
Hapus tugas
Sintaks
DROP TASK `task_id` Parameter
Parameter | Deskripsi |
task_id | ID tugas. |
Contoh
Hapus tugas dengan ID df05244e-21f7-11ed-be66-xxxxxxxxxxxx.
/*polar4ai*/DROP TASK `df05244e-21f7-11ed-be66-xxxxxxxxxxxx`Hapus model
Gunakan pernyataan ini untuk menghapus model yang tidak lagi Anda perlukan.
Sintaks
DROP MODEL model_nameParameter
Parameter | Deskripsi |
model_name | Nama model. |
Contoh
Hapus model airlines_gbm.
/*polar4ai*/DROP MODEL airlines_gbmPenghapusan model airlines_gbm yang berhasil menghasilkan output berikut:
Query OK, 0 rows affected (0.57 sec)Alibaba Cloud hanya bertanggung jawab atas pemeliharaan arsitektur dasar dan sistem operasi yang disediakan. Anda bertanggung jawab atas komponen di atas sistem operasi, seperti aplikasi yang Anda instal. Anda tetap mengendalikan lingkungan runtime untuk instans Anda. Selain itu, memutakhirkan sistem operasi sendiri dapat menyebabkan efek negatif, termasuk downtime. Anda bertanggung jawab untuk memahami risiko tersebut dan mengambil tindakan pencegahan yang diperlukan.