|
Download README.md from Angshul/Falcon-H1-0.5B-Rust: direct link, hf CLI and curl.
- Browser
- Download file 7.32 kB
-
https://huggingface.co/Angshul/Falcon-H1-0.5B-Rust/resolve/main/README.md
- Command line
-
hf download hf://Angshul/Falcon-H1-0.5B-Rust/README.md
-
curl -L -o README.md https://huggingface.co/Angshul/Falcon-H1-0.5B-Rust/resolve/main/README.md
7.32 kB
| language: | |
| - en | |
| pipeline_tag: text-generation | |
| license: other | |
| base_model: tiiuae/Falcon-H1-0.5B-Instruct | |
| tags: | |
| - falcon_h1 | |
| - falcon-h1 | |
| - rust | |
| - candle | |
| - cuda | |
| - mamba2 | |
| - inference | |
| - text-generation | |
| - conversational | |
| # Falcon-H1-0.5B-Instruct — Rust CUDA Inference API (v0.4) | |
| This repository hosts the **original Falcon-H1-0.5B-Instruct pretrained weights converted to an FP32 `.f32pack` checkpoint** for inference using a native **Rust/Candle implementation with NVIDIA CUDA support**. | |
| The implementation preserves the model's **hybrid Mamba-2 and grouped-query attention architecture**. It is an inference port, **not a newly trained, fine-tuned, distilled, or quantized model**. | |
| - **Rust source code and HTTP API:** https://github.com/AngshulMajumdar/Falcon-H1-Rust-Transformer-API | |
| - **This converted checkpoint:** https://huggingface.co/Angshul/Falcon-H1-0.5B-Rust | |
| - **Original pretrained model (Technology Innovation Institute):** https://huggingface.co/tiiuae/Falcon-H1-0.5B-Instruct | |
| ## Implementation | |
| The Rust v0.4 backend includes: | |
| - Native inference with Rust and Candle, supporting CPU and NVIDIA CUDA. | |
| - Custom fused CUDA kernels for Mamba-2 state recurrence. | |
| - Cached incremental decoding, retaining Mamba recurrent states, convolution history, and attention key/value states. | |
| - Batched grouped-query attention (GQA). | |
| - FP32 inference using the converted `.f32pack` weights. | |
| - Fixed-length greedy generation of up to **512 new tokens**, subject to a **2,048-token combined input/output limit** on the CUDA backend. | |
| - A lightweight HTTP API for inference and timing measurements. | |
| The provided `.f32pack` file is intended for this Rust backend. It is **not** a native Hugging Face `safetensors` checkpoint and cannot be opened directly using `transformers.from_pretrained()`. Use the upstream repository for standard Transformers inference. | |
| ## HTTP API | |
| | Endpoint | Purpose | | |
| | --- | --- | | |
| | `GET /health` | Check service and execution backend | | |
| | `GET /v1/model` | Retrieve model configuration | | |
| | `POST /v1/logits` | Calculate next-token logits | | |
| | `POST /v1/generate` | Generate tokens with greedy decoding | | |
| | `POST /v1/generate_profile` | Generate tokens and report prefill/decode timing | | |
| **The API uses token IDs, not raw text strings.** Use the original Falcon-H1 tokenizer to encode input and decode results. The server runs locally or on an externally managed deployment; this Hugging Face model repository does not itself provide a hosted endpoint. | |
| ### Build and run | |
| Install Rust and, for GPU execution, a compatible NVIDIA CUDA toolkit. Clone the source repository: | |
| ```bash | |
| git clone https://github.com/AngshulMajumdar/Falcon-H1-Rust-Transformer-API.git | |
| cd Falcon-H1-Rust-Transformer-API | |
| cargo build --release --features cuda | |
| ``` | |
| Download `falcon-h1.f32pack` from this Hugging Face repository and put it in the directory where you launch the server. Then start the CUDA API: | |
| ```bash | |
| ./target/release/falcon-h1-api \ | |
| --checkpoint falcon-h1.f32pack \ | |
| --device cuda \ | |
| --bind 127.0.0.1:8083 | |
| ``` | |
| Check that it is running: | |
| ```bash | |
| curl http://127.0.0.1:8083/health | |
| ``` | |
| Send a token-ID request: | |
| ```bash | |
| curl -X POST http://127.0.0.1:8083/v1/generate \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"input_ids":[1,2,3],"max_new_tokens":16}' | |
| ``` | |
| The response contains `output_ids`, including the supplied prompt tokens and newly generated tokens. The example IDs above are only a smoke test, not a meaningful natural-language prompt. | |
| For a natural-language request, obtain the tokenizer from `tiiuae/Falcon-H1-0.5B-Instruct` and use it to encode the prompt before calling the API. | |
| ### Reproducibility checks | |
| The GitHub repository includes kernel tests, cached-generation parity checks, and benchmarking scripts. | |
| ```bash | |
| cargo test --release --features cuda --lib fused_cuda_matches_reference_demo -- --nocapture | |
| cargo test --release --features cuda --lib cached_cuda_generation_equals_full_prefix -- --nocapture | |
| cargo test --release --features cuda --lib cached_cpu_generation_equals_full_prefix -- --nocapture | |
| ``` | |
| For benchmark options and dependencies, see the [GitHub README](https://github.com/AngshulMajumdar/Falcon-H1-Rust-Transformer-API#benchmark). | |
| ## Validation against the official Transformers model | |
| The Rust CUDA backend was validated on an **NVIDIA Tesla T4** in November 2026 against the official Hugging Face Transformers implementation of Falcon-H1-0.5B-Instruct. | |
| - The CUDA build and fused kernel correctness test passed. | |
| - Cached generation parity tests passed on CPU and CUDA. | |
| - FP32 logits agreed with the reference implementation, with a maximum absolute difference of approximately **5.6 × 10⁻⁴** over the tested prompts. | |
| - Final long-generation checks matched the official implementation **exactly at every generated-token position**. | |
| | Prompt tokens | Generated tokens | Exact matching tokens | | |
| | ---: | ---: | ---: | | |
| | 16 | 128 | 128/128 | | |
| | 64 | 512 | 512/512 | | |
| | 128 | 256 | 256/256 | | |
| | 128 | 512 | 512/512 | | |
| To compare the same number of tokens, early EOS stopping was disabled in the PyTorch reference. Rust v0.4 currently performs fixed-length generation and does not stop automatically at an EOS token. | |
| These checks validate the tested configurations; they do not constitute a formal equivalence proof across all inputs or devices. | |
| ## Performance | |
| On a Tesla T4, across **12 tested prompt/output-length configurations**, Rust CUDA end-to-end HTTP generation was **2.00×–2.77× faster** than the official Hugging Face Transformers implementation running with **eager attention and reference/fallback Mamba kernels** in FP32. | |
| **Important benchmark scope:** These results are **not** a comparison against optimized PyTorch Mamba kernels (`mamba_ssm` or `causal_conv1d`), FlashAttention, vLLM, or other production inference stacks. They should not be interpreted as evidence that this Rust implementation is universally faster. | |
| ## Current limitations | |
| - Inference only: no training, fine-tuning, or distillation. | |
| - Token-ID API: no built-in tokenizer or text-to-text endpoint. | |
| - Fixed-length greedy generation; no automatic EOS stopping. | |
| - Fused sequential Mamba prefill, rather than a fully parallel SSD prefill implementation. | |
| - Attention KV caches use on-device concatenation, not preallocated buffers. | |
| - No CUDA Graphs, optimized FlashAttention, or production-grade serving features. | |
| - Benchmark results are specific to the reported hardware, software configuration, and batch-size-one workload. | |
| ## Attribution and license | |
| **Falcon-H1-0.5B-Instruct, its architecture, and its original pretrained parameters were developed by the Technology Innovation Institute (TII).** This repository redistributes converted weights for use with the Rust inference implementation; it does not claim authorship of the underlying pretrained model. | |
| The original Falcon-H1 model is distributed under the **Falcon-LLM License**. Review the [upstream model page and its license terms](https://huggingface.co/tiiuae/Falcon-H1-0.5B-Instruct) before using or redistributing the checkpoint. The separate Rust source repository has its own code license. | |
| - **Upstream model:** https://huggingface.co/tiiuae/Falcon-H1-0.5B-Instruct | |
| - **Rust/CUDA API and reproducibility code:** https://github.com/AngshulMajumdar/Falcon-H1-Rust-Transformer-API | |