Model AI generatif Google, seperti Gemini 1.5 Flash dan Gemini 1.5 Pro, dirancang untuk memprioritaskan keamanan. Namun, mereka tetap dapat menghasilkan respons berbahaya, terutama saat diprompt secara eksplisit. Untuk lebih meningkatkan keamanan dan meminimalkan penyalahgunaan, Anda dapat mengonfigurasi filter keamanan untuk memblokir respons yang berpotensi berbahaya.
Halaman ini menjelaskan setiap jenis filter keamanan dan menguraikan konsep keamanan utama. Untuk filter yang dapat dikonfigurasi, halaman ini menunjukkan cara mengonfigurasi nilai minimum pemblokiran setiap kategori bahaya untuk mengontrol frekuensi pemblokiran perintah dan respons.
Filter keamanan berfungsi sebagai penghalang, mencegah output berbahaya, tetapi tidak secara langsung memengaruhi perilaku model. Untuk mempelajari kemampuan kemudi model lebih lanjut, lihat Petunjuk sistem untuk keamanan.
Perintah yang tidak aman
Vertex AI Gemini API memberikan salah satu kode enum
berikut untuk menjelaskan alasan perintah ditolak:
Enum | Jenis filter | Deskripsi |
---|---|---|
PROHIBITED_CONTENT | Filter keamanan yang tidak dapat dikonfigurasi | Perintah tersebut diblokir karena ditandai karena berisi konten yang dilarang, biasanya CSAM. |
BLOCKED_REASON_UNSPECIFIED | T/A | Alasan pemblokiran perintah tidak ditentukan. |
LAINNYA | T/A | Enum ini mengacu pada semua alasan lain untuk memblokir perintah. Perhatikan bahwa Vertex AI Gemini API tidak mendukung semua bahasa. Untuk mengetahui daftar bahasa yang didukung, lihat Dukungan bahasa Gemini. |
Untuk mempelajari lebih lanjut, lihat BlockedReason.
Berikut adalah contoh output Vertex AI Gemini API saat perintah
diblokir karena berisi PROHIBITED_CONTENT
:
{ "promptFeedback": { "blockReason": "PROHIBITED_CONTENT" }, "usageMetadata": { "promptTokenCount": 7, "totalTokenCount": 7 } }
Respons yang tidak aman
Filter berikut dapat mendeteksi dan memblokir respons yang berpotensi tidak aman:
- Filter keamanan yang tidak dapat dikonfigurasi, yang memblokir materi pelecehan seksual terhadap anak-anak (CSAM) dan informasi identitas pribadi (PII).
- Filter keamanan yang dapat dikonfigurasi, yang memblokir konten tidak aman berdasarkan daftar kategori bahaya dan batas pemblokiran yang dikonfigurasi pengguna. Anda dapat mengonfigurasi nilai minimum pemblokiran untuk setiap bahaya ini berdasarkan hal yang sesuai untuk kasus penggunaan dan bisnis Anda. Untuk mempelajari lebih lanjut, lihat Filter keamanan yang dapat dikonfigurasi.
- Filter kutipan, yang memberikan kutipan untuk materi sumber. Untuk mempelajari lebih lanjut, lihat Filter kutipan.
LLM menghasilkan respons dalam unit teks yang disebut token. Model berhenti
membuat token karena mencapai titik berhenti alami atau
karena salah satu filter memblokir respons. Vertex AI Gemini API
menyediakan salah satu kode enum
berikut untuk menjelaskan alasan pembuatan token dihentikan:
Enum | Jenis filter | Deskripsi |
---|---|---|
STOP | T/A | Enum ini menunjukkan bahwa model mencapai titik perhentian alami atau urutan perhentian yang diberikan. |
MAX_TOKENS | T/A | Pembuatan token dihentikan karena model mencapai jumlah maksimum token yang ditentukan dalam permintaan. |
KESELAMATAN | Filter keamanan yang dapat dikonfigurasi | Pembuatan token dihentikan karena respons ditandai karena alasan keamanan. |
PEMBACAAN | Filter kutipan | Pembuatan token dihentikan karena potensi pembacaan. |
SPII | Filter keamanan yang tidak dapat dikonfigurasi | Pembuatan token dihentikan karena respons ditandai untuk konten Informasi Identitas Pribadi yang Sensitif (SPII). |
PROHIBITED_CONTENT | Filter keamanan yang tidak dapat dikonfigurasi | Pembuatan token dihentikan karena respons ditandai karena berisi konten yang dilarang, biasanya CSAM. |
FINISH_REASON_UNSPECIFIED | T/A | Alasan penyelesaian tidak ditentukan. |
LAINNYA | T/A | Enum ini mengacu pada semua alasan lain yang menghentikan pembuatan token. Perhatikan bahwa pembuatan token tidak didukung untuk semua bahasa. Untuk mengetahui daftar bahasa yang didukung, lihat Dukungan bahasa Gemini. |
Untuk mempelajari lebih lanjut, lihat FinishReason.
Jika filter memblokir respons, filter akan membatalkan kolom Candidate.content
respons. Model ini tidak memberikan masukan apa pun ke model.
Filter keamanan yang dapat dikonfigurasi
Filter keamanan menilai konten berdasarkan daftar bahaya. Untuk setiap kategori bahaya, filter keamanan menetapkan satu skor keamanan berdasarkan probabilitas konten tidak aman dan skor keamanan lain berdasarkan keparahan konten berbahaya.
Filter keamanan yang dapat dikonfigurasi tidak memiliki versi yang independen dari versi model. Google tidak akan memperbarui filter keamanan yang dapat dikonfigurasi untuk versi model yang dirilis sebelumnya. Namun, tindakan ini dapat memperbarui filter keamanan yang dapat dikonfigurasi untuk versi model mendatang.
Kategori bahaya
Filter keamanan menilai konten berdasarkan kategori bahaya berikut:
Kategori Kerugian | Definisi |
---|---|
Ujaran Kebencian | Komentar negatif atau berbahaya yang menargetkan atribut identitas dan/atau dilindungi. |
Pelecehan | Komentar yang mengancam, mengintimidasi, menindas, atau melecehkan yang menarget individu lain. |
Seksual Vulgar | Berisi referensi ke tindakan seksual atau konten cabul lainnya. |
Konten Berbahaya | Mempromosikan atau memungkinkan akses ke barang, layanan, dan aktivitas berbahaya. |
Perbandingan skor probabilitas dan skor keparahan
Skor keamanan probabilitas mencerminkan kemungkinan respons model
terkait dengan bahaya masing-masing. Atribut ini memiliki
skor keyakinan terkait antara 0.0
dan 1.0
, yang dibulatkan ke satu angka desimal.
Skor keyakinan didiskretisasi menjadi empat tingkat keyakinan keamanan:
NEGLIGIBLE
, LOW
, MEDIUM
, dan HIGH
.
Skor keamanan keparahan mencerminkan besarnya tingkat bahaya respons
model. Masalah ini memiliki skor keparahan terkait yang berkisar dari
0.0
hingga 1.0
, dibulatkan ke satu tempat desimal. Skor keparahan diskretasikan
menjadi empat level: NEGLIGIBLE
, LOW
, MEDIUM
, dan HIGH
.
Konten dapat memiliki skor probabilitas rendah dan skor keparahan tinggi, atau skor probabilitas tinggi dan skor keparahan rendah.
Cara mengonfigurasi filter keamanan
Anda dapat menggunakan Vertex AI Gemini API atau konsol Google Cloud untuk mengonfigurasi filter keamanan.
Vertex AI Gemini API
Vertex AI Gemini API menyediakan dua metode "blokir bahaya":
- KEPARAHAN: Metode ini menggunakan skor probabilitas dan keparahan.
- PROBABILITY: Metode ini hanya menggunakan skor probabilitas.
Metode default-nya adalah SEVERITY
. Untuk model yang lebih lama dari gemini-1.5-flash
dan
gemini-1.5-pro
, metode defaultnya adalah
PROBABILITY
. Untuk mempelajari lebih lanjut, lihat
referensi API HarmBlockMethod.
Vertex AI Gemini API menyediakan nilai minimum "blokir bahaya" berikut:
- BLOCK_LOW_AND_ABOVE: Memblokir jika skor probabilitas atau skor
keparahan adalah
LOW
,MEDIUM
, atauHIGH
. - BLOCK_MEDIUM_AND_ABOVE: Memblokir jika skor probabilitas atau skor
keparahan adalah
MEDIUM
atauHIGH
. Untukgemini-1.5-flash-001
dangemini-1.5-pro-001
,BLOCK_MEDIUM_AND_ABOVE
adalah nilai default. - BLOCK_ONLY_HIGH: Blokir jika skor probabilitas atau skor keparahan
adalah
HIGH
. - HARM_BLOCK_THRESHOLD_UNSPECIFIED: Memblokir menggunakan nilai minimum default.
- NONAKTIF: Tidak ada pemblokiran respons otomatis dan tidak ada metadata keamanan yang ditampilkan.
Untuk
gemini-1.5-flash-002
dangemini-1.5-pro-002
,OFF
adalah nilai default. - BLOCK_NONE: Setelan keamanan
BLOCK_NONE
menghapus pemblokiran respons otomatis. Sebagai gantinya, Anda dapat mengonfigurasi pedoman keamanan Anda sendiri dengan skor yang ditampilkan. Ini adalah kolom terbatas yang tidak tersedia untuk semua pengguna dalam versi model GA.
Misalnya, kode Python berikut menunjukkan cara menetapkan nilai minimum pemblokiran
konten berbahaya ke BLOCK_ONLY_HIGH
untuk kategori konten berbahaya:
generative_models.SafetySetting(
category=generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold=generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH,
),
Tindakan ini akan memblokir sebagian besar konten yang diklasifikasikan sebagai konten berbahaya. Untuk mempelajari lebih lanjut, lihat referensi HarmBlockThreshold API.
Untuk contoh menyeluruh di Python, Node.js, Java, Go, C#, dan REST, lihat Contoh konfigurasi filter keamanan.
Konsol Google Cloud
Konsol Google Cloud memungkinkan Anda mengonfigurasi nilai minimum untuk setiap atribut keamanan. Filter keamanan hanya menggunakan skor probabilitas. Tidak ada opsi untuk menggunakan skor keparahan.
Konsol Google Cloud menyediakan nilai nilai minimum berikut:
- Nonaktif (default): Tidak ada pemblokiran respons otomatis.
- Block few: Memblokir jika skor probabilitasnya adalah
HIGH
. - Blokir beberapa: Memblokir jika skor probabilitasnya adalah
MEDIUM
atauHIGH
. - Blokir sebagian besar: Memblokir jika skor probabilitasnya adalah
LOW
,MEDIUM
, atauHIGH
.
Misalnya, jika Anda menetapkan setelan pemblokiran ke Block few untuk
kategori Konten Berbahaya, semua konten yang memiliki probabilitas tinggi
sebagai konten berbahaya akan diblokir. Semua yang memiliki probabilitas lebih rendah
diizinkan. Nilai minimum default-nya adalah Block some
.
Untuk menetapkan nilai minimum, lihat langkah-langkah berikut:
Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.
Di bagian Buat perintah baru, klik salah satu tombol untuk membuka halaman desain perintah.
Klik Setelan keamanan.
Jendela dialog Setelan keamanan akan terbuka.
Untuk setiap kategori bahaya, konfigurasikan nilai nilai minimum yang diinginkan.
Klik Simpan.
Contoh output saat respons diblokir oleh filter keamanan yang dapat dikonfigurasi
Berikut adalah contoh output Vertex AI Gemini API saat respons diblokir oleh filter keamanan yang dapat dikonfigurasi karena berisi konten berbahaya:
{ "candidates": [{ "finishReason": "SAFETY", "safetyRatings": [{ "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE", "probabilityScore": 0.11027937, "severity": "HARM_SEVERITY_LOW", "severityScore": 0.28487435 }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "HIGH", "blocked": true, "probabilityScore": 0.95422274, "severity": "HARM_SEVERITY_MEDIUM", "severityScore": 0.43398145 }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE", "probabilityScore": 0.11085559, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.19027223 }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE", "probabilityScore": 0.22901751, "severity": "HARM_SEVERITY_NEGLIGIBLE", "severityScore": 0.09089675 }] }], "usageMetadata": { "promptTokenCount": 38, "totalTokenCount": 38 } }
Contoh konfigurasi filter keamanan
Contoh berikut menunjukkan cara mengonfigurasi filter keamanan menggunakan Vertex AI Gemini API:
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API C# Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Setelah menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirimkan permintaan ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region untuk memproses permintaan. Opsi
yang tersedia mencakup hal berikut:
Klik untuk meluaskan sebagian daftar region yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model model multimodal
yang ingin Anda gunakan. Opsinya adalah:
gemini-1.0-pro
gemini-1.0-pro-vision
- ROLE:
Peran dalam percakapan yang terkait dengan konten. Menentukan peran diperlukan bahkan dalam
kasus penggunaan satu giliran.
Nilai yang dapat diterima mencakup hal berikut:
USER
: Menentukan konten yang dikirim oleh Anda.MODEL
: Menentukan respons model.
- TEXT: Petunjuk teks yang akan disertakan dalam perintah.
- SAFETY_CATEGORY:
Kategori keamanan untuk mengonfigurasi nilai minimum. Nilai yang dapat diterima mencakup hal berikut:
Klik untuk meluaskan kategori keamanan
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
Batas untuk memblokir respons yang mungkin termasuk dalam kategori keamanan yang ditentukan berdasarkan
probabilitas. Nilai yang dapat diterima mencakup hal berikut:
Klik untuk meluaskan nilai minimum pemblokiran
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(default)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
memblokir paling banyak, sedangkanBLOCK_ONLY_HIGH
memblokir paling sedikit.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Isi JSON permintaan:
{ "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "safetySettings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent -d \
$'{
"contents": {
"role": "user",
"parts": { "text": "Hello!" }
},
"safety_settings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "OFF"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}
]
}'
Filter kutipan
Fitur kode generatif Vertex AI dimaksudkan untuk menghasilkan konten asli. Secara desain, Gemini membatasi kemungkinan konten yang sudah ada direplikasi secara mendetail. Jika fitur Gemini membuat kutipan yang panjang dari halaman web, Gemini akan mencantumkan halaman tersebut sebagai sumber kutipan.
Terkadang konten yang sama dapat ditemukan di beberapa halaman web. Gemini akan mengarahkan Anda ke sumber yang populer. Dalam hal kutipan ke repositori kode, kutipan juga dapat merujuk ke lisensi open source yang berlaku. Mematuhi setiap persyaratan lisensi adalah tanggung jawab Anda sendiri.
Untuk mempelajari metadata filter kutipan, lihat Referensi Citation API.
Filter integritas sipil
Filter integritas sipil mendeteksi dan memblokir perintah yang menyebutkan atau terkait dengan
pemilu dan kandidat politik. Filter ini dinonaktifkan secara default. Untuk mengaktifkannya, tetapkan nilai minimum pemblokiran untuk CIVIC_INTEGRITY
ke salah satu nilai berikut. Nilai yang Anda tentukan tidak akan berpengaruh.
BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
BLOCK_ONLY_HIGH
Kode Python berikut menunjukkan cara mengaktifkan filter integritas sipil:
generative_models.SafetySetting(
category=generative_models.HarmCategory.CIVIC_INTEGRITY,
threshold=generative_models.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
Untuk mengetahui detail selengkapnya tentang filter integritas sipil, hubungi perwakilan Google Cloud Anda.
Praktik terbaik
Meskipun filter keamanan membantu mencegah konten yang tidak aman, filter tersebut terkadang mungkin memblokir konten yang aman atau melewatkan konten yang tidak aman. Model lanjutan seperti Gemini 1.5 Flash dan Gemini 1.5 Pro didesain untuk menghasilkan respons yang aman meskipun tanpa filter. Uji berbagai setelan filter untuk menemukan keseimbangan yang tepat antara keamanan dan mengizinkan konten yang sesuai.
Langkah selanjutnya
- Pelajari petunjuk sistem untuk keselamatan.
- Pelajari pemantauan penyalahgunaan.
- Pelajari responsible AI lebih lanjut.
- Pelajari tata kelola data.