// the find
stochasticai/xTuring
Build, personalize and control your own LLMs. From data pre-processing to fine-tuning, xTuring provides an easy way to personalize open-source LLMs. Join our discord community: https://discord.gg/TgHXuSJEk6
xTuring is a wrapper around HuggingFace transformers + PEFT that simplifies LoRA/INT8/INT4 fine-tuning of popular open-source LLMs with a minimal API. It targets ML engineers and researchers who want to get SFT running quickly without wiring up the training loop themselves. Think of it as a higher-level abstraction over bitsandbytes + PEFT + DeepSpeed.
- The model key registry pattern (e.g. `BaseModel.create('llama2_lora_int8')`) is genuinely convenient and eliminates repetitive boilerplate for common model+technique combinations.
- CPU inference path via Intel Extension for Transformers is a real differentiator — most fine-tuning libs ignore CPU deployment entirely.
- DPO trainer is included alongside SFT, which saves having to bolt on TRL separately for preference-based alignment workflows.
- Examples are concrete and runnable with real datasets (Alpaca), not just toy hello-world snippets.
- Only perplexity is implemented for evaluation — no ROUGE, BLEU, accuracy on benchmarks, or anything task-specific. This makes the evaluation module nearly useless for production model selection.
- The abstraction leaks badly for non-standard use cases: if your model isn't in the registry, you're reverse-engineering the engine/model/trainer split to figure out where to hook in, and the inheritance chains are deep.
- Dependency on a specific frozen version of PEFT/bitsandbytes means you'll hit version conflicts with other packages in a real ML environment, and the requirements aren't pinned tightly enough to guarantee reproducibility.
- The 'GPT-OSS' model references are vague in the codebase — it's unclear exactly which weights/endpoints these map to, which is a trust issue when you're trying to understand what you're actually fine-tuning.