Curso / Lição 08
Lição 08 · A máquina

A config do M5 Max

As sete lições anteriores derivaram os princípios; esta os transforma numa máquina concreta. Você tem 128 GB de memória unificada e dois workloads: um cérebro de coding/agente (o DeepSeek-V4-Flash q2, 81 GB) e visão ocasional (o Qwen3-VL, ~20 GB). No fim, você vai saber exatamente o que cabe, por que os dois não moram juntos na GPU, e como religar o funil do Alembic para o cérebro local.

Leia primeiro (fonte primária)
Ahmad Osman — "My Homelab Is Technically the Cloud Now"

Esta lição destila o raciocínio do Ahmad sobre memória unificada + nós independentes e cruza com medições reais neste M5 Max. Por que importa pra missão: é a planta da máquina que serve o cérebro local do Alembic — o que carregar, quanto ocupa, e como não estourar a RAM.

0 GB
memória unificada do M5 Max
0 GB/s
banda de pico (piso 460)
81+0 GB
cérebro (DS4) + visão (Qwen3-VL)
0
a porta do funil → DS4
Objetivos desta lição
  • Fazer o orçamento de memória desta máquina de cabeça (pesos + KV + visão + SO ≤ 128 GB) e saber quando estoura.
  • Explicar por que a memória unificada (CPU+GPU+ANE no mesmo pool) torna um modelo de 81 GB viável num laptop — e por que isso é uma faca de dois gumes.
  • Decidir entre passes sequenciais, co-residência e segundo Mac quando cérebro e visão competem pelos 128 GB.
  • Religar o funil do Alembic ao DS4 local com uma única variável de ambiente.

00 · O que vamos resolver

Antes de mergulhar nos números, o mapa da lição. Há uma máquina (128 GB de memória unificada) e dois workloads que a disputam — o cérebro de coding e a visão ocasional. As cinco seções seguintes são, na verdade, uma única pergunta vista de cinco ângulos: como caber tudo sem estourar a RAM? O diagrama abaixo é o fio condutor — cada caixa vira uma seção.

O MAPA DESTA LIÇÃO · da pergunta de capacidade ao funil religado
A PERGUNTA cabe tudo em 128 GB? §01 · o orçamento a soma que decide §02 · a pilha onde cada byte vive §03 · cérebro vs visão o nó central §04–05 · religar funil → DS4 · 2º Mac cérebro local servindo · $0

Cada caixa cinza/sky/clay é uma seção desta lição. Guarde o fio: tudo desemboca em cérebro local servindo a custo zero.

01a · Memória unificada — CPU, GPU e ANE no mesmo pool

Para entender por que a soma da próxima seção é tão implacável, primeiro entenda a peça de hardware que muda tudo: no Apple Silicon, CPU, GPU e ANE (Apple Neural Engine) não têm cada um a sua memória — eles compartilham um único pool de 128 GB. É o oposto de um PC com GPU discreta, onde a placa tem a sua própria VRAM separada da RAM do sistema. Esse desenho é o que permite carregar um modelo de 81 GB num laptop; é também por que tudo divide o mesmo teto.

A analogia da mesa. Pense numa mesa de trabalho única de 128 unidades de área. A CPU, a GPU e a ANE são três artesãos que trabalham na mesma mesa: qualquer um pega a peça onde ela já está, sem precisar copiá-la para a sua própria bancada. Numa GPU discreta, cada artesão tem a sua bancadinha — e a peça precisa ser carregada de uma para outra antes de usar. Rápido para começar (a mesa é compartilhada), mas a mesa é finita: encheu, ninguém mais trabalha.
Por dentro. O M5 Max usa LPDDR5X soldado num barramento largo, dando 460–614 GB/s de banda compartilhada (Lição 03). CPU/GPU/ANE acessam o mesmo espaço de endereçamento físico — daí "memória unificada". Não há cópia host→device pela PCIe: a GPU lê os pesos onde o mmap os mapeou. O preço é que o KV cache, as ativações, o macOS e os pesos competem pelo mesmíssimo pool — o orçamento da §01 não é uma metáfora, é aritmética de endereços. [uncertain]: a participação exata da ANE na inferência de LLM via MLX varia por build; o MLX hoje roda majoritariamente na GPU.
ARQUITETURA DESTA MÁQUINA · três processadores, um pool de 128 GB
SoC · Apple M5 Max (um único chip) CPU orquestra · tokenização amostragem · I/O GPU matmuls da inferência onde o DS4 roda (MLX) ANE Neural Engine aceleração dedicada barramento compartilhado · 460–614 GB/s MEMÓRIA UNIFICADA · 128 GB o MESMO espaço físico para os três · sem cópia host→device pesos · KV cache · ativações · macOS competem aqui SSD NVMe · rede de segurança (mmap pagina pesos · KV em disco) — NÃO é RAM

As setas pulsam de cada processador para o mesmo pool. Numa GPU discreta haveria uma cópia PCIe entre dois pools separados — é exatamente o que a próxima figura compara.

Unificada vs. discreta — por que isso importa

A diferença não é acadêmica: ela decide se um modelo grande é viável. Veja os dois desenhos lado a lado — repare na cópia que existe num e não existe no outro:

MEMÓRIA UNIFICADA (M5 Max) vs GPU DISCRETA · o caminho dos pesos até a GPU
✓ UNIFICADA · M5 Max GPU pool unificado · 128 GB pesos do DS4 (81 GB) moram aqui lê direto — zero cópia 81 GB cabe ✓ · a GPU vê todo o pool ✗ DISCRETA · PC + placa GPU VRAM 24 GB RAM sistema os 81 GB começam aqui cópia PCIe VRAM da placa: só 24 GB 81 GB NÃO cabem — modelo nem carrega na GPU 81 GB ✗ · precisaria de 4 placas — ou sai da GPU

À esquerda, a GPU lê os 81 GB onde já estão. À direita, os pesos teriam de caber numa VRAM pequena (24 GB num exemplo típico) e ainda pagar a cópia PCIe. É por isso que este modelo, neste laptop, é possível.

01 · O orçamento de memória é uma soma

Tudo nesta config é decidido por uma conta de adição. Diferente de uma GPU dedicada, no Apple Silicon a CPU e a GPU dividem a mesma memória unificada — então pesos do modelo, KV cache, buffers de ativação e o macOS inteiro disputam os mesmos 128 GB. O DeepSeek q2 são 81 GB de pesos residentes; o KV cache cresce com o contexto (poucos GB a 100k tokens, ~26 GB no extremo de 1M); o sistema reserva ~18 GB; e a Lição 02 já gravou a regra: deixe 10–20% de folga.

Deixe 10 a 20 por cento de folga. Rodar a 99% da VRAM é implorar por out-of-memory e falhas de fragmentação.— Ahmad Osman, "LLMs 101 (2026)"

Monte o orçamento você mesmo

Arraste os quatro controles e veja a soma cruzar (ou não) o teto. A barra fica verde abaixo da linha de folga de 80% (~102 GB) e vermelha acima — exatamente como o medidor da Lição 02, mas agora com cada componente real desta máquina:

0 teto seguro 80% (102 GB) 128 GB 107 GB

Laranja = pesos · oliva = KV · âmbar = visão · cinza = macOS. Repare: com a visão em 0, sobra folga confortável; ligue os 20 GB de visão e a soma encosta no teto — o nó da seção 03.

01b · Faça o orçamento passo-a-passo

O slider acima dá a intuição; agora a conta explícita, do jeito que você faria de cabeça antes de carregar qualquer coisa. Cada passo soma uma fatia; o objetivo é terminar abaixo dos ~102 GB (teto seguro de 80%).

Preveja antes de revelar
Você tem 128 GB. Soma os pesos do cérebro (81), o KV de um contexto médio (~8) e o macOS (~18). Quantos GB sobram livres — e ainda dá para encaixar a visão (20 GB) sem cruzar o teto seguro de 102 GB?
Sobram 21 GB livres (81+8+18 = 107; 128−107 = 21). A visão de 20 GB tecnicamente caberia nos 21 livres — mas isso te joga a ~127 GB, muito acima do teto seguro de 102 GB. Por isso a resposta honesta é: não co-resida. Esse é exatamente o nó da seção 03.
Orçamento do M5 Max · passo a passo (contexto médio, só o cérebro)
1
Pesos do cérebro. DeepSeek-V4-Flash q2 = 81 GB residentes (o GGUF real; a fórmula limpa daria 71 — a diferença é o Q8 das camadas críticas, Lição 02). Subtotal: 81.
2
KV cache. Num contexto médio (~100k tokens) o KV é de poucos GB; use ~8 GB como estimativa de trabalho (Lição 06). Subtotal: 81 + 8 = 89.
3
macOS + apps + ativações. Reserve ~18 GB para o sistema e os buffers temporários de cada passo. Subtotal: 89 + 18 = 107.
4
Compare com o teto. 107 GB > 102 GB (80%)? Sim, por pouco — mas 107 ainda está longe dos 128 e estável na prática para o cérebro sozinho. Folga real: 128 − 107 = 21 GB. ✓ roda.
5
Agora você tenta. Refaça com um contexto longo (KV ~26 GB no extremo de 1M): 81 + 26 + 18 = 125 GB. Cruza o teto seguro e encosta no absoluto → é aqui que você corta contexto ou derrama o KV pro disco (--kv-disk-dir).
A SOMA ACUMULANDO · cada passo empilha sobre o anterior (contexto médio)
0 teto seguro 102 GB 128 GB pesos 81 KV 8 macOS 18 livre 21 Total ≈ 107 GB · cérebro sozinho roda com folga de 21 GB. Some os 20 GB de visão aqui e a barra cruzaria a linha clay — o motivo de não co-residir.

02 · A pilha de memória, peça por peça

O orçamento da seção 01 é a soma; esta seção abre a caixa e mostra onde cada byte vive. A memória unificada não é um bloco amorfo — ela hospeda camadas com papéis distintos, e abaixo dela está o SSD, que serve de rede de segurança (mmap e KV em disco). O diagrama anima de baixo para cima conforme entra em foco:

A PILHA DESTA MÁQUINA · memória unificada (128 GB) sobre o SSD
MEMÓRIA UNIFICADA · 128 GB · 460–614 GB/s (CPU e GPU compartilham) Pesos do cérebro · DeepSeek-V4-Flash q2 81 GB residentes — carregados via mmap; a maior fatia, sempre presente 81 GB KV cache · a memória de trabalho da conversa cresce com o contexto: ~poucos GB a 100k · ~26 GB no extremo de 1M (Lição 06) ~8–26 GB macOS + apps + ativações piso a preservar (~18 GB) + buffers temporários de cada passo do modelo ~18 GB SSD NVMe · rede de segurança (não é RAM) mmap pagina os pesos sob pressão · --kv-disk-dir derrama o KV pro disco quando o contexto explode
Por que "unificada" muda o jogo
Numa GPU discreta, pesos viajam pela PCIe da RAM do sistema para a VRAM. No M5 Max não há cópia: a GPU lê os pesos onde eles já estão. É isso que deixa um modelo de 81 GB viável num laptop — mas é também por que tudo divide o mesmo teto, e por que a soma da seção 01 é implacável.

02b · M5 Max vs M4 Max vs caixa de GPU discreta

Você não escolhe esta máquina no vácuo — escolhe contra as alternativas. Três caminhos rodam LLM local: o M5 Max (128 GB) desta config, o M4 Max (36 GB) que serve de segundo nó (seção 05), e uma caixa de PC com GPU discreta (ex.: uma RTX de 24 GB). A diferença decisiva não é "qual é mais rápido" — é quanto modelo cada um consegue segurar, porque o que não cabe não roda. Primeiro a tabela, depois dois diagramas que tornam o trade-off visível.

EixoM5 Max (esta config)M4 Max (2º nó)PC + GPU discreta 24 GB
Memória p/ o modelo128 GB unificada36 GB unificada24 GB VRAM (+ RAM separada)
Banda460–614 GB/smenor (M4 Max)~1 TB/s na VRAM, mas só p/ o que cabe nela
Cabe o DS4 q2 (81 GB)?Sim ✓Não — grande demaisNão — 81 ≫ 24
Cópia host→device?Nenhuma (unificada)Nenhuma (unificada)Sim — PCIe RAM→VRAM
EnergiaLaptop · dezenas de WLaptop · dezenas de WWorkstation · centenas de W
Papel nesta configo cérebro (DS4)nó de visão (Qwen3-VL)fora — não segura o cérebro

Bandas e papéis: docs/local-models-macbook.md. A banda de ~1 TB/s da VRAM discreta é real, mas só vale para o modelo que couber nos 24 GB — e o DS4 não cabe. [uncertain]: a banda exata do M4 Max e a da RTX citada não foram medidas nesta sessão; trate como ordem de grandeza.

Quanto modelo cada um segura

O eixo que decide tudo é a memória disponível para os pesos. Veja as três capacidades na mesma escala, com a linha do DS4 (81 GB) cruzando por cima — só uma barra ultrapassa:

MEMÓRIA PARA O MODELO · M5 Max vs M4 Max vs GPU discreta (linha = DS4 81 GB)
DS4 = 81 GB (precisa caber aqui) M5 Max 128 GB ✓ segura o DS4 M4 Max 36 GB ✗ (ótimo p/ visão) GPU 24 GB 24 GB VRAM ✗ Só a barra do M5 Max passa da linha clay. É literalmente por isso que o cérebro mora nele — e não nas alternativas.

O trade-off em três eixos

Capacidade não é tudo: banda e energia também contam. Este diagrama de barrinhas relativas resume os três eixos de uma vez — cada coluna é uma máquina, cada linha um eixo (barra mais cheia = melhor naquele eixo):

PERFIL COMPARATIVO · capacidade vs banda-útil vs eficiência energética (relativo)
M5 Max M4 Max GPU 24 GB Capacidade Banda útil (p/ o que cabe) Eficiência ⚡ Leitura: a GPU discreta vence em banda bruta, mas só para o modelo que cabe nos 24 GB — e o DS4 não cabe. O M5 Max ganha onde esta missão precisa: capacidade para segurar o cérebro inteiro + eficiência de laptop. (barras relativas, não medidas)
A conclusão do comparativo. Para este workload (um modelo de 81 GB), capacidade vence banda: a placa mais rápida do mundo não ajuda se o modelo não cabe nela. O M5 Max é a única das três que segura o cérebro inteiro num pool só — e ainda como laptop. O M4 Max não fica de fora: ele vira o nó de visão na seção 05.

03 · Cérebro e visão não cabem juntos na GPU

Aqui está a decisão central da config. O instinto é deixar os dois modelos carregados o tempo todo — cérebro pronto, visão pronta. Mas faça a soma: 81 (DS4) + 8 (KV) + 20 (Qwen3-VL) + 18 (macOS) ≈ 127 GB. Isso não só cruza a linha de folga de 80% (102 GB) — encosta no teto absoluto. Na prática, tentar manter os dois residentes na GPU ao mesmo tempo provoca page fault: o sistema começa a paginar pesos pro SSD no meio da geração, e a velocidade despenca (ou o processo morre por OOM).

Clique no botão para ligar a co-residência e veja a soma estourar — depois compare com a alternativa que sempre funciona: passes sequenciais (rode um, descarregue, rode o outro):

PASSE A — cérebro servindo · pico ≤ 101 GB DS4 81KV 8macOS 18 · livre 21 PASSE B — chega imagem: pausa DS4, carrega Qwen3-VL · pico ~46 GB Qwen3-VL 20macOS 18 · folga enorme ✓ nunca cruza o teto · custo = recarregar o DS4 (mmap, segundos) ao voltar
CO-RESIDÊNCIA — DS4 + Qwen3-VL na GPU ao mesmo tempo teto seguro 102 GB DS4 81KV8Qwen 20OS18 ⚠ ≈127 GB — page fault: o sistema pagina pesos pro SSD no meio da geração → OOM / colapso de velocidade
Por isso o default é sequencial. A visão neste curso é esporádica (descrever uma imagem aqui e ali), então pagar segundos de recarga do DS4 quando uma imagem chega é trivial perto de viver no limite dos 128 GB. Se a visão fosse constante, a saída é o segundo Mac (seção 05) — não a co-residência.

03b · Fluxograma: chegou uma imagem — o que fazer?

A regra de não-co-residência não é dogma: é o resultado de uma decisão que você pode seguir como um fluxograma. Toda vez que uma imagem chega enquanto o cérebro serve, o sistema (ou você) percorre estas perguntas. Acompanhe os losangos de decisão — cada "sim/não" leva a um caminho diferente, e só um deles arrisca o OOM:

DECISÃO · cérebro servindo + imagem chega → sequencial, 2º Mac, ou (raramente) co-residir
imagem chega (cérebro está servindo) visão é frequente? sim 2º Mac (TB5) visão sempre pronta · §05 não soma cabe ≤ 102 GB? não (quase sempre) passes sequenciais ✓ descarrega cérebro · roda visão sim (raro) co-residir ⚠ só se sobra real > 20 GB cuidado: page fault / OOM se errar a conta

Repare: o caminho verde (sequencial / 2º Mac) é o que o sistema toma quase sempre. Co-residir (clay tracejado) só aparece quando a soma cabe de verdade — e por isso é a exceção, não a regra.

04 · Religando o funil do Alembic ao DS4

Carregar o cérebro é metade do trabalho; a outra metade é fazer o Alembic falar com ele. Por padrão o funil aponta para o gateway cliproxyapi. Para redirecioná-lo ao DeepSeek local, basta uma variável de ambiente: ALEMBIC_CLIPROXY_URL=http://127.0.0.1:8000. O DS4 expõe um endpoint OpenAI+Anthropic-compatível nessa porta, então nada mais no pipeline precisa mudar — as mesmas chamadas, agora servidas localmente, a custo zero.

Acompanhe o fluxo de uma requisição. Clique em Local para ver a flecha religar do gateway remoto para o DS4 na porta 8000:

funil do Alembic h.agent() / distill ALEMBIC_CLIPROXY_URL (default → gateway remoto) gateway remoto cliproxyapi · $ / rede DS4 local 127.0.0.1:8000 OpenAI+Anthropic · $0

A wiring, em uma linha
ALEMBIC_CLIPROXY_URL=http://127.0.0.1:8000 alembic distill <corpus> — o funil agora roteia tudo pro DeepSeek local. Combine com --offline quando quiser o caminho hermético de $0 sem nem tocar a rede. (Troubleshooting: fetch failed = a porta 8000 não está servindo — suba o ds4-server antes.)

04b · Por dentro do gateway (Simples / Técnico)

A variável de ambiente da seção 04 é só a ponta visível. Vale entender o que ela realmente faz — primeiro a versão simples, depois o ciclo de vida técnico de uma requisição. Use as abas:

Em uma frase. O funil do Alembic fala "HTTP de chat" (formato OpenAI/Anthropic). Por padrão ele liga para um número na nuvem (o gateway cliproxyapi); a variável de ambiente só troca o número que ele disca para 127.0.0.1:8000 — o seu próprio Mac. Como o DS4 atende nesse mesmo "idioma", nenhum outro pedaço do código percebe a diferença. Mesma chamada, agora local e a custo zero.
O ciclo de vida. O cliente constrói o request → o adapter lê ALEMBIC_CLIPROXY_URL e resolve o base URL → POST /v1/chat/completions (ou o endpoint Anthropic) chega ao ds4-server em :8000 → o servidor enfileira, roda a inferência na GPU (pesos já residentes via mmap) e faz stream dos tokens de volta → o funil agrega a resposta e segue o pipeline. O contrato de I/O é idêntico ao remoto; só o host/porta mudam. Falha comum: fetch failed = nada escutando em :8000 (suba o servidor antes).
CICLO DE VIDA DE UMA REQUISIÇÃO · funil → adapter → DS4 :8000 → stream de volta
funil monta o request adapter lê ALEMBIC_CLIPROXY_URL resolve base URL ds4-server :8000 enfileira · inferência GPU · pesos via mmap stream de tokens funil agrega · segue pipeline a resposta volta pelo mesmo contrato — só o host:porta mudou em relação ao remoto

05 · O segundo Mac como nó de visão (TB5)

Se a visão for frequente o bastante para que recarregar o DS4 a cada imagem incomode, a saída não é a co-residência arriscada — é dar à visão a sua própria máquina. O M4 Max de 36 GB, ligado por Thunderbolt 5, roda o Qwen3-VL com folga (~20 GB em 36) num endpoint independente. O cérebro fica com o M5 Max inteiro; a visão fica sempre pronta no segundo nó; zero swap, zero contenção. É a leitura do Ahmad — "use os dois como nós independentes" — em vez de tentar fatiar um modelo entre eles.

DOIS NÓS INDEPENDENTES SOBRE THUNDERBOLT 5 · cérebro num Mac, visão no outro
MacBook Pro M5 Max 128 GB · 460–614 GB/s DS4 · DeepSeek-V4-Flash q2 127.0.0.1:8000 · o cérebro MacBook Pro M4 Max 36 GB · nó de visão mlx_vlm.server · Qwen3-VL <ip>:8081 · ~20 GB em 36 TB5 · 80 Gb/s seu app / Claude Code / Codex
Importante: distribuir um modelo entre os dois Macs (exo / mlx.distributed) aumenta capacidade, não velocidade de geração — e o DeepSeek-Flash já cabe num Mac só. Por isso a recomendação é nós independentes (cérebro num, visão no outro), nunca sharding do mesmo modelo.

05b · TB5 explorada — quão "perto" o segundo Mac fica?

"Thunderbolt 5, 80 Gb/s" é abstrato. O que importa na prática é: quando você manda uma imagem para o nó de visão, quanto tempo os bytes levam para atravessar o cabo? Spoiler: para uma imagem, é desprezível — o gargalo é a inferência, não o link. Arraste o tamanho do payload e veja o tempo de transferência (a fração de tempo que o cabo cobra) recalcular em número e na barra:

0 ms 0,2 ms escala: 50 ms Referência: a inferência de visão leva centenas a milhares de ms — o cabo é <1% disso para uma imagem.

Conta: tempo ≈ tamanho ÷ banda. A 80 Gb/s (= 10 GB/s = 10 MB/ms), 2 MB ≈ 0,2 ms. Por isso "dois nós independentes" funciona: o link é largo o bastante para nunca ser o gargalo de uma imagem. [uncertain]: 80 Gb/s é o pico nominal do TB5; throughput efetivo é menor, mas a ordem de grandeza (sub-ms para MBs) se mantém.

Fixe os conceitos (flashcards)

Clique pra virar. Tente lembrar a resposta antes de virar — recuperação ativa fixa mais que reler.

Unificada
O que CPU, GPU e ANE compartilham no M5 Max?
clique pra virar ↻
Resposta
Um único pool de 128 GB (memória unificada). A GPU lê os pesos onde já estão — sem cópia host→device. Por isso um modelo de 81 GB é viável num laptop.
Orçamento
Quanto sobra livre com cérebro + KV médio + macOS?
clique pra virar ↻
Resposta
81 + 8 + 18 = 107 GB → sobram 21 GB. O cérebro sozinho roda; somar a visão (20) te joga a ~127 GB, acima do teto seguro de 102.
Decisão
Imagem chega: co-residir, sequencial ou 2º Mac?
clique pra virar ↻
Resposta
Visão frequente → 2º Mac (TB5). Senão → passes sequenciais (pico ≤101 GB). Co-residir só se a sobra real > 20 GB — quase nunca.
Funil
Como religar o Alembic ao cérebro local?
clique pra virar ↻
Resposta
ALEMBIC_CLIPROXY_URL=http://127.0.0.1:8000. O DS4 atende no mesmo contrato OpenAI+Anthropic; nada mais muda. Some --offline para $0 sem rede.

Revisão cumulativa — recupere de memória

Antes de clicar: responda de cabeça. Recuperar (não reler) é o que fixa. As opções têm o mesmo tamanho de propósito — sem pista pela forma.

1. Por que CPU, GPU e ANE compartilharem um pool único de 128 GB é uma faca de dois gumes?
Correto: b — o ganho (sem cópia PCIe, modelo grande viável) e o custo (tudo divide o mesmo pool) são a mesma propriedade. a inverte o conceito: o pool é único justamente para não copiar. c confunde os eixos: a VRAM discreta tem mais banda bruta, mas só para o que cabe nela — e o DS4 não cabe em 24 GB. d inventa um bloqueio que não existe (a ANE não trava a GPU).
2. Por que o DeepSeek (81 GB) e o Qwen3-VL (20 GB) não ficam residentes na GPU ao mesmo tempo?
Correto: b — a soma encosta nos 128 GB e viola a folga de 10–20%; a saída é passes sequenciais (pico ≤101 GB) ou o 2º Mac. a é falso: dois processos de GPU coexistem; o limite é memória, não paralelismo. c troca o gargalo: portas de rede não têm a ver com RAM residente. d confunde uma opção (2º Mac via TB5) com uma obrigação — visão roda no próprio M5 Max em passes sequenciais.
3. Como você faz o funil do Alembic usar o cérebro local em vez do gateway remoto?
Correto: c — uma variável de ambiente redireciona o funil para a porta 8000 do DS4; o contrato de I/O é idêntico, some --offline para $0. a é trabalho desnecessário e frágil: a URL já é configurável por env var. b é falso — o ponto inteiro da seção 04 é que dá. d vai na direção oposta (aponta para a nuvem) e não muda o host do gateway.
💬 Travou em algo? Eu sou seu professor neste curso — pergunte. "Quanto KV cabe se eu quiser 256k de contexto?", "Como subo o ds4-server na porta 8000?", "Vale a pena o q2-q4 em vez do q2 puro?". É só dizer.