การกรองผลลัพธ์ (Llama Guard, NeMo)
ใช้โมเดลป้องกันขนาดเล็กตรวจผลลัพธ์ เพื่อดักจับเนื้อหาที่เป็นพิษ การรั่วไหลของ PII และการละเมิดนโยบายก่อนเผยแพร่
การกรองผลลัพธ์ (Llama Guard, NeMo) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องกรองผลลัพธ์
แม้อินพุตจะปลอดภัย โมเดลก็อาจสร้างผลลัพธ์ต่อไปนี้ได้:
- ข้อมูลส่วนบุคคลรั่วไหล
- ถ้อยคำแสดงความเกลียดชังหรือการคุกคาม
- เนื้อหาเกี่ยวกับการทำร้ายตนเอง
- การเรียกใช้เครื่องมือที่ขัดกับเจตนาของผู้ใช้
ตัวกรองผลลัพธ์คือแนวป้องกันสุดท้ายก่อนที่ผู้ใช้จะเห็นสิ่งใด
Llama Guard
ตัวจำแนกความปลอดภัยของ Meta — ใช้เวทเปิดและทำงานได้รวดเร็วมาก:
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-Guard-3-8B')
# Outputs 'safe' or 'unsafe' with category.NeMo Guardrails
NVIDIA NeMo Guardrails — เฟรมเวิร์ก Python ที่ครอบ LLM ด้วยการตรวจสอบ:
# pip install nemoguardrails
from nemoguardrails import RailsConfig, LLMRails
config = RailsConfig.from_path('./config')
rails = LLMRails(config)
response = rails.generate(messages=[{'role': 'user', 'content': '...'}])Guardrails AI
guardrails-ai คือไลบรารี Python ที่เน้นการตรวจสอบและการป้องกัน รองรับ "ราง" ที่ใช้ XML และลูปซ่อมแซม reAsk
ตัวจำแนกตามรัฐธรรมนูญของ Anthropic
Anthropic เปิดตัวตัวจำแนกประเภทเพิ่มเติมจากการฝึกความปลอดภัยใน Claude ซึ่งมีประโยชน์สำหรับการกรองผลลัพธ์ของโมเดลใด ๆ ภายหลังการสร้าง
ตัวกรองที่ใช้ LLM แบบกำหนดเอง
แนวทางที่ประหยัดที่สุด: ใช้ LLM ขนาดเล็กกว่าคัดกรองผลลัพธ์:
FILTER_PROMPT = '''
Analyse the output. Return JSON: {safe: true/false, reason: str, categories: list}
Unsafe categories: PII leak, harmful instructions, copyright violation, prompt-injection echo.
Output:
{output}
'''
result = guard_llm.invoke(FILTER_PROMPT.format(output=text))ตัวกรองด้วยนิพจน์ทั่วไปและกฎ
สำหรับรูปแบบเฉพาะ นิพจน์ทั่วไปทำงานได้รวดเร็วและเชื่อถือได้:
import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')
SSN_RE = re.compile(r'\b\d{3}-\d{2}-\d{4}\b')
def has_pii(text):
return bool(EMAIL_RE.search(text) or SSN_RE.search(text))
# --- demo ---
samples = ['Contact me at jane@example.com', 'My SSN is 123-45-6789', 'No PII in this sentence']
for s in samples:
print(f'{s!r} -> has_pii={has_pii(s)}')
การปกปิด PII
อย่าบล็อกเพียงอย่างเดียว — บางครั้งให้ปกปิดข้อมูลแล้วส่งส่วนที่เหลือผ่านไป:
def redact(text):
text = EMAIL_RE.sub('[email]', text)
text = SSN_RE.sub('[ssn]', text)
return textตัวกรองสองชั้น
ใช้กฎที่รวดเร็วก่อน แล้วจึงใช้ LLM ที่มีค่าใช้จ่ายสูงกว่า:
def filter_output(text):
if has_obvious_pii(text):
return BLOCKED
result = guard_llm.invoke(...)
return resultผลลัพธ์แบบสตรีม
สำหรับผลลัพธ์แบบสตรีม ให้กรองทีละ SENTENCE-BY-SENTENCE:
buf = ''
for token in stream:
buf += token
if buf.endswith(('. ', '! ', '? ', '\n')):
if not safe(buf):
stream.close()
emit_to_client('[content filtered]')
break
emit_to_client(buf)
buf = ''ผลบวกลวงกับผลลบลวง
ปรับสมดุลให้เหมาะสม:
- งานที่มีความเสี่ยงสูง (การแพทย์ การเงิน): ให้เอนเอียงไปทางผลบวกลวง (บล็อกมากขึ้น)
- งานสร้างสรรค์หรือความบันเทิง: ให้เอนเอียงไปทางผลลบลวง (บล็อกน้อยลง)
บันทึกของตัวกรองมีความละเอียดอ่อน
บันทึกของตัวกรองมีเนื้อหาที่ถูกบล็อก จัดเก็บอย่างปลอดภัยและกำหนดอายุการใช้งานให้สั้น:
log.warning('Blocked output', extra={'reason': r, 'category': c}, sanitize_payload=True)ให้ความรู้แก่ผู้ใช้
เมื่อบล็อกเนื้อหา โปรดบอกเหตุผลแก่ผู้ใช้เพื่อไม่ให้ผู้ใช้ส่งคำขอลองใหม่ซ้ำ ๆ:
def handle_privacy_request():
return 'I cannot share that information for privacy reasons.'
print(handle_privacy_request())ตัวกรองหลายชั้น
เหตุใดจึงผสานการกรองด้วยนิพจน์ทั่วไปเข้ากับการกรองที่ใช้ LLM
สรุปทบทวน
Llama Guard / NeMo / ตัวกรอง LLM แบบกำหนดเอง + กฎนิพจน์ทั่วไป ใช้สองชั้น ปกปิดข้อมูลเมื่อทำได้ และแจ้งผู้ใช้เสมอเมื่อเนื้อหาถูกบล็อก
เรียนรู้ AI Agents ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 60
- บทเรียน
- 239
คำถามที่พบบ่อย
บทเรียน “การกรองผลลัพธ์ (Llama Guard, NeMo)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การกรองผลลัพธ์ (Llama Guard, NeMo)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การกรองผลลัพธ์ (Llama Guard, NeMo)”
ใช้โมเดลป้องกันขนาดเล็กตรวจผลลัพธ์ เพื่อดักจับเนื้อหาที่เป็นพิษ การรั่วไหลของ PII และการละเมิดนโยบายก่อนเผยแพร่ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การกรองผลลัพธ์ (Llama Guard, NeMo)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การป้องกันการแทรกคำสั่ง
- การกรองผลลัพธ์ (Llama Guard, NeMo)
- การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก
- การควบคุมการเข้าถึงเครื่องมือ