# 모델 갖추기 — 내려받고 띄우기

> **이 장에서 배우는 것**
> 모델 서버를 띄우고 무엇부터 받을지 고르는 순서, **받기 전에** 이 컴퓨터에서
> 되는지 아는 법, 그리고 받고 나서 처음 부딪히는 두 가지.

## 다음 장이 전제하는 것

[내 컴퓨터를 모델 서버로](/guide/ht-model-api)는 이렇게 시작합니다 — "base 주소만
바꾸면 내 컴퓨터의 모델이 응답합니다." 맞는 말인데, **그 모델이 거기 있어야**
성립합니다. 이 장이 그 앞자리입니다.

## 화면은 묶음 셋입니다

**설정 → 모델**에 들어가면 묶음이 셋입니다. 순서에 뜻이 있습니다.

| 묶음 | 답하는 물음 |
|---|---|
| **모델 서버** | 모델을 돌릴 서버가 **어디** 있나 |
| **모델** | 무엇을 깔고, 무엇이 깔려 있나 |
| **바깥에서 쓰기** | 이걸 **어디서** 부르나 |

서버가 맨 앞인 것은 **없으면 가운데가 통째로 뜻이 없기** 때문입니다. 실제로 모델
묶음은 서버에 연결됐을 때만 그려집니다. 서버가 꺼져 있으면 화면의 첫 줄이 곧 다음
할 일입니다.

## 1. 서버 — 둘 중 하나

| 고르는 것 | 무슨 뜻인가 |
|---|---|
| **이 컴퓨터에서 돌리기** | 대시보드가 모델 서버를 **받아서 직접 띄우고 내립니다.** 주소는 고정 |
| **다른 주소에 연결** | 이미 도는 서버에 **붙기만** 합니다 |

두 번째를 골랐다면 **설치·시작·중지는 그 서버를 띄운 자리에서** 해야 합니다.
여기서는 안 됩니다. 팀에 서버가 한 대 있고 여러 사람이 붙는 형태가 이쪽입니다.

원격에서 로컬로 바꾸면 한 번 묻습니다. 지금 붙어 있는 주소와의 연결이 끊기기
때문인데, **직전 주소를 기억해 두므로 곧바로 되돌릴 수 있습니다.**

![모델 서버 묶음](/guide-assets/ht-models-server.png)

"이 컴퓨터에서 돌리기"를 골라 서버를 띄운 상태입니다. 바로 아래에 이 컴퓨터의 메모리가
함께 있고, 그 밑이 뒤에서 볼 **한 번에 읽는 분량**입니다.

## 2. 모델 — 목록이 짧은 이유

이 화면에는 **카탈로그가 없습니다.** 갤러리에는 1600여 개가 있는데 보여주지
않습니다. 프리셋 다섯 개가 그 자리를 맡고, 나머지는 이름을 직접 넣는 칸이 받습니다.

**의도된 것입니다.** 모르는 사람에게 1600개를 보여 주는 것은 도움이 아니고,
모델은 특히 그렇습니다 — **잘못 고르면 수십 GB를 받고 나서야 이 컴퓨터에서 안
돈다는 것을 알게 됩니다.**

검색창이 있지만 브라우징용이 아닙니다. **이미 타이핑한 이름을 좁히는** 용도입니다 —
오타를 고치고 그 이름이 실재하는지 확인하는 자리입니다.

### 프리셋 다섯

| 모델 | 하는 일 | 크기 |
|---|---|---|
| Whisper large v3 turbo | **음성 → 글** | 1.6 GB |
| Fish Speech S2 Pro | **글 → 음성** | ~2 GB |
| Gemma 4 E4B | 대화 | ~4 GB |
| Qwen3.6 35B A3B | 대화 — 더 큼 | ~21 GB |
| Z-Image Turbo | 이미지 생성 | ~7 GB |

**무엇부터 받나요.** 앞뒤 장이 실제로 쓰는 것부터입니다.

```mermaid
graph TD
  A["무엇을 하려고 하나"] --> B["회의록·영상 요약"]
  A --> C["원고를 음성으로"]
  A --> D["분류·태깅·요약"]
  A --> E["이미지 생성"]
  B --> B1["Whisper<br/>1.6 GB — 가장 작다"]
  C --> C1["Fish Speech"]
  D --> D1["Gemma 4 E4B"]
  E --> E1["Z-Image Turbo"]
```

[음성과 이미지 다루기](/guide/ht-voice-image)와
[영상에서 자료 뽑기](/guide/ht-video-collect)가 부르는 것이 각각 첫 줄과 둘째
줄입니다. **가장 작은 것이 가장 자주 쓰입니다.**

## 3. 받기 전에 — 이 PC에서 되는가

설치 버튼을 누르기 전에 **이 컴퓨터에서 되는지 먼저 재 줍니다.** 판정은 넷입니다.

| 판정 | 뜻 |
|---|---|
| 이 PC에서 동작합니다 | 받으세요 |
| **동작하지만 여유가 빠듯합니다** | 됩니다. 다만 아래를 읽으세요 |
| 이 PC에서는 부족합니다 | 더 작은 모델이나 정리가 먼저 |
| 확인하지 못했습니다 | 재지 못했다는 뜻 — 되는지 아닌지가 아닙니다 |

**메모리와 디스크를 따로 봅니다.** 램은 넉넉한데 디스크가 없는 노트북과, 디스크는
비었는데 램이 8GB인 컴퓨터는 **막히는 이유가 다르고 할 일도 다릅니다** — 파일을
지우느냐, 더 작은 모델을 고르느냐. 하나로 뭉뚱그리면 어느 쪽인지 말해 줄 수 없어서
따로 표시합니다.

> **"빠듯합니다"를 가볍게 보지 마세요.** 여유가 필요량의 1.25배 아래면 이 판정이
> 나옵니다. 모델만 메모리에 있는 게 아닙니다 — OS도, 브라우저도, 이 대시보드 자신도
> 이미 쓰고 있습니다. **딱 맞게 들어가는 것은 "된다"가 아니라 "스왑을 시작한다"**
> 입니다.

![설치할 모델과 프리플라이트 판정](/guide-assets/ht-models-presets.png)

같은 컴퓨터인데 위는 "동작합니다", 아래는 "부족합니다"입니다. **필요량과 여유가
나란히 적혀 있어서** 무엇이 모자란지 바로 보입니다.

각 카드의 **"다른 판으로 받기"**는 같은 모델의 더 작은 판을 고르는 자리입니다.
"부족합니다"가 떴을 때 모델을 통째로 포기하기 전에 먼저 볼 곳입니다.

그리고 이 추정치는 **가중치**에 대한 것입니다. 모델을 돌릴 **엔진**은 여기 안
들어갑니다 — 다음 절에서 볼 텐데, 어떤 엔진은 그 자체로 수 GB입니다. 디스크 쪽
판정이 넉넉한 배수를 요구하는 이유입니다.

'그래도 설치'가 있습니다. 다만 **부족 판정에서 그걸 누르는 것이 가장 비싼 실패
방식**입니다 — 수 GB를 다 받고 나서 로드에서 실패합니다.

## 4. 추론 엔진 — 모델을 실제로 돌리는 것

모델 파일만으로는 아무것도 안 됩니다. 그걸 돌리는 프로그램이 따로 있고, 화면에서는
**추론 엔진**이라고 부릅니다.

**직접 고르지 않습니다.** 모델을 설치하면 그 모델에 맞는 엔진이 하드웨어에 맞춰
함께 깔립니다. 알아 둘 것은 둘입니다.

- **모델을 지워도 엔진은 남습니다.** "모델을 지웠는데 디스크가 안 줄었다"의 정체가
  대개 이것입니다.
- '다시 받기'는 **지금 깔린 그 엔진을 그대로** 다시 받습니다. 다른 엔진으로
  바꾸려면 지운 뒤에 다시 받아야 합니다.

![추론 엔진 묶음](/guide-assets/ht-models-engines.png)

엔진 이름 아래에 **어느 이미지에서 왔는지**가 적혀 있습니다. "왜 이게 깔렸지"의
유일한 단서라 그대로 두었습니다. 판만 바꾸고 싶으면 **"다른 빌드로 바꾸기"**가
지우고 다시 받는 수고를 대신합니다.

### GPU를 못 쓰고 있는 엔진

엔진 목록에 경고가 붙을 때가 있습니다 — **GPU를 쓰지 못하고 CPU로 돌고 있다**는
것입니다. 증상은 "느리다"가 아니라 **"요청이 끝나지 않는다"**에 가깝습니다.

> **이때 지우고 다시 받아도 소용없습니다.** 무엇을 받을지가 설치 시점에 정해지고
> 그 판정이 매번 같아서, 다시 받아도 **같은 CPU 판이 옵니다.** 화면의 **'수리 다시
> 실행'**이 이 경우를 위한 것입니다. 수 GB를 다시 받고 아무것도 안 바뀌는 일을
> 피하세요.

## 5. 컨텍스트 크기 — 에이전트 업무의 첫 벽

모델을 받고 나서 가장 먼저 부딪히는 것입니다. 모델 서버는 모델을 **작은
컨텍스트로** 올립니다. 사람이 한두 마디 물어보는 데는 충분한데, **에이전트 업무는
거기 안 들어갑니다.**

작업 폴더의 규칙 파일, 도구 설명, 시스템 지시문만으로 이미 그만큼이고, 파일을 한 번
읽으면 넘어갑니다. 실제 실패는 이렇게 보입니다.

```
request (18457 tokens) exceeds the available context size (8192 tokens)
```

**모델마다 고치는 게 아니라 서버 설정 하나로 넘깁니다.** 그러면 그 뒤에 설치되는
모델까지 전부 따릅니다.

> **바꾼 값은 다음 기동부터입니다.** 화면도 그렇게 알려 줍니다 — 고른 뒤에 서버를
> 한 번 다시 시작해야 실제로 적용됩니다.

### 무조건 크게가 아닌 이유

**컨텍스트는 곧 메모리입니다.** 대화 내용을 담아 두는 캐시가 컨텍스트에 비례해
늘어납니다. 한 모델의 실측입니다.

| 컨텍스트 | 캐시만으로 |
|---|---|
| 8,192 | 1.3 GiB |
| 16,384 | 2.6 GiB |
| 32,768 | 5.3 GiB |
| 131,072 | **21.0 GiB** |

이 모델이 **할 수 있는** 최대는 131,072입니다. 그런데 16GiB 기계에서 그 값으로
올리면 **캐시만 21GiB라 아예 뜨지 않습니다.** 그래서 기본값은 "모델이 할 수 있는
최대"가 아니라 **"업무가 도는 데 충분하면서 흔한 기계에서 안전한 값"**입니다.
올리는 것은 선택이고, 화면이 그 대가를 함께 보여 줍니다.

## 6. 됐는지 확인

설치된 모델 탭에서 **초록 점**은 지금 메모리에 올라가 있다는 뜻입니다. 내려도
파일은 그대로 남습니다 — 지운 것이 아닙니다.

그리고 다음 장이 실제로 쓰는 확인은 이것입니다.

```bash
curl -H "Authorization: Bearer $HT_KEY" \
  http://localhost:27777/api/ai/v1/models
```

여기 이름이 나오면 준비가 끝났습니다. **다음 장의 "모델 이름이 다릅니다"가 바로
이 목록 이야기입니다.**

## 자주 하는 실수

### 제일 큰 것부터 받습니다

21GB짜리를 먼저 받고 안 돌아서 포기합니다. **1.6GB짜리로 되는 일이 대부분**이고,
그게 [음성과 이미지 다루기](/guide/ht-voice-image)·[영상 장](/guide/ht-video-collect)이
쓰는 그것입니다.

### 프리플라이트 경고를 넘깁니다

'그래도 설치'는 판정이 '확인하지 못했습니다'일 때 쓰는 것이지, '부족합니다'일 때
쓰는 것이 아닙니다.

### 컨텍스트를 최대로 올립니다

캐시가 메모리를 먹고 **모델이 아예 안 뜹니다.** 업무가 안 돌 때만 한 단계씩
올리세요.

### 엔진 경고를 보고 모델을 다시 받습니다

수 GB를 다시 받아도 **같은 것이 옵니다.** '수리 다시 실행'입니다.

---

## 확인

**1. 회의 녹음을 글로 바꾸려 합니다. 무엇부터 받습니까?**

<details>
<summary>답</summary>

**Whisper**입니다. 프리셋 중 가장 작고(1.6 GB), 음성→글이 이 가이드에서 로컬
모델을 가장 자주 쓰는 자리입니다. 큰 대화 모델은 그 일에 필요 없습니다.
</details>

**2. "동작하지만 여유가 빠듯합니다"는 무슨 뜻입니까?**

<details>
<summary>답</summary>

**여유가 필요량의 1.25배 아래**라는 뜻입니다. OS·브라우저·대시보드가 이미 메모리를
쓰고 있어서, 딱 맞게 들어가는 것은 되는 게 아니라 **스왑을 시작하는 것**입니다.
</details>

**3. 엔진이 CPU로 돌고 있다는 경고가 떴습니다. 무엇을 합니까?**

<details>
<summary>답</summary>

**'수리 다시 실행'입니다.** 지우고 다시 받으면 같은 CPU 판이 다시 옵니다 — 무엇을
받을지가 설치 시점에 정해지고 그 판정이 매번 같기 때문입니다.
</details>

---

이제 이 모델을 코드에서 부릅니다 →
[내 컴퓨터를 모델 서버로](/guide/ht-model-api)
