Mengevaluasi model terlatih SageMaker AI Anda - Amazon SageMaker AI

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

Mengevaluasi model terlatih SageMaker AI Anda

Tujuan dari proses evaluasi adalah untuk menilai kinerja model terlatih terhadap tolok ukur atau kumpulan data khusus. Proses evaluasi biasanya melibatkan langkah-langkah untuk membuat resep evaluasi yang menunjuk ke model terlatih, menentukan kumpulan data dan metrik evaluasi, menyerahkan pekerjaan terpisah untuk evaluasi, dan mengevaluasi terhadap tolok ukur standar atau data khusus. Proses evaluasi akan menampilkan metrik kinerja yang disimpan di bucket Amazon S3 Anda.

catatan

Proses evaluasi yang dijelaskan dalam topik ini adalah proses offline. Model ini diuji terhadap tolok ukur tetap dengan jawaban yang telah ditentukan, daripada dinilai secara real-time atau melalui interaksi pengguna langsung. Untuk evaluasi waktu nyata, Anda dapat menguji model setelah diterapkan ke Amazon Bedrock dengan memanggil Amazon Bedrock Runtime. APIs

Prasyarat

Sebelum Anda memulai pekerjaan pelatihan evaluasi, perhatikan hal berikut.

  • Model Amazon Nova SageMaker terlatih AI yang ingin Anda evaluasi kinerjanya.

  • Resep dasar Amazon Nova untuk evaluasi. Untuk informasi selengkapnya, lihat Mendapatkan resep Amazon Nova.

Tugas benchmark yang tersedia

Paket kode sampel tersedia yang menunjukkan cara menghitung metrik tolok ukur menggunakan fitur evaluasi SageMaker model untuk Amazon Nova. Untuk mengakses paket kode, lihat Sampel-N ova-lighteval-custom-task.

Berikut adalah daftar tolok ukur standar industri yang tersedia yang didukung. Anda dapat menentukan tolok ukur berikut dalam eval_task parameter.

Tolok ukur yang tersedia untuk evaluasi model

Tolok Ukur Modalitas Deskripsi Metrik-metrik Strategi Subtugas tersedia
mmlu

Teks

Pemahaman Bahasa Multi-tugas - Menguji pengetahuan di 57 mata pelajaran.

ketepatan

zs_cot Ya
mmlu_pro Teks

MMLU - Subset Profesional - Berfokus pada domain profesional seperti hukum, kedokteran, akuntansi, dan teknik.

ketepatan zs_cot Tidak
bbh Teks

Tugas Penalaran Lanjutan - Kumpulan masalah menantang yang menguji keterampilan kognitif dan pemecahan masalah tingkat tinggi.

ketepatan fs_cot Ya
gpqa Teks

Penjawab Pertanyaan Fisika Umum — Menilai pemahaman konsep fisika dan kemampuan pemecahan masalah terkait.

ketepatan zs_cot Tidak
matematika Teks

Pemecahan Masalah Matematika — Mengukur penalaran matematis di seluruh topik termasuk aljabar, kalkulus, dan masalah kata.

exact_match zs_cot Ya
strong_tolak Teks

Quality-Control Task — Menguji kemampuan model untuk mendeteksi dan menolak konten yang tidak pantas, berbahaya, atau salah.

defleksi zs Ya
ifeval Teks

Instruksi-Mengikuti Evaluasi - Mengukur seberapa akurat model mengikuti instruksi yang diberikan dan menyelesaikan tugas untuk spesifikasi.

ketepatan zs Tidak
gen_qa Multi-Modal (gambar)

Evaluasi Dataset Kustom - Memungkinkan Anda menyediakan kumpulan data Anda sendiri untuk benchmarking, membandingkan output model dengan jawaban referensi dengan metrik seperti ROUGE dan BLEU. gen_qamendukung inferensi gambar untuk model berbasis Amazon Nova Lite atau Amazon Nova Pro. Juga mendukung Bring-Your-Own Metrik lambda. (Untuk evaluasi RFT, silakan gunakan resep eval RFT)

all gen_qa Tidak
llm_hakim Teks

LLM-as-a-Judge Perbandingan Preferensi — Menggunakan model Nova Judge untuk menentukan preferensi antara respons berpasangan (B dibandingkan dengan A) untuk petunjuk Anda, menghitung probabilitas B lebih disukai daripada A.

all hakim Tidak

mm_llm_hakim

Multi-Modal (gambar)

Tolok ukur baru ini berperilaku sama dengan berbasis teks llm_judge di atas. Satu-satunya perbedaan adalah mendukung inferensi gambar.

all hakim Tidak

rubric_llm_judge

Teks

Rubric Judge adalah model LLM-as-a-judge evaluasi yang disempurnakan yang dibangun di atas Nova 2.0 Lite. Berbeda dengan model hakim asli yang hanya memberikan putusan preferensi, Rubric Judge secara dinamis menghasilkan kriteria evaluasi khusus yang disesuaikan dengan setiap prompt dan memberikan skor granular di berbagai dimensi.

all

hakim

Tidak

aime_2024

Teks

AIME 2024 - Ujian Matematika Undangan Amerika menguji penalaran matematika tingkat lanjut dan pemecahan masalah

exact_match

zs_cot

Tidak

calendar_scheduling

Teks

Rencana Alami - Kalender Penjadwalan tugas menguji kemampuan perencanaan untuk menjadwalkan rapat di beberapa hari dan orang

exact_match

fs

Tidak

kemanusiaan

Teks

HumanEval - Dataset benchmark yang dirancang untuk mengevaluasi kemampuan pembuatan kode model bahasa besar

lulus @1

zs Tidak

Evaluasi konfigurasi spesifik

Di bawah ini adalah rincian komponen kunci dalam resep dan panduan tentang cara memodifikasinya untuk kasus penggunaan Anda.

Memahami dan memodifikasi resep Anda

Konfigurasi run umum

run: name: eval_job_name model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location replicas: 1 data_s3_path: "" mlflow_tracking_uri: "" mlflow_experiment_name : "" mlflow_run_name : ""
  • name: Nama deskriptif untuk pekerjaan evaluasi Anda.

  • model_type: Menentukan varian model Nova untuk digunakan. Jangan memodifikasi bidang ini secara manual. Opsinya meliputi:

    • Amazon. nova-micro-v1:0:128 k

    • Amazon. nova-lite-v1:0:300 k

    • Amazon. nova-pro-v1:0:300 k

    • amazon.nova-2-lite-v 1:0:256 k

  • model_name_or_path: Jalur ke model dasar atau jalur s3 untuk pos pemeriksaan pasca terlatih. Opsinya meliputi:

    • nova-mikro/prod

    • nova-lite/prod

    • nova-pro/prod

    • nova-lite-2/prod

    • Jalur S3 untuk jalur pos pemeriksaan pasca terlatih () s3:customer-escrow-111122223333-smtj-<unique_id>/<training_run_name>

      catatan

      Evaluasi model pasca-terlatih

      Untuk mengevaluasi model pasca-pelatihan setelah pekerjaan pelatihan Nova SFT, ikuti langkah-langkah ini setelah menjalankan pekerjaan pelatihan yang sukses. Di akhir log pelatihan, Anda akan melihat pesan log “Pelatihan selesai”. Anda juga akan menemukan manifest.json file di bucket keluaran Anda yang berisi lokasi pos pemeriksaan Anda. File ini akan berada di dalam output.tar.gz file di lokasi output S3 Anda. Untuk melanjutkan evaluasi, gunakan pos pemeriksaan ini dengan menyetelnya sebagai nilai untuk run.model_name_or_path konfigurasi resep Anda.

  • replica: Jumlah instance komputasi yang akan digunakan untuk inferensi terdistribusi (menjalankan inferensi di beberapa node). Setel replica > 1 untuk mengaktifkan inferensi multi-node, yang mempercepat evaluasi. Jika keduanya instance_count dan replica ditentukan, instance_count diutamakan. Perhatikan bahwa beberapa replika hanya berlaku untuk pekerjaan SageMaker pelatihan, bukan SageMaker HyperPod.

  • data_s3_path: Jalur dataset masukan Amazon S3. Bidang ini diperlukan tetapi harus selalu dibiarkan kosong.

  • mlflow_tracking_uri: (Opsional) Lokasi server MLflow pelacak (hanya diperlukan di SMHP)

  • mlflow_experiment_name: (Opsional) Nama percobaan untuk mengelompokkan ML terkait berjalan bersama

  • mlflow_run_name: (Opsional) Nama khusus untuk pelatihan tertentu yang dijalankan dalam eksperimen

Konfigurasi evaluasi

evaluation: task: mmlu strategy: zs_cot subtask: abstract_algebra metric: accuracy
  • task: Menentukan benchmark evaluasi atau tugas untuk digunakan. Tugas yang didukung meliputi:

    • mmlu

    • mmlu_pro

    • bbh

    • gpqa

    • math

    • strong_reject

    • gen_qa

    • ifeval

    • llm_judge

    • mm_llm_judge

    • rubric_llm_judge

    • aime_2024

    • calendar_scheduling

    • humaneval

  • strategy: Mendefinisikan pendekatan evaluasi.

    • zs_cot: Zero-shot Chain of Thought - pendekatan untuk mendorong model bahasa besar yang mendorong step-by-step penalaran tanpa memerlukan contoh eksplisit.

    • fs_cot: Few-shot Chain of Thought - pendekatan yang memberikan beberapa contoh step-by-step penalaran sebelum meminta model untuk memecahkan masalah baru.

    • zs: Zero-shot - pendekatan untuk memecahkan masalah tanpa contoh pelatihan sebelumnya.

    • gen_qa: Strategi khusus untuk membawa dataset Anda sendiri.

    • judge: Strategi khusus untuk Nova LLM sebagai Hakim danmm_llm_judge.

  • subtask: Opsional. Komponen spesifik dari tugas evaluasi. Untuk daftar lengkap subtugas yang tersedia, lihatSubtugas yang tersedia.

    • Periksa subtugas yang didukung dalam tugas benchmark yang tersedia.

    • Harus menghapus bidang ini jika tidak ada tolok ukur subtugas.

  • metric: Metrik evaluasi yang akan digunakan.

    • accuracy: Persentase jawaban yang benar.

    • exact_match: Untuk tolok ukur matematika, mengembalikan tingkat di mana string yang diprediksi input sama persis dengan referensi mereka.

    • deflection: Untuk tolok ukur penolakan yang kuat, kembalikan defleksi relatif ke model dasar dan metrik signifikansi perbedaan.

    • all:

      Untukgen_qa, bawa benchmark dataset Anda sendiri, kembalikan metrik berikut:

      • rouge1: Mengukur tumpang tindih unigram (kata tunggal) antara teks yang dihasilkan dan referensi.

      • rouge2: Mengukur tumpang tindih bigram (dua kata berturut-turut) antara teks yang dihasilkan dan referensi.

      • rougeL: Mengukur urutan umum terpanjang antara teks, memungkinkan celah dalam pencocokan.

      • exact_match: Skor biner (0 atau 1) menunjukkan apakah teks yang dihasilkan cocok dengan teks referensi persis, karakter demi karakter.

      • quasi_exact_match: Mirip dengan kecocokan persis tetapi lebih lunak, biasanya mengabaikan kasus, tanda baca, dan perbedaan ruang putih.

      • f1_score: Rata-rata harmonik presisi dan ingatan, mengukur tumpang tindih kata antara jawaban yang diprediksi dan referensi.

      • f1_score_quasi: Mirip dengan f1_score tetapi dengan pencocokan yang lebih lunak, menggunakan perbandingan teks yang dinormalisasi yang mengabaikan perbedaan kecil.

      • bleu: Mengukur presisi kecocokan n-gram antara teks yang dihasilkan dan referensi, yang biasa digunakan dalam evaluasi terjemahan.

      Untuk llm_judge danmm_llm_judge, bawa benchmark dataset Anda sendiri, kembalikan metrik berikut:

      • a_scores: Jumlah kemenangan untuk response_A lintasan evaluasi maju dan mundur.

      • a_scores_stderr: Kesalahan standar response_A_scores lintas penilaian berpasangan.

      • b_scores: Mengukur Jumlah kemenangan untuk response_B lintasan evaluasi maju dan mundur.

      • a_scores_stderr: Kesalahan standar response_B_scores lintas penilaian berpasangan.

      • ties: Jumlah penilaian di mana response_A dan response_B dievaluasi sebagai sama.

      • ties_stderr: Kesalahan standar ties lintas penilaian berpasangan.

      • inference_error: Hitungan penilaian yang tidak dapat dievaluasi dengan benar.

      • score: Skor agregat berdasarkan kemenangan dari umpan maju dan mundur untuk. response_B

      • score_stderr: Skor agregat berdasarkan kemenangan dari umpan maju dan mundur untuk. response_B

      • inference_error_stderr: Kesalahan standar skor agregat di seluruh penilaian berpasangan.

      • winrateProbabilitas yang response_B akan lebih disukai daripada response_A dihitung menggunakan probabilitas Bradley-Terry.

      • lower_rate: Batas bawah (persentil 2.5) dari perkiraan tingkat kemenangan dari pengambilan sampel bootstrap.

      • upper_rate: Batas atas (persentil 97,5) dari perkiraan tingkat kemenangan dari pengambilan sampel bootstrap.

Konfigurasi inferensi (opsional)

inference: max_new_tokens: 2048 top_k: -1 top_p: 1.0 temperature: 0 top_logprobs: 10 reasoning_effort: null # options: low/high to enable reasoning or null to disable reasoning
  • max_new_tokens: Jumlah maksimum token yang akan dihasilkan. Harus berupa bilangan bulat. (Tidak tersedia untuk Hakim LLM)

  • top_k: Jumlah token probabilitas tertinggi untuk dipertimbangkan. Harus berupa bilangan bulat.

  • top_p: Ambang probabilitas kumulatif untuk pengambilan sampel token. Harus berupa float antara 1,0 hingga 0,0.

  • temperature: Keacakan dalam pemilihan token (lebih tinggi = lebih acak), pertahankan 0 untuk membuat hasilnya deterministik. Jenis float, nilai minimal adalah 0.

  • top_logprobs: Jumlah logprob teratas yang akan dikembalikan dalam respons inferensi. Nilai ini harus berupa bilangan bulat dari 0 hingga 20. Logprobs berisi token keluaran yang dipertimbangkan dan probabilitas log dari setiap token keluaran yang dikembalikan dalam konten pesan.

  • reasoning_effort: mengontrol perilaku penalaran untuk model yang mampu beralasan. Tetapkan reasoning_effort hanya ketika model_type menentukan model berkemampuan penalaran (saat ini). amazon.nova-2-lite-v1:0:256k Opsi yang tersedia adalah null (nilai default jika tidak disetel; menonaktifkan penalaran), rendah, atau tinggi.

Contoh resep evaluasi

Amazon Nova menyediakan empat jenis resep evaluasi yang berbeda. Semua resep tersedia di GitHub repositori SageMaker HyperPod resep Amazon.

Resep evaluasi

    Resep-resep ini memungkinkan Anda untuk mengevaluasi kemampuan dasar model Amazon Nova di seluruh rangkaian tolok ukur khusus teks yang komprehensif.

    Format resep:xxx_general_text_benchmark_eval.yaml.

    Resep-resep ini memungkinkan Anda untuk membawa dataset Anda sendiri untuk benchmarking dan membandingkan output model untuk referensi jawaban menggunakan berbagai jenis metrik.

    Format resep:xxx_ bring_your_own_dataset_eval.yaml.

    Bawa persyaratan dataset Anda sendiri

    Format berkas:

    • gen_qa.jsonlFile tunggal yang berisi contoh evaluasi. Nama file harus tepatgen_qa.jsonl.

    • Anda harus mengunggah kumpulan data Anda ke lokasi S3 tempat pekerjaan SageMaker pelatihan dapat diakses.

    • File harus mengikuti format skema yang diperlukan untuk kumpulan data Tanya Jawab umum.

    Persyaratan format skema - Setiap baris dalam .jsonl file harus berupa objek JSON dengan bidang berikut.

    • Bidang yang diperlukan.

      query: String yang berisi pertanyaan atau instruksi yang membutuhkan jawaban.

      response: String yang berisi output model yang diharapkan.

    • Bidang opsional.

      systemString yang berisi prompt sistem yang mengatur perilaku, peran, atau kepribadian model AI sebelum memproses kueri.

      images: Array berisi daftar objek dengan atribut data (string gambar yang dikodekan Base64).

      metadata: String yang berisi metadata yang terkait dengan entri untuk tujuan penandaan.

    Entri contoh

    { "system":"You are an English major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" }{ "system":"You are a pattern analysis specialist who provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" }{ "system":"You have great attention to detail and follow instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }{ "system": "Image inference: ", "query": "What is the number in the image? Please just use one English word to answer.", "response": "two", "images": [ { "data": "data:image/png;Base64,iVBORw0KGgoA ..." } ] }

    Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan menambahkan bidang wajib berikut tanpa mengubah konfigurasi yang ada:

    evaluation: task: gen_qa strategy: gen_qa metric: all

    Batasan

    • Hanya satu .jsonl file yang diizinkan per evaluasi.

    • File harus benar-benar mengikuti skema yang ditentukan.

    Bawa metrik Anda sendiri

    Anda dapat membawa metrik Anda sendiri untuk sepenuhnya menyesuaikan alur kerja evaluasi model Anda dengan kemampuan pra-pemrosesan, pasca-pemrosesan, dan metrik khusus. Preprocessing memungkinkan Anda untuk memproses data input sebelum mengirimnya ke server inferensi, dan postprocessing memungkinkan Anda untuk menyesuaikan perhitungan metrik dan mengembalikan metrik kustom berdasarkan kebutuhan Anda.

    Ikuti langkah-langkah ini untuk membawa metrik Anda sendiri dengan SDK evaluasi khusus.

    1. Jika Anda belum melakukannya, buat AWS Lambda fungsi di tempat Akun AWS pertama Anda.

    2. Unduh nova-custom-eval-layer.zip file pra-bangun dari GitHub repositori. Anda dapat menggunakan SDK evaluasi kustom Nova open-source ini untuk memvalidasi muatan input dan output untuk fungsi kustom Anda dan menyediakan antarmuka terpadu untuk diintegrasikan dengan Nova membawa evaluasi metrik Anda sendiri selama pelatihan.

    3. Unggah layer Lambda kustom menggunakan perintah berikut:

      aws lambda publish-layer-version \ --layer-name nova-custom-eval-layer \ --zip-file fileb://nova-custom-eval-layer.zip \ --compatible-runtimes python3.12 python3.11 python3.10 python3.9
    4. Tambahkan layer ini sebagai layer kustom ke fungsi Lambda Anda, bersama dengan AWS layer yang diperlukan: AWSLambdaPowertoolsPythonV3-python312-arm64 (diperlukan untuk pydantic ketergantungan).

    5. Perbarui kode Lambda Anda menggunakan contoh yang disediakan, memodifikasi kode sesuai kebutuhan. Kode contoh ini membuat fungsi Lambda untuk evaluasi kustom Nova dengan langkah-langkah preprocessing dan postprocessing untuk evaluasi model.

      from nova_custom_evaluation_sdk.processors.decorators import preprocess, postprocess from nova_custom_evaluation_sdk.lambda_handler import build_lambda_handler @preprocess def preprocessor(event: dict, context) -> dict: data = event.get('data', {}) return { "statusCode": 200, "body": { "system": data.get("system"), "prompt": data.get("prompt", ""), "gold": data.get("gold", "") } } @postprocess def postprocessor(event: dict, context) -> dict: # data is already validated and extracted from event data = event.get('data', []) inference_output = data.get('inference_output', '') gold = data.get('gold', '') metrics = [] inverted_accuracy = 0 if inference_output.lower() == gold.lower() else 1.0 metrics.append({ "metric": "inverted_accuracy_custom", "value": accuracy }) # Add more metrics here return { "statusCode": 200, "body": metrics } # Build Lambda handler lambda_handler = build_lambda_handler( preprocessor=preprocessor, postprocessor=postprocessor )
    6. Berikan Lambda akses ke pekerjaan evaluasi. Pastikan peran eksekusi yang ditentukan untuk pekerjaan evaluasi mencakup kebijakan pemanggilan fungsi Lambda Anda. Berikut adalah contoh kebijakan.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAccess", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "StringLike": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-ARN" } } }, { "Sid": "DenyNonAWSEventSourcesForLambda", "Effect": "Deny", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ExampleFunction", "Condition": { "Null": { "lambda:EventSourceToken": false } } } ] }
    7. Tinjau skema payload Lambda. Tabel berikut mencantumkan permintaan Lambda dan skema respons. Anda dapat memvalidasi skema Anda menggunakan SDK evaluasi kustom Nova.

      Lambda Permintaan Muatan Muatan Respons Lambda
      Preprosesor
      { "process_type": "preprocess", "data": { "system": "You are a helpful assistant", "prompt": "What is 2+2?", "gold": "4" } }
      { "statusCode": 200, "body": { "system": "You are a helpful assistant that can substitute * for addition", "prompt": "What is 2*2?", "gold": "4" } }
      Postprosesor
      { "process_type": "postprocess", "data": { "prompt": "What is 2+2?", "inference_output": "2+2=4", "gold": "4" } }
      { "statusCode": 200, "body": [ {"metric": "accuracy", "value": 1.0}, {"metric": "f1_score", "value": 1.0}, {"metric": "exact_match", "value": 1}, {"metric": "length_ratio", "value": 0.8} ] }
    8. Ubah file resep. Inilah contohnya.

      processor: lambda_arn: arn:aws:lambda:us-east-1:111122223333:function:name lambda_type: "custom_metrics" preprocessing: enabled: true postprocessing: enabled: true aggregation: average
      • lambda-arn: Nama Sumber Daya Amazon (ARN) untuk fungsi Lambda Anda yang menangani preprocessing dan postprocessing.

      • lambda_type: “custom_metrics” atau “rft”.

      • preprocessing: Apakah akan mengaktifkan operasi pra-pemrosesan khusus.

      • postprocessing: Apakah akan mengaktifkan operasi pasca-pemrosesan khusus.

      • aggregation: Fungsi agregasi bawaan (opsi yang valid: min, maks, rata-rata, jumlah).

    Batasan

    • Bawa metrik Anda sendiri hanya berlaku untuk kumpulan data input teks.

    • Kumpulan data masukan multi-modal tidak didukung.

    • Langkah preprocessing tidak memproses bidang metadata.

    Nova LLM Judge adalah fitur evaluasi model yang memungkinkan Anda membandingkan kualitas respons dari satu model dengan respons model dasar menggunakan kumpulan data khusus. Ini menerima kumpulan data yang berisi petunjuk, respons dasar, dan respons penantang, kemudian menggunakan model Nova Judge untuk memberikan metrik tingkat kemenangan berdasarkan probabilitas Bradley-Terry melalui perbandingan berpasangan. Format resep:xxx_llm_judge_eval.yaml.

    Persyaratan set data Nova LLM

    Format berkas:

    • llm_judge.jsonlFile tunggal yang berisi contoh evaluasi. Nama file harus tepatllm_judge.jsonl.

    • Anda harus mengunggah kumpulan data Anda ke lokasi S3 tempat pekerjaan SageMaker pelatihan dapat diakses.

    • File harus mengikuti format skema yang diperlukan untuk llm_judge kumpulan data.

    • Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12 k.

    Format skema - Setiap baris dalam .jsonl file harus berupa objek JSON dengan bidang berikut.

    • Bidang yang diperlukan.

      prompt: String yang berisi prompt untuk respons yang dihasilkan.

      response_A: String yang berisi respons dasar.

      response_B: String yang berisi respons alternatif dibandingkan dengan respons dasar.

    Entri contoh

    { "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }

    Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan bidang wajib berikut, jangan ubah konten apa pun:

    evaluation: task: llm_judge strategy: judge metric: all

    Batasan

    • Hanya satu .jsonl file yang diizinkan per evaluasi.

    • File harus benar-benar mengikuti skema yang ditentukan.

    • Model Nova Judge sama di seluruh spesifikasi mikro/lite/pro.

    • Model juri khusus saat ini tidak didukung.

    Nova LLM sebagai Hakim untuk resep benchmark multi-modal (gambar)

    Nova LLM Judge for multi-modal (image), kependekan dari Nova MM_LLM Judge, adalah fitur evaluasi model yang memungkinkan Anda membandingkan kualitas respons dari satu model dengan respons model dasar menggunakan kumpulan data khusus. Ini menerima kumpulan data yang berisi petunjuk, respons dasar, dan respons penantang, dan gambar dalam bentuk string yang dikodekan Base64, kemudian menggunakan model Nova Judge untuk memberikan metrik tingkat kemenangan berdasarkan probabilitas Bradley-Terry melalui perbandingan berpasangan. Format resep:xxx_mm_llm_judge_eval.yaml.

    Persyaratan set data Nova LLM

    Format berkas:

    • mm_llm_judge.jsonlFile tunggal yang berisi contoh evaluasi. Nama file harus persisllm_judge.jsonl.

    • Anda harus mengunggah kumpulan data Anda ke lokasi S3 tempat pekerjaan SageMaker pelatihan dapat mengaksesnya.

    • File harus mengikuti format skema yang diperlukan untuk mm_llm_judge kumpulan data.

    • Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12 k, tidak termasuk atribut gambar.

    Format skema - Setiap baris dalam .jsonl file harus berupa objek JSON dengan bidang berikut.

    • Bidang yang diperlukan.

      prompt: String yang berisi prompt untuk respons yang dihasilkan.

      images: Array yang berisi daftar objek dengan atribut data (nilainya adalah string gambar yang dikodekan Base64).

      response_A: String yang berisi respons dasar.

      response_B: String yang berisi respons alternatif dibandingkan dengan respons dasar.

    Entri contoh

    Untuk keterbacaan, contoh berikut mencakup baris dan lekukan baru, tetapi dalam kumpulan data yang sebenarnya, setiap catatan harus berada pada satu baris.

    { "prompt": "What is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "How many animals are in each of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal" }

    Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan bidang wajib berikut, jangan ubah konten apa pun:

    evaluation: task: mm_llm_judge strategy: judge metric: all

    Batasan

    • Hanya satu .jsonl file yang diizinkan per evaluasi.

    • File harus benar-benar mengikuti skema yang ditentukan.

    • Model Nova MM Judge hanya mendukung referensi gambar.

    • Model Nova MM Judge sama di seluruh spesifikasi Amazon Nova Micro, Amazon Nova Lite, dan Amazon Nova Pro.

    • Model juri khusus saat ini tidak didukung.

    • URI gambar Amazon S3 tidak didukung.

    • Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12 k, tidak termasuk atribut gambar.

    Menjalankan pekerjaan pelatihan evaluasi

    Mulai pekerjaan pelatihan menggunakan contoh notebook Jupyter berikut. Silakan lihat buku catatan di bawah ini sebagai contoh untuk menjalankan pekerjaan pelatihan evaluasi. Untuk informasi selengkapnya, lihat Menggunakan estimator SageMaker AI untuk menjalankan pekerjaan pelatihan.

    Tabel referensi

    Sebelum menjalankan buku catatan, lihat tabel referensi berikut untuk memilih URI gambar dan konfigurasi instance.

    Memilih URI gambar

    Resep URI citra

    URI gambar evaluasi

    708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest

    Memilih jenis dan hitungan instans

    Model Jenis Tugas Tipe instans Jumlah instans yang disarankan Jumlah instans yang diizinkan
    Amazon Nova Mikro Evaluasi (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Lite Evaluasi (SFT/DPO)

    g5.12xlarge

    1 1 - 16
    Amazon Nova Pro Evaluasi (SFT/DPO)

    p5.48xlarge

    1 1 - 16

    Notebook sampel

    Contoh notebook berikut menunjukkan bagaimana menjalankan pekerjaan pelatihan evaluasi.

    # install python SDK # Do not use sagemaker v3, as sagemaker v3 introduced breaking changes !pip install sagemaker==2.254.1 import os import sagemaker,boto3 from sagemaker.inputs import TrainingInput from sagemaker.pytorch import PyTorch sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # Download recipe from https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/evaluation/nova to local # Assume the file name be `recipe.yaml` # Populate parameters # input_s3_uri = "s3://<path>/input/" # (Optional) Only used for multi-modal dataset or bring your own dataset s3 location output_s3_uri= "s3://<path>/output/" # Output data s3 location, a zip containing metrics json and tensorboard metrics files will be stored to this location instance_type = "instance_type" # ml.g5.16xlarge as example instance_count = 1 # The number of instances for inference (set instance_count > 1 for multi-node inference to accelerate evaluation) job_name = "your job name" recipe_path = "recipe path" # ./recipe.yaml as example image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest" # Do not change output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption # (Optional) To bring your own dataset and LLM judge for evaluation # evalInput = TrainingInput( # s3_data=input_s3_uri, # distribution='FullyReplicated', # s3_data_type='S3Prefix' #) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role, instance_type=instance_type, instance_count=instance_count, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, output_kms_key=output_kms_key ) estimator.fit() # If input dataset exist, pass in inputs # estimator.fit(inputs={"train": evalInput})

    Menilai dan menganalisis hasil evaluasi

    Setelah pekerjaan evaluasi Anda selesai dengan sukses, Anda dapat menilai dan menganalisis hasilnya menggunakan langkah-langkah berikut.

    Untuk menilai dan menganalisis hasil, ikuti langkah-langkah ini.
    1. Memahami struktur lokasi output. Hasil disimpan di lokasi keluaran Amazon S3 yang Anda tentukan sebagai file terkompresi:

      s3://your-bucket/output/benchmark-name/ └── job_name/ └── output/ └── output.tar.gz
    2. Unduh output.tar.gz file dari ember Anda. Ekstrak konten untuk mengungkapkan.

      run_name/ ├── eval_results/ | └── results_[timestamp].json │ └── inference_output.jsonl (only present for gen_qa) | └── details/ | └── model/ | └── <execution-date-time>/ | └──details_<task_name>_#_<datetime>.parquet └── tensorboard_results/ └── eval/ └── events.out.tfevents.[timestamp]
      • results_[timestamp].json- Keluaran metrik file JSON

      • details_<task_name>_#_<datetime>.parquet- File keluaran inferensi (kecuali untukstrong_reject)

      • events.out.tfevents.[timestamp]- Berkas TensorBoard keluaran

      • inference_output.jsonl- File output inferensi dibersihkan (hanya untuk gen_qa tugas)

    3. Lihat hasil di TensorBoard. Untuk memvisualisasikan metrik evaluasi Anda:

      1. Unggah folder yang diekstrak ke bucket S3

      2. Arahkan ke SageMaker TensorBoard

      3. Pilih “folder S3" Anda

      4. Tambahkan jalur folder S3

      5. Tunggu sinkronisasi selesai

    4. Menganalisis output inferensi. Semua tugas evaluasi, kecuali llm_judge danstrong_reject, akan memiliki bidang berikut untuk analisis dalam output inferensi.

      • full_prompt- Permintaan pengguna penuh dikirim ke model yang digunakan untuk tugas evaluasi.

      • gold- Bidang yang berisi jawaban yang benar seperti yang ditentukan oleh dataset.

      • metrics- Bidang yang berisi metrik yang dievaluasi pada inferensi individu. Nilai yang membutuhkan agregasi tidak akan memiliki nilai pada output inferensi individu.

      • predictions- Bidang yang berisi daftar output model untuk prompt yang diberikan.

      • pred_logits- Bidang yang berisi token keluaran yang dipertimbangkan dan probabilitas log dari setiap token keluaran yang dikembalikan dalam konten pesan.

      Dengan melihat bidang ini, Anda dapat menentukan penyebab perbedaan metrik dan memahami perilaku model yang disesuaikan.

      Untukllm_judge, file keluaran inferensi berisi bidang berikut di bawah bidang metrik per pasangan evaluasi.

      • forward_output- Preferensi mentah hakim saat mengevaluasi secara berurutan (Response_a, response_b).

      • backward_output- Preferensi mentah hakim saat mengevaluasi dalam urutan terbalik (Response_b, response_a).

      • Pairwise metrics- Metrik yang dihitung per pasangan evaluasi maju dan mundur termasuka_scores,, b_scoresties, inference-score dan. score

        catatan

        Metrik agregat seperti hanya winrate tersedia di file hasil ringkasan, bukan per penilaian individu.

      Untukgen_qa, inference_output.jsonl file berisi bidang berikut untuk setiap objek JSON:

      • prompt - Prompt akhir yang dikirimkan ke model

      • inferensi - Output inferensi mentah dari model

      • gold - Respon target dari dataset input

      • metadata - String metadata dari dataset input jika disediakan

    Evaluasi praktik terbaik dan pemecahan masalah

    Praktik terbaik

    Berikut ini mencantumkan beberapa praktik terbaik untuk proses evaluasi.

    • Jaga agar jalur keluaran Anda diatur berdasarkan model dan tipe benchmark.

    • Pertahankan konvensi penamaan yang konsisten untuk memudahkan pelacakan.

    • Simpan hasil yang diekstraksi di lokasi yang aman.

    • Pantau status TensorBoard sinkronisasi untuk pemuatan data yang berhasil.

    Pemecahan masalah

    Anda dapat menggunakan grup CloudWatch log /aws/sagemaker/TrainingJobs untuk melatih log kesalahan pekerjaan.

    Kegagalan inti mesin

    Masalah:

    Jika Anda melihat:

    RuntimeError: Engine core initialization failed.

    Penyebab:

    Meskipun ini adalah kesalahan umum yang dapat memiliki banyak penyebab, biasanya terjadi ketika ada ketidakcocokan antara pos pemeriksaan model yang Anda coba muat dan jenis model yang ditentukan. Misalnya Anda ingin mengevaluasi pos pemeriksaan model Nova 2.0 lite yang disetel dengan baik tetapi tipe model yang Anda berikan adalah tipe model 1.0. misalnya amazon.nova-micro-v1:0:128k

    Pemetaan yang benar harus

    model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location

    Pencegahan:

    Periksa kembali apakah model_name_or_path dipetakan ke kanan model_type sebelum mengirimkan pekerjaan evaluasi.

    Subtugas yang tersedia

    Berikut daftar subtugas yang tersedia untuk evaluasi model di beberapa domain termasuk MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard), dan MATH. Subtugas ini memungkinkan Anda menilai kinerja model Anda pada kemampuan dan bidang pengetahuan tertentu.

    MMLU

    MMLU_SUBTASKS = [ "abstract_algebra", "anatomy", "astronomy", "business_ethics", "clinical_knowledge", "college_biology", "college_chemistry", "college_computer_science", "college_mathematics", "college_medicine", "college_physics", "computer_security", "conceptual_physics", "econometrics", "electrical_engineering", "elementary_mathematics", "formal_logic", "global_facts", "high_school_biology", "high_school_chemistry", "high_school_computer_science", "high_school_european_history", "high_school_geography", "high_school_government_and_politics", "high_school_macroeconomics", "high_school_mathematics", "high_school_microeconomics", "high_school_physics", "high_school_psychology", "high_school_statistics", "high_school_us_history", "high_school_world_history", "human_aging", "human_sexuality", "international_law", "jurisprudence", "logical_fallacies", "machine_learning", "management", "marketing", "medical_genetics", "miscellaneous", "moral_disputes", "moral_scenarios", "nutrition", "philosophy", "prehistory", "professional_accounting", "professional_law", "professional_medicine", "professional_psychology", "public_relations", "security_studies", "sociology", "us_foreign_policy", "virology", "world_religions" ]

    BBH

    BBH_SUBTASKS = [ "boolean_expressions", "causal_judgement", "date_understanding", "disambiguation_qa", "dyck_languages", "formal_fallacies", "geometric_shapes", "hyperbaton", "logical_deduction_five_objects", "logical_deduction_seven_objects", "logical_deduction_three_objects", "movie_recommendation", "multistep_arithmetic_two", "navigate", "object_counting", "penguins_in_a_table", "reasoning_about_colored_objects", "ruin_names", "salient_translation_error_detection", "snarks", "sports_understanding", "temporal_sequences", "tracking_shuffled_objects_five_objects", "tracking_shuffled_objects_seven_objects", "tracking_shuffled_objects_three_objects", "web_of_lies", "word_sorting" ]

    Matematika

    MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus",

    Evaluasi model Nova Anda yang disesuaikan menggunakan berbagai metode dan metrik evaluasi.