Downloads · 30 days
7
9% of all-time downloads
VladimirRH/ruRoberta-large-medical-router
ruRoberta-large-medical-router is a text classification model from VladimirRH. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
LoRA-дообученная ai-forever/ruRoberta-large для классификации медицинских жалоб на русском языке по 12 врачебным специальностям. Модель предсказывает, к какому специалисту стоит обратиться на основе текстового описани…
Downloads · 30 days
7
9% of all-time downloads
All-time downloads
77
Public
Parameters
355M
1.4 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors1.4 GB · 100%
From the Hugging Face model README
LoRA-дообученная ai-forever/ruRoberta-large для классификации медицинских жалоб на русском языке по 12 врачебным специальностям. Модель предсказывает, к какому специалисту стоит обратиться на основе текстового описания симптомов.
⚠️ Это учебный/pet-проект, а не медицинское изделие. Модель не проходила клинической валидации и не предназначена для использования в реальной клинической практике — ни как единственный источник для маршрутизации пациентов, ни как основание для медицинских решений. Используйте только в исследовательских/образовательных целях, на свой риск, без каких-либо гарантий точности.
Гинеколог, Терапевт, Невролог, Гастроэнтеролог, Дерматолог, Отоларинголог, Уролог, Травматолог, Стоматолог, Хирург, Проктолог, Офтальмолог
from transformers import pipeline
clf = pipeline("text-classification", model="VladimirRH/medical-triage-clf")
clf("тянущая боль внизу живота, задержка цикла")
# [{'label': 'Гинеколог', 'score': 0.91}]
Модель обучена через peft/LoRA и опубликована в смёрженном виде (merge_and_unload), поэтому для инференса peft не требуется — работает как обычная модель AutoModelForSequenceClassification.
Softmax-score не откалиброван идеально, но если нужно отсекать неуверенные предсказания:
def classify_with_abstention(text, threshold=0.7):
result = clf(text)[0]
if result["score"] < threshold:
return {"label": "нет уверенности в ответе", "score": result["score"]}
return result
Порог 0.7 — отправная точка, а не откалиброванное значение; перед использованием в своих целях желательно подобрать его на собственной валидационной выборке через анализ compromise между coverage и accuracy-at-threshold.
VladimirRH/medical-routing-dataset, ~1200 размеченных жалоб пациентов на русском языке.ai-forever/ruRoberta-largepeft), r=8, lora_alpha=16, lora_dropout=0.1, target_modules=["query", "value"], bias="none"learning_rate=2e-4, batch_size=16WeightedRandomSampler (обратные частоты класса)macro F1 на валидацииAccuracy: 0.721, Macro F1: 0.690 (support = 122)
| Класс | Precision | Recall | F1 | Support |
|---|---|---|---|---|
| Гастроэнтеролог | 0.714 | 0.556 | 0.625 | 9 |
| Гинеколог | 0.800 | 0.870 | 0.833 | 23 |
| Дерматолог | 0.667 | 0.750 | 0.706 | 8 |
| Невролог | 0.900 | 0.750 | 0.818 | 12 |
| Отоларинголог | 0.500 | 1.000 | 0.667 | 6 |
| Офтальмолог | 0.900 | 1.000 | 0.947 | 9 |
| Проктолог | 0.750 | 0.667 | 0.706 | 9 |
| Стоматолог | 0.909 | 1.000 | 0.952 | 10 |
| Терапевт | 0.600 | 0.400 | 0.480 | 15 |
| Травматолог | 0.429 | 0.600 | 0.500 | 5 |
| Уролог | 0.667 | 0.333 | 0.444 | 6 |
| Хирург | 0.600 | 0.600 | 0.600 | 10 |
Учебный проект. Hugging Face: VladimirRH