할루시네이션을 줄이는 방법을 알고싶어요.¶
📚 목차
할루시네이션이란? ——— 해결방안 a. 명확한 출처를 요구하는 프롬프트 b. 응답 범위를 제한하는 프롬프트 c. 특정 정보를 거부하는 프롬프트 d. 답변 정확성을 우선시하는 프롬프트 e. 예시를 기반으로 한 프롬프트 f. RAG(Retrieval-Augmented Generation)를 활용한 프롬프트 g. 검증 과정을 포함한 프롬프트
할루시네이션이란?¶
할루시네이션이란 AI가 실제로 존재하지 않는 정보를 사실인 것처럼 생성하는 현상을 의미합니다.
즉, AI가 질문에 대한 정확한 답을 알지 못할 때, 잘못된 추측을 통해 답변을 만들어내는 경우를 말합니다.
이러한 현상은 사용자가 잘못된 정보를 받아들이게 할 위험이 있으므로 주의가 필요합니다.
해결방안¶
할루시네이션을 줄이기 위해서는 AI 모델이 명확하고 검증된 정보에만 의존하도록 구체적인 지시를 설정하는 것이 중요합니다. 아래에서는 할루시네이션을 최소화하고, AI가 신뢰할 수 있는 답변을 제공할 수 있도록 설계된 다양한 프롬프트 전략을 소개합니다. 이를 통해 AI가 보다 정확하고 신뢰성 있는 정보를 제공할 수 있게 됩니다.
a. 명확한 출처를 요구하는 프롬프트¶
💡 모델이 신뢰할 수 있는 정보만 제공하도록 유도하는 프롬프트입니다. - 프롬프트: "정확한 출처가 있는 정보만 제공해 주세요. 출처가 확실하지 않은 정보는 응답하지 마세요." - 잘못된 예시: "가능한 한 많이 설명해 주세요." → 출처가 불명확한 정보를 생성할 수 있어, 할루시네이션을 유발할 가능성이 큽니다.
b. 응답 범위를 제한하는 프롬프트¶
💡 모델이 주어진 정보에만 의존해 답변을 생성하게 하는 방법입니다. - 프롬프트: "주어진 정보에만 근거해 답변해 주세요. 모르는 정보는 '알 수 없습니다'라고 답하세요." - 잘못된 예시: "이 주제에 대해 가능한 모든 세부 사항을 설명해 주세요." → 모호한 요청으로 인해 모델이 불필요한 세부 사항을 만들어낼 수 있습니다.
c. 특정 정보를 거부하는 프롬프트¶
💡 잘못된 추정이나 응답을 피하고, 정확하지 않은 정보는 답변하지 않도록 하는 전략입니다. - 프롬프트: "이 질문에 대해 잘못된 추정이나 답변을 하지 말고, 확실한 정보가 없으면 '확실한 정보가 없습니다'라고만 답변해 주세요." - 잘못된 예시: "이 질문에 대해 추측해서라도 답변을 해 주세요." → 추측을 요구하는 프롬프트는 할루시네이션을 일으킬 수 있습니다.
d. 답변 정확성을 우선시하는 프롬프트¶
💡 정확하고 검증된 정보만을 제공하도록 요구하여 불확실한 정보를 방지합니다. - 프롬프트: "정확하고 검증된 정보만 제공해 주세요. 불확실한 정보는 포함하지 마세요." - 잘못된 예시: "추가적으로 알고 있는 정보가 있으면 포함해 주세요." → 추가 정보를 요구하는 경우, AI는 학습된 내용 외에 잘못된 정보를 생성할 가능성이 있습니다.
e. 예시를 기반으로 한 프롬프트¶
💡 최신 정보나 명확한 출처를 바탕으로 답변을 요구하여 신뢰도를 높이는 방법입니다. - 프롬프트: "이 질문에 대해 최신 정보 또는 출처가 확인된 사실만 제공해 주세요. 출처가 없다면 응답하지 말고 '확실한 정보가 없습니다'라고 답해 주세요." - 잘못된 예시: "이 주제에 대해 알고 있는 모든 것을 설명해 주세요." → 너무 광범위한 요청은 잘못된 정보 생성을 초래할 수 있습니다.
f. RAG(Retrieval-Augmented Generation)를 활용한 프롬프트¶
💡 RAG는 생성 AI 모델이 실시간으로 외부 문서나 데이터베이스를 검색하여 필요한 정보를 찾아 응답하는 방식입니다. 이를 통해 모델은 정확한 출처를 바탕으로 최신 정보를 제공할 수 있으며, 답변의 신뢰성을 높여 할루시네이션을 효과적으로 줄일 수 있습니다. - 프롬프트: "제공된 문서나 데이터베이스에서 필요한 정보를 검색한 후, 정확한 출처를 바탕으로 답변해 주세요. 불확실한 경우에는 '확인할 수 없습니다'라고 답변하세요." - 잘못된 예시: "모든 질문에 대해 알고 있는 대로 답변해 주세요." → 출처 없이 답변을 생성하게 되면 할루시네이션을 유발할 가능성이 높습니다.
g. 검증 과정을 포함한 프롬프트¶
💡 모델이 답변을 제공할 때, Knowledge 문서에 근거하여 응답의 신뢰성을 평가하고 검증하는 과정이 필요합니다. 이를 통해 답변의 정확성과 출처 기반성을 높이고, 할루시네이션 발생을 줄일 수 있습니다.
1. 신뢰점수 평가¶
Knowledge 문서에 기반한 답변을 할 때, 해당 정보에 대한 신뢰점수로 평가해야 합니다. 이를 통해 사용자가 응답의 신뢰성을 확인할 수 있으며, 모델이 문서에 명확하게 의존하여 답변했는지를 평가할 수 있습니다.
- 프롬프트: "Knowledge 내용 기반으로 답변할 때 해당 내용에 대한 너의 신뢰점수를 100점 만점으로 평가해서 함께 작성해주세요."
2. Groundedness Check 검증¶
최종적으로, 모델의 답변이 실제로 Knowledge 문서에 기반한 '참'인 답변인지 검증하는 Groundedness Check 과정을 진행합니다. 답변이 문서에 정확히 근거했는지를 다시 확인하고, 그 결과를 피드백합니다.
- 프롬프트: "최종 답변의 내용이 Knowledge에 의거해서 '참'인지 한번 더 검증하는 Groundedness Check 과정을 진행합니다. 마지막으로 Groundedness Check 결과를 피드백 합니다. (ex. 이 답변은 Groundedness Check 결과 사실입니다. or 이 답변은 Groundedness Check 결과 거짓일 확률이 높습니다.)"