LangChain 챗봇6장 · 문서 기반 챗봇2 / 21← 이전목차다음 →MetaContents

6장. 문서 기반 챗봇

용어 짚고 가기

  • RAG(Retrieval-Augmented Generation)검색 증강 생성입니다. 질문과 관련된 글을 먼저 찾아(retrieval, 되찾아 옴) 프롬프트에 보태고(augmented, 보강된) 그 글로 답을 쓰게(generation, 만들어 냄) 하는 방법입니다.
  • 색인(indexing)나중에 빨리 찾도록 미리 정리해 두는 일입니다. 책 뒤의 "찾아보기"를 만드는 일과 같습니다. index 는 라틴어로 "가리키는 것, 집게손가락"이라는 뜻입니다.
  • PDF(Portable Document Format)어느 컴퓨터에서 열어도 같은 모양으로 보이게 만든 문서 형식입니다. Portable 은 "들고 다닐 수 있는", Format 은 "형식"이라는 뜻입니다.
  • 문서 로더(document loader)PDF, 웹 쪽, 글 파일 같은 문서를 읽어 LangChain 의 Document 목록으로 바꾸는 부품입니다. load 는 "싣다, 불러오다"라는 뜻입니다.
  • PyPDFLoaderpypdf 라이브러리로 PDF 를 쪽마다 읽는 문서 로더입니다. Py 는 파이썬을 가리킵니다.
  • Document글(page_content)과 그 글에 대한 정보(metadata)를 함께 담는 LangChain 의 상자입니다. document 는 "문서"라는 뜻입니다.
  • 메타데이터(metadata)데이터에 대한 데이터입니다. 글이 어느 파일의 몇 쪽에서 왔는지 같은 정보입니다. meta 는 그리스 말로 "너머, ~에 관한"이라는 뜻입니다.
  • 청킹(chunking)긴 글을 검색하기 좋은 크기의 조각으로 나누는 일입니다. chunk 는 "덩어리, 토막"이라는 뜻입니다.
  • RecursiveCharacterTextSplitter문단, 줄, 낱말 순서로 자를 곳을 찾아 가며 글을 정한 길이 안으로 나누는 LangChain 의 분할기입니다. recursive 는 "되풀이하는", character 는 "글자", splitter 는 "쪼개는 것"이라는 뜻입니다.
  • chunk_overlap이웃한 두 조각이 겹치게 둘 글자 수입니다. overlap 은 "겹침"이라는 뜻입니다. 조각의 경계에서 잘린 문장을 양쪽에 남깁니다.
  • 임베딩(embedding)글을 같은 길이의 숫자 목록으로 바꾸는 일, 또는 그 숫자 목록입니다. embed 는 "박아 넣다"라는 뜻으로, 글을 숫자의 공간 안에 한 점으로 박아 넣는다는 데서 왔습니다.
  • 벡터(vector)순서가 있는 숫자 목록입니다. 화살표 하나로 그릴 수 있습니다. 라틴어로 "나르는 것"이라는 뜻입니다.
  • 바이그램(bigram)이웃한 글자 두 개의 묶음입니다. "환불"과 "불은" 처럼 한 칸씩 밀며 만듭니다. bi 는 "둘", gram 은 "쓴 것, 글자"라는 뜻입니다.
  • 코사인 유사도(cosine similarity)두 화살표의 방향이 얼마나 닮았는지를 0~1 사이(음수도 될 수 있다)로 나타낸 값입니다. 1 이면 같은 방향입니다. cosine 은 각도를 숫자로 나타내는 삼각비의 이름이고, similarity 는 "닮음"이라는 뜻입니다.
  • 벡터DB(vector database)임베딩을 저장하고, 질문의 임베딩과 가까운 것을 빨리 찾아 주는 저장소입니다. DB 는 database(데이터를 모아 둔 곳)의 줄임말입니다.
  • FAISS(Facebook AI Similarity Search)페이스북(지금의 Meta)의 AI 연구팀이 만든, 가까운 벡터를 빨리 찾는 라이브러리입니다. 이름은 "페이스북 AI 의 닮은 것 찾기"라는 뜻입니다.
  • 검색기(retriever)질문을 받아 관련 Document 목록을 돌려주는 LangChain 의 부품입니다. retrieve 는 "되찾아 오다"라는 뜻입니다.
  • k(top-k)검색기가 가까운 순서로 몇 개를 돌려줄지 정하는 수입니다. top-k 는 "위에서 k 개"라는 뜻입니다.
  • RetrievalQA검색기와 모델을 묶어 "찾아서 답하기"를 한 번에 하는 옛 방식의 체인입니다. QA 는 Question Answering(질문 답하기)의 머리글자입니다.
  • 근거(grounding)답이 기대고 있는 문서의 내용입니다. ground 는 "땅, 바탕"이라는 뜻으로, 답이 땅에 발을 딛게 한다는 데서 왔습니다.
  • 역직렬화(deserialization)파일에 저장해 둔 바이트를 다시 파이썬 객체로 되살리는 일입니다. serial 은 "줄지어 늘어선"이라는 뜻으로, 객체를 한 줄의 바이트로 늘어놓는 것이 직렬화입니다.
← 이전 절6장 · 먼저 큰 그림부터다음 절 →6장 · RAG 란 무엇인가