Membuat pekerjaan inferensi batch - Amazon Personalize

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

Membuat pekerjaan inferensi batch

Buat tugas inferensi batch untuk mendapatkan rekomendasi item batch bagi pengguna berdasarkan data masukan dari Amazon S3. Data input dapat berupa daftar pengguna atau item (atau keduanya) dalam JSON format. Anda dapat membuat pekerjaan inferensi batch dengan konsol Amazon Personalize, AWS Command Line Interface the AWS CLI(), atau. AWS SDKs

Saat membuat pekerjaan inferensi batch, Anda menentukan jalur Amazon S3 ke lokasi input dan output. Amazon S3 berbasis awalan. Jika Anda memberikan awalan untuk lokasi data input, Amazon Personalize menggunakan semua file yang cocok dengan awalan tersebut sebagai data input. Misalnya, jika Anda menyediakan s3://amzn-s3-demo-bucket/folderName dan bucket Anda juga memiliki folder dengan jalurs3://amzn-s3-demo-bucket/folderName_test, Amazon Personalize menggunakan semua file di kedua folder sebagai data input. Untuk hanya menggunakan file dalam folder tertentu sebagai data input, akhiri jalur Amazon S3 dengan pembatas awalan, seperti/: s3://amzn-s3-demo-bucket/folderName/ Untuk informasi selengkapnya tentang cara Amazon S3 mengatur objek, lihat Mengatur, mencantumkan, dan bekerja dengan objek Anda.

Untuk informasi selengkapnya tentang alur kerja batch di Amazon Personalize, termasuk persyaratan izin, penilaian rekomendasi, serta menyiapkan serta mengimpor data input, lihat. Mendapatkan rekomendasi item batch dengan sumber daya khusus

Membuat pekerjaan inferensi batch (konsol)

Setelah selesaiMempersiapkan data input untuk rekomendasi batch, Anda siap untuk membuat pekerjaan inferensi batch. Prosedur ini mengasumsikan bahwa Anda telah membuat solusi dan versi solusi (model terlatih).

Untuk membuat pekerjaan inferensi batch (konsol)
  1. Buka konsol Amazon Personalize di https://console.aws.amazon.com/personalize/rumah dan masuk ke akun Anda.

  2. Pada halaman grup Dataset, pilih grup kumpulan data Anda.

  3. Dari panel navigasi, di bawah Sumber daya khusus, pilih pekerjaan inferensi Batch.

  4. Pilih Buat pekerjaan inferensi batch.

  5. Pilih jenis pekerjaan inferensi batch.

    • Untuk menghasilkan rekomendasi item tanpa tema, pilih Rekomendasi item.

    • Jika Anda menggunakan resep Similar-Items dan ingin menambahkan tema deskriptif ke grup item serupa, pilih Rekomendasi bertema dengan Content Generator. Untuk menghasilkan tema, Anda harus memiliki kumpulan data Item dengan data nama item dan data tekstual. Untuk informasi selengkapnya, lihat Rekomendasi Batch dengan tema dari Content Generator.

  6. Dalam detail pekerjaan inferensi Batch, dalam nama pekerjaan inferensi Batch, tentukan nama untuk pekerjaan inferensi batch Anda.

  7. Untuk Solusi, pilih solusi dan kemudian pilih ID versi Solusi yang ingin Anda gunakan untuk menghasilkan rekomendasi.

  8. Untuk Jumlah hasil, secara opsional tentukan jumlah rekomendasi untuk setiap baris data input. Default-nya adalah 25.

  9. Jika pekerjaan batch Anda menghasilkan rekomendasi dengan tema, di Detail rekomendasi bertema, pilih kolom yang berisi nama atau judul untuk item dalam kumpulan data Item Anda. Data ini dapat membantu menghasilkan tema yang lebih relevan. Untuk informasi selengkapnya, lihat Rekomendasi Batch dengan tema dari Content Generator.

  10. Di Sumber input, tentukan jalur Amazon S3 ke file input Anda.

    Gunakan sintaks berikut: s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json

    Data masukan Anda harus dalam format yang benar untuk resep yang digunakan solusi Anda. Untuk contoh data masukan lihatContoh input dan output JSON pekerjaan inferensi batch.

  11. Untuk kunci Dekripsi, jika Anda menggunakan AWS KMS kunci Anda sendiri untuk enkripsi bucket, tentukan Amazon Resource Name (ARN) kunci Anda. Amazon Personalize harus memiliki izin untuk menggunakan kunci Anda. Untuk informasi tentang pemberian izin, lihat. Memberikan izin Amazon Personalisasi untuk menggunakan kunci Anda AWS KMS

  12. Di Tujuan keluaran, tentukan jalur ke lokasi keluaran Anda. Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda).

    Gunakan sintaks berikut: s3://amzn-s3-demo-bucket/<output folder name>/

  13. Untuk kunci Enkripsi, jika Anda menggunakan AWS KMS kunci Anda sendiri untuk enkripsi, tentukan kunci Anda. ARN Amazon Personalize harus memiliki izin untuk menggunakan kunci Anda. Untuk informasi tentang pemberian izin, lihat. Memberikan izin Amazon Personalisasi untuk menggunakan kunci Anda AWS KMS

  14. Untuk peran IAM layanan, pilih peran IAM layanan yang Anda buat untuk Amazon Personalisasi selama penyiapan. Peran ini harus memiliki akses baca dan tulis ke bucket Amazon S3 masukan dan keluaran Anda masing-masing.

  15. Di Filter opsional pilih filter untuk menerapkan filter ke rekomendasi batch. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input Anda. JSON Untuk informasi selengkapnya, lihat Memberikan nilai filter di JSON masukan Anda.

  16. Untuk Tag, secara opsional tambahkan tag apa pun. Untuk informasi selengkapnya tentang menandai sumber daya Amazon Personalize, lihat. Menandai Amazon Personalisasi sumber daya

  17. Pilih Buat pekerjaan inferensi batch. Pembuatan pekerjaan inferensi Batch dimulai dan halaman pekerjaan inferensi Batch muncul dengan bagian detail pekerjaan inferensi Batch ditampilkan.

    Saat status pekerjaan inferensi batch berubah menjadi Aktif, Anda dapat mengambil output pekerjaan dari bucket Amazon S3 keluaran yang ditentukan. Nama file output akan menjadi formatinput-name.out.

Membuat pekerjaan inferensi batch ()AWS CLI

Setelah selesaiMempersiapkan data input untuk rekomendasi batch, Anda siap untuk membuat pekerjaan inferensi batch dengan CreateBatchInferenceJob operasi.

Membuat pekerjaan inferensi batch

Anda dapat menggunakan create-batch-inference-job perintah untuk membuat pekerjaan inferensi batch. Tentukan nama pekerjaan, ganti Solution version ARN dengan Amazon Resource Name (ARN) versi solusi Anda, dan ganti IAM service role ARN dengan peran IAM layanan yang Anda buat untuk Amazon Personalize selama penyiapan. ARN Peran ini harus memiliki akses baca dan tulis ke bucket Amazon S3 masukan dan keluaran Anda masing-masing. Secara opsional menyediakan filter ARN untuk memfilter rekomendasi. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input Anda. JSON Untuk informasi selengkapnya, lihat Memfilter rekomendasi batch dan segmen pengguna (sumber daya khusus).

Ganti S3 input path dan S3 output path dengan jalur Amazon S3 ke file input dan lokasi output Anda. Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda). Gunakan sintaks berikut untuk lokasi input dan output: s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json dans3://amzn-s3-demo-bucket/<output folder name>/.

Contohnya termasuk itemExplorationConfig hiperparameter khusus resep Personalisasi Pengguna opsional: dan. explorationWeight explorationItemAgeCutOff Secara opsional sertakan explorationWeight dan explorationItemAgeCutOff nilai untuk mengonfigurasi eksplorasi. Untuk informasi selengkapnya, lihat Resep Personalisasi Pengguna.

aws personalize create-batch-inference-job \ --job-name Batch job name \ --solution-version-arn Solution version ARN \ --filter-arn Filter ARN \ --job-input s3DataSource={path=s3://S3 input path} \ --job-output s3DataDestination={path=s3://S3 output path} \ --role-arn IAM service role ARN \ --batch-inference-job-config "{\"itemExplorationConfig\":{\"explorationWeight\":\"0.3\",\"explorationItemAgeCutOff\":\"30\"}}"

Membuat pekerjaan inferensi batch yang menghasilkan tema

Untuk menghasilkan tema untuk item serupa, Anda harus menggunakan resep Item Serupa dan kumpulan data Item Anda harus memiliki bidang tekstual dan kolom data nama item. Untuk informasi selengkapnya tentang rekomendasi dengan tema, lihatRekomendasi Batch dengan tema dari Content Generator.

Kode berikut membuat pekerjaan inferensi batch yang menghasilkan rekomendasi dengan tema. Biarkan batch-inference-job-mode set keTHEME_GENERATION. Ganti COLUMN_NAME dengan nama kolom yang menyimpan data nama item Anda.

aws personalize create-batch-inference-job \ --job-name Themed batch job name \ --solution-version-arn Solution version ARN \ --filter-arn Filter ARN \ --job-input s3DataSource={path=s3://S3 input path} \ --job-output s3DataDestination={path=s3://S3 output path} \ --role-arn IAM service role ARN \ --batch-inference-job-mode THEME_GENERATION \ --theme-generation-config "{\"fieldsForThemeGeneration\": {\"itemName\":\"COLUMN_NAME\"}}"

Membuat pekerjaan inferensi batch ()AWS SDKs

Setelah selesaiMempersiapkan data input untuk rekomendasi batch, Anda siap untuk membuat pekerjaan inferensi batch dengan CreateBatchInferenceJob operasi.

Membuat pekerjaan inferensi batch

Anda dapat menggunakan kode berikut untuk membuat pekerjaan inferensi batch. Tentukan nama pekerjaan, Nama Sumber Daya Amazon (ARN) versi solusi Anda, dan peran IAM layanan yang Anda buat untuk Amazon Personalisasi selama penyiapan. ARN Peran ini harus memiliki akses baca dan tulis ke bucket Amazon S3 input dan output Anda.

Sebaiknya gunakan lokasi yang berbeda untuk data keluaran Anda (baik folder atau bucket Amazon S3 yang berbeda). Gunakan sintaks berikut untuk lokasi input dan output: s3:/amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json dans3://amzn-s3-demo-bucket/<output folder name>/.

UntuknumResults, tentukan jumlah item yang ingin diprediksi Amazon Personalize untuk setiap baris data input. Secara opsional menyediakan filter ARN untuk memfilter rekomendasi. Jika filter Anda menggunakan parameter placeholder, pastikan nilai untuk parameter disertakan dalam input Anda. JSON Untuk informasi selengkapnya, lihat Memfilter rekomendasi batch dan segmen pengguna (sumber daya khusus).

SDK for Python (Boto3)

Contohnya termasuk itemExplorationConfig hiperparameter khusus resep Personalisasi Pengguna opsional: dan. explorationWeight explorationItemAgeCutOff Secara opsional sertakan explorationWeight dan explorationItemAgeCutOff nilai untuk mengonfigurasi eksplorasi. Untuk informasi selengkapnya, lihat Resep Personalisasi Pengguna.

import boto3 personalize_rec = boto3.client(service_name='personalize') personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM service role ARN", filterArn = "Filter ARN", batchInferenceJobConfig = { # optional USER_PERSONALIZATION recipe hyperparameters "itemExplorationConfig": { "explorationWeight": "0.3", "explorationItemAgeCutOff": "30" } }, jobInput = {"s3DataSource": {"path": "s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json"}}, jobOutput = {"s3DataDestination": {"path": "s3:/amzn-s3-demo-bucket/<output folder name>/"}} )
SDK for Java 2.x

Contoh ini mencakup itemExplorationConfig bidang khusus resep Personalisasi Pengguna opsional: dan. explorationWeight explorationItemAgeCutOff Secara opsional sertakan explorationWeight dan explorationItemAgeCutOff nilai untuk mengonfigurasi eksplorasi. Untuk informasi selengkapnya, lihat Resep Personalisasi Pengguna.

public static String createPersonalizeBatchInferenceJob(PersonalizeClient personalizeClient, String solutionVersionArn, String jobName, String filterArn, String s3InputDataSourcePath, String s3DataDestinationPath, String roleArn, String explorationWeight, String explorationItemAgeCutOff) { long waitInMilliseconds = 60 * 1000; String status; String batchInferenceJobArn; try { // Set up data input and output parameters. S3DataConfig inputSource = S3DataConfig.builder() .path(s3InputDataSourcePath) .build(); S3DataConfig outputDestination = S3DataConfig.builder() .path(s3DataDestinationPath) .build(); BatchInferenceJobInput jobInput = BatchInferenceJobInput.builder() .s3DataSource(inputSource) .build(); BatchInferenceJobOutput jobOutputLocation = BatchInferenceJobOutput.builder() .s3DataDestination(outputDestination) .build(); // Optional code to build the User-Personalization specific item exploration config. HashMap<String, String> explorationConfig = new HashMap<>(); explorationConfig.put("explorationWeight", explorationWeight); explorationConfig.put("explorationItemAgeCutOff", explorationItemAgeCutOff); BatchInferenceJobConfig jobConfig = BatchInferenceJobConfig.builder() .itemExplorationConfig(explorationConfig) .build(); // End optional User-Personalization recipe specific code. CreateBatchInferenceJobRequest createBatchInferenceJobRequest = CreateBatchInferenceJobRequest.builder() .solutionVersionArn(solutionVersionArn) .jobInput(jobInput) .jobOutput(jobOutputLocation) .jobName(jobName) .filterArn(filterArn) .roleArn(roleArn) .batchInferenceJobConfig(jobConfig) // Optional .build(); batchInferenceJobArn = personalizeClient.createBatchInferenceJob(createBatchInferenceJobRequest) .batchInferenceJobArn(); DescribeBatchInferenceJobRequest describeBatchInferenceJobRequest = DescribeBatchInferenceJobRequest.builder() .batchInferenceJobArn(batchInferenceJobArn) .build(); long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; // wait until the batch inference job is complete. while (Instant.now().getEpochSecond() < maxTime) { BatchInferenceJob batchInferenceJob = personalizeClient .describeBatchInferenceJob(describeBatchInferenceJobRequest) .batchInferenceJob(); status = batchInferenceJob.status(); System.out.println("Batch inference job status: " + status); if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return batchInferenceJobArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateBatchInferenceJobCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the batch inference job's parameters. export const createBatchInferenceJobParam = { jobName: 'JOB_NAME', jobInput: { /* required */ s3DataSource: { /* required */ path: 'INPUT_PATH', /* required */ // kmsKeyArn: 'INPUT_KMS_KEY_ARN' /* optional */' } }, jobOutput: { /* required */ s3DataDestination: { /* required */ path: 'OUTPUT_PATH', /* required */ // kmsKeyArn: 'OUTPUT_KMS_KEY_ARN' /* optional */' } }, roleArn: 'ROLE_ARN', /* required */ solutionVersionArn: 'SOLUTION_VERSION_ARN', /* required */ numResults: 20 /* optional integer*/ }; export const run = async () => { try { const response = await personalizeClient.send(new CreateBatchInferenceJobCommand(createBatchInferenceJobParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Memproses pekerjaan batch mungkin membutuhkan waktu beberapa saat untuk diselesaikan. Anda dapat memeriksa status pekerjaan dengan memanggil DescribeBatchInferenceJob dan meneruskan batchRecommendationsJobArn sebagai parameter input. Anda juga dapat mencantumkan semua pekerjaan inferensi batch Amazon Personalisasi di AWS lingkungan Anda dengan menelepon. ListBatchInferenceJobs

Membuat pekerjaan inferensi batch yang menghasilkan tema

Untuk menghasilkan tema untuk item serupa, Anda harus menggunakan resep Item Serupa dan kumpulan data Item Anda harus memiliki bidang tekstual dan kolom data nama item. Untuk informasi selengkapnya tentang rekomendasi dengan tema, lihatRekomendasi Batch dengan tema dari Content Generator.

Kode berikut membuat pekerjaan inferensi batch yang menghasilkan rekomendasi dengan tema. Biarkan batchInferenceJobMode set ke"THEME_GENERATION". Ganti COLUMNN_NAME dengan nama kolom yang menyimpan data nama item Anda.

import boto3 personalize_rec = boto3.client(service_name='personalize') personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM service role ARN", filterArn = "Filter ARN", batchInferenceJobMode = "THEME_GENERATION", themeGenerationConfig = { "fieldsForThemeGeneration": { "itemName": "COLUMN_NAME" } }, jobInput = {"s3DataSource": {"path": "s3://amzn-s3-demo-bucket/<folder name>/<input JSON file name>.json"}}, jobOutput = {"s3DataDestination": {"path": "s3://amzn-s3-demo-bucket/<output folder name>/"}} )