Nous Research logo

Hermes 4 70B

Hermesv4 70BCurrent
byNous ResearchNous Research(ai lab)
Released August 26, 2025
Context131.1K tokens
Price (In / Out)$0.13/M / $0.40/M
CategoryLarge Language Model

About Hermes 4 70B

Hermes 4 70B is a large language model from Nous Research. Supports up to 131,072 token context window. Available from $0.13/M input tokens.

Capabilities

textcode

Input Modalities

text

Output Modalities

text

Technical Details

API Identifier
nousresearch/hermes-4-70b
Category
Large Language Model
Context Window
131,072 tokens

Tags

budget-friendlylong-context

Run this model yourself

Local and cloud setup for Hermes 4 70B, with exact configurations, sources and clear evidence limits.

Find a model for your hardware
Local hardwareDocumented setupSources checked Oct 16, 2026

Run Hermes 4 70B standard chat on a 64 GiB Intel desktop

Serve Hermes 4 70B with exact Unsloth Q4_K_M weights, the pinned Nous Research native template and llama.cpp 0.7.0 on CPU. One sequence, 4,096 total context tokens and a 512-token output cap. Standard template mode is a reduced smoke workload; hybrid reasoning can still occur. Memory fit, speed and completion remain unmeasured.

Hardware
Intel Core i5-12400 desktop, 8 inference threads, 64 GiB RAM
Runtime
llama.cpp v0.7.0 (620d2225cc436ab0b001e3200e590e3b286ef9ab) · CPU
Model format
GGUF · GGUF Q4_K_M mixed quantization · Q4_K_M mixed quantization published by Unsloth
Workload
4,096 token context · 1 concurrent

Based on source documentation; this setup has not been executed by OpenTools. Memory: unknown. No compatible measurement available.

Read the complete setup guide

Before you start

  • Use an owned Intel Core i5-12400 Ubuntu 24.04 x86_64 desktop with 64 GiB RAM, 80 GiB free disk and eight allocated inference threads. Build natively on this CPU.
  • These are planning allocations; full memory fit and performance are unknown.
  • Use the exact dense Llama 3.1 based Hermes 4 70B checkpoint and separate Unsloth derivative. No 3B-active or smaller-model substitution.
  • Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.

Exact model and requirements

Artifact:
Unsloth (GGUF derivative); Nous Research (native model) / Hermes 4 70B Q4_K_M, Unsloth derivative · checkpoint unsloth/Hermes-4-70B-GGUF
Publisher revision:
b5483741203956fbc0557a26429ee73bf4cb7944
Artifact digest:
sha256:1bdf4b8469bfa36b274412818e47bf1a39d667d1d9d9558bcdb3ecae2bc9fedc
Download size:
39.6 GiB
Memory requirement (unknown):
Unknown — No exact CPU peak for this dense 70B Q4_K_M artifact and 4K workload.
System RAM / disk:
Unknown / Unknown
Placement:
single device. One CPU host; no tensor/pipeline sharding. CPU-only execution; --device none and zero GPU layers. No disk or accelerator offload.
KV cache:
F16 K and V attention cache
Workload:
4,096 token context; Unknown; Unknown; concurrency 1; batch 1; cache unknown; repetitions Unknown.
Tokenizer:
Embedded Llama-family GGUF tokenizer with explicit pinned Nous Research native template · GGUF b5483741203956fbc0557a26429ee73bf4cb7944; native template d5dec2bd6b3930a09ddefd0b7fc6523fe0720d09
Sampling / reasoning:
Publisher card preset: temperature 0.6, top_p 0.95, top_k 20. Native generation_config instead lists top_p 0.9; this guide explicitly chooses the card preset. min_p 0, repeat_penalty 1 and frequency/presence penalties 0 are author controls. Native template thinking=false selects the standard system prompt, not a guaranteed no-reasoning model mode. Raw output preserves any <think> tags. 512 output tokens can truncate deliberation or final content; a complete correct answer is required.
Runtime prerequisites:
Ubuntu 24.04 x86_64; See prerequisites above.

Official artifact · License

Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.

  • The 42,520,399,008-byte weights do not establish working memory. Cache, compute buffers, runtime and OS need additional resources.
  • 64 GiB RAM, 80 GiB disk and eight CPU threads are planning allocations, not measured minima or confirmed fit/performance.

One-time setup and hardware

hardware
Unknown — Existing desktop purchase price and incremental hardware cost depend on the reader; unknown.
Existing desktop purchase price and incremental hardware cost depend on the reader; unknown. Tax: unknown.
setup
Unknown — Initial provisioning/build time and labor cost are unknown.
Initial provisioning/build time and labor cost are unknown. Tax: unknown.

Recurring costs

electricity
Unknown — Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion.
Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion. Tax: unknown.
storage
Unknown — Incremental cost of local disk capacity is unknown. The 80 GiB free-disk walkthrough allocation is an author choice, not a measured requirement.
Incremental cost of local disk capacity is unknown. The 80 GiB free-disk walkthrough allocation is an author choice, not a measured requirement. Tax: unknown.
egress
Unknown — Data transfer price, allowances and traffic volume are unknown.
Data transfer price, allowances and traffic volume are unknown. Tax: unknown.
administration
Unknown — Maintenance labor rate and hours are unknown.
Maintenance labor rate and hours are unknown. Tax: unknown.

Install the runtime

  1. 1. Build the pinned CPU server

    Install build dependencies and compile the exact official source revision. These packages are system shared dependencies; no CUDA/GPU driver is required. GGML_NATIVE=ON selects -march=native for this GNU/Linux x86 build, compiling for the host CPU. Build and run on the same machine; no AVX-512 requirement is imposed on the i5-12400.

    Command
    sudo apt-get update
    sudo apt-get install -y build-essential cmake git curl ca-certificates openssl python3
    mkdir -p "$HOME/hermes4-70b-hosting/models"
    cd "$HOME/hermes4-70b-hosting"
    git clone https://github.com/ggml-org/llama.cpp.git
    cd llama.cpp
    git checkout --detach 620d2225cc436ab0b001e3200e590e3b286ef9ab
    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=OFF -DGGML_NATIVE=ON
    cmake --build build --config Release -j 4
    ./build/bin/llama-server --version

    Expected result: Build succeeds and server version identifies pinned source. Stop if checkout or build fails.

Download the model

  1. 1. Download and verify the exact derivative and native template

    No authentication is required for these public artifacts. Stop on either digest mismatch. The Unsloth card advertises template fixes; this guide explicitly overrides its embedded template with the independently pinned native Nous Research file. Exact conversion provenance is not inferred.

    Command
    cd "$HOME/hermes4-70b-hosting"
    curl --fail --location --output models/Hermes-4-70B-Q4_K_M.gguf 'https://huggingface.co/unsloth/Hermes-4-70B-GGUF/resolve/b5483741203956fbc0557a26429ee73bf4cb7944/Hermes-4-70B-Q4_K_M.gguf'
    curl --fail --location --output models/hermes-chat.jinja 'https://huggingface.co/NousResearch/Hermes-4-70B/raw/d5dec2bd6b3930a09ddefd0b7fc6523fe0720d09/chat_template.jinja'
    sha256sum --check <<'SHA256'
    1bdf4b8469bfa36b274412818e47bf1a39d667d1d9d9558bcdb3ecae2bc9fedc  models/Hermes-4-70B-Q4_K_M.gguf
    89116c1ac22ce005afdf1772cb40644c1529af6a91300cf655566d10274d4175  models/hermes-chat.jinja
    SHA256

    Expected result: Both files report OK. GGUF is 42,520,399,008 bytes; native template is 4,121 bytes. No projector is needed for this text configuration.

Configure

  1. 1. Create a private service credential

    Generate this only on your own host when following the guide. It is a local service password, not an OpenAI/provider credential. Keep it private and never paste it into tickets. Create it only when absent; preserve an existing key so a repeated setup does not silently rotate access. It is not created during this documentation run.

    Command
    cd "$HOME/hermes4-70b-hosting"
    umask 077
    if [ ! -e .api-key ]; then
      openssl rand -hex 32 > .api-key
    fi
    test -s .api-key || { echo 'Existing .api-key is empty; restore it before continuing.'; exit 1; }
    chmod 600 .api-key

    Expected result: A non-empty private .api-key file exists; existing key preserved. No secret is printed.

Start the model

  1. 1. Start bounded standard-template chat

    The native thinking=false branch uses the standard Hermes system prompt. Keep raw response content and do not promise absence of reasoning. Context is 4,096 total tokens shared by prompt and output, below the native 131,072 positional limit. Leave this process in the foreground.

    Command
    cd "$HOME/hermes4-70b-hosting"
    export HERMES4_SERVICE_KEY="$(cat .api-key)"
    ./llama.cpp/build/bin/llama-server -m models/Hermes-4-70B-Q4_K_M.gguf --alias hermes4-70b --host 127.0.0.1 --port 8080 --api-key "$HERMES4_SERVICE_KEY" --device none -ngl 0 -t 8 -c 4096 -np 1 --cache-type-k f16 --cache-type-v f16 --jinja --chat-template-file models/hermes-chat.jinja --chat-template-kwargs '{"thinking":false,"keep_cots":false}' --skip-chat-parsing --reasoning-format none --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 --repeat-penalty 1 --frequency-penalty 0 --presence-penalty 0

    Expected result: Model initializes and loopback listener starts. Stop on tokenizer/architecture/template errors. The service key in process arguments can be visible to trusted local or privileged users.

Connect to your endpoint

http://127.0.0.1:8080/v1

Same desktop loopback only; no LAN/public listener. Use on a trusted single-user host.

Access: loopback. Reader-generated private service key in Authorization: Bearer header for chat; /health is public on loopback. Run the client on this same desktop. Keep the key private; this is not an OpenAI API key.

Verify the setup

  1. 1. Check readiness, authenticated chat and missing-key rejection

    Run in a second terminal on the same desktop or VM SSH shell. Inspect raw choices[0].message.content: a complete final answer must give 36 counters. Exact generated prose and reasoning are unknown; a length finish or unclosed reasoning trace fails this reduced smoke check.

    Command
    cd "$HOME/hermes4-70b-hosting"
    export HERMES4_SERVICE_KEY="$(cat .api-key)"
    curl --fail http://127.0.0.1:8080/health
    curl --fail http://127.0.0.1:8080/v1/chat/completions -H "Authorization: Bearer $HERMES4_SERVICE_KEY" -H 'Content-Type: application/json' --data-binary '{"model":"hermes4-70b","messages":[{"role":"user","content":"A box has 12 red counters, 18 blue counters and 6 green counters. Give the total number of counters in one short sentence."}],"max_tokens":512,"temperature":0.6,"top_k":20,"top_p":0.95,"min_p":0,"repeat_penalty":1,"frequency_penalty":0,"presence_penalty":0,"stop":["<|eot_id|>","<|end_of_text|>"]}' --output chat-response.json
    cat chat-response.json
    curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json' --data-binary '{"model":"hermes4-70b","messages":[{"role":"user","content":"Hello"}]}'

    Expected result: Ready health HTTP 200, authenticated nonempty complete answer 36 counters with finish_reason not length, and missing-key HTTP 401. These are reader pass criteria, not observed results.

Performance evidence

No compatible measurement available. Documented support and estimated memory do not establish response speed.

Limits and troubleshooting

  • Documented configuration only; no weights, installation, build, inference, fit, speed or quality measurement was performed.
  • Dense Llama architecture: 80 layers, hidden size 8,192, 64 attention heads, eight KV heads, head dimension 128 and Llama 3.1 rope scaling. Full 70B weights load; no active-parameter memory discount.
  • The exact native template is passed separately. Unsloth advertises template fixes, but their embedded template is not assumed identical to the native file. Both sources are pinned independently.
  • thinking=false selects a standard system prompt. Hermes remains hybrid reasoning-capable; any reasoning shares the 512-token cap with the final answer. Raw output preserves <think> tags; no separate reasoning_content is promised.
  • Native template system messages can override its standard/thinking prompt. This single-turn request supplies no system message or tools. Native thinking=true, preserved-chain history, tool calling and structured JSON are useful separate workflows that remain unqualified here.
  • The model card recommends temperature 0.6, top_p 0.95 and top_k 20. The generation config instead says top_p 0.9; this guide explicitly uses the card preset.
  • Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.
  • The Unsloth derivative names Hermes 4 but does not establish an exact native conversion revision. The binary digest and independent native template pin are authoritative for this recipe.
  • System packages resolve at installation; retain versions/build logs. GGML_NATIVE requires building on the CPU that will run the binary.
  • 64 GiB RAM, 80 GiB disk and eight threads are planning allocations, not measured minima or fit guarantees. Loopback/bearer/SSH access assumes a trusted host; public multiuser serving needs separate operations.
  • These two guides do not establish exhaustive model coverage. Full context, reasoning, tools, other runtimes and accelerators remain unqualified.
Checksum or template error
Stop and verify both independent revisions and hashes. Use the pinned native template with --jinja; do not substitute generic chat formatting.
Truncated answer or unclosed reasoning
Treat the smoke check as failed. Standard-template mode is not a no-reasoning guarantee. A larger output/context allocation is a distinct workload and must be recorded.
Memory pressure
Stop; inspect actual resources. File size is not working RAM. Increase resources or explicitly qualify a different workload/quantization; do not infer fit.
HTTP 401 or connection refused
Check foreground initialization and matching private key. For cloud, check the SSH tunnel to the intended VM; keep public 8080 ingress closed.

Stop the model

  1. 1. Stop the service

    Press Ctrl+C in server terminal. Unset key in each shell. Confirm this desktop localhost:8080 no longer serves the model.

    Command
    unset HERMES4_SERVICE_KEY

    Expected result: Server stops and localhost:8080 stops serving.

Uninstall

  1. 1. Remove dedicated model, build and credential files

    Back up wanted logs/files first. Remove only this walkthrough directory after confirming its path. Shared apt packages can remain; do not remove other workloads.

    Command
    rm -r -- "$HOME/hermes4-70b-hosting"

    Expected result: Dedicated files and local service credential removed; shared system dependencies remain.

Sources and verification

Sources checked Oct 16, 2026. Verification source

Related guides

Compare this configuration
Cloud serverDocumented setupSources checked Oct 16, 2026

Self-host Hermes 4 70B standard chat on an AWS CPU VM

Serve Hermes 4 70B with exact Unsloth Q4_K_M weights, the pinned Nous Research native template and llama.cpp 0.7.0 on CPU. One sequence, 4,096 total context tokens and a 512-token output cap. Standard template mode is a reduced smoke workload; hybrid reasoning can still occur. Memory fit, speed and completion remain unmeasured.

Hardware
AWS r7i.2xlarge, 64 GiB RAM, Ubuntu x86_64
Runtime
llama.cpp v0.7.0 (620d2225cc436ab0b001e3200e590e3b286ef9ab) · CPU
Model format
GGUF · GGUF Q4_K_M mixed quantization · Q4_K_M mixed quantization published by Unsloth
Workload
4,096 token context · 1 concurrent

Based on source documentation; this setup has not been executed by OpenTools. Memory: unknown. No compatible measurement available.

Read the complete setup guide

Before you start

  • Use an existing trusted Ubuntu 24.04 x86_64 AWS r7i.2xlarge in us-east-1 with eight vCPUs, 64 GiB RAM and an 80 GiB gp3 root disk. Existing SSH access must restrict port 22 to your IP; keep public 8080 closed. Confirm current quote/quota/capacity before billable provisioning.
  • These are planning allocations; full memory fit and performance are unknown.
  • Use the exact dense Llama 3.1 based Hermes 4 70B checkpoint and separate Unsloth derivative. No 3B-active or smaller-model substitution.
  • Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.

Exact model and requirements

Artifact:
Unsloth (GGUF derivative); Nous Research (native model) / Hermes 4 70B Q4_K_M, Unsloth derivative · checkpoint unsloth/Hermes-4-70B-GGUF
Publisher revision:
b5483741203956fbc0557a26429ee73bf4cb7944
Artifact digest:
sha256:1bdf4b8469bfa36b274412818e47bf1a39d667d1d9d9558bcdb3ecae2bc9fedc
Download size:
39.6 GiB
Memory requirement (unknown):
Unknown — No exact CPU peak for this dense 70B Q4_K_M artifact and 4K workload.
System RAM / disk:
Unknown / Unknown
Placement:
single device. One CPU host; no tensor/pipeline sharding. CPU-only execution; --device none and zero GPU layers. No disk or accelerator offload.
KV cache:
F16 K and V attention cache
Workload:
4,096 token context; Unknown; Unknown; concurrency 1; batch 1; cache unknown; repetitions Unknown.
Tokenizer:
Embedded Llama-family GGUF tokenizer with explicit pinned Nous Research native template · GGUF b5483741203956fbc0557a26429ee73bf4cb7944; native template d5dec2bd6b3930a09ddefd0b7fc6523fe0720d09
Sampling / reasoning:
Publisher card preset: temperature 0.6, top_p 0.95, top_k 20. Native generation_config instead lists top_p 0.9; this guide explicitly chooses the card preset. min_p 0, repeat_penalty 1 and frequency/presence penalties 0 are author controls. Native template thinking=false selects the standard system prompt, not a guaranteed no-reasoning model mode. Raw output preserves any <think> tags. 512 output tokens can truncate deliberation or final content; a complete correct answer is required.
Runtime prerequisites:
Ubuntu 24.04 x86_64; See prerequisites above.

Official artifact · License

Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.

  • The 42,520,399,008-byte weights do not establish working memory. Cache, compute buffers, runtime and OS need additional resources.
  • 64 GiB RAM, 80 GiB disk and eight CPU threads are planning allocations, not measured minima or confirmed fit/performance.

One-time setup and hardware

hardware
Not applicable — AWS hardware acquisition is included in compute rental; no purchased GPU required. Any separate hardware cost is not applicable.
AWS hardware acquisition is included in compute rental; no purchased GPU required. Any separate hardware cost is not applicable. Tax: unknown.
setup
Unknown — Initial provisioning/build time and labor cost are unknown.
Initial provisioning/build time and labor cost are unknown. Tax: unknown.

Recurring costs

compute
$0.53 / hour
AWS published us-east-1 Linux On-Demand quote USD 0.5292 per billed instance-hour, no paid preinstalled software. Eight billed hours cost USD 4.2336; 24 hours USD 12.7008 compute. Idle running hours bill. No discount, Spot or reservation assumed. Storage, egress, tax and administration additional; capacity unknown. Region: us-east-1. SKU: r7i.2xlarge Linux On-Demand. Tax: excluded. Price dated Oct 15, 2026. Price source
storage
$0.08 / GB month
Captured us-east-1 gp3 quote USD 0.08 per GB-month, with GB defined as 1024^3 bytes. Selected 80 GiB root volume costs USD 6.40 per full month, prorated by provisioned duration, at baseline 3000 IOPS and 125 MB/s. No provisioned extras assumed; retained snapshots/resources separate. Storage persists after stop; tax excluded. Region: us-east-1. SKU: EBS gp3 baseline 3000 IOPS / 125 MB/s. Tax: excluded. Price dated Oct 16, 2026. Price source
egress
Unknown — Data transfer price, allowances and traffic volume are unknown.
Data transfer price, allowances and traffic volume are unknown. Tax: unknown.
administration
Unknown — Maintenance labor rate and hours are unknown.
Maintenance labor rate and hours are unknown. Tax: unknown.

Install the runtime

  1. 1. Build the pinned CPU server

    Install build dependencies and compile the exact official source revision. These packages are system shared dependencies; no CUDA/GPU driver is required. GGML_NATIVE=ON selects -march=native for this GNU/Linux x86 build, compiling for the host CPU. Build and run on the same machine; the binary uses the instruction set exposed by this r7i.2xlarge guest. Do not copy it to a different instance family without rebuilding.

    Command
    sudo apt-get update
    sudo apt-get install -y build-essential cmake git curl ca-certificates openssl python3
    mkdir -p "$HOME/hermes4-70b-hosting/models"
    cd "$HOME/hermes4-70b-hosting"
    git clone https://github.com/ggml-org/llama.cpp.git
    cd llama.cpp
    git checkout --detach 620d2225cc436ab0b001e3200e590e3b286ef9ab
    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=OFF -DGGML_NATIVE=ON
    cmake --build build --config Release -j 4
    ./build/bin/llama-server --version

    Expected result: Build succeeds and server version identifies pinned source. Stop if checkout or build fails.

Download the model

  1. 1. Download and verify the exact derivative and native template

    No authentication is required for these public artifacts. Stop on either digest mismatch. The Unsloth card advertises template fixes; this guide explicitly overrides its embedded template with the independently pinned native Nous Research file. Exact conversion provenance is not inferred.

    Command
    cd "$HOME/hermes4-70b-hosting"
    curl --fail --location --output models/Hermes-4-70B-Q4_K_M.gguf 'https://huggingface.co/unsloth/Hermes-4-70B-GGUF/resolve/b5483741203956fbc0557a26429ee73bf4cb7944/Hermes-4-70B-Q4_K_M.gguf'
    curl --fail --location --output models/hermes-chat.jinja 'https://huggingface.co/NousResearch/Hermes-4-70B/raw/d5dec2bd6b3930a09ddefd0b7fc6523fe0720d09/chat_template.jinja'
    sha256sum --check <<'SHA256'
    1bdf4b8469bfa36b274412818e47bf1a39d667d1d9d9558bcdb3ecae2bc9fedc  models/Hermes-4-70B-Q4_K_M.gguf
    89116c1ac22ce005afdf1772cb40644c1529af6a91300cf655566d10274d4175  models/hermes-chat.jinja
    SHA256

    Expected result: Both files report OK. GGUF is 42,520,399,008 bytes; native template is 4,121 bytes. No projector is needed for this text configuration.

Configure

  1. 1. Create a private service credential

    Generate this only on your own host when following the guide. It is a local service password, not an OpenAI/provider credential. Keep it private and never paste it into tickets. Create it only when absent; preserve an existing key so a repeated setup does not silently rotate access. It is not created during this documentation run.

    Command
    cd "$HOME/hermes4-70b-hosting"
    umask 077
    if [ ! -e .api-key ]; then
      openssl rand -hex 32 > .api-key
    fi
    test -s .api-key || { echo 'Existing .api-key is empty; restore it before continuing.'; exit 1; }
    chmod 600 .api-key

    Expected result: A non-empty private .api-key file exists; existing key preserved. No secret is printed.

Start the model

  1. 1. Start bounded standard-template chat

    The native thinking=false branch uses the standard Hermes system prompt. Keep raw response content and do not promise absence of reasoning. Context is 4,096 total tokens shared by prompt and output, below the native 131,072 positional limit. Leave this process in the foreground.

    Command
    cd "$HOME/hermes4-70b-hosting"
    export HERMES4_SERVICE_KEY="$(cat .api-key)"
    ./llama.cpp/build/bin/llama-server -m models/Hermes-4-70B-Q4_K_M.gguf --alias hermes4-70b --host 127.0.0.1 --port 8080 --api-key "$HERMES4_SERVICE_KEY" --device none -ngl 0 -t 8 -c 4096 -np 1 --cache-type-k f16 --cache-type-v f16 --jinja --chat-template-file models/hermes-chat.jinja --chat-template-kwargs '{"thinking":false,"keep_cots":false}' --skip-chat-parsing --reasoning-format none --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 --repeat-penalty 1 --frequency-penalty 0 --presence-penalty 0

    Expected result: Model initializes and loopback listener starts. Stop on tokenizer/architecture/template errors. The service key in process arguments can be visible to trusted local or privileged users.

Connect to your endpoint

http://127.0.0.1:8080/v1

Server loopback only. For remote client run ssh -N -L 8080:127.0.0.1:8080 USER@VM_IP using your existing SSH access, then call localhost:8080 on client with the service key. Keep EC2 8080 closed.

Access: loopback. Reader-generated private service key in Authorization: Bearer header for chat; /health is public on loopback. SSH authenticates the cloud tunnel separately. Keep the key private; this is not an OpenAI API key.

Verify the setup

  1. 1. Check readiness, authenticated chat and missing-key rejection

    Run in a second terminal on the same desktop or VM SSH shell. Inspect raw choices[0].message.content: a complete final answer must give 36 counters. Exact generated prose and reasoning are unknown; a length finish or unclosed reasoning trace fails this reduced smoke check.

    Command
    cd "$HOME/hermes4-70b-hosting"
    export HERMES4_SERVICE_KEY="$(cat .api-key)"
    curl --fail http://127.0.0.1:8080/health
    curl --fail http://127.0.0.1:8080/v1/chat/completions -H "Authorization: Bearer $HERMES4_SERVICE_KEY" -H 'Content-Type: application/json' --data-binary '{"model":"hermes4-70b","messages":[{"role":"user","content":"A box has 12 red counters, 18 blue counters and 6 green counters. Give the total number of counters in one short sentence."}],"max_tokens":512,"temperature":0.6,"top_k":20,"top_p":0.95,"min_p":0,"repeat_penalty":1,"frequency_penalty":0,"presence_penalty":0,"stop":["<|eot_id|>","<|end_of_text|>"]}' --output chat-response.json
    cat chat-response.json
    curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json' --data-binary '{"model":"hermes4-70b","messages":[{"role":"user","content":"Hello"}]}'

    Expected result: Ready health HTTP 200, authenticated nonempty complete answer 36 counters with finish_reason not length, and missing-key HTTP 401. These are reader pass criteria, not observed results.

Performance evidence

No compatible measurement available. Documented support and estimated memory do not establish response speed.

Limits and troubleshooting

  • Documented configuration only; no weights, installation, build, inference, fit, speed or quality measurement was performed.
  • Dense Llama architecture: 80 layers, hidden size 8,192, 64 attention heads, eight KV heads, head dimension 128 and Llama 3.1 rope scaling. Full 70B weights load; no active-parameter memory discount.
  • The exact native template is passed separately. Unsloth advertises template fixes, but their embedded template is not assumed identical to the native file. Both sources are pinned independently.
  • thinking=false selects a standard system prompt. Hermes remains hybrid reasoning-capable; any reasoning shares the 512-token cap with the final answer. Raw output preserves <think> tags; no separate reasoning_content is promised.
  • Native template system messages can override its standard/thinking prompt. This single-turn request supplies no system message or tools. Native thinking=true, preserved-chain history, tool calling and structured JSON are useful separate workflows that remain unqualified here.
  • The model card recommends temperature 0.6, top_p 0.95 and top_k 20. The generation config instead says top_p 0.9; this guide explicitly uses the card preset.
  • Both native and Unsloth metadata declare llama3, while the native card identifies Llama 3.1 as the base. The native root LICENSE is absent (404). Retain this discrepancy: this guide does not replace the publisher label or claim the two licenses equivalent. Read and comply with the Meta Llama 3 and Llama 3.1 Community License Agreements and both incorporated acceptable-use policies, including applicable attribution/notice, Built with branding, redistribution/model-naming, prohibited-use, other-model training restrictions and 700-million monthly-active-user commercial-license conditions. Both provide conditional use grants; this is restricted open weights, not Apache or unrestricted open source. Stop if your use cannot satisfy the applicable terms. No legal-clearance claim is made.
  • The Unsloth derivative names Hermes 4 but does not establish an exact native conversion revision. The binary digest and independent native template pin are authoritative for this recipe.
  • System packages resolve at installation; retain versions/build logs. GGML_NATIVE requires building on the CPU that will run the binary.
  • 64 GiB RAM, 80 GiB disk and eight threads are planning allocations, not measured minima or fit guarantees. Loopback/bearer/SSH access assumes a trusted host; public multiuser serving needs separate operations.
  • These two guides do not establish exhaustive model coverage. Full context, reasoning, tools, other runtimes and accelerators remain unqualified.
Checksum or template error
Stop and verify both independent revisions and hashes. Use the pinned native template with --jinja; do not substitute generic chat formatting.
Truncated answer or unclosed reasoning
Treat the smoke check as failed. Standard-template mode is not a no-reasoning guarantee. A larger output/context allocation is a distinct workload and must be recorded.
Memory pressure
Stop; inspect actual resources. File size is not working RAM. Increase resources or explicitly qualify a different workload/quantization; do not infer fit.
HTTP 401 or connection refused
Check foreground initialization and matching private key. For cloud, check the SSH tunnel to the intended VM; keep public 8080 ingress closed.

Stop the model

  1. 1. Stop the service

    Press Ctrl+C in server terminal. Unset key in each shell. Close the SSH tunnel with Ctrl+C. Stopping the process alone does not stop EC2 billing.

    Command
    unset HERMES4_SERVICE_KEY

    Expected result: Server stops and localhost:8080 stops serving.

Uninstall

  1. 1. Remove dedicated model, build and credential files

    Back up wanted logs/files first. Remove only this walkthrough directory after confirming its path. Shared apt packages can remain; do not remove other workloads.

    Command
    rm -r -- "$HOME/hermes4-70b-hosting"

    Expected result: Dedicated files and local service credential removed; shared system dependencies remain.

Shut down cloud resources

  1. 1. End cloud billing resources

    In EC2 us-east-1, stop for later reuse or terminate this exact VM. Review Delete on termination for its root volume. Delete unwanted detached EBS volumes, snapshots and reserved/Elastic/public IP resources. Stopped VM storage and retained resources may still bill. Check Bills/Cost Explorer later for final usage.

    Expected result: Exact instance is stopped/terminated as intended; no unwanted attached/retained billed resources remain. Instance compute stops only after its lifecycle transition, not when llama-server stops.

Sources and verification

Sources checked Oct 16, 2026. Verification source

Related guides

Compare this configuration

Pricing

Token pricing for Hermes 4 70B API usage.

Input Tokens

$0.13/M

per million tokens

Output Tokens

$0.40/M

per million tokens

Competing Models

Same pricing tier — direct alternatives to Hermes 4 70B

Efficiency

AI Models by Nous Research

AI models from the same organization.

ModelContext WindowPrice (In / Out per M)
Hermes 4 405BCurrent131K$1.00 / $3.00
Hermes 3 70B InstructCurrent131K$0.30 / $0.30
Hermes 3 405B InstructCurrent131K-- / --