📝LangChain
LLM을 활용한 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크로 RAG를 구현하는 데 아주 유용한 도구입니다.
📝RAG (Retrieval-Augmented Generation)
RAG는 정보 검색 기반 생성 모델을 의미하며 아래 두 가지 프로세스를 결합한 구조입니다.
- Retrieval(정보 검색)
- 외부 데이터베이스나 문서에서 필요한 정보를 검색
- OpenAI GPT 같은 LLM이 기존에 학습하지 않은 최신 데이터나 특정 도메인 데이터를 활용할 수 있도록 함
- Generation(생성)
- 검색된 정보를 기반으로 자연어 답변을 생성
RAG 작동 원리
- 질문 입력 → 사용자가 질문을 입력
- 정보 검색 → 검색 엔진이나 벡터 데이터베이스를 사용해 관련 정보를 검색
- 생성 단계 → 검색된 정보를 언어 모델에 전달하여 적합한 답변 생성
RAG의 장점
- 최신 정보나 사전 학습 데이터에 없는 데이터에 접근 가능
- 모델의 응답 정확도를 높이고 불필요한 "환각(hallucination)"을 줄임.
📝자연어
자연어(natural language)란 우리가 일상 생활에서 사용하는 언어를 말합니다. 자연어 처리(natural language processing)란 이러한 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일을 말합니다.
📝텐서플로우(Tensorflow)
텐서플로우는 구글이 2015년에 공개한 머신 러닝 오픈소스 라이브러리입니다. 머신 러닝과 딥러닝을 직관적이고 손쉽게 할 수 있도록 설계되었습니다.
📝케라스(Keras)
케라스(Keras)는 딥러닝 프레임워크인 텐서플로우에 대한 추상화 된 API를 제공합니다. 쉽게 말해, 텐서플로우 코드를 훨씬 간단하게 작성할 수 있습니다.
📝젠심(Gensim)
젠심(Gensim)은 머신 러닝을 사용하여 토픽 모델링과 자연어 처리 등을 수행할 수 있게 해주는 오픈 소스 라이브러리입니다.
📝사이킷런(Scikit-learn)
사이킷런(Scikit-learn)은 파이썬 머신러닝 라이브러리입니다. 사이킷런을 통해 나이브 베이즈 분류, 서포트 벡터 머신 등 다양한 머신 러닝 모듈을 불러올 수 있습니다. 또한, 사이킷런에는 머신러닝을 연습하기 위한 아이리스 데이터, 당뇨병 데이터 등 자체 데이터 또한 제공하고 있습니다.
📝NLTK
엔엘티케이(NLTK)는 자연어 처리를 위한 파이썬 패키지입니다.
📝KoNLPy
코엔엘파이(KoNLPy)는 한국어 자연어 처리를 위한 형태소 분석기 패키지입니다.
📝JPype
JAVA와 Python을 연결해주는 역할을 합니다.