Model invocation logging
Berbeda dari CloudTrail yang mencatat siapa memanggil apa, invocation logging mencatat isi permintaan dan jawabannya. Ini alat debugging terbaik sekaligus risiko privasi terbesar.
Intisari
- Mencatat data permintaan, respons, dan metadata untuk seluruh pemanggilan di satu region.
- Mati secara default. Setelah dinyalakan, log tersimpan sampai konfigurasinya dihapus.
- Tujuan: CloudWatch Logs dan/atau S3 — harus di akun dan region yang sama.
- Hanya untuk panggilan lewat endpoint
bedrock-runtime. - Data gambar dan dokumen dari Converse dicatat ke S3 bila pengiriman dan logging gambar diaktifkan.
Bedanya dengan CloudTrail
| CloudTrail | Model invocation logging | |
|---|---|---|
| Mencatat | Siapa memanggil apa, kapan, dari mana | Isi prompt dan isi respons |
| Default | Aktif (event management) | Mati |
| Risiko privasi | Rendah | Tinggi |
| Dipakai untuk | Audit dan tata kelola | Debugging, evaluasi, analisis kualitas |
Mengaktifkan
kelola = boto3.client("bedrock")
kelola.put_model_invocation_logging_configuration(
loggingConfig={
"cloudWatchConfig": {
"logGroupName": "/aws/bedrock/invocations",
"roleArn": "arn:aws:iam::123456789012:role/BedrockLoggingRole",
"largeDataDeliveryS3Config": {"bucketName": "bedrock-log-besar"},
},
"s3Config": {"bucketName": "bedrock-log-arsip", "keyPrefix": "invocations/"},
"textDataDeliveryEnabled": True,
"imageDataDeliveryEnabled": False, # matikan kalau tidak dibutuhkan
"embeddingDataDeliveryEnabled": False,
}
)
Ini keputusan privasi, bukan keputusan operasional. Menyalakannya berarti setiap pertanyaan yang diketik pengguna — termasuk yang mengandung data pribadi — tersimpan di akunmu, dan tetap tersimpan sampai konfigurasinya dihapus. Sebelum menyalakan: tetapkan retensi, tetapkan siapa yang boleh membaca, enkripsi tujuannya, dan pastikan kebijakan privasimu memang mengizinkannya.
Pengaman yang harus menyertainya
| Pengaman | Cara |
|---|---|
| Retensi terbatas | Retensi log group CloudWatch, S3 Lifecycle |
| Enkripsi | Kunci KMS milikmu untuk log group dan bucket |
| Akses sempit | Hanya role investigasi yang boleh membaca |
| Sensor PII | Comprehend sebelum data masuk prompt, karena log mencatat apa adanya |
| Alarm bila dimatikan | CloudTrail + EventBridge pada PutModelInvocationLoggingConfiguration |
Menanyakan log
fields @timestamp, modelId,
input.inputTokenCount as token_masuk,
output.outputTokenCount as token_keluar
| filter output.outputTokenCount > 2000
| sort @timestamp desc
| limit 50
Beberapa pertanyaan yang cuma bisa dijawab dari sini:
- Prompt seperti apa yang menghasilkan jawaban terpanjang — dan karenanya termahal?
- Pertanyaan apa yang paling sering berakhir dengan "tidak ditemukan"?
- Apakah konteks RAG yang dikirim benar-benar memuat jawabannya?
- Prompt mana yang memicu guardrail, dan apakah itu positif palsu?
Bahan evaluasi
Manfaat jangka panjang terbesarnya: log ini adalah sumber dataset evaluasi nyata. Pertanyaan yang benar-benar ditanyakan pengguna jauh lebih berharga daripada pertanyaan yang kamu karang sendiri. Ambil sampel berkala, sensor, beri jawaban acuan, dan pakai sebagai dataset uji di materi evaluasi.
| Tujuan | Cocok untuk |
|---|---|
| CloudWatch Logs | Investigasi cepat, Logs Insights, alarm |
| S3 | Arsip murah, analisis Athena, sumber dataset evaluasi |
| Keduanya | Pola yang lazim di produksi |
Latihan: aktifkan invocation logging ke CloudWatch dengan retensi 7 hari. Jalankan lima pertanyaan, lalu cari lewat Logs Insights mana yang menghasilkan token keluaran terbanyak. Terakhir, pasang rule EventBridge yang memberi tahu kalau konfigurasi logging ini diubah atau dimatikan.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.