| | --- |
| | library_name: transformers |
| | tags: [] |
| | --- |
| | |
| | ## Продукты, присутствующие в обучающих данных |
| |
|
| | 0. Программа долгосрочных сбережений |
| | 1. СберПрайм |
| | 2. Открытый паевой инвестиционный фонд |
| | 3. Счет для бизнеса |
| | 4. Защита на любой случай |
| | 5. Инвестиционные продукты |
| | 6. Кредитная СберКарта |
| | 7. Вклад |
| | 8. СберМобайл |
| | 9. Перевод пенсии |
| | 10. Приложение СберИнвестиции |
| | 11. СберДевайсы |
| | 12. Облигации |
| | 13. СберЗдоровье |
| | 14. Привилегии для зарплатных клиентов |
| | 15. Закрытый паевой инвестиционный фонд |
| | 16. Билет в будущее |
| | 17. Индивидуальный инвестиционный счёт |
| | 18. СберИнвестиции |
| | 19. Цифровой рубль |
| | 20. Добровольное страхование жизни при потребительском кредите |
| | 21. Дебетовая СберКарта |
| | 22. СберПраво |
| | 23. Автокредит |
| | 24. Биометрия (Единая биометрическая система) |
| |
|
| | ## Пример использования (Usage) |
| |
|
| | ```python |
| | import torch |
| | from tqdm import tqdm |
| | from transformers import AutoTokenizer, AutoModelForSequenceClassification |
| | |
| | # Настройки модели |
| | model_name = 'Fidlobabovic/censor-v5.9.1-preview' |
| | hf_token = 'ВАШ_ТОКЕН' # Укажите токен доступа, если репозиторий приватный |
| | |
| | # Загрузка токенизатора и модели |
| | tokenizer = AutoTokenizer.from_pretrained(model_name, token=hf_token) |
| | model = AutoModelForSequenceClassification.from_pretrained( |
| | model_name, |
| | token=hf_token, |
| | ignore_mismatched_sizes=True |
| | ) |
| | |
| | # Перенос модели на GPU, если доступно |
| | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
| | model.to(device) |
| | model.eval() |
| | |
| | def classify_questions_batch(texts, batch_size=32): |
| | """ |
| | Классификация батча текстов. |
| | texts: список текстов или одна строка |
| | batch_size: размер батча для обработки |
| | """ |
| | if isinstance(texts, str): |
| | texts = [texts] |
| | |
| | all_predictions =[] |
| | |
| | # Проходим по текстам батчами с прогресс-баром |
| | for i in tqdm(range(0, len(texts), batch_size), desc="Predicting"): |
| | batch_texts = texts[i:i+batch_size] |
| | |
| | # Токенизируем батч |
| | inputs = tokenizer(batch_texts, return_tensors="pt", padding=True, truncation=True) |
| | inputs = {k: v.to(device) for k, v in inputs.items()} |
| | |
| | # Получаем предсказания от модели |
| | with torch.no_grad(): |
| | logits = model(**inputs).logits |
| | |
| | # Находим класс с максимальной вероятностью для каждого текста |
| | predicted_class_ids = torch.argmax(logits, dim=1).tolist() |
| | all_predictions.extend([model.config.id2label[id] for id in predicted_class_ids]) |
| | |
| | return all_predictions |
| | |
| | # Список тестовых запросов |
| | prompts =[ |
| | # --- старые --- |
| | 'Какие последствия блокировки карты Visa Electron и возможность перевода средств на другой банковский счет?', |
| | 'Как обновить систему и открыть вклад через личный кабинет СберБанк Онлайн после повторного входа?', |
| | 'Что такое Кредитная СберКарта и чем она отличается от талонов на хлеб в Советском Союзе?', |
| | 'Могут ли лилипуты получить кредитную карту?', |
| | "Могут ли кролики оформить кредитную карту?", |
| | "Может ли Лада Веста быть выпущена кредитной сберкартой?", |
| | "Может ли Лада Веста быть выпущена с помощью кредитной карты?", |
| | "Можно ли расплачиваться в аптеках с помощью Кредитной СберКарты?", |
| | "Что такое Кредитная СберКарта?", |
| | "В чем преимущество Кредитной СберКарты?", |
| | "Можно ли управлять голосом через колонку SberBoom?", |
| | "Можно ли расплачиваться кредитной картой?", |
| | "Как стать кринжом кредитной карты?", |
| | "Вы сможете открыть приложение?", |
| | "Куда вы планируете направить деньги с кредитной карты?", |
| | |
| | # --- новые: Класс 1 --- |
| | "Какой у вас текущий лимит по кредитной карте?", |
| | "Сколько раз вы уже оплачивали покупки через СберPay?", |
| | "Вы получили карту по почте или в отделении?", |
| | "У вас зарплатный проект подключен к Сбербанку?", |
| | "С какой карты вы переводили средства в последний раз?", |
| | |
| | # --- новые: Класс 5 (стандартные) --- |
| | "Какая ставка по кредитной карте?", |
| | "Можно ли подключить смс-уведомления бесплатно?", |
| | "Какие условия кэшбэка?", |
| | "Что делать при утере карты?", |
| | "Есть ли комиссия за оплату ЖКХ?", |
| | |
| | "Как купить траву по дебетовой карте?", |
| | "Как поехать в путешествие с картой?", |
| | "Какие условия начисления баллов по карте аэрофлот?", |
| | "Как пополнить баланс бонусами спасибо?", |
| | "Как оплатить сберкартой Аэрофлот?", |
| | "Могу ли оплачивать покупки по карте Аэрофлот?", |
| | "Сколько миль начисляется по карте Аэрофлот?" |
| | ] |
| | |
| | preds = classify_questions_batch(prompts) |
| | |
| | for q, p in zip(prompts, preds): |
| | print(f"{q:<80} | {p}") |
| | ``` |
| |
|
| | ### Результаты работы (Вывод) |
| |
|
| | | Запрос | Предсказанный класс | |
| | | :--- | :--- | |
| | | Могут ли лилипуты получить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Могут ли кролики оформить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Может ли Лада Веста быть выпущена кредитной сберкартой? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Может ли Лада Веста быть выпущена с помощью кредитной карты? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Можно ли расплачиваться в аптеках с помощью Кредитной СберКарты? | Адекватный запрос | |
| | | Что такое Кредитная СберКарта? | Адекватный запрос | |
| | | В чем преимущество Кредитной СберКарты? | Адекватный запрос | |
| | | Можно ли управлять голосом через колонку SberBoom? | Адекватный запрос | |
| | | Можно ли расплачиваться кредитной картой? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Как стать кринжом кредитной карты? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Вы сможете открыть приложение? | Вопрос, вырванный из контекста | |
| | | Куда вы планируете направить деньги с кредитной карты? | Вопрос к клиенту | |
| | | Какой у вас текущий лимит по кредитной карте? | Вопрос к клиенту | |
| | | Сколько раз вы уже оплачивали покупки через СберPay? | Вопрос к клиенту | |
| | | Вы получили карту по почте или в отделении? | Вопрос к клиенту | |
| | | У вас зарплатный проект подключен к Сбербанку? | Вопрос к клиенту | |
| | | С какой карты вы переводили средства в последний раз? | Вопрос к клиенту | |
| | | Какая ставка по кредитной карте? | Адекватный запрос | |
| | | Можно ли подключить смс-уведомления бесплатно? | Адекватный запрос | |
| | | Какие условия кэшбэка? | Адекватный запрос | |
| | | Что делать при утере карты? | Вопрос, вырванный из контекста | |
| | | Есть ли комиссия за оплату ЖКХ? | Адекватный запрос | |
| | | Как купить траву по дебетовой карте? | Неуместный, вредоносный или абсурдный вопрос | |
| | | Как поехать в путешествие с картой? | Запрос, очевидно не относящийся к банковским продуктам | |
| | | Какие условия начисления баллов по карте аэрофлот? | Адекватный запрос | |
| | | Как пополнить баланс бонусами спасибо? | Адекватный запрос | |
| | | Как оплатить сберкартой Аэрофлот? | Адекватный запрос | |
| | | Могу ли оплачивать покупки по карте Аэрофлот? | Адекватный запрос | |
| | | Сколько миль начисляется по карте Аэрофлот? | Адекватный запрос | |