Text Generation
MLX
Safetensors
xing4_0
quantization
apple-silicon
Mixture of Experts
mla
hyper-connections
xing
telechat
base_model_size:10B to 100B
conversational
custom_code
4-bit precision
Instructions to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX"
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 TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX"
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 "TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Download configuration_xing4_0.py from TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX: direct link, hf CLI and curl.
- Browser
- Download file 5.4 kB
-
https://huggingface.co/TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX/resolve/main/configuration_xing4_0.py
- Command line
-
hf download hf://TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX/configuration_xing4_0.py
-
curl -L -o configuration_xing4_0.py https://huggingface.co/TokenAI-zer/Xing4.0-29B-A4B-4bit-MLX/resolve/main/configuration_xing4_0.py
5.4 kB
| from transformers.configuration_utils import PretrainedConfig | |
| from transformers.utils import logging | |
| logger = logging.get_logger(__name__) | |
| DEEPSEEK_PRETRAINED_CONFIG_ARCHIVE_MAP = {} | |
| class Xing4_0Config(PretrainedConfig): | |
| model_type = "xing4_0" | |
| keys_to_ignore_at_inference = ["past_key_values"] | |
| base_model_tp_plan = { | |
| "layers.*.mlp.experts.gate_up_proj": "packed_colwise", | |
| "layers.*.mlp.experts.down_proj": "rowwise", | |
| "layers.*.mlp.experts": "moe_tp_experts", | |
| "layers.*.mlp.shared_experts.gate_proj": "colwise", | |
| "layers.*.mlp.shared_experts.up_proj": "colwise", | |
| "layers.*.mlp.shared_experts.down_proj": "rowwise", | |
| "layers.*.mlp.gate_proj": "colwise", | |
| "layers.*.mlp.up_proj": "colwise", | |
| "layers.*.mlp.down_proj": "rowwise", | |
| } | |
| base_model_pp_plan = { | |
| "embed_tokens": (["input_ids"], ["inputs_embeds"]), | |
| "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), | |
| "norm": (["hidden_states"], ["hidden_states"]), | |
| } | |
| base_model_ep_plan = { | |
| "layers.*.mlp.gate": "ep_router", | |
| "layers.*.mlp.experts.gate_up_proj": "grouped_gemm", | |
| "layers.*.mlp.experts.down_proj": "grouped_gemm", | |
| "layers.*.mlp.experts": "moe_tp_experts", | |
| } | |
| attribute_map = { | |
| "num_local_experts": "n_routed_experts", | |
| "num_mtp_layers": "num_nextn_predict_layers", | |
| } | |
| def __init__( | |
| self, | |
| vocab_size=131072, | |
| hidden_size=3584, | |
| intermediate_size=9216, | |
| moe_intermediate_size=1024, | |
| num_hidden_layers=40, | |
| num_nextn_predict_layers=1, | |
| num_attention_heads=32, | |
| num_key_value_heads=32, | |
| n_shared_experts=1, | |
| n_routed_experts=64, | |
| ep_size=1, | |
| routed_scaling_factor=2.0, | |
| kv_lora_rank=512, | |
| q_lora_rank=1536, | |
| qk_rope_head_dim=64, | |
| v_head_dim=128, | |
| qk_nope_head_dim=128, | |
| topk_method='noaux_tc', | |
| n_group=8, | |
| topk_group=4, | |
| num_experts_per_tok=4, | |
| moe_layer_freq=1, | |
| first_k_dense_replace=2, | |
| norm_topk_prob=True, | |
| scoring_func='sigmoid', | |
| hidden_act="silu", | |
| max_position_embeddings=4096, | |
| initializer_range=0.02, | |
| rms_norm_eps=1e-6, | |
| use_cache=True, | |
| pad_token_id=None, | |
| bos_token_id=1, | |
| eos_token_id=2, | |
| tie_word_embeddings=False, | |
| rope_theta=10000.0, | |
| rope_scaling=None, | |
| rope_interleave=True, | |
| attention_bias=False, | |
| attention_dropout=0.0, | |
| hc_mult: int = 4, | |
| hc_sinkhorn_iters: int = 20, | |
| hc_eps: float = 1.0e-6, | |
| mhc_h_res_clamp_min=-30, | |
| mhc_h_res_clamp_max=30, | |
| **kwargs, | |
| ): | |
| self.vocab_size = vocab_size | |
| self.max_position_embeddings = max_position_embeddings | |
| self.hidden_size = hidden_size | |
| self.intermediate_size = intermediate_size | |
| self.moe_intermediate_size = moe_intermediate_size | |
| self.num_hidden_layers = num_hidden_layers | |
| self.num_nextn_predict_layers = num_nextn_predict_layers | |
| self.num_attention_heads = num_attention_heads | |
| self.n_shared_experts = n_shared_experts | |
| self.n_routed_experts = n_routed_experts | |
| self.ep_size = ep_size | |
| self.routed_scaling_factor = routed_scaling_factor | |
| self.kv_lora_rank = kv_lora_rank | |
| self.q_lora_rank = q_lora_rank | |
| self.qk_rope_head_dim = qk_rope_head_dim | |
| self.v_head_dim = v_head_dim | |
| self.qk_nope_head_dim = qk_nope_head_dim | |
| self.qk_head_dim = self.qk_nope_head_dim + self.qk_rope_head_dim | |
| self.head_dim = self.qk_rope_head_dim | |
| self.topk_method = topk_method | |
| self.n_group = n_group | |
| self.topk_group = topk_group | |
| self.num_experts_per_tok = num_experts_per_tok | |
| self.moe_layer_freq = moe_layer_freq | |
| self.first_k_dense_replace = first_k_dense_replace | |
| self.norm_topk_prob = norm_topk_prob | |
| self.scoring_func = scoring_func | |
| # for backward compatibility | |
| if num_key_value_heads is None: | |
| num_key_value_heads = num_attention_heads | |
| self.num_key_value_heads = num_key_value_heads | |
| self.hidden_act = hidden_act | |
| self.initializer_range = initializer_range | |
| self.rms_norm_eps = rms_norm_eps | |
| self.use_cache = use_cache | |
| self.rope_theta = rope_theta | |
| self.rope_scaling = rope_scaling | |
| self.attention_bias = attention_bias | |
| self.attention_dropout = attention_dropout | |
| self.hc_mult = hc_mult | |
| self.hc_sinkhorn_iters = hc_sinkhorn_iters | |
| self.hc_eps = hc_eps | |
| self.mhc_h_res_clamp_min = mhc_h_res_clamp_min | |
| self.mhc_h_res_clamp_max = mhc_h_res_clamp_max | |
| self.rope_interleave = rope_interleave | |
| super().__init__( | |
| pad_token_id=pad_token_id, | |
| bos_token_id=bos_token_id, | |
| eos_token_id=eos_token_id, | |
| tie_word_embeddings=tie_word_embeddings, | |
| **kwargs, | |
| ) | |