Ask HN: 데이터+임베딩+API 파이프라인을 위한 기능적 DSL은 왜 없는가?
요약
RAG(Retrieval-Augmented Generation) 워크로드 증가로 인해, 구조화된 데이터(JSONL)를 읽어 임베딩 벡터로 변환하고 외부 API/벡터 DB에 배치 전송하는 과정이 필수적입니다. 하지만 현재는 복잡한 중첩 for-loop와 수동적인 JSON 파싱 등 지저분하고 비효율적인 명령형 Python 코드로 처리해야 합니다. 본 글은 이 과정을 Unix 파이프나 Lisp/Elixir 같은 함수형 언어의 DSL처럼 선언적(declarative)이고 컴포저블한 방식으로 처리할 수 있는 전용 프레임워크 또는 DSL의 부
핵심 포인트
- 현재 데이터-임베딩 파이프라인은 JSONL 파일 읽기, 키 기반 매칭, (텍스트, 임베딩) 쌍 변환, 배치(batching), 외부 시스템 전송 등 복잡한 단계를 거치며 비효율적인 명령형 Python 코드를 요구합니다.
- 필자는 이 과정을 Unix 파이프(`|`)나 Lisp/Elixir의 함수형 구문처럼 `Source | Match | Transform | Filter | Batch | Sink`와 같은 선언적이고 컴포저블한 DSL로 구현해야 한다고 주장합니다.
- RAG(Retrieval-Augmented Generation)가 표준화되면서 이 패턴이 일반화되었음에도 불구하고, 기존의 Pandas나 Dask 등 범용 라이브러리로는 '구조화된 데이터 -> 변환 -> API 전송'이라는 특정 워크로드를 통합적으로 해결하기 어렵습니다.
- 이상적인 솔루션은 `cat input.jsonl | match output.jsonl on custom_id | extract (text, embedding) | filter not-empty | batch 50 | send-to-chroma`와 같이 직관적이고 파이프라인 지향적인 구문이어야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기