Filtrowanie danych wyjściowych (Llama Guard, NeMo)
Uruchamiaj mniejszy model ochronny na danych wyjściowych, aby przed publikacją wykrywać toksyczność, wycieki danych osobowych i naruszenia zasad.
Filtrowanie danych wyjściowych (Llama Guard, NeMo) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Dlaczego filtrować dane wyjściowe?
Nawet przy bezpiecznych danych wejściowych modele mogą wygenerować:
- Wycieki danych osobowych
- Mowę nienawiści lub nękanie
- Treści dotyczące samookaleczeń
- Wywołania narzędzi naruszające intencję użytkownika
Filtr danych wyjściowych to ostatnia linia obrony przed wyświetleniem czegokolwiek użytkownikowi.
Llama Guard
Klasyfikator bezpieczeństwa firmy Meta — z otwartymi wagami i bardzo szybki:
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 — framework Pythona, który opakowuje LLM w mechanizmy kontroli:
# 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 to biblioteka Pythona skoncentrowana na walidacji i mechanizmach ochronnych. Obsługuje oparte na XML „rails” oraz pętle naprawcze reAsk.
Anthropic Constitutional Classifier
Anthropic wydało klasyfikator, uzupełniający szkolenie bezpieczeństwa w Claude. Przydaje się do filtrowania danych wyjściowych dowolnego modelu po ich wygenerowaniu.
Niestandardowy filtr oparty na LLM
Najtańsza opcja: mniejszy LLM, który sprawdza dane wyjściowe:
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))Filtry oparte na wyrażeniach regularnych i regułach
W przypadku konkretnych wzorców wyrażenia regularne są szybkie i niezawodne:
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)}')
Redagowanie PII
Nie należy tylko blokować — czasami warto usunąć dane wrażliwe i przepuścić resztę:
def redact(text):
text = EMAIL_RE.sub('[email]', text)
text = SSN_RE.sub('[ssn]', text)
return textFiltr dwuwarstwowy
Najpierw szybkie reguły, a następnie kosztowny LLM:
def filter_output(text):
if has_obvious_pii(text):
return BLOCKED
result = guard_llm.invoke(...)
return resultStrumieniowanie danych wyjściowych
W przypadku strumieniowanych danych wyjściowych należy filtrować je ZDANIE PO ZDANIU:
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 = ''Fałszywie dodatnie i fałszywie ujemne wyniki
Należy dostroić system, aby uzyskać właściwy balans:
- W zastosowaniach o wysokiej stawce (medycznych, finansowych): skłaniać się ku fałszywie dodatnim wynikom (blokować więcej)
- W zastosowaniach kreatywnych i rozrywkowych: skłaniać się ku fałszywie ujemnym wynikom (blokować mniej)
Logi filtra zawierają dane wrażliwe
Logi filtra zawierają zablokowane treści. Należy je bezpiecznie przechowywać przez krótki czas TTL:
log.warning('Blocked output', extra={'reason': r, 'category': c}, sanitize_payload=True)Informowanie użytkownika
Po zablokowaniu treści należy poinformować użytkownika o przyczynie, aby nie ponawiał bez końca prób:
def handle_privacy_request():
return 'I cannot share that information for privacy reasons.'
print(handle_privacy_request())Wielowarstwowy filtr
Dlaczego warto łączyć wyrażenia regularne z filtrowaniem opartym na LLM?
Podsumowanie
Llama Guard / NeMo / niestandardowy filtr LLM + reguły oparte na wyrażeniach regularnych. Dwie warstwy. Jeśli to możliwe, należy redagować dane zamiast je blokować. Użytkownik zawsze powinien otrzymać informację o zablokowaniu treści.
Często zadawane pytania
Czy lekcja „Filtrowanie danych wyjściowych (Llama Guard, NeMo)” jest bezpłatna?
Tak — pełny tekst „Filtrowanie danych wyjściowych (Llama Guard, NeMo)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Filtrowanie danych wyjściowych (Llama Guard, NeMo)”?
Uruchamiaj mniejszy model ochronny na danych wyjściowych, aby przed publikacją wykrywać toksyczność, wycieki danych osobowych i naruszenia zasad. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Filtrowanie danych wyjściowych (Llama Guard, NeMo)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Obrona przed prompt injection
- Filtrowanie danych wyjściowych (Llama Guard, NeMo)
- Wykonywanie kodu w piaskownicy dla agentów programistycznych
- Kontrola dostępu do narzędzi