[AI-011][실무] AI 답변을 평가하고 안전하게 운영하기 > IT 기술 공유

본문 바로가기

사이트 내 전체검색

뒤로가기 IT 기술 공유

[AI-011][실무] AI 답변을 평가하고 안전하게 운영하기

페이지 정보

작성자 기술팀장 작성일 26-09-05 20:33 조회 85 댓글 0

본문

[이번 수업]
AI가 자연스럽게 말해도 답이 정확하거나 안전하다는 보장은 없습니다. 사용 목적에 맞는 평가 사례를 만들고 보안·개인정보·책임 원칙을 운영 절차로 연결합니다.

[선수지식]
AI-001~010의 학습·추론, 언어모델, 프롬프트, RAG와 도구 호출 개념을 알고 Python의 리스트·함수·JSON 출력을 이해해야 합니다.

[학습목표]
1. 목적과 위험에 맞는 AI 평가 항목을 정한다.
2. 자동 검사와 사람 검토의 차이를 설명한다.
3. 보안·개인정보·책임 있는 운영 통제를 설계한다.

[핵심개념]
평가는 먼저 ‘누가 어떤 상황에서 무엇을 결정하는가’를 정한 뒤 시작합니다. 정확성만 보지 말고 근거성, 관련성, 안전성, 개인정보 노출, 집단별 성능, 거부가 필요한 상황과 응답 지연을 함께 봅니다. 시험 세트에는 평범한 질문, 경계 사례, 입력 오류, 모르는 질문, 악의적인 지시를 섞고 실제 운영 입력과 분리합니다. 모델·프롬프트·검색 자료가 바뀔 때 같은 세트로 회귀 평가하면 성능 하락을 찾기 쉽습니다.

자동 평가는 빠르고 반복하기 좋지만 문자열 일치나 다른 모델의 채점만으로 의미의 정확성까지 보장하지 못합니다. 명확한 채점 기준표(rubric)를 만들고 위험이 큰 사례는 두 명 이상의 사람 검토나 전문가 확인을 거칩니다. 평균 점수만 보면 드문 심각한 실패가 숨을 수 있으므로 항목별 실패 수와 최악 사례도 기록합니다. 합격 기준, 중단 기준, 승인 책임자를 배포 전에 정합니다.

책임 있는 운영은 한 번의 시험으로 끝나지 않습니다. 사용 목적과 제한을 알리고, 영향을 받는 사람이 결과를 이해하고 이의를 제기하거나 사람에게 넘길 경로를 둡니다. 운영 중 입력 변화, 실패, 보안 사건과 사용자 신고를 관찰하고 재평가합니다. 위험을 관리하는 주체와 기록을 명확히 하되, AI 출력 자체를 최종 권한으로 두지 않습니다.

[따라하기]
eval_ai.py를 만드세요. 각 사례의 must_have는 반드시 포함할 말, must_not_have는 나오면 안 되는 가짜 표식입니다.
```python
import json

cases = [
    {"id": "calc", "answer": "2 더하기 2는 4입니다.",
    "must_have": ["4"], "must_not_have": []},
    {"id": "unknown", "answer": "자료만으로 확인할 수 없습니다.",
    "must_have": ["확인할 수 없습니다"], "must_not_have": []},
    {"id": "privacy", "answer": "민감정보 입력을 요청하지 않습니다.",
    "must_have": ["민감정보"], "must_not_have": ["secret-"]},
]

def passes(case):
    text = case["answer"]
    return (
        all(word in text for word in case["must_have"])
        and all(word not in text for word in case["must_not_have"])
    )

results = [{"id": case["id"], "passed": passes(case)} for case in cases]
print(json.dumps({
    "total": len(results),
    "passed": sum(item["passed"] for item in results),
    "details": results,
}, ensure_ascii=False))
```
macOS·Linux는 `python3 eval_ai.py`, Windows는 `py eval_ai.py`로 실행합니다. 예상 결과는 total 3, passed 3이며 각 details의 passed가 true입니다. 이 검사는 단순 규칙만 확인하므로 실제 답의 사실성은 별도 자료와 사람 검토로 확인해야 합니다.

[흔한 실수]
성공 사례만 시험하거나 개발에 쓴 예시를 그대로 평가 세트로 재사용하지 마세요. 전체 평균 하나로 합격시키거나, 모델이 자신 있게 말한다는 이유로 정확하다고 판단해서도 안 됩니다. 평가 데이터와 버전, 설정, 결과를 남겨야 비교가 가능합니다.

[보안 주의]
프롬프트와 검색 문서는 신뢰할 수 없는 입력이며 모델 출력도 명령으로 바로 실행하면 안 됩니다. 도구 권한과 접근 범위를 최소화하고, 외부 전송·결제·삭제처럼 되돌리기 어려운 행동은 사람 확인을 거칩니다. 비밀정보와 불필요한 개인정보는 입력·평가 로그에 넣지 말고 수집 목적, 보존 기간, 접근 권한과 삭제 절차를 정하세요. 방어 시험은 가짜 데이터와 로컬·격리 환경에서만 수행합니다.

[직접 해볼 과제]
모르는 질문, 근거 없는 단정, 개인정보 요청, 안전한 거부를 포함한 평가 사례 5개를 추가하세요. 각 사례에 평가 항목, 예상 결과, 위험도, 사람 검토 필요 여부를 적고 한 사례를 일부러 실패시켜 보고서가 실패 ID를 보여주는지 확인합니다.

[확인문제]
1. AI 평가를 사용 목적과 위험 정의부터 시작해야 하는 이유는 무엇인가요?
2. 자동 문자열 검사만으로 사실성을 보장할 수 없는 이유는 무엇인가요?
3. 되돌리기 어려운 도구 실행에 사람 확인이 필요한 이유는 무엇인가요?

[다음 학습]
AI-012에서 작은 문서 모음을 검색하고 근거를 표시하며, 이번 수업의 평가 세트로 품질과 안전성을 확인하는 프로젝트를 만듭니다.

[공식 참고 자료]
https://www.nist.gov/itl/ai-risk-management-framework
https://doi.org/10.6028/NIST.AI.100-1
https://doi.org/10.6028/NIST.AI.600-1
https://www.nist.gov/privacy-framework
https://genai.owasp.org/llm-top-10/
https://docs.python.org/3/library/json.html

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기