Text Generation
MLX
Safetensors
deepseek_v41
apple-silicon
deepseek-v41
quantized
2-bit
mtp
experimental
Instructions to use TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # if on a CUDA device, also pip install mlx[cuda] # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP") prompt = "Once upon a time in" text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Generate some text mlx_lm.generate --model "TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP" --prompt "Once upon a time"
- Atomic Chat
Download runtime/test_generate.py from TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP: direct link, hf CLI and curl.
- Browser
- Download file 1.52 kB
-
https://huggingface.co/TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP/resolve/main/runtime/test_generate.py
- Command line
-
hf download hf://TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP/runtime/test_generate.py
-
curl -L -o test_generate.py https://huggingface.co/TensorFold/DeepSeek-V4.1-Flash-MLX-2bit-MTP/resolve/main/runtime/test_generate.py
1.52 kB
| import unittest | |
| from types import SimpleNamespace | |
| import mlx.core as mx | |
| from generate import generate | |
| class Runner(unittest.TestCase): | |
| def model(self): | |
| class Tokenizer: | |
| def encode(self,*args,**kwargs):return SimpleNamespace(ids=[7,8]) | |
| def decode(self,ids,**kwargs):return ' '.join(str(i) for i in ids if i) | |
| class Model: | |
| max_tokens=128 | |
| w=SimpleNamespace(config={'eos_token_id':0}) | |
| hash=SimpleNamespace(history=[]) | |
| tokenizer=Tokenizer() | |
| def step(self,token): | |
| self.position+=1 | |
| expected=20 if self.position<=2 else 21 if self.position==3 else 0 | |
| return mx.array([10. if i==expected else -10. for i in range(32)]),mx.array([0.]) | |
| return Model() | |
| def test_greedy_output_counts_and_context_reset(self): | |
| model=self.model() | |
| for _ in range(2): | |
| output,report=generate(model,'Hello',16) | |
| self.assertEqual(output,'20 21') | |
| self.assertEqual(report['output_tokens'],3) | |
| self.assertEqual(report['timed_decode_steps'],2) | |
| self.assertEqual(report['stop_reason'],'eos') | |
| def test_output_limit(self): | |
| output,report=generate(self.model(),'Hello',1) | |
| self.assertEqual(output,'20');self.assertEqual(report['timed_decode_steps'],0) | |
| def test_invalid_budget(self): | |
| with self.assertRaises(ValueError):generate(self.model(),'Hello',0) | |
| if __name__=='__main__':unittest.main() | |