Text Classification
Transformers
ONNX
Safetensors
Transformers.js
modernbert
prompt-classification
task-classification
prompt-complexity
llm-routing
model-routing
data-curation
mmbert
text-embeddings-inference
Instructions to use Horizon-Labs/multilingual-prompt-task-complexity-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Horizon-Labs/multilingual-prompt-task-complexity-base with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="Horizon-Labs/multilingual-prompt-task-complexity-base")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("Horizon-Labs/multilingual-prompt-task-complexity-base") model = AutoModelForSequenceClassification.from_pretrained("Horizon-Labs/multilingual-prompt-task-complexity-base", device_map="auto") - Transformers.js
How to use Horizon-Labs/multilingual-prompt-task-complexity-base with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('text-classification', 'Horizon-Labs/multilingual-prompt-task-complexity-base'); - Notebooks
- Google Colab
- Kaggle
Download code/prompt/eval_prompt.py from Horizon-Labs/multilingual-prompt-task-complexity-base: direct link, hf CLI and curl.
- Browser
- Download file 1.71 kB
-
https://huggingface.co/Horizon-Labs/multilingual-prompt-task-complexity-base/resolve/main/code/prompt/eval_prompt.py
- Command line
-
hf download hf://Horizon-Labs/multilingual-prompt-task-complexity-base/code/prompt/eval_prompt.py
-
curl -L -o eval_prompt.py https://huggingface.co/Horizon-Labs/multilingual-prompt-task-complexity-base/resolve/main/code/prompt/eval_prompt.py
1.71 kB
| """Evaluate a prompt task & complexity classifier (17 sigmoid outputs: task_* + dimensions) against the judge labels. | |
| python prompt/eval_prompt.py --models A,B --ref TEST_JUDGED.parquet --out R.json""" | |
| import argparse, json, os, sys | |
| import numpy as np, pandas as pd, torch | |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
| sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) | |
| from metrics import metrics | |
| ap = argparse.ArgumentParser(); ap.add_argument("--models", required=True); ap.add_argument("--ref", required=True); ap.add_argument("--out", required=True) | |
| ap.add_argument("--bs", type=int, default=64); args = ap.parse_args() | |
| ref = pd.read_parquet(args.ref); res = json.load(open(args.out)) if os.path.exists(args.out) else {} | |
| for spec in args.models.split(","): | |
| tok = AutoTokenizer.from_pretrained(spec); m = AutoModelForSequenceClassification.from_pretrained(spec, torch_dtype=torch.bfloat16).cuda().eval() | |
| labels = [m.config.id2label[i] for i in range(m.config.num_labels)]; P = np.zeros((len(ref), len(labels))) | |
| order = np.argsort(ref.text.str.len().values) | |
| with torch.no_grad(): | |
| for s in range(0, len(ref), args.bs): | |
| b = order[s:s + args.bs]; e = tok(ref.text.iloc[b].tolist(), truncation=True, max_length=512, padding=True, return_tensors="pt") | |
| P[b] = torch.sigmoid(m(input_ids=e["input_ids"].cuda(), attention_mask=e["attention_mask"].cuda()).logits.float()).cpu().numpy() | |
| pred = pd.DataFrame(P, columns=labels); r = metrics(pred, ref, ref.lang.values) | |
| print(spec, {k: round(v, 4) for k, v in r.items() if isinstance(v, float)}, flush=True); res[spec] = r; json.dump(res, open(args.out, "w"), indent=1) | |