검색-기능 보강된 생성

마지막 업데이트 날짜: 2025년 2월 26일
검색-기능 보강된 생성

IBM watsonx.ai 의 기초 모델을 사용하면 검색 증강 생성 (RAG) 패턴을 적용하여 지식 기반의 정보를 기반으로 사실적으로 정확한 출력을 생성할 수 있습니다.

 

이 비디오는 이 문서의 개념 및 태스크를 학습하기 위한 시각적 방법을 제공합니다.

비디오 챕터

[ 0:08 ] 시나리오 설명
[ 0:27 ] 패턴 개요
[ 1:03 ] 지식창고
[ 1:22 ] 검색 구성 요소
' [ 1:41 ] 문맥으로 보강된 프롬프트
' [ 2:13 ] 출력 생성
' [ 2:31 ] 전체 솔루션
[ 2:55 ] 검색 시 고려 사항
' [ 3:58 ] 프롬프트 텍스트
[ 5:01 ] 설명 가능성을 위한 고려 사항

 

프롬프트에 컨텍스트를 제공하면 정확도가 향상됩니다.

기초 모델은 다양한 이유로 인해 사실적으로 부정확한 출력을 생성할 수 있습니다. 생성된 출력의 정확성을 향상시키는 한 가지 방법은 프롬프트 텍스트에서 필요한 사실을 컨텍스트로 제공하는 것입니다.

다음 프롬프트에는 일부 요소를 설정하기 위한 컨텍스트가 포함되어 있습니다.

Aisha recently painted the kitchen yellow, which is her favorite color.

Aisha's favorite color is 

아이샤가 유명한 사람이고, 그 사람의 좋아하는 색이 일반적인 사전 훈련 데이터 세트에 포함된 많은 온라인 기사에서 언급된 것이 아니라면, 문장의 시작 부분에 문맥이 없으면 기초 모델은 문장의 끝에서 올바른 문장 완성을 안정적으로 생성할 수 없습니다.

팩트가 채워진 컨텍스트를 포함하는 텍스트로 모델을 프롬프트하는 경우 모델이 생성하는 출력이 더 정확할 수 있습니다. 자세한 정보는 사실적으로 정확한 출력 생성을 참조하십시오.

 

검색 강화 생성 패턴

지식 기반의 정보를 사용하여 프롬프트에 컨텍스트를 포함하는 기술을 확장할 수 있습니다.

다음 도표는 검색 강화 생성 패턴을 보여줍니다. 다이어그램은 질문에 응답하는 예제를 표시하지만 동일한 워크플로우가 다른 유스 케이스를 지원합니다.

검색 기능 보강 생성을 위해 입력에 검색 결과 추가를 표시하는 다이어그램

검색-증강 생성 패턴 은 다음 단계를 포함합니다

  1. 지식 기반에서 사용자의 질문과 관련된 컨텐츠를 검색하십시오.
  2. 가장 관련성이 높은 검색 결과를 컨텍스트로 프롬프트에 가져오고 다음 단락의 정보만 사용하여 "다음 질문에 응답" 과 같은 지시사항을 추가하십시오.
  3. 사용 중인 기초 모델이 지침에 맞춰 조정되지 않은 경우에만 : 예상되는 입력 및 출력 형식을 보여주는 몇 가지 예를 추가하십시오.
  4. 조합된 프롬프트 텍스트(지침 + 검색 결과 + 질문)를 기초 모델로 보냅니다.
  5. 기초 모델은 프롬프트의 맥락 정보를 사용하여 사실에 근거한 답변을 생성합니다.

검색 강화 생성의 기원

이 논문에서 검색 증강 생성 (RAG)이라는 용어가 소개되었습니다: 지식 집약적 NLP 작업을 위한 검색 증강 생성. "우리는 파라메트릭 메모리가 사전 훈련된 seq2seq 변환기이고, 비파라메트릭 메모리가 재훈련된 신경망 검색기로 액세스되는 Wikipedia의 밀집 벡터 인덱스인 RAG 모델을 구축합니다."

이 문서에서 RAG 모델 이라는 용어는 검색기 (특정 조회 인코더 및 벡터 기반 문서 검색 색인) 및 생성기 (사전 훈련된 특정 생성 언어 모델) 의 특정 구현을 의미합니다. 그러나 기본 검색 및 생성 접근 방식은 다른 검색기 컴포넌트 및 기초 모델을 사용하도록 일반화될 수 있습니다.

지식 기반 데이터베이스

지식 기반 데이터베이스는 다음과 같은 정보 포함 아티팩트의 콜렉션일 수 있습니다.

  • 내부 회사 위키 페이지의 프로세스 정보
  • GitHub 의 파일 (모든 형식: 마크다운, 일반 텍스트, JSON, 코드)
  • 협업 도구의 메시지
  • 긴 텍스트 블록을 포함할 수 있는 제품 문서의 주제
  • SQL (Structured Query Language) 조회를 지원하는 데이터베이스의 텍스트 단락 (예: Db2 )
  • PDF 파일로 저장되는 법적 계약과 같은 파일 콜렉션이 있는 문서 저장소
  • Content Management 시스템의 고객 지원 티켓

검색기

검색기는 IBM Watson Discovery 와 같은 검색 도구 또는 GitHub에서 제공하는 것과 같은 검색 및 컨텐츠 API를 포함하여 지식 기반에서 관련 컨텐츠를 안정적으로 리턴하는 검색 및 컨텐츠 도구의 조합일 수 있습니다.

벡터 데이터베이스도 효과적인 검색기입니다. 벡터 데이터베이스는 데이터뿐만 아니라 데이터의 벡터 임베딩도 저장합니다. 이는 시맨틱 의미를 캡처하는 데이터의 숫자 표현입니다. 조회 시 조회 텍스트의 벡터 임베딩이 관련 일치를 찾는 데 사용됩니다.

IBM watsonx.ai 벡터 데이터베이스는 포함되어 있지 않지만 다음에서 기초 모델을 사용할 수 있습니다. watsonx.ai 시중의 모든 벡터 데이터베이스와 함께 사용할 수 있습니다. 예제 노트북은 Cloud Pak for Data, Elasticsearch 와 같은 인기 있는 벡터 데이터베이스에 연결하는 단계를 보여줍니다.

리트리버가 벡터화된 텍스트를 사용하는 RAG 패턴을 구현하는 데 도움이 되도록, watsonx.ai 는 문장과 구절을 벡터로 변환하는 데 사용할 수 있는 임베딩 API와 임베딩 모델을 제공합니다. 이러한 유형의 RAG 구현에 대한 자세한 내용은 검색 강화 생성 작업 에 벡터화된 텍스트 사용하기를 참고하세요.

생성 프로그램

생성기 컴포넌트는 watsonx.ai에 있는 모든 모델을 사용할 수 있습니다. 이 모델은 사용자의 유스 케이스, 프롬프트 형식 및 컨텍스트에 대해 가져오는 컨텐츠에 적합합니다.

샘플 프로젝트

검색 강화 생성을 사용하여 질문과 답변 솔루션을 구현하는 노트북과 기타 자산이 포함된 샘플 프로젝트를 가져옵니다. 이 프로젝트는 다음 작업을 수행하는 방법을 보여줍니다:

  • HTML, PDF, DOC 또는 PPT 파일을 지식창고로 사용하고 Elasticsearch 벡터 인덱스를 검색기로 사용하세요. (Elasticsearch 서비스 인스턴스를 별도로 생성해야 합니다.)
  • 질문과 관련된 정보를 찾기 위해 벡터 인덱스를 쿼리하는 함수( Python )를 작성한 다음, 기초 모델을 추론하고 생성된 답변에 환각 내용이 있는지 확인합니다.
  • 기초 모델에 효과적인 프롬프트를 포맷하는 데 도움이 되는 프롬프트 템플릿을 사용하십시오.
  • watsonx.ai Python 라이브러리의 RAG 유틸리티를 사용하여 패턴을 효율적으로 따르세요.
  • 생성된 답변에 대한 사용자 피드백을 수집하고 분석하는 기능을 포함하여 RAG 구현의 다음 단계를 구현하세요.

' RAG 액셀러레이터와의 Q&A 샘플 프로젝트를 사용해 보세요.

자세한 내용은 RAG 액셀러레이터와의 Q&A를 참조하십시오.

주: 샘플 프로젝트를 만들 수 없는 경우 설명 필드 텍스트를 교체해 보세요.

다음의 예는 검색 강화 생성 패턴을 적용하는 방법을 보여줍니다.

검색 강화 생성 예
설명 링크
간단한 소개 소규모 지식 기반 데이터베이스 및 단순 검색 컴포넌트를 사용하여 기본 패턴을 설명합니다. 검색 강화 생성에 대한 소개
Discovery를 사용한 간단한 소개 이 샘플 노트북에서는 IBM Watson Discovery 의 간단한 기사를 지식 기반으로 사용하고 Discovery API를 사용하여 검색 조회를 수행합니다. watsonx.ai 와 Discovery를 이용한 검색 증강 생성에 대한 간단한 소개
실제 예제 watsonx.ai 문서에는 문서의 주제를 지식 기반으로 사용하여 기본적인 what-is 질문에 응답할 수 있는 검색 및 응답 기능이 있습니다. watsonx.ai 의 질문에 기초 모델을 사용하여 답변하기
LangChain 의 예제 LangChain watsonx.ai 의 검색 강화 생성을 지원하는 단계를 포함하고 있습니다. 데이터 검색, 지식 기반 데이터베이스 빌드 및 조회, 모델 테스트를 위한 명령을 소개합니다. watsonx LangChain 사용하여 질문에 답변하기
LangChain 및 Elasticsearch 벡터 데이터베이스의 예제 LangChain 을 사용하여 임베딩 모델을 Elasticsearch 벡터 데이터베이스의 문서에 적용하는 방법을 보여줍니다. 그런 다음 노트북은 데이터 저장소를 인덱싱하고 사용하여 수신 질문에 대한 응답을 생성합니다. watsonx, Elasticsearch, LangChain 사용하여 질문에 답하기(RAG)
Elasticsearch Python 라이브러리의 예제 Elasticsearch Python 라이브러리를 사용하여 임베딩 모델을 Elasticsearch 벡터 데이터베이스의 문서에 적용하는 방법을 보여줍니다. 그런 다음 노트북은 데이터 저장소를 인덱싱하고 사용하여 수신 질문에 대한 응답을 생성합니다. watsonx Elasticsearch Python 라이브러리를 사용하여 질문에 답하기(RAG)
LangChain과 SingleStoreDB 데이터베이스의 예시입니다 watsonx SingleStoreDB 데이터베이스를 사용하여 검색 강화 생성을 대규모 언어 모델에 적용하는 방법을 보여줍니다. SingleStoreDB 및 watsonx 사용한 RAG

자세히 알아보기

다음 학습서를 사용해 보십시오.

상위 주제: 생성 AI 솔루션 개발