lotus

LLM FrameworksCLIPython

★ 1,673주당 +13조회 4

무엇인가

LOTUS는 비정형·정형 데이터 테이블 위에서 LLM 기반 시맨틱 연산자를 실행하는 Python 라이브러리다. 스탠퍼드대와 UC버클리가 개발했다. 이름은 LLMs Over Text, Unstructured and Structured Data의 약자다. 데이터셋 단위 일괄 처리(bulk processing)를 대상으로 하며, 사용자는 자연어 지시로 연산을 선언하고 실행 방식은 옵티마이저에 맡긴다.

어떻게 동작하나

Corpus 객체가 데이터를 샤드로 나눈다. 에이전트 연산자는 샤드마다 에이전트를 병렬로 띄우고, 각 에이전트는 샌드박스 Python REPL로 코드를 실행해 정확한 값을 계산한다. 샤드별 결과는 reduce 단계에서 하나의 답으로 합쳐진다. LLM 연산자(sem_map, sem_filter, sem_agg, sem_join, sem_extract)는 레코드당 모델 호출 수를 줄이는 방식으로 동작한다. 옵티마이저는 호출 배칭, 모델 캐스케이드와 프록시 적용, 파이프라인 지연 계획을 담당한다. 모델 접근은 LiteLLM 제공자를 거친다.

무엇과 다른가

레코드마다 LLM API를 호출하는 루프를 직접 작성하는 방식과 달리, 연산자를 선언하면 실행 계획을 엔진이 결정한다. 연산자를 에이전트 연산자와 LLM 연산자 두 부류로 나눠, 다단계 도구 호출이 필요한 모호한 작업과 레코드당 호출이 적은 잘 정의된 작업을 구분해 맡긴다. 대체 대상은 수작업 프롬프트 루프와 개별 배치 스크립트다.

어떻게 쓰나

설치는 pip install lotus-ai 또는 uv add lotus-ai로 한다. 최신 기능은 소스에서 직접 설치한다. API 키를 설정한 뒤 Corpus에 데이터를 넣고 연산자를 호출한다. 에이전트 경로는 corpus.agent(ops=["map", "filter", "reduce"], ...) 형태로 쓰고, LLM 경로는 sem_map 같은 개별 연산자를 호출한다. 문서는 lotus-data.github.io에 있다.

전제와 한계

Python 패키지이므로 Python 실행 환경이 필요하다. LLM 호출에는 LiteLLM이 지원하는 제공자와 해당 API 키가 전제된다. 에이전트 연산자는 샌드박스 Python REPL에서 코드를 실행하는 환경을 요구한다. 비용과 지연은 선택한 모델 제공자에 종속된다.

관련 논문 1

유사 도구