OKdevTV
RAG(Retrieval-Augmented Generation)는 정보 검색(Retrieval)과 텍스트 생성(Generation)을 결합한 AI 모델 아키텍처입니다. 외부 지식 소스에서 정보를 검색한 후, 이 정보를 바탕으로 답변을 생성하는 방식으로 작동합니다.
from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
import torch
# 모델과 토크나이저 로드
tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", index_name="exact")
model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", retriever=retriever)
# 질문 설정
input_text = "RAG가 무엇인가요?"
# 모델에 입력 전처리
inputs = tokenizer(input_text, return_tensors="pt")
# 답변 생성
outputs = model.generate(inputs["input_ids"])
# 생성된 답변 디코딩
print(tokenizer.decode(outputs[0], skip_special_tokens=True))