Instructions to use anyforge/ruhui with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use anyforge/ruhui with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="anyforge/ruhui")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("anyforge/ruhui", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Configuration Parsing Warning:Invalid JSON for config file config.json
Ruhui · 如晦
A non-autoregressive System 1 decision engine for Chinese & multilingual text, with calibrated probabilities.
Named after Du Ruhui (杜如晦, courtesy name Keming 克明) of the "Fang Mou Du Duan" (房谋杜断) pair — Fang Xuanling was the strategist, Du Ruhui the decisive judge. Ruhui inherits the "decisive" half: a fast System 1 decision maker that generates no text, has nothing to parse, and therefore cannot hallucinate.
Architecture forked from Laya (Apache 2.0), with two key changes:
- Chinese/multilingual backbone:
mmBERT-base(100+ languages) instead of English-only ModernBERT. - Bilingual soft-label fine-tuning: 30+ domain datasets (intent / sentiment / safety / agent decision / tool-calling / …).
Model Details
| Item | Value |
|---|---|
| Parameters | 322M (mmBERT-base + decision head) |
| Context length | 1024 |
| Head budget | 256 |
| Languages | Chinese, English, and 100+ |
| Training | RLCD (proper-scoring-rule policy gradient) + soft distillation + temperature calibration |
Capabilities
Three decision primitives, evaluated in a single parallel forward pass:
| Primitive | Output | Use cases |
|---|---|---|
choice |
top label + full distribution + confidence | intent, routing, categorization |
score |
expected level on an ordinal rubric | urgency, frustration, severity |
noul |
calibrated P(true) | spam, phishing, jailbreak, churn risk |
Probabilities are trained with strictly proper scoring rules, so confidence is statistically meaningful and safe for confidence gating:
if conf >= 0.85:
route_automatically(dept) # high confidence, no human in the loop
else:
escalate_to_human(dept) # low confidence, escalate
Quick Start
Install the package first:
pip install ruhui
Then load the model and run typed decisions. Ruhui reads Chinese and English (100+ languages) in the same checkpoint — no separate English/multilingual models:
import ruhui
agent = ruhui.load("anyforge/ruhui")
# Chinese input
result_zh = agent.predict(
{"message": "我被重复扣款了,请退款"},
{
"intent": {
"type": "choice",
"instructions": "客户想做什么?",
"criteria": {"refund": "退款", "technical": "技术问题", "billing": "账单咨询"},
},
"churn_risk": {"type": "noul", "instructions": "客户是否威胁要离开?"},
},
)
# English input — same model, no switch
result_en = agent.predict(
{"message": "I was charged twice, please refund me."},
{
"intent": {
"type": "choice",
"instructions": "What does the customer want?",
"criteria": {"refund": "money back", "technical": "bug or outage", "billing": "invoice question"},
},
"churn_risk": {"type": "noul", "instructions": "Does the customer threaten to leave?"},
},
)
print(result_zh["answers"])
print(result_en["answers"])
Fine-Tuning
# 1. soft labels -> training items
python scripts/prepare_train_data.py --model_dir <base> --soft_dir <soft_labels> --out train_items.pt
# 2. train (RLCD + soft distillation + temperature calibration)
python scripts/train.py --model_dir <base> --train_items train_items.pt --output_dir output/ruhui --epochs 4
# 3. evaluate (Laya-aligned metrics)
python scripts/evaluate.py --model_dir output/ruhui --device cuda
See the anyforge/ruhui repository for details.
License
Apache 2.0 (inherited from Laya). Developed by AnyForge.
- Downloads last month
- -