클라우드 API 없이, 내 노트북 NPU에서 직접 LLM을 실행합니다. 비용도 없고, 데이터도 안 나갑니다.
✅ 핵심 요약
→ Foundry Local은 NPU/GPU/CPU에서 온디바이스 AI 추론을 실행하는 Microsoft의 로컬 런타임입니다 → ONNX Runtime 기반 — 하드웨어를 자동 감지해 NPU 우선, GPU 차선, CPU 폴백으로 실행합니다 → OpenAI 호환 API를 로컬에서 노출 — 클라우드 API와 코드 한 줄 차이로 전환 가능합니다 → 모델 카탈로그 11,000개 이상 — Phi-4, Qwen, DeepSeek, Mistral, Whisper 등 포함 → 모델 alias만 넘기면 하드웨어에 맞는 최적화 변형(NPU variant, CUDA variant)을 자동 선택합니다 → 데이터가 디바이스 밖으로 나가지 않아 민감 데이터 워크플로우에 적합합니다 → Build 2026에서 Aion 1.0(14B, 32K context, tool-calling 내장 SLM) + WSL 3 NPU 패스스루 발표 → Copilot+ PC 기준 최소 40 TOPS NPU 필요 — 미달 시 GPU/CPU 폴백
왜 온디바이스인가
클라우드 LLM API 호출에는 세 가지 비용이 따릅니다. 토큰 비용, 네트워크 레이턴시, 데이터 유출 리스크입니다.
Foundry Local이 해결하는 상황:
상황 클라우드 API Foundry Local
| 사내 코드베이스 분석 | 코드가 외부로 전송됨 | 로컬에서만 처리 |
| 고빈도 반복 추론 (CI 파이프라인 등) | 토큰 비용 누적 | 무제한 무료 |
| 오프라인/에어갭 환경 | 사용 불가 | 완전 동작 |
| 레이턴시 민감한 앱 | 네트워크 왕복 50~200ms | 로컬 수 ms |
아키텍처
┌──────────────────────────────┐
│ 앱 (Python/JS/C#/Rust) │ OpenAI 호환 API
├──────────────────────────────┤
│ Foundry Local SDK │ 모델 관리, 서비스 생명주기
├──────────────────────────────┤
│ ONNX Runtime │ 하드웨어 추상화 레이어
├──────────┬───────────────────┤
│ QNN(NPU) │ CUDA/DirectML(GPU)│ CPU fallback
└──────────┴───────────────────┘
↑
Foundry Model Catalog
(하드웨어별 최적화 variant 자동 선택)
하드웨어별 실행 경로
하드웨어 실행 Provider 비고
| Qualcomm Snapdragon NPU | QNN execution provider | Copilot+ PC 기준 |
| Intel NPU | OpenVINO / WinML | 드라이버 별도 설치 필요 |
| AMD NPU (Ryzen AI) | Vitis AI / WinML | AMD NPU 드라이버 필요 |
| NVIDIA GPU | CUDA execution provider | RTX 시리즈 |
| Apple Silicon | WebGPU → Metal | macOS 지원 |
| CPU (폴백) | CPU execution provider | 항상 사용 가능, 느림 |
설치
# Windows (NPU/GPU 하드웨어 가속 포함, 권장)
pip install foundry-local-sdk-winml
# macOS / Linux, 또는 Windows 하드웨어 가속 제외
pip install foundry-local-sdk
# CLI 설치 (winget)
winget install Microsoft.FoundryLocal
⚠️ foundry-local-sdk-winml과 foundry-local-sdk는 동시 설치 금지 — onnxruntime-core 의존성 충돌 발생
기본 사용법 — Python
1분 안에 모델 실행
from foundry_local import FoundryLocalManager
from openai import OpenAI
# 모델 로드 (alias 사용 — 하드웨어에 맞는 variant 자동 선택)
manager = FoundryLocalManager()
model_info = manager.get_model("phi-4") # NPU가 있으면 NPU variant 자동 선택
# OpenAI 호환 클라이언트로 바로 연결
client = OpenAI(
base_url=manager.endpoint,
api_key="local",
)
response = client.chat.completions.create(
model=model_info.id,
messages=[
{"role": "system", "content": "한국어로 답변하는 코딩 어시스턴트입니다."},
{"role": "user", "content": "FastAPI 헬스체크 엔드포인트 만들어줘"}
],
)
print(response.choices[0].message.content)
스트리밍
stream = client.chat.completions.create(
model=model_info.id,
messages=[{"role": "user", "content": "피보나치 수열 Python 코드 짜줘"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
CLI 사용법
# 모델 카탈로그 조회
foundry model list
# 모델 정보 확인
foundry model info phi-4
# 모델 다운로드 + 인터랙티브 채팅
foundry model run phi-4
# AMD NPU 전용 variant 명시 실행
foundry model run phi-4-mini-instruct-vitis-npu:2
# 캐시된 모델 삭제
foundry model remove phi-4
주요 모델 카탈로그
Alias 크기 특화 NPU 지원
| phi-4 | ~8GB | 범용 추론·코딩 | ✅ |
| phi-4-mini | ~3GB | 경량 빠른 응답 | ✅ |
| phi-3.5-mini | ~2GB | 경량 채팅 | ✅ |
| qwen2.5-7b | ~5GB | 범용 | ✅ |
| qwen2.5-coder | ~0.52GB | 코딩 특화 | ✅ |
| deepseek-r1-7b | ~5GB | 추론·수학 | GPU |
| whisper | ~1.5GB | 음성 인식 | ✅ |
💡 모델 alias를 쓰는 이유 phi-4처럼 alias를 넘기면 Foundry Local이 실행 환경을 감지해 자동으로 최적 variant를 선택합니다. Qualcomm NPU면 QNN variant, NVIDIA면 CUDA variant, 그 외엔 CPU variant를 받아옵니다. 하드웨어마다 코드를 다르게 쓸 필요가 없습니다.
Build 2026 신규 발표 — Aion 1.0
Build 2026에서 Microsoft가 공개한 온디바이스 전용 SLM입니다.
항목 내용
| 파라미터 | 14B |
| 컨텍스트 윈도우 | 32K tokens |
| 기능 | Tool calling 네이티브 지원 |
| 배포 방식 | Copilot+ PC 호환 기기에 OS와 함께 내장 |
| 출시 | 수 개월 내 |
| 최소 요구 | 40 TOPS NPU |
에이전트 워크플로우에서 tool calling이 필요한 온디바이스 태스크를 클라우드 없이 처리할 수 있게 됩니다.
WSL 3 NPU 패스스루
Build 2026에서 WSL 3에 NPU 패스스루가 추가됐습니다. Linux 환경에서 Windows NPU를 그대로 사용할 수 있습니다.
# WSL 3에서 NPU 사용 확인
wsl --version # WSL 3 확인
# WSL 안에서 Foundry Local CLI 실행
foundry model run phi-4-mini
현재 지원 하드웨어:
- Qualcomm Snapdragon X Elite ✅
- Intel Meteor Lake / Lunar Lake ✅
- AMD Ryzen AI — 추후 지원 예정
클라우드 ↔ 온디바이스 하이브리드 패턴
Foundry Local의 핵심 가치는 OpenAI 호환 API입니다. 클라우드와 로컬을 같은 코드로 전환할 수 있습니다.
import os
from openai import OpenAI
def get_client(use_local: bool = False):
if use_local:
# 온디바이스 — 데이터 안 나감, 무료
from foundry_local import FoundryLocalManager
manager = FoundryLocalManager()
model_info = manager.get_model("phi-4")
return OpenAI(base_url=manager.endpoint, api_key="local"), model_info.id
else:
# 클라우드 — 더 강력한 모델
return OpenAI(api_key=os.environ["OPENAI_API_KEY"]), "gpt-4o"
# 민감 데이터 → 로컬
client, model = get_client(use_local=True)
# 복잡한 추론 → 클라우드
# client, model = get_client(use_local=False)
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "이 코드 리뷰해줘: ..."}],
)
하드웨어 요구사항
등급 NPU TOPS 가능한 것
| Copilot+ PC 기준 | 40 TOPS 이상 | Aion 1.0, 전체 온디바이스 기능 |
| 중간급 AI PC | 20~39 TOPS | 소형 모델, 일부 기능 제한 |
| GPU 있는 일반 PC | GPU | CUDA variant로 대부분 동작 |
| GPU 없는 구형 PC | CPU만 | 가능하나 매우 느림 |
💡 내 PC가 해당되는지 확인 Windows 작업 관리자 → 성능 탭 → GPU 항목에서 NPU 표시 여부 확인. 표시되면 온디바이스 가속 사용 가능.
관련 글
'AI 개발' 카테고리의 다른 글
| Claude Code vs Codex 2026 — 실무에서 뭘 써야 하나 (0) | 2026.06.05 |
|---|---|
| WebMCP 완전 가이드 — Google I/O 2026 발표, AI 에이전트가 웹사이트를 쓰는 방식이 바뀐다 (0) | 2026.06.04 |
| LiteLLM Proxy 완전 가이드 2026 — Claude·GPT·Gemini를 하나의 엔드포인트로 묶는 법 (0) | 2026.06.04 |
| 퇴근 후 AI로 앱 만들기 — Lovable·Bolt·Claude로 3개월 안에 사이드 프로젝트 MVP 완성하는 법 (0) | 2026.06.04 |
| Snowflake Cortex Code 완전 가이드 2편 — CLI 실전, dbt 파이프라인 자동화, Claude Code·Kiro 비교 (0) | 2026.06.02 |