Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengaitkan Hasil Prediksi dengan Catatan Input
Saat membuat prediksi pada kumpulan data besar, Anda dapat mengecualikan atribut yang tidak diperlukan untuk prediksi. Setelah prediksi dibuat, Anda dapat mengaitkan beberapa atribut yang dikecualikan dengan prediksi tersebut atau dengan data masukan lainnya dalam laporan Anda. Dengan menggunakan transformasi batch untuk melakukan langkah-langkah pemrosesan data ini, Anda sering dapat menghilangkan preprocessing atau postprocessing tambahan. Anda dapat menggunakan file input dalam JSON dan CSV format saja.
Topik
Alur Kerja untuk Mengaitkan Inferensi dengan Catatan Input
Diagram berikut menunjukkan alur kerja untuk mengaitkan kesimpulan dengan catatan masukan.
Untuk mengaitkan kesimpulan dengan data input, ada tiga langkah utama:
-
Filter data input yang tidak diperlukan untuk inferensi sebelum meneruskan data input ke pekerjaan transformasi batch. Gunakan
InputFilter
parameter untuk menentukan atribut mana yang akan digunakan sebagai input untuk model. -
Kaitkan data input dengan hasil inferensi. Gunakan
JoinSource
parameter untuk menggabungkan data input dengan inferensi. -
Filter data gabungan untuk mempertahankan input yang diperlukan untuk menyediakan konteks untuk menafsirkan prediksi dalam laporan. Gunakan
OutputFilter
untuk menyimpan bagian tertentu dari kumpulan data yang digabungkan dalam file output.
Menggunakan Pemrosesan Data dalam Pekerjaan Transformasi Batch
Saat membuat pekerjaan transformasi batch dengan CreateTransformJob
memproses data:
-
Tentukan bagian input yang akan diteruskan ke model dengan
InputFilter
parameter dalam strukturDataProcessing
data. -
Bergabunglah dengan data input mentah dengan data yang diubah dengan
JoinSource
parameter. -
Tentukan bagian mana dari input gabungan dan data yang diubah dari pekerjaan transformasi batch yang akan disertakan dalam file output dengan
OutputFilter
parameter. -
Pilih salah satu JSON - atau CSV -file yang diformat untuk masukan:
-
Untuk JSON - atau file input JSON berformat baris, SageMaker baik menambahkan
SageMakerOutput
atribut ke file input atau membuat file JSON output baru dengan atribut danSageMakerInput
.SageMakerOutput
Untuk informasi selengkapnya, lihatDataProcessing
. -
Untuk file input CSV yang diformat, data input yang digabungkan diikuti oleh data yang diubah dan outputnya adalah CSV file.
-
Jika Anda menggunakan algoritma dengan DataProcessing
struktur, itu harus mendukung format yang Anda pilih untuk file input dan output. Misalnya, dengan TransformOutput
bidang CreateTransformJob
API, Anda harus mengatur Accept
parameter ContentType
dan ke salah satu nilai berikut:text/csv
,application/json
, atauapplication/jsonlines
. Sintaks untuk menentukan kolom dalam CSV file dan menentukan atribut dalam JSON file berbeda. Menggunakan sintaks yang salah menyebabkan kesalahan. Untuk informasi selengkapnya, lihat Contoh Transformasi Batch. Untuk informasi selengkapnya tentang format file input dan output untuk algoritme bawaan, lihatAlgoritma bawaan dan model yang telah dilatih sebelumnya di Amazon SageMaker.
Pembatas catatan untuk input dan output juga harus konsisten dengan input file yang Anda pilih. SplitType
Parameter menunjukkan cara membagi catatan dalam dataset input. AssembleWith
Parameter menunjukkan cara memasang kembali catatan untuk output. Jika Anda mengatur format input dan output ketext/csv
, Anda juga harus mengatur AssembleWith
parameter SplitType
dan keline
. Jika Anda mengatur format input dan output keapplication/jsonlines
, Anda dapat mengatur keduanya SplitType
dan AssembleWith
keline
.
Untuk CSV file, Anda tidak dapat menggunakan karakter baris baru yang disematkan. Untuk JSON file, nama atribut SageMakerOutput
dicadangkan untuk output. File JSON input tidak dapat memiliki atribut dengan nama ini. Jika ya, data dalam file input mungkin akan ditimpa.
JSONPathOperator yang Didukung
Untuk memfilter dan menggabungkan data input dan inferensi, gunakan JSONPath subexpression. SageMaker hanya mendukung sebagian dari JSONPath operator yang ditentukan. Tabel berikut mencantumkan JSONPath operator yang didukung. Untuk CSV data, setiap baris diambil sebagai JSON array, jadi hanya berbasis indeks yang JSONPaths dapat diterapkan, misalnya$[0]
,$[1:]
. CSVData juga harus mengikuti RFCformat
JSONPathOperator | Deskripsi | Contoh |
---|---|---|
$ |
Elemen root untuk query. Operator ini diperlukan di awal semua ekspresi jalur. |
$ |
. |
Elemen anak bernotasi titik. |
|
* |
Wildcard. Gunakan sebagai pengganti nama atribut atau nilai numerik. |
|
[' |
Sebuah elemen bertanda kurung atau beberapa elemen anak. |
|
[ |
Sebuah indeks atau array indeks. Nilai indeks negatif juga didukung. |
|
[ |
Operator irisan array. Metode array slice () mengekstrak bagian dari array dan mengembalikan array baru. Jika Anda menghilangkan |
|
Saat menggunakan notasi kurung untuk menentukan beberapa elemen anak dari bidang tertentu, penyarangan tambahan anak dalam tanda kurung tidak didukung. Misalnya, $.field1.['child1','child2']
didukung sementara $.field1.['child1','child2.grandchild']
tidak.
Untuk informasi selengkapnya tentang JSONPath operator, lihat JsonPath
Contoh Transformasi Batch
Contoh berikut menunjukkan beberapa cara umum untuk menggabungkan data input dengan hasil prediksi.
Topik
Contoh: Output Only Inferences
Secara default, DataProcessing
parameter tidak menggabungkan hasil inferensi dengan input. Ini hanya menghasilkan hasil inferensi.
Jika Anda ingin secara eksplisit menentukan untuk tidak menggabungkan hasil dengan input, gunakan Amazon SageMaker Python SDK
sm_transformer = sagemaker.transformer.Transformer(…) sm_transformer.transform(…, input_filter="$", join_source= "None", output_filter="$")
Untuk menghasilkan kesimpulan menggunakan AWS SDK untuk Python, tambahkan kode berikut ke CreateTransformJob permintaan Anda. Kode berikut meniru perilaku default.
{ "DataProcessing": { "InputFilter": "$", "JoinSource": "None", "OutputFilter": "$" } }
Contoh: Inferensi Output Bergabung dengan Data Input
Jika Anda menggunakan Amazon SageMaker Python SDKaccept
parameter assemble_with
dan saat menginisialisasi objek transformator. Saat Anda menggunakan panggilan transformasi, tentukan Input
join_source
parameternya, dan tentukan content_type
parameter split_type
dan juga. split_type
Parameter harus memiliki nilai yang sama denganassemble_with
, dan content_type
parameter harus memiliki nilai yang sama denganaccept
. Untuk informasi selengkapnya tentang parameter dan nilai yang diterima, lihat halaman Transformer
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv") sm_transformer.transform(…, join_source="Input", split_type="Line", content_type="text/csv")
Jika Anda menggunakan AWS SDK untuk Python (Boto 3), gabungkan semua data input dengan inferensi dengan menambahkan kode berikut ke permintaan Anda. CreateTransformJob
Nilai untuk Accept
dan ContentType
harus cocok, dan nilai untuk AssembleWith
dan juga SplitType
harus cocok.
{ "DataProcessing": { "JoinSource": "Input" }, "TransformOutput": { "Accept": "text/csv", "AssembleWith": "Line" }, "TransformInput": { "ContentType": "text/csv", "SplitType": "Line" } }
Untuk JSON atau JSON baris file input, hasilnya ada di SageMakerOutput
kunci dalam JSON file input. Misalnya, jika input adalah JSON file yang berisi pasangan kunci-nilai{"key":1}
, hasil transformasi data mungkin. {"label":1}
SageMakermenyimpan keduanya dalam file input di SageMakerInput
kunci.
{ "key":1, "SageMakerOutput":{"label":1} }
catatan
Hasil gabungan untuk JSON harus berupa objek pasangan kunci-nilai. Jika input bukan objek pasangan kunci-nilai, SageMaker buat file baruJSON. Dalam JSON file baru, data input disimpan dalam SageMakerInput
kunci dan hasilnya disimpan sebagai SageMakerOutput
nilai.
Untuk CSV file, misalnya, jika catatan[1,2,3]
, dan hasil labelnya[1]
, maka file output akan berisi[1,2,3,1]
.
Contoh: Inferensi Output Bergabung dengan Data Input dan Kecualikan Kolom ID dari Input () CSV
Jika Anda menggunakan Amazon SageMaker Python SDKinput_filter
Misalnya, jika data masukan Anda menyertakan lima kolom dan yang pertama adalah kolom ID, gunakan permintaan transformasi berikut untuk memilih semua kolom kecuali kolom ID sebagai fitur. Transformator masih mengeluarkan semua kolom input yang bergabung dengan inferensi. Untuk informasi selengkapnya tentang parameter dan nilai yang diterima, lihat halaman Transformer
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv") sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input")
Jika Anda menggunakan AWS SDK untuk Python (Boto 3), tambahkan kode berikut ke permintaan Anda.
CreateTransformJob
{ "DataProcessing": { "InputFilter": "$[1:]", "JoinSource": "Input" }, "TransformOutput": { "Accept": "text/csv", "AssembleWith": "Line" }, "TransformInput": { "ContentType": "text/csv", "SplitType": "Line" } }
Untuk menentukan kolom di SageMaker, gunakan indeks elemen array. Kolom pertama adalah indeks 0, kolom kedua adalah indeks 1, dan kolom keenam adalah indeks 5.
Untuk mengecualikan kolom pertama dari input, atur InputFilter
ke"$[1:]"
. Titik dua (:
) memberitahu SageMaker untuk menyertakan semua elemen antara dua nilai, inklusif. Misalnya, $[1:4]
menentukan kolom kedua hingga kelima.
Jika Anda menghilangkan angka setelah titik dua, misalnya[5:]
, subset mencakup semua kolom dari kolom ke-6 melalui kolom terakhir. Jika Anda menghilangkan angka sebelum titik dua, misalnya[:5]
, subset mencakup semua kolom dari kolom pertama (indeks 0) hingga kolom keenam.
Contoh: Inferensi Output Bergabung dengan Kolom ID dan Kecualikan Kolom ID dari Input () CSV
Jika Anda menggunakan Amazon SageMaker Python SDKoutput_filter
dalam panggilan transformator. output_filter
Menggunakan JSONPath subexpression untuk menentukan kolom mana yang akan dikembalikan sebagai output setelah menggabungkan data input dengan hasil inferensi. Permintaan berikut menunjukkan bagaimana Anda dapat membuat prediksi sambil mengecualikan kolom ID dan kemudian bergabung dengan kolom ID dengan kesimpulan. Perhatikan bahwa dalam contoh berikut, kolom terakhir (-1
) dari output berisi kesimpulan. Jika Anda menggunakan JSON file, SageMaker menyimpan hasil inferensi dalam atributSageMakerOutput
. Untuk informasi selengkapnya tentang parameter dan nilai yang diterima, lihat halaman Transformer
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv") sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input", output_filter="$[0,-1]")
Jika Anda menggunakan AWS SDK untuk Python (Boto 3), gabungkan hanya kolom ID dengan kesimpulan dengan menambahkan kode berikut ke permintaan Anda. CreateTransformJob
{ "DataProcessing": { "InputFilter": "$[1:]", "JoinSource": "Input", "OutputFilter": "$[0,-1]" }, "TransformOutput": { "Accept": "text/csv", "AssembleWith": "Line" }, "TransformInput": { "ContentType": "text/csv", "SplitType": "Line" } }
Awas
Jika Anda menggunakan file input yang JSON diformat -, file tersebut tidak dapat berisi nama atribut. SageMakerOutput
Nama atribut ini dicadangkan untuk kesimpulan dalam file output. Jika file input JSON yang diformat berisi atribut dengan nama ini, nilai dalam file input mungkin akan ditimpa dengan inferensi.