프로젝트 소개
Drowse는 대규모 언어 모델의 기계론적 해석 가능성을 위한 로컬 작업대입니다. 로컬 대시보드, Python API, 그리고 OpenAI 및 Ollama 클라이언트와 호환되는 HTTP 서버를 제공합니다.
빠른 시작은 가상 환경에서 소스 체크아웃을 설치하고(`uv pip install -e .`) `drowse serve google/gemma-3-4b-it`로 실행하여 localhost:8000에서 대시보드를 엽니다. 첫 실행 시 모델을 다운로드하고 번들로 포함된 17개의 개념 프로브를 피팅하며, `~/.drowse/` 아래에 저장됩니다. CUDA와 Apple Silicon MPS를 지원하며, 선택적으로 FlashAttention 및 bitsandbytes 양자화 확장 기능이 있습니다.
호스팅된 브라우저 에디션은 온디바이스 WebGPU 추론을 위한 격리된 Svelte PWA로 포함되어 있습니다. README는 그 한계를 솔직하게 밝힙니다: 런타임 및 배포 잠금은 검증된 것으로 표시되지만, 릴리스 검사는 모델 부하 상태에서 GPU 안정성을 보장하지 않습니다. Gemma PT는 매칭된 가중치 수치 불일치가 있고, Qwen 3.5는 여전히 매칭된 양자화 검증이 필요합니다. 장치 검사는 GPU 공급업체와 아키텍처를 보고하고, 기록된 장치 손실이 있는 블록 프로필을 제공하며, 식별된 Intel 9세대 어댑터에서 Windows Chromium을 보수적으로 차단합니다. WebGPU는 추론에 필수이며 클라우드 또는 CPU 전용 폴백이 없고, 프롬프트, 대화, 활성화 및 피팅된 아티팩트는 장치에 유지됩니다.
WebUI는 대화를 분기형 스레드 트리로 구성하며 재생성, 저장/불러오기, 표준 샘플링 제어 기능을 제공합니다. 채팅 모드는 모델 템플릿을 접을 수 있는 생각 및 동적 역할 처리가 포함된 턴으로 렌더링하고, 원시 모드는 기본 모델을 위한 단일 버퍼를 노출합니다. 토큰은 프로브 점수 또는 로그프롭 서프라이즈로 강조 표시할 수 있으며, 토큰을 클릭하면 지오메트리, 로짓(토큰 포크 포함), SAE 및 J-렌즈 뷰가 포함된 상세 서랍이 열립니다. 도구는 Subspace, Manifold, SAE, Lens 탭으로 그룹화되며, 매니폴드 피팅, 병합, 설치, 검사, 제한된 선택 템플릿 점수 매기기, 스티어링 관리, 서버 상태 확인을 위한 추가 분석 도구가 있습니다.
개념은 매니폴드 또는 부분공간으로 추출됩니다: 1D 평면 부분공간은 스티어링 벡터이고, 더 높은 계수의 평면 부분공간은 직교 그룹이며, 곡선 매니폴드는 비선형 표면을 피팅합니다. 번들 프로브는 인식론적, 정렬, 레지스터 및 문화적 개념 쌍을 다루며, 페르소나, 감정, 월을 위한 더 큰 선택 세트도 있습니다. 통합된 스티어링 표현 구문은 Python, YAML, OpenAI, Ollama 및 네이티브 API 전반에서 작동하며, 덧셈/뺄셈, 공유 구성 요소 유지/제거 연산자, 평균 절제, 매니폴드 노드 선택, 토큰 단계 제한, 디코딩 창 제한 및 실시간 프로브 게이트를 지원합니다.
추출 과정은 모델이 각 개념에 대한 기준 프롬프트에 답하도록 한 다음, 은닉 상태를 매니폴드 또는 부분공간에 피팅하며, 계층 할당 및 판별적 계층 선택에 마할라노비스 메트릭을 사용합니다. 모니터링 판독값에는 피팅 좌표, 부분공간 비율, 소프트 할당이 있는 최근접 노드, 곡선 매니폴드의 표면 이탈 잔차가 포함됩니다. Jacobian 렌즈는 발표된 언어화 가능한 작업 공간(verbalizable-workspace) 연구를 따르며, SAE 지원은 공개된 SAELens 릴리스를 사용하거나 로컬 SAE를 훈련할 수 있습니다.
CLI에는 serve, manifold, pack, experiment, config, template, lens, sae의 8개 동사가 있으며 재현 가능한 준비, 배포 및 일괄 작업을 다룹니다. 매니폴드 팩은 로컬 경로에서 설치하거나 Hugging Face 모델 저장소로 배포할 수 있으며, `.drowse` ZIP은 하나의 매니폴드 클로저와 참조된 템플릿을 전달합니다. 피팅된 2노드 PCA 매니폴드는 llama.cpp 컨트롤 벡터 GGUF로 내보낼 수 있습니다. 호스팅된 브라우저 검색은 단일 루트 `.drowse`와 루트 `manifold.json`이 있는 `drowse-manifold` 태그가 지정된 Hugging Face 저장소만 허용하며, 불변 커밋으로 확인하고 선언된 리포지토리와 리비전을 검증합니다.
하나의 `drowse serve` 프로세스는 한 포트에서 네 가지 표면을 노출합니다: WebUI, OpenAI 호환 `/v1/*`, Ollama 호환 `/api/*`, 그리고 세션, 룸 트리, 프로브, 매니폴드, 템플릿, SAE/J-LENS 수명 주기 및 재생, SSE, 토큰+측정 WebSocket을 위한 네이티브 `/drowse/v1/*` API입니다. Python API는 `DrowseSession`을 중심으로 하며 `extract`, `add_probe`, `generate`, `generate_stream`, `generate_batch`, `generate_sweep`, `score_choices`와 노트북 플로팅 헬퍼를 제공합니다.
모델 지원에는 Qwen 2/3/3.5, Gemma 2/3/4, Mistral 3 및 Ministral 3, Llama, GLM, gpt-oss, Talkie에 대한 엔드투엔드 테스트 경로가 포함되며, 추가 아키텍처는 일반적인 잔차 계층 인터페이스를 통해 연결되고 테스트되지 않은 경우 경고가 표시됩니다. README는 Drowse를 강화된 다중 테넌트 서비스보다는 신뢰할 수 있는 로컬 머신 또는 랩 네트워크를 대상으로 한다고 명시하며, 신뢰할 수 있는 호스트를 넘어 바인딩할 경우 API 키, TLS, 속도 제한 및 격리를 권장합니다. 저장소 Python 실행은 기본적으로 비활성화되어 있으며 명시적 동의가 필요합니다. 상태는 `~/.drowse/` 아래에 있으며(`$DROWSE_HOME`으로 이동 가능), 대화 저장은 자동 저장이 아닌 명시적으로 브라우저에서 다운로드한 JSON 파일입니다. 프로젝트는 AGPL-3.0-or-later로 라이선스되며 Representation Engineering, repeng, difference-of-means 추출, Goodfire의 매니폴드 작업, Anthropic의 Assistant Axis 프레임워크, Gurnee et al.의 J-렌즈 방법을 크레딧으로 표시합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.