30분
답변 품질 개선: 신뢰도와 사용성
KG 기반 Q&A
답변 품질 개선: 신뢰도와 사용성
온톨로지 & Knowledge Graph > KG 기반 Q&A
학습 목표
답변 신뢰도를 높이는 기법을 학습한다 할루시네이션 방지 전략을 이해한다 Few-shot 예시로 답변 품질을 향상한다 사용자 피드백 루프를 설계한다
답변 품질 개선
1. 할루시네이션 방지
# KG에 없는 정보에 대한 처리
def safe_answer(kg_results, question):
if not kg_results:
return """
죄송합니다. Knowledge Graph에서 관련 정보를 찾지 못했습니다.
가능한 원인:
1. 해당 알람/설비가 시스템에 등록되지 않았습니다
2. 질문을 다른 형태로 시도해보세요
정비팀 연락처: 내선 2345
"""
# KG에서 가져온 정보만 사용하여 답변 생성
answer = generate_from_kg_only(kg_results)
# 근거 표시
answer += "\n\n---\n"
answer += "이 답변은 Knowledge Graph 데이터를 기반으로 합니다.\n"
answer += f"참조 노드: {len(kg_results)}개\n"
answer += f"마지막 데이터 업데이트: 2026-01-28"
return answer
2. Confidence Score
def assess_confidence(entities, kg_results):
"""답변 신뢰도 평가"""
score = 0.0
# 엔티티가 정확히 추출되었는가?
if entities.get("alarm_code"):
score += 0.3
if entities.get("equipment"):
score += 0.2
# KG에서 결과가 있는가?
if kg_results:
score += 0.3
# 결과가 3개 이상이면 추가 점수
if len(kg_results) >= 3:
score += 0.1
# 확률 정보가 있는가?
has_prob = any(r.get("probability") for r in kg_results)
if has_prob:
score += 0.1
return min(score, 1.0)
# 사용 예시
confidence = assess_confidence(entities, results)
if confidence < 0.5:
answer = "\u26a0\ufe0f 확인 필요: " + answer
answer += "\n(신뢰도가 낮습니다. 정비팀에 확인을 권장합니다.)"
3. Few-shot 프롬프트
FEW_SHOT_EXAMPLES = """
예시 1:
질문: "알람 E-201 어떻게 해?"
좋은 답변:
"CNC밀링 3호기의 스핀들 과열(E-201) 대응:
1순위: 냉각수 부족 확인 (45%) - 15분
→ 후면 하단 패널의 냉각수 탱크 레벨 확인
→ 기본 정비 자격으로 수행 가능
2순위: 베어링 마모 (35%) - 4시간
→ 진동 측정 필요, 김기술 님 호출 권장
먼저 냉각수를 확인해보시겠습니까?"
나쁜 답변:
"스핀들 과열이면 냉각수나 베어링일 수 있어요."
(구체적 확률, 절차, 인력 정보 없음)
---
예시 2:
질문: "부품 수명 현황 보여줘"
좋은 답변:
"CNC밀링 3호기 부품 수명:
\u274c 메인 베어링: 81.3% (교체 임박)
\u26a0\ufe0f 냉각 시스템: 83.0% (주의)
\u2705 스핀들 모터: 62.3% (양호)
메인 베어링 교체를 권장합니다 (NSK BRG-6205-2RS, 45,000원)"
나쁜 답변:
"부품들이 좀 오래됐네요."
(구체적 수치, 부품번호, 비용 없음)
"""
4. 사용자 피드백 루프
class FeedbackCollector:
def collect(self, question, answer, rating, comment=""):
"""사용자 피드백 수집"""
feedback = {
"question": question,
"answer": answer,
"rating": rating, # 1-5
"comment": comment,
"timestamp": datetime.now(),
}
# 피드백을 KG에 저장하여 답변 품질 개선에 활용
self.save_to_kg(feedback)
if rating <= 2:
# 낮은 평가: 정비팀에 알림
self.notify_maintenance_team(feedback)AI로 학습하기 — 꿀팁
✅할루시네이션 방지 전략 실효성 검증AI 학습 팁
KG 기반 Q&A에서 할루시네이션 방지 전략이 제조 도메인에서 실제로 효과적인지 비판적으로 검증하세요.
KG Q&A 시스템에서 할루시네이션을 줄이기 위해 '검색된 그래프 트리플만 컨텍스트로 제공, LLM에게 KG 외 정보 사용 금지 프롬프트 추가'라는 전략이 언급된다. 이 전략이 제조 도메인(전문 용어, 수치 정밀성 중요)에서 실제로 얼마나 효과적인지, 한계점과 보완 방법도 함께 평가해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • 할루시네이션 방지: KG 데이터만 사용, 없는 정보는 명시적으로 "확인 불가"
- • Confidence Score로 답변 신뢰도를 수치화하여 표시
- • Few-shot 예시로 구체적이고 실행 가능한 답변 유도
- • 사용자 피드백 수집으로 지속적 품질 개선