Introduction — LLMs on NRP

Teaching: 20 min · Exercises: 0 min · Total: 20 min

Questions
  • What LLM resources does NRP provide for researchers?
  • How do I get access?
  • What can I do with these resources?
Objectives
  • Understand what the NRP managed LLM service is and what models are available.
  • Know how to obtain an API token and reach the endpoint.
  • Identify the browser-based and programmatic entry points.

Overview

The National Research Platform (NRP) makes large language models available to the research community through a managed, OpenAI-compatible inference endpoint. You do not need to rent cloud credits, install model weights, or request a GPU — you just point any OpenAI-compatible tool at NRP's URL and authenticate with a personal token.

This lesson covers what is available, how to get access, and the different ways you can interact with the models.


What NRP Provides

NRP exposes two complementary AI/LLM resources:

1. Managed LLM Service

A rotating catalog of open-weights models hosted on NRP GPUs, reachable two ways:

`` https://ellm.nrp-nautilus.io/v1 ``

You authenticate with a bearer token (see Getting Access below). The endpoint speaks the OpenAI API, so any tool that supports a custom base_url works out of the box.

Currently available models (see live list):

ModelHuggingFace IDParametersContextToolsVisionNotes
qwen3Qwen/Qwen3.5-397B-A17B-FP8397B (17B active MoE)1.01Mimage, videoLargest context
qwen3-smallQwen/Qwen3.6-27B27B1.01Mimage, video
gpt-ossopenai/gpt-oss-120b120B131KStrong at code
gemmagoogle/gemma-4-31B-it-qat-w4a16-ct31B262Kimage, video
gemma-smallgoogle/gemma-4-12B-it-qat-w4a16-ct12B262Kimage, videoEvaluating — fast, good default
minimax-m2MiniMaxAI/MiniMax-M2.7230B204KEvaluating — strong reasoning
glm-5nvidia/GLM-5.2-NVFP4744B300KEvaluating
deepseek-v4-flashdeepseek-ai/DeepSeek-V4-Flash-0731304B1.05MEvaluating
kimimoonshotai/Kimi-K2.7-Code1T MoE131Kimage, videoEvaluating
qwen3-embeddingQwen/Qwen3-VL-Embedding-8B8B262Kimage, videoEmbeddings only — semantic search/RAG

Evaluating models are under active testing — configuration can change without notice; stick to the others for anything you need to be stable through the workshop.

Tip

For most tasks, start with gemma-small (fast) or minimax-m2 (strong reasoning). Switch to qwen3 when you need the largest context window.

Models occasionally restart or roll over to a new version — check what's currently up at the LLM status dashboard.

2. Bring-Your-Own GPU

For workloads requiring full model control — custom weights, fine-tuning, custom quantization, or private inference — you can request your own GPU pod in your namespace and run any inference server (vLLM, TGI, Ollama, etc.). This is covered in other NRP training sessions.


Getting Access

Step 1: NRP Account

You need an NRP account associated with your institutional credentials. If you don't have one yet, follow Getting Started with NRP.

You also need to belong to a namespace with LLM access enabled — this is a per-namespace feature flag, so an account alone is not sufficient. For this tutorial, ask Daniel Diaz to add you to the CLARIPHY namespace, which already has it enabled. See Setup.

Step 2: Get an API Token

Go to https://nrp.ai/llmtoken and click Get LLM token. A personal bearer token will be sent to your email or displayed on the page.

Getting a personal LLM token from nrp.ai/llmtoken

Important

Treat your personal token like a password. Do not commit it to git or share it publicly. In notebooks and scripts, read it from an environment variable (OPENAI_API_KEY) rather than hard-coding it.

To use it from a terminal, set your token and the endpoint URL in that terminal — they last until you close it. In a JupyterHub terminal, or on macOS, Linux or WSL:

Bash
export OPENAI_API_BASE="https://ellm.nrp-nautilus.io/v1"
export OPENAI_API_KEY="<paste-your-token-here>"

In Windows PowerShell:

powershell
$env:OPENAI_API_BASE = "https://ellm.nrp-nautilus.io/v1"
$env:OPENAI_API_KEY = "<paste-your-token-here>"

Replace the placeholder with your token. Setting these from inside a notebook works a little differently — see the setup check at the start of Lesson 2.

Step 3: Verify Access

From a bash terminal — a JupyterHub terminal, or macOS, Linux or WSL — send a real chat request. This actually exercises the model, not just the endpoint, so it's a more meaningful check than listing models:

Bash
curl -s -X POST "$OPENAI_API_BASE/chat/completions" \
     -H "Authorization: Bearer $OPENAI_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"model": "minimax-m2", "messages": [{"role": "user", "content": "What is the National Research Platform?"}]}'

You should get back a JSON response with a real answer buried in it (something about a distributed, Kubernetes-based US research cyberinfrastructure).

For a cleaner look, pipe it through Python to pull out just the reply text:

Bash
curl -s -X POST "$OPENAI_API_BASE/chat/completions" \
     -H "Authorization: Bearer $OPENAI_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"model": "minimax-m2", "messages": [{"role": "user", "content": "What is the National Research Platform?"}]}' \
  | python3 -c 'import json, sys; d = json.load(sys.stdin); print(d["choices"][0]["message"]["content"] if "choices" in d else d)'

If the token is wrong, this prints the error message from the endpoint instead of a reply.

You can also list the full model catalog:

Bash
curl -s -H "Authorization: Bearer $OPENAI_API_KEY" \
     "$OPENAI_API_BASE/models" \
  | python3 -m json.tool | head -20

On Windows, or if you'd rather stay in Python, the Setup Check at the start of the Chat notebook runs the same test from a notebook cell.


Entry Points at a Glance

MethodWhereWhen to Use
Open WebUIBrowserQuick questions, no coding
Python openai SDKNotebook / scriptProgrammatic use, RAG, embeddings
curlTerminalQuick smoke tests, scripting
Agentic tools (opencode, VS Code, Claude Code)Terminal / IDEAI-assisted coding and research

How to Get Help


Run the Notebooks

You can run the notebooks for this training either on the NRP training hub or on your own machine (local setup) — the training hub is recommended since the packages are already installed for you. You'll still need your own personal API token either way (see Getting Access above).

Launch the workspace in JupyterHub

▶ Launch the workspace in JupyterHub — signs you in at jh-training.nrp-nautilus.io, pulls the tutorial workspace, and opens JupyterLab with the notebooks for this training.

Before you open the notebooks: start the JFC agent

The next page, Launch the Agent, sets up an AI agent that runs a complete physics analysis from your own laptop. It needs tens of minutes of unattended time, so start it first — it keeps working while you do the notebook lessons, and you check its results in the last lesson.

Key Points
  • NRP runs an OpenAI-compatible managed LLM endpoint at https://ellm.nrp-nautilus.io/v1.
  • Access requires an NRP account and a personal token from https://nrp.ai/llmtoken.
  • The Open WebUI browser UI requires no token — sign in with your NRP account.
  • LLM access is a per-namespace feature — your namespace must have it enabled.
  • The same openai Python SDK works against NRP, commercial providers, and your own GPU pods.