AI 7

[AI] 문서 변환, 구조화에 유용한 Docling 살펴보기

RAG 시스템을 구축하는 경우에 전체 문서를 LLM에 넣을 수는 없으니 일반적으로 원문을 전처리하여 chunking 하여 관련 문서(조각)를 검색해오게 된다. 하지만 많은 경우에 원문이 PDF 문서나 구조화 된 형태(이미지, 테이블 등)이고, 이를 단순 텍스트 추출하여 처리하거나 구조를 무시하게 된다면 답변 시 잘못된 정보를 제공하는 경우가 빈번하게 발생한다. 예를 들어, 테이블을 텍스트 그대로 추출하였을 때 헤더와 값들이 제대로 매핑되지 못하고 밀리게 된다면 관련 문서를 잘 가져왔다 하더라도 잘못된 답변을 제공하게 된다.PDF 파서나 OCR 같은 유용한 도구들을 활용하여 이를 보완할 수 있지만, PDF는 우리가 생각하는 것 보다 훨씬 복잡한 형태가 많고 이를 완벽하게 추출해내는 것은 아직도 매우 어렵다..

AI 2024.12.10

[AI] RAGAS 공식 문서(docs) 파악하기

이전 포스트에서 RAGAS 논문에 대해 분석하였는데, 논문 이후에 수정된 내용은 주로 공식 문서에서 확인할 수 있기 때문에 추가적으로 어떤 것이 변경되었나 확인해보려고 한다. 문서에는 Evaluation, Metrics 이외에도 Test Data Generation, Knowledge Graph Building, Scenario Generation 등의 과정이 자세히 설명되어 있었으나, 주로 Metrics 부분에 대해 파악해보고 논문과 어떻게 달라졌는지 비교할 예정이다.공식 문서(docs): https://docs.ragas.io/en/stable/github: https://github.com/explodinggradients/ragasPaper-Review: RAGAS: Automated Evalua..

AI 2024.11.10

[AI] Mixed Precision Training 이란?

Mixed Precision 이란?처리속도를 높이기 위한 FP16 과, 정확도 유지를 위한 FP32 를 섞어서 학습하는 방법1. Intro대부분의 LLM 학습 시 기본으로 사용되고 있는 테크닉으로, FP32(Single Precision) 과 FP16(Half Precision) 을 함께 사용하게 될 때 발생하는 오버플로우 혹은 언더플로우 현상을 해결하기 위한 방법이다.2. Floating Point기본적으로 우리가 실수를 표현하는 데 사용하는 방식은 FP32 방식이다. 그 중 제일 많이 쓰는 방식은 1(부호) + 8(지수 - exponent) + 23(가수 - fraction) 의 형태로 총 32bit 를 사용하여 실수를 표현한다. 하지만 메모리 및 계산량을 줄이기 위해서 FP16 을 사용하는 방향을 ..

AI 2024.11.01

[AI] SwiGLU는 어떤 함수일까?

Transformers 아키텍처에서 자주 사용되는 SwiGLU activation function 은 어떤 함수일까? 이를 이해하기 위해 Swish, GLU, SwiGLU 를 차례대로 이해할 필요가 있다. 결론만 먼저 얘기하면 아래와 같다.📌 SummarySwish: $\beta$ 값에 따라 다른 특성을 가질 수 있는 activation function 의 한 종류이다.GLU: Component-wise product of two linear transformations of inputSwiGLU: Swish 를 non-linear function 으로 사용하고, GLU 를 적용한 activation function 이다.1. Swish1.1 Swish 의 특징Searching for Activatio..

AI 2024.10.09

[AI] Anthropic의 Contextual Retrieval

Langchain, LlamaIndex 와 같이 잘 만들어진 LLM applications 프레임워크 덕분에 주어진 데이터에 대하여 RAG(Retrieval Augmented Generation) 시스템을 구축하는 것은 굉장히 쉬워졌다. 그러나 쉬워진 구축 난이도에 비해 RAG 성능을 상용화 가능한 수준까지 끌어올리는 것은 아직도 갈 길이 멀다. 가지고 있는 데이터의 특성에 따라 적합한 RAG 기법 및 파라미터도 달라지고, 도메인의 특성에 따라 쿼리로부터 SQL을 얼마나 잘 다루는지, 테이블로 주로 구성된 데이터를 어떻게 전처리 할 것인지 등 고려해야 할 요소가 많다. 케이스별로 달라지는 경우가 많고, 여러 시행착오가 필요한 기술이기 때문에 다른 기업들의 시행착오 및 실험 시 유용했던 방법론들을 참고하는..

AI 2024.10.05

[AI] LLM 의 발현 능력 (Emergent Ability of LLMs)

Emergent Ability:작은 언어 모델에는 존재하지 않지만 큰 모델에서 발생하는 능력으로, 이전 Pretrained LM 들과 구분되는 LLM 만의 두드러지는 특징1. Emergent Abilities일반적으로 머신러닝 기반의 학습 모델은 특정한 작업을 수행하도록 명시적으로 훈련된다. 그러나, LLM에서는 크기나 학습 데이터의 양이 일정 수준을 넘어서면 명시적으로 학습되지 않은 작업을 수행할 수 있는 능력이 갑자기 생겨난다. 지금에서야 LLM에 few-shots 형태로 원하는 task instruction을 주입하는 것이 일반화되었으나, 당시에는 이러한 발현 능력 (창발 현상) 이 매우 특별한 LLM 만의 특징이었다.1.1 왜 발생하는가?모델 파라미터의 수가 증가할수록 더 복잡한 패턴과 관계를 학..

AI 2024.10.02

[AI] BM25 분석하기

본 글에서는 LLM 등장 이후 RAG 시스템에서의 BM25 관점에서 기술하였습니다.1. Search의 종류1.1. BM25 란 무엇인가?BM25는 NLP 분야 중 정보 검색(IR, Information Retrieval) 분야에서 문서와 쿼리 간 관련성을 계산하는 랭킹 알고리즘이다. 검색 엔진에서 자주 사용되며, 유명한 TF-IDF(Term Frequency-Inverse Document Frequency)를 확장한 형태이다. TF-IDF와 마찬가지로 BM25 또한 term 기반의 검색 방식이라고 볼 수 있고, 단어의 빈도와 중요도를 고려하여 문서와 쿼리의 유사도를 계산하는 방식이다.1.2. Vector SearchVector Search(Dense Retrieval, Semantic Search) 는 ..

AI 2024.10.02