Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pembelajaran mesin Amazon Aurora dengan Aurora Postgre SQL
Dengan menggunakan pembelajaran mesin Amazon Aurora dengan cluster SQL DB Aurora Postgre Anda, Anda dapat menggunakan Amazon Comprehend atau Amazon atau Amazon Bedrock, tergantung pada kebutuhan Anda. SageMaker Layanan ini masing-masing mendukung kasus penggunaan pembelajaran mesin tertentu.
Pembelajaran mesin Aurora didukung dalam beberapa hal Wilayah AWS dan untuk versi tertentu dari Aurora SQL Postgre saja. Sebelum mencoba mengatur pembelajaran mesin Aurora, periksa ketersediaan untuk versi Aurora SQL Postgre dan Wilayah Anda. Untuk detailnya, lihat Pembelajaran mesin Aurora dengan Aurora Postgre SQL.
Topik
- Persyaratan untuk menggunakan pembelajaran mesin Aurora dengan Aurora Postgre SQL
- Fitur yang didukung dan keterbatasan pembelajaran mesin Aurora dengan Aurora Postgre SQL
- Menyiapkan cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora
- Menggunakan Amazon Bedrock dengan cluster DB Aurora Postgre SQL Anda
- Menggunakan Amazon Comprehend dengan cluster DB Aurora Postgre Anda SQL
- Menggunakan SageMaker dengan cluster Aurora SQL Postgre DB Anda
- Mengekspor data ke Amazon S3 SageMaker untuk pelatihan model (Lanjutan)
- Pertimbangan kinerja untuk menggunakan pembelajaran mesin Aurora dengan Aurora Postgre SQL
- Memantau machine learning Aurora
Persyaratan untuk menggunakan pembelajaran mesin Aurora dengan Aurora Postgre SQL
AWS Layanan pembelajaran mesin adalah layanan terkelola yang diatur dan dijalankan di lingkungan produksi mereka sendiri. Pembelajaran mesin Aurora mendukung integrasi dengan Amazon Comprehend,, dan Amazon Bedrock SageMaker. Sebelum mencoba mengatur cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora, pastikan Anda memahami persyaratan dan prasyarat berikut.
Layanan Amazon SageMaker Comprehend,, dan Amazon Bedrock harus berjalan dalam hal yang sama Wilayah AWS sebagai cluster Aurora SQL Postgre DB Anda. Anda tidak dapat menggunakan layanan Amazon SageMaker Comprehend atau Amazon Bedrock dari klaster DB SQL Aurora Postgre di Wilayah lain.
Jika klaster Aurora Postgre SQL DB Anda berada di cloud publik virtual (VPC) yang berbeda berdasarkan VPC layanan Amazon daripada Amazon Comprehend dan layanan Anda, grup Keamanan perlu mengizinkan koneksi keluar ke SageMaker layanan VPC pembelajaran mesin Aurora target. Untuk informasi selengkapnya, lihat Mengaktifkan komunikasi jaringan dari Amazon Aurora ke layanan lain AWS.
Untuk SageMaker, komponen pembelajaran mesin yang ingin Anda gunakan untuk kesimpulan harus diatur dan siap digunakan. Selama proses konfigurasi untuk cluster Aurora Postgre SQL DB Anda, Anda harus memiliki Amazon Resource Name (ARN) dari endpoint yang tersedia. SageMaker Para ilmuwan data di tim Anda mungkin paling mampu menangani bekerja dengan SageMaker untuk mempersiapkan model dan menangani tugas-tugas lain semacam itu. Untuk memulai dengan Amazon SageMaker, lihat Memulai dengan Amazon SageMaker. Untuk informasi selengkapnya tentang inferensi dan titik akhir, lihat Inferensi real-time.
-
Untuk Amazon Bedrock, Anda harus memiliki ID model model Bedrock yang ingin Anda gunakan untuk inferensi yang tersedia selama proses konfigurasi cluster DB Aurora Postgre Anda. SQL Ilmuwan data di tim Anda kemungkinan besar paling mampu bekerja dengan Bedrock untuk memutuskan model mana yang akan digunakan, menyempurnakannya jika diperlukan, dan menangani tugas-tugas semacam itu lainnya. Untuk memulai dengan Amazon Bedrock, lihat Cara mengatur Bedrock.
-
Pengguna Amazon Bedrock perlu meminta akses ke model sebelum tersedia untuk digunakan. Jika Anda ingin menambahkan model tambahan untuk pembuatan teks, obrolan, dan gambar, Anda perlu meminta akses ke model di Amazon Bedrock. Untuk informasi selengkapnya, lihat Akses model.
Fitur yang didukung dan keterbatasan pembelajaran mesin Aurora dengan Aurora Postgre SQL
Pembelajaran mesin Aurora mendukung setiap SageMaker titik akhir yang dapat membaca dan menulis format nilai yang dipisahkan koma (CSV) melalui nilai. ContentType
text/csv
SageMaker Algoritma bawaan yang saat ini menerima format ini adalah sebagai berikut.
Linear Learner
Random Cut Forest
XGBoost
Untuk mempelajari lebih lanjut tentang algoritme ini, lihat Memilih Algoritma di Panduan SageMaker Pengembang Amazon.
Saat menggunakan Amazon Bedrock dengan pembelajaran mesin Aurora, batasan berikut berlaku:
-
Fungsi yang ditentukan pengguna (UDFs) menyediakan cara asli untuk berinteraksi dengan Amazon Bedrock. UDFsTidak memiliki permintaan atau persyaratan respons khusus, sehingga mereka dapat menggunakan model apa pun.
-
Anda dapat menggunakan UDFs untuk membangun alur kerja yang diinginkan. Misalnya, Anda dapat menggabungkan primitif dasar seperti
pg_cron
menjalankan kueri, mengambil data, menghasilkan kesimpulan, dan menulis ke tabel untuk menyajikan kueri secara langsung. -
UDFstidak mendukung panggilan batch atau parallel.
-
Ekstensi Machine Learning Aurora tidak mendukung antarmuka vektor. Sebagai bagian dari ekstensi, fungsi tersedia untuk menampilkan penyematan respons model dalam
float8[]
format untuk menyimpan embeddings tersebut di Aurora. Untuk informasi lebih lanjut tentang penggunaanfloat8[]
, lihatMenggunakan Amazon Bedrock dengan cluster DB Aurora Postgre SQL Anda.
Menyiapkan cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora
Agar pembelajaran mesin Aurora dapat bekerja dengan cluster SQL DB Aurora Postgre Anda, Anda perlu membuat AWS Identity and Access Management (IAM) peran untuk setiap layanan yang ingin Anda gunakan. IAMPeran ini memungkinkan cluster Aurora Postgre SQL DB Anda untuk menggunakan layanan pembelajaran mesin Aurora atas nama cluster. Anda juga perlu menginstal ekstensi machine learning Aurora. Dalam topik berikut, Anda dapat menemukan prosedur penyiapan untuk masing-masing layanan machine learning Aurora ini.
Topik
Menyiapkan Aurora Postgre untuk SQL menggunakan Amazon Bedrock
Dalam prosedur berikut, pertama-tama Anda membuat IAM peran dan kebijakan yang memberikan izin kepada Aurora Postgre Anda SQL untuk menggunakan Amazon Bedrock atas nama klaster. Anda kemudian melampirkan kebijakan ke IAM peran yang digunakan klaster SQL DB Aurora Postgre Anda untuk bekerja dengan Amazon Bedrock. Demi kesederhanaan, prosedur ini menggunakan AWS Management Console untuk menyelesaikan semua tugas.
Untuk mengatur cluster Aurora Postgre SQL DB Anda untuk menggunakan Amazon Bedrock
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. Buka IAM konsol di https://console.aws.amazon.com/iam/
. Pilih Kebijakan (di bawah Manajemen akses) di AWS Identity and Access Management (IAM) Menu konsol.
Pilih Buat kebijakan. Di halaman Editor Visual, pilih Layanan dan kemudian masukkan Bedrock di bidang Pilih layanan. Perluas tingkat akses Baca. Pilih InvokeModeldari pengaturan baca Amazon Bedrock.
Pilih model Foundation/Provisioned yang ingin Anda berikan akses baca melalui kebijakan.
Pilih Berikutnya: Tag dan tentukan tag apa pun (opsional). Pilih Berikutnya: Peninjauan. Masukkan nama untuk kebijakan dan deskripsi, seperti diperlihatkan pada gambar.
Pilih Buat kebijakan. Konsol menampilkan peringatan saat kebijakan telah disimpan. Anda dapat menemukannya di daftar Kebijakan.
Pilih Peran (di bawah Manajemen akses) di IAM Konsol.
Pilih Buat peran.
Pada halaman Pilih entitas tepercaya, pilih AWS ubin layanan, dan kemudian memilih RDSuntuk membuka pemilih.
Pilih RDS— Tambahkan Peran ke Database.
Pilih Berikutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Berikutnya.
Berikutnya: Tinjau. Masukkan nama untuk IAM peran dan deskripsi.
Buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. Arahkan ke Wilayah AWS di mana cluster Aurora Postgre SQL DB Anda berada.
-
Di panel navigasi, pilih Databases, dan kemudian pilih cluster Aurora Postgre SQL DB yang ingin Anda gunakan dengan Bedrock.
-
Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola IAM peran pada halaman. Dari Tambahkan IAM peran ke pemilih klaster ini, pilih peran yang Anda buat di langkah sebelumnya. Di pemilih Fitur, pilih Batuan Dasar, lalu pilih Tambah peran.
Peran (dengan kebijakannya) dikaitkan dengan cluster Aurora SQL Postgre DB. Saat proses selesai, peran tersebut tercantum dalam Peran saat ini IAM untuk daftar klaster ini, seperti yang ditunjukkan berikut.
IAMPengaturan untuk Amazon Bedrock selesai. Lanjutkan menyiapkan Aurora Postgre Anda untuk SQL bekerja dengan pembelajaran mesin Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam Menginstal ekstensi machine learning Aurora
Menyiapkan Aurora Postgre SQL untuk menggunakan Amazon Comprehend
Dalam prosedur berikut, pertama-tama Anda membuat IAM peran dan kebijakan yang memberikan SQL izin kepada Aurora Postgre Anda untuk menggunakan Amazon Comprehend atas nama klaster. Anda kemudian melampirkan kebijakan ke IAM peran yang digunakan cluster Aurora Postgre SQL DB Anda untuk bekerja dengan Amazon Comprehend Demi kesederhanaan, prosedur ini menggunakan AWS Management Console untuk menyelesaikan semua tugas.
Untuk mengatur cluster Aurora Postgre SQL DB Anda untuk menggunakan Amazon Comprehend
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. Buka IAM konsol di https://console.aws.amazon.com/iam/
. Pilih Kebijakan (di bawah Manajemen akses) di AWS Identity and Access Management (IAM) Menu konsol.
Pilih Buat kebijakan. Di halaman Editor Visual, pilih Layanan, lalu masukkan Comprehend di kolom Pilih layanan. Perluas tingkat akses Baca. Pilih BatchDetectSentimentdan DetectSentimentdari pengaturan baca Amazon Comprehend.
Pilih Berikutnya: Tag dan tentukan tag apa pun (opsional). Pilih Berikutnya: Peninjauan. Masukkan nama untuk kebijakan dan deskripsi, seperti diperlihatkan pada gambar.
Pilih Buat kebijakan. Konsol menampilkan peringatan saat kebijakan telah disimpan. Anda dapat menemukannya di daftar Kebijakan.
Pilih Peran (di bawah Manajemen akses) di IAM Konsol.
Pilih Buat peran.
Pada halaman Pilih entitas tepercaya, pilih AWS ubin layanan, dan kemudian memilih RDSuntuk membuka pemilih.
Pilih RDS— Tambahkan Peran ke Database.
Pilih Berikutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Selanjutnya
Berikutnya: Tinjau. Masukkan nama untuk IAM peran dan deskripsi.
Buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. Arahkan ke Wilayah AWS di mana cluster Aurora Postgre SQL DB Anda berada.
-
Di panel navigasi, pilih Databases, lalu pilih cluster Aurora Postgre SQL DB yang ingin Anda gunakan dengan Amazon Comprehend.
-
Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola IAM peran pada halaman. Dari Tambahkan IAM peran ke pemilih klaster ini, pilih peran yang Anda buat di langkah sebelumnya. Di pemilih Fitur, pilih Comprehend, lalu pilih Tambah peran.
Peran (dengan kebijakannya) dikaitkan dengan cluster Aurora SQL Postgre DB. Saat proses selesai, peran tersebut tercantum dalam Peran saat ini IAM untuk daftar klaster ini, seperti yang ditunjukkan berikut.
IAMPengaturan untuk Amazon Comprehend selesai. Lanjutkan menyiapkan Aurora Postgre Anda untuk SQL bekerja dengan pembelajaran mesin Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam Menginstal ekstensi machine learning Aurora
Menyiapkan Aurora SQL Postgre untuk menggunakan Amazon SageMaker
Sebelum Anda dapat membuat IAM kebijakan dan peran untuk cluster Aurora Postgre SQL DB Anda, Anda harus memiliki pengaturan SageMaker model dan titik akhir Anda tersedia.
Untuk mengatur cluster Aurora Postgre SQL DB Anda untuk digunakan SageMaker
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. Pilih Kebijakan (di bawah Manajemen akses) di AWS Identity and Access Management (IAM) Menu konsol, lalu pilih Buat kebijakan. Di editor Visual, pilih SageMakeruntuk Layanan. Untuk Tindakan, buka pemilih Baca (di bawah tingkat Akses) dan pilih InvokeEndpoint. Saat Anda melakukannya, ikon peringatan akan muncul.
Buka pemilih Sumber daya dan pilih tautan Tambahkan ARN untuk membatasi akses di bawah Tentukan sumber daya titik akhir ARN untuk tindakan. InvokeEndpoint
Masukkan Wilayah AWS SageMaker sumber daya Anda dan nama titik akhir Anda. Klaster AWS akun sudah diisi sebelumnya.
Pilih Tambah untuk menyimpan. Pilih Berikutnya: Tag dan Berikutnya: Tinjau untuk membuka halaman terakhir proses pembuatan kebijakan.
Masukkan Nama dan Deskripsi untuk kebijakan ini, lalu pilih Buat kebijakan. Kebijakan dibuat dan ditambahkan ke daftar Kebijakan. Anda melihat peringatan di Konsol saat ini terjadi.
Di IAM Konsol, pilih Peran.
Pilih Buat peran.
Pada halaman Pilih entitas tepercaya, pilih AWS ubin layanan, dan kemudian memilih RDSuntuk membuka pemilih.
Pilih RDS— Tambahkan Peran ke Database.
Pilih Berikutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Selanjutnya
Berikutnya: Tinjau. Masukkan nama untuk IAM peran dan deskripsi.
Buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. Arahkan ke Wilayah AWS di mana cluster Aurora Postgre SQL DB Anda berada.
-
Di panel navigasi, pilih Databases, lalu pilih cluster Aurora Postgre SQL DB yang ingin Anda gunakan. SageMaker
-
Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola IAM peran pada halaman. Dari Tambahkan IAM peran ke pemilih klaster ini, pilih peran yang Anda buat di langkah sebelumnya. Di pemilih Fitur, pilih SageMaker, lalu pilih Tambah peran.
Peran (dengan kebijakannya) dikaitkan dengan cluster Aurora SQL Postgre DB. Saat proses selesai, peran tersebut tercantum dalam Peran saat ini IAM untuk daftar klaster ini.
IAMPengaturan untuk SageMaker selesai. Lanjutkan menyiapkan Aurora Postgre Anda untuk SQL bekerja dengan pembelajaran mesin Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam. Menginstal ekstensi machine learning Aurora
Menyiapkan Aurora Postgre untuk menggunakan SQL Amazon S3 untuk (Lanjutan) SageMaker
Untuk menggunakan SageMaker model Anda sendiri daripada menggunakan komponen bawaan yang disediakan oleh SageMaker, Anda perlu menyiapkan bucket Amazon Simple Storage Service (Amazon S3) untuk digunakan cluster DB Aurora SQL Postgre. Ini adalah topik lanjutan, dan tidak sepenuhnya didokumentasikan dalam Panduan Pengguna Amazon Aurora ini. Proses umumnya sama dengan mengintegrasikan dukungan untuk SageMaker, sebagai berikut.
Buat IAM kebijakan dan peran untuk Amazon S3.
Tambahkan IAM peran dan impor atau ekspor Amazon S3 sebagai fitur pada tab Konektivitas & keamanan klaster Aurora Postgre DB Anda. SQL
Tambahkan peran ke grup parameter cluster DB kustom Anda untuk cluster Aurora DB Anda. ARN
Untuk informasi penggunaan dasar, lihat Mengekspor data ke Amazon S3 SageMaker untuk pelatihan model (Lanjutan).
Menginstal ekstensi machine learning Aurora
Ekstensi pembelajaran mesin Aurora aws_ml 1.0
menyediakan dua fungsi yang dapat Anda gunakan untuk memanggil Amazon Comprehend, SageMaker layanan, dan aws_ml 2.0
menyediakan dua fungsi tambahan yang dapat Anda gunakan untuk menjalankan layanan Amazon Bedrock. Memasang ekstensi ini di cluster Aurora Postgre SQL DB Anda juga menciptakan peran administratif untuk fitur tersebut.
catatan
Menggunakan fungsi-fungsi ini tergantung pada IAM penyiapan untuk layanan pembelajaran mesin Aurora (Amazon Comprehend,, Amazon Bedrock) yang lengkap SageMaker, seperti yang dijelaskan dalam. Menyiapkan cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora
aws_comprehend.detect_sentiment — Anda menggunakan fungsi ini untuk menerapkan analisis sentimen ke teks yang disimpan dalam database pada cluster Aurora Postgre DB Anda. SQL
aws_sagemaker.invoke_endpoint — Anda menggunakan fungsi ini dalam kode Anda untuk berkomunikasi dengan titik akhir dari cluster Anda. SQL SageMaker
aws_bedrock.invoke_model — Anda menggunakan fungsi ini dalam SQL kode Anda untuk berkomunikasi dengan Model Batuan Dasar dari cluster Anda. Respon fungsi ini akan dalam format aTEXT, jadi jika model merespons dalam format JSON tubuh maka output dari fungsi ini akan diteruskan dalam format string ke pengguna akhir.
aws_bedrock.invoke_model_get_embeddings - Anda menggunakan fungsi ini dalam kode Anda untuk memanggil Model Bedrock yang mengembalikan penyematan keluaran dalam respons. SQL JSON Ini dapat dimanfaatkan saat Anda ingin mengekstrak penyematan yang terkait langsung dengan json-key untuk merampingkan respons dengan alur kerja yang dikelola sendiri.
Untuk menginstal ekstensi pembelajaran mesin Aurora di cluster DB Aurora Postgre Anda SQL
Gunakan
psql
untuk terhubung ke instance penulis cluster Aurora SQL Postgre DB Anda. Hubungkan ke basis data tertentu tempat untuk menginstal ekstensiaws_ml
.psql --host=
cluster-instance-1.111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
labdb=>
CREATE EXTENSION IF NOT EXISTS aws_ml CASCADE;NOTICE: installing required extension "aws_commons" CREATE EXTENSION
labdb=>
Menginstal aws_ml
ekstensi juga menciptakan peran aws_ml
administratif dan tiga skema baru, sebagai berikut.
aws_comprehend
– Skema untuk layanan Amazon Comprehend dan sumber fungsidetect_sentiment
(aws_comprehend.detect_sentiment
).aws_sagemaker
— Skema untuk SageMaker layanan dan sumberinvoke_endpoint
fungsi (aws_sagemaker.invoke_endpoint
).aws_bedrock
— Skema untuk layanan Amazon Bedrock dan sumberinvoke_model(aws_bedrock.invoke_model)
daninvoke_model_get_embeddings(aws_bedrock.invoke_model_get_embeddings)
fungsi.
Peran tersebut diberikan rds_superuser
peran aws_ml
administratif dan dibuat OWNER
dari tiga skema pembelajaran mesin Aurora ini. Untuk mengizinkan pengguna basis data lain mengakses fungsi machine learning Aurora, rds_superuser
harus memberikan hak istimewa EXECUTE
pada fungsi machine learning Aurora. Secara default, hak istimewa EXECUTE
dicabut dari PUBLIC
pada fungsi dalam dua skema machine learning Aurora.
Dalam konfigurasi basis data multi-penghuni, Anda dapat mencegah penghuni mengakses fungsi machine learning Aurora dengan menggunakan REVOKE USAGE
pada skema machine learning Aurora tertentu yang ingin dilindungi.
Menggunakan Amazon Bedrock dengan cluster DB Aurora Postgre SQL Anda
Untuk Aurora PostgreSQL, pembelajaran mesin Aurora menyediakan fungsi Amazon Bedrock berikut untuk bekerja dengan data teks Anda. Fungsi ini hanya tersedia setelah Anda menginstal ekstensi aws_ml
2.0 dan menyelesaikan semua prosedur pengaturan. Untuk informasi selengkapnya, lihat Menyiapkan cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora.
- aws_bedrock.invoke_model
-
Fungsi ini mengambil teks yang diformat JSON sebagai input dan memprosesnya untuk berbagai model yang dihosting di Amazon Bedrock dan mendapatkan kembali respons JSON teks dari model. Respons ini bisa berisi teks, gambar, atau embeddings. Ringkasan dokumentasi fungsinya adalah sebagai berikut.
aws_bedrock.invoke_model( IN model_id varchar, IN content_type text, IN accept_type text, IN model_input text, OUT model_output varchar)
Input dan output dari fungsi ini adalah sebagai berikut.
-
model_id
— Pengidentifikasi model. content_type
— Jenis permintaan untuk model Bedrock.accept_type
— Jenis respons yang diharapkan dari model Bedrock. Biasanya JSON aplikasi/untuk sebagian besar model.model_input
— Prompts; satu set input tertentu ke model dalam format seperti yang ditentukan oleh content_type. Untuk informasi lebih lanjut tentang format/struktur permintaan yang diterima model, lihat Parameter inferensi untuk model dasar.model_output
— Output model Bedrock sebagai teks.
Contoh berikut menunjukkan cara memanggil model Anthropic Claude 2 untuk Bedrock menggunakan invoke_model.
contoh Contoh: Kueri sederhana menggunakan fungsi Amazon Bedrock
SELECT aws_bedrock.invoke_model ( model_id := 'anthropic.claude-v2', content_type:= 'application/json', accept_type := 'application/json', model_input := '{"prompt": "\n\nHuman: You are a helpful assistant that answers questions directly and only using the information provided in the context below.\nDescribe the answer in detail.\n\nContext: %s \n\nQuestion: %s \n\nAssistant:","max_tokens_to_sample":4096,"temperature":0.5,"top_k":250,"top_p":0.5,"stop_sequences":[]}' );
- aws_bedrock.invoke_model_get_embeddings
-
Output model dapat menunjuk ke embeddings vektor untuk beberapa kasus. Mengingat respons bervariasi per model, fungsi lain invoke_model_get_embeddings dapat dimanfaatkan yang berfungsi persis seperti invoke_model tetapi mengeluarkan penyematan dengan menentukan json-key yang sesuai.
aws_bedrock.invoke_model_get_embeddings( IN model_id varchar, IN content_type text, IN json_key text, IN model_input text, OUT model_output float8[])
Input dan output dari fungsi ini adalah sebagai berikut.
-
model_id
— Pengidentifikasi model. content_type
— Jenis permintaan untuk model Bedrock. Di sini, accept_type diatur ke nilai default.application/json
model_input
— Prompts; satu set input tertentu ke Model dalam format seperti yang ditentukan oleh content_type. Untuk informasi lebih lanjut tentang format/struktur permintaan yang diterima Model, lihat Parameter inferensi untuk model dasar.json_key
— Referensi ke bidang untuk mengekstrak embedding dari. Ini dapat bervariasi jika model penyematan berubah.-
model_output
— Output model Bedrock sebagai array embeddings yang memiliki desimal 16 bit.
Contoh berikut menunjukkan cara menghasilkan embedding menggunakan Titan Embeddings G1 — Model penyematan teks untuk frase Postgre I/O monitoring views. SQL
contoh Contoh: Kueri sederhana menggunakan fungsi Amazon Bedrock
SELECT aws_bedrock.invoke_model_get_embeddings( model_id := 'amazon.titan-embed-text-v1', content_type := 'application/json', json_key := 'embedding', model_input := '{ "inputText": "PostgreSQL I/O monitoring views"}') AS embedding;
Menggunakan Amazon Comprehend dengan cluster DB Aurora Postgre Anda SQL
Untuk Aurora PostgreSQL, pembelajaran mesin Aurora menyediakan fungsi Amazon Comprehend berikut untuk bekerja dengan data teks Anda. Fungsi ini hanya tersedia setelah Anda menginstal ekstensi aws_ml
dan menyelesaikan semua prosedur penyiapan. Untuk informasi selengkapnya, lihat Menyiapkan cluster Aurora Postgre SQL DB Anda untuk menggunakan pembelajaran mesin Aurora.
- aws_comprehend.detect_sentiment
-
Fungsi ini mengambil teks sebagai input dan mengevaluasi apakah teks memiliki postur emosional positif, negatif, netral, atau campuran. Fungsi ini menghasilkan sentimen ini bersama dengan tingkat kepercayaan untuk evaluasinya. Ringkasan dokumentasi fungsinya adalah sebagai berikut.
aws_comprehend.detect_sentiment( IN input_text varchar, IN language_code varchar, IN max_rows_per_batch int, OUT sentiment varchar, OUT confidence real)
Input dan output dari fungsi ini adalah sebagai berikut.
-
input_text
– Teks untuk mengevaluasi dan menetapkan sentimen (negatif, positif, netral, campuran). language_code
— Bahasa yanginput_text
diidentifikasi menggunakan pengenal 2-huruf ISO 639-1 dengan subtag regional (sesuai kebutuhan) atau kode tiga huruf ISO 639-2, yang sesuai. Misalnya,en
adalah kode untuk bahasa Inggris,zh
adalah kode untuk bahasa Mandarin yang disederhanakan. Untuk informasi selengkapnya, lihat Bahasa yang didukung di Panduan Developer Amazon Comprehend.max_rows_per_batch
– Jumlah baris maksimum per batch untuk pemrosesan mode batch. Untuk informasi selengkapnya, lihat Memahami mode batch dan fungsi machine learning Aurora.sentiment
— Sentimen teks input, diidentifikasi sebagaiPOSITIVE,, NEGATIVENEUTRAL, atauMIXED.confidence
– Tingkat kepercayaan dalam keakuratan yang ditentukansentiment
. Rentang nilai dari 0,0 hingga 1,0.
Berikut ini, Anda dapat menemukan contoh cara menggunakan fungsi ini.
contoh Contoh: Kueri sederhana menggunakan fungsi Amazon Comprehend
Berikut adalah contoh kueri sederhana yang menginvokasi fungsi ini untuk menilai kepuasan pelanggan dengan tim dukungan Anda. Misalkan Anda memiliki tabel basis data (support
) yang menyimpan umpan balik pelanggan setelah setiap permintaan bantuan. Contoh kueri ini menerapkan fungsi aws_comprehend.detect_sentiment
ke teks di kolom feedback
tabel dan menghasilkan sentimen dan tingkat kepercayaan untuk sentimen tersebut. Kueri ini juga menghasilkan urutan menurun.
SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC;
feedback | sentiment | confidence ----------------------------------------------------------+-----------+------------ Thank you for the excellent customer support! | POSITIVE | 0.999771 The latest version of this product stinks! | NEGATIVE | 0.999184 Your support team is just awesome! I am blown away. | POSITIVE | 0.997774 Your product is too complex, but your support is great. | MIXED | 0.957958 Your support tech helped me in fifteen minutes. | POSITIVE | 0.949491 My problem was never resolved! | NEGATIVE | 0.920644 When will the new version of this product be released? | NEUTRAL | 0.902706 I cannot stand that chatbot. | NEGATIVE | 0.895219 Your support tech talked down to me. | NEGATIVE | 0.868598 It took me way too long to get a real person. | NEGATIVE | 0.481805 (10 rows)
Agar tidak ditagih untuk deteksi sentimen lebih dari sekali per baris tabel, Anda dapat mewujudkan hasilnya. Lakukan ini di baris yang diinginkan. Misalnya, catatan dokter sedang diperbarui sehingga hanya yang berbahasa Prancis (fr
) yang menggunakan fungsi deteksi sentimen.
UPDATE clinician_notes SET sentiment = (aws_comprehend.detect_sentiment (french_notes, 'fr')).sentiment, confidence = (aws_comprehend.detect_sentiment (french_notes, 'fr')).confidence WHERE clinician_notes.french_notes IS NOT NULL AND LENGTH(TRIM(clinician_notes.french_notes)) > 0 AND clinician_notes.sentiment IS NULL;
Untuk informasi selengkapnya tentang cara mengoptimalkan panggilan fungsi Anda, lihat Pertimbangan kinerja untuk menggunakan pembelajaran mesin Aurora dengan Aurora Postgre SQL.
Menggunakan SageMaker dengan cluster Aurora SQL Postgre DB Anda
Setelah menyiapkan SageMaker lingkungan Anda dan mengintegrasikan dengan Aurora SQL Postgre seperti yang diuraikan, Anda dapat menjalankan Menyiapkan Aurora SQL Postgre untuk menggunakan Amazon SageMaker operasi dengan menggunakan fungsi tersebut. aws_sagemaker.invoke_endpoint
aws_sagemaker.invoke_endpoint
Fungsi ini hanya terhubung ke titik akhir model dalam hal yang sama Wilayah AWS. Jika instance database Anda memiliki replika dalam beberapa Wilayah AWS
pastikan Anda mengatur dan menerapkan setiap SageMaker model ke setiap Wilayah AWS.
Panggilan ke aws_sagemaker.invoke_endpoint
diautentikasi menggunakan IAM peran yang Anda atur untuk mengaitkan klaster DB Aurora SQL Postgre Anda dengan SageMaker layanan dan titik akhir yang Anda berikan selama proses penyiapan. SageMaker titik akhir model dicakup ke akun individu dan tidak bersifat publik. endpoint_name
URLTidak berisi ID akun. SageMaker menentukan ID akun dari token otentikasi yang disediakan oleh SageMaker IAM peran instance database.
- aws_sagemaker.invoke_endpoint
Fungsi ini mengambil SageMaker endpoint sebagai input dan jumlah baris yang harus diproses sebagai batch. Ini juga mengambil sebagai masukan berbagai parameter yang diharapkan oleh titik akhir SageMaker model. Dokumentasi referensi fungsi ini adalah sebagai berikut.
aws_sagemaker.invoke_endpoint( IN endpoint_name varchar, IN max_rows_per_batch int, VARIADIC model_input "any", OUT model_output varchar )
Input dan output dari fungsi ini adalah sebagai berikut.
endpoint_name
Sebuah titik akhir URL yang Wilayah AWS—independen.max_rows_per_batch
– Jumlah baris maksimum per batch untuk pemrosesan mode batch. Untuk informasi selengkapnya, lihat Memahami mode batch dan fungsi machine learning Aurora.model_input
– Satu atau beberapa parameter input untuk model. Ini bisa berupa tipe data apa pun yang dibutuhkan oleh SageMaker model. Postgre SQL memungkinkan Anda menentukan hingga 100 parameter input untuk suatu fungsi. Tipe data array harus satu dimensi, tetapi dapat berisi elemen sebanyak yang diharapkan oleh SageMaker model. Jumlah input ke SageMaker model hanya dibatasi oleh batas ukuran pesan SageMaker 6 MB.model_output
— Output SageMaker model sebagai teks.
Membuat fungsi yang ditentukan pengguna untuk memanggil model SageMaker
Buat fungsi yang ditentukan pengguna terpisah aws_sagemaker.invoke_endpoint
untuk memanggil setiap model Anda SageMaker . Fungsi yang ditentukan pengguna Anda mewakili SageMaker titik akhir yang menghosting model. Fungsi aws_sagemaker.invoke_endpoint
berjalan dalam fungsi yang ditentukan pengguna. Fungsi yang ditentukan pengguna memberikan banyak keuntungan:
-
Anda dapat memberikan nama SageMaker model Anda sendiri alih-alih hanya memanggil
aws_sagemaker.invoke_endpoint
semua SageMaker model Anda. -
Anda dapat menentukan titik akhir model hanya URL di satu tempat dalam kode SQL aplikasi Anda.
-
Anda dapat mengontrol hak istimewa
EXECUTE
untuk setiap fungsi machine learning Aurora secara mandiri. -
Anda dapat mendeklarasikan jenis input dan output model menggunakan SQL tipe. SQLmemberlakukan jumlah dan jenis argumen yang diteruskan ke SageMaker model Anda dan melakukan konversi tipe jika perlu. Menggunakan SQL tipe juga akan diterjemahkan
SQL NULL
ke nilai default yang sesuai yang diharapkan oleh SageMaker model Anda. -
Anda dapat mengurangi ukuran batch maksimum jika Anda ingin menampilkan beberapa baris pertama sedikit lebih cepat.
Untuk menentukan fungsi yang ditentukan pengguna, gunakan pernyataan bahasa definisi SQL data (DDL). CREATE FUNCTION
Saat menentukan fungsi, Anda juga menentukan:
-
Parameter input ke model.
-
SageMaker Titik akhir spesifik untuk dipanggil.
-
Jenis yang ditampilkan.
Fungsi yang ditentukan pengguna mengembalikan inferensi yang dihitung oleh SageMaker titik akhir setelah menjalankan model pada parameter input. Contoh berikut membuat fungsi yang ditentukan pengguna untuk SageMaker model dengan dua parameter input.
CREATE FUNCTION classify_event (IN arg1 INT, IN arg2 DATE, OUT category INT)
AS $$
SELECT aws_sagemaker.invoke_endpoint (
'sagemaker_model_endpoint_name
', NULL,
arg1, arg2 -- model inputs are separate arguments
)::INT -- cast the output to INT
$$ LANGUAGE SQL PARALLEL SAFE COST 5000;
Perhatikan hal berikut:
-
Input fungsi
aws_sagemaker.invoke_endpoint
dapat berupa satu parameter atau lebih dari jenis data apa pun. -
Contoh ini menggunakan tipe INT output. Jika Anda mentransmisikan output dari
varchar
tipe ke tipe yang berbeda, maka itu harus dilemparkan ke tipe skalar SQL bawaan Postgre sepertiINTEGER
,,,REAL
atau.FLOAT
NUMERIC
Untuk informasi selengkapnya tentang jenis ini, lihat Tipe datadalam dokumentasi PostgreSQL. -
Tentukan
PARALLEL SAFE
untuk mengaktifkan pemrosesan kueri paralel. Untuk informasi selengkapnya, lihat Meningkatkan waktu respons dengan pemrosesan kueri paralel. -
Tentukan
COST 5000
untuk mengestimasi biaya menjalankan fungsi. Gunakan bilangan positif yang memberikan estimasi biaya eksekusi untuk fungsi tersebut, dalam unitcpu_operator_cost
.
Melewati array sebagai masukan ke SageMaker model
aws_sagemaker.invoke_endpoint
Fungsi ini dapat memiliki hingga 100 parameter input, yang merupakan batas untuk fungsi PostgreSQL. Jika SageMaker model membutuhkan lebih dari 100 parameter dari jenis yang sama, berikan parameter model sebagai array.
Contoh berikut mendefinisikan fungsi yang melewati array sebagai masukan ke model SageMaker regresi. Output dikirim ke nilai REAL
.
CREATE FUNCTION regression_model (params REAL[], OUT estimate REAL) AS $$ SELECT aws_sagemaker.invoke_endpoint ( '
sagemaker_model_endpoint_name
', NULL, params )::REAL $$ LANGUAGE SQL PARALLEL SAFE COST 5000;
Menentukan ukuran batch saat menjalankan model SageMaker
Contoh berikut membuat fungsi yang ditentukan pengguna untuk SageMaker model yang menetapkan ukuran batch default ke. NULL Fungsi ini juga memungkinkan Anda untuk memberikan ukuran batch yang berbeda saat Anda menginvokasinya.
CREATE FUNCTION classify_event (
IN event_type INT, IN event_day DATE, IN amount REAL, -- model inputs
max_rows_per_batch INT DEFAULT NULL, -- optional batch size limit
OUT category INT) -- model output
AS $$
SELECT aws_sagemaker.invoke_endpoint (
'sagemaker_model_endpoint_name
', max_rows_per_batch,
event_type, event_day, COALESCE(amount, 0.0)
)::INT -- casts output to type INT
$$ LANGUAGE SQL PARALLEL SAFE COST 5000;
Perhatikan hal berikut:
-
Gunakan parameter
max_rows_per_batch
opsional untuk memberikan kontrol jumlah baris untuk invokasi fungsi mode batch. Jika Anda menggunakan nilaiNULL, maka pengoptimal kueri secara otomatis memilih ukuran batch maksimum. Untuk informasi selengkapnya, lihat Memahami mode batch dan fungsi machine learning Aurora. -
Secara default, meneruskan NULL sebagai nilai parameter diterjemahkan ke string kosong sebelum diteruskan ke SageMaker. Untuk contoh ini, input memiliki jenis-jenis yang berbeda.
-
Jika Anda memiliki masukan non-teks, atau input teks yang perlu diatur ke default ke beberapa nilai selain string kosong, gunakan pernyataan
COALESCE
. GunakanCOALESCE
untuk menerjemahkan NULL ke nilai penggantian null yang diinginkan dalam panggilan keaws_sagemaker.invoke_endpoint
. Untukamount
parameter dalam contoh ini, NULL nilai dikonversi menjadi 0,0.
Memanggil SageMaker model yang memiliki banyak output
Contoh berikut menciptakan fungsi yang ditentukan pengguna untuk SageMaker model yang mengembalikan beberapa output. Fungsi Anda perlu mentransmisikan output dari fungsi aws_sagemaker.invoke_endpoint
ke jenis data yang terkait. Misalnya, Anda dapat menggunakan tipe SQL titik Postgre bawaan untuk pasangan (x, y) atau tipe komposit yang ditentukan pengguna.
Fungsi yang ditentukan oleh pengguna ini menampilkan nilai dari model yang menampilkan beberapa output menggunakan jenis gabungan untuk output.
CREATE TYPE company_forecasts AS ( six_month_estimated_return real, one_year_bankruptcy_probability float); CREATE FUNCTION analyze_company ( IN free_cash_flow NUMERIC(18, 6), IN debt NUMERIC(18,6), IN max_rows_per_batch INT DEFAULT NULL, OUT prediction company_forecasts) AS $$ SELECT (aws_sagemaker.invoke_endpoint('endpt_name', max_rows_per_batch,free_cash_flow, debt))::company_forecasts; $$ LANGUAGE SQL PARALLEL SAFE COST 5000;
Untuk jenis komposit, gunakan kolom dalam urutan yang sama seperti yang muncul di output model dan transmisikan keluaran aws_sagemaker.invoke_endpoint
ke jenis komposit Anda. Penelepon dapat mengekstrak bidang individual baik dengan nama atau dengan notasi Postgre SQL “.*”.
Mengekspor data ke Amazon S3 SageMaker untuk pelatihan model (Lanjutan)
Kami menyarankan agar Anda terbiasa dengan pembelajaran mesin Aurora dan SageMaker dengan menggunakan algoritme dan contoh yang disediakan daripada mencoba melatih model Anda sendiri. Untuk informasi selengkapnya, lihat Memulai Amazon SageMaker
Untuk melatih SageMaker model, Anda mengekspor data ke bucket Amazon S3. Bucket Amazon S3 digunakan oleh SageMaker untuk melatih model Anda sebelum digunakan. Anda dapat meminta data dari cluster SQL DB Aurora Postgre dan menyimpannya langsung ke file teks yang disimpan dalam bucket Amazon S3. Kemudian SageMaker mengkonsumsi data dari bucket Amazon S3 untuk pelatihan. Untuk informasi lebih lanjut tentang pelatihan SageMaker model, lihat Melatih model dengan Amazon SageMaker.
catatan
Saat Anda membuat bucket Amazon S3 untuk pelatihan SageMaker model atau penilaian batch, gunakan sagemaker
nama bucket Amazon S3. Untuk informasi selengkapnya, lihat Menentukan Bucket Amazon S3 untuk Mengunggah Kumpulan Data Pelatihan dan Menyimpan Data Output di Panduan Pengembang Amazon. SageMaker
Untuk informasi lebih lanjut tentang mengekspor data Anda, lihat Mengekspor data dari .
Pertimbangan kinerja untuk menggunakan pembelajaran mesin Aurora dengan Aurora Postgre SQL
Amazon SageMaker Comprehend dan layanan melakukan sebagian besar pekerjaan ketika dipanggil oleh fungsi pembelajaran mesin Aurora. Itu berarti Anda dapat menskalakan sumber daya tersebut sesuai kebutuhan, secara mandiri. Untuk cluster Aurora Postgre SQL DB Anda, Anda dapat membuat panggilan fungsi Anda seefisien mungkin. Berikut ini, Anda dapat menemukan beberapa pertimbangan kinerja yang perlu diperhatikan saat bekerja dengan pembelajaran mesin Aurora dari Aurora Postgre. SQL
Topik
Memahami mode batch dan fungsi machine learning Aurora
Biasanya, Postgre SQL menjalankan fungsi satu baris pada satu waktu. Machine learning Aurora dapat mengurangi overhead ini dengan menggabungkan panggilan ke layanan machine learning Aurora eksternal untuk banyak baris menjadi batch dengan pendekatan yang disebut eksekusi mode-batch. Dalam mode batch, machine learning Aurora menerima respons untuk batch baris input, lalu mengirimkan respons kembali ke kueri yang berjalan satu baris dalam satu waktu. Pengoptimalan ini meningkatkan throughput kueri Aurora Anda tanpa membatasi pengoptimal kueri Postgre. SQL
Aurora secara otomatis menggunakan mode batch jika fungsi direferensikan dari daftar SELECT
, klausul WHERE
, atau klausul HAVING
. Perhatikan bahwa ekspresi CASE
sederhana tingkat atas memenuhi syarat untuk eksekusi mode batch. Ekspresi CASE
tingkat atas yang ditelusuri juga memenuhi syarat untuk eksekusi mode-batch asalkan klausul WHEN
pertama adalah predikat sederhana dengan panggilan fungsi mode-batch.
Fungsi yang Anda tentukan harus berupa fungsi LANGUAGE SQL
dan harus mencantumkan PARALLEL SAFE
dan COST 5000
.
Fungsi migrasi dari SELECT pernyataan ke FROM klausa
Biasanya, fungsi aws_ml
yang memenuhi syarat untuk eksekusi mode-batch secara otomatis dimigrasikan oleh Aurora ke klausul FROM
.
Migrasi fungsi mode batch yang memenuhi syarat ke FROM klausa dapat diperiksa secara manual pada tingkat per kueri. Untuk melakukan ini, Anda menggunakan EXPLAIN pernyataan (dan danVERBOSE) ANALYZE dan menemukan informasi “Pemrosesan Batch” di bawah setiap mode batchFunction Scan
. Anda juga dapat menggunakan EXPLAIN (withVERBOSE) tanpa menjalankan kueri. Selanjutnya, amati apakah panggilan ke fungsi tersebut muncul sebagai Function
Scan
di dalam loop join bertingkat yang tidak ditentukan dalam pernyataan asli.
Dalam contoh berikut, operator loop join bertingkat dalam rencana menunjukkan bahwa Aurora memigrasi fungsi anomaly_score
. Ini memigrasikan fungsi ini dari SELECT daftar ke FROM klausa, yang memenuhi syarat untuk eksekusi mode batch.
EXPLAIN (VERBOSE, COSTS false)
SELECT anomaly_score(ts.R.description) from ts.R;
QUERY PLAN
-------------------------------------------------------------
Nested Loop
Output: anomaly_score((r.description)::text)
-> Seq Scan on ts.r
Output: r.id, r.description, r.score
-> Function Scan on public.anomaly_score
Output: anomaly_score.anomaly_score
Function Call: anomaly_score((r.description)::text)
Untuk menonaktifkan eksekusi mode-batch, atur parameter apg_enable_function_migration
ke false
. Ini mencegah migrasi aws_ml
fungsi dari klausa SELECT ke FROM
klausa. Berikut caranya.
SET apg_enable_function_migration = false;
apg_enable_function_migration
Parameter adalah parameter Grand Unified Configuration (GUC) yang dikenali oleh ekstensi Aurora SQL apg_plan_mgmt
Postgre untuk manajemen rencana kueri. Untuk menonaktifkan migrasi fungsi dalam sesi, gunakan manajemen rencana kueri untuk menyimpan rencana yang dihasilkan sebagai rencana approved
. Saat runtime, manajemen rencana kueri menerapkan rencana approved
dengan pengaturan apg_enable_function_migration
-nya. Penegakan ini terjadi terlepas dari pengaturan apg_enable_function_migration
GUC parameter. Untuk informasi selengkapnya, lihat Mengelola rencana eksekusi kueri untuk Aurora Postgre SQL.
Menggunakan parameter max_rows_per_batch
Baik fungsi aws_comprehend.detect_sentiment
maupun fungsi aws_sagemaker.invoke_endpoint
memiliki parameter max_rows_per_batch
. Parameter ini menentukan jumlah baris yang dapat dikirim ke layanan machine learning Aurora. Semakin besar set data yang diproses oleh fungsi Anda, semakin besar ukuran batch yang bisa Anda buat.
Fungsi mode batch meningkatkan efisiensi dengan membangun batch baris yang menyebarkan biaya panggilan fungsi machine learning Aurora melalui banyak baris. Namun, jika pernyataan SELECT
selesai lebih awal karena klausul LIMIT
, maka konsep batch dapat dibuat di lebih banyak baris daripada yang digunakan kueri. Pendekatan ini dapat mengakibatkan biaya tambahan untuk Anda AWS akun. Untuk memanfaatkan eksekusi mode batch, tetapi menghindari pembuatan batch yang terlalu besar, gunakan nilai yang lebih kecil untuk parameter max_rows_per_batch
dalam panggilan fungsi Anda.
Jika Anda melakukan EXPLAIN
(VERBOSE
, ANALYZE
) kueri yang menggunakan eksekusi mode batch, Anda akan melihat operator FunctionScan
yang berada di bawah loop join bertingkat. Jumlah loop yang dilaporkan EXPLAIN
sama dengan frekuensi sebuah baris diambil dari operator FunctionScan
. Jika pernyataan menggunakan LIMIT klausa, jumlah pengambilan konsisten. Untuk mengoptimalkan ukuran batch, atur parameter max_rows_per_batch
ke nilai ini. Namun, jika fungsi mode batch direferensikan dalam predikat dalam klausul WHERE
atau klausul HAVING
, Anda mungkin tidak dapat mengetahui jumlah pengambilan sebelumnya. Dalam kasus ini, gunakan loop sebagai pedoman dan percobaan dengan max_rows_per_batch
untuk menemukan pengaturan yang mengoptimalkan performa.
Memverifikasi eksekusi mode batch
Untuk melihat apakah fungsi berjalan dalam mode batch, gunakan EXPLAIN ANALYZE
. Jika eksekusi mode batch digunakan, rencana kueri akan menyertakan informasi di bagian "Pemrosesan Batch".
EXPLAIN ANALYZE SELECT user-defined-function();
Batch Processing: num batches=1 avg/min/max batch size=3333.000/3333.000/3333.000
avg/min/max batch call time=146.273/146.273/146.273
Dalam contoh ini, ada 1 batch yang berisi 3.333 baris, yang memerlukan waktu proses 146,273 md. Bagian "Pemrosesan Batch" menunjukkan berikut:
-
Banyaknya batch yang tersedia untuk operasi pemindaian fungsi ini
-
Ukuran batch rata-rata, minimum, dan maksimum
-
Rata-rata waktu eksekusi batch, minimum, dan maksimum
Biasanya batch akhir lebih kecil daripada batch lain, yang sering kali menghasilkan ukuran batch minimum yang jauh lebih kecil dari rata-rata.
Untuk menampilkan beberapa baris pertama dengan lebih cepat, atur parameter max_rows_per_batch
ke nilai yang lebih kecil.
Untuk mengurangi jumlah panggilan mode batch ke layanan ML saat Anda menggunakan LIMIT
dalam fungsi yang ditentukan pengguna, atur parameter max_rows_per_batch
ke nilai yang lebih kecil.
Meningkatkan waktu respons dengan pemrosesan kueri paralel
Untuk mendapatkan hasil secepat mungkin dari banyak baris, Anda dapat menggabungkan pemrosesan kueri paralel dengan pemrosesan mode batch. Anda dapat menggunakan pemrosesan kueri paralel untuk pernyataan SELECT
, CREATE TABLE AS SELECT
, dan CREATE
MATERIALIZED VIEW
.
catatan
Postgre SQL belum mendukung query paralel untuk pernyataan bahasa manipulasi data (DML).
Pemrosesan kueri paralel terjadi baik dalam basis data maupun dalam layanan ML. Jumlah inti dalam kelas instans basis data membatasi tingkat paralelisme yang dapat digunakan saat menjalankan kueri. Server basis data dapat membuat konsep rencana eksekusi kueri paralel yang membagi tugas di antara sekumpulan pekerja paralel. Selanjutnya, setiap pekerja ini bisa membangun permintaan batch yang berisi puluhan ribu baris (atau sebanyak yang diizinkan oleh setiap layanan).
Permintaan batch dari semua pekerja paralel dikirim ke titik SageMaker akhir. Tingkat paralelisme yang dapat didukung titik akhir dibatasi oleh jumlah dan jenis instans yang mendukungnya. Untuk K tingkat paralelisme, Anda memerlukan kelas instans basis data yang memiliki setidaknya K inti. Anda juga perlu mengonfigurasi SageMaker titik akhir agar model Anda memiliki K instance awal dari kelas instance berkinerja cukup tinggi.
Untuk menggunakan pemrosesan kueri paralel, Anda dapat mengatur parameter parallel_workers
penyimpanan dari tabel yang berisi data yang ingin Anda teruskan. Anda mengatur parallel_workers
ke fungsi mode-batch seperti aws_comprehend.detect_sentiment
. Jika pengoptimal memilih paket query paralel, AWS Layanan ML dapat dipanggil baik dalam batch maupun paralel.
Anda dapat menggunakan parameter berikut dengan fungsi aws_comprehend.detect_sentiment
untuk mendapatkan rencana dengan paralelisme empat arah. Jika Anda mengubah salah satu dari dua parameter berikut, Anda harus memulai ulang instans basis data untuk menerapkan perubahan.
-- SET max_worker_processes to 8; -- default value is 8
-- SET max_parallel_workers to 8; -- not greater than max_worker_processes
SET max_parallel_workers_per_gather to 4; -- not greater than max_parallel_workers
-- You can set the parallel_workers storage parameter on the table that the data
-- for the Aurora machine learning function is coming from in order to manually override the degree of
-- parallelism that would otherwise be chosen by the query optimizer
--
ALTER TABLE yourTable SET (parallel_workers = 4);
-- Example query to exploit both batch-mode execution and parallel query
EXPLAIN (verbose, analyze, buffers, hashes)
SELECT aws_comprehend.detect_sentiment(description, 'en')).*
FROM yourTable
WHERE id < 100;
Untuk informasi selengkapnya tentang mengendalikan kueri paralel, lihat Rencana paralel
Menggunakan tampilan terwujud dan kolom terwujud
Saat Anda memanggil AWS layanan seperti SageMaker atau Amazon Comprehend dari database Anda, akun Anda dibebankan sesuai dengan kebijakan harga layanan tersebut. Untuk meminimalkan tagihan ke akun Anda, Anda dapat mewujudkan hasil pemanggilan AWS layanan ke dalam kolom terwujud sehingga AWS layanan tidak dipanggil lebih dari sekali per baris input. Jika diinginkan, Anda dapat menambahkan kolom stempel waktu materializedAt
untuk mencatat waktu saat kolom tersebut dibuat.
Latensi pernyataan INSERT
baris tunggal biasa biasanya jauh lebih kecil daripada latensi pemanggilan fungsi mode batch. Dengan demikian, Anda mungkin tidak dapat memenuhi persyaratan latensi aplikasi Anda jika menginvokasi fungsi mode batch untuk setiap baris tunggal INSERT
yang dijalankan oleh aplikasi Anda. Untuk mewujudkan hasil dari memanggil AWS layanan ke dalam kolom terwujud, aplikasi berkinerja tinggi umumnya perlu mengisi kolom terwujud. Untuk melakukannya, aplikasi tersebut secara berkala mengeluarkan pernyataan UPDATE
yang beroperasi pada batch baris yang besar secara bersamaan.
UPDATE
menggunakan penguncian level baris yang dapat memengaruhi aplikasi yang sedang berjalan. Jadi, Anda mungkin perlu menggunakan SELECT ... FOR UPDATE SKIP LOCKED
, atau menggunakan MATERIALIZED
VIEW
.
Kueri analitik yang beroperasi pada banyak baris secara real-time dapat menggabungkan perwujudan mode batch dengan pemrosesan real-time. Untuk melakukan ini, kueri ini mengumpulkan UNION ALL
dari hasil yang telah diwujudkan sebelumnya dengan kueri di atas baris yang belum memiliki hasil yang terwujud. Dalam beberapa kasus, UNION ALL
seperti itu diperlukan di banyak tempat, atau kueri dibuat oleh aplikasi pihak ketiga. Jika demikian, Anda dapat membuat a VIEW
untuk merangkum UNION ALL
operasi sehingga detail ini tidak terpapar ke aplikasi lainnya. SQL
Anda bisa menggunakan tampilan terwujud untuk mewujudkan hasil dari pernyataan SELECT
arbitrer pada snapshot tepat waktu. Anda juga dapat menggunakannya untuk menyegarkan tampilan terwujud kapan saja di masa mendatang. Saat ini Postgre SQL tidak mendukung penyegaran tambahan, jadi setiap kali tampilan terwujud disegarkan, tampilan terwujud dihitung ulang sepenuhnya.
Anda dapat me-refresh tampilan terwujud dengan opsi CONCURRENTLY
, yang memperbarui konten tampilan terwujud tanpa mengambil kunci eksklusif. Melakukan hal ini memungkinkan SQL aplikasi untuk membaca dari tampilan terwujud saat sedang disegarkan.
Memantau machine learning Aurora
Anda dapat memantau fungsi aws_ml
dengan mengatur parameter track_functions
di grup parameter klaster DB kustom Anda ke all
. Secara default, parameter ini diatur ke pl
yang berarti bahwa hanya fungsi bahasa prosedur yang akan dilacak. Dengan mengubah ini menjadi all
, fungsi aws_ml
juga akan dilacak. Untuk informasi selengkapnya, lihat Statistik Run-time
Untuk informasi tentang pemantauan kinerja SageMaker operasi yang dipanggil dari fungsi pembelajaran mesin Aurora, lihat Memantau Amazon SageMaker di Panduan SageMaker Pengembang Amazon.
Dengan track_functions
diatur ke all
, Anda dapat mengueri tampilan pg_stat_user_functions
untuk mendapatkan statistik tentang fungsi yang Anda tentukan dan gunakan untuk menginvokasi layanan machine learning Aurora. Untuk setiap fungsi, tampilan ini memberikan jumlah calls
, total_time
, dan self_time
.
Untuk melihat statistik untuk fungsi aws_sagemaker.invoke_endpoint
dan aws_comprehend.detect_sentiment
, Anda dapat memfilter hasil berdasarkan nama skema menggunakan kueri berikut.
SELECT * FROM pg_stat_user_functions WHERE schemaname LIKE 'aws_%';
Untuk menghapus statistik, ikuti langkah berikut.
SELECT pg_stat_reset();
Anda bisa mendapatkan nama SQL fungsi Anda yang memanggil aws_sagemaker.invoke_endpoint
fungsi dengan menanyakan katalog sistem Postgre SQLpg_proc
. Katalog ini menyimpan informasi tentang fungsi, prosedur, dan banyak lagi. Untuk informasi selengkapnya, lihat pg_procproname
) yang sumbernya (prosrc
) mencakup teks invoke_endpoint.
SELECT proname FROM pg_proc WHERE prosrc LIKE '%invoke_endpoint%';