AI Agents · บทเรียน

การกรองผลลัพธ์ (Llama Guard, NeMo)

ใช้โมเดลป้องกันขนาดเล็กตรวจผลลัพธ์ เพื่อดักจับเนื้อหาที่เป็นพิษ การรั่วไหลของ PII และการละเมิดนโยบายก่อนเผยแพร่

บทเรียน 2 จาก 415 ขั้นตอน

การกรองผลลัพธ์ (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การป้องกันการแทรกคำสั่ง
  2. การกรองผลลัพธ์ (Llama Guard, NeMo)
  3. การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก
  4. การควบคุมการเข้าถึงเครื่องมือ
← กลับไปที่ AI Agents