Rizzo Flow: LLM 출력을 구조화된 결정으로 변환하는 로컬 프레임워크
Rizzo-AI-Academy/rizzo-flow
GitHubRizzo Flow는 LLM 출력을 단순 텍스트가 아닌, 확률 기반의 구조화된 결정(예/아니오, 점수 등)으로 추출하는 오픈소스 로컬 시스템입니다.
- 클라우드 API 의존 없이 사용자의 로컬 하드웨어에서 구동되며 토큰 생성 과정이 없어 높은 데이터 통제권과 독립성을 제공합니다.
- Jev와 같은 시스템 모델을 오픈 소스로 구현하여, 다양한 장치(Metal, CUDA 등)에서 쉽게 통합할 수 있는 표준화된 API 패턴을 제시합니다.
- 다만, 본 프로젝트는 독립적인 개발물이며, 제공되는 확률 값은 사용자가 직접 보정(calibration)해야 정확도가 높아진다는 점에 유의해야 합니다.
Rizzo Flow는 TypeSafe의 'System One' 모델인 Jev의 개념을 차용한 , 로컬 우선(local-first) 구현체입니다. 이 시스템은 비정형적인 상태(unstructured state)를 입력받아 단순 텍스트가 아닌 확률 기반의 구조화된 결정(typed decisions with probabilities)으로 출력하는 것이 핵심 기능입니다. 이는 사용자의 자체 하드웨어에서 구동되며, 추론 과정에서 을 생성하지 않아 높은 데이터 통제권을 제공합니다.
Rizzo Flow는 Jev와 동일한 프로그래밍 모델을 유지하면서도 오픈 로 제공됩니다. `llama.cpp`를 기반으로 작동하기 때문에 Apple, NVIDIA, AMD 등 다양한 환경이나 CPU에서도 구동이 가능하며, 예를 들어 RTX 5060 Ti에서 Q8_0 설정 시 결정당 약 150ms의 지연 시간(latency)을 기록했습니다. 이 프로젝트는 TypeSafe와 무관하게 독립적으로 개발되었으며, 사용자가 직접 확률 값에 대한 보정(calibration)이 필요합니다.
사용자는 Python ≥ 3.11, git 및 uv를 사용하여 환경을 설정할 수 있습니다. 초기 실행은 `uv run rizzo download` 명령어로 모델과 런타임을 다운로드한 후, 제공되는 플레이그라운드 웹 인터페이스나 cURL 호출 방식을 통해 테스트할 수 있습니다. 이 과정에서 사용자는 `--size`, `--quant`, `--weights flow|base` 등의 플래그를 사용하여 원하는 모델 크기와 가중치를 지정할 수 있습니다.
용어 풀이
- 오픈소스
- 소스 코드를 공개해 누구나 보고 고치고 다시 배포할 수 있게 한 소프트웨어.
- LLM
- 방대한 글을 학습해 문장을 이해하고 만들어 내는 AI 모델. ChatGPT, Claude, Gemini가 여기에 속해요.
- 토큰
- AI 모델이 글을 처리하는 단위. 단어보다 작은 조각이며 사용량과 요금을 셀 때 기준이 돼요.
- 가중치
- 학습으로 정해진 모델 내부의 숫자 값. 내려받는 모델 파일의 본체예요.
- GPU
- 많은 계산을 한꺼번에 처리하는 칩. AI 학습과 실행에 가장 많이 써요.
- API
- 프로그램끼리 기능을 주고받는 약속된 창구. AI 모델은 보통 API로 불러 써요.