

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

# Ikhtisar model khusus di Neptunus ML
<a name="machine-learning-custom-model-overview"></a>

## Kapan menggunakan model kustom di Neptunus ML
<a name="machine-learning-custom-models-when-to-use"></a>

Model bawaan Neptunus ML menangani semua tugas standar yang didukung oleh Neptunus ML, tetapi mungkin ada kasus di mana Anda ingin memiliki kontrol yang lebih terperinci atas model untuk tugas tertentu, atau perlu menyesuaikan proses pelatihan model. Misalnya, model khusus sesuai dalam situasi berikut:
+ Pengkodean fitur untuk fitur teks dari model teks yang sangat besar perlu dijalankan pada GPU.
+ Anda ingin menggunakan model Graph Neural Network (GNN) kustom Anda sendiri yang dikembangkan di Deep Graph Library (DGL).
+ Anda ingin menggunakan model tabel atau model ansambel untuk klasifikasi dan regresi simpul.

## Alur kerja untuk mengembangkan dan menggunakan model kustom di Neptunus ML
<a name="machine-learning-custom-model-workflow"></a>

Dukungan model khusus di Neptunus ML dirancang untuk diintegrasikan dengan mulus ke dalam alur kerja Neptunus ML yang ada. Ia bekerja dengan menjalankan kode kustom dalam modul sumber Anda pada infrastruktur Neptunus ML untuk melatih model. Sama seperti halnya untuk mode bawaan, Neptunus MLsecara otomatis meluncurkan SageMaker pekerjaan penyetelan HyperParameter AI dan memilih model terbaik sesuai dengan metrik evaluasi. Kemudian menggunakan implementasi yang disediakan dalam modul sumber Anda untuk menghasilkan artefak model untuk penerapan.

Ekspor data, konfigurasi pelatihan, dan preprocessing data sama untuk model kustom seperti model bawaan.

Setelah preprocessing data adalah ketika Anda dapat secara iteratif dan interaktif mengembangkan dan menguji implementasi model kustom Anda menggunakan Python. Ketika model Anda siap produksi, Anda dapat mengunggah modul Python yang dihasilkan ke Amazon S3 seperti ini:

```
aws s3 cp --recursive {{(source path to module)}} s3://{{(bucket name)}}/{{(destination path for your module)}}
```

Kemudian, Anda dapat menggunakan [default](machine-learning-overview.md#machine-learning-overview-starting-workflow) normal atau alur kerja data [tambahan](machine-learning-overview-evolving-data-incremental.md#machine-learning-overview-incremental) untuk menyebarkan model ke produksi, dengan beberapa perbedaan.

Untuk pelatihan model menggunakan model kustom, Anda harus menyediakan objek `customModelTrainingParameters` JSON ke API pelatihan model Neptunus ML untuk memastikan bahwa kode kustom Anda digunakan. Bidang dalam `customModelTrainingParameters` objek adalah sebagai berikut:
+ **`sourceS3DirectoryPath`**— (*Wajib*) Jalur ke lokasi Amazon S3 tempat modul Python yang mengimplementasikan model Anda berada. Ini harus menunjuk ke lokasi Amazon S3 yang valid yang berisi, setidaknya, skrip pelatihan, skrip transformasi, dan file. `model-hpo-configuration.json`
+ **`trainingEntryPointScript`**— (*Opsional*) Nama titik masuk dalam modul skrip Anda yang melakukan pelatihan model dan mengambil hyperparameters sebagai argumen baris perintah, termasuk hyperparameters tetap.

  *Default*: `training.py`.
+ **`transformEntryPointScript`**— (*Opsional*) Nama titik masuk dalam modul skrip Anda yang harus dijalankan setelah model terbaik dari pencarian hyperparameter telah diidentifikasi, untuk menghitung artefak model yang diperlukan untuk penerapan model. Itu harus dapat berjalan tanpa argumen baris perintah.

  *Default*: `transform.py`.

Contoh:

------
#### [ AWS CLI ]

```
aws neptunedata start-ml-model-training-job \
  --endpoint-url https://{{your-neptune-endpoint}}:{{port}} \
  --id "{{(a unique model-training job ID)}}" \
  --data-processing-job-id "{{(the data-processing job-id of a completed job)}}" \
  --train-model-s3-location "s3://{{(your Amazon S3 bucket)}}/neptune-model-graph-autotrainer" \
  --model-name "custom" \
  --custom-model-training-parameters '{
    "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
    "trainingEntryPointScript": "{{(your training script entry-point name in the Python module)}}",
    "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
  }'
```

Untuk informasi selengkapnya, lihat [start-ml-model-training-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-ml-model-training-job.html) di Referensi AWS CLI Perintah.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://{{your-neptune-endpoint}}:{{port}}',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.start_ml_model_training_job(
    id='{{(a unique model-training job ID)}}',
    dataProcessingJobId='{{(the data-processing job-id of a completed job)}}',
    trainModelS3Location='s3://{{(your Amazon S3 bucket)}}/neptune-model-graph-autotrainer',
    modelName='custom',
    customModelTrainingParameters={
        'sourceS3DirectoryPath': 's3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}',
        'trainingEntryPointScript': '{{(your training script entry-point name in the Python module)}}',
        'transformEntryPointScript': '{{(your transform script entry-point name in the Python module)}}'
    }
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://{{your-neptune-endpoint}}:{{port}}/ml/modeltraining \
  --region {{us-east-1}} \
  --service neptune-db \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "{{(a unique model-training job ID)}}",
        "dataProcessingJobId" : "{{(the data-processing job-id of a completed job)}}",
        "trainModelS3Location" : "s3://{{(your Amazon S3 bucket)}}/neptune-model-graph-autotrainer",
        "modelName": "custom",
        "customModelTrainingParameters" : {
          "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
          "trainingEntryPointScript": "{{(your training script entry-point name in the Python module)}}",
          "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
        }
      }'
```

**catatan**  
Contoh ini mengasumsikan bahwa AWS kredensil Anda dikonfigurasi di lingkungan Anda. Ganti {{us-east-1}} dengan Wilayah cluster Neptunus Anda.

------
#### [ curl ]

```
curl \
  -X POST https://{{your-neptune-endpoint}}:{{port}}/ml/modeltraining \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "{{(a unique model-training job ID)}}",
        "dataProcessingJobId" : "{{(the data-processing job-id of a completed job)}}",
        "trainModelS3Location" : "s3://{{(your Amazon S3 bucket)}}/neptune-model-graph-autotrainer",
        "modelName": "custom",
        "customModelTrainingParameters" : {
          "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
          "trainingEntryPointScript": "{{(your training script entry-point name in the Python module)}}",
          "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
        }
      }'
```

------

Demikian pula, untuk mengaktifkan transformasi model kustom, Anda harus menyediakan objek `customModelTransformParameters` JSON ke API transformasi model Neptunus ML, dengan nilai bidang yang kompatibel dengan parameter model yang disimpan dari tugas pelatihan. `customModelTransformParameters`Objek berisi bidang-bidang ini:
+ **`sourceS3DirectoryPath`**— (*Wajib*) Jalur ke lokasi Amazon S3 tempat modul Python yang mengimplementasikan model Anda berada. Ini harus menunjuk ke lokasi Amazon S3 yang valid yang berisi, setidaknya, skrip pelatihan, skrip transformasi, dan file. `model-hpo-configuration.json`
+ **`transformEntryPointScript`**— (*Opsional*) Nama titik masuk dalam modul skrip Anda yang harus dijalankan setelah model terbaik dari pencarian hyperparameter telah diidentifikasi, untuk menghitung artefak model yang diperlukan untuk penerapan model. Itu harus dapat berjalan tanpa argumen baris perintah.

  *Default*: `transform.py`.

Contoh:

------
#### [ AWS CLI ]

```
aws neptunedata start-ml-model-transform-job \
  --endpoint-url https://{{your-neptune-endpoint}}:{{port}} \
  --id "{{(a unique model-transform job ID)}}" \
  --training-job-name "{{(name of a completed SageMaker training job)}}" \
  --model-transform-output-s3-location "s3://{{(your Amazon S3 bucket)}}/neptune-model-transform/" \
  --custom-model-transform-parameters '{
    "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
    "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
  }'
```

Untuk informasi selengkapnya, lihat [start-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-ml-model-transform-job.html) di Referensi AWS CLI Perintah.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://{{your-neptune-endpoint}}:{{port}}',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.start_ml_model_transform_job(
    id='{{(a unique model-transform job ID)}}',
    trainingJobName='{{(name of a completed SageMaker training job)}}',
    modelTransformOutputS3Location='s3://{{(your Amazon S3 bucket)}}/neptune-model-transform/',
    customModelTransformParameters={
        'sourceS3DirectoryPath': 's3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}',
        'transformEntryPointScript': '{{(your transform script entry-point name in the Python module)}}'
    }
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://{{your-neptune-endpoint}}:{{port}}/ml/modeltransform \
  --region {{us-east-1}} \
  --service neptune-db \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "{{(a unique model-transform job ID)}}",
        "trainingJobName" : "{{(name of a completed SageMaker training job)}}",
        "modelTransformOutputS3Location" : "s3://{{(your Amazon S3 bucket)}}/neptune-model-transform/",
        "customModelTransformParameters" : {
          "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
          "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
        }
      }'
```

**catatan**  
Contoh ini mengasumsikan bahwa AWS kredensil Anda dikonfigurasi di lingkungan Anda. Ganti {{us-east-1}} dengan Wilayah cluster Neptunus Anda.

------
#### [ curl ]

```
curl \
  -X POST https://{{your-neptune-endpoint}}:{{port}}/ml/modeltransform \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "{{(a unique model-transform job ID)}}",
        "trainingJobName" : "{{(name of a completed SageMaker training job)}}",
        "modelTransformOutputS3Location" : "s3://{{(your Amazon S3 bucket)}}/neptune-model-transform/",
        "customModelTransformParameters" : {
          "sourceS3DirectoryPath": "s3://{{(your Amazon S3 bucket)}}/{{(path to your Python module)}}",
          "transformEntryPointScript": "{{(your transform script entry-point name in the Python module)}}"
        }
      }'
```

------