내돈내산 인프런 강의를 듣고 정리한 글이며, 아래는 수강했던 강의 링크이다.
https://www.inflearn.com/course/rag-llm-application%EA%B0%9C%EB%B0%9C-langchain
RAG를 활용한 LLM Application 개발 (feat. LangChain) 강의 | 강병진 - 인프런
강병진 | 실리콘밸리 GenAI 해커톤 우승자에게 배우는 RAG. 현업 노하우를 가득 담았습니다, 실리콘밸리 GenAI 해커톤 우승자가 말아주는 RAG데이터 전처리 및 효율적인 Retrieval: RAG 구성을 위해 필요
www.inflearn.com
필수 용어
용어 | 의미 | 비고 |
임베딩 (embedding) | : 자연어 처리(NLP)나 머신러닝에서 단어나 문장 같은 텍스트를 수치 벡터로 변환하는 과정 = 벡터화 |
인간에게 강아지, 개, 댕댕이는 비슷한 말이지만, 임베딩을 하면 이 단어들이 각각 [0.15, 0.32, -0.25, ...]처럼 수십~수백 개 숫자로 구성된 벡터로 변환하는 것. (비슷한 의미를 가진 단어일수록 벡터 간의 거리(코사인 유사도 등)가 가까워짐) |
vector store | : 벡터를 저장하고 검색하는 데이터베이스 =vector DB | ex) Chroma, FAISS, Pinecone |
parsing | : 사람이 쓴 문장이나 데이터 같은 복잡한 구조를 분석해서 (컴퓨터 입장에서) 의미 있는 구조로 바꾸는 과정 | ex) from bs4 import BeautifulSoup html = "<html><body><h1>제목</h1><p>내용입니다.</p></body></html>" soup = BeautifulSoup(html, "html.parser") print(soup.h1.text) # 출력: 제목 print(soup.p.text) # 출력: 내용입니다. |
LangChain 이란?
: RAG 애플리케이션을 쉽게 구현할 수 있도록 도와주는 프레임워크
chain = 여러 단계를 차례로 연결(chain)해서 처리할 수 있도록 구조를 잡음
ex) 질문 → 검색 → 요약 → 추가 질문 → 최종 답변
[주요 기능]
- 임베딩 관리: 문서와 질문을 숫자 벡터로 바꿔 유사 문서를 검색하는 기술을 라이브러리 형태로 제공
- LLM 연동: 오픈 AI, 코도스, 자체 모델 등 다양한 언어 모델을 손쉽게 교체하고 호출할 수 있게 해 줌.
- 워크플로우 구성: 검색 → 필터링 → 요약 → 추가 검색 등의 단계를 코드 몇 줄로 정의하고 실행할 수 있음
RAG(Retrieval Augmented Generation)란?
: 한국어로 하면 검색-증강생성
: Retrieval(검색) - 언어모델이 가지고 있지 않은 정보를 문서나 데이터베이스에서 검색을 해서
: Augmented(증강) - 검색 결과를 언어 모델에게 주면서 사실인 것처럼, 원래 이 정보를 알던 것처럼
: Generation(생성) - 답변을 만들어 내는 것.
=> 답변을 생성하는 것은 언어모델의 역할.
=> 개발자는 데이터를 잘 저장해서, 잘 가져오고, LLM에게 잘 전달해야 함
예를 들어, 답변을 생성하기 위한 프롬프트의 문맥도 굉장히 중요함. 데이터를 문맥의 어느 위치에 넣느냐에 따라 결과가 달라짐.
Vector란?
사용자가 질문을 입력하면, 시스템은 문서 내에서 질문과 가장 관련 있는 정보를 찾아야 한다.
이때 활용하는 것이 벡터(vector)이다.
vector는 row 1개짜리 행렬인데, 단어 하나를 수십~수백 개의 숫자로 이루어진 배열(벡터)로 표현하는 것이다.
예를 들어 ‘강아지’, ‘개’, ‘댕댕이’는 의미상 비슷하지만 형태는 다르다.
임베딩 과정을 거치면 이들 단어는 각각
[0.15, 0.32, –0.25, …]
와 같은 고차원 숫자 벡터로 변환된다.
의미가 비슷한 단어일수록 벡터 간의 거리가 가까워진다.
보통 코사인 유사도를 사용해 벡터 간 유사도를 측정한다.
아래 링크에서 임의로 'artists'라는 단어를 찍었을 때, artists와 유사한 의미를 가지는 단어들일수록 가까이 위치한다.
그리고 코사인 유사도를 기준으로 이를 정렬하면 musicians, artist, performers 순으로 유사도가 높음을 알 수 있다.
(=거리가 가까움)
https://projector.tensorflow.org/
Embedding projector - visualization of high-dimensional data
Visualize high dimensional data.
projector.tensorflow.org
'AI 서비스 기획' 카테고리의 다른 글
AI 서비스 기획을 위한, 인공지능 이해하기 (4) | 2024.12.26 |
---|---|
AI 신경망 기술: 8가지 핵심 모델 (1) | 2024.12.25 |