Prompt Technique - Self-Criticism

김혁준·2025년 2월 13일

prompt-engineering

목록 보기
9/12

LLM은 스스로 향상될 수 있다

  • LLM이 고품질의 데이터 지도 학습 없이 스스로 성능 향상을 할 수 있다
  • LLM을 사용하여 라벨이 없는 데이터에 대해 스스로 라벨링을 생성한 후 파인튜닝 하는 기법을 활용
  • Chain-of-Thought + Self-Consistency 기법을 이용해서 생성

Self-Criticism에서의 LLM의 한계

  • 모델은 여러 선택지 중에서 가장 정답일 것 같은 답을 선택하는 능력은 뛰어남
  • 하지만 "모든 답변이 틀림"의 선택지가 추가되면 성능은 저하됨
  • 각 선택지에 대해서 하나하나씩 True/False를 묻는 질문에는 잘 대답함
  • 모델이 자신의 답변에 대해서 올바른지 물으면 과도한 자신감을 가짐
  • Self-Evaluation을 위해서 여러 답변을 제공해주고 선택하는 방법은 효과가 있음
  • 언어 모델이 크기가 커질수록 자기 평가 능력은 향상된다
  • LLM은 스스로 자신의 응답을 검토하고 수정하는데에는 한계가 있다
  • 자체 수정은 오히려 성능이 저하될 수 있다
  • LLM말고 외부 피드백이 있어야 응답을 개선시킬 수 있다
  • 이전의 연구에서는 오라클 레이블을 사용했기 떄문에 성능이 개선되었다
  • 외부 피드백이 제공될 경우에는 모델 성능이 향상될 수 있다
  • LLM은 확실히 자신의 추론 오류를 식별하는 것는 어렵다
  • 텍스트 생성 작업에서는 원하는 선호에 맞게 자체 수정하는 능력은 있다
  • LLM 응답 개선을 위해서는 구체적인 피드백이 중요하다

Self-Refine

  • 초기 응답을 반복적인 피드백을 통해서 개선하는 접근법

  • 다른 외부 도구 없이 하나의 LLM만을 이용해서 성능을 개선하는 방법

  • 단계 : 초기 출력 생성, 피드백, 개선, 반복 및 종료

  • 피드백 단계 : 피드백은 구체적이고 개선 단계에서 행동을 유발할 수 있어야 한다


  • 개선 작업 : "Okay, lets use this feedback to improve..."라는 지시와 함게 피드백과 개선할 응답을 제공.
    --> 선호도 기반 작업에서 높은 성능을 보임
    --> 피드백의 품질이 Self-Refine의 성능을 결정함. 가능한 구체적이고 실행 가능한 피드백이어야 함
    --> 피드백을 반복할수록 성능이 향상되지만 향상 폭은 점점 줄어듦
    --> Self-Refine 방법은 Self-Consistency 기법보다 높은 성능을 보임

Reflexion

  • Agent가 언어적인 자기 성찰 피드백을 통해서 자신의 응답을 개선하는 기법
  • 자기 성찰 피드백은 외부 메모리에 저장되어서 앞으로 작업을 수행할 때 도와줌
  • 여러가지 모듈이 상호작용하는 식으로 구성되어 있음
    --> 행동자 : 텍스트와 행동을 생성
    --> 평가자 : 행동자가 생성한 출력의 품질을 평가하는 역할
    --> 자기성찰 : LLM이 자기 성찰을 통해서 구체적인 피드백을 생성
    --> 메모리 : Agent의 피드백을 저장
  • 문제를 해결하기 위한 순차적 의사결정 작업,코딩,언어 추론과 같은 작업에서 성능 향상
  • 실전에서는 메모리를 어떻게 활용할지가 중요
  • Self-Refine과 같이 구체적인 피드백을 작성하는 기법이 중요

Cumulative Reasoning

  • 큰 문제를 분해해서 해결하고 중간 결 과를 모아서 다음 문제를 해결하는데 사용하는 기법
  • 이 기법은 인간의 인지 과정을 모방한 것으로 중간 결과를 누적해서 활용
  • 언어 모델의 복잡한 추론 작업을 해결하기 위한 기법
  • 3가지 특화된 LLM들로 구성됨
    --> 제안자 : 현재의 문맥에 기반해서 다음 단계나 추론을 제안하는 역할
    --> 검증자 : 제안자가 제안한 것을 검토하는 역할
    --> 보고자 : 누적된 맥락을 바탕으로 추론이 결론에 도달했다면 솔루션을 제시
  • Directed Acyclic Graph 구조로 중간 추론 결과를 동적으로 저장하고 활용
  • ToT와도 유사한 점이 많지만 탐색 접근 방식에서 차이가 남

Reversing Chain-of-Thought

  • LLM의 사실적 일관성을 보장하기 위한 기법
  • 사실적 일관성은 LLM이 조건을 환각, 간과, 잘못 해석하는 현상을 말함
  • RCoT는 문제에 대한 솔루션을 생성한 후 이를 이용해 원래 문제를 재구성함으로써 사실적 불일치를 찾아냄
  • RCoT의 주요 과정
    --> 문제 재구성 : LLM이 문제에 대한 생성한 솔류션을 기반으로 문제를 새롭게 재구성
    --> 불일치 감지 : 재구성된 문제와 원래 문제를 세밀하게 비교해서 사실적 불일치 감지
    --> 수정 가이드 제공 : 감지된 불일치를 세밀한 피드백으로 구성해서 LLM이 솔루션을 수정하도록 도움

Chain-of-Verification

  • LLM의 환각 현상을 감소시키는 방법으로 CoVe가 탄생
  • 자신이 생성한 답변을 검증하기 위한 계획을 통해 답변을 평가
  • 4단계로 이루어져 있음
    --> 초기 답변 생성 : 질문이 주어지면 LLM이 초기 답변을 생성
    --> 검증 계획 수립 : 주어진 질문과 초기 답변을 사용해서 검증 질문을 생성
    --> 검증 실행 : 앞서 생성된 각각의 검증 질문에 대해 순차적으로 답변을 생성. 여러가지 기법이 있음
    - Joint Version : 검증 계획과 검증 실행 단계를 하나로 수행
    - 2-Step Version : 검증 질문을 먼저 생성하고 다음 검증 실행에서 답변을 생성
    - Factored Version : 검증 질문을 먼저 생성하고 각각의 검증 질문에 대해 독립적으로 답변
    - Factored + Revise : Factored 방법에다가 추가로 교차 검증 단계를 추가

--> 최종 검증 답변 생성 : 검증 과정에서 발생한 오류를 토대로 최종 답변을 생성함

  • 답변, 질의응답, 장문 텍스트 생성에서 높은 정확도 향상을 보임
  • 완벽하게 환각 현상을 해결하진 않음
  • 외부 도구와 결합했을 때 더 성능 향상을 기대할 수 있음

0개의 댓글