Guardrails แบบ Open-source: NeMo Guardrails และ Purple Llama
สร้างด่านคอยกรองทั้งข้อความที่เราพิมพ์เข้าไป (input) และคำตอบที่ AI ตอบกลับ (output) ด้วยเครื่องมือฟรีที่ติดตั้งบนเครื่องเราเองได้ (self-hostable)
🎯 สิ่งที่คุณจะทำได้หลังเรียนโมดูลนี้
- ติดตั้งและออกแบบด่านกันภัย (guardrails) ด้วย NVIDIA NeMo Guardrails (เขียนกฎด้วยภาษา Colang DSL) และโมเดลตรวจความปลอดภัยของเนื้อหา (content-safety models)
- ใช้ชุดเครื่องมือ Meta Purple Llama ได้แก่ Llama Guard, Prompt Guard/Prompt Guard 2 และ LlamaFirewall
- ชั่งน้ำหนักข้อดีข้อเสียเรื่องความเร็วในการตอบ (latency) กับพลังประมวลผลที่ต้องใช้ (compute) เช่น Prompt Guard 2 รุ่น 22M กินทรัพยากรน้อยลงราว ~75% เทียบกับรุ่น 86M
เนื้อหา
โมดูลนี้เราจะลงมือจริงกับด่านกันภัย (guardrails) แบบเปิดให้ใช้ฟรีและติดตั้งบนเครื่องเราเองได้ (open-source/self-hostable) ตัวแรกคือ NVIDIA NeMo Guardrails ซึ่งเป็นชุดเครื่องมือ (toolkit) ที่เราเขียนกฎเองได้ (programmable) ผ่านภาษา Colang DSL และเชื่อมกับโมเดลตรวจความปลอดภัยของเนื้อหา (content-safety models) เช่น Llama 3.1 NemoGuard 8B และ Llama Guard พร้อมระบบตรวจจับข้อมูลส่วนตัว (PII detection) ทางฝั่ง Meta Purple Llama ก็มีหลายตัว ได้แก่ Llama Guard (ตัวจำแนกความปลอดภัยของทั้ง input และ output), Prompt Guard และ Prompt Guard 2 (สองรุ่น ขนาด 22M กับ 86M พารามิเตอร์ ไว้คอยจับความพยายามหลอกให้ AI แหกกฎ (jailbreak) หรือแอบยัดคำสั่ง (injection) โดยรุ่น 22M กินทรัพยากรและตอบเร็วขึ้นราว 75% เทียบกับรุ่น 86M) และ LlamaFirewall (ตัวประสานงานด่านกันภัยแบบ open-source สำหรับ AI ที่ทำงานแทนเราได้เอง (agent)) นอกจากนี้ยังมีเครื่องมืออื่นอีก เช่น LLM Guard, Rebuff, Vigil ที่ไว้สแกนข้อความเข้าออกและดักการแอบยัดคำสั่ง รวมถึง IBM Granite Guardian, Invariant Labs และ WhyLabs LangKit
🧪 ตัวอย่างจริง + ผลลัพธ์ที่ได้
ให้วางหลายชั้นซ้อนกัน (layered) แบบนี้: (1) ใช้ NeMo Guardrails เขียนกฎด้วย Colang ให้คอยดูว่าคำถามที่ผู้ใช้พิมพ์เข้ามาเป็นเรื่องอะไร แล้วปฏิเสธหัวข้อที่อยู่นอกขอบเขต (2) ใช้ Llama Guard เป็นตัวคัดกรองความปลอดภัยทั้งขาเข้าและขาออก (3) ใช้ Prompt Guard 2 คอยจับความพยายามหลอกให้ AI แหกกฎหรือแอบยัดคำสั่ง โดยเลือกรุ่น 22M ถ้าอยากให้ตอบไว (4) เปิดระบบตรวจจับข้อมูลส่วนตัว (PII detection) บนคำตอบก่อนส่งถึงมือผู้ใช้
ด่านกันภัยควรวางหลายชั้น (ทั้งขาเข้า ขาออก และตัวกฎเอง) เพราะถ้ามีตัวคัดกรองแค่ตัวเดียว คนร้ายก็อาจหาทางหลบเลี่ยงได้ ส่วนการเลือกขนาดโมเดลก็คือการชั่งน้ำหนักกันระหว่างความแม่นยำกับความเร็ว/พลังประมวลผลที่ต้องใช้
แบบฝึกหัดท้ายโมดูล
- ลองเขียนขั้นตอนการทำงาน (flow) เชิงตรรกะแบบ pseudocode หรือสไตล์ Colang สำหรับ NeMo Guardrails ที่ปฏิเสธหัวข้อต้องห้ามและกรองข้อมูลส่วนตัว (PII) ออก
- เปรียบเทียบว่าเมื่อไหร่ควรเลือก Prompt Guard 2 รุ่น 22M กับเมื่อไหร่ควรเลือกรุ่น 86M โดยดูจากความเร็วในการตอบ พลังประมวลผลที่ต้องใช้ และความแม่นยำ