선박 운항

발행: (2026년 5월 25일 AM 06:03 GMT+9)
11 분 소요
원문: Dev.to

출처: Dev.to

Gemma 4 챌린지 제출: Gemma 4로 만들기

“200마일 바다 위에서 승무원이 부상을 당하면 인터넷도, 의사도, 두 번째 의견도 없습니다. 이 애플리케이션이 바로 두 번째 의견입니다.”
우리는 Vessel Ops AI라는 오프라인 우선 데스크톱 애플리케이션을 만들었습니다. 이는 해안에서 수백 마일 떨어진 선박에서 의료 담당자(MPIC)와 수석 엔지니어에게 생명줄이 됩니다.

승무원이 바다 한가운데서 부상을 입으면 MPIC는 보통 400페이지짜리 의료 매뉴얼을 압박감 속에서 뒤적여야 합니다. 중요한 부품이 고장 나면 수석 엔지니어는 OEM 지원 핫라인이나 간단한 구글 검색조차 없이 혼자 문제를 해결해야 합니다.

Vessel Ops AI는 조타실 노트북에 Gemma 4를 탑재합니다. WHO 국제 선박 의료 가이드(International Medical Guide for Ships)를 기반으로 하며, 모든 조언에 대해 구체적인 페이지를 인용하고, 바다에서는 전혀 연결이 필요 없습니다.

  • 🏥 RAG 기반 의료 트리아지 — 모든 응답이 내장된 938개 청크 지식베이스에서 [WHO IMGS, p. XX]를 인용합니다.
  • ⚙️ 엔지니어링 고장 진단 — 부품 추적, 유지보수 로그, AI 보조 트러블슈팅.
  • 📸 멀티모달 분석 — 부상 사진이나 고장 부품 사진을 업로드하면 Gemma가 장치 내에서 분류합니다.
  • 🎓 MPIC 학습 모드 — 승무원 답변을 1~10점으로 채점하는 인터랙티브 의료 시험관.
  • 🧠 Captain Sparky 퀴즈 — 긴 근무시간 동안 승무원 사기를 높이는 해양 퀴즈.
  • 🔄 오프라인 동기화 큐 — 모든 기록이 로컬에 누적되고 선박이 항구에 도착하면 Firebase Firestore로 푸시됩니다.
  • 🌐 실시간 호스팅 데모 (설치 불필요):
    https://vessel-ops.web.app
    (클라우드 프리뷰 모드 — Gemma 4 26B MoE, Google AI Studio 사용. 노란 배너가 클라우드 모드를 나타냅니다.)
  • (3분 피치는 이 글 상단에 삽입되었습니다! 더 깊이 보고 싶다면 Extended Technical Demo를 확인하세요.)
  • 💻 데스크톱 앱 다운로드:
    • GitHub Releases — Windows 설치 파일 (75 MB, 관리자 권한 불필요) 또는 포터블 .zip

Vessel Ops AI

“200마일 바다 위에서 승무원이 부상을 당하면 인터넷도, 의사도, 두 번째 의견도 없습니다. 이 애플리케이션이 바로 두 번째 의견입니다.”
깊은 바다 환경에서 운항하는 선박의 의료 담당자(MPIC)와 수석 엔지니어를 위한 오프라인‑우선 AI 비서. 노트북 하나만 있으면 클라우드나 인터넷 연결 없이도 작동합니다. Gemma 4를 Ollama를 통해 구동합니다.

해커톤 배경

Gemma 4 Good Hackathon (Kaggle × Google DeepMind, 2026년 5월 18일 마감)용으로 제작되었습니다.

시상 목표

  • Ollama 상 ($10k) — Ollama를 통해 Gemma 4를 사용한 최고의 프로젝트
  • 글로벌 레질리언스 상 ($10k) — 오프라인 재난·비상 대응
  • 보건·과학 상 ($10k) — 의료 의사결정 지원
  • 선인장 상 ($10k) — 로컬‑우선 앱 + 지능형 모델 라우팅

배포 환경

  • 노트북 (MacBook, Windows, Linux)
    • Ollama → gemma4:e2b (일반 / 엔진 / 유지보수 / 퀴즈)
    • nswitzer/gemma4-maritime-medical-GGUF (Unsloth 파인튜닝, 의료 라우트에 자동 사용)

GitHub에서 보기

Vessel Ops AI는 단순히 “Gemma를 사용한다”가 아니라, Gemma 자체가 핵심 지능이며 모델 선택은 전적으로 인터넷이 없는 선원의 노트북이라는 배포 제약에 의해 결정됩니다.

Gemma 4 제품군은 세 가지 옵션을 제공했습니다:

모델아키텍처전체 파라미터활성 파라미터평가
E2BDense~2 B2 B✅ 기본 엣지 모델 — 8–16 GB RAM 노트북에 적합
E4BDense~4 B4 B✅ 스케일‑업 모델 — 32 GB 이상 하드웨어에서 더 강력한 추론
26B MoEMixture‑of‑Experts~26 B~4 B✅ 클라우드 프리뷰 — AI Studio를 통한 호스팅 데모에 사용
31BDense~31 B31 B❌ 선박 하드웨어에 과도함

왜 E2B/E4B 소형 모델을 엣지 배포에 선택했는가

해양용 노트북은 보통 2–3년 된 ThinkPad와 같은 중급 기기이며, 8–16 GB RAM에 별도 GPU가 없습니다. 26B MoE는 Q4 양자화 상태에서도 약 16–24 GB VRAM이 필요하고, 31B 모델은 24 GB 이상이 필요합니다. 어느 쪽도 바다에서 사용할 수 없습니다. E2B와 E4B는 바로 이런 제약을 위해 설계된 초경량 엣지 모델입니다.

우리 시스템은 임상 중증도에 따라 지능형 모델 라우팅을 구현합니다:

# backend/ai/ollama_client.py
def _pick_model(self, severity: str) -> str:
    if severity in ("critical", "serious"):
        return self.model_scale    # gemma4:e4b — 깊은 추론
    return self.model_primary      # gemma4:e2b — 빠르고 모든 노트북에 적합
  • 경미한 질의(승무원 활력 기록, 일상 유지보수)는 빠른 E2B 모델이 처리합니다.
  • 중대한 의료 사건심각한 엔지니어링 고장은 E4B로 전환해 더 깊은 추론을 수행합니다(하드웨어가 지원할 경우). 이 라우팅은 생명과 사망을 가르는 로컬‑퍼스트 아키텍처와 완벽히 맞아떨어집니다.

클라우드 데모에 26B MoE를 사용한 이유

vessel-ops.web.app 호스팅 프리뷰는 Google AI Studio의 gemma-4-26b-a4b-it를 사용합니다. MoE 아키텍처는 토큰당 약 4 B 파라미터만 계산하면서도 대형 모델 수준의 지능을 제공해 데모 지연 시간을 낮춥니다. 또한 Google Search 기반 근거를 비활성화해, 클라우드 프리뷰가 오프라인 E2B/E4B 모델보다 인위적으로 더 똑똑해 보이지 않게 했습니다.

Gemma는 이 프로젝트에서 채팅 래퍼가 아니라 다음 세 가지 실제 작업을 수행합니다:

  1. RAG 기반 의료 트리아지 – 모든 주장에 [Source, p. XX] 형태의 인용을 삽입합니다. 이는 크리스가 스스로 깊이 파고들 수 있게 해 주며, 복용량·프로토콜 오류(바다에서 치명적인 실수)를 크게 줄여 줍니다.
  2. 멀티모달 부상·부품 분석
  3. 도메인‑특화 페르소나

이 부분은 프로젝트에서 가장 큰 영향을 미친 엔지니어링 결정이므로 별도 섹션으로 다룹니다.

RAG 레이어 교체 과정

초기에는 ChromaDB + sentence‑transformers를 사용했습니다. 임베딩 모델만 해도 설치 파일에 약 1 GB가 추가됐습니다. 선박에서는 메가바이트 단위도 중요한데, USB 스틱에 담아야 하므로 이는 치명적인 단점이었습니다.

우리는 전체 RAG 레이어를 SQLite FTS5(Python 기본 제공)로 교체했습니다. BM25 랭킹과 Porter 스테머를 사용했으며, 938개의 WHO IMGS 청크는 1.3 MB JSON 파일로 제공돼 첫 실행 시 FTS5 가상 테이블에 로드됩니다. 번들 크기는 ≈99 % 감소했으며, 이 코퍼스에 대한 검색 품질 저하도 눈에 띄게 없었습니다.

BM25가 완벽한가?

아니요. BM25는 동의어 처리에 약합니다. 예를 들어 승무원이 “cut”이라고 입력하면 WHO 매뉴얼의 “lacerations” 섹션을 놓칠 수 있습니다. 일반적으로는 임베딩 기반 밀집 검색이 의미적 격차를 메워 주지만, 우리는 1 GB라는 용량 페널티를 감

0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.