Instructions to use cyberalien/CySearchAssist-Mesh-0.5B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use cyberalien/CySearchAssist-Mesh-0.5B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="cyberalien/CySearchAssist-Mesh-0.5B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("cyberalien/CySearchAssist-Mesh-0.5B") model = AutoModelForCausalLM.from_pretrained("cyberalien/CySearchAssist-Mesh-0.5B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use cyberalien/CySearchAssist-Mesh-0.5B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "cyberalien/CySearchAssist-Mesh-0.5B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "cyberalien/CySearchAssist-Mesh-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/cyberalien/CySearchAssist-Mesh-0.5B
- SGLang
How to use cyberalien/CySearchAssist-Mesh-0.5B 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 "cyberalien/CySearchAssist-Mesh-0.5B" \ --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": "cyberalien/CySearchAssist-Mesh-0.5B", "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 "cyberalien/CySearchAssist-Mesh-0.5B" \ --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": "cyberalien/CySearchAssist-Mesh-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use cyberalien/CySearchAssist-Mesh-0.5B with Docker Model Runner:
docker model run hf.co/cyberalien/CySearchAssist-Mesh-0.5B
CySearchAssist-Mesh-0.5B
Optional multilingual query rewriter for a Static Mesh / 3D asset library. It turns a user's request into English search phrases, category/tag hints and explicit exclusions. It does not search assets, inspect mesh geometry/images, produce embeddings or generate 3D models. The host searches its own metadata index and must validate the JSON before using it.
Full merged FP16 weights, approximately 1.00 GB including tokenizer/configuration files. No separate adapter or download of the base weights is required. No remote Python code is required. Experimental lightweight option. In the small local CPU benchmark it produced significant semantic mistakes (for example, a spiral pipe interpreted as a helicopter tube).
Provenance and license
- Base: Qwen/Qwen2.5-0.5B-Instruct.
- Pinned base revision:
7ae557604adf67be50417f59c2c2f167def9a775. - CyMesh synthetic text corpus: 10,025 examples across 84 concepts and five languages; concept-separated training/validation/test partitions. Training split: 6,677 examples.
- LoRA fine-tuning for 2 epochs, seed 20260923, then merge and FP16 export.
- Dataset and prompt hashes are recorded in
mesh_query_config.json. - Apache-2.0: see LICENSE, LICENSE.base and NOTICE for upstream attribution and modifications.
- No project meshes, library index, user conversations, account credentials or training checkpoints are included.
Use with CyMesh
In CyMesh MeshLibrary → AI Models & Installation, choose this model's Download & Install. Choose Use for Semantic Search, then enable Library Settings → Asset Library → Search → Enable Semantic Search. The feature is optional and limited to MeshLibrary. Downloads are stored outside the plugin.
Existing integrations can use the downloaded folder as Library Query Model.
The contract remains cymesh-query-v1; mesh_query_prompt.txt must match its recorded SHA-256.
CPU and CUDA are supported by the host runtime. The default installer uses CPU PyTorch;
CUDA requires a compatible PyTorch runtime configured by the user.
Transformers example
import json
import torch
from huggingface_hub import snapshot_download
from pathlib import Path
from transformers import AutoModelForCausalLM, AutoTokenizer
folder = snapshot_download("cyberalien/CySearchAssist-Mesh-0.5B") # Pin revision to a reviewed commit in production.
tokenizer = AutoTokenizer.from_pretrained(folder, local_files_only=True, trust_remote_code=False)
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(
folder, torch_dtype=torch.float16 if device == "cuda" else torch.float32,
local_files_only=True, trust_remote_code=False,
).to(device).eval()
messages = [
{"role": "system", "content": (Path(folder)/"mesh_query_prompt.txt").read_text("utf-8")},
{"role": "user", "content": "une chaise en bois sans accoudoirs"},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=256, do_sample=False,
pad_token_id=tokenizer.eos_token_id)
text = tokenizer.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(text) # Parse AND validate; do not treat generated values as asset paths or commands.
Expected keys: mesh_prompt, variations (exactly two), suggested_categories, suggested_tags, exclude.
Invalid output should fall back explicitly to the user's original text. Do not execute model output.
Measured limits
Local CPU benchmark: Ryzen 9 7900X, eight PyTorch threads, FP16 files loaded for FP32 CPU computation. Small technical test; target expectations came from asset names, not human relevance annotations. It does not establish general retrieval accuracy across arbitrary libraries.
| Measurement | 1.5B | 0.5B |
|---|---|---|
| Valid JSON contract, 37 queries | 35/37 | 30/37 |
| Named target in top five, 10 metadata queries | 10/10 | 7/10 |
| Median CPU generation with loaded model | 15.26 s | 5.23 s |
| Peak process RAM including load | 8.96 GiB | 3.09 GiB |
Negations, synonyms, multilingual ambiguity and materials can be misinterpreted. No guarantee of equivalent quality between the two sizes. These exports are not GGUF or 4-bit quantized. The initial CyMesh worker reloads the model per search, adding loading latency. The host should preserve manual categories and only return real paths from its own asset index.
- Downloads last month
- -