View a markdown version of this page

Buat pekerjaan pengoptimalan inferensi - Amazon SageMaker AI

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

Buat pekerjaan pengoptimalan inferensi

Anda dapat membuat pekerjaan pengoptimalan inferensi dengan menggunakan Studio atau SageMaker AI Python SDK. Pekerjaan mengoptimalkan model Anda dengan menerapkan teknik yang Anda pilih. Untuk informasi selengkapnya, lihat Teknik optimasi.

Harga instans untuk pekerjaan pengoptimalan inferensi

Saat Anda membuat pekerjaan pengoptimalan inferensi yang menerapkan kuantisasi atau kompilasi, SageMaker AI memilih jenis instans mana yang akan digunakan untuk menjalankan pekerjaan. Anda dikenakan biaya berdasarkan instans yang digunakan.

Untuk jenis instans yang mungkin dan detail harganya, lihat informasi harga pengoptimalan inferensi di halaman SageMaker harga Amazon.

Anda tidak dikenakan biaya tambahan untuk pekerjaan yang menerapkan decoding spekulatif.

Untuk model yang didukung yang dapat Anda optimalkan, lihatReferensi model yang didukung.

Selesaikan langkah-langkah berikut untuk membuat pekerjaan pengoptimalan inferensi di Studio.

Untuk mulai membuat pekerjaan pengoptimalan
  1. Di SageMaker AI Studio, buat pekerjaan pengoptimalan melalui salah satu jalur berikut:

    • Untuk membuat pekerjaan untuk JumpStart model, lakukan hal berikut:

      1. Di menu navigasi, pilih JumpStart.

      2. Pada halaman Semua model publik, pilih penyedia model, lalu pilih salah satu model yang mendukung pengoptimalan.

      3. Pada halaman detail model, pilih Optimalkan. Tombol ini diaktifkan hanya untuk model yang mendukung pengoptimalan.

      4. Pada halaman pekerjaan Buat optimasi inferensi, beberapa JumpStart model mengharuskan Anda untuk menandatangani perjanjian lisensi pengguna akhir (EULA) sebelum Anda dapat melanjutkan. Jika diminta, tinjau ketentuan lisensi di bagian Perjanjian lisensi. Jika persyaratan dapat diterima untuk kasus penggunaan Anda, pilih kotak centang untuk Saya menerima EULA, dan baca syarat dan ketentuannya.

    • Untuk membuat pekerjaan untuk JumpStart model yang disetel dengan baik, lakukan hal berikut:

      1. Di menu navigasi, di bawah Pekerjaan, pilih Pel atihan.

      2. Pada halaman Pekerjaan Pelatihan, pilih nama pekerjaan yang Anda gunakan untuk menyempurnakan JumpStart model. Pekerjaan ini memiliki jenis JumpStart pelatihan di kolom Jenis pekerjaan.

      3. Pada halaman detail untuk pekerjaan pelatihan, pilih Optimalkan.

    • Untuk membuat pekerjaan untuk model kustom, lakukan hal berikut:

      1. Di menu navigasi, di bawah Pekerjaan, pilih Pengoptimalan inferensi.

      2. Pilih Buat pekerjaan baru.

      3. Pada halaman pekerjaan pengoptimalan inferensi buat, pilih Tambahkan model.

      4. Di jendela Add model, pilih Custom Model.

      5. Pilih salah satu opsi berikut:

        Gunakan model yang sudah ada - Pilih opsi ini untuk mengoptimalkan model yang telah Anda buat di SageMaker AI.

        Nama model yang ada - masukkan nama model SageMaker AI Anda.

        Dari S3 - Pilih opsi ini untuk menyediakan artefak model dari Amazon S3. Untuk URI S3, masukkan URI untuk lokasi di Amazon S3 tempat Anda menyimpan artefak model.

      6. (Opsional) Untuk nama model keluaran , Anda dapat memasukkan nama kustom untuk model yang dioptimalkan yang dibuat oleh pekerjaan. Jika Anda tidak memberikan nama, Studio akan secara otomatis membuat nama berdasarkan pilihan Anda.

  2. Pada halaman pekerjaan pengoptimalan inferensi buat, untuk Nama pekerjaan, Anda dapat menerima nama default yang diberikan SageMaker AI. Atau, untuk memasukkan nama pekerjaan khusus, pilih bidang Nama pekerjaan, dan pilih Masukkan nama pekerjaan.

Untuk mengatur konfigurasi pengoptimalan
  1. Untuk tipe instans Deployment, pilih jenis instans yang ingin Anda optimalkan modelnya.

    Jenis instance mempengaruhi teknik pengoptimalan apa yang dapat Anda pilih. Untuk sebagian besar jenis yang menggunakan perangkat keras GPU, teknik yang didukung adalah Ku antisasi dan decoding spekulatif. Jika Anda memilih instance yang menggunakan silikon khusus, seperti instance AWS Inferentia ml.inf2.8xlarge, teknik yang didukung adalah Kompilasi, yang dapat Anda gunakan untuk mengkompilasi model untuk jenis perangkat keras tertentu.

  2. Pilih satu atau lebih teknik pengoptimalan yang disediakan Studio:

    • Jika Anda memilih Kuantisasi, pilih tipe data untuk tipe data presisi.

    • Jika Anda memilih Decoding Spekulatif, pilih salah satu opsi berikut:

      • Gunakan model draf SageMaker AI — Pilih untuk menggunakan model draf yang SageMaker disediakan AI.

        catatan

        Jika Anda memilih untuk menggunakan model draf SageMaker AI, Anda juga harus mengaktifkan isolasi jaringan. Studio menyediakan opsi ini di bawah Keamanan.

      • Pilih model JumpStart dra f — Pilih untuk memilih model dari JumpStart katalog untuk digunakan sebagai model draf Anda.

      • Pilih model draf Anda sendiri — Pilih untuk menggunakan model draf Anda sendiri, dan berikan URI S3 yang menemukannya.

    • Jika Anda memilih Pemuatan model cepat, Studio menampilkan variabel OPTION_TENSOR_PARALLEL_DEGREE lingkungan. Gunakan bidang Nilai untuk mengatur derajat paralelisme tensor. Nilai harus secara merata membagi jumlah GPU dalam instans yang Anda pilih untuk jenis instans Deployment. Misalnya, untuk memecah model Anda saat menggunakan instance dengan 8 GPU, gunakan nilai 2, 4, atau 8.

    • Jika Anda menyet el jenis instans Deployment ke instance AWS Inferentia atau AWS Trainium, Studio mungkin menunjukkan bahwa Compilation adalah salah satu opsi yang didukung. Dalam hal ini, Studio memilih opsi ini untuk Anda.

  3. Untuk Output, masukkan URI lokasi di Amazon S3. Di sana, SageMaker AI menyimpan artefak dari model yang dioptimalkan yang diciptakan oleh pekerjaan Anda.

  4. (Opsional) Per luas opsi Lanjutan untuk kontrol setelan yang lebih halus seperti peran IAM, VPC, dan variabel lingkungan. Untuk informasi selengkapnya, lihat Opsi lanjutan di bawah ini.

  5. Setelah selesai mengonfigurasi pekerjaan, pilih Buat pekerjaan.

    Studio menampilkan halaman detail pekerjaan, yang menunjukkan status pekerjaan dan semua pengaturannya.

Opsi lanjutan

Anda dapat mengatur opsi lanjutan berikut saat Anda membuat pekerjaan pengoptimalan inferensi.

Di bawah Konfigurasi, Anda dapat mengatur opsi berikut:

Derajat paralel tensor

Nilai untuk derajat paral elisme tensor. Paralelisme tensor adalah jenis paralelisme model di mana bobot model tertentu, gradien, dan status pengoptimal dibagi di seluruh perangkat. Nilai harus secara merata membagi jumlah GPU di cluster Anda.

Panjang token maksimum

Batas jumlah token yang akan dihasilkan oleh model. Perhatikan bahwa model mungkin tidak selalu menghasilkan jumlah maksimum token.

Bersamaan

Kemampuan untuk menjalankan beberapa contoh model pada perangkat keras dasar yang sama. Gunakan konkurensi untuk menyajikan prediksi kepada banyak pengguna dan untuk memaksimalkan pemanfaatan perangkat keras.

Ukuran batch

Jika model Anda melakukan inferensi batch, gunakan opsi ini untuk mengontrol ukuran batch yang diproses model Anda.

Inferensi batch menghasilkan prediksi model pada kumpulan pengamatan. Ini adalah pilihan yang baik untuk kumpulan data besar atau jika Anda tidak memerlukan tanggapan segera terhadap permintaan inferensi.

Di bawah Keamanan, Anda dapat mengatur opsi berikut:

IAM Role

Peran IAM yang memungkinkan SageMaker AI melakukan tugas atas nama Anda. Selama pengoptimalan model, SageMaker AI memerlukan izin Anda untuk:

  • Membaca data input dari bucket S3

  • Tulis artefak model ke bucket S3

  • Tulis log ke Amazon CloudWatch Logs

  • Publikasikan metrik ke Amazon CloudWatch

Anda memberikan izin untuk semua tugas ini ke peran IAM.

Untuk informasi selengkapnya, lihat Cara menggunakan peran eksekusi SageMaker AI.

Kunci enkripsi KMS

Kunci dalam AWS Key Management Service (AWS KMS). SageMaker AI menggunakan kunci mereka untuk mengenkripsi artefak model yang dioptimalkan ketika SageMaker AI mengunggah model ke Amazon S3.

VPC

SageMaker AI menggunakan informasi ini untuk membuat antarmuka jaringan dan melampirkannya ke wadah model Anda. Antarmuka jaringan menyediakan wadah model Anda dengan koneksi jaringan dalam VPC Anda yang tidak terhubung ke internet. Mereka juga memungkinkan model Anda untuk terhubung ke sumber daya di VPC pribadi Anda.

Untuk informasi selengkapnya, lihat Berikan Akses Titik Akhir yang Dihosting SageMaker AI ke Sumber Daya di VPC Amazon Anda.

Aktifkan isolasi jaringan

Aktifkan opsi ini jika Anda ingin membatasi akses internet wadah Anda. Kontainer yang berjalan dengan isolasi jaringan tidak dapat melakukan panggilan jaringan keluar.

catatan

Anda harus mengaktifkan opsi ini ketika Anda mengoptimalkan dengan decoding spekulatif dan Anda menggunakan model dra SageMaker f AI.

Untuk informasi selengkapnya tentang isolasi jaringan, lihatIsolasi Jaringan.

Di bawah Definisi wadah lanjutan, Anda dapat mengatur opsi berikut:

Kondisi berhenti

Menentukan batas berapa lama pekerjaan dapat berjalan. Ketika pekerjaan mencapai batas waktu, SageMaker AI mengakhiri pekerjaan. Gunakan opsi ini untuk membatasi biaya.

Tag

Key-value pasangan yang terkait dengan pekerjaan pengoptimalan.

Untuk informasi selengkapnya tentang tag, lihat Menandai AWS sumber daya Anda di Referensi Umum AWS.

Variabel-variabel lingkungan

Key-value pasangan yang menentukan variabel lingkungan yang akan diatur dalam wadah model.

Anda dapat membuat pekerjaan pengoptimalan inferensi dengan menggunakan SageMaker AI Python SDK dalam proyek Anda. Pertama, Anda mendefinisikan Model instance dengan menggunakan ModelBuilder kelas. Kemudian, Anda menggunakan optimize() metode untuk menjalankan pekerjaan yang mengoptimalkan model Anda dengan kuantisasi, decoding spekulatif, atau kompilasi. Ketika pekerjaan selesai, Anda menerapkan model ke titik akhir inferensi dengan menggunakan deploy() metode.

Untuk informasi selengkapnya tentang kelas dan metode yang digunakan dalam contoh berikut, lihat API di dokumentasi SageMaker AI Python SDK.

Untuk mengatur proyek Anda
  1. Dalam kode aplikasi Anda, impor pustaka yang diperlukan. Contoh berikut mengimpor SDK untuk Python (Boto3). Ini juga mengimpor kelas dari SageMaker AI Python SDK yang Anda gunakan untuk mendefinisikan dan bekerja dengan model:

    import boto3 from sagemaker.serve.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.core.helper.session_helper import Session from pathlib import Path
  2. Inisialisasi sesi SageMaker AI. Contoh berikut menggunakan Session() kelas:

    sagemaker_session = Session()
Untuk menentukan model Anda
  1. Buat SchemaBuilder instance, dan berikan sampel input dan output. Anda menyediakan instance ini ke ModelBuilder kelas saat Anda mendefinisikan model. Dengan itu, SageMaker AI secara otomatis menghasilkan fungsi menyusun untuk serialisasi dan deserialisasi input dan output.

    Untuk informasi selengkapnya tentang menggunakan ModelBuilder kelas SchemaBuilder dan, lihatBuat model di Amazon SageMaker AI dengan ModelBuilder.

    Contoh berikut memberikan contoh input dan output string ke SchemaBuilder kelas:

    response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output)
  2. Tentukan model Anda ke SageMaker AI. Contoh berikut menetapkan parameter untuk menginisialisasi ModelBuilder instance:

    model_builder = ModelBuilder( model="jumpstart-model-id", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )

    Contoh ini menggunakan JumpStart model. Ganti jumpstart-model-id dengan ID JumpStart model, sepertimeta-textgeneration-llama-3-70b.

    catatan

    Jika Anda ingin mengoptimalkan dengan decoding spekulatif, dan Anda ingin menggunakan draf SageMaker AI, Anda harus mengaktifkan isolasi jaringan. Untuk mengaktifkannya, sertakan argumen berikut saat Anda menginisialisasi ModelBuilder instance:

    enable_network_isolation=True,

    Untuk informasi selengkapnya tentang isolasi jaringan, lihatIsolasi Jaringan.

Untuk mengoptimalkan dengan kuantisasi
  1. Untuk menjalankan pekerjaan kuantisasi, gunakan optimize() metode, dan atur quantization_config argumen. Contoh berikut ditetapkan OPTION_QUANTIZE sebagai variabel lingkungan dalam wadah pengoptimalan:

    optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, quantization_config={ "OverrideEnvironment": { "OPTION_QUANTIZE": "awq", }, }, output_path="s3://output-path", )

    Dalam contoh ini, ganti instance-type dengan instance ML, sepertiml.p4d.24xlarge. Ganti s3://output-path dengan jalur ke lokasi S3 tempat Anda menyimpan model yang dioptimalkan yang dibuat oleh pekerjaan.

    optimize()Metode mengembalikan Model objek, yang dapat Anda gunakan untuk menerapkan model Anda ke titik akhir.

  2. Saat pekerjaan selesai, gunakan model. Contoh berikut menggunakan deploy() metode:

    endpoint = model_builder.deploy( instance_type="instance-type", accept_eula=True, )

    Dalam contoh ini, ganti instance-type dengan instance ML, sepertiml.p4d.24xlarge.

    deploy()Metode mengembalikan Endpoint objek, yang dapat Anda gunakan untuk mengirim permintaan inferensi ke titik akhir yang menghosting model.

Untuk mengoptimalkan dengan decoding spekulatif menggunakan model dra SageMaker f AI

Saat Anda mengoptimalkan model Anda dengan decoding spekulatif, Anda dapat memilih untuk menggunakan model draf yang disediakan SageMaker AI, atau Anda dapat menggunakan model Anda sendiri. Contoh berikut menggunakan model draf SageMaker AI.

Prasyarat

Untuk mengoptimalkan dengan decoding spekulatif dan model draf SageMaker AI, Anda harus mengaktifkan isolasi jaringan saat menentukan model Anda.

  1. Untuk menjalankan tugas decoding spekulatif, gunakan optimize() metode, dan atur speculative_decoding_config argumen. Contoh berikut menetapkan ModelProvider kunci SAGEMAKER untuk menggunakan model draf yang SageMaker disediakan AI.

    optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelProvider": "SAGEMAKER", }, )

    Dalam contoh ini, ganti instance-type dengan instance ML, sepertiml.p4d.24xlarge.

    optimize()Metode mengembalikan Model objek, yang dapat Anda gunakan untuk menerapkan model Anda ke titik akhir.

  2. Saat pekerjaan selesai, gunakan model. Contoh berikut menggunakan deploy() metode:

    endpoint = model_builder.deploy(accept_eula=True)

    deploy()Metode mengembalikan Endpoint objek, yang dapat Anda gunakan untuk mengirim permintaan inferensi ke titik akhir yang menghosting model.

Untuk mengoptimalkan dengan decoding spekulatif menggunakan model draf khusus

Sebelum Anda dapat memberikan draf model kustom Anda ke SageMaker AI, Anda harus terlebih dahulu mengunggah artefak model ke Amazon S3.

Contoh berikut menunjukkan satu cara yang mungkin untuk menyediakan model draf kustom. Contoh mengunduh model draf dari Hugging Face Hub, mengunggahnya ke Amazon S3, dan memberikan URI S3 ke speculative_decoding_config argumen.

  1. Jika Anda ingin mengunduh model dari Hugging Face Hub, tambahkan pust huggingface_hub aka ke proyek Anda, dan unduh model dengan snapshot_download() metode tersebut. Contoh berikut mengunduh model ke direktori lokal:

    import huggingface_hub huggingface_hub.snapshot_download( repo_id="model-id", revision="main", local_dir=download-dir, token=hf-access-token, )

    Dalam contoh ini, ganti model-id dengan ID model Hugging Face Hub, sepertimeta-llama/Meta-Llama-3-8B. Ganti download-dir dengan direktori lokal. Ganti hf-access-token dengan token akses pengguna Anda. Untuk mempelajari cara mendapatkan token akses Anda, lihat Token akses pengguna di dokumentasi Hugging Face.

    Untuk informasi selengkapnya tentang huggingface_hub pustaka, lihat pustaka klien Hub di dokumentasi Hugging Face.

  2. Untuk membuat model yang Anda unduh tersedia untuk SageMaker AI, unggah ke Amazon S3. Contoh berikut mengunggah model dengan sagemaker_session objek:

    custom_draft_model_uri = sagemaker_session.upload_data( path=hf_local_download_dir.as_posix(), bucket=sagemaker_session.default_bucket(), key_prefix="prefix", )

    Dalam contoh ini, ganti prefix dengan kualifikasi yang membantu Anda membedakan model draf di S3, sepertispec-dec-custom-draft-model.

    upload_data()Metode mengembalikan URI S3 untuk artefak model.

  3. Untuk menjalankan tugas decoding spekulatif, gunakan optimize() metode, dan atur speculative_decoding_config argumen. Contoh berikut menetapkan ModelSource kunci ke URI S3 dari model draf kustom:

    optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelSource": custom_draft_model_uri + "/", }, )

    Dalam contoh ini, ganti instance-type dengan instance ML, sepertiml.p4d.24xlarge.

    optimize()Metode mengembalikan Model objek, yang dapat Anda gunakan untuk menerapkan model Anda ke titik akhir.

  4. Saat pekerjaan selesai, gunakan model. Contoh berikut menggunakan deploy() metode:

    endpoint = model_builder.deploy(accept_eula=True)

    deploy()Metode mengembalikan Endpoint objek, yang dapat Anda gunakan untuk mengirim permintaan inferensi ke titik akhir yang menghosting model.

Untuk mengoptimalkan dengan kompilasi
  1. Untuk menjalankan pekerjaan kompilasi, gunakan optimize() metode, dan atur compilation_config argumen. Contoh berikut menggunakan OverrideEnvironment kunci untuk mengatur variabel lingkungan yang diperlukan dalam wadah pengoptimalan:

    optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, compilation_config={ "OverrideEnvironment": { "OPTION_TENSOR_PARALLEL_DEGREE": "24", "OPTION_N_POSITIONS": "8192", "OPTION_DTYPE": "fp16", "OPTION_ROLLING_BATCH": "auto", "OPTION_MAX_ROLLING_BATCH_SIZE": "4", "OPTION_NEURON_OPTIMIZE_LEVEL": "2", } }, output_path="s3://output-path", )

    Dalam contoh ini, atur instance-type ke tipe instance ML dengan perangkat keras yang dipercepat. Misalnya, untuk inferensi dipercepat dengan AWS Inferentia, Anda dapat mengatur tipe ke instance Inf2, seperti. ml.inf2.48xlarge Ganti s3://output-path dengan jalur ke lokasi S3 tempat Anda menyimpan model yang dioptimalkan yang dibuat oleh pekerjaan.

  2. Saat pekerjaan selesai, gunakan model. Contoh berikut menggunakan deploy() metode:

    endpoint = model_builder.deploy(accept_eula=True)

    deploy()Metode mengembalikan Endpoint objek, yang dapat Anda gunakan untuk mengirim permintaan inferensi ke titik akhir yang menghosting model.

Untuk menguji model Anda dengan permintaan inferensi
  • Untuk mengirim permintaan inferensi pengujian ke model yang Anda gunakan, invoke() gunakan metode Endpoint objek. Contoh berikut meneruskan sample_input variabel yang juga diteruskan ke SchemaBuilder kelas dalam contoh untuk menentukan model Anda:

    import json response = endpoint.invoke(body=json.dumps(sample_input), content_type="application/json") result = json.loads(response.body.read().decode('utf-8'))

    Input sampel memiliki prompt,"What is the largest planet in the solar system?". invoke()Metode mengembalikan respons yang dihasilkan model, seperti yang ditunjukkan oleh contoh berikut:

    {'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}

Anda dapat menggunakan AWS SDK untuk Python (Boto3) untuk membuat dan mengelola pekerjaan pengoptimalan inferensi secara terprogram. Bagian ini memberikan contoh untuk teknik pengoptimalan yang berbeda.

Prasyarat

Sebelum membuat pekerjaan pengoptimalan dengan Boto3, pastikan Anda memiliki:

  • Kre AWS denSIAL yang dikonfigurasi - Siapkan AWS kredenSIAL Anda dengan izin yang sesuai

  • Membuat model SageMaker AI (jika menggunakan model yang ada)

  • Data pelatihan yang disiapkan di S3 (untuk pengoptimalan decoding spekulatif, panjang konteks yang didukung hingga 4096)

  • Peran IAM dengan izin yang diperlukan - Peran eksekusi Anda harus memiliki izin untuk mengakses S3 dan membuat sumber daya SageMaker

Contoh: Buat Pekerjaan Optimasi dengan EAGLE Speculative Decoding (Llama 3.3 70B)

Contoh ini menunjukkan pembuatan pekerjaan pengoptimalan untuk model bahasa besar menggunakan teknik decoding spekulatif EAGLE:

import boto3 # Initialize SageMaker client sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Step 1: Create a SageMaker model (if not already created) model_response = sagemaker_client.create_model( ModelName='meta-llama-3-3-70b-instruct', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/Llama-3.3-70B-Instruct/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'SAGEMAKER_ENV': '1', 'SAGEMAKER_MODEL_SERVER_TIMEOUT': '3600' } } ) # Step 2: Create optimization job with speculative decoding optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'meta-llama-3-3-70b-instruct' } }, DeploymentInstanceType='ml.p4d.24xlarge', # MaxInstanceCount specifies the maximum number of instances for distributed training MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_8k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/llama-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")

Contoh: Membuat Pekerjaan Optimasi dari S3 Model Artifacts (Qwen3 32B)

Contoh ini menunjukkan cara membuat pekerjaan pengoptimalan menggunakan artefak model langsung dari S3:

import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Create model from S3 artifacts model_response = sagemaker_client.create_model( ModelName='qwen3-32b', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'Mode': 'SingleModel', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/qwen3-32b/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'AWS_REGION': 'us-west-2' } } ) # Create optimization job with smaller training dataset optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='qwen3-optim-job-eagle', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'qwen3-32b' } }, DeploymentInstanceType='ml.g6.48xlarge', MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_1k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/qwen3-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")

Contoh: Memantau dan Mengelola Pekerjaan Pengoptimalan

Setelah membuat pekerjaan pengoptimalan, Anda dapat memantau kemajuannya dan mengelolanya menggunakan perintah ini:

import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Describe optimization job to check status describe_response = sagemaker_client.describe_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding' ) print(f"Job Status: {describe_response['OptimizationJobStatus']}") # List all optimization jobs (with pagination) list_response = sagemaker_client.list_optimization_jobs( MaxResults=10, SortBy='CreationTime', SortOrder='Descending' ) print("\nRecent optimization jobs:") for job in list_response['OptimizationJobSummaries']: print(f"- {job['OptimizationJobName']}: {job['OptimizationJobStatus']}") # Stop a running optimization job if needed # sagemaker_client.stop_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # ) # Delete a completed or failed optimization job # sagemaker_client.delete_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # )

Penguraian kode spekulatif dengan Eagle Heads menjalankan empat pekerjaan pelatihan berurutan. Setiap pekerjaan menghasilkan output yang menjadi input ke pekerjaan berikutnya. Hanya output dari pekerjaan akhir yang dikirimkan ke bucket S3 Anda. Output perantara dienkripsi dan disimpan dalam bucket layanan SageMaker AI internal hingga 20 hari. SageMaker AI tidak memiliki izin untuk men-crypt mereka. Jika Anda ingin data perantara dihapus sebelum periode waktu tersebut, pastikan pekerjaan Anda telah selesai atau telah dihentikan, lalu buka kasus dukungan [https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating -a-support-case] agar data ini dihapus. Sertakan dalam permintaan ID AWS akun Anda dan pekerjaan optimasi ARN.

Keterbatasan model draf SageMaker AI

Untuk model apa pun yang Anda optimalkan dengan model draf SageMaker AI, perhatikan persyaratan, batasan, dan variabel lingkungan yang didukung.

Persyaratan

Anda harus melakukan tindakan berikut:

  • Gunakan model yang disediakan oleh SageMaker JumpStart.

  • Aktifkan isolasi jaringan untuk penerapan model.

  • Jika Anda menerapkan model ke wadah Large Model Inference (LMI), gunakan wadah DJLServing pada versi 0.28.0 atau lebih tinggi.

    Untuk wadah yang tersedia, lihat Kontainer Inferensi Model Besar di GitHub repositori Deep Learning Containers.

  • Jika Anda menyempurnakan JumpStart model, gunakan format sensor pengaman untuk bobot model.

    Untuk informasi selengkapnya tentang format ini, lihat Safetensor di dokumentasi Hugging Face.

Pembatasan

Anda tidak dapat melakukan hal berikut:

  • Gunakan model di lingkungan pengujian lokal yang Anda buat dengan mode lokal.

    Untuk informasi selengkapnya tentang mode lokal, lihat Mode Lokal di dokumentasi SageMaker AI Python SDK.

  • Akses wadah model melalui AWS Systems Manager Agen (Agen SSM). Agen SSM menyediakan akses tingkat shell ke wadah model Anda sehingga Anda dapat men-debug proses dan mencatat perintah dengan Amazon. CloudWatch

    Untuk informasi selengkapnya tentang fitur ini, lihat Akses kontainer melalui SSM.

  • Konfigurasikan wadah model untuk dump inti yang terjadi jika proses macet.

    Untuk informasi selengkapnya tentang pembuangan inti dari wadah model, lihat ProductionVariantCoreDumpConfig.

  • Terapkan model ke titik akhir multi-model, titik akhir multi-kontainer, atau titik akhir yang meng-host komponen inferensi.

    Untuk informasi selengkapnya tentang jenis titik akhir ini, lihatMulti-model titik akhir,Multi-container titik akhir, danKomponen inferensi.

  • Buat paket model untuk model. Anda menggunakan paket model untuk membuat model yang dapat diterapkan yang Anda publikasikan. AWS Marketplace

    Untuk informasi selengkapnya tentang fitur ini, lihat Membuat Model Package Resource.

  • Gunakan kode inferensi Anda sendiri dalam wadah model.

  • Gunakan requirements.txt file dalam wadah model. Jenis file ini mencantumkan dependensi paket.

  • Aktifkan parameter trust_remote_code Hugging Face.

Variabel lingkungan yang didukung

Anda dapat mengonfigurasi wadah hanya dengan variabel lingkungan berikut:

  • Variabel lingkungan umum untuk wadah inferensi model besar (LMI).

    Untuk informasi selengkapnya tentang variabel-variabel ini, lihat Konfigurasi Variabel Lingkungan dalam dokumentasi wadah LMI.

  • Variabel lingkungan umum untuk paket yang disediakan Hugging Face Hub di repositori Git-nya.

    Untuk repositori, lihat Hugging Face on. GitHub

  • Variabel lingkungan umum PyTorch & CUDA.

    Untuk informasi selengkapnya tentang variabel-variabel ini, lihat Variabel Lingkungan Torch dalam PyTorch dokumentasi.