AI/LLM

Multi Modal RAG를 위한 다중문서 처리 모듈 unstructured 살펴보기

a_mnesia 2024. 5. 7. 20:06

 

https://unstructured-io.github.io/unstructured/index.html

 

Unstructured 0.13.0 documentation

Next Introduction

unstructured-io.github.io

 

Unstructured 라이브러리는 downstream machine learning tasks에서 사용할 수 있도록 비구조화 텍스트 문서를 전처리하고 구조화하는 데 도움을 주도록 설계되었습니다. Unstructured 라이브러리를 사용하여 처리할 수 있는 문서 예시에는 PDF, XML 및 HTML 문서가 포함됩니다

 

Downstream Task 의미
구체적으로 풀고 싶은 문제들을 말한다.
최근 자연어 처리분야에서는 언어모델을 프리트레인(pre-train)방식을 이용해 학습을 진행하고, 그 후에 원하고자 하는 태스크를 파인 튜닝(fine-tuning) 방식을 통해 모델을 업데이트 하는 방식을 사용하는데 이때, 태스크를 다운스트림 태스크라 한다.
예를들어, 버트의 언어모델을 질의응답 태스크인 squad를 학습한다고 할때, 이때 질의응답 태스크를 다운스트림 태스크로 볼 수 있을것이다.

Core Functionality

Unstructured 라이브러리에는 원시(raw) 소스 문서를 분할, 청크, 정리 및 스테이징하는 기능이 포함되어 있습니다. 이러한 기능은 라이브러리 내에서 주요 공개 인터페이스로 작동합니다. 이 섹션을 읽은 후에는 다음을 이해할 수 있어야 합니다.

 

  • How to partition a document into json or csv.
    문서를 JSON 또는 CSV로 분할하는 방법:
    - Unstructured 라이브러리의 분할 함수를 사용하여 문서를 원하는 형식(JSON 또는 CSV)으로 분할할 수 있습니다. 이 함수는 문서를 적절한 크기로 나누고 각 부분을 원하는 형식으로 저장합니다.

  • How to remove unwanted content from document elements using cleaning functions.
    문서 요소에서 불필요한 내용을 제거하는 방법:
    - Unstructured 라이브러리의 정리 함수를 사용하여 문서 요소에서 불필요한 내용을 제거할 수 있습니다. 이 함수는 지정된 규칙에 따라 문서를 정리하고, 특정 패턴이나 문자열을 제거하여 요소를 정제합니다.

  • How to extract content from a document using the extraction functions.
    문서에서 콘텐츠를 추출하는 방법:
    - Unstructured 라이브러리의 추출 함수를 사용하여 문서에서 콘텐츠를 추출할 수 있습니다. 이 함수는 특정 유형의 데이터(예: 텍스트, 이미지, 표 등)를 문서에서 식별하고 추출합니다.

  • How to prepare data for downstream use cases using staging functions
    스테이징 기능을 사용하여 downstream 사용 사례에 대한 데이터를 준비하는 방법:
    -
    Unstructured 라이브러리의 스테이징 함수를 사용하여 downstream 사용 사례에 데이터를 준비할 수 있습니다. 이 함수는 추출된 콘텐츠를 적절한 형식으로 구성하고 저장하며, 후속 기계 학습 작업에 사용할 수 있는 형식으로 데이터를 준비합니다.
  • How to chunk partitioned documents for use cases such as Retrieval Augmented Generation (RAG).
    RAG(검색 보강 생성)과 같은 사용 사례를 위해 문서를 청크로 분할하는 방법:
    - Unstructured 라이브러리의 청크 함수를 사용하여 문서를 필요한 크기로 청크로 나눌 수 있습니다. 이 함수는 문서를 적절한 크기의 청크로 분할하여 특정 사용 사례에 적합하도록 준비합니다. RAG와 같은 사용 사례를 위해 필요한 크기로 문서를 청크로 분할할 수 있습니다.

 

https://github.com/Unstructured-IO/unstructured/blob/main/README.md

 

unstructured/README.md at main · Unstructured-IO/unstructured

Open source libraries and APIs to build custom preprocessing pipelines for labeling, training, or production machine learning pipelines. - Unstructured-IO/unstructured

github.com

Open-Source Pre-Processing Tools for Unstructured Data

구조화되지 않은 라이브러리는 PDF, HTML, Word 문서 등과 같은 이미지와 텍스트 문서를 수집하고 전처리하기 위한 오픈 소스 구성 요소를 제공합니다. 구조화되지 않은 사용 사례는 LLM의 데이터 처리 워크플로를 간소화하고 최적화하는 데 중점을 두고 있습니다. 비정형 모듈식 기능 및 커넥터는 데이터 수집 및 전처리를 단순화하는 응집력 있는 시스템을 형성하여 다양한 플랫폼에 적응할 수 있고 비정형 데이터를 정형 출력으로 변환하는 데 효율적입니다.

 

다중문서 처리에 아주좋은 라이브러리입니다. 

 

다른 스터디와 병행해서 문서를 계속 업데이트 할예정입니다.

 

Note!!!

Unstructured io를 이용해서 PDF로 OpenAI를 이용한 Multi modal 활용은 아래 페이지를 참조하세요.

https://amnesia.tistory.com/64

 

대용량 PDF를 위한 unstructured와 Multi-modal RAG에 대한 심층 분석

Overview끊임없이 진화하는 인공 지능 환경에서 보다 인간과 유사한 대화 에이전트를 만드는 것이 중심 초점이었습니다. 텍스트 기반 상호 작용이 크게 발전했지만 텍스트, 이미지

amnesia.tistory.com