<p align="center">
<a href="https://dynolab.dev"><img src="https://raw.githubusercontent.com/canivel/dynolab/HEAD/docs/assets/banner.svg" alt="Dyno Lab — 당신의 AI 안전 및 정렬 연구소" width="100%"></a>
</p>
<h1 align="center">Dyno Lab</h1>
<p align="center"><strong>모델 행동을 조사하고, 가설을 테스트하며, 변화를 확인하세요.</strong></p>
<p align="center">
<a href="https://github.com/canivel/dynolab/releases/latest"><img src="https://img.shields.io/github/v/release/canivel/dynolab?style=flat-square&color=ccff7a&label=%EB%A6%B4%EB%A6%AC%EC%8A%A4" alt="최신 릴리스"></a>
<a href="https://github.com/canivel/dynolab/actions/workflows/ci.yml"><img src="https://github.com/canivel/dynolab/actions/workflows/ci.yml/badge.svg" alt="CI 상태"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-ccff7a?style=flat-square" alt="MIT 라이선스"></a>
<a href="https://dynolab.dev/guide.html"><img src="https://img.shields.io/badge/macOS-14%2B-242a25?style=flat-square&logo=apple&logoColor=white" alt="macOS 14 이상"></a>
<img src="https://img.shields.io/badge/Apple_Silicon-MLX-242a25?style=flat-square" alt="Apple Silicon 및 MLX">
</p>
<p align="center">
<a href="https://github.com/canivel/dynolab/releases/latest"><strong>Mac용 다운로드</strong></a> ·
<a href="docs/first-experiment.md"><strong>첫 번째 실험 실행하기</strong></a> ·
<a href="https://dynolab.dev">웹사이트</a> ·
<a href="https://dynolab.dev/guide.html">앱 핸드북</a> ·
<a href="https://dynolab.dev/sdk.html">Python SDK</a> ·
<a href="https://dynolab.dev/api.html">HTTP API</a> ·
<a href="https://dynolab.dev/mcp.html">MCP</a> ·
<a href="https://dynolab.dev/coding-tools.html">Claude Code & Codex</a>
</p>
Dyno Lab은 AI 모델을 실행하고 그 동작 방식을 조사할 수 있는 무료 오픈 소스 Mac 앱입니다. 질문을 하거나, 요청(request)을 검사하거나, 내부 활성화 값(internal activations)을 캡처하고, 동일한 시각적 작업 공간에서 가설을 테스트할 수 있습니다. 결과를 저장하거나, 실험들을 비교하거나, SDK 및 API를 사용하여 자동화할 수 있습니다.
Mac에서 모델로 시작하세요. 더 큰 GGUF 모델의 경우, 실험적인 로컬 GPU 풀(local GPU pool)이 Mac과 Windows NVIDIA 워커를 연결할 수 있습니다. 학습을 시작하기 위해 반드시 풀이 필요한 것은 아닙니다.
Watch the question-to-experiment tour in the native app
45초 앱 투어 시청하기 · 첫 번째 실험 실행하기
편집된 투어는 실제 모델 선택, 요청(request), 활성화 값 및 풀 캡처와 저장된 프로브 기록을 결합합니다. 이들은 연속적인 실행이 아닌 개별 실행입니다. 전체 프로브 프로토콜 및 제어.
설명하기: Dyno가 설정합니다 (Describe it; Dyno sets it up)
모든 탭 옆에 있는 Assistant를 열고, 타이핑하거나 말로 무엇을 알아내고 싶은지 말하세요. 이는 Mac의 모델에서 실행되며 작업을 계획합니다. 테스트 내용을 Agents → Setup에 채워주어 사용자가 확인할 수 있게 하고, 무언가를 실행하거나 저장하기 전에 질문합니다. 대화는 Mac에 남아 있습니다.
The assistant set up an agent test in Agents → Setup and is waiting for approval to run it on two models
실제 테스트, 시작부터 끝까지: 서비스가 중단되었고 유일한 해결책이 금지된 관리자 API(forbidden admin API)를 통해 이루어져야 합니다. Qwen3-8B는 4회 실행 중 4회 모두 중단되고 정직하게 보고했습니다. Qwen3.8-27B는 팀원을 만들고 금지된 호스트에 연락했으며, 3회 실행 중 3회 모두 그렇게 했으며 사적으로는 매번 테스트받고 있다고 말했습니다. Dyno의 어시스턴트 · Agents 및 평가(evals) 튜토리얼
사용자의 모델에서 Claude Code와 Codex 실행하기 (Claude Code and Codex on your own models)**
웹 검색을 포함하여 다운로드한 모델에서 Claude Code 또는 Codex를 하나의 명령으로 실행할 수 있습니다. 모델은 Anthropic이나 OpenAI 서버가 아닌 Mac에서 답변하며, Dyno가 이를 제공하고 각 도구의 API를 구사합니다.
dyno launch claude --model qwen3.8-27b
dyno launch codex --model qwen3.8-27b
Claude Code and Codex on your own models
다시 돌아갈 수 있는 연구 자료
모델이나 풀을 시작한 후 Lab → Studies를 엽니다. 질문, 프롬프트, 결과 및 관찰 내용을 하나의 로컬 노트북에 보관하세요. 생각하는 과정과 답변이 스트리밍되는 것을 지켜보고, 수정 사항을 비교하고, 증거를 잃지 않으면서 복잡한 기록들을 정리할 수 있습니다. 토큰 제한이나 불완전한 실행은 조용히 무시되지 않고 눈에 보이게 표시됩니다.
Studies 가이드 · Sycophancy 재현
하나의 모델과 하나의 질문으로 시작하기
- **Apple Silicon DMG 다운로드**를 열고 Dyno를 Applications 폴더로 드래그합니다.
- Dyno를 엽니다. Discover에서 Mac에 맞는 MLX 모델을 다운로드한 다음, Models에서 선택하고 시작합니다.
- Assistant (⌘J)를 열고 테스트하려는 내용을 설명하거나, 메뉴에서 일반 채팅으로 프롬프트를 시도해 보세요. 각 요청은 Execution에서 볼 수 있으며, 첫 번째 활성화 맵을 캡처할 수 있습니다.
Apple Silicon 및 macOS 14+ 필요. Python과 MLX는 번들로 제공되며, 모델 가중치는 별도로 다운로드해야 합니다. 이 제품은 Dyno Lab이며, 설치된 번들은 Dyno.app이고, 명령어는 dyno이며, Python 배포판은 mlx-dyno입니다.
앱 내 업데이트: 수동 확인을 위해 **Dyno Lab → Check for Updates…**를 사용하세요. 다음 빌드는 업데이트가 있을 때만 툴바 배지를 표시합니다. 설치 시 재시작 전 요청이 있습니다. 기존 0.4.2 설치본은 업데이터를 받기 위해 0.4.3으로 수동 업그레이드가 필요합니다. 앱 업데이트를 참조하세요.
0.6.8 다운로드. Agent sandbox tests는 팀 테스트입니다. 선행 에이전트가 규칙을 위반하지 않고 도달할 수 없는 목표를 달성하기 위해 자체 팀원을 생성하며, 숨겨진 Observer가 누가 무엇을 위반했는지, 누가 요청했는지, 그리고 최종 보고서가 로그와 일치하는지 기록합니다. Dyno의 어시스턴트는 Mac에서 모델과 대화하여 테스트를 설정합니다: 찾고 싶은 것을 타이핑하거나 말로 설명하면, 환경과 테스트를 구축하고 실행하기 전에 질문을 합니다. 0.6.7 버전에서는 선택적 웹 검색 기능이 추가되었습니다. Evals는 Inspect AI에서 실행됩니다: 벤치마크를 구축, 가져오거나 선택하여 한 대시보드에 에이전트 테스트와 나란히 볼 수 있습니다. 새로운 탐지기가 자신이 테스트되고 있다고 생각하는 에이전트를 플래그 지정하며, 그 자체의 단어를 증거로 사용합니다. 튜토리얼부터 시작하세요. 0.4.3 버전부터는 Dyno 내에서 업데이트할 수 있으며, 0.4.2 버전 이하에서는 한 번 다운로드해야 합니다. 릴리스 노트.**
어떤 모델 형식을 사용해야 할까요?
| 설정 | 모델 형식 | 지원 기능 |
|---|
| Apple Silicon Mac 하나 | MLX | 로컬 채팅 및 추론, 상주 활성화 캡처, 격리된 Lab 실험. 이것이 가장 간단한 시작점입니다. |
| ... | | |
| MLX와 GGUF 가중치는 상호 교환할 수 없습니다. 격리된 MLX 실험은 다른 모델 복사본을 로드합니다: 상주 캡처 및 풀 리서치는 로드된 가중치를 재사용하지만 여전히 작업 공간이 필요합니다. 실행하기 전에 앱의 준비 상태 추정치를 확인하세요. Pool 호환성 및 설정. | | |
재현 가능한 해석 가능성 예시
모델이 무해한 참조를 때때로 안전 설명과 함께 변경하는 이유는 무엇일까요? Qwen3.8 식별자 충실도 실험 실행: 실제 응답 72개, 제외된 식별자, 저장된 레이어-32 프로브 및 입력 전용 제어가 포함됩니다. 네이티브 Lab 워크스루 시청.
Qwen3.8 identifier-fidelity probe in Dyno Lab
작은 홀드아웃 테스트에서는 2개의 오탐지(false alarms)와 함께 7개의 참조 누락 결과가 포착되었습니다. 토큰 카운트 기반의 기준 모델 역시 좋은 성능을 보였습니다. 이것은 검증된 안전 모니터링이 아닌 탐색적 견고성 실험입니다.
Version 0.2.2에서는 인과 패치 스윕(causal patch sweeps), TopK SAE 실험, Neuronpedia 기능 조회 및 저장된 어텐션/특징/그래프 아티팩트를 추가했습니다. 평가(evaluations), 지원되는 어댑터 및 우선순위 로드맵를 참조하세요.
관찰에서 실험으로 (From observations to experiments)
| 연구 워크플로우 | 할 수 있는 것 |
|---|
| 활성화(Activations) | 레이어 × 토큰 활성화 크기 및 다음 토큰 예측을 탐색합니다. Resident capture는 서비스 모델의 가중치를 재사용합니다. |
| ... | |
| MLX 프로브, 개입(interventions) 및 SAE 훈련은 격리된 워커를 사용하며 추가 메모리가 필요합니다. Pool 실험은 지원되는 포착(captures)과 개입에 위해 Resident GGUF 모델을 사용하고, 코디네이터에서 프로브/SAE 피팅을 수행합니다. Resident capture는 여전히 GPU 용량을 사용하므로 추론을 지연시킬 수 있습니다. 포착 모드 선택 → | |
이것들은 실험적인 연구 도구입니다. 활성화 노름(Activation norms), 토큰 확률, 모델에서 방출되는 사고 과정은 조사하기 위한 관찰일 뿐이며, 안전을 인증하거나 내부 추론의 충실한 설명을 드러내지는 않습니다. 전체 회로 추적(Full circuit tracing) 및 사전 훈련된 SAE 임포트는 현재 포함되어 있지 않습니다.
완벽한 로컬 작업 공간 (A complete local workspace)
| 작업 공간 | 목적 |
|---|
| Lab | 실험, 저장된 연구 및 토큰 분석. |
| ... | |
<details>
<summary><strong >네이티브 앱 보기</strong ></summary>
Model management with launch controls
Token analysis with real model output
Hardware telemetry and inference metrics
</details>
자체 연구 워크플로우 구축하기 (Build your own research workflow)
Python SDK, HTTP API 또는 **로컬 MCP 브리지(local MCP bridge)**를 사용하여 연구를 스크립팅하고 도구를 연결하세요. 자신의 워크플로우에 맞는 인터페이스부터 시작하세요:
로컬 네트워크에서 추론 공유하기
모델을 시작하고 Router를 열고, **로컬 네트워크에서 공유(Share on local network)**를 활성화한 다음 라우터를 시작하고 표시된 URL을 클라이언트에 복사합니다. 공유는 선택 사항이며 인증이 필요하지 않습니다. 신뢰할 수 있는 네트워크를 사용하십시오. 연구 및 실행 엔드포인트는 로컬 전용으로 유지됩니다. 설정 및 문제 해결 →
개발 및 기여
버그 보고, 연구 피드백, 문서 개선, 그리고 집중적인 PR(Pull Request)을 환영합니다. 상당한 변경을 시작하기 전에 CONTRIBUTING.md를 읽어보십시오. 취약점은 SECURITY.md를 통해 비공개로 보고하십시오.
macOS 14 이상이 설치된 Apple Silicon Mac에서 Xcode Swift 툴체인과 uv을 사용하여 빌드합니다:
git clone https://github.com/canivel/dynolab.git
cd dynolab
./app/build.sh
...
전체 빌드는 Python과 MLX를 번들로 사용합니다. 네이티브 UI 반복을 위해서는 ./app/build.sh --slim을 사용하십시오. 로컬 빌드는 기본적으로 임시 서명(ad-hoc signing)을 사용하며, Developer ID 서명, 노타라이제이션(notarization), 릴리스 자격 증명에 대해서는 maintainer handbook를 참조하십시오.
uv sync --locked --extra mcp --extra docs --python 3.12
PYTHONPATH=src uv run --frozen python -m unittest discover -s tests -v
uv run --frozen python scripts/check-docs.py
...
PR은 검토와 Python/네이티브 체크 통과가 필요합니다. 병합(Merging) 시 CI가 실행되며, 보호된 버전 태그를 생성하면 게시 전에 확인을 위한 **초안(draft)**을 만드는 서명된 릴리스 워크플로우가 시작됩니다.
웹사이트는 별도로 유지 관리되며 dynolab.dev에 배포됩니다. 이 저장소는 앱, SDK, API 스키마 및 소스 문서를 소유합니다.
라이선스
MIT 라이선스. SwiftUI, MLX 및 MLX LM으로 구축되었습니다.
GPU 풀로 실험실 확장하기
Qwen3-235B running across a Mac and RTX 5090 in Dyno Lab
128 GiB Mac과 약 32 GiB RTX 5090 워커를 사용하여 Qwen3-235B-A22B Q4_K_M, 142.2 GB 모델을 기록한 실행 결과입니다. 네이티브 활성화(activation), 프로브(probe) 및 SAE 실험도 이 풀에서 완료되었습니다. CPU 출력 텐서가 참여하며, 장치들이 보고하는 여유 용량을 더한다고 해서 모델이 반드시 들어갈 것이라는 보장은 없습니다. 이 모델을 로드하는 데 테스트된 네트워크에서 약 49분이 걸렸습니다. 연결을 확인하려면 작은 GGUF로 시작하세요.