Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan Amazon Redshift ML
Amazon Redshift ML memudahkan pengguna SQL untuk membuat, melatih, dan menerapkan model pembelajaran mesin menggunakan perintah SQL yang sudah dikenal. Dengan Amazon Redshift ML, Anda dapat menggunakan data Anda di cluster Redshift Anda untuk melatih model dengan Amazon SageMaker AI. Kemudian, model dilokalkan dan prediksi dapat dibuat dalam database Amazon Redshift. Amazon Redshift ML saat ini mendukung algoritma pembelajaran mesin: XGBoost (AUTO ON dan OFF) dan perceptron multilayer (AUTO ON), K-Means (AUTO OFF), dan Linear Learner.
Topik
Pengaturan pengelompokan dan konfigurasikan untuk administrasi Amazon Redshift ML
Sebelum Anda bekerja dengan Amazon Redshift ML, selesaikan penyiapan cluster dan konfigurasikan izin untuk menggunakan Amazon Redshift ML.
Pengaturan cluster untuk menggunakan Amazon Redshift ML
Sebelum Anda bekerja dengan Amazon Redshift ML, lengkapi prasyarat berikut.
Sebagai administrator Amazon Redshift, lakukan pengaturan satu kali berikut untuk menggunakan cluster yang disediakan Amazon Redshift. Untuk menggunakan Amazon Redshift ML dengan Amazon Redshift Serverless, lihat Mem ulai dengan Amazon Redshift Serverless.
Untuk melakukan pengaturan cluster satu kali untuk Amazon Redshift ML
-
Buat cluster Redshift menggunakan Konsol Manajemen AWS atau AWS Command Line Interface (AWS CLI). Pastikan untuk melampirkan kebijakan AWS Identity and Access Management (IAM) saat membuat cluster. Untuk informasi selengkapnya tentang izin yang diperlukan untuk menggunakan Amazon Redshift ML dengan Amazon SageMaker AI, lihat Izin yang diperlukan untuk menggunakan pembelajaran mesin Amazon Redshift (ML)
-
Buat peran IAM yang diperlukan untuk menggunakan Amazon Redshift ML dengan salah satu cara berikut:
-
Untuk menggunakan SageMaker AI dengan Amazon Redshift ML, buat peran IAM dengan
AmazonS3FullAccessdanAmazonSageMakerFullAccesskebijakan. Jika Anda berencana juga membuat model Prakiraan, lampirkanAmazonForecastFullAccesskebijakan ke peran Anda juga. -
Untuk menggunakan Amazon Bedrock dengan Amazon Redshift ML, buat peran IAM dengan
AmazonS3FullAccessdan kebijakan.AmazonBedrockFullAccess -
Sebaiknya buat peran IAM melalui konsol Amazon Redshift yang memiliki
AmazonRedshiftAllCommandsFullAccesskebijakan dengan izin untuk menjalankan perintah SQL, seperti CREATE MODEL. Amazon Redshift menggunakan API-based mekanisme yang mulus untuk membuat peran IAM secara terprogram atas nama Anda Akun AWS . Amazon Redshift secara otomatis melampirkan kebijakan ter AWS kelola yang ada ke peran IAM. Pendekatan ini berarti Anda dapat tetap berada di dalam konsol Amazon Redshift dan tidak perlu beralih ke konsol IAM untuk pembuatan peran. Untuk informasi selengkapnya, lihat Membuat peran IAM sebagai default untuk Amazon Red shift.Saat peran IAM dibuat sebagai default untuk cluster Anda, sertakan
redshiftsebagai bagian dari nama sumber daya atau gunakan Redshift-specific tag untuk menandai sumber daya tersebut.Untuk menggunakan model pondasi Amazon Bedrock, tambahkan bagian berikut:
// Required section if you use Bedrock models. { "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:<region>::foundation-model/*" ] } -
Jika Anda ingin membuat peran IAM dengan kebijakan yang lebih ketat, Anda dapat menggunakan kebijakan berikut ini. Anda juga dapat mengubah kebijakan ini untuk memenuhi kebutuhan Anda.
Bucket Amazon S3
redshift-downloads/redshift-ml/adalah lokasi di mana data sampel yang digunakan untuk langkah dan contoh lain disimpan. Anda dapat menghapusnya jika Anda tidak perlu memuat data dari Amazon S3. Atau, ganti dengan bucket Amazon S3 lain yang Anda gunakan untuk memuat data ke Amazon Redshift.Nilai
,your-account-id, dan adalahyour-roleamzn-s3-demo-bucketnilai yang Anda tentukan sebagai bagian dari perintah CREATE MODEL Anda.(Opsional) Gunakan bagian AWS KMS kunci dari kebijakan sampel jika Anda menentukan AWS KMS kunci saat menggunakan Amazon Redshift ML.
Nilai adalah kunci yang Anda gunakan sebagai bagian dari perintah CREATE MODEL Anda.your-kms-key
-
-
Untuk mengizinkan Amazon Redshift dan SageMaker AI mengambil peran untuk berinteraksi dengan layanan lain, tambahkan kebijakan kepercayaan berikut ke peran IAM.
-
(Opsional) Buat bucket Amazon S3 dan AWS KMS kunci. Ini untuk digunakan Amazon Redshift untuk menyimpan data pelatihan yang dikirim ke Amazon SageMaker AI dan menerima model terlatih dari Amazon SageMaker AI.
-
(Opsional) Buat kombinasi yang berbeda dari peran IAM dan bucket Amazon S3 untuk mengontrol akses ke grup pengguna yang berbeda.
-
Saat Anda mengaktifkan perutean VPC yang disempurnakan, lalu lintas antara Redshift ML dan bucket S3 Anda melewati VPC pribadi Anda. Untuk informasi selengkapnya tentang perutean VPC, lihat Perutean VPC yang ditingkatkan di Amazon Redshift.
Untuk informasi selengkapnya tentang izin yang diperlukan untuk menentukan VPC pribadi untuk pekerjaan penyetelan hyperparameter Anda, lihat Izin yang diperlukan untuk menggunakan Amazon Redshift ML dengan Amazon AI. SageMaker
catatan
Panggilan inferensi yang dilakukan ke model SageMaker AI jarak jauh tidak melalui VPC Anda.
Untuk informasi tentang cara menggunakan pernyataan CREATE MODEL untuk mulai membuat model untuk kasus penggunaan yang berbeda, lihatBUAT MODEL.
Mengelola izin dan kepemilikan
Sama seperti objek database lainnya, seperti tabel atau fungsi, Amazon Redshift mengikat pembuatan dan penggunaan model ML untuk mengakses mekanisme kontrol. Ada izin terpisah untuk membuat model yang menjalankan fungsi prediksi.
Contoh berikut menggunakan dua grup pengguna, retention_analyst_grp (pembuat model) dan marketing_analyst_grp (pengguna model) untuk menggambarkan bagaimana Amazon Redshift mengelola kontrol akses. Analis retensi membuat model pembelajaran mesin yang dapat digunakan oleh kumpulan pengguna lain melalui izin yang diperoleh.
Seorang superuser dapat MEMBERIKAN IZIN PENGGUNA atau GRUP untuk membuat model pembelajaran mesin menggunakan pernyataan berikut.
GRANT CREATE MODEL TO GROUP retention_analyst_grp;
Pengguna atau grup dengan izin ini dapat membuat model dalam skema apa pun di cluster jika pengguna memiliki izin CREATE biasa pada SKEMA. Model pembelajaran mesin adalah bagian dari hierarki skema dengan cara yang mirip dengan tabel, tampilan, prosedur, dan fungsi yang ditentukan pengguna.
Dengan asumsi skema demo_ml sudah ada, berikan dua grup pengguna izin pada skema sebagai berikut.
GRANT CREATE, USAGE ON SCHEMA demo_ml TO GROUP retention_analyst_grp;
GRANT USAGE ON SCHEMA demo_ml TO GROUP marketing_analyst_grp;
Untuk mengizinkan pengguna lain menggunakan fungsi inferensi pembelajaran mesin Anda, berikan izin EXECUTE. Contoh berikut menggunakan izin EXECUTE untuk memberikan izin kepada marketing_analist_grp GROUP untuk menggunakan model.
GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;
Gunakan pernyataan REVOKE dengan CREATE MODEL dan EXECUTE untuk mencabut izin tersebut dari pengguna atau grup. Untuk informasi selengkapnya tentang perintah kontrol izin, lihat HIBAH danMENCABUT.
Menggunakan penjelasan model dengan Amazon Redshift ML
Dengan penjelasan model di Amazon Redshift ML, Anda menggunakan nilai kepentingan fitur untuk membantu memahami bagaimana setiap atribut dalam data pelatihan Anda berkontribusi pada hasil yang diprediksi.
Penjelasan model membantu meningkatkan model pembelajaran mesin (ML) Anda dengan menjelaskan prediksi yang dibuat model Anda. Penjelasan model membantu menjelaskan bagaimana model ini membuat prediksi menggunakan pendekatan atribusi fitur.
Amazon Redshift ML menggabungkan keterangan model untuk menyediakan fungsionalitas penjelasan model kepada pengguna Amazon Redshift ML. Untuk informasi lebih lanjut tentang keterangan model, lihat Apa itu Keadilan dan Penjelasan Model untuk Prediksi Pembelajaran Mesin? dalam Panduan Pengembang Amazon SageMaker AI.
Penjelasan model juga memantau kesimpulan yang dibuat model dalam produksi untuk penyimpangan atribusi fitur. Ini juga menyediakan alat untuk membantu Anda menghasilkan laporan tata kelola model yang dapat Anda gunakan untuk menginformasikan tim risiko dan kepatuhan, dan regulator eksternal.
Saat Anda menentukan opsi AUTO ON atau AUTO OFF saat menggunakan pernyataan CREATE MODEL, setelah pekerjaan pelatihan model selesai, SageMaker AI membuat output penjelasan. Anda dapat menggunakan fungsi EXPLAIN_MODEL untuk menanyakan laporan keterjelasan dalam format JSON. Untuk informasi selengkapnya, lihat Fungsi pembelajaran mesin.
Metrik probabilitas Amazon Redshift ML
Dalam masalah pembelajaran yang diawasi, label kelas adalah hasil prediksi yang menggunakan data input. Misalnya, jika Anda menggunakan model untuk memprediksi apakah pelanggan akan berlangganan kembali ke layanan streaming, kemungkinan label mungkin dan tidak mungkin. Redshift ML menyediakan kemampuan metrik probabilitas, yang menetapkan probabilitas untuk setiap label untuk menunjukkan kemungkinannya. Ini membantu Anda membuat keputusan yang lebih tepat berdasarkan hasil yang diprediksi. Di Amazon Redshift ML, metrik probabilitas tersedia saat membuat model AUTO ON dengan tipe masalah baik klasifikasi biner atau klasifikasi multiclass. Jika Anda menghilangkan parameter AUTO ON, Redshift ML mengasumsikan bahwa model harus memiliki AUTO ON.
Buat model
Saat membuat model, Amazon Redshift secara otomatis mendeteksi jenis model dan jenis masalah. Jika ini adalah masalah klasifikasi, Redshift secara otomatis membuat fungsi inferensi kedua yang dapat Anda gunakan untuk menampilkan probabilitas relatif terhadap setiap label. Nama fungsi inferensi kedua ini adalah nama fungsi inferensi yang Anda tentukan diikuti oleh string. _probabilities Misalnya, jika Anda menamai fungsi inferensi Anda sebagaicustomer_churn_predict, maka nama fungsi inferensi kedua adalah. customer_churn_predict_probabilities Anda kemudian dapat menanyakan fungsi ini untuk mendapatkan probabilitas setiap label.
CREATE MODEL customer_churn_model FROM customer_activity PROBLEM_TYPE BINARY_CLASSIFICATION TARGET churn FUNCTION customer_churn_predict IAM_ROLE {default} AUTO ON SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket'
Dapatkan probabilitas
Setelah fungsi probabilitas siap, menjalankan perintah mengembalikan tipe SUPER yang berisi array probabilitas yang dikembalikan dan label terkait. Misalnya, hasilnya "probabilities" : [0.7, 0.3], "labels" : ["False.", "True."] berarti bahwa label False memiliki probabilitas 0,7, dan label True memiliki probabilitas 0,3.
SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) FROM customer_activity; customer_churn_predict_probabilities -------------------- {"probabilities" : [0.7, 0.3], "labels" : ["False.", "True."]} {"probabilities" : [0.8, 0.2], "labels" : ["False.", "True."]} {"probabilities" : [0.75, 0.25], "labels" : ["True.", "False"]}
Array probabilitas dan label selalu diurutkan berdasarkan probabilitasnya dalam urutan menurun. Anda dapat menulis kueri untuk mengembalikan hanya label yang diprediksi dengan probabilitas tertinggi dengan menghapus sarang hasil yang dikembalikan SUPER dari fungsi probabilitas.
SELECT prediction.labels[0], prediction.probabilities[0] FROM (SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) AS prediction FROM customer_activity); labels | probabilities -----------+-------------- "False." | 0.7 "False." | 0.8 "True." | 0.75
Untuk membuat kueri lebih sederhana, Anda dapat menyimpan hasil fungsi prediksi dalam tabel.
CREATE TABLE churn_auto_predict_probabilities AS (SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) AS prediction FROM customer_activity);
Anda dapat menanyakan tabel dengan hasil untuk mengembalikan hanya prediksi yang memiliki probabilitas lebih tinggi dari 0,7.
SELECT prediction.labels[0], prediction.probabilities[0] FROM churn_auto_predict_probabilities WHERE prediction.probabilities[0] > 0.7; labels | probabilities -----------+-------------- "False." | 0.8 "True." | 0.75
Menggunakan notasi indeks, Anda bisa mendapatkan probabilitas label tertentu. Contoh berikut mengembalikan probabilitas semua True. label.
SELECT label, index, p.prediction.probabilities[index] FROM churn_auto_predict_probabilities p, p.prediction.labels AS label AT index WHERE label='True.'; label | index | probabilities ---------+-------+--------------- "True." | 0 | 0.3 "True." | 0 | 0.2 "True." | 0 | 0.75
Contoh berikut mengembalikan semua baris yang memiliki labelTrue. dengan probabilitas lebih besar dari 0,7, menunjukkan bahwa pelanggan kemungkinan besar akan churn.
SELECT prediction.labels[0], prediction.probabilities[0] FROM churn_auto_predict_probabilities WHERE prediction.probabilities[0] > 0.7 AND prediction.labels[0] = "True."; labels | probabilities -----------+-------------- "True." | 0.75