클라우드 없이 노트북에서 LLM 돌리는 것, 이제 개발자 혼자 삽질 안 해도 됩니다. Microsoft가 런타임·모델 관리·하드웨어 가속을 한 번에 묶어서 패키지로 줬습니다.
핵심 요약
→ Microsoft Foundry Local, 2026년 4월 GA — Windows·macOS(Apple Silicon)·Linux x64 지원
→ 핵심 가치: 앱에 LLM 기능을 넣을 때 사용자에게 "Ollama 먼저 설치하세요" 없이 그냥 배포 가능
→ 약 20MB 네이티브 라이브러리 — 앱 패키지에 포함해서 배포, 추가 설치 없음
→ OpenAI 호환 API — 기존 openai.ChatCompletion 코드에서 base_url만 바꾸면 즉시 로컬 전환
→ 자동 하드웨어 가속: Intel NPU(OpenVINO)·AMD GPU·NVIDIA CUDA·Qualcomm QNN 자동 선택
→ 지원 모델: GPT OSS·Phi-4·Qwen·DeepSeek·Mistral·Whisper 등 큐레이티드 카탈로그
→ ONNX 기반 런타임 — llama.cpp 대비 평균 3.9배, 장문 시퀀스에서 최대 13.4배 빠름(Microsoft 주장)
→ 클라우드 추론 비용 없음 — 모델 다운로드 후 로컬 실행은 무료
→ 한계: 멀티유저 서버 용도 아님, Foundry 카탈로그 외 커스텀 모델 사용 불가
→ Ollama·LM Studio와 달리 개발자가 앱에 임베드하는 용도에 특화
실전 1 — Foundry Local이 뭔지, 왜 Ollama와 다른가
로컬 LLM 실행 툴은 Ollama·LM Studio도 있는데 왜 Foundry Local이 필요할까요?
기존 문제:
개발자가 앱에 로컬 AI 기능을 넣고 싶을 때:
방법 A — Ollama 사용:
README에 "Ollama를 먼저 설치하세요" 작성
→ 사용자 이탈 발생
→ Ollama 버전 호환 문제
방법 B — llama.cpp 직접 링크:
ONNX Runtime·llama.cpp 직접 통합
GPU 드라이버별 코드 분기 작성
모델 다운로드·캐싱·업데이트 직접 구현
→ 수주 개발 공수
Foundry Local이 해결한 것:
패키지 설치 한 줄 → 앱에 LLM 내장 완료
사용자 입장: 설치 없이 AI 기능 바로 사용
개발자 입장: 하드웨어 분기·모델 관리·드라이버 호환 처리 불필요
Ollama vs LM Studio vs Foundry Local:
Ollama LM Studio Foundry Local
| 주요 용도 | 개인 로컬 AI 서버 | GUI 기반 로컬 LLM | 앱에 LLM 임베드 |
| 설치 방식 | 사용자 직접 설치 | 사용자 직접 설치 | 앱 패키지에 포함 |
| 커스텀 모델 | ✅ GGUF 모두 가능 | ✅ 모두 가능 | ❌ 카탈로그 한정 |
| 멀티유저 서버 | ✅ | ❌ | ❌ |
| 앱 임베드 | △ (별도 설치 필요) | ❌ | ✅ 핵심 기능 |
| 하드웨어 자동 | △ | △ | ✅ 자동 최적화 |
| 런타임 | llama.cpp | llama.cpp | ONNX Runtime |
실전 2 — 설치 및 시작하기
CLI 설치:
# Windows (PowerShell)
winget install Microsoft.FoundryLocal
# macOS (Apple Silicon)
brew install foundry-local
# Linux
curl -fsSL https://foundrylocal.ai/install.sh | sh
첫 모델 실행:
# 사용 가능한 모델 목록 확인
foundry model list
# 모델 다운로드 및 실행
foundry model run phi-4-mini
# → 첫 실행 시 자동 다운로드
# → 이후 실행은 캐시에서 즉시 로드
# 대화 시작
> 안녕하세요, 간단한 Python 코드 작성 도와줄 수 있어?
OpenAI 호환 서버 모드:
# 로컬 서버 시작 (포트 5272)
foundry service start
# 상태 확인
foundry service status
실전 3 — Python SDK로 앱에 임베드
기존 OpenAI SDK 코드를 거의 그대로 사용할 수 있습니다.
기존 OpenAI API 코드:
from openai import OpenAI
client = OpenAI(api_key="sk-...")
response = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "안녕"}]
)
print(response.choices[0].message.content)
Foundry Local로 전환 (변경 최소화):
from foundry_local import FoundryLocalManager
from openai import OpenAI
# 모델 초기화 (앱 시작 시 한 번)
manager = FoundryLocalManager.create(app_name="my-app")
model = manager.catalog.get_model("phi-4-mini")
model.download() # 첫 실행 시만 다운로드
model.load()
# OpenAI SDK와 동일한 방식으로 사용
client = OpenAI(
base_url=manager.endpoint, # 이 줄만 추가
api_key="local" # 로컬이므로 아무 값
)
response = client.chat.completions.create(
model=model.id,
messages=[{"role": "user", "content": "안녕"}]
)
print(response.choices[0].message.content)
JavaScript/TypeScript 버전:
import { FoundryLocalManager } from 'foundry-local-sdk';
import OpenAI from 'openai';
const manager = FoundryLocalManager.create({ appName: 'my-app' });
const model = await manager.catalog.getModel('phi-4-mini');
// 하드웨어에 맞는 최적 variant 자동 선택
await model.download((progress) => {
console.log(`다운로드: ${progress.percent}%`);
});
await model.load();
const client = new OpenAI({
baseURL: manager.endpoint,
apiKey: 'local'
});
const response = await client.chat.completions.create({
model: model.id,
messages: [{ role: 'user', content: '안녕' }]
});
console.log(response.choices[0].message.content);
실전 4 — 지원 모델 카탈로그
카탈로그는 채팅 완성용(GPT OSS, Qwen, DeepSeek, Mistral, Phi 등)과 오디오 전사용(Whisper 등) 모델을 포함합니다. 모든 모델은 소비자 하드웨어에서 최적 성능을 내도록 양자화·압축됩니다.
주요 지원 모델 (2026년 4월 기준):
모델 파라미터 특징 권장 RAM
| Phi-4-mini | 3.8B | Microsoft 경량 모델, 코딩·추론 강함 | 8GB |
| Phi-4 | 14B | 벤치마크 대비 성능 우수 | 16GB |
| Qwen2.5-0.5B | 0.5B | 초경량, 저사양 기기용 | 4GB |
| Qwen2.5-7B | 7B | 균형형 범용 모델 | 8GB |
| Mistral-7B | 7B | 범용 강세 | 8GB |
| DeepSeek-Coder | 6.7B | 코딩 특화 | 8GB |
| GPT OSS 20B | 20B | OpenAI 오픈소스, 추론 강함 | 16GB+ |
| Whisper | 다양 | 음성 → 텍스트 변환 | 4GB+ |
모델 선택 가이드:
노트북 (8GB RAM, NPU 없음):
→ Phi-4-mini 또는 Qwen2.5-0.5B
노트북 (16GB RAM, Apple Silicon M3+):
→ Phi-4 또는 Qwen2.5-7B
데스크톱 (NVIDIA GPU 8GB VRAM):
→ Mistral-7B 또는 DeepSeek-Coder
데스크톱 (NVIDIA GPU 16GB+ VRAM):
→ GPT OSS 20B
실전 5 — 하드웨어 자동 가속이 핵심
Foundry Local은 통합 런타임을 제공합니다. 앱이 캐시된 로컬 모델과 상호작용할 때 성능에 최적화되어 하드웨어 구성에 맞게 조정되며 Intel(OpenVINO), AMD, NVIDIA CUDA, Qualcomm QNN NPU 가속 등 적합한 실행 공급자를 선택합니다. 여러 SDK나 프레임워크를 관리할 필요가 없습니다.
실제로 어떻게 작동하나:
사용자 노트북에 앱 설치
↓
Foundry Local이 하드웨어 스캔
↓
Intel NPU 감지 → OpenVINO EP 선택
AMD GPU 감지 → AMD EP 선택
NVIDIA GPU 감지 → CUDA EP 선택
Qualcomm NPU 감지 → QNN EP 선택
CPU만 있음 → CPU 최적화 모드
→ 개발자는 분기 코드 없이 모든 하드웨어에서 최적 성능
ONNX vs llama.cpp 성능 비교 (Microsoft 공식 주장):
→ 평균 3.9배 빠름 (ONNX 최적화 모델 기준)
→ 장문 시퀀스에서 최대 13.4배 빠름
→ 단, GGUF 양자화 모델과의 직접 비교는 아님 — 조건이 다름
실전 6 — 음성 전사(Whisper) 통합
텍스트 뿐만 아니라 음성 전사도 동일 SDK로 처리할 수 있습니다.
from foundry_local import FoundryLocalManager
from openai import OpenAI
manager = FoundryLocalManager.create(app_name="voice-app")
whisper = manager.catalog.get_model("whisper-base")
await whisper.download()
await whisper.load()
client = OpenAI(
base_url=manager.endpoint,
api_key="local"
)
# 오디오 파일 전사
with open("meeting.mp3", "rb") as audio:
transcript = client.audio.transcriptions.create(
model=whisper.id,
file=audio,
language="ko"
)
print(transcript.text)
→ 회의록 자동화·음성 메모 앱 등에서 클라우드 비용 없이 구현 가능
실전 7 — LangChain·LlamaIndex 연동
OpenAI 호환 서버 모드를 쓰면 기존 LangChain·LlamaIndex 코드도 그대로 사용 가능합니다.
# Foundry Local 서버 시작
# foundry service start (터미널에서)
from langchain_openai import ChatOpenAI
# LangChain에서 Foundry Local 사용
llm = ChatOpenAI(
base_url="http://localhost:5272/v1",
api_key="local",
model="phi-4-mini"
)
response = llm.invoke("이 계약서의 핵심 조항을 요약해줘")
print(response.content)
# LlamaIndex 연동
from llama_index.llms.openai import OpenAI as LlamaOpenAI
llm = LlamaOpenAI(
api_base="http://localhost:5272/v1",
api_key="local",
model="phi-4-mini"
)
실전 8 — Ollama와 함께 쓰는 조합 전략
Foundry Local이 맞는 경우:
✅ 앱에 LLM 임베드해서 배포할 때
✅ 사용자 설치 없이 AI 기능 제공할 때
✅ Windows 생태계 앱 개발 (.NET, WinUI)
✅ 엔터프라이즈 내부 도구 (데이터 로컬 보존)
Ollama가 더 나은 경우:
✅ 개발 중 개인 로컬 LLM 서버
✅ 카탈로그 외 커스텀·파인튜닝 모델 실행
✅ Docker 기반 멀티유저 환경
✅ GGUF 아무 모델이나 바로 쓰고 싶을 때
✅ 써야 하는 경우 / ❌ 한계 알고 가야 할 것
✅ ❌
| Windows·macOS 앱에 AI 기능 내장할 때 | 멀티유저 서버 배포 — vLLM·Ollama 사용 |
| 데이터 외부 전송 없이 AI 기능 필요한 기업 앱 | 카탈로그 외 커스텀 파인튜닝 모델 실행 |
| 오프라인 환경(비행기·폐쇄망)에서 AI 필요 | llama.cpp처럼 GGUF 모든 모델 자유롭게 |
| 클라우드 API 비용 없애고 싶은 고사용량 앱 | 대형 모델(70B+) 실행 — 소비자 하드웨어 한계 |
'LLM' 카테고리의 다른 글
| MiniMax M3 완전 분석 — GPT-5.5 제쳤다는 중국 오픈소스, 벤치마크·가격·보안 총정리 (0) | 2026.06.04 |
|---|---|
| IBM Granite 4.1 완전 분석 2편 — Vision·Speech·Guardian·Embedding 실전, 엔터프라이즈 선택 기준 (0) | 2026.06.02 |
| IBM Granite 4.1 완전 분석 1편 — 8B 모델이 32B MoE를 이긴 이유 (0) | 2026.06.02 |
| DeepSeek V4 Pro 완전 분석 — Claude Opus 4.6 대비 7배 저렴하고 성능은 0.2% 차이 (0) | 2026.06.02 |
| vLLM 0.21 완전분석 — TOKENSPEED_MLA, MTP Thinking budget 수정, Blackwell 최적화 총정리 (0) | 2026.06.01 |