Instructions to use apus-ailab/APUS-OpenJev-v1-35B-A3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use apus-ailab/APUS-OpenJev-v1-35B-A3B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="apus-ailab/APUS-OpenJev-v1-35B-A3B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("apus-ailab/APUS-OpenJev-v1-35B-A3B") model = AutoModelForMultimodalLM.from_pretrained("apus-ailab/APUS-OpenJev-v1-35B-A3B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use apus-ailab/APUS-OpenJev-v1-35B-A3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "apus-ailab/APUS-OpenJev-v1-35B-A3B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "apus-ailab/APUS-OpenJev-v1-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/apus-ailab/APUS-OpenJev-v1-35B-A3B
- SGLang
How to use apus-ailab/APUS-OpenJev-v1-35B-A3B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "apus-ailab/APUS-OpenJev-v1-35B-A3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "apus-ailab/APUS-OpenJev-v1-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "apus-ailab/APUS-OpenJev-v1-35B-A3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "apus-ailab/APUS-OpenJev-v1-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use apus-ailab/APUS-OpenJev-v1-35B-A3B with Docker Model Runner:
docker model run hf.co/apus-ailab/APUS-OpenJev-v1-35B-A3B
APUS-OpenJev-v1-35B-A3B
English | 中文 · Collection · Model family · Technical Report · Runtime
A Qwen3.5 MoE decision model for choosing browser actions, selecting workflow steps, and judging natural-language criteria. Give the model a shared state and a set of candidate actions; the included decision runtime returns a distribution over those candidates.
This repository contains 35B-A3B checkpoint-5949 merged BF16 weights. It is a standalone model with root-level Hugging Face configuration and weights, requiring no separate LoRA adapter. The native merged model scores 71/80 (88.75%) at its full 40-layer depth on the Frozen80 development panel.
Choose a decision budget
| Mode | Decoder layers | Intended use |
|---|---|---|
effort="high" |
40 | Primary release mode for decisions and text generation |
effort="low" |
20 | Experimental shallow decision exit, selected explicitly |
The decision interface accepts 2–16 request-specific candidates. Applications can use the returned candidate IDs to dispatch actions or build structured workflow results. See runtime instructions and validation status for the portable interface and its exact input contract.
Download and run
python -m pip install huggingface_hub
hf download apus-ailab/APUS-OpenJev-v1-35B-A3B --local-dir ./APUS-OpenJev-v1-35B-A3B
cd APUS-OpenJev-v1-35B-A3B
python -m pip install -r requirements.txt
python examples.py . --device cuda:0 --effort high
The examples use the portable reference runtime; its current acceptance status is recorded in RUNTIME.md. For reproducibility, pass an immutable repository commit with hf download --revision <commit>.
To access the underlying full-depth Transformers model using the validated loader:
from openjet_runtime import OpenJet
runtime = OpenJet.from_pretrained(".", device="cuda:0", dtype="bfloat16")
model = runtime.model
tokenizer = runtime.tokenizer
Use the pinned dependencies in requirements.txt. The bundled loader preserves sensitive checkpoint parameters in FP32 while loading the main weights in BF16. It also provides the 20-layer exit and candidate-distribution interface. A rough planning estimate is 75 GB or more GPU memory for BF16 inference, varying with prompt length, batching and runtime. This release's native evaluation used an RTX PRO 6000 with 96 GB; the estimate is not a tested minimum.
Evaluation and training
| This checkpoint's merged model | Correct / 80 | Accuracy |
|---|---|---|
| Native full 40 layers | 71 / 80 | 88.75% |
| Native experimental 20 layers | 63 / 80 | 78.75% |
The Frozen80 panel covers Browser, HelpSteer3, BoolQ, MNLI and attribute decisions. These results come from the merged checkpoint-5949 native GPU evaluation, not the source adapter's larger evaluation panels. Frozen80 is a reused engineering development panel, not a blind benchmark or an end-to-end browser success rate.
Training used 5,949 curriculum records from 3,898 parent groups, with LoRA on attention and shared experts while routed experts and the router remained frozen. See training details. Numerical merge differences, experimental-mode boundaries and validation status are collected in RUNTIME.md.
GGUF and MLX versions
Quantized versions of this model (Frozen80 71/80) for Ollama / llama.cpp / LM Studio and Apple Silicon Macs: GGUF collection · MLX collection.
| Version | Frozen80 | Decisions = BF16 |
|---|---|---|
| GGUF Q8_0 | 71/80 | 80/80 |
| GGUF Q4_K_M | 72/80 | 79/80 |
| MLX 8bit | 71/80 | 80/80 |
| MLX 4bit | 70/80 | 78/80 |
ollama run hf.co/apus-ailab/APUS-OpenJev-v1-35B-A3B-GGUF:Q8_0 --think=false
Ollama needs thinking disabled (--think=false, or "think": false in the API). Per-question results and usage are in each repository.
Series and license
The Collection groups the independent 4B, 9B and 35B-A3B repositories. Each model has its own checkpoint identity, evaluation and download counter. The family report provides the shared research context.
We thank the Qwen/Qwen3.5-35B-A3B team. Model licensing follows Apache-2.0; retain the accompanying license and provenance files when redistributing.
Authors: gumpcheng (xDAN2099), zhangxu, APUS AI-LAB.
- Downloads last month
- 299