1. 기존의 GPT의 한계1) 할루시네이션 - 잘못된 정보를 자신감 있게 제시2) 최신 정보 반영이 안됨 - 학습 데이터의 컷오프3) 도메인특화 - 고유 정보는 없음4) 지식의 불분명한 출처 2. RAG- 기존의 LLM 답변 생성하는 과정에 검색을 추가하여 답변에 참고할만한 정보를 제공 (문맥 제공) 1) Naive RAG: 검색-실행 [사전단계]- Indexing: PDF, Word, Markdown 등에서 텍스트 데이터를 추출- Chunking: 작은 단위로 분할- Embedding: vector로 인코딩- database: 임베딩된 vector를 저장 [실행단계]- Retrieve: database에서 질문에 답변하기 위한 정보 검색- Generation: 검색된 정보를 문맥(Context)에 추..
1. RAG 파이프라인의 구성1) 데이터 로드(Load Data)- 외부 데이터 소스에서 정보를 수집하고, 필요한 형식으로 변환하여 시스템에 로드- 공개 데이터셋, 웹 크롤링을 통해 얻은 데이터, 또는 사전에 정리된 자료from langchain_community.document_loaders import WebBaseLoader# 크롤링 하고 싶은 urlurl = 'https://wikidocs.net/231393'loader = WebBaseLoader(url)docs = loader.load()print(len(docs)) # 1print(len(docs[0].page_content)) # 15735print(docs[0].page_content) 2) 텍스트 분할(Text Split)- 불러온 데..

1. 진행 순서- PDF를 참고해서 답변하는 chatbot을 만들고 싶은데, 답별할 때 해당 정보가 있는 page 번호를 알려줬으면 했다.- 원래 페이지 번호를 정상적으로 가져오는 경우도 있지만, 나의 경우에는 에러가 나서 따로 페이지번호를 추가해줬다.PDF 파일 로드 > 페이지 번호 추가(메타데이터) > 텍스트 분할 (문장) > 임베딩 > 벡터 데이터베이스 저장/로드 > 검색 쿼리 및 결과 출력 > 테스트 2. pdf 파일 로드와 페이지 번호 추가# 1. PDF 로드loader = PyPDFLoader("2021_Guidelines_Beer.pdf")documents = loader.load()# 2. 각 페이지에 페이지 번호 추가for i, doc in enumerate(documents): d..

1. RAG란?- Retrieval-Augmented Generation의 약자로, 텍스트 생성 모델과 정보 검색 시스템을 결합한 AI 기술- 정보 검색(Retrieval)과 생성( Generation)의 단계로 나뉜다.- 데이터베이스 사용 외에도 외부 api를 활용해 "검색"한 결과를 LLM에 전달하고 답을 "생성"하면 RAG라고 할 수 있다. 2. RAG 구현시 사용한 라이브러리# 파일 읽어오기from langchain.document_loaders import TextLoader # 텍스트 파일from PyPDF2 import PdfReader # PDF 파일# 문서를 청크로 분할from langchain.text_splitter import RecursiveCharacterTextSplitte..

1. RAG란?- Retrieval-Augmented Cegeration1) 정보 검색(Retrieval): LLM이 텍스트를 생성할 때 관련 정보를 찾아 보고2) 텍스트 생성(Generation) 그 정보를 활용하여 새로운 텍스트를 만드는 기술 2. 정보 검색1) 질문/키워드 입력(쿼리)2) 해당 쿼리와 관련된 정보를 DB나 인터넷에서 찾음3) 유사도 검색: 검색 엔진이 쿼리와 DB에 있는 문서들 사이의 유사도를 계산- 키워드 검색: 사용자가 입력한 단어나 구를 DB나 인터넷에서 직접 찾는 방식- 시맨틱 검색: 단어의 의미와 문맥을 이해하여 보다 관련성 높은 결과를 제공하는 기술 4) 랭킹처리: 검색 결과를 가장 관련이 높다고 판단되는 문서부터 순서대로 나열- 유사도 계산: 문서나 단어 사이의 관련성이..

1. 언어모델(Large Model)이란?1) 확률/통계적 방법 (n-gram)- 예시: 나는 오늘 점심에 뒤에 "피자를 먹었다" 가 나왔다는 것 => 과거에 "점심에" 뒤에 "피자"가 많이 나왔기 때문- 1-gram(유니그램): 전체 문장을 한 단어씩 나누는 것 => "The / cat / sat / on / the / mat"- 2-gram(바이그램): 전체 문장을 두 단어씩 나누는 것 => "The cat / cat sat / sat on / on the / the mat"- 3-gram(트라이그램): 전체 문장을 세 단어씩 나누는 것 =>"The cat sat / cat sat on / sat on the / on the mat"- 한계: 가능한 모든 n-gram을 DB에 저장하고 있어야 하고, ..
- Total
- Today
- Yesterday
- 빅데이터 분석기사
- C언어
- 오픽
- 실기
- 기초
- 30분
- Ai
- Python
- 갓생
- 아침운동
- 다이어트
- 루틴
- opic
- ChatGPT
- 티스토리챌린지
- llm
- 미라클모닝
- 오블완
- 운동
- 줄넘기
- 스크랩
- SQL
- 프로그래머스
- 경제
- 아침
- 습관
- 고득점 Kit
- 영어회화
- 뉴스
- IH
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |