Instructions to use davidr99/qwen35-address-std with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use davidr99/qwen35-address-std with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="davidr99/qwen35-address-std") 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("davidr99/qwen35-address-std") model = AutoModelForMultimodalLM.from_pretrained("davidr99/qwen35-address-std") 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]:])) - llama-cpp-python
How to use davidr99/qwen35-address-std with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="davidr99/qwen35-address-std", filename="Qwen35-Address-Std-2B-BF16.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use davidr99/qwen35-address-std with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf davidr99/qwen35-address-std:Q4_K_M # Run inference directly in the terminal: llama cli -hf davidr99/qwen35-address-std:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf davidr99/qwen35-address-std:Q4_K_M # Run inference directly in the terminal: llama cli -hf davidr99/qwen35-address-std:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf davidr99/qwen35-address-std:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf davidr99/qwen35-address-std:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf davidr99/qwen35-address-std:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf davidr99/qwen35-address-std:Q4_K_M
Use Docker
docker model run hf.co/davidr99/qwen35-address-std:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use davidr99/qwen35-address-std with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "davidr99/qwen35-address-std" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "davidr99/qwen35-address-std", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/davidr99/qwen35-address-std:Q4_K_M
- SGLang
How to use davidr99/qwen35-address-std 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 "davidr99/qwen35-address-std" \ --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": "davidr99/qwen35-address-std", "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 "davidr99/qwen35-address-std" \ --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": "davidr99/qwen35-address-std", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use davidr99/qwen35-address-std with Ollama:
ollama run hf.co/davidr99/qwen35-address-std:Q4_K_M
- Unsloth Studio
How to use davidr99/qwen35-address-std with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for davidr99/qwen35-address-std to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for davidr99/qwen35-address-std to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for davidr99/qwen35-address-std to start chatting
- Pi
How to use davidr99/qwen35-address-std with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf davidr99/qwen35-address-std:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "davidr99/qwen35-address-std:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use davidr99/qwen35-address-std with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf davidr99/qwen35-address-std:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default davidr99/qwen35-address-std:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use davidr99/qwen35-address-std with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf davidr99/qwen35-address-std:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "davidr99/qwen35-address-std:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use davidr99/qwen35-address-std with Docker Model Runner:
docker model run hf.co/davidr99/qwen35-address-std:Q4_K_M
- Lemonade
How to use davidr99/qwen35-address-std with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull davidr99/qwen35-address-std:Q4_K_M
Run and chat with the model
lemonade run user.qwen35-address-std-Q4_K_M
List all available models
lemonade list
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf davidr99/qwen35-address-std:# Run inference directly in the terminal:
llama cli -hf davidr99/qwen35-address-std:Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf davidr99/qwen35-address-std:# Run inference directly in the terminal:
llama cli -hf davidr99/qwen35-address-std:Use pre-built binary
# Download pre-built binary from:
# https://github.com/ggerganov/llama.cpp/releases# Start a local OpenAI-compatible server with a web UI:
./llama-server -hf davidr99/qwen35-address-std:# Run inference directly in the terminal:
./llama-cli -hf davidr99/qwen35-address-std:Build from source code
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-server llama-cli# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama-server -hf davidr99/qwen35-address-std:# Run inference directly in the terminal:
./build/bin/llama-cli -hf davidr99/qwen35-address-std:Use Docker
docker model run hf.co/davidr99/qwen35-address-std:qwen35-address-std (2B, v1)
Superseded by
davidr99/qwen35-address-std-4B-v5(99.2% exact-match, no city-spelling drift, trimmed output). This repo is kept for A/B comparison.
Qwen3.5 fine-tune (LoRA, merged 16-bit) for two US-address tasks, selected by the
system prompt: normalize (raw US address -> strict JSON of standardized components,
PostGIS address_standardizer stdaddr schema) and compare (two addresses -> per-bucket
MATCH/PLAUSIBLE/NOT_MATCHED verdicts).
Trained on dataset revision v1 (pinned tag on both datasets above).
Output contract (this version): every one of the 16 keys is always present; absent
fields are "". (v5+ models switched to omitting empty keys.)
This version (v1): the original release. Baseline street-suffix set (21 types); the
prompt predates the spelling-preservation and city-disambiguation rules added in v2.
GGUF builds are included under gguf/.
Results
Development-harness measurements (~760-row v1 val): normalize exact-match ~98.8-98.9%, compare ~99.5%. Known weakness: occasionally altered the spelling of rare city names (e.g. BUTLER->BATALER) -- the motivation for the v2+ data work.
Version history
| Model | Data | Normalize exact-match | Notes |
|---|---|---|---|
2B (v1, qwen35-address-std) |
v1 | ~98.9%* | first release; *dev harness, ~760-row val |
| 2B-v2 | v2 | 98.0% | USPS suffixes + prompt rules; 761-row val |
| 2B-v3 | v3 | 94.9%** | first 100% city coverage; **cross-version eval on the v4 split (v4-only patterns untrained) |
| 2B-v4 | v4 | 98.8% | PostGIS-grammar patterns; 2,139-row val |
| 4B-v4 | v4 | 99.3% | first 4B; city-spelling garbles eliminated |
| 2B-v5 | v5 | 98.6% | trimmed JSON (43% fewer output tokens); fastest |
| 4B-v5 (current) | v5 | 99.2% | garble-free + trimmed output -- recommended |
Normalize system prompt (verbatim, as trained)
You standardize a single raw US address string into structured components.
Return ONLY a JSON object with these exact keys (always include every key; use "" when absent):
building, houseNum, predir, qual, pretype, name, suftype, sufdir,
ruralRoute, extra, city, state, country, zipcode, box, unit
Field meanings & rules:
- building: a named building/place that precedes the street address (e.g. "EMPIRE STATE BUILDING").
- houseNum: the primary street number.
- predir: directional BEFORE the street name (N, S, E, W, NE, NW, SE, SW).
- qual: a qualifier adjective before the name that is not a type or directional (e.g. "OLD", "NEW").
- pretype: street type or route descriptor BEFORE the name (e.g. "AVE", "US RTE", "STATE RTE").
- name: the core street name (or the route number for numbered routes/interstates).
- suftype: street type AFTER the name (e.g. "ST", "RD", "AVE", "BLVD").
- sufdir: directional AFTER the street (post-directional), e.g. "NW" in "Pennsylvania Ave NW".
- ruralRoute: the rural route NUMBER only (e.g. "2" for "RR 2", "1" for "HC 1").
- extra: extra information such as a floor; for an intersection it holds the cross street prefixed with "&" (e.g. "& 5TH AVE").
- city / state / zipcode: the locality, 2-letter state, and ZIP.
- country: always "USA".
- box: a post-office / route box, normalized to "BOX <number>" (e.g. "BOX 152"); drop any "PO"/"P.O." prefix.
- unit: secondary unit (e.g. "APT 5B", "STE 200"), OR any leftover token trailing the street type.
Normalization rules:
- UPPERCASE every value; abbreviate street types and directionals to USPS abbreviations.
- "St"/"Saint" before a name is part of the name ("ST CHARLES"), not the type "ST".
- street type before the name -> pretype; after the name -> suftype.
- directional AFTER the street (and after the suftype) -> sufdir (e.g. "NW" in "Pennsylvania Ave NW").
- numbered route -> descriptor in pretype ("US RTE", "STATE RTE", "COUNTY RD", "TWP RD", "INTERSTATE"), number (keep any letter suffix, e.g. "75A") in name.
- intersection of two streets -> primary street in predir/qual/name/suftype; cross street in
extra as "& <CROSS STREET>" (e.g. "& 5TH AVE"); houseNum stays empty.
- any leftover token trailing the street type -> unit (whatever it is).
- zipcode may include a ZIP+4 suffix (e.g. "44646-1234"); keep it if present, else use the 5-digit ZIP or "".
- country is always "USA"; output the JSON object only.
The compare-task system prompt for this version is embedded in every row of
davidr99/us-address-comparison (the system field) at the matching revision.
Usage
See the usage snippet on the current release's card -- identical apart from the repo name (greedy decoding, enable_thinking=False, use the inner text tokenizer of the multimodal processor). eval_address_model.ipynb in this repo family scores any version against any dataset tag.
- Downloads last month
- 123
# Gated model: Login with a HF token with gated access permission hf auth login