

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

# Algoritma Object2Vec
<a name="object2vec"></a>

Algoritma Amazon SageMaker AI Object2Vec adalah algoritma penyematan saraf tujuan umum yang sangat dapat disesuaikan. Ia dapat mempelajari penyematan padat dimensi rendah dari objek dimensi tinggi. Embeddings dipelajari dengan cara yang mempertahankan semantik hubungan antara pasangan objek di ruang asli di ruang embedding. Anda dapat menggunakan embeddings yang dipelajari untuk secara efisien menghitung tetangga terdekat objek dan untuk memvisualisasikan kelompok alami objek terkait dalam ruang dimensi rendah, misalnya. Anda juga dapat menggunakan embeddings sebagai fitur dari objek yang sesuai dalam tugas yang diawasi hilir, seperti klasifikasi atau regresi. 

Object2Vec menggeneralisasi teknik penyematan Word2Vec yang terkenal untuk kata-kata yang dioptimalkan dalam AI. SageMaker [BlazingText algoritma](blazingtext.md) [Untuk posting blog yang membahas cara menerapkan Object2Vec ke beberapa kasus penggunaan praktis, lihat Pengantar Amazon AI Object2Vec. SageMaker ](https://aws.amazon.com/blogs/machine-learning/introduction-to-amazon-sagemaker-object2vec/) 

**Topics**
+ [Antarmuka I/O untuk Algoritma Object2Vec](#object2vec-inputoutput)
+ [Rekomendasi Instans EC2 untuk Algoritma Object2Vec](#object2vec--instances)
+ [Notebook Contoh Object2Vec](#object2vec-sample-notebooks)
+ [Bagaimana Object2Vec Bekerja](object2vec-howitworks.md)
+ [Hiperparameter Object2Vec](object2vec-hyperparameters.md)
+ [Menyetel Model Object2Vec](object2vec-tuning.md)
+ [Format Data untuk Pelatihan Object2Vec](object2vec-training-formats.md)
+ [Format Data untuk Inferensi Object2Vec](object2vec-inference-formats.md)
+ [Embeddings Encoder untuk Object2Vec](object2vec-encoder-embeddings.md)

## Antarmuka I/O untuk Algoritma Object2Vec
<a name="object2vec-inputoutput"></a>

Anda dapat menggunakan Object2Vec pada banyak tipe data input, termasuk contoh berikut.


| Tipe Data Masukan | Contoh | 
| --- | --- | 
|  Pasangan kalimat-kalimat  | “Pertandingan sepak bola dengan banyak pria bermain.” dan “Beberapa pria sedang bermain olahraga.” | 
|  Label - pasangan urutan  | Tag genre film “Titanic”, seperti “Romance” dan “Drama”, dan deskripsi singkatnya: “Titanic karya James Cameron adalah romansa epik dan penuh aksi yang bertentangan dengan pelayaran perdananya yang naas dari R.M.S. Titanic. Dia adalah kapal paling mewah di zamannya, sebuah kapal impian, yang akhirnya membawa lebih dari 1.500 orang sampai mati di perairan es dingin Atlantik Utara pada dini hari tanggal 15 April 1912. | 
|  Pasangan pelanggan-pelanggan  |  ID pelanggan Jane dan ID pelanggan Jackie.  | 
|  Pasangan produk-produk  |  ID produk sepak bola dan ID produk bola basket.  | 
|  Ulasan item pasangan item-pengguna  |  ID pengguna dan barang yang dia beli, seperti apel, pir, dan jeruk.  | 

Untuk mengubah data input ke dalam format yang didukung, Anda harus memprosesnya terlebih dahulu. Saat ini, Object2Vec secara native mendukung dua jenis input: 
+ Token diskrit, yang direpresentasikan sebagai daftar tunggal`integer-id`. Misalnya, `[10]`.
+ Urutan token diskrit, yang direpresentasikan sebagai daftar. `integer-ids` Misalnya, `[0,12,10,13]`.

Objek di setiap pasangan bisa asimetris. Misalnya, pasangan dapat berupa (token, urutan) atau (token, token) atau (urutan, urutan). Untuk input token, algoritme mendukung penyematan sederhana sebagai encoder yang kompatibel. Untuk urutan vektor token, algoritme mendukung yang berikut ini sebagai encoder:
+  Penyematan gabungan rata-rata
+  Jaringan saraf konvolusional hierarkis (), CNNs
+  Memori jangka pendek panjang dua arah berlapis-lapis (Bi) LSTMs 

Label input untuk setiap pasangan dapat berupa salah satu dari yang berikut:
+ Label kategoris yang mengekspresikan hubungan antara objek dalam pasangan 
+ Skor yang mengekspresikan kekuatan kesamaan antara dua objek 

Untuk label kategoris yang digunakan dalam klasifikasi, algoritme mendukung fungsi kehilangan entropi silang. Untuk label berbasis rating/skor yang digunakan dalam regresi, algoritme mendukung fungsi kerugian mean squared error (MSE). Tentukan fungsi kerugian ini dengan `output_layer` hyperparameter saat Anda membuat pekerjaan pelatihan model.

## Rekomendasi Instans EC2 untuk Algoritma Object2Vec
<a name="object2vec--instances"></a>

Jenis instans Amazon Elastic Compute Cloud (Amazon EC2) yang Anda gunakan bergantung pada apakah Anda melatih atau menjalankan inferensi. 

Saat melatih model menggunakan algoritma Object2Vec pada CPU, mulailah dengan instance ml.m5.2xlarge. Untuk pelatihan tentang GPU, mulailah dengan instance ml.p2.xlarge. Jika pelatihan memakan waktu terlalu lama pada contoh ini, Anda dapat menggunakan instance yang lebih besar. Saat ini, algoritma Object2Vec hanya dapat melatih pada satu mesin. Namun, itu memang menawarkan dukungan untuk beberapa GPUs. Object2Vec mendukung keluarga instance GPU P2, P3, G4dn, dan G5 untuk pelatihan dan inferensi.

Untuk inferensi dengan model Object2Vec terlatih yang memiliki jaringan saraf dalam, sebaiknya gunakan instance GPU ml.p3.2xlarge. Karena kelangkaan memori GPU, variabel `INFERENCE_PREFERRED_MODE` lingkungan dapat ditentukan untuk mengoptimalkan apakah jaringan [Optimasi GPU: Embeddings Encoder](object2vec-encoder-embeddings.md#object2vec-inference-gpu-optimize-encoder-embeddings) inferensi [Optimasi GPU: Klasifikasi atau Regresi](object2vec-inference-formats.md#object2vec-inference-gpu-optimize-classification) atau dimuat ke dalam GPU.

## Notebook Contoh Object2Vec
<a name="object2vec-sample-notebooks"></a>
+ [Menggunakan Object2Vec untuk Mengkodekan Kalimat menjadi Embeddings Panjang Tetap](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/object2vec_sentence_similarity/object2vec_sentence_similarity.html)

# Bagaimana Object2Vec Bekerja
<a name="object2vec-howitworks"></a>

Saat menggunakan algoritma Amazon SageMaker AI Object2Vec, Anda mengikuti alur kerja standar: memproses data, melatih model, dan menghasilkan kesimpulan. 

**Topics**
+ [Langkah 1: Proses Data](#object2vec-step-1-data-preprocessing)
+ [Langkah 2: Latih Model](#object2vec-step-2-training-model)
+ [Langkah 3: Menghasilkan Inferensi](#object2vec-step-3-inference)

## Langkah 1: Proses Data
<a name="object2vec-step-1-data-preprocessing"></a>

Selama pra-pemrosesan, konversi data ke format file teks [JSON Lines](http://jsonlines.org/) yang ditentukan dalam. [Format Data untuk Pelatihan Object2Vec](object2vec-training-formats.md) Untuk mendapatkan akurasi tertinggi selama pelatihan, acak juga data secara acak sebelum memasukkannya ke dalam model. Bagaimana Anda menghasilkan permutasi acak tergantung pada bahasa. Untuk python, Anda bisa menggunakan`np.random.shuffle`; untuk Unix,. `shuf`

## Langkah 2: Latih Model
<a name="object2vec-step-2-training-model"></a>

Algoritma SageMaker AI Object2Vec memiliki komponen utama berikut:
+ **Dua saluran input — Saluran** input mengambil sepasang objek dari jenis yang sama atau berbeda sebagai input, dan meneruskannya ke encoder independen dan dapat disesuaikan.
+ **Dua encoder** — Dua encoder, enc0 dan enc1, mengubah setiap objek menjadi vektor embedding dengan panjang tetap. Embeddings yang dikodekan dari benda-benda dalam pasangan kemudian diteruskan ke komparator.
+ **Komparator** — Komparator membandingkan embeddings dengan cara yang berbeda dan menghasilkan skor yang menunjukkan kekuatan hubungan antara objek yang dipasangkan. Dalam skor output untuk pasangan kalimat. Misalnya, 1 menunjukkan hubungan yang kuat antara pasangan kalimat, dan 0 mewakili hubungan yang lemah. 

Selama pelatihan, algoritme menerima pasangan objek dan label atau skor hubungannya sebagai input. Objek di setiap pasangan dapat dari jenis yang berbeda, seperti yang dijelaskan sebelumnya. Jika input ke kedua encoder terdiri dari unit tingkat token yang sama, Anda dapat menggunakan lapisan penyematan token bersama dengan menyetel `tied_token_embedding_weight` hyperparameter saat Anda membuat pekerjaan pelatihan. `True` Ini dimungkinkan, misalnya, ketika membandingkan kalimat yang keduanya memiliki satuan tingkat token kata. Untuk menghasilkan sampel negatif pada tingkat tertentu, atur `negative_sampling_rate` hiperparameter ke rasio sampel negatif dan positif yang diinginkan. Hiperparameter ini mempercepat pembelajaran bagaimana membedakan antara sampel positif yang diamati dalam data pelatihan dan sampel negatif yang tidak mungkin diamati. 

Pasangan objek dilewatkan melalui encoder independen dan dapat disesuaikan yang kompatibel dengan jenis input objek yang sesuai. Encoder mengubah setiap objek berpasangan menjadi vektor penyematan dengan panjang tetap dengan panjang yang sama. Pasangan vektor diteruskan ke operator komparator, yang merakit vektor menjadi satu vektor menggunakan nilai yang ditentukan dalam hyperparameter he. `comparator_list` Vektor yang dirakit kemudian melewati lapisan multilayer perceptron (MLP), yang menghasilkan output yang dibandingkan fungsi kerugian dengan label yang Anda berikan. Perbandingan ini mengevaluasi kekuatan hubungan antara objek dalam pasangan seperti yang diprediksi oleh model. Gambar berikut menunjukkan alur kerja ini.

![\[Arsitektur Algoritma Object2Vec dari Input Data ke Skor\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/object2vec-training-image.png)


## Langkah 3: Menghasilkan Inferensi
<a name="object2vec-step-3-inference"></a>

Setelah model dilatih, Anda dapat menggunakan encoder terlatih untuk memproses objek input atau untuk melakukan dua jenis inferensi:
+ Untuk mengubah objek masukan tunggal menjadi embeddings dengan panjang tetap menggunakan encoder yang sesuai
+ Untuk memprediksi label hubungan atau skor antara sepasang objek masukan

Server inferensi secara otomatis mencari tahu jenis mana yang diminta berdasarkan data input. Untuk mendapatkan embeddings sebagai output, berikan hanya satu input. Untuk memprediksi label hubungan atau skor, berikan kedua input dalam pasangan.

# Hiperparameter Object2Vec
<a name="object2vec-hyperparameters"></a>

Dalam `CreateTrainingJob` permintaan, Anda menentukan algoritma pelatihan. Anda juga dapat menentukan hyperparameter khusus algoritme sebagai peta. string-to-string Tabel berikut mencantumkan hyperparameters untuk algoritma pelatihan Object2Vec.


| Nama Parameter | Deskripsi | 
| --- | --- | 
| enc0\$1max\$1seq\$1len |  Panjang urutan maksimum untuk encoder enc0. **Diperlukan** Nilai yang valid: 1 ≤ bilangan bulat ≤ 5000  | 
| enc0\$1vocab\$1size |  Ukuran kosakata token enc0. **Diperlukan** Nilai yang valid: 2 ≤ integer ≤ 3000000  | 
| bucket\$1width |  Perbedaan yang diizinkan antara panjang urutan data saat bucketing diaktifkan. Untuk mengaktifkan bucketing, tentukan nilai bukan nol untuk parameter ini. **Opsional** Nilai yang valid: 0 ≤ bilangan bulat ≤ 100 Nilai default: 0 (tidak ada ember)  | 
| comparator\$1list |  Daftar yang digunakan untuk menyesuaikan cara di mana dua embeddings dibandingkan. Lapisan operator komparator Object2Vec mengambil pengkodean dari kedua encoder sebagai input dan output satu vektor. Vektor ini adalah rangkaian subvektor. Nilai string yang diteruskan ke `comparator_list` dan urutan di mana mereka dilewatkan menentukan bagaimana subvektor ini dirakit. Misalnya, jika`comparator_list="hadamard, concat"`, maka operator komparator membangun vektor dengan menggabungkan produk Hadamard dari dua pengkodean dan penggabungan dua pengkodean. Jika, di sisi lain`comparator_list="hadamard"`, maka operator komparator membangun vektor sebagai produk hadamard dari hanya dua pengkodean.  **Opsional** Nilai yang valid: Sebuah string yang berisi kombinasi dari nama-nama dari tiga operator biner:`hadamard`,`concat`, atau`abs_diff`. Algoritma Object2Vec saat ini mensyaratkan bahwa dua pengkodean vektor memiliki dimensi yang sama. Operator ini menghasilkan subvektor sebagai berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `"hadamard, concat, abs_diff"`  | 
| dropout |  Probabilitas putus sekolah untuk lapisan jaringan. *Putus sekolah* adalah bentuk regularisasi yang digunakan dalam jaringan saraf yang mengurangi overfitting dengan memangkas neuron kodependen. **Opsional** Nilai yang valid: 0.0 ≤ float ≤ 1.0 Nilai default: 0.0  | 
| early\$1stopping\$1patience |  Jumlah zaman berturut-turut tanpa perbaikan diperbolehkan sebelum penghentian awal diterapkan. Perbaikan didefinisikan oleh dengan `early_stopping_tolerance` hyperparameter. **Opsional** Nilai yang valid: 1 ≤ bilangan bulat ≤ 5 Nilai default: 3  | 
| early\$1stopping\$1tolerance |  Pengurangan fungsi kerugian yang harus dicapai oleh suatu algoritma antara zaman berurutan untuk menghindari penghentian awal setelah jumlah zaman berturut-turut yang ditentukan dalam hyperparameter disimpulkan. `early_stopping_patience` **Opsional** Nilai yang valid: 0,000001 ≤ float ≤ 0,1 Nilai default: 0,01  | 
| enc\$1dim |  Dimensi output dari lapisan embedding. **Opsional** Nilai yang valid: 4 ≤ bilangan bulat ≤ 10000 Nilai default: 4096  | 
| enc0\$1network |  Model jaringan untuk encoder enc0. **Opsional** Nilai valid: `hcnn`, `bilstm`, atau `pooled_embedding` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `hcnn`  | 
| enc0\$1cnn\$1filter\$1width |  Lebar filter encoder convolutional neural network (CNN) enc0. **Bersyarat** Nilai yang valid: 1 ≤ bilangan bulat ≤ 9 Nilai default: 3  | 
| enc0\$1freeze\$1pretrained\$1embedding |  Apakah akan membekukan bobot penyematan enc0 yang telah dilatih sebelumnya. **Bersyarat** Nilai yang valid: `True` or `False` Nilai default: `True`  | 
| enc0\$1layers  |  Jumlah lapisan dalam encoder enc0. **Bersyarat** Nilai yang valid: `auto` atau 1 ≤ bilangan bulat ≤ 4 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `auto`  | 
| enc0\$1pretrained\$1embedding\$1file |  Nama file file embedding token enc0 yang telah dilatih sebelumnya di saluran data tambahan. **Bersyarat** Nilai yang valid: String dengan karakter alfanumerik, garis bawah, atau titik. [A-ZA-Z0-9\$1.\$1 \$1]  Nilai default: “” (string kosong)  | 
| enc0\$1token\$1embedding\$1dim |  Dimensi output dari layer embedding token enc0. **Bersyarat** Nilai yang valid: 2 ≤ bilangan bulat ≤ 1000 Nilai default: 300  | 
| enc0\$1vocab\$1file |  File kosakata untuk memetakan vektor penyematan token enc0 yang telah dilatih sebelumnya ke kosakata numerik. IDs **Bersyarat** Nilai yang valid: String dengan karakter alfanumerik, garis bawah, atau titik. [A-ZA-Z0-9\$1.\$1 \$1]  Nilai default: “” (string kosong)  | 
| enc1\$1network |  Model jaringan untuk encoder enc1. Jika Anda ingin encoder enc1 menggunakan model jaringan yang sama dengan enc0, termasuk nilai hyperparameter, tetapkan nilainya ke. `enc0`   Bahkan ketika jaringan encoder enc0 dan enc1 memiliki arsitektur simetris, Anda tidak dapat berbagi nilai parameter untuk jaringan ini.  **Opsional** Nilai yang benar: `enc0`, `hcnn`, `bilstm`, atau `pooled_embedding` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `enc0`  | 
| enc1\$1cnn\$1filter\$1width |  Lebar filter encoder CNN enc1. **Bersyarat** Nilai yang valid: 1 ≤ bilangan bulat ≤ 9 Nilai default: 3  | 
| enc1\$1freeze\$1pretrained\$1embedding |  Apakah akan membekukan bobot penyematan enc1 yang telah dilatih sebelumnya. **Bersyarat** Nilai yang valid: `True` or `False` Nilai default: `True`  | 
| enc1\$1layers  |  Jumlah lapisan dalam encoder enc1. **Bersyarat** Nilai yang valid: `auto` atau 1 ≤ bilangan bulat ≤ 4 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `auto`  | 
| enc1\$1max\$1seq\$1len |  Panjang urutan maksimum untuk encoder enc1. **Bersyarat** Nilai yang valid: 1 ≤ bilangan bulat ≤ 5000  | 
| enc1\$1pretrained\$1embedding\$1file |  Nama file embedding token enc1 yang telah dilatih sebelumnya di saluran data tambahan. **Bersyarat** Nilai yang valid: String dengan karakter alfanumerik, garis bawah, atau titik. [A-ZA-Z0-9\$1.\$1 \$1]  Nilai default: “” (string kosong)  | 
| enc1\$1token\$1embedding\$1dim |  Dimensi output dari layer embedding token enc1. **Bersyarat** Nilai yang valid: 2 ≤ bilangan bulat ≤ 1000 Nilai default: 300  | 
| enc1\$1vocab\$1file |  File kosakata untuk memetakan embeddings token enc1 yang telah dilatih sebelumnya ke kosakata. IDs **Bersyarat** Nilai yang valid: String dengan karakter alfanumerik, garis bawah, atau titik. [A-ZA-Z0-9\$1.\$1 \$1]  Nilai default: “” (string kosong)  | 
| enc1\$1vocab\$1size |  Ukuran kosakata token enc0. **Bersyarat** Nilai yang valid: 2 ≤ integer ≤ 3000000  | 
| epochs |  Jumlah zaman yang harus dijalankan untuk pelatihan.  **Opsional** Nilai yang valid: 1 ≤ bilangan bulat ≤ 100 Nilai default: 30  | 
| learning\$1rate |  Tingkat pembelajaran untuk pelatihan. **Opsional** Nilai yang valid: 1.0E-6 ≤ float ≤ 1.0 Nilai default: 0,0004  | 
| mini\$1batch\$1size |  Ukuran batch tempat kumpulan data dibagi menjadi `optimizer` selama pelatihan. **Opsional** Nilai yang valid: 1 ≤ bilangan bulat ≤ 10000 Nilai default: 32  | 
| mlp\$1activation |  Jenis fungsi aktivasi untuk lapisan multilayer perceptron (MLP). **Opsional** Nilai valid: `tanh`, `relu`, atau `linear` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `linear`  | 
| mlp\$1dim |  Dimensi output dari lapisan MLP. **Opsional** Nilai yang valid: 2 ≤ bilangan bulat ≤ 10000 Nilai default: 512  | 
| mlp\$1layers |  Jumlah lapisan MLP dalam jaringan. **Opsional** Nilai yang valid: 0 ≤ bilangan bulat ≤ 10 Nilai default: 2  | 
| negative\$1sampling\$1rate |  Rasio sampel negatif, yang dihasilkan untuk membantu melatih algoritme, dengan sampel positif yang disediakan oleh pengguna. Sampel negatif mewakili data yang tidak mungkin terjadi dalam kenyataan dan diberi label negatif untuk pelatihan. Mereka memfasilitasi pelatihan model untuk membedakan antara sampel positif yang diamati dan sampel negatif yang tidak. Untuk menentukan rasio sampel negatif terhadap sampel positif yang digunakan untuk pelatihan, tetapkan nilainya ke bilangan bulat positif. Misalnya, jika Anda melatih algoritme pada data input di mana semua sampel positif dan disetel `negative_sampling_rate` ke 2, algoritma Object2Vec secara internal menghasilkan dua sampel negatif per sampel positif. Jika Anda tidak ingin menghasilkan atau menggunakan sampel negatif selama pelatihan, tetapkan nilainya ke 0.  **Opsional** Nilai yang valid: 0 ≤ integer Nilai default: 0 (off)  | 
| num\$1classes |  Jumlah kelas untuk pelatihan klasifikasi. Amazon SageMaker AI mengabaikan hyperparameter ini untuk masalah regresi. **Opsional** Nilai yang valid: 2 ≤ bilangan bulat ≤ 30 Nilai default: 2  | 
| optimizer |  Jenis pengoptimal. **Opsional** Nilai yang valid:`adadelta`,`adagrad`,`adam`,`sgd`, atau`rmsprop`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `adam`  | 
| output\$1layer |  Jenis lapisan keluaran tempat Anda menentukan bahwa tugasnya adalah regresi atau klasifikasi. **Opsional** Nilai yang valid: `softmax` atau `mean_squared_error` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) Nilai default: `softmax`  | 
| tied\$1token\$1embedding\$1weight |  Apakah akan menggunakan layer embedding bersama untuk kedua encoder. Jika input ke kedua encoder menggunakan unit tingkat token yang sama, gunakan layer embedding token bersama. Misalnya, untuk kumpulan dokumen, jika satu encoder mengkodekan kalimat dan yang lain mengkodekan seluruh dokumen, Anda dapat menggunakan lapisan penyematan token bersama. Itu karena kalimat dan dokumen terdiri dari token kata dari kosakata yang sama. **Opsional** Nilai yang valid: `True` or `False` Nilai default: `False`  | 
| token\$1embedding\$1storage\$1type |  Mode pembaruan gradien yang digunakan selama pelatihan: ketika `dense` mode digunakan, pengoptimal menghitung matriks gradien penuh untuk lapisan penyematan token meskipun sebagian besar baris gradien bernilai nol. Saat `sparse` mode digunakan, pengoptimal hanya menyimpan baris gradien yang sebenarnya digunakan dalam batch mini. Jika Anda ingin algoritme melakukan pembaruan gradien malas, yang menghitung gradien hanya di baris bukan nol dan yang mempercepat pelatihan, tentukan. `row_sparse` Menyetel nilai untuk `row_sparse` membatasi nilai yang tersedia untuk hiperparameter lainnya, sebagai berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/object2vec-hyperparameters.html) **Opsional** Nilai yang valid: `dense` or `row_sparse` Nilai default: `dense`  | 
| weight\$1decay |  Parameter peluruhan berat yang digunakan untuk optimasi. **Opsional** Nilai yang valid: 0 ≤ float ≤ 10000 Nilai default: 0 (tidak ada pembusukan)  | 

# Menyetel Model Object2Vec
<a name="object2vec-tuning"></a>

*Penyetelan model otomatis*, juga dikenal sebagai tuning hyperparameter, menemukan versi terbaik dari model dengan menjalankan banyak pekerjaan yang menguji berbagai hiperparameter pada kumpulan data Anda. Anda memilih hyperparameters yang dapat disetel, rentang nilai untuk masing-masing, dan metrik objektif. Untuk metrik objektif, Anda menggunakan salah satu metrik yang dihitung oleh algoritme. Penyetelan model otomatis mencari hiperparameter yang dipilih untuk menemukan kombinasi nilai yang menghasilkan model yang mengoptimalkan metrik objektif.

Untuk informasi lebih lanjut tentang penyetelan model, lihat[Penyetelan model otomatis dengan AI SageMaker](automatic-model-tuning.md).

## Metrik Dihitung oleh Algoritma Object2Vec
<a name="object2vec-metrics"></a>

Algoritma Object2Vec memiliki metrik klasifikasi dan regresi. `output_layer`Jenis menentukan metrik mana yang dapat Anda gunakan untuk penyetelan model otomatis. 

### Metrik Regressor Dihitung oleh Algoritma Object2Vec
<a name="object2vec-regressor-metrics"></a>

Algoritma melaporkan metrik regressor kesalahan kuadrat rata-rata, yang dihitung selama pengujian dan validasi. Saat menyetel model untuk tugas regresi, pilih metrik ini sebagai tujuannya.


| Nama Metrik | Deskripsi | Arah Optimasi | 
| --- | --- | --- | 
| test:mean\$1squared\$1error | Kesalahan Persegi Rata-Rata | Minimalkan | 
| validation:mean\$1squared\$1error | Kesalahan Persegi Rata-Rata | Minimalkan | 

### Metrik Klasifikasi Dihitung oleh Algoritma Object2Vec
<a name="object2vec-classification-metrics"></a>

Algoritma Object2Vec melaporkan akurasi dan metrik klasifikasi lintas entropi, yang dihitung selama pengujian dan validasi. Saat menyetel model untuk tugas klasifikasi, pilih salah satunya sebagai tujuan.


| Nama Metrik | Deskripsi | Arah Optimasi | 
| --- | --- | --- | 
| test:accuracy | Akurasi | Maksimalkan | 
| test:cross\$1entropy | Entropi silang | Minimalkan | 
| validation:accuracy | Akurasi | Maksimalkan | 
| validation:cross\$1entropy | Entropi silang | Minimalkan | 

## Hiperparameter Objek 2Vec yang Dapat Disetel
<a name="object2vec-tunable-hyperparameters"></a>

Anda dapat menyetel hyperparameters berikut untuk algoritma Object2Vec.


| Nama Hyperparameter | Jenis Hyperparameter | Rentang dan Nilai yang Direkomendasikan | 
| --- | --- | --- | 
| dropout | ContinuousParameterRange | MinValue: 0.0, MaxValue: 1.0 | 
| early\$1stopping\$1patience | IntegerParameterRange | MinValue: 1, MaxValue: 5 | 
| early\$1stopping\$1tolerance | ContinuousParameterRange | MinValue: 0,001, MaxValue: 0,1 | 
| enc\$1dim | IntegerParameterRange | MinValue: 4, MaxValue: 4096 | 
| enc0\$1cnn\$1filter\$1width | IntegerParameterRange | MinValue: 1, MaxValue: 5 | 
| enc0\$1layers | IntegerParameterRange | MinValue: 1, MaxValue: 4 | 
| enc0\$1token\$1embedding\$1dim | IntegerParameterRange | MinValue: 5, MaxValue: 300 | 
| enc1\$1cnn\$1filter\$1width | IntegerParameterRange | MinValue: 1, MaxValue: 5 | 
| enc1\$1layers | IntegerParameterRange | MinValue: 1, MaxValue: 4 | 
| enc1\$1token\$1embedding\$1dim | IntegerParameterRange | MinValue: 5, MaxValue: 300 | 
| epochs | IntegerParameterRange | MinValue: 4, MaxValue: 20 | 
| learning\$1rate | ContinuousParameterRange | MinValue: 1e-6, MaxValue: 1.0 | 
| mini\$1batch\$1size | IntegerParameterRange | MinValue: 1, MaxValue: 8192 | 
| mlp\$1activation | CategoricalParameterRanges |  [`tanh`, `relu`, `linear`]  | 
| mlp\$1dim | IntegerParameterRange | MinValue: 16, MaxValue: 1024 | 
| mlp\$1layers | IntegerParameterRange | MinValue: 1, MaxValue: 4 | 
| optimizer | CategoricalParameterRanges | [`adagrad`, `adam`, `rmsprop`, `sgd`, `adadelta`] | 
| weight\$1decay | ContinuousParameterRange | MinValue: 0.0, MaxValue: 1.0 | 

# Format Data untuk Pelatihan Object2Vec
<a name="object2vec-training-formats"></a>

Saat berlatih dengan algoritma Object2Vec, pastikan bahwa data input dalam permintaan Anda dalam format JSON Lines, di mana setiap baris mewakili satu titik data.

## Masukan: Format Permintaan Garis JSON
<a name="object2vec-in-training-data-jsonlines"></a>

Jenis konten: aplikasi/jsonlines

```
{"label": 0, "in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4], "in1": [16, 21, 13, 45, 14, 9, 80, 59, 164, 4]}
{"label": 1, "in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4], "in1": [22, 32, 13, 25, 1016, 573, 3252, 4]}
{"label": 1, "in0": [774, 14, 21, 206], "in1": [21, 366, 125]}
```

“in0" dan “in1" adalah input untuk encoder0 dan encoder1, masing-masing. Format yang sama berlaku untuk masalah klasifikasi dan regresi. Untuk regresi, bidang `"label"` dapat menerima input bernilai riil.

# Format Data untuk Inferensi Object2Vec
<a name="object2vec-inference-formats"></a>

Halaman berikut menjelaskan permintaan input dan format respons output untuk mendapatkan inferensi penilaian dari model Amazon SageMaker AI Object2Vec.

## Optimasi GPU: Klasifikasi atau Regresi
<a name="object2vec-inference-gpu-optimize-classification"></a>

Karena kelangkaan memori GPU, variabel `INFERENCE_PREFERRED_MODE` lingkungan dapat ditentukan untuk mengoptimalkan apakah klasifikasi/regresi atau jaringan inferensi dimuat ke dalam [Keluaran: Embeddings Encoder](object2vec-encoder-embeddings.md#object2vec-out-encoder-embeddings-data) GPU. Jika sebagian besar inferensi Anda adalah untuk klasifikasi atau regresi, tentukan. `INFERENCE_PREFERRED_MODE=classification` Berikut ini adalah contoh Transformasi Batch menggunakan 4 instance p3.2xlarge yang mengoptimalkan inferensi: classification/regression 

```
transformer = o2v.transformer(instance_count=4,
                              instance_type="ml.p2.xlarge",
                              max_concurrent_transforms=2,
                              max_payload=1,  # 1MB
                              strategy='MultiRecord',
                              env={'INFERENCE_PREFERRED_MODE': 'classification'},  # only useful with GPU
                              output_path=output_s3_path)
```

## Masukan: Format Permintaan Klasifikasi atau Regresi
<a name="object2vec-in-inference-data"></a>

Tipe konten: aplikasi/json

```
{
  "instances" : [
    {"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4], "in1": [16, 21, 13, 45, 14, 9, 80, 59, 164, 4]},
    {"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4], "in1": [22, 32, 13, 25, 1016, 573, 3252, 4]},
    {"in0": [774, 14, 21, 206], "in1": [21, 366, 125]}
  ]
}
```

Jenis konten: aplikasi/jsonlines

```
{"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4], "in1": [16, 21, 13, 45, 14, 9, 80, 59, 164, 4]}
{"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4], "in1": [22, 32, 13, 25, 1016, 573, 3252, 4]}
{"in0": [774, 14, 21, 206], "in1": [21, 366, 125]}
```

Untuk masalah klasifikasi, panjang vektor skor sesuai dengan`num_classes`. Untuk masalah regresi, panjangnya adalah 1.

## Keluaran: Klasifikasi atau Format Respons Regresi
<a name="object2vec-out-inference-data"></a>

Terima: aplikasi/json

```
{
    "predictions": [
        {
            "scores": [
                0.6533935070037842,
                0.07582679390907288,
                0.2707797586917877
            ]
        },
        {
            "scores": [
                0.026291321963071823,
                0.6577019095420837,
                0.31600672006607056
            ]
        }
    ]
}
```

Terima: aplikasi/jsonlines

```
{"scores":[0.195667684078216,0.395351558923721,0.408980727195739]}
{"scores":[0.251988261938095,0.258233487606048,0.489778339862823]}
{"scores":[0.280087798833847,0.368331134319305,0.351581096649169]}
```

Dalam format klasifikasi dan regresi, skor berlaku untuk masing-masing label. 

# Embeddings Encoder untuk Object2Vec
<a name="object2vec-encoder-embeddings"></a>

Halaman berikut mencantumkan format permintaan input dan respons keluaran untuk mendapatkan inferensi penyematan encoder dari model Amazon SageMaker AI Object2Vec.

## Optimasi GPU: Embeddings Encoder
<a name="object2vec-inference-gpu-optimize-encoder-embeddings"></a>

Embedding adalah pemetaan dari objek diskrit, seperti kata-kata, ke vektor bilangan real.

Karena kelangkaan memori GPU, variabel `INFERENCE_PREFERRED_MODE` lingkungan dapat ditentukan untuk mengoptimalkan apakah jaringan inferensi penyematan encoder [Format Data untuk Inferensi Object2Vec](object2vec-inference-formats.md) atau dimuat ke dalam GPU. Jika sebagian besar inferensi Anda adalah untuk penyematan encoder, tentukan. `INFERENCE_PREFERRED_MODE=embedding` Berikut ini adalah contoh Transformasi Batch menggunakan 4 instance p3.2xlarge yang mengoptimalkan inferensi penyematan encoder:

```
transformer = o2v.transformer(instance_count=4,
                              instance_type="ml.p2.xlarge",
                              max_concurrent_transforms=2,
                              max_payload=1,  # 1MB
                              strategy='MultiRecord',
                              env={'INFERENCE_PREFERRED_MODE': 'embedding'},  # only useful with GPU
                              output_path=output_s3_path)
```

## Masukan: Embeddings Encoder
<a name="object2vec-in-encoder-embeddings-data"></a>

<FWD-LENGTH>Tipe konten: aplikasi/json; infer\$1max\$1seqlens=, <BCK-LENGTH>

Dimana <FWD-LENGTH>dan <BCK-LENGTH>merupakan bilangan bulat dalam rentang [1.5000] dan tentukan panjang urutan maksimum untuk encoder maju dan mundur.

```
{
  "instances" : [
    {"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4]},
    {"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4]},
    {"in0": [774, 14, 21, 206]}
  ]
}
```

<FWD-LENGTH>Tipe konten: aplikasi/jsonlines; infer\$1max\$1seqlens=, <BCK-LENGTH>

Dimana <FWD-LENGTH>dan <BCK-LENGTH>merupakan bilangan bulat dalam rentang [1.5000] dan tentukan panjang urutan maksimum untuk encoder maju dan mundur.

```
{"in0": [6, 17, 606, 19, 53, 67, 52, 12, 5, 10, 15, 10178, 7, 33, 652, 80, 15, 69, 821, 4]}
{"in0": [22, 1016, 32, 13, 25, 11, 5, 64, 573, 45, 5, 80, 15, 67, 21, 7, 9, 107, 4]}
{"in0": [774, 14, 21, 206]}
```

Dalam kedua format ini, Anda hanya menentukan satu jenis input: `“in0”` atau `“in1.”` Layanan inferensi kemudian memanggil encoder yang sesuai dan mengeluarkan embeddings untuk setiap instance. 

## Keluaran: Embeddings Encoder
<a name="object2vec-out-encoder-embeddings-data"></a>

Tipe konten: aplikasi/json

```
{
  "predictions": [
    {"embeddings":[0.057368703186511,0.030703511089086,0.099890425801277,0.063688032329082,0.026327300816774,0.003637571120634,0.021305780857801,0.004316598642617,0.0,0.003397724591195,0.0,0.000378780066967,0.0,0.0,0.0,0.007419463712722]},
    {"embeddings":[0.150190666317939,0.05145975202322,0.098204270005226,0.064249359071254,0.056249320507049,0.01513972133398,0.047553978860378,0.0,0.0,0.011533712036907,0.011472506448626,0.010696629062294,0.0,0.0,0.0,0.008508535102009]}
  ]
}
```

Jenis konten: aplikasi/jsonlines

```
{"embeddings":[0.057368703186511,0.030703511089086,0.099890425801277,0.063688032329082,0.026327300816774,0.003637571120634,0.021305780857801,0.004316598642617,0.0,0.003397724591195,0.0,0.000378780066967,0.0,0.0,0.0,0.007419463712722]}
{"embeddings":[0.150190666317939,0.05145975202322,0.098204270005226,0.064249359071254,0.056249320507049,0.01513972133398,0.047553978860378,0.0,0.0,0.011533712036907,0.011472506448626,0.010696629062294,0.0,0.0,0.0,0.008508535102009]}
```

Panjang vektor output embeddings oleh layanan inferensi sama dengan nilai salah satu hyperparameter berikut yang Anda tentukan pada waktu pelatihan:,, atau. `enc0_token_embedding_dim` `enc1_token_embedding_dim` `enc_dim`