LLM

LLM과 생성형 AI, RAG, LangChain 등등

sunning 2024. 8. 31. 13:10
728x90
반응형

이 글은 sLM, LLM을 공부하면서 헷갈리는 내용들을 명확히 하기 위한 글이다.

 

1) LLM과 생성형 AI

  • LLM(Large Language Model)이 항상 생성형 AI(Generative AI)인 것은 아님.
  • LLM의 특성과 활용 방식에 따라 생성형일 수도 있고, 그렇지 않을 수도 있음.
  • LLM이 어떻게 사용되느냐에 따라 그 역할과 범주가 결정됨.

- LLM과 생성형 AI의 관계

  • LLM (Large Language Model)
    • 대형 언어 모델은 방대한 양의 텍스트 데이터를 학습하여 텍스트를 이해하고 생성하는 데 사용할 수 있는 모델
    • 이들은 주어진 입력에 대한 반응으로 텍스트를 예측하고 생성 (GPT-3, BERT, T5 등)
  • 생성형 AI (Generative AI)
    • 새로운 데이터를 생성하는 데 중점을 둔 AI의 한 유형
    • 생성형 AI는 텍스트, 이미지, 음악 등 다양한 형태의 데이터를 생성
    • 텍스트를 생성하는 LLM, 이미지 생성 모델인 DALL-E, 음악 생성 모델 등

- LLM의 사용 방식에 따른 구분

  • 생성형으로 사용될 때: LLM이 주어진 입력으로부터 자연어 텍스트를 생성하는 작업을 수행할 때
    • 대화형 응답 생성 (예: 챗봇)
    • 창의적 글쓰기 (예: 스토리 생성)
    • 자동화된 보고서 작성
  • 비생성형으로 사용될 때: LLM이 단순히 텍스트의 이해나 분석에 사용될 때
    • 텍스트 분류: 주어진 텍스트가 긍정적인지 부정적인지 판단하는 작업
    • 개체명 인식(NER): 텍스트에서 특정한 엔터티(예: 사람, 장소, 조직)를 식별.
    • 질문 답변: 텍스트에서 명시적으로 주어진 질문에 대한 답을 찾는 작업. (생성을 하지 않고 검색된 정보를 기반으로 한 답변)

2) RAG(Retrieval-Augmented Generation) - 검색 증강 생성

- RAG란?

  • LLM은 광범위한 데이터셋에 대해 학습하여  고도의 기술내용이나 전문지식, 실시간적 데이터에 대한 내용은 답변하지 못함
  • LLM 성능을 데이터베이스를 검색하여 개선하는 기술 (비공개 데이터, 학습 이외 데이터에 대한 추론 필요 시)
  • 맞춤형 데이터로 LLM이 기존에는 답하지 못했던 내용을 추가학습
  • 일반적으로 RAG는 sLM(small Language Model)보다는 LLM(Large Language Model)에 더 자주 사용

- RAG 특징

  • RAG는 검색 부분(Retrieve)과 생성 부분(Generate)으로 이루어짐
  • 검색 단계 (Retrieval) 
    • 검색 모델은 사용자의 쿼리에 대해 관련성 높은 문서나 정보를 대규모 데이터베이스에서 찾아옴
    • LLM이 응답을 생성할 때 참고할 외부 지식이나 정보를 제공하는 데 중요한 역할
    • 사용자가 쿼리를 입력하면, 검색 모델이 외부 지식 베이스나 데이터베이스에서 관련된 정보를 검색
    • 이 검색 모델은 AI 기반일 수도 있고, 전통적인 검색 기법(TF-IDF, BM25 등)을 사용할 수도 있음
  • 생성 단계 (Generation)
    • 검색 모델이 반환한 관련 문서나 정보를 바탕으로 LLM이 최종 응답을 생성
    • 여기서 LLM은 검색 모델이 제공한 정보와 자신의 내장된 지식을 결합하여 보다 정확하고 관련성 높은 응답을 생성
    • RAG 방법은 검색 모델을 통해 실시간으로 검색된 정보를 LLM에 전달하여 응답을 생성
    • LLM 자체는 이 과정에서 새로운 정보를 학습하지 X (검색된 정보는 LLM의 내장된 지식에 추가되지 않으며, LLM은 자체적으로 학습하거나 기억하는 능력이 없음)
    • RAG에서 LLM은 사전 훈련된 상태로 사용되며, 새로운 정보가 LLM에 직접적으로 학습되는 것이 아님
    • 검색 모델을 통해 제공되는 정보는 일시적으로 참조되는 것일 뿐, LLM의 파라미터가 바뀌거나 내장된 지식이 업데이트되지 않음

- RAG 프로세스

문서 로딩 --> 블록 단위로 잘라서 --> 임베딩해서 다차원 벡터 공간에 수치 데이터로 변환 --> 벡터 DB에 저장

 

질의 응답이 들어왔을 때 retrieve를 기반으로 유사한 답변 get --> 프롬프트 이용해서 llm에게 던져주면 사람이 말하는 것처럼 answer를 뱉어

 

- RAG와 특정 도메인 특화 LLM 모델

  • LLM은 RAG를 통해 특화되지 않음
    • LLM은 RAG를 통해 새로운 정보나 도메인에 특화된 지식을 습득하는 것이 아니라, 검색 모델을 통해 필요한 정보를 실시간으로 참조하여 사용하는 것
    • RAG는 LLM을 지속적으로 훈련시키거나 지식을 축적하는 방식이 아니므로 RAG를 사용한다고 해서 LLM이 점점 더 특정 도메인에 특화되거나 학습되지 않음
  • 특화된 모델을 만들기 위한 방법 = Fine-Tuning
    • 특정 도메인에 특화된 LLM을 만들려면 미세 조정(fine-tuning)을 통해 해당 도메인의 데이터로 LLM 재훈련 필요
    • 이 경우 LLM의 파라미터가 조정되어 특정 도메인에 대한 깊이 있는 지식을 내장하게 됨
  • RAG는 LLM이 기존의 지식에 더해 실시간으로 최신 정보나 특정 도메인의 정보를 참조하여 정확한 응답을 생성하도록 돕는 역할
  • RAG는 LLM의 지식이나 능력을 직접적으로 향상시키기보다는, 검색된 외부 정보를 활용해 응답의 정확성과 관련성을 높이는 방식으로 작동
  • RAG는 LLM을 실시간으로 보완하는 방법이지, LLM을 학습시키거나 특정 도메인에 특화시키는 방식은 아님
  • LLM이 특정 도메인에 특화되려면 미세 조정을 통해 해당 도메인에 특화된 데이터로 훈련이 필요
  • 검색 모델이 없어도 해결할 수 있는 상황을 만들기 위해서는 지속적인 LLM의 재훈련과 학습이 필요

3) LangChain

  • LLM을 사용한 애플리케이션을 더 쉽게 개발하고, 통합하고, 확장할 수 있도록 돕는 파이썬 기반 프레임워크
  • LangChain은 다양한 LLM, 데이터 소스, 검색 및 데이터베이스, API와의 상호작용을 단순화하여 개발자들이 효율적으로 LLM을 활용할 수 있도록 함

- LangChain이 특정 도메인에 LLM을 활용할 때 하는 주요 역할

  1. 데이터 소스와의 통합:
    • LangChain은 다양한 데이터 소스(예: SQL 데이터베이스, 문서 저장소, API 등)와 LLM을 연결하는 데 도움
    • 이를 통해 특정 도메인에 관련된 정보를 실시간으로 가져오고, LLM이 해당 정보를 활용하여 더 정확하고 도메인에 맞는 응답을 생성할 수 있음
    • 예를 들어, 의료 도메인에서 환자의 병력이나 최신 연구 데이터를 SQL 데이터베이스에서 가져와 LLM이 그 정보를 바탕으로 진단에 도움을 줄 수 있는 응답을 생성할 수 있음
  2. 정보 검색 및 RAG 통합:
    • LangChain은 RAG(Retrieval-Augmented Generation) 패턴을 쉽게 구현할 수 있는 도구를 제공
    • 특정 도메인의 최신 정보나 전문 지식이 필요할 때, LangChain을 사용하여 외부 지식 베이스나 검색 엔진과 통합
    • LangChain은 검색된 정보를 LLM에 전달하여 응답을 생성하는 과정을 쉽게 자동화 가능
    • 예를 들어, 법률 도메인에서 최신 판례 정보를 검색하여 LLM이 사용자의 질문에 대한 정확한 답변을 제공할 수 있도록 할 수 있음
  3. 워크플로우 자동화:
    • LangChain은 LLM을 사용한 복잡한 워크플로우를 자동화하는 데 도움을 줍니다. 예를 들어, 여러 단계를 거치는 데이터 처리나 응답 생성 프로세스를 정의하고, 이를 LangChain을 통해 자동으로 실행할 수 있습니다.
    • 특정 도메인에서 반복적이거나 복잡한 작업(예: 데이터 요약, 보고서 생성, 분류 작업)을 자동화함으로써 시간과 노력을 절약할 수 있습니다.
  4. 사용자 맞춤형 인터페이스 제공:
    • LangChain은 사용자와 상호작용할 수 있는 맞춤형 인터페이스(챗봇, 대화형 에이전트 등)를 쉽게 구축할 수 있는 도구를 제공합니다. 특정 도메인에 특화된 사용자 인터페이스를 통해 사용자 경험을 향상시킬 수 있습니다.
    • 예를 들어, 금융 도메인에서 투자 상담을 제공하는 챗봇을 LangChain을 사용하여 쉽게 구축하고, 실시간으로 시장 데이터를 검색하고 분석하여 맞춤형 조언을 제공할 수 있습니다.
  5. 미세 조정(Fine-Tuning) 및 사용자 정의:
    • LangChain은 LLM을 특정 도메인에 맞게 미세 조정할 수 있는 환경을 제공
    • 이를 통해 개발자는 도메인에 특화된 데이터를 사용하여 LLM을 더 효과적으로 활용 가능
    • 특정 도메인에 맞춘 데이터셋으로 LLM을 재훈련하거나, 사용자 정의 프롬프트를 사용하여 더 정확한 응답을 유도할 수 있음
  6. 멀티 모달 기능:
    • LangChain은 텍스트 외에도 이미지, 비디오, 오디오와 같은 멀티모달 데이터를 다룰 수 있는 기능을 제공
    • 이를 통해 특정 도메인에서 다양한 유형의 데이터를 결합하여 종합적인 분석과 응답을 생성할 수 있음
    • 의료 도메인에서 텍스트 기반 환자 기록과 함께 X-ray 이미지 분석을 결합하여 종합적인 진단 지원을 제공 가능

 

728x90
반응형