벡터 인덱스 만들기
다음 유형의 벡터 저장소를 사용하여 접지 문서를 색인화할 수 있습니다:
- 인메모리
- Elasticsearch
- watsonx.data Milvus
인메모리 벡터 저장소를 선택하면 인덱스가 자동으로 생성되므로 벡터 저장소를 설정할 필요가 없습니다.
벡터 저장소를 선택할 때 고려해야 할 요소는 foundation model 프롬프트에 벡터화된 문서 추가하기를 참조하세요.
타사 벡터 저장소를 사용하기로 선택한 경우 벡터 인덱스를 만들기 전에 데이터 저장소에 대한 연결을 설정해야 합니다. 자세한 내용은 사용하려는 벡터 스토어에 적합한 절차를 참조하세요:
프로시저
접지 문서에 대한 벡터 인덱스를 만들려면 다음 단계를 완료하세요. 사용하는 벡터 스토어에 따라 단계의 순서가 약간 다를 수 있습니다.
프로젝트 개요에서 자산 탭을 클릭한 다음 새 자산> 벡터화된 문서가 포함된 지상 생성 AI를 선택합니다.
또는, 페이지 시작 부분의 문서와 함께 기초 다지기 아이콘
을 클릭한 다음, 벡터 색인 선택 또는 만들기를 클릭하여 채팅 모드의 Prompt Lab 에서 시작할 수 있습니다.
사용하려는 벡터 스토어를 선택합니다.
벡터 인덱스 에셋의 이름을 지정합니다.
다음 방법 중 하나로 근거 문서를 추가하세요:
- 프로젝트와 연결된 데이터 자산에서 파일 추가하기
- 파일 시스템에서 파일을 업로드하려면 찾아보기
다음 옵션은 타사 벡터 스토어에서만 사용할 수 있습니다:
연결된 벡터 스토어에서 기존 콘텐츠 추가
연결된 데이터 소스를 선택하고, 해당되는 경우 데이터베이스를 선택한 다음 다음를 클릭합니다. 사용하려는 색인 또는 컬렉션을 선택합니다.
연결된 벡터 인덱스에 새 콘텐츠 추가
연결된 벡터 스토어에 새 콘텐츠를 추가하려면 연결된 데이터 소스를 선택하고 해당되는 경우 데이터베이스를 선택한 다음 다음를 클릭합니다. 새 색인 또는 새 컬렉션를 클릭하고 이름을 지정한 다음, 파일을 업로드하거나 데이터 자산에 연결하여 문서를 추가합니다.
지원되는 파일 유형은 벡터 스토어에 따라 다릅니다. 자세한 내용은 지원되는 접지 문서 파일 형식를 참조하세요.
옵션: 해당되는 경우 문서를 벡터화하는 데 사용할 임베딩 모델 또는 벡터화 설정을 선택합니다.
자세한 내용은 임베딩 모델 및 벡터화 설정를 참조하세요.
연결된 데이터 저장소에만 해당: 기존 인덱스 또는 컬렉션의 필드를 watsonx.ai의 벡터 인덱스 자산에 정의될 새 필드에 매핑합니다.
These field mappings are important because watsonx.ai needs a consistent way to extract data and capture details about the documents, such as the original file name and page number, from various supported vector stores.
테이블 1. 벡터 스토어 스키마 필드 새 벡터 인덱스 필드 이름 연결된 벡터 저장소의 필드 벡터 쿼리 Elasticsearch 인덱스에만 필요합니다. Elasticsearch 인덱스를 검색하는 데 사용되는 쿼리 텍스트가 지정되는 필드(예: ml
또는vector
)입니다.문서 이름 소스 파일을 식별하는 필드입니다. 파일 이름(예: metadata.source
)을 캡처하는 필드 또는 문서 제목(예:metadata.title
)을 선택할 수 있습니다.텍스트 페이지 콘텐츠의 대부분을 포함하는 필드(예: body
또는text
)입니다.페이지 번호 페이지 번호를 식별하는 필드(예: metadata.page_number
)입니다.문서 URL 문서의 URL 포함된 필드(예: metadata.document_url
).작성을 클릭하십시오.
파일의 텍스트는 벡터화되고 벡터는 색인화되어 새로운 벡터 인덱스 에셋에 저장됩니다.
연결된 타사 데이터 저장소에 새 콘텐츠를 추가하면 다음과 같은 일이 발생합니다:
- 문서를 벡터화하고 타사 데이터 저장소에 색인 또는 컬렉션을 구축하는 작업에서 실행되는 노트북 에셋이 생성됩니다.
- 제출된 쿼리를 타사 데이터 저장소의 인덱스 또는 컬렉션에 전달하고 검색 결과를 가져올 수 있는 벡터 인덱스 자산이 watsonx.ai에 만들어집니다.
벡터 인덱스 자산이 생성된 후에는 벡터화된 문서가 질문에 얼마나 잘 답변할 수 있는지 테스트하고 필요한 사항을 조정합니다. 벡터 인덱스 관리하기를 참조하세요.
임베딩 모델 및 벡터화 설정
다음 설정은 임베딩 모델로 보내기 전에 문서를 더 작은 세그먼트, 즉 청크로 나누는 방법을 제어합니다:
텍스트 청크 크기: 문서 세그먼트당 포함할 문자 수입니다.
모델에서 허용하는 최대 입력 토큰 수보다 작은 세그먼트 크기를 정의합니다. 문서를 더 큰 세그먼트로 나누면 최대 토큰 크기 제한이 충족된 후 세그먼트의 추가 문자는 임베딩 모델에서 무시되므로 일부 문서 텍스트가 생략될 수 있습니다.
청크 크기는 문자 단위로 지정됩니다. 토큰당 글자 수는 임베딩 모델에 따라 다르지만, 하나의 토큰은 대략 2~3글자에 해당합니다.
테이블 2. 모델 청크 크기 임베딩 모델 임베드 최대 입력 토큰 대략적인 청크 크기 all-MiniLM-L6-v2 256 700 all-MiniLM-l12-v2 256 700 ELSER 512 1400 slate-30m-english-rtrvr 512 1400 slate-125m-english-rtrvr 512 1400 slate-30m-english-rtrvr-v2 512 1400 slate-125m-english-rtrvr-v2 512 1400 granite-embedding-107m-multilingual 512 1400 granite-embedding-278m-multilingual 512 1400 텍스트 청크 겹침: 연속되는 두 문서 세그먼트 각각에서 반복할 문자 수입니다.
텍스트를 반복하면 문서 세그먼트 사이에 버퍼가 생성되어 완전한 문장을 캡처하는 데 도움이 되고 텍스트가 모두 누락되는 것을 방지할 수 있습니다.
PDF 페이지 분할: 활성화하면 PDF 파일을 페이지당 하나의 세그먼트로 나누고 답변에 페이지 번호 소스를 포함합니다. 표시되는 페이지 번호는 PDF 뷰어 페이지 번호입니다.
주: 이 옵션은 PDF 파일을 추가하는 경우에만 사용할 수 있습니다.
foundation model 프롬프트에 벡터 인덱스 사용
벡터 인덱스를 사용할 준비가 되면 다음 방법 중 하나를 사용하여 이 벡터 인덱스 에셋을 foundation model 프롬프트와 연결합니다:
- 벡터 인덱스 자산 페이지에서 벡터 인덱스 정보 보기 아이콘을 클릭합니다.
페이지 시작 부분에서 '이 자산 정보 ' 패널을 열고 Prompt Lab 에서 열기'를 클릭합니다.
- 채팅 모드에서 Prompt Lab 열고, 페이지 시작 부분의 문서 기반 아이콘
을 클릭한 다음, 벡터 색인 선택 또는 생성을 클릭합니다.
애플리케이션에서 이 프롬프트 패턴을 사용하세요
문서 세트를 사용하는 검색 증강 생성(RAG) 패턴을 실험한 후, 프롬프트 로직을 노트북에 저장하여 생성 AI 애플리케이션에서 사용할 수 있도록 하세요.
프롬프트를 노트북으로 저장할 때 배포 가능한 세대 AI 흐름 옵션을 선택합니다. 생성된 노트북은 프롬프트 템플릿을 위한 Python 코드와 REST API에서 사용할 수 있는 배포 가능한 Python 함수를 제공합니다.
자세한 내용은 작업 저장하기를 참조하세요.
또는, watsonx.ai SDK에서 제공되는 클래스를 사용할 수 있습니다. 메모리 내 벡터 인덱스와 함께 SDK를 사용하는 경우, 프롬프트를 노트북으로 저장한 다음, 노트북에서 벡터 인덱스 세부 사항을 확인함으로써 벡터 인덱스 ID와 같은 인덱스에 대한 세부 정보를 얻을 수 있습니다.