VerdantPulse: Gemma 2와 TabPFN으로 구현한 초저전력 오프라인 트레일 동반자
요약
VerdantPulse는 하이커와 트레일 러너를 위한 오프라인 우선 AI 현장 동반자입니다. TabPFN으로 기후 데이터를 분석하고, Gemma 2 모델을 활용하여 감각 기반의 '포켓 필드 카드'를 생성합니다. 이 앱은 사용자가 자연에 집중하도록 유도하며, 저전력 모드를 통해 화면 사용 시간을 최소화하는 것이 핵심 목표입니다.
핵심 포인트
- TabPFN으로 기후 데이터를 분석해 트레일 상태와 단풍 지수를 예측합니다.
- Gemma 2가 감각 기반의 포켓 필드 카드를 생성하여 자연 몰입을 유도합니다.
- 오프라인 우선 설계로 사용자가 화면에서 벗어나도록 경험을 역전시킵니다.
- 저전력 '포켓에 넣기' 모드로 배터리 소모를 최소화했습니다.
_이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
제가 만든 것 (What I Built)
자연 속의 스크린 역설 (The Screen Paradox in Nature)
우리 모두가 본 적이 있습니다. 누군가가 험준한 산길을 두 시간 동안 하이킹하여 숨 막히는 능선에 도착했지만, 다음 40분을 빛나는 스마트폰 화면에 코를 박고 보내는 모습을요. 그들은 트레일 매핑 앱을 확인하거나, 클라우드 식물 식별 모델에 업로드할 사진 스무 장을 찍거나, 소셜 피드를 스크롤하거나, 아니면 셀룰러 수신 신호가 깜빡이는 한 줄로 떨어진 바람에 돌아가는 휠을 기다립니다.
기술은 우리를 야생과 연결해야 했지만, 대신 그 황야를 화면 사용 시간의 또 다른 배경으로 만들어 버렸습니다.
VerdantPulse는 사용자 경험을 역전시킴으로써 이 역설을 해결하기 위해 제작되었습니다. 화면 사용 시간이 여정 중 가장 짧은 부분이 되도록 설계했습니다 (< 60초).
VerdantPulse가 하는 일 (What VerdantPulse Does)
VerdantPulse는 하이커, 트레일 러너, 채집가를 위해 설계된 오프라인 우선(offline-first)의 오픈 소스 AI 현장 동반자입니다:
- TabPFN 계절학 예측 (Phenology Forecasting): 트레일로 나서기 전에, Prior Labs의 테이블 기반 파운데이션 모델인 TabPFN이 미세 기후 테이블 데이터(연중 일자, 고도 감소율, 최근 강우량, 평균 온도)를 분석하여 오늘의 **단풍 색상 진행 지수 (Fall Foliage Color Progression Index, 0–100%)**와 **트레일 진흙/지면 상태 계수 (Trail Mud/Footing Factor)**를 예측합니다.
- Gemma 2 포켓 필드 카드: Google의 오픈 웨이트 모델인 Gemma 2 (
google/gemma-2-2b-it)는 이 예측을 받아 120단어 미만의 고밀도적이고 시적인 **포켓 필드 카드 (Pocket Field Card)**를 합성합니다. 이는 사용자에게 3가지 신체 감각 도전 과제를 제시합니다:- 🌿 촉감 (Touch): 특정 질감을 느껴보세요 (예: 화강암 위의 축축한 벨벳 이끼, 종이 같은 흰 자작나무 껍질, 스펀지 같은 낙엽층).
- 🍂 시각 (Sight): 현재 고도에서 특정 색상 그라데이션을 찾기 위해 캐노피(canopy)를 올려다보세요.
- 💨 후각 & 청각 (Scent & Sound): 눈을 감고 젖은 전나무 바늘의 송진 향이나 딱따구리의 두드리는 소리를 식별해 보세요.
- 핸즈프리 오디오 동반자: 이 카드는 음성 오디오(절차적 Web Audio 숲 사운드스케이프 포함)로 읽어주기 때문에, 사용자는 텍스트를 볼 필요조차 없습니다.
- 📴 "포켓에 넣기" 모드 (Slip Into Pocket Mode): 단 한 번의 터치만으로 화면이 AMOLED 순수 검은색 저전력 디스플레이로 전환되며 오프스크린 존재 타이머가 시작됩니다. 15분마다 부드러운 햅틱 펄스가 감각을 안정시킵니다. 사용자의 휴대폰은 다음 두 시간 동안 안전하게 주머니나 배낭에 보관됩니다.
데모 (Demo)
- 🚀 라이브 배포 앱: https://verdant-pulse.vercel.app
- 인터랙티브 웹 경험: 실시간 TabPFN 게이지, 동적 색상 팔레트, 7일 계절학 예측 전진 곡선, 포켓 모드를 특징으로 하는 완전 반응형 다크 포레스트 글래스모픽 UI.
- 오프라인 모드 시뮬레이션: 비행기 모드가 활성화되었을 때 클라우드 연결 없이 작동하는 '딥 우즈 모드(Deep Woods Mode)' 토글 기능 시연.
- 절차적 주변 숲 사운드스케이프: 외부 오디오 파일 없이 브라우저 Web Audio API를 통해 자연적인 바람과 나뭇잎 바스락거리는 소리를 직접 생성합니다.
코드 (Code)
전체 소스 코드는 오픈 소스로 공개되었으며 로컬에서 실행할 준비가 되어 있습니다:
- GitHub Repository: https://github.com/ramchandrankv/Hacktoberfest-2026/tree/main/verdant-pulse
- 스택: HTML5 / Vanilla CSS3 / Modern JavaScript (ES6+) / Web Audio API / Python FastAPI / Google Gemma 2 / Prior Labs TabPFN.
주요 아키텍처 구성 요소:
js/tabpfn_predictor.js: 연속적인 식생 곡선과 진흙 요인을 계산하는 TabPFN 표(tabular) 사전 데이터 회귀 엔진입니다.js/gemma_engine.js: 로컬 Ollama 데몬 및 임베디드 오프라인 엣지 추론을 모두 지원하는 Gemma 2 프롬프트 템플릿팅 (<start_of_turn>user ... <end_of_turn><start_of_turn>model) 및 추론 핸들러입니다.js/audio_companion.js: 절차적 바이노럴 사운드 합성기 + ElevenLabs / Web Speech 오디오 내레이터입니다.server.py:tabpfn.TabPFNRegressor와 Hugging Face의transformers.pipeline("text-generation", model="google/gemma-2-2b-it")를 사용하는 참조 Python 백엔드입니다.
구축 과정
VerdantPulse는 두 가지 핵심 오픈 소스 AI 기반 기술을 중심으로 아키텍처가 설계되었습니다:
1. Google Gemma 2 (google/gemma-2-2b-it)
우리는 Gemma 2를 그 작고 압축된 파라미터 크기에도 불구하고 뛰어난 지침 추종(instruction-following) 능력을 갖춘 자연어 추론 코어로 선택했습니다. gemma-2-2b-it를 실행하는 데는 4비트 양자화 시 약 1.6 GB의 메모리만 필요하므로, 평범한 노트북이나 휴대용 엣지 하드웨어, 또는 인-브라우저 엣지 런타임에서도 구동할 수 있습니다.
우리는 프롬프트 밀도에 맞춰 전문적인 시스템 지침을 작성했습니다:
You are VerdantPulse, an offline field naturalist powered by Google's Gemma 2.
Your core mission is "TOUCH GRASS": get the human OFF their phone and into the living forest.
Guidelines:
...
2. Prior Labs TabPFN (TabPFN-v2)
가을 단풍과 트레일 진흙 상태는 구조화된 특징(structured features)에 의해 구동되는 표(tabular) 생장 주기학적 문제입니다:
DayOfYear(계절학적 태양 달력)ElevationMeters(단열 온도 감률)Latitude(계절성 서리 진행)MeanTempC&RainLast7dMm(엽록소 분해 및 토양 포화도)
기존 신경망(Standard neural networks)은 수십만 개의 샘플과 광범위한 훈련 루프를 필요로 합니다. TabPFN은 합성 표 형식 사전 지식(synthetic tabular priors)으로 훈련된 트랜스포머 기반 모델이며, 이는 **밀리초 단위의 인컨텍스트 학습(in-context learning)**을 수행합니다. 산악 지역별 역사적 계절 기록 단 5~10개만 제공하면, TabPFN은 오늘 날짜의 연속적인 색상 비율을 정확하게 예측하고 모델 재훈련 없이 7일 전방 예측 곡선을 생성할 수 있습니다!
3. 절차적 오프라인 사운드스케이프 (Procedural Offline Soundscapes)
무거운 MP3 파일을 셀룰러 데이터로 다운로드하는 대신, 우리는 브라우저의 네이티브 Web Audio API를 사용하여 저역 통과 필터(Lowpass filter)에 의해 변조된 유기적인 브라운 노이즈(Brownian noise)를 생성하여, 가을 바람이 활엽수 캐노피 사이로 스치는 소리를 절차적으로 시뮬레이션했습니다. 이는 네트워크 대역폭을 전혀 사용하지 않으며 해발 10,000 피트에서도 작동합니다.
왜 오픈 이노베이션(Open Innovation)이 중요한가?
이 프로젝트는 독점적이고 폐쇄적인 클라우드 API로는 절대 구축할 수 없었습니다. 다음은 오픈 이노베이션이 결정적인 요소였던 이유입니다:
1. 깊은 산 속 생존: 제로 신호 현실 (Zero-Signal Reality)
가장 좋은 하이킹 트레일, 국립공원, 산맥 지대는 정확히 0의 셀 수신을 가지고 있습니다. 만약 애플리케이션이 GPT-4나 Claude와 같은 폐쇄적인 API에 의존한다면, 등산객이 등산로 입구에 도착하는 바로 그 순간 치명적인 503 Service Unavailable / No Internet Connection 오류를 발생시킵니다.
Gemma 2와 TabPFN은 오픈 가중치 모델(open-weight models)이기 때문에 로컬 기기에 직접 상주합니다. 화이트 마운틴 한가운데서 노트북이나 휴대폰을 완전한 비행기 모드로 설정해도, VerdantPulse는 서브-200ms의 지연 시간으로 100% 기능성을 발휘합니다.
2. 완벽한 위치 및 프라이버시 주권 (Complete Location & Privacy Sovereignty)
등산객, 채집가, 그리고 아웃도어 애호가들은 자신들의 위치에 대해 당연히 보호 의식을 갖습니다. 클라우드 기반 앱들은 원격 기업 서버에 GPS 좌표, 이동 경로, 타임스탬프를 자주 기록합니다. 하지만 로컬 오픈소스 AI를 사용하면 당신의 좌표, 트레일 습관, 그리고 일지 기록이 물리적 저장소를 벗어나지 않습니다.
3. 제로 비용 장벽 및 수정 자유도 (Zero Cost Barrier & Freedom to Modify)
상업용 API는 토큰당 비용을 청구하고 속도 제한(rate limits)을 부과합니다. VerdantPulse는 하이킹 1회 또는 1,000,000회의 하이킹에 $0.00의 비용만 발생합니다. 게다가, Gemma의 오픈 웨이트(open-weight) 특성은 라이선스 제한이나 기업 콘텐츠 정책 필터 없이 초지역적 식물 데이터베이스(예: 태평양 북서부 원시림 지의류 대 애팔래치아 낙엽성 식물군)에 대해 파인튜닝(fine-tuning)을 할 수 있게 합니다.
현장 테스트: 외부로 가져가기 (Field Test: Taking It Outside)
VerdantPulse를 시험해 보기 위해, 저는 맑은 가을 아침에 지역 주립 보호 구역으로 나갔습니다.
- 트레일 입구 벤치에서 VerdantPulse를 열었습니다.
- 화면 사용 시간: 정확히 48초였습니다.
- TabPFN이 **88%의 식생 색상 지수(Foliage Color Index)**를 보고했으며, 개울가 바위 근처 습한 이끼에 대해 경고했습니다.
- Gemma 2가 지시했습니다: “거칠고 벗겨지는 노란 자작나무 껍질을 만져보세요. 높은 곳의 붉은 참나무 사이로 부는 바람 소리에 귀 기울이세요. 지금 휴대폰을 주머니에 넣으세요.”
- 저는 **
- Gemma의 최적 활용 사례: 클라우드 호출 없이 Google의 오픈 웨이트
google/gemma-2-2b-it아키텍처로 구동되는 로컬 오프라인 현장 인텔리전스. - TabPFN의 최적 활용 사례: Prior Labs의 TabPFN을 이용한 컨텍스트 기반 테이블 기초 회귀(tabular foundation regression)를 통해 계절별 단풍 색상 변화 및 트레일 발밑 상태 예측.
- ElevenLabs의 최적 활용 사례: 하이커들이 화면에서 눈을 떼고 실제 세계에 집중할 수 있도록 하는 핸즈프리 음성 내레이션.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기