본문 바로가기

Prompt/프롬프트 공부

What is Medprompt

참고자료

 

Medprompt

모든 절차와 기법이 합쳐진 방법
전처리 단계에서는 관련 있는 예시들을 찾아내고, 
추론 단계에서는 이 예시들을 통해 AI가 질문에 대한 답변을 예측하는 것

 

1. Medprompt 접근법의 기본 구성 요소 개념

ICL(In-Context Learning) ex)Zero-shot, One-shot, Few-shot
몇 가지 예시와 함께 테스트 질문을 줘서 AI가 새로운 문제를 풀 수 있게 돕는 방법

CoT(Chain of Thought) ex)바로 답을 주지 않고 풀이 과정을 제시
복잡한 문제를 작은 단계로 나눠서 생각하며 답을 찾아가는 방법

Ensembling
여러 차례 모델을 실행해서 얻은 답변을 합쳐서 더 좋은 결과를 얻는 방법

 

2. Medprompt

- Dynamic Few-shot
새로운 질문을 좋은 예시와 비교해서 가장 유사한 것들을 선택하는 방법
테스트 예제가 주어지면 임베딩 공간에서 k-NN 클러스터링을 사용하여 의미적으로 유사한 k개의 교육 예제를 선택

해당 프로젝트에서:
text-embedding-ada-002∗를 사용하여 학습용 문제와 평가용 문제를 벡터 표현으로 임베딩. 그런 다음 각 평가용 문제 x에 대해 text-embedding-ada-002의 임베딩 공간에서 학습용 세트에서 가장 가까운 k개의 이웃 x1, x2, ..., xk를 검색. 미리 정의된 코사인 유사성과 같은 유사성 측정치 d가 주어지면, 순서가 지정됨. 


- Self-Generated Chain of Thought
특정한 질문에 대해 '단계별로 생각해보기'라는 방식으로 복잡한 문제를 해결하는 방법

해당 프로젝트에서:
자체 생성된 사고로 인해 할루시네이션이나 부정확한 추론을 방지하기 위해
GPT-4에게 추론 과정에 따른 가장 가능성 있는 답변의 평가와 함께 이유를 생성하도록 지시. 이 답변이 실제 정답 레이블과 일치하지 않으면 해당 샘플을 삭제함

 

- Choice Shuffling Ensemble
편향을 줄이기 위해 선택지를 섞어 보고 답변이 일관되는지 확인하는 방법

 

위의 모든 절차와 기법이 합쳐져 메드프롬프트를 만들어냄

 

3. Medprompt 알고리즘 명세

이미지 출처: Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine

 

입력:

훈련 데이터 D와 테스트 질문 Q.

전처리: 

주어진 D라는 데이터셋에서 각 질문 q에 대해 다음과 같이 수행
질문 q에 대한  Embedding 벡터 vq를 얻음.
LLM을 사용하여 chain-of-thought C와 답변 A생성.
올바른 답변인 경우에만 vq, Cq, Aq를 저장.

추론: 

테스트 질문 Q에 대한 Embedding vQ 계산.
KNN을 사용하여 가장 유사한 5가지 예제 {(vQi, CQi, AQi)} 선택.
코사인 유사성을 사용하여 거리 계산.
예제를 LLM에 제공할 컨텍스트 C로 형식화.


다섯 번 반복하면서:
테스트 질문의 답변 선택을 섞음.
LLM과 컨텍스트 C를 사용하여 chain-of-thought Ck와 답변 Ak생성.
다수결 투표로 선택된 최종 답변 AFinal 출력.

 

Inspired by chatGPT