Xybrid 소개
Xybrid는 언어 모델(LLM), 음성 인식(ASR), 음성 합성(TTS)을 서버가 아닌 사용자 기기 위에서 직접 돌리기 위한 크로스플랫폼 런타임입니다. 모바일 앱이나 게임에 AI 기능을 넣으려면 보통 클라우드 API를 호출해야 하는데, 이렇게 하면 네트워크 지연이 생기고 사용자 데이터가 외부로 나가며 호출량에 따라 비용이 늘어납니다. Xybrid는 추론을 기기 안에서 끝내는 방식으로 이 세 가지 문제를 동시에 겨냥합니다.
Xybrid의 핵심은 Rust로 작성된 단일 코어 런타임이고, 각 플랫폼용 SDK는 이 코어를 감싸는 얇은 바인딩입니다. 개발자는 Flutter, Kotlin, Unity, Rust, CLI에서 같은 API로 모델을 불러오고 실행할 수 있으며, Swift SDK는 아직 준비 중(Coming Soon)입니다. 개발팀은 "Every SDK wraps the same Rust core — identical model support and behavior across all platforms" 라고 설명하는데, 하나의 코어를 공유하기 때문에 플랫폼마다 지원 모델과 동작이 갈리지 않는다는 점이 이 구조의 요지입니다.
본 게시물에서는 Xybrid의 코어와 SDK 구조, 지원하는 온디바이스 모델, 여러 모델을 이어 붙이는 멀티모델 파이프라인(MMP), 그리고 설치와 기본 사용법을 정리합니다.
Xybrid의 구조: 하나의 Rust 코어와 여러 네이티브 SDK
Xybrid는 자신을 "Rust-powered runtime" 으로 소개합니다. 모델 로딩, 다운로드와 캐싱, 하드웨어 가속 같은 실제 추론 로직은 모두 Rust 코어에 들어 있고, 언어별 SDK는 그 코어를 각 플랫폼에서 호출할 수 있게 열어 주는 역할만 합니다. 그래서 어떤 SDK를 쓰든 kokoro-82m 같은 모델 ID를 불러 실행하는 흐름이 동일합니다.
현재 공개된 SDK와 지원 플랫폼은 다음과 같습니다.
| SDK | 지원 플랫폼 | 상태 |
|---|---|---|
| Flutter | iOS, Android, macOS, Linux, Windows | 사용 가능 |
| Unity | macOS, Windows, Linux, iOS, Android | 사용 가능 |
| Kotlin | Android | 사용 가능 |
| Rust | 전체 | 사용 가능 |
| CLI | macOS, Linux, Windows | 사용 가능 |
| Swift | iOS, macOS | 준비 중 |
기능별로 보면 음성 인식, 음성 합성, 언어 모델, 비전 모델은 iOS, Android, macOS, Linux, Windows 다섯 플랫폼에서 모두 지원되고, 임베딩(Embeddings)은 아직 준비 중입니다. 하드웨어 가속은 플랫폼에 따라 다르게 붙는데, Apple 기기에서는 Metal과 Apple Neural Engine(ANE)을, Linux와 Windows에서는 CUDA를 사용하고, Android는 CPU 기반으로 동작합니다.
Xybrid가 지원하는 온디바이스 모델
Xybrid는 모델을 ONNX, GGUF, SafeTensors 세 가지 형식으로 다루며, 모든 모델은 기기 안에서 실행되어 API 키가 필요 없습니다. 등록된 모델 목록은 xybrid models list 명령으로 확인할 수 있습니다. 처음 시작할 때 권장되는 모델은 다음 세 가지입니다.
| 모델 | 유형 | 파라미터 | 특징 |
|---|---|---|---|
| SmolLM2 360M | LLM | 360M | 크기 대비 품질 균형이 좋은 소형 언어 모델 |
| Kokoro 82M | TTS | 82M | 24개 음성을 지원하는 음성 합성 모델 |
| Whisper Tiny | ASR | 39M | 다국어 음성 인식 모델(Candle 런타임) |
음성 인식(ASR)에는 위 Whisper Tiny 외에 CTC 디코딩을 사용하는 영어 모델 Wav2Vec2 Base(95M)가 있고, 음성 합성(TTS)에는 24개 음성의 Kokoro 82M과 함께 8개 음성을 지원하는 초경량 모델 KittenTTS Nano(15M)가 준비되어 있습니다.
언어 모델로는 Google의 Gemma 3 1B, Meta의 Llama 3.2 1B(128K 컨텍스트), Qwen 2.5 0.5B, 추론(reasoning)을 지원하는 Qwen 3.5 0.8B와 2B, 그리고 Liquid AI의 하이브리드 conv+attention 구조인 LFM2.5 230M과 350M이 포함되어 있습니다. 비전-언어 모델로는 LFM2-VL 450M이 llama.cpp의 mtmd 경로로 이미지와 텍스트를 함께 처리합니다. Phi-4 Mini, Qwen3 0.6B, 임베딩 모델 Nomic Embed Text v1.5 등은 아직 준비(Coming Soon) 단계로 표시되어 있습니다.
멀티모델 파이프라인(MMP)으로 음성 비서 만들기
Xybrid에서 특징적인 기능은 여러 모델을 하나의 호출로 이어 붙이는 멀티모델 파이프라인(MMP, Multi-Model Inference Pipeline)입니다. 이 기능은 아직 실험적(Experimental) 단계로 표시되어 있습니다. 음성 인식으로 말을 텍스트로 바꾸고, 언어 모델로 답을 만들고, 음성 합성으로 다시 소리로 내보내는 음성 비서를 YAML 몇 줄로 정의할 수 있습니다.
개발팀이 예시로 든 음성 비서 파이프라인은 세 단계를 순서대로 연결합니다.
# voice-assistant.yaml
name: voice-assistant
stages:
- model: whisper-tiny # 음성 → 텍스트
- model: qwen2.5-0.5b # LLM으로 처리
- model: kokoro-82m # 텍스트 → 음성
정의한 파이프라인은 CLI에서 오디오 파일을 입력으로 넣어 바로 실행할 수 있습니다.
xybrid run --config voice-assistant.yaml --input-audio question.wav -o response.wav
MMP는 현재 Flutter와 Rust SDK에서 지원되고, Kotlin, Swift, Unity에서는 준비 중입니다.
Xybrid와 다른 온디바이스 실행 도구의 차이
개발팀은 README에서 Xybrid를 Ollama, llama.cpp, ONNX Runtime과 직접 비교합니다. 아래 표는 개발팀이 제시한 비교이며, 각 도구의 최신 기능 지원 범위는 사용 시점에 다시 확인하는 것이 좋습니다.
| Xybrid | Ollama | llama.cpp | ONNX Runtime | |
|---|---|---|---|---|
| 모바일(iOS/Android) | 지원 | 미지원 | 미지원 | 지원 |
| 게임 엔진(Unity) | 지원 | 미지원 | 미지원 | 미지원 |
| 멀티모델 파이프라인(MMP) | 지원 | 미지원 | 미지원 | 미지원 |
| 하나의 SDK에서 ASR + TTS + LLM | 지원 | 미지원 | 미지원 | 미지원 |
| 서버 없이 프로세스 내 실행 | 지원 | 미지원 | 지원 | 지원 |
| 클라우드 불필요 | 지원 | 지원 | 지원 | 지원 |
개발팀이 내세우는 차별점은 모바일과 게임 엔진까지 아우르는 실행 범위, 그리고 음성 인식부터 언어 모델, 음성 합성까지 하나의 SDK 안에서 파이프라인으로 묶을 수 있다는 점입니다.
프라이버시와 관련해서, Xybrid는 모든 추론이 기기에서 이뤄지고 사용자 데이터가 기기를 벗어나지 않는다고 설명합니다. 다만 SDK가 모델 레지스트리 메타데이터를 조회할 때 작은 fleet-attribution 헤더를 붙인다는 점은 개발팀이 저장소의 docs/telemetry/registry.md 문서에 함께 밝혀 두었습니다.
Xybrid 설치 및 사용법
CLI는 가장 빠르게 확인해 볼 수 있는 방법입니다. macOS와 Linux에서는 설치 스크립트를, Windows에서는 PowerShell 명령을 사용합니다.
# macOS / Linux
curl -sSL https://raw.githubusercontent.com/xybrid-ai/xybrid/master/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/xybrid-ai/xybrid/master/install.ps1 | iex
설치 후에는 모델 ID와 입력 텍스트를 넘겨 음성 파일을 생성할 수 있습니다.
xybrid run --model kokoro-82m --input-text "Hello world" -o output.wav
각 SDK에서도 같은 흐름으로 모델을 불러 실행합니다. 예를 들어 Flutter에서는 pubspec.yaml 에 xybrid_flutter 를 추가한 뒤 다음과 같이 사용합니다.
final model = await Xybrid.model('kokoro-82m').load();
final result = await model.run(XybridEnvelope.text('Hello world'));
// result → 24kHz WAV audio
Rust에서는 Cargo.toml 에 xybrid 크레이트를 추가하고 동일한 방식으로 호출합니다.
let model = Xybrid::model("kokoro-82m").load()?;
let result = model.run(&Envelope::text("Hello world"))?;
// result → 24kHz WAV audio
기존에 쓰던 모델을 직접 올리고 싶다면, ONNX, GGUF, SafeTensors 형식의 모델에 model_metadata.json 을 붙여 등록하는 Bring Your Own Model(BYM) 기능을 사용할 수 있습니다. 다만 이 기능도 현재 실험적 단계로 표시되어 있습니다.
Xybrid의 라이선스
Xybrid는 Apache License 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
Xybrid 공식 홈페이지
Xybrid 문서 사이트
Xybrid 프로젝트 GitHub 저장소
더 읽어보기
-
Cactus: 스마트폰, 웨어러블 기기 등에서의 On-Device AI를 위한 고성능 추론 엔진 및 커널 라이브러리
-
Ghost Pepper: WhisperKit과 로컬 LLM으로 100% 온디바이스에서 동작하는 macOS 음성 인식 및 텍스트 입력 도구
-
ExecuTorch로 음성 에이전트 구축하기: 온디바이스 오디오를 위한 크로스 플랫폼 기반 | 파이토치 한국 사용자 모임
-
Apple Core AI 공개, 애플 실리콘용 온디바이스 AI 추론 스택과 PyTorch 변환 도구 coreai-torch
-
Liquid AI, 엣지용 350M 모델 LFM2.5와 다국어 검색 리트리버 LFM2.5 Retrievers 공개
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

