AI 탐구노트

Firecrawl : 웹사이트 데이터 크롤링 API 서비스 본문

AI 기술

Firecrawl : 웹사이트 데이터 크롤링 API 서비스

42morrow 2024. 10. 1. 10:58
URL 내용을 크롤링해서 LLM을 위한 마크다운 또는 구조화된 데이터로 변환하는 API 서비스

 

Firecrawl은 웹 사이트 URL 상의 내용을 크롤링해서 정돈된 마크다운 형태나 LLM에 적합한 구조화된 데이터로 변환해 주는 서비스입니다. 

 

인터넷 상에는 엄청나게 많은 데이터들이 있습니다. AI 모델 초기에는 잘 만들어진 데이터셋이 없었기 때문에, 클롤링을 통한 데이터 수집이 기본이었고, 최근 나오는 많은 수의 LLM 들도 이런 인터넷 스케일 데이터를 크롤러를 통해 수집해서 모델 학습에 활용하는 것으로 알려져 있습니다. 

 

그런데 문제는 웹데이터 자체는 깔끔하고 정돈되어 있지 않은 경우가 많다는 것입니다. HTML, Javascript 등 데이터가 아닌 화면 렌더링을 위한 문서 구조를 가지고 있고, 수많은 하위 링크로 연결되어 있는 등, 제대로 된 정보를 추출하는 것이 어렵죠. 

 

사진 : 크롤링 및 마크다운 데이터로의 추출 예시

 

 

Firecrawl은 이런 웹 사이트의 문제를 해결하기 위한 솔루션입니다. 접근 가능한 모든 하위 페이지를 탐색하고 웹 페이지 스크래핑, 크롤링 및 추출을 진행할 수 있습니다. 크롤링 결과물은 원래 별도의 추가 전처리 없이 LLM에 사용될 수 있는 수준이라고 합니다. 이렇게 함으로써, LLM 엔지니어, 데이터 과학자, AI연구자들이 크롤링한 데이터의 정제와 전처리에 쏟는 시간과 노력을 최소화해주는 역할을 함으로써 모델 개발에 집중할 수 있도록 해 주는거죠. 

 

 

참고)  용어 설명

  • 크롤링 (crawling) : 인터넷을 탐색하는 과정으로 특정 웹 사이트를 방문하고 걸려 있는 링크 자동 탐색을 진행합니다. 즉, 웹 사이트의 구조 탐색 및 링크된 모든 페이지에 접근하는데 초점을 맞추며, 검색엔진이 웹페이지를 색인(indexing) 하기 위해 사용합니다. 
  • 스크래핑 (scraping) : 웹 페이지에서 특정 데이터를 추출하는 과정입니다. 

 

FireCrawl이 제공하는 기능은 다음과 같습니다.

  • 사이트맵 없이도 접근 가능한 모든 하위 페이지 크롤링 지원
  • 동적 컨텐츠 (Javascript가 콘텐츠 렌더링 하는 경우) 데이터 수집
  • LLM 어플리케이션 용 잘 포맷된 마크다운 데이터로 변환
  • 크롤링 프로세스 병렬 방식 지원
  • 콘텐츠 캐싱 지원

 

다만 다음과 같은 몇 가지 제한도 있습니다.

  • 크롤러가 페이지에 접근하지 못하도록 스크래핑 방지 메커니즘이 적용되어 있거나 는 등의 사이트는 크롤링 대상에서 제외됩니다. 대신, 속도제한, 캐싱 등을 사용해 대역폭 사용량을 최소화하는 식으로 안티-스크래핑 메커니즘이 최대한 작동하지 않도록까지 한다고 하네요.
  • 무료플랜이 있긴 하지만, 지원되는 페이지 등이 적어 유료 플랜을 구독해야 한다는 것입니다. 하지만, 추가적인 후처리없이 바로 LLM을 위한 데이터 추출이라면 구미가 당길만도 합니다. 

 

사진 : Crawl의 오픈소스 버전 vs 클라우드 버전

 

 

FireCrowal은 오픈소스 버전으로 공개된 것과 클라우드 버전으로 나뉘는데, 오픈소스 버전은 AGPL 3.0을 따르며 코드는 깃헙에 공개되어 있습니다. 클라우드 버전은 아무래도 엔터프라이즈 용 기능들이 추가적으로 제공됩니다. 

 

 

 

참고) 공식사이트, 코드, 소개영상