Menggunakan machine learning Amazon Aurora dengan Aurora PostgreSQL - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan machine learning Amazon Aurora dengan Aurora PostgreSQL

Dengan menggunakan pembelajaran mesin Amazon Aurora dengan cluster DB Aurora PostgreSQL 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 versi tertentu Wilayah AWS dan khusus dari Aurora PostgreSQL saja. Sebelum mencoba menyiapkan machine learning Aurora, periksa ketersediaan untuk versi Aurora PostgreSQL dan Wilayah Anda. Untuk detailnya, lihat Machine learning Aurora dengan Aurora PostgreSQL.

Persyaratan untuk menggunakan machine learning Aurora dengan Aurora PostgreSQL

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 menyiapkan klaster DB Aurora PostgreSQL untuk menggunakan machine learning Aurora, pastikan Anda memahami persyaratan dan prasyarat berikut.

  • Layanan Amazon SageMaker Comprehend,, dan Amazon Bedrock harus berjalan Wilayah AWS sama dengan cluster DB PostgreSQL Aurora Anda. Anda tidak dapat menggunakan layanan Amazon SageMaker Comprehend atau Amazon Bedrock dari klaster DB PostgreSQL Aurora di Wilayah yang berbeda.

  • Jika klaster DB PostgreSQL Aurora Anda berada di cloud publik virtual (VPC) yang berbeda berdasarkan layanan Amazon VPC daripada Amazon Comprehend dan layanan Amazon Comprehend Anda, grup Keamanan VPC perlu mengizinkan koneksi keluar SageMaker ke layanan pembelajaran mesin Aurora target. Untuk informasi selengkapnya, lihat Mengaktifkan komunikasi jaringan dari Amazon Aurora MySQL ke layanan AWS lainnya.

  • Untuk SageMaker, komponen pembelajaran mesin yang ingin Anda gunakan untuk kesimpulan harus diatur dan siap digunakan. Selama proses konfigurasi untuk klaster DB PostgreSQL Aurora, Anda harus memiliki Nama Sumber Daya Amazon (ARN) dari titik akhir 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 PostgreSQL Aurora Anda. 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 batasan machine learning Aurora dengan Aurora PostgreSQL

Pembelajaran mesin Aurora mendukung setiap SageMaker titik akhir yang dapat membaca dan menulis format nilai 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 (UDF) menyediakan cara asli untuk berinteraksi dengan Amazon Bedrock. UDF tidak memiliki permintaan atau persyaratan respons khusus, sehingga mereka dapat menggunakan model apa pun.

  • Anda dapat menggunakan UDF untuk membangun alur kerja apa pun 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.

  • UDF tidak 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 Aurora PostgreSQL DB Anda.

Menyiapkan klaster DB Aurora PostgreSQL untuk menggunakan machine learning Aurora

Agar pembelajaran mesin Aurora dapat bekerja dengan cluster DB PostgreSQL Aurora Anda, Anda perlu membuat peran AWS Identity and Access Management (IAM) untuk setiap layanan yang ingin Anda gunakan. Peran IAM memungkinkan klaster DB Aurora PostgreSQL Anda menggunakan layanan machine learning Aurora atas nama klaster. Anda juga perlu menginstal ekstensi machine learning Aurora. Dalam topik berikut, Anda dapat menemukan prosedur penyiapan untuk masing-masing layanan machine learning Aurora ini.

Menyiapkan Aurora PostgreSQL untuk menggunakan Amazon Bedrock

Dalam prosedur berikut, pertama-tama Anda membuat peran dan kebijakan IAM yang memberikan izin Aurora PostgreSQL Anda untuk menggunakan Amazon Bedrock atas nama klaster. Anda kemudian melampirkan kebijakan ke peran IAM yang digunakan klaster Aurora PostgreSQL DB Anda untuk bekerja dengan Amazon Bedrock. Demi kesederhanaan, prosedur ini menggunakan AWS Management Console untuk menyelesaikan semua tugas.

Untuk mengatur cluster DB PostgreSQL Aurora Anda untuk menggunakan Amazon Bedrock
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  3. Pilih Kebijakan (di bawah Manajemen akses) pada menu Konsol AWS Identity and Access Management (IAM).

    1. 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.

    2. Pilih model Foundation/Provisioned yang ingin Anda berikan akses baca melalui kebijakan.

      Membuat kebijakan IAM yang akan digunakan untuk Amazon Bedrock.
  4. Pilih Berikutnya: Tag dan tentukan tag apa pun (opsional). Pilih Berikutnya: Peninjauan. Masukkan nama untuk kebijakan dan deskripsi, seperti diperlihatkan pada gambar.

    Membuat kebijakan untuk peran IAM yang akan digunakan untuk Amazon Bedrock.
  5. Pilih Buat kebijakan. Konsol menampilkan peringatan saat kebijakan telah disimpan. Anda dapat menemukannya di daftar Kebijakan.

  6. Pilih Peran (di bagian Manajemen akses) di Konsol IAM.

  7. Pilih Buat peran.

  8. Di halaman Pilih entitas tepercaya, pilih kotak layanan AWS , lalu pilih RDS untuk membuka pemilih.

  9. Pilih RDS – Tambahkan Peran ke Basis Data.

    Membuat peran untuk Aurora PostgreSQL untuk bekerja dengan Amazon Bedrock.
  10. Pilih Selanjutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Selanjutnya.

  11. Berikutnya: Tinjau. Masukkan nama peran IAM dan deskripsinya.

  12. Buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  13. Arahkan ke Wilayah AWS tempat cluster Aurora PostgreSQL DB Anda berada.

  14. Di panel navigasi, pilih Databases, dan kemudian pilih cluster Aurora PostgreSQL DB yang ingin Anda gunakan dengan Bedrock.

  15. Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola peran IAM pada halaman. Dari pemilih Tambahkan peran IAM ke 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 klaster DB Aurora PostgreSQL. Setelah proses selesai, peran tersebut dicantumkan dalam peran IAM saat ini untuk daftar klaster ini, seperti yang ditunjukkan berikut.

Peran Amazon Bedrock telah ditambahkan ke cluster Aurora PostgreSQL DB dan sekarang Aktif.

Pengaturan IAM untuk Amazon Bedrock selesai. Lanjutkan penyiapan Aurora PostgreSQL Anda untuk bekerja dengan machine learning Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam Menginstal ekstensi machine learning Aurora

Menyiapkan Aurora PostgreSQL untuk menggunakan Amazon Comprehend

Dalam prosedur berikut, pertama-tama Anda membuat kebijakan dan peran IAM yang memberikan izin kepada Aurora PostgreSQL untuk menggunakan Amazon Comprehend atas nama klaster. Anda kemudian melampirkan kebijakan ke peran IAM yang digunakan klaster DB Aurora PostgreSQL untuk bekerja dengan Amazon Comprehend. Untuk memudahkan, prosedur ini menggunakan AWS Management Console untuk menyelesaikan semua tugas.

Untuk menyiapkan klaster DB Aurora PostgreSQL untuk menggunakan Amazon Comprehend
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  3. Pilih Kebijakan (di bawah Manajemen akses) pada menu Konsol AWS Identity and Access Management (IAM).

    Membuat kebijakan IAM yang akan digunakan untuk Amazon Comprehend.
  4. 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.

  5. Pilih Berikutnya: Tag dan tentukan tag apa pun (opsional). Pilih Berikutnya: Peninjauan. Masukkan nama untuk kebijakan dan deskripsi, seperti diperlihatkan pada gambar.

    Membuat kebijakan untuk peran IAM yang akan digunakan untuk Amazon Comprehend.
  6. Pilih Buat kebijakan. Konsol menampilkan peringatan saat kebijakan telah disimpan. Anda dapat menemukannya di daftar Kebijakan.

  7. Pilih Peran (di bagian Manajemen akses) di Konsol IAM.

  8. Pilih Buat peran.

  9. Di halaman Pilih entitas tepercaya, pilih kotak layanan AWS , lalu pilih RDS untuk membuka pemilih.

  10. Pilih RDS – Tambahkan Peran ke Basis Data.

    Membuat peran untuk Aurora PostgreSQL untuk bekerja dengan Amazon Comprehend.
  11. Pilih Selanjutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Selanjutnya

  12. Berikutnya: Tinjau. Masukkan nama peran IAM dan deskripsinya.

  13. Buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  14. Arahkan ke Wilayah AWS tempat cluster Aurora PostgreSQL DB Anda berada.

  15. Di panel navigasi, pilih Basis data, lalu pilih klaster DB Aurora PostgreSQL yang ingin digunakan dengan Amazon Comprehend.

  16. Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola peran IAM pada halaman. Dari pemilih Tambahkan peran IAM ke klaster ini, pilih peran yang Anda buat di langkah sebelumnya. Di pemilih Fitur, pilih Comprehend, lalu pilih Tambah peran.

Peran (dengan kebijakannya) dikaitkan dengan klaster DB Aurora PostgreSQL. Setelah proses selesai, peran tersebut dicantumkan dalam peran IAM saat ini untuk daftar klaster ini, seperti yang ditunjukkan berikut.

Peran Amazon Comprehend telah ditambahkan ke klaster DB Aurora PostgreSQL dan sekarang Aktif.

Penyiapan IAM untuk Amazon Comprehend selesai. Lanjutkan penyiapan Aurora PostgreSQL Anda untuk bekerja dengan machine learning Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam Menginstal ekstensi machine learning Aurora

Menyiapkan Aurora PostgreSQL untuk menggunakan Amazon SageMaker

Sebelum Anda dapat membuat kebijakan dan peran IAM untuk klaster Aurora PostgreSQL DB Anda, Anda harus memiliki pengaturan model dan titik akhir yang tersedia. SageMaker

Untuk mengatur cluster DB PostgreSQL Aurora Anda untuk digunakan SageMaker
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Pilih Kebijakan (di bawah Manajemen akses) pada menu Konsol AWS Identity and Access Management (IAM), 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.

  3. Buka pemilih Resources dan pilih tautan Tambahkan ARN untuk membatasi akses di bawah Tentukan ARN sumber daya titik akhir untuk tindakan tersebut. InvokeEndpoint

  4. Masukkan Wilayah AWS sumber SageMaker daya Anda dan nama titik akhir Anda. AWS Akun Anda sudah diisi sebelumnya.

    Menentukan ARN untuk titik akhir untuk Kebijakan IAM.
  5. Pilih Tambah untuk menyimpan. Pilih Berikutnya: Tag dan Berikutnya: Tinjau untuk membuka halaman terakhir proses pembuatan kebijakan.

  6. 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.

  7. Di Konsol IAM, pilih Peran.

  8. Pilih Buat peran.

  9. Di halaman Pilih entitas tepercaya, pilih kotak layanan AWS , lalu pilih RDS untuk membuka pemilih.

  10. Pilih RDS – Tambahkan Peran ke Basis Data.

  11. Pilih Selanjutnya. Di halaman Tambahkan izin, temukan kebijakan yang Anda buat di langkah sebelumnya dan pilih kebijakan dari daftar tersebut. Pilih Selanjutnya

  12. Berikutnya: Tinjau. Masukkan nama peran IAM dan deskripsinya.

  13. Buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  14. Arahkan ke Wilayah AWS tempat cluster Aurora PostgreSQL DB Anda berada.

  15. Di panel navigasi, pilih Databases, lalu pilih cluster Aurora PostgreSQL DB yang ingin Anda gunakan. SageMaker

  16. Pilih tab Konektivitas & keamanan dan gulir untuk menemukan bagian Kelola peran IAM pada halaman. Dari pemilih Tambahkan peran IAM ke klaster ini, pilih peran yang Anda buat di langkah sebelumnya. Di pemilih Fitur, pilih SageMaker, lalu pilih Tambah peran.

Peran (dengan kebijakannya) dikaitkan dengan klaster DB Aurora PostgreSQL. Saat proses selesai, peran tersebut tercantum dalam peran IAM saat ini untuk daftar klaster ini.

Pengaturan IAM untuk SageMaker selesai. Lanjutkan penyiapan Aurora PostgreSQL Anda untuk bekerja dengan machine learning Aurora dengan menginstal ekstensi seperti yang dijelaskan dalam Menginstal ekstensi machine learning Aurora.

Menyiapkan Aurora PostgreSQL untuk menggunakan 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) Simple Storage Service (Amazon S3) untuk klaster Aurora PostgreSQL DB untuk digunakan. Ini adalah topik lanjutan, dan tidak sepenuhnya didokumentasikan dalam Panduan Pengguna Amazon Aurora ini. Proses umumnya sama dengan mengintegrasikan dukungan untuk SageMaker, sebagai berikut.

  1. Buat kebijakan dan peran IAM untuk Amazon S3.

  2. Tambahkan peran IAM dan impor atau ekspor Amazon S3 sebagai fitur pada tab Konektivitas & keamanan klaster Aurora PostgreSQL DB Anda.

  3. Tambahkan ARN peran ke grup parameter klaster DB kustom Anda untuk klaster DB Aurora Anda.

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. Menginstal ekstensi ini di cluster Aurora PostgreSQL DB Anda juga menciptakan peran administratif untuk fitur tersebut.

catatan

Menggunakan fungsi-fungsi ini tergantung pada penyiapan IAM untuk layanan pembelajaran mesin Aurora (Amazon Comprehend,, Amazon Bedrock) yang lengkap SageMaker, seperti yang dijelaskan dalam. Menyiapkan klaster DB Aurora PostgreSQL untuk menggunakan machine learning Aurora

  • aws_comprehend.detect_sentiment – Anda menggunakan fungsi ini untuk menerapkan analisis sentimen ke teks yang disimpan dalam basis data pada klaster DB Aurora PostgreSQL Anda.

  • aws_sagemaker.invoke_endpoint — Anda menggunakan fungsi ini dalam kode SQL Anda untuk berkomunikasi dengan titik akhir dari cluster Anda. SageMaker

  • aws_bedrock.invoke_model — Anda menggunakan fungsi ini dalam kode SQL Anda untuk berkomunikasi dengan Model Batuan Dasar dari cluster Anda. Respon fungsi ini akan dalam format TEXT, jadi jika model merespons dalam format badan JSON 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 SQL Anda untuk memanggil Model Bedrock yang mengembalikan penyematan keluaran dalam respons JSON. Ini dapat dimanfaatkan saat Anda ingin mengekstrak penyematan yang terkait langsung dengan json-key untuk merampingkan respons dengan alur kerja yang dikelola sendiri.

Menyiapkan ekstensi machine learning Aurora dalam klaster DB Aurora PostgreSQL Anda
  • Gunakan psql untuk terhubung ke instans penulis klaster DB Aurora PostgreSQL. Hubungkan ke basis data tertentu tempat untuk menginstal ekstensi aws_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 dua skema baru, sebagai berikut.

  • aws_comprehend – Skema untuk layanan Amazon Comprehend dan sumber fungsi detect_sentiment (aws_comprehend.detect_sentiment).

  • aws_sagemaker— Skema untuk SageMaker layanan dan sumber invoke_endpoint fungsi (aws_sagemaker.invoke_endpoint).

  • aws_bedrock— Skema untuk layanan Amazon Bedrock dan sumber invoke_model(aws_bedrock.invoke_model) dan invoke_model_get_embeddings(aws_bedrock.invoke_model_get_embeddings) fungsi.

Peran rds_superuser diberi peran administratif aws_ml dan dibuat OWNER dari dua skema machine learning 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 Aurora PostgreSQL DB 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 klaster DB Aurora PostgreSQL untuk menggunakan machine learning Aurora.

aws_bedrock.invoke_model

Fungsi ini mengambil teks yang diformat dalam JSON sebagai input dan memprosesnya untuk berbagai model yang dihosting di Amazon Bedrock dan mendapatkan kembali respons teks JSON 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 aplikasi/JSON 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 PostgreSQL I/O monitoring views.

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 klaster DB Aurora PostgreSQL

Untuk Aurora PostgreSQL, machine learning Aurora menyediakan fungsi Amazon Comprehend berikut agar berfungsi dengan data teks Anda. Fungsi ini hanya tersedia setelah Anda menginstal ekstensi aws_ml dan menyelesaikan semua prosedur penyiapan. Untuk informasi selengkapnya, lihat Menyiapkan klaster DB Aurora PostgreSQL untuk menggunakan machine learning 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 input_text yang diidentifikasi menggunakan ID 2-huruf ISO 639-1 dengan sub-tag 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, yang diidentifikasi sebagai POSITIVE, NEGATIVE, NEUTRAL, atau MIXED.

  • confidence – Tingkat kepercayaan dalam keakuratan yang ditentukan sentiment. 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 performa untuk machine learning Aurora dengan Aurora PostgreSQL.

Menggunakan SageMaker dengan cluster DB PostgreSQL Aurora Anda

Setelah menyiapkan SageMaker lingkungan Anda dan mengintegrasikan dengan Aurora PostgreSQL seperti yang Menyiapkan Aurora PostgreSQL untuk menggunakan Amazon SageMaker diuraikan dalam, Anda dapat memanggil operasi dengan menggunakan fungsi. aws_sagemaker.invoke_endpoint Fungsi aws_sagemaker.invoke_endpoint hanya terhubung ke titik akhir model dalam Wilayah AWS yang sama. Jika instance database Anda memiliki replika dalam beberapa, Wilayah AWS pastikan Anda menyiapkan dan menerapkan setiap SageMaker model ke setiap model. Wilayah AWS

Panggilan ke aws_sagemaker.invoke_endpoint diautentikasi menggunakan peran IAM yang Anda atur untuk mengaitkan klaster DB PostgreSQL Aurora 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_nameURL tidak berisi ID akun. SageMaker menentukan ID akun dari token otentikasi yang disediakan oleh peran SageMaker IAM dari 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— URL titik akhir 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. PostgreSQL memungkinkan Anda menentukan hingga 100 parameter input untuk satu 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 URL titik akhir model hanya di satu tempat di kode aplikasi SQL Anda.

  • Anda dapat mengontrol hak istimewa EXECUTE untuk setiap fungsi machine learning Aurora secara mandiri.

  • Anda dapat menyatakan jenis input dan output model menggunakan jenis SQL. SQL memberlakukan jumlah dan jenis argumen yang diteruskan ke SageMaker model Anda dan melakukan konversi tipe jika perlu. Menggunakan tipe SQL juga akan menerjemahkan 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 data (DDL) SQL 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 jenis output INT. Jika Anda mengirimkan output dari jenis varchar ke jenis yang berbeda, output ini harus dikirimkan ke jenis tipe skalar default PostgreSQL seperti INTEGER, REAL, FLOAT, atau NUMERIC. Untuk informasi selengkapnya tentang jenis ini, lihat Data types dalam 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 unit cpu_operator_cost.

Melewati array sebagai masukan ke SageMaker model

Fungsi aws_sagemaker.invoke_endpoint 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 nilai NULL, 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. Gunakan COALESCE untuk menerjemahkan NULL ke nilai pengganti null yang diinginkan dalam panggilan ke aws_sagemaker.invoke_endpoint. Untuk parameter amount dalam contoh ini, nilai NULL dikonversi menjadi 0,0.

Memohon 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 jenis titik PostgreSQL default untuk pasangan (x,y) atau jenis komposit yang ditentukan oleh 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. Pemanggil dapat mengekstrak kolom satu per satu, baik dengan nama maupun dengan notasi ".*" PostgreSQL.

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 membuat kueri data dari klaster DB Aurora PostgreSQL dan menyimpannya langsung ke dalam 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 klaster DB Aurora PostgreSQL ke Amazon S3.

Pertimbangan performa untuk machine learning Aurora dengan Aurora PostgreSQL

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 klaster DB Aurora PostgreSQL, Anda dapat membuat panggilan fungsi seefisien mungkin. Berikut ini, Anda dapat menemukan beberapa pertimbangan performa yang perlu diperhatikan saat bekerja dengan machine learning Aurora dari Aurora PostgreSQL.

Memahami mode batch dan fungsi machine learning Aurora

Biasanya, PostgreSQL menjalankan fungsi satu baris dalam 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 PostgreSQL.

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.

Migrasi fungsi dari pernyataan SELECT ke klausul FROM

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 klausul FROM dapat diperiksa secara manual pada tingkat per kueri. Untuk melakukan ini, gunakan pernyataan EXPLAIN (serta ANALYZE dan VERBOSE) dan cari informasi "Pemrosesan Batch" di bawah setiap mode batch Function Scan. Anda juga dapat menggunakan EXPLAIN (dengan VERBOSE) 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. Fungsi ini dimigrasikan dari daftar SELECT ke klausul FROM, 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. Hal ini mencegah migrasi dari fungsi aws_ml dari SELECT ke klausul FROM. Berikut caranya.

SET apg_enable_function_migration = false;

Parameter apg_enable_function_migration adalah parameter Grand Unified Configuration (GUC) yang dikenali oleh ekstensi apg_plan_mgmt Aurora PostgreSQL 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. Penerapan ini terjadi, terlepas dari pengaturan parameter GUC apg_enable_function_migration. Untuk informasi selengkapnya, lihat Mengelola rencana eksekusi kueri untuk Aurora PostgreSQL.

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 ke AWS akun Anda. 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 klausul LIMIT, jumlah pengambilannya 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

PostgreSQL belum mendukung kueri 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, layanan AWS 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 cara mengontrol kueri paralel, lihat Parallel plans di dokumentasi PostgreSQL.

Menggunakan tampilan terwujud dan kolom terwujud

Ketika Anda memanggil AWS layanan seperti SageMaker atau Amazon Comprehend dari database Anda, akun Anda dibebankan sesuai dengan kebijakan harga layanan tersebut. Untuk meminimalkan biaya ke akun Anda, Anda dapat mewujudkan hasil pemanggilan AWS layanan ke kolom yang 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 pemanggilan AWS layanan ke dalam kolom yang terwujud, aplikasi berkinerja tinggi umumnya perlu mengisi kolom yang 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 VIEW untuk merangkum operasi UNION ALL sehingga detail ini tidak diekspos ke aplikasi SQL lainnya.

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, PostgreSQL tidak mendukung refresh inkremental, sehingga setiap kali tampilan terwujud di-refresh, tampilan terwujud akan dihitung ulang sepenuhnya.

Anda dapat me-refresh tampilan terwujud dengan opsi CONCURRENTLY, yang memperbarui konten tampilan terwujud tanpa mengambil kunci eksklusif. Tindakan ini memungkinkan aplikasi SQL membaca dari tampilan terwujud saat sedang di-refresh.

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 Run-time Statistics dalam dokumentasi PostgreSQL.

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 fungsi SQL Anda yang memanggil fungsi aws_sagemaker.invoke_endpoint dengan mengueri katalog sistem pg_proc PostgreSQL. Katalog ini menyimpan informasi tentang fungsi, prosedur, dan banyak lagi. Untuk informasi selengkapnya, lihat pg_proc dalam dokumentasi PostgreSQL. Berikut ini adalah contoh mengueri tabel untuk mendapatkan nama-nama fungsi (proname) yang sumbernya (prosrc) mencakup teks invoke_endpoint.

SELECT proname FROM pg_proc WHERE prosrc LIKE '%invoke_endpoint%';