ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LlamaIndex] LlamaIndex는 무엇인가요?
    카테고리 없음 2024. 1. 15. 22:35

    출처: https://www.llamaindex.ai

     

     

     


    ○ What is LlamaIndex?

    LlamaIndex는 LLM 기반 애플리케이션 개발을 지원하는 데이터 프레임워크 입니다. 다양한 데이터 소스를 LLM과 통합할 수 있도록 지원합니다. 다양한 데이터 소스라 함은 PDF, PowerPoint와 같은 다양한 파일 형식은 물론 Notion 및 Slack과 같은 애플리케이션, 심지어 Postgres 및 MongoDB와 같은 데이터베이스도 포함합니다.

     

    LlamaIndex는 데이터 수집 및 처리를 지원하는 다양한 커넥터를 제공하여 LLM과의 원활한 연동이 가능하게 합니다. 또한 LlamaIndex는 효율적인 데이터 검색 및 쿼리 인터페이스를 갖추고 있습니다. 이 기능들을 통해 개발자는 RAG(Retrieval Augmented Generation, 검색증강생성)을 쉽게 구현 할 수 있습니다. (간단한 RAG는 5줄로 구현이 가능합니다!)

     

    from llama_index import VectorStoreIndex, SimpleDirectoryReader
    
    documents = SimpleDirectoryReader("data").load_data()
    index = VectorStoreIndex.from_documents(documents)
    query_engine = index.as_query_engine()
    response = query_engine.query("What did the author do growing up?")
    print(response)

    <LlamaIndex로 구현한 RAG 5줄 코드>

     

    LlamaIndex와 유사한 프레임워크로는 Langchain이 있습니다. Langchain도 LLM 기반 애플리케이션 개발을 위한 매우 훌륭한 프레임워크 입니다. 개인적인 의견으로 두 프레임워크를 비교해보면, 기능적으로 Langchain은 매우 다양한 범위를 커버합니다. LlamaIndex는 RAG에 집중하는 느낌입니다. 코드의 가독성과 편의성은 LlamaIndex가 더 낫습니다. 따라서 RAG 기반 LLM 애플리케이션 개발을 한다면 LlamaIndex를 추천합니다.

     

    ○ LlamaIndex의 구성요소

    LlamaIndex에서는 RAG를 5가지 요소 및 단계로 정의 합니다. 'Loading', 'Indexing', 'Storing', 'Querying', 'Evaluating'

    LlamaIndex의 RAG 구성요소

     

    • Loading
      텍스트 파일, PDF, 다른 웹사이트, 데이터베이스, API 등 데이터가 있는 곳에서 파이프라인으로 데이터를 가져오는 것을 의미합니다. LlamaHub(https://llamahub.ai)에는선택할 수 있는 수백 개의 커넥터를 제공합니다.
    • Indexing데이터 쿼리를 허용하는 데이터 구조를 만드는 것을 의미합니다. 데이터의 의미를 숫자와 Vector로 표현하는 것뿐만 아니라 상황에 맞는 관련 데이터를 쉽게 찾을 수 있도록 하는 수많은 메타데이터 검색 전략도 포함하는 개념입니다.
    • Storing데이터가 한번 Indexing되면 다시 Indexting 필요가 없도록 Index와 기타 메타데이터를 저장하는 것을 의미합니다.
    • Quering특정 인덱싱 전략에 대해 하위 쿼리, 다단계 쿼리 및 하이브리드 전략을 포함하여 LLM 및 LlamaIndex 데이터 구조를 활용하여 쿼리할 수 있는 다양한 방법을 제공합니다.
    • Evaluating
      모든 파이프라인에서 중요한 단계는 다른 전략과 비교하여 얼마나 효과적인지 확인하는 것입니다. 평가는 쿼리에 대한 응답이 얼마나 정확하고 충실하며 빠른지 객관적인 측정값을 제공합니다.

     

    다음 글에서는 LlamaIndex의 구성 요소별 제공하는 기능과 코드에 대해 알아보겠습니다.

     

     

     

    # Source 출처

    https://docs.llamaindex.ai

    https://www.leewayhertz.com/llamaindex/

Designed by Tistory.