카테고리 없음

Prompt Engineering (3) - 키워드 기반 프롬프트 최적화 전략

프로페서 H 2024. 10. 29. 09:10

 

1차 원고 작성: 2024-10-29

오늘은 "Optimizing biomedical information retrieval with a keyword frequency-driven prompt enhancement strategy"라는 논문에 대해 내용을 정리하고자 합니다. 이 연구는 생물의학 분야의 정보 검색을 최적화하기 위한 키워드 빈도 기반의 프롬프트 개선 전략을 제안한 중요한 논문입니다.

출처: BMC Bioinformatics (2024) 25: 281.
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-024-05902-7


 

Optimizing biomedical information retrieval with a keyword frequency-driven prompt enhancement strategy - BMC Bioinformatics

Background Mining the vast pool of biomedical literature to extract accurate responses and relevant references is challenging due to the domain's interdisciplinary nature, specialized jargon, and continuous evolution. Early natural language processing (NLP

bmcbioinformatics.biomedcentral.com

생물의학 분야의 방대한 문헌에서 정확한 정보와 관련 참고문헌을 추출하는 것은 여러 도전과제를 안고 있습니다. 특히 이 분야의 학제간 특성, 전문용어, 지속적인 발전으로 인해 기존의 자연어 처리 접근법으로는 한계가 있었습니다. 최근 트랜스포머 모델의 발전으로 대규모 언어 모델(LLM)이 등장했지만, 생물학과 생물의학 같은 전문 분야에서는 여전히 최신 정보 반영과 환각 현상 방지에 어려움을 겪고 있습니다.

이 연구의 주요 내용은 다음과 같습니다:

1. 연구 접근법:
- 검색 증강 아키텍처를 활용한 프롬프트 개선
- 두 가지 방법론 비교 평가
 * 텍스트 임베딩과 벡터 유사도 기반 접근법
 * 사용자 쿼리의 명시적 신호를 활용한 새로운 방법론

2. 평가 방법:
- 50개의 구체적이고 도전적인 생물의학 질문 활용
- BM25 베이스라인 모델과의 성능 비교
- GPT-4를 활용한 응답 품질 평가
- 수동 평가를 통한 LLM 생성 응답 검증

3. 주요 연구 성과:
- 검색 성능: 상위 10개 검색 결과의 관련성을 나타내는 Precision@10에서 0.95 달성
- 응답 품질: 2.5의 중간 품질 점수 달성 (베이스라인 및 텍스트 임베딩 방식 대비 우수)
- WeiseEule QA 봇 개발 (https://github.com/wasimaftab/WeiseEule-LocalHost)
 * 비교 분석 기능
 * 리뷰 작성 지원
 * 인용할 관련 논문 식별 기능

4. 연구의 의의:
- 전문 분야에서 사용자 쿼리의 명시적 신호 활용의 중요성 입증
- 기존 웹 기반 챗봇과 LLM 기반 QA 시스템의 주요 한계 극복
 * 환각 현상 감소
 * 부적절하거나 오래된 응답 생성 방지
- 사용자에게 LLM 입력 정보에 대한 완전한 통제권 제공

이 연구는 생물의학 분야에서 정보 검색의 정확성과 신뢰성을 높이는 새로운 방법을 제시했다는 점에서 큰 의의가 있습니다. 특히 사용자 쿼리의 명시적 신호를 활용하는 접근법은 전문 분야에서 LLM의 활용도를 크게 향상시킬 수 있는 가능성을 보여줍니다.

#생물의학정보검색 #LLM응용 #프롬프트엔지니어링 #정보검색최적화 #AI의료

 


기존의 NLP 접근법의 한계
초기 NLP 접근법은 규칙 기반 알고리즘, 통계 분석, 고전적인 기계 학습을 사용해 왔으나, 복잡한 생의학 텍스트의 미묘한 의미와 문맥을 충분히 이해하지 못하는 한계가 있었다. 긴 텍스트의 종속성을 포착하는 데 어려움이 있어 부정확한 응답이 빈번했다.

 

Transformer 모델의 등장
Transformer 모델의 출현은 NLP 분야에 혁신적인 변화를 가져왔다. 전체 텍스트 시퀀스를 동시에 처리하여 문맥을 깊이 이해하고 언어적 미세한 뉘앙스를 파악하는 능력이 향상되었다. 특히 자기 주의 메커니즘을 활용하여 텍스트의 종속성을 잘 포착하고 문맥을 해석해 이전 모델들에 비해 높은 정확성과 관련성을 보여준다.

 

대형 언어 모델(LLM)로의 발전
LLM의 발전은 Transformer 모델의 혁신을 기반으로 한층 더 발전하여 QA 작업의 성능을 크게 향상시켰다. LLM은 대규모의 비지도 학습 데이터를 통해 일반화 가능한 출력을 생성하며, 대형 텍스트 데이터를 활용해 다양한 질문에 답할 수 있다. 예를 들어, OpenAI의 GPT-3는 약 45TB의 텍스트 코퍼스를 기반으로 훈련되어 생의학 문헌을 포함한 다양한 주제를 포괄한다. 그러나 LLM은 실시간 정보 업데이트가 제한적이며, 최신 문헌을 반영하지 못하는 문제가 있다.

  • 기술적 제한과 비용 문제: GPT-4와 같은 폐쇄형 LLM은 최신 정보를 반영하기 위해 Bing 검색 기능을 도입했으나, 이는 웹 기반 접근에 한정되며, 속도와 효율성에서 한계가 있다.
  • 환각 문제: LLM은 때때로 사실과 일치하지 않는 응답을 생성하는 경향이 있어 신뢰성에 문제가 있을 수 있다.

대체 웹 기반 검색 엔진과 한계
Perplexity.ai와 같은 웹 기반 대화형 검색 엔진은 LLM을 활용하여 다양한 답변을 생성하나, 무료로 제공되는 웹상의 정보에 의존하는 제한으로 인해 빠르게 변화하는 생의학 분야에서의 응답 품질에 한계가 있다. 연구자들은 방대한 연구 콘텐츠에 접근할 수 있으나, 이를 효율적으로 검색하는 데 있어 기존 웹 기반 챗봇은 기능적으로 부족하다.

 

프롬프트 엔지니어링(PE)과 프롬프트 강화 전략(PES)
최근 연구자들은 LLM의 응답을 개선하기 위해 **프롬프트 엔지니어링(PE)**과 **프롬프트 강화 전략(PES)**을 제안하고 있다. PE는 컨텍스트를 최대한 제공하여 LLM의 이해도를 높이는 방법이며, 일부 응용에서는 **정보 검색이 강화된 프롬프트(RAG 기반)**가 필요하다. 특히, PE는 LLM의 사전 학습된 지식에 의존하기 때문에 특정 도메인에서는 최신 정보를 반영하지 못하는 한계가 있다.

 

WeiseEule의 개발: 생의학 QA를 위한 GUI 기반 프레임워크
이러한 한계를 해결하기 위해 WeiseEule라는 사용이 용이한 GUI 기반 프레임워크를 개발하였다.

  • RAG 기반 프롬프트 강화: WeiseEule는 사용자 질의에서 명확한 신호를 추출하여 관련된 문맥을 대규모 생의학 문헌에서 가져오는 RAG 기반 프롬프트 강화 방식을 채택한다.
  • 전체 텍스트 검색 가능: 일반적인 초록뿐만 아니라, 전체 텍스트 검색을 통해 포괄적인 QA가 가능하며, 연구 또는 보조 자료 작성을 위한 기사 추천 기능도 제공한다.
  • 모듈화된 오픈 소스 프레임워크: WeiseEule는 오픈 소스로 제공되어 고급 사용자가 기능을 추가하거나 제거할 수 있는 유연성을 제공한다.

WeiseEule는 생의학 QA에 최적화된 접근 방식을 통해 기존의 LLM이 가지는 한계를 보완하며, 특히 전문 지식이 필요한 분야에서의 적용 가능성을 크게 높인다.


WeiseEule 파이프라인 설명

WeiseEule 파이프라인은 지식 기반 생성과 LLM의 생성 기능을 결합하여 사용자에게 원활한 질문 응답(QA) 경험을 제공하도록 설계되었다. 주요 과정은 다음과 같다:

프롬프트 강화 단계

  1. 문서 가져오기 (Article Fetch)
    WeiseEule는 PubMed 등 디지털 라이브러리에서 논문을 가져와 벡터 DB에 저장한다. 이 단계는 지식 기반 구축의 시작 단계로, 사용자가 질의할 수 있는 텍스트 콘텐츠를 준비한다.
  2. 문서 분할 및 저장
    가져온 논문 텍스트는 규칙에 따라 더 작은 청크로 나뉜 후, **벡터 데이터베이스(Vector DB)**에 저장된다. 이렇게 청크로 나뉜 텍스트는 이후 사용자의 질문에 맞는 정보를 보다 효율적으로 검색하는 데 사용된다.
  3. 프롬프트 강화 기법을 통한 문맥 검색
    • PES1: 벡터 유사도 순위를 기반으로 사용자의 질문과 가장 유사한 문맥을 검색하여 LLM에 전달할 프롬프트를 생성한다. 이 방법은 벡터 임베딩의 유사성을 계산하여 관련 문맥을 추출하는 방식이다.
    • PES2: 키워드 빈도 순위를 활용하여 문맥을 검색하고, 해당 내용이 포함된 프롬프트를 구성한다. 이 방식은 키워드의 빈도를 기반으로 관련성 높은 문맥을 찾는 접근법이다.

사용자는 필요에 따라 PES1과 PES2 중 하나를 선택하여 문맥을 검색할 수 있다.

응답 생성 단계

  • LLM 응답 생성
    사용자 질문(Q)에 따라 생성된 프롬프트와 검색된 문맥을 API 서버를 통해 OpenAI의 LLM 서버로 전송한다. 이후 서버에서 응답 생성이 이루어지며, API를 통해 사용자에게 응답이 반환된다.

추가 기능

  • 프롬프트 강화 방법을 통해 생성된 프롬프트는 단순한 키워드 검색보다 더 풍부한 문맥을 제공하여 LLM의 응답 정확도와 관련성을 높인다.
  • 모듈화된 GUI 기반 프레임워크로 설계되어, 사용자는 기능을 추가하거나 제거할 수 있어 사용자 친화적이며 유연성이 높다.

이렇게 WeiseEule는 단순히 LLM에 질의하는 것을 넘어, 사용자 질문에 대한 맥락을 효과적으로 검색하고, 정확한 응답을 제공하기 위한 효율적인 방법을 제시한다.

 

네임스페이스(Namespace)의 개념

  • 네임스페이스는 관련 정보를 체계적으로 담는 컨테이너 역할을 하며, 특정 주제에 대한 정보를 정리하는 데 유용하다.
    • 예: 'dosage compensation'에 관한 모든 논문을 하나의 네임스페이스로 구성하고, dosage compensation articles라는 이름을 부여해 쉽게 식별 가능하게 한다.
  • 네임스페이스는 청크와 벡터로 구성된 사용자 지정 KB로 기능하며, 프롬프트 성능 개선 전략을 지원한다.

네임스페이스의 역할

  • 네임스페이스는 주제별로 데이터를 체계화하여 LLM이 필요할 때 특정 주제의 정보를 효율적으로 검색할 수 있게 한다.
  • 벡터 DB에 저장된 벡터와 네임스페이스 내에서 유사한 정보를 빠르게 검색하여, 사용자 질문에 맞춤형 답변을 제공할 수 있도록 돕는다.

키워드 빈도 순위 기반 컨텍스트 검색 (PES2)

사용자의 질문에 가장 관련성 높은 청크를 찾기 위해, 질문에서 추출한 키워드 빈도에 따라 청크를 순위 매겨 검색하는 전략을 구현하였다. 이 방식에서는 사용자가 직접 키워드를 추출할 수도 있으며, LLM을 이용한 자동 추출도 가능하다.

  • 키워드 추출 방법:
    • 자동 추출: LLM 내 명시적 지시를 통해 자동으로 키워드를 추출하며, 결과는 파이썬 리스트 형식으로 출력된다.
    • 수동 추출: 특정 키워드가 불필요하게 포함되거나 인접한 키워드를 하나로 합칠 필요가 있을 때 사용한다. 수동 추출 시, ‘#’ 기호로 쿼리를 표시하고 키워드는 두 개의 별표로 강조한다. 예: #Find all results that connect **NuA4** with **meiosis**.

키워드 빈도 기반 순위 조정

  • 키워드 빈도가 높은 청크 우선: 추출된 키워드의 빈도가 높은 청크일수록 중요한 정보를 포함할 가능성이 크다고 판단하여 높은 순위로 배치한다.
    • 예를 들어, 코사인 유사도를 기반으로 순위 매긴 후, 키워드 빈도 기준으로 청크를 재정렬함으로써 가장 관련성 높은 정보가 최상단에 배치되도록 한다.

다양한 순위 매기기 모드

  1. None fixed 모드:
    • 모든 키워드를 포함한 청크가 우선적으로 평가되며, 키워드의 총 빈도 합이 같을 경우 더 높은 total_count를 가진 청크가 상위로 배치된다.
    • 모든 키워드가 동일한 중요도로 평가된다.
  2. One fixed 모드:
    • 특정 고정 키워드(k3)가 포함된 청크에 더 높은 우선순위를 부여한다.
    • 이 방식은 PubMed 검색에서 k1 OR k2 AND k3와 같은 불리언 표현식을 사용하는 방식과 유사하다.
  3. Multiple-fixed 모드:
    • 다수의 고정 키워드가 포함된 청크에 우선순위를 부여하여 데이터 정렬의 특이성을 높인다.
    • 하나의 고정 키워드 방식에서 확장하여, 여러 키워드를 포함하는 청크를 상위에 배치함으로써 특정성 높은 검색 결과를 생성한다.

핵심 요약

  • 키워드 빈도를 기반으로 청크를 순위 매기면 관련성이 높은 정보를 우선적으로 검색할 수 있다.
  • 자동 및 수동 추출 옵션을 제공하며, 다양한 순위 매기기 모드를 통해 사용자 요구에 맞는 컨텍스트 검색을 지원한다.