

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

# Format data umum untuk inferensi
<a name="cdf-inference"></a>

Algoritma Amazon SageMaker AI menerima dan menghasilkan beberapa jenis MIME yang berbeda untuk muatan HTTP yang digunakan dalam mengambil prediksi online dan mini-batch. Anda dapat menggunakan beberapa AWS layanan untuk mengubah atau memproses catatan sebelum menjalankan inferensi. Minimal, Anda perlu mengonversi data untuk yang berikut:
+ Serialisasi permintaan inferensi (ditangani oleh Anda) 
+ Deserialisasi permintaan inferensi (ditangani oleh algoritma) 
+ Serialisasi respons inferensi (ditangani oleh algoritme) 
+ Deserialisasi respons inferensi (ditangani oleh Anda) 

**Topics**
+ [Mengkonversi data untuk serialisasi permintaan inferensi](#ir-serialization)
+ [Konversi data untuk deserialisasi respons inferensi](#ir-deserialization)
+ [Format permintaan umum untuk semua algoritme](#common-in-formats)
+ [Gunakan transformasi batch dengan algoritme bawaan](#cm-batch)

## Mengkonversi data untuk serialisasi permintaan inferensi
<a name="ir-serialization"></a>

Opsi jenis konten untuk permintaan inferensi algoritme Amazon SageMaker AI meliputi:`text/csv`,`application/json`, dan`application/x-recordio-protobuf`. Algoritma yang tidak mendukung semua jenis ini dapat mendukung jenis lain. XGBoost, misalnya, hanya mendukung `text/csv` dari daftar ini, tetapi juga mendukung`text/libsvm`.

Untuk`text/csv`, nilai argumen Body `invoke_endpoint` harus berupa string dengan koma yang memisahkan nilai untuk setiap fitur. Misalnya, rekaman untuk model dengan empat fitur mungkin terlihat seperti`1.5,16.0,14,23.0`. Setiap transformasi yang dilakukan pada data pelatihan juga harus dilakukan pada data sebelum mendapatkan inferensi. Urutan fitur penting dan harus tetap tidak berubah. 

`application/json`lebih fleksibel dan menyediakan beberapa format yang mungkin bagi pengembang untuk digunakan dalam aplikasi mereka. Pada tingkat tinggi, di JavaScript, payload mungkin terlihat seperti berikut: 

```
let request = {
  // Instances might contain multiple rows that predictions are sought for.
  "instances": [
    {
      // Request and algorithm specific inference parameters.
      "configuration": {},
      // Data in the specific format required by the algorithm.
      "data": {
         "<field name>": dataElement
       }
    }
  ]
}
```

Anda memiliki opsi berikut untuk menentukan: `dataElement` 

**Protokol buffer setara**

```
// Has the same format as the protocol buffers implementation described for training.
let dataElement = {
  "keys": [],
  "values": [],
  "shape": []
}
```

**vektor numerik sederhana**

```
// An array containing numeric values is treated as an instance containing a
// single dense vector.
let dataElement = [1.5, 16.0, 14.0, 23.0]

// It will be converted to the following representation by the SDK.
let converted = {
  "features": {
    "values": dataElement
  }
}
```

**Untuk beberapa catatan**

```
let request = {
  "instances": [
    // First instance.
    {
      "features": [ 1.5, 16.0, 14.0, 23.0 ]
    },
    // Second instance.
    {
      "features": [ -2.0, 100.2, 15.2, 9.2 ]
    }
  ]
}
```

## Konversi data untuk deserialisasi respons inferensi
<a name="ir-deserialization"></a>

Algoritma Amazon SageMaker AI mengembalikan JSON dalam beberapa tata letak. Pada tingkat tinggi, strukturnya adalah:

```
let response = {
  "predictions": [{
    // Fields in the response object are defined on a per algorithm-basis.
  }]
}
```

Bidang yang disertakan dalam prediksi berbeda di seluruh algoritme. Berikut ini adalah contoh output untuk algoritma k-means.

**Inferensi rekor tunggal** 

```
let response = {
  "predictions": [{
    "closest_cluster": 5,
    "distance_to_cluster": 36.5
  }]
}
```

**Inferensi multi-rekam**

```
let response = {
  "predictions": [
    // First instance prediction.
    {
      "closest_cluster": 5,
      "distance_to_cluster": 36.5
    },
    // Second instance prediction.
    {
      "closest_cluster": 2,
      "distance_to_cluster": 90.3
    }
  ]
}
```

**Inferensi multi-rekam dengan input protobuf**

```
{
  "features": [],
  "label": {
    "closest_cluster": {
      "values": [ 5.0 ] // e.g. the closest centroid/cluster was 1.0
    },
    "distance_to_cluster": {
      "values": [ 36.5 ]
    }
  },
  "uid": "abc123",
  "metadata": "{ "created_at": '2017-06-03' }"
}
```

SageMaker Algoritma AI juga mendukung format JSONLINES, di mana konten respons per rekaman sama dengan format JSON. Struktur multi-record adalah kumpulan objek respons per rekaman yang dipisahkan oleh karakter baris baru. Konten respons untuk KMeans algoritme bawaan untuk 2 titik data input adalah:

```
{"distance_to_cluster": 23.40593910217285, "closest_cluster": 0.0}
{"distance_to_cluster": 27.250282287597656, "closest_cluster": 0.0}
```

Saat menjalankan transformasi batch, kami merekomendasikan menggunakan tipe `jsonlines` respons dengan menyetel `Accept` bidang di `CreateTransformJobRequest` to`application/jsonlines`.

## Format permintaan umum untuk semua algoritme
<a name="common-in-formats"></a>

Sebagian besar algoritma menggunakan banyak format permintaan inferensi berikut.

### Format permintaan JSON
<a name="cm-json"></a>

**Jenis konten:** Aplikasi/JSON

**Format padat**

```
let request =   {
    "instances":    [
        {
            "features": [1.5, 16.0, 14.0, 23.0]
        }
    ]
}


let request =   {
    "instances":    [
        {
            "data": {
                "features": {
                    "values": [ 1.5, 16.0, 14.0, 23.0]
                }
            }
        }
    ]
}
```

**Format jarang**

```
{
	"instances": [
		{"data": {"features": {
					"keys": [26, 182, 232, 243, 431],
					"shape": [2000],
					"values": [1, 1, 1, 4, 1]
				}
			}
		},
		{"data": {"features": {
					"keys": [0, 182, 232, 243, 431],
					"shape": [2000],
					"values": [13, 1, 1, 4, 1]
				}
			}
		},
	]
}
```

### Format permintaan JSONLINES
<a name="cm-jsonlines"></a>

**Jenis konten:** Aplikasi/JSONLines

**Format padat**

Sebuah catatan tunggal dalam format padat dapat direpresentasikan sebagai:

```
{ "features": [1.5, 16.0, 14.0, 23.0] }
```

atau:

```
{ "data": { "features": { "values": [ 1.5, 16.0, 14.0, 23.0] } }
```

**Format Jarang**

Sebuah catatan tunggal dalam format jarang direpresentasikan sebagai:

```
{"data": {"features": { "keys": [26, 182, 232, 243, 431], "shape": [2000], "values": [1, 1, 1, 4, 1] } } }
```

Beberapa catatan direpresentasikan sebagai kumpulan representasi rekaman tunggal, dipisahkan oleh karakter baris baru:

```
{"data": {"features": { "keys": [0, 1, 3], "shape": [4], "values": [1, 4, 1] } } }
{ "data": { "features": { "values": [ 1.5, 16.0, 14.0, 23.0] } }
{ "features": [1.5, 16.0, 14.0, 23.0] }
```

### Format permintaan CSV
<a name="cm-csv"></a>

**Jenis konten:** teks/CSV; label\_size = 0

**catatan**  
Dukungan CSV tidak tersedia untuk mesin faktorisasi.

### Format permintaan RECORDIO
<a name="cm-recordio"></a>

Jenis konten: aplikasi/ x-recordio-protobuf

## Gunakan transformasi batch dengan algoritme bawaan
<a name="cm-batch"></a>

Saat menjalankan transformasi batch, sebaiknya gunakan tipe respons JSONLINES alih-alih JSON, jika didukung oleh algoritme. Untuk melakukan ini, atur `Accept` bidang `CreateTransformJobRequest` ke`application/jsonlines`.

Ketika Anda membuat pekerjaan transformasi, `SplitType` harus diatur berdasarkan data input. `ContentType` Demikian pula, tergantung pada `Accept` bidang di`CreateTransformJobRequest`, `AssembleWith` harus diatur sesuai. Gunakan tabel berikut untuk mengatur bidang ini:


| ContentType | Direkomendasikan SplitType | 
| --- | --- | 
| application/x-recordio-protobuf | RecordIO | 
| text/csv | Line | 
| application/jsonlines | Line | 
| application/json | None | 
| application/x-image | None | 
| image/\* | None | 


| Menerima | Direkomendasikan AssembleWith | 
| --- | --- | 
| application/x-recordio-protobuf | None | 
| application/json | None | 
| application/jsonlines | Line | 

Untuk informasi selengkapnya tentang format respons untuk algoritme tertentu, lihat berikut ini:
+ [Format Inferensi DeepAR](deepar-in-formats.md)
+ [Format Respon Mesin Faktorisasi](fm-in-formats.md)
+ [Format Data Inferensi Wawasan IP](ip-insights-inference-data-formats.md)
+ [Format Respons K-Means](km-in-formats.md)
+ [Format Permintaan dan Respons K-nn](kNN-inference-formats.md)
+ [Format respons pelajar linier](LL-in-formats.md)
+ [Format Respons NTM](ntm-in-formats.md)
+ [Format Data untuk Inferensi Object2Vec](object2vec-inference-formats.md)
+ [Embeddings Encoder untuk Object2Vec](object2vec-encoder-embeddings.md)
+ [Format Respons PCA](PCA-in-formats.md)
+ [Format Respons RCF](rcf-in-formats.md)