[트랜스포머를 활용한 자연어 처리] 01. 트랜스포머 소개
·
AI & ML/자연어 처리
인코더 - 디코더 프레임워크입력 단어는 순차적으로 인코더에 주입되고 출력 단어는 위에서 아래 방향으로 한 번에 하나씩 생성된다.이 구조는 인코더의 마지막 은닉 상태다 정보 병목이 된다는 약점이 있다. 디코더는 인코더의 마지막 은닉 상태만을 참조해 출력을 만들므로 여기에 전체 입력 시퀀스의 의미가 담겨야 한다. 하나의 표현으로 압축하는 과정에서 시작 부분의 정보가 손실될 가능성이 있어 취약하다. 어텐션 메커니즘어텐션은 입력 시퀀스에서 은닉 상태를 만들지 않고 스텝마다 인코더에서 디코더가 참고할 은닉 상태를 출력한다는 주요 개념에 기초한다. 즉, 디코더에서 출력 단어를 예측하는 매 시점(time step)마다, 인코더에서의 전체 입력 문장을 다시 한 번 참고한다는 것이다. 하지만 모든 상태를 동시에 사용하려..
RAG(Retrieval-Augmented Generation) 기초 이해
·
AI & ML/자연어 처리
LLM(Large Language Model)자연어 처리(NLP)에서 사용되는 인공지능 기술의 한 종류이다.이 모델들은 대규모의 텍스트 데이터를 학습하여 언어의 구조와 의미를 이해하고, 그 학습을 바탕으로 텍스트를 생성한다.생성, 번역, 요약, 질문 뿐만 아니라 창의성이 요구되는 분야에서도 두각을 나타내고 있다.할루시네이션하지만 LLM에도 문제점이 있었는데 가장 큰 것은 역시 할루시네이션일 것이다.AI모델이 생성하는, 잘못되거나 오해의 소지가 있는 결과를 뜻한다. 불충분한 학습 데이터모델의 잘못된 가정모델 학습에 사용된 데이터의 편향 등 위와 같은 다양한 요인으로 인해 발생할 수 있다. RAG란?RAG는 이러한 할루시네이션을 줄일 수 있는 대표적인 해결책이다.거대언어모델을 비롯한 생성형AI 모델은 엄청나..
ChatGPT 기반 RetrievalQA 체인 구축
·
AI & ML/자연어 처리
텍스트 파일에서 데이터를 로드하고, 이를 임베딩(벡터화)하여 문서 검색과 질문-응답(RetrievalQA) 체인을 생성한다.  1. API 키 설정api_key = os.getenv("OPENAI_API_KEY") '.env' 파일에서 'OPENAI_API_KEY'를 가져온다. 이 API 키는 OpenAi의 모델을 호출하는 데 사용된다. 본 코드에서는 chatGPT 모델을 사용하여 챗봇 답변을 생성할 것이다.  2. 문서 로드def load_docs(): loader = TextLoader('text.txt') print(loader) documents = loader.load() text_splitter = RecursiveCharacterTextSplitter( ..