View a markdown version of this page

Pre-check wadah model - Amazon SageMaker AI

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

Pre-check wadah model

Bagian ini menunjukkan cara memeriksa terlebih dahulu input dan output wadah model untuk kompatibilitas sebelum mengonfigurasi titik akhir. Pen SageMaker jelasan Clarify adalah model agnostik, tetapi memiliki persyaratan untuk input dan output wadah model.

catatan

Anda dapat meningkatkan efisiensi dengan mengonfigurasi wadah Anda untuk mendukung permintaan batch, yang mendukung dua atau lebih catatan dalam satu permintaan. Misalnya, satu catatan adalah satu baris data CSV, atau satu baris data Garis JSON. SageMaker Clarify akan mencoba mengirim sejumlah kecil catatan ke wadah model terlebih dahulu sebelum kembali ke permintaan catatan tunggal.

Masukan wadah model

CSV

Wadah model mendukung input dalam CSV dengan tipe MIME:text/csv. Tabel berikut menunjukkan contoh input yang didukung SageMaker Clarify.

Masukan wadah model (representasi string) Komentar

'1,2,3,4'

Catatan tunggal yang menggunakan empat fitur numerik.

'1,2,3,4\ n 5,6,7,8'

Dua catatan, dipisahkan oleh jeda baris '\ n'.

“Ini adalah produk yang bagus” ,5'

Catatan tunggal yang berisi fitur teks dan fitur numerik.

'"Ini adalah produk yang bagus” ,5\ n “Pengalaman belanja yang buruk” ,1'

Dua catatan.

JSON Lines

SageMaker AI juga mendukung input dalam format padat JSON Lines dengan tipe MIME:application/jsonlines, seperti yang ditunjukkan pada tabel berikut.

Masukan wadah model Komentar

'{"data”: {"fitur”: [1,2,3,4]}}'

Catatan tunggal; daftar fitur dapat diekstraksi oleh ekspresi JMESPath. data.features

'{"data”: {"fitur”: [1,2,3,4]}}\n{"data”: {"fitur”: [5,6,7,8]}}'

Dua catatan.

'{"features”: ["Ini adalah produk yang bagus” ,5]}'

Catatan tunggal; daftar fitur dapat diekstraksi oleh ekspresi JMESPath. features

'{"features”: ["Ini adalah produk yang bagus” ,5]}\n{"features”: ["Pengalaman belanja yang buruk” ,1]}'

Dua catatan.

Model keluaran kontainer

Output wadah model Anda juga harus dalam format padat CSV, atau JSON Lines. Selain itu wadah model harus menyertakan probabilitas catatan input, yang digunakan Clarify SageMaker untuk menghitung atribusi fitur.

Contoh data berikut adalah untuk output wadah model dalam format CSV.

Probability only

Untuk masalah regresi dan klasifikasi biner, wadah model mengeluarkan nilai probabilitas tunggal (skor) dari label yang diprediksi. Probabilitas ini dapat diekstraksi menggunakan indeks kolom 0. Untuk masalah multi-kelas, wadah model mengeluarkan daftar probabilitas (skor). Untuk masalah multi-kelas, jika tidak ada indeks yang disediakan, semua nilai diekstraksi.

Masukan wadah model Model output wadah (representasi string)

Catatan tunggal

'0,6'

Dua catatan (hasil dalam satu baris)

'0,6,0,3'

Dua catatan (menghasilkan dua baris)

'0.6\ n 0.3'

Catatan tunggal model multi-kelas (tiga kelas)

'0,1,0,6,0,3'

Dua catatan model multi-kelas (tiga kelas)

'0.1,0.6,0.3\ n 0.2,0.5,0.3'

Predicted label and probabilities

Wadah model mengeluarkan label yang diprediksi diikuti oleh probabilitasnya dalam format CSV. Probabilitas dapat diekstraksi menggunakan indeks1.

Masukan wadah model Model keluaran kontainer

Catatan tunggal

'1,0,6'

Dua catatan

'1,0.6\ n 0,0.3'

Predicted labels header and probabilities

Kontainer model multi-kelas yang dilatih oleh Autopilot dapat dikonfigurasi untuk menampilkan represent asi string dari daftar label dan probabilitas yang diprediksi dalam format CSV. Dalam contoh berikut, probabilitas dapat diekstraksi dengan indeks1. Header label dapat diekstraksi dengan indeks1, dan header label dapat diekstraksi menggunakan indeks. 0

Masukan wadah model Model keluaran kontainer

Catatan tunggal

'"[\ 'kucing\',\ 'dog\ ',\ 'ikan\']”, "[0.1,0.6,0.3]" '

Dua catatan

'"[\ 'cat\',\ 'dog\ ',\ 'ikan\']”, "[0.1,0.6,0.3]”\n“[\ 'kucing\ ',\ 'dog\',\ 'ikan\ ']”, "[0.2,0.5,0.3]"'

Contoh data berikut adalah untuk output wadah model dalam format Garis JSON.

Probability only

Dalam contoh ini, wadah model mengeluarkan probabilitas yang dapat diekstraksi dengan JMESPath ekspresi score dalam format Garis JSON.

Masukan wadah model Model keluaran kontainer

Catatan tunggal

'{"skor” :0.6}'

Dua catatan

'{"skor” :0.6}\n{"skor” :0.3}'

Predicted label and probabilities

Dalam contoh ini, wadah model multi-kelas mengeluarkan daftar header label bersama dengan daftar probabilitas dalam format Garis JSON. Probabilitas dapat diekstraksi dengan JMESPath ekspresiprobability, dan header label dapat diekstraksi dengan JMESPath ekspresi. predicted labels

Masukan wadah model Model keluaran kontainer

Catatan tunggal

'{"predicted_labels”: ["cat”, "dog”, "ikan "], "probabilitas”: [0.1,0.6,0.3]}'

Dua catatan

'{"predicted_labels”: ["cat”, "dog”, "fish "], "probabilities”: [0.1,0.6,0.3]}\n{"predicted_labels”: ["kucing”, "dog”, "ikan "], "probabilitas”: [0.2,0.5,0.3]}'

Predicted labels header and probabilities

Dalam contoh ini, wadah model multi-kelas mengeluarkan daftar header label dan probabilitas dalam format Garis JSON. Probabilitas dapat diekstraksi dengan JMESPath ekspresiprobability, dan header label dapat diekstraksi dengan JMESPath ekspresi. predicted labels

Masukan wadah model Model keluaran kontainer

Catatan tunggal

'{"predicted_labels”: ["cat”, "dog”, "ikan "], "probabilitas”: [0.1,0.6,0.3]}'

Dua catatan

'{"predicted_labels”: ["cat”, "dog”, "fish "], "probabilities”: [0.1,0.6,0.3]}\n{"predicted_labels”: ["kucing”, "dog”, "ikan "], "probabilitas”: [0.2,0.5,0.3]}'

Validasi kontainer model

Sebaiknya gunakan model Anda ke titik akhir inferensi real-time SageMaker AI, dan mengirim permintaan ke titik akhir. Periksa permintaan (input wadah model) dan respons (output wadah model) secara manual untuk memastikan bahwa keduanya sesuai dengan persyaratan di bagian Model Container Input dan bagian Model Container Output. Jika wadah model Anda mendukung permintaan batch, Anda dapat memulai dengan permintaan rekaman tunggal, lalu mencoba dua atau lebih catatan.

Perintah berikut menunjukkan cara meminta respons menggunakan AWS CLI. Ini AWS CLI sudah diinstal sebelumnya di SageMaker Studio Classic, dan instance SageMaker Notebook. Jika Anda perlu menginstal AWS CLI, ikuti panduan instalasi ini.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name $ENDPOINT_NAME \ --content-type $CONTENT_TYPE \ --accept $ACCEPT_TYPE \ --body $REQUEST_DATA \ $CLI_BINARY_FORMAT \ /dev/stderr 1>/dev/null

Parameter didefinisikan, sebagai berikut:

  • $ENDPOINT NAME: Nama titik akhir.

  • $CONTENT_TYPE: Jenis MIME dari permintaan (input wadah model).

  • $ACCEPT_TYPE: Jenis MIME dari respons (output wadah model).

  • $REQUEST_DATA: String payload yang diminta.

  • $CLI_BINARY_FORMAT: Format parameter antarmuka baris perintah (CLI). Untuk AWS CLI v1, parameter ini harus tetap kosong. Untuk v2, parameter ini harus diatur ke--cli-binary-format raw-in-base64-out.

catatan

AWS CLI v2 meneruskan parameter biner sebagai string yang dikodekan base64 default.

Contoh berikut menggunakan AWS CLI v1:

Request and response in CSV format
  • Permintaan terdiri dari satu catatan dan responsnya adalah nilai probabilitasnya.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Output:

    0.6

  • Permintaan terdiri dari dua catatan, dan respons mencakup probabilitasnya, dan model memisahkan probabilitas dengan koma. Ek $'content' spresi dalam --body memberitahu perintah untuk menafsirkan \n konten sebagai jeda baris.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    0.6,0.3

  • Permintaan terdiri dari dua catatan, respons mencakup probabilitasnya, dan model memisahkan probabilitas dengan jeda baris.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    0.6

    0.3

  • Permintaan terdiri dari satu catatan, dan responsnya adalah nilai probabilitas (model multi-kelas, tiga kelas).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Output:

    0.1,0.6,0.3

  • Permintaan terdiri dari dua catatan, dan respons mencakup nilai probabilitasnya (model multi-kelas, tiga kelas).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    0.1,0.6,0.3

    0.2,0.5,0.3

  • Permintaan terdiri dari dua catatan, dan responsnya mencakup label dan probabilitas yang diprediksi.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-2 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    1,0.6

    0,0.3

  • Permintaan terdiri dari dua catatan dan tanggapan termasuk header label dan probabilitas.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-3 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    "['cat','dog','fish']","[0.1,0.6,0.3]"

    "['cat','dog','fish']","[0.2,0.5,0.3]"

Request and response in JSON Lines format
  • Permintaan terdiri dari satu catatan dan responsnya adalah nilai probabilitasnya.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines \ --content-type application/jsonlines \ --accept application/jsonlines \ --body '{"features":["This is a good product",5]}' \ /dev/stderr 1>/dev/null

    Output:

    {"score":0.6}

  • Permintaan berisi dua catatan, dan responsnya mencakup label dan probabilitas yang diprediksi.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-2 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    Output:

    {"predicted_label":1,"probability":0.6}

    {"predicted_label":0,"probability":0.3}

  • Permintaan berisi dua catatan dan respons termasuk header label dan probabilitas.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-3 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}' \ /dev/stderr 1>/dev/null

    Output:

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}

Request and response in different formats
  • Permintaan dalam format CSV dan responsnya dalam format JSON Lines:

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-in-jsonlines-out \ --content-type text/csv \ --accept application/jsonlines \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Output:

    {"probability":0.6}

    {"probability":0.3}

  • Permintaan dalam format JSON Lines dan responsnya dalam format CSV:

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-in-csv-out \ --content-type application/jsonlines \ --accept text/csv \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    Output:

    0.6

    0.3

Setelah validasi selesai, hapus titik akhir pengujian.