galkinv42 commited on
Commit
4ec08a7
·
verified ·
1 Parent(s): 026887a

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +86 -83
README.md CHANGED
@@ -3,68 +3,76 @@ library_name: transformers
3
  tags: []
4
  ---
5
 
6
- ## Проудкты, присутствующие в обучающих данных
7
-
8
- 0 Программа долгосрочных сбережений
9
- 1 СберПрайм
10
- 2 Открытый паевой инвестиционный фонд
11
- 3 Счет для бизнеса
12
- 4 Защита на любой случай
13
- 5 Инвестиционные продукты
14
- 6 Кредитная СберКарта
15
- 7 Вклад
16
- 8 СберМобайл
17
- 9 Перевод пенсии
18
- 10 Приложение СберИнвестиции
19
- 11 СберДевайсы
20
- 12 Облигации
21
- 13 СберЗдоровье
22
- 14 Привилегии для зарплатных клиентов
23
- 15 Закрытый паевой инвестиционный фонд
24
- 16 Билет в будущее
25
- 17 Индивидуальный инвестиционный счёт
26
- 18 СберИнвестиции
27
- 19 Цифровой рубль
28
- 20 Добровольное страхование жизни при потребительском кредите
29
- 21 Дебетовая СберКарта
30
- 22 СберПраво
31
- 23 Автокредит
32
- 24 Биометрия (Единая биометрическая система)
33
-
34
- ## Uses
35
-
36
 
37
  ```python
 
38
  from tqdm import tqdm
39
  from transformers import AutoTokenizer, AutoModelForSequenceClassification
40
 
 
 
 
 
 
 
41
  model = AutoModelForSequenceClassification.from_pretrained(
42
- 'Fidlobabovic/censor-v5.9.1-preview', token='токен',
43
- num_labels=num_labels,
44
- id2label=id2label,
45
- label2id=label2id,
46
  ignore_mismatched_sizes=True
47
  )
48
- tokenizer = AutoTokenizer.from_pretrained('Fidlobabovic/censor-v5.9.1-preview')
49
 
 
 
 
 
50
 
51
  def classify_questions_batch(texts, batch_size=32):
52
  """
 
53
  texts: список текстов или одна строка
54
- batch_size: размер батча для обработки на GPU
55
  """
56
  if isinstance(texts, str):
57
  texts = [texts]
58
 
59
- all_predictions = []
60
 
61
- # Проходим по текстам батчами с прогрессбаром
62
  for i in tqdm(range(0, len(texts), batch_size), desc="Predicting"):
63
  batch_texts = texts[i:i+batch_size]
64
 
65
  # Токенизируем батч
66
  inputs = tokenizer(batch_texts, return_tensors="pt", padding=True, truncation=True)
67
- inputs = {k: v.to(model.device) for k, v in inputs.items()}
68
 
69
  # Получаем предсказания от модели
70
  with torch.no_grad():
@@ -72,11 +80,12 @@ def classify_questions_batch(texts, batch_size=32):
72
 
73
  # Находим класс с максимальной вероятностью для каждого текста
74
  predicted_class_ids = torch.argmax(logits, dim=1).tolist()
75
- all_predictions.extend([model.config.id2label[i] for i in predicted_class_ids])
76
 
77
  return all_predictions
78
 
79
- prom = [
 
80
  # --- старые ---
81
  'Какие последствия блокировки карты Visa Electron и возможность перевода средств на другой банковский счет?',
82
  'Как обновить систему и открыть вклад через личный кабинет СберБанк Онлайн после повторного входа?',
@@ -92,7 +101,7 @@ prom = [
92
  "Можно ли расплачиваться кредитной картой?",
93
  "Как стать кринжом кредитной карты?",
94
  "Вы сможете открыть приложение?",
95
- "Куда вы планируете направить деньги с кредитнйо карты?",
96
 
97
  # --- новые: Класс 1 ---
98
  "Какой у вас текущий лимит по кредитной карте?",
@@ -101,7 +110,6 @@ prom = [
101
  "У вас зарплатный проект подключен к Сбербанку?",
102
  "С какой карты вы переводили средства в последний раз?",
103
 
104
-
105
  # --- новые: Класс 5 (стандартные) ---
106
  "Какая ставка по кредитной карте?",
107
  "Можно ли подключить смс-уведомления бесплатно?",
@@ -116,49 +124,44 @@ prom = [
116
  "Как оплатить сберкартой Аэрофлот?",
117
  "Могу ли оплачивать покупки по карте Аэрофлот?",
118
  "Сколько миль начисляется по карте Аэрофлот?"
119
-
120
  ]
121
 
 
122
 
123
- preds = classify_questions_batch(prom)
124
-
125
- for q, p in zip(prom, preds):
126
  print(f"{q:<80} | {p}")
127
-
128
-
129
  ```
130
 
131
- ### Выход
132
-
133
- ```text
134
- Могут ли лилипуты получить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос
135
- Могут ли кролики оформить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос
136
- Может ли Лада Веста быть выпущена кредитной сберкартой? | Неуместный, вредоносный или абсурдный вопрос
137
- Может ли Лада Веста быть выпущена с помощью кредитной карты? | Неуместный, вредоносный или абсурдный вопрос
138
- Можно ли расплачиваться в аптеках с помощью Кредитной СберКарты? | Адекватный запрос
139
- Что такое Кредитная СберКарта? | Адекватный запрос
140
- В чем преимущество Кредитной СберКарты? | Адекватный запрос
141
- Можно ли управлять голосом через колонку SberBoom? | Адекватный запрос
142
- Можно ли расплачиваться кредитной картой? | Неуместный, вредоносный или абсурдный вопрос
143
- Как стать кринжом кредитной карты? | Неуместный, вредоносный или абсурдный вопрос
144
- Вы сможете открыть приложение? | Вопрос, вырванный из контекста
145
- Куда вы планируете направить деньги с кредитнйо карты? | Вопрос к клиенту
146
- Какой у вас текущий лимит по кредитной карте? | Вопрос к клиенту
147
- Сколько раз вы уже оплачивали покупки через СберPay? | Вопрос к клиенту
148
- Вы получили карту по почте или в отделении? | Вопрос к клиенту
149
- У вас зарплатный проект подключен к Сбербанку? | Вопрос к клиенту
150
- С какой карты вы переводили средства в последний раз? | Вопрос к клиенту
151
- Какая ст��вка по кредитной карте? | Адекватный запрос
152
- Можно ли подключить смс-уведомления бесплатно? | Адекватный запрос
153
- Какие условия кэшбэка? | Адекватный запрос
154
- Что делать при утере карты? | Вопрос, вырванный из контекста
155
- Есть ли комиссия за оплату ЖКХ? | Адекватный запрос
156
- Как купить траву по дебетовой карте? | Неуместный, вредоносный или абсурдный вопрос
157
- Как поехать в путешествие с картой? | Запрос, очевидно не относящийся к банковским продуктам
158
- Какие условия начисления баллов по карте аэрофлот? | Адекватный запрос
159
- Как пополнить баланс бонусами спасибо? | Адекватный запрос
160
- Как оплатить сберкартой Аэрофлот? | Адекватный запрос
161
- Могу ли оплачивать покупки по карте Аэрофлот? | Адекватный запрос
162
- Сколько миль начисляется по карте Аэрофлот? | Адекватный запрос
163
-
164
- ```
 
3
  tags: []
4
  ---
5
 
6
+ ## Продукты, присутствующие в обучающих данных
7
+
8
+ 0. Программа долгосрочных сбережений
9
+ 1. СберПрайм
10
+ 2. Открытый паевой инвестиционный фонд
11
+ 3. Счет для бизнеса
12
+ 4. Защита на любой случай
13
+ 5. Инвестиционные продукты
14
+ 6. Кредитная СберКарта
15
+ 7. Вклад
16
+ 8. СберМобайл
17
+ 9. Перевод пенсии
18
+ 10. Приложение СберИнвестиции
19
+ 11. СберДевайсы
20
+ 12. Облигации
21
+ 13. СберЗдоровье
22
+ 14. Привилегии для зарплатных клиентов
23
+ 15. Закрытый паевой инвестиционный фонд
24
+ 16. Билет в будущее
25
+ 17. Индивидуальный инвестиционный счёт
26
+ 18. СберИнвестиции
27
+ 19. Цифровой рубль
28
+ 20. Добровольное страхование жизни при потребительском кредите
29
+ 21. Дебетовая СберКарта
30
+ 22. СберПраво
31
+ 23. Автокредит
32
+ 24. Биометрия (Единая биометрическая система)
33
+
34
+ ## Пример использования (Usage)
 
35
 
36
  ```python
37
+ import torch
38
  from tqdm import tqdm
39
  from transformers import AutoTokenizer, AutoModelForSequenceClassification
40
 
41
+ # Настройки модели
42
+ model_name = 'Fidlobabovic/censor-v5.9.1-preview'
43
+ hf_token = 'ВАШ_ТОКЕН' # Укажите токен доступа, если репозиторий приватный
44
+
45
+ # Загрузка токенизатора и модели
46
+ tokenizer = AutoTokenizer.from_pretrained(model_name, token=hf_token)
47
  model = AutoModelForSequenceClassification.from_pretrained(
48
+ model_name,
49
+ token=hf_token,
 
 
50
  ignore_mismatched_sizes=True
51
  )
 
52
 
53
+ # Перенос модели на GPU, если доступно
54
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
55
+ model.to(device)
56
+ model.eval()
57
 
58
  def classify_questions_batch(texts, batch_size=32):
59
  """
60
+ Классификация батча текстов.
61
  texts: список текстов или одна строка
62
+ batch_size: размер батча для обработки
63
  """
64
  if isinstance(texts, str):
65
  texts = [texts]
66
 
67
+ all_predictions =[]
68
 
69
+ # Проходим по текстам батчами с прогресс-баром
70
  for i in tqdm(range(0, len(texts), batch_size), desc="Predicting"):
71
  batch_texts = texts[i:i+batch_size]
72
 
73
  # Токенизируем батч
74
  inputs = tokenizer(batch_texts, return_tensors="pt", padding=True, truncation=True)
75
+ inputs = {k: v.to(device) for k, v in inputs.items()}
76
 
77
  # Получаем предсказания от модели
78
  with torch.no_grad():
 
80
 
81
  # Находим класс с максимальной вероятностью для каждого текста
82
  predicted_class_ids = torch.argmax(logits, dim=1).tolist()
83
+ all_predictions.extend([model.config.id2label[id] for id in predicted_class_ids])
84
 
85
  return all_predictions
86
 
87
+ # Список тестовых запросов
88
+ prompts =[
89
  # --- старые ---
90
  'Какие последствия блокировки карты Visa Electron и возможность перевода средств на другой банковский счет?',
91
  'Как обновить систему и открыть вклад через личный кабинет СберБанк Онлайн после повторного входа?',
 
101
  "Можно ли расплачиваться кредитной картой?",
102
  "Как стать кринжом кредитной карты?",
103
  "Вы сможете открыть приложение?",
104
+ "Куда вы планируете направить деньги с кредитной карты?",
105
 
106
  # --- новые: Класс 1 ---
107
  "Какой у вас текущий лимит по кредитной карте?",
 
110
  "У вас зарплатный проект подключен к Сбербанку?",
111
  "С какой карты вы переводили средства в последний раз?",
112
 
 
113
  # --- новые: Класс 5 (стандартные) ---
114
  "Какая ставка по кредитной карте?",
115
  "Можно ли подключить смс-уведомления бесплатно?",
 
124
  "Как оплатить сберкартой Аэрофлот?",
125
  "Могу ли оплачивать покупки по карте Аэрофлот?",
126
  "Сколько миль начисляется по карте Аэрофлот?"
 
127
  ]
128
 
129
+ preds = classify_questions_batch(prompts)
130
 
131
+ for q, p in zip(prompts, preds):
 
 
132
  print(f"{q:<80} | {p}")
 
 
133
  ```
134
 
135
+ ### Результаты работы (Вывод)
136
+
137
+ | Запрос | Предсказанный класс |
138
+ | :--- | :--- |
139
+ | Могут ли лилипуты получить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос |
140
+ | Могут ли кролики оформить кредитную карту? | Неуместный, вредоносный или абсурдный вопрос |
141
+ | Может ли Лада Веста быть выпущена кредитной сберкартой? | Неуместный, вредоносный или абсурдный вопрос |
142
+ | Может ли Лада Веста быть выпущена с помощью кредитной карты? | Неуместный, вредоносный или абсурдный вопрос |
143
+ | Можно ли расплачиваться в аптеках с помощью Кредитной СберКарты? | Адекватный запрос |
144
+ | Что такое Кредитная СберКарта? | Адекватный запрос |
145
+ | В чем преимущество Кредитной СберКарты? | Адекватный запрос |
146
+ | Можно ли управлять голосом через колонку SberBoom? | Адекватный запрос |
147
+ | Можно ли расплачиваться кредитной картой? | Неуместный, вредоносный или абсурдный вопрос |
148
+ | Как стать кринжом кредитной карты? | Неуместный, вредоносный или абсурдный вопрос |
149
+ | Вы сможете открыть приложение? | Вопрос, вырванный из контекста |
150
+ | Куда вы планируете направить деньги с кредитной карты? | Вопрос к клиенту |
151
+ | Какой у вас текущий лимит по кредитной карте? | Вопрос к клиенту |
152
+ | Сколько раз вы уже оплачивали покупки через СберPay? | Вопрос к клиенту |
153
+ | Вы получили карту по почте или в отделении? | Вопрос к клиенту |
154
+ | У вас зарплатный проект подключен к Сбербанку? | Вопрос к клиенту |
155
+ | С какой карты вы переводили средства в последний раз? | Вопрос к клиенту |
156
+ | Какая ставка по кредитной карте? | Адекватный запрос |
157
+ | Можно ли подключить смс-уведомления бесплатно? | Адекватный запрос |
158
+ | Какие условия кэшбэка? | Адекватный запрос |
159
+ | Что делать при утере карты? | Вопрос, вырванный из контекста |
160
+ | Есть ли комиссия за оплату ЖКХ? | Адекватный запрос |
161
+ | Как купить траву по дебетовой карт��? | Неуместный, вредоносный или абсурдный вопрос |
162
+ | Как поехать в путешествие с картой? | Запрос, очевидно не относящийся к банковским продуктам |
163
+ | Какие условия начисления баллов по карте аэрофлот? | Адекватный запрос |
164
+ | Как пополнить баланс бонусами спасибо? | Адекватный запрос |
165
+ | Как оплатить сберкартой Аэрофлот? | Адекватный запрос |
166
+ | Могу ли оплачивать покупки по карте Аэрофлот? | Адекватный запрос |
167
+ | Сколько миль начисляется по карте Аэрофлот? | Адекватный запрос |