subtitles/ru/01_the-pipeline-function.srt (295 lines of code) (raw):
1
00:00:00,069 --> 00:00:01,341
2
00:00:01,341 --> 00:00:02,449
3
00:00:02,449 --> 00:00:05,880
4
00:00:05,880 --> 00:00:07,080
- Функция pipeline (конвеер).
5
00:00:09,540 --> 00:00:12,020
Функция pipeline является наиболее высокоуровневым API
6
00:00:12,020 --> 00:00:14,010
библиотеки Transformers.
7
00:00:14,010 --> 00:00:16,050
Она объединяет все шаги
8
00:00:16,050 --> 00:00:18,873
перехода от необработанных текстов к пригодным для использования прогнозам.
9
00:00:20,228 --> 00:00:22,980
Используемая модель лежит в основе конвейера,
10
00:00:22,980 --> 00:00:24,390
но конвейер также включает
11
00:00:24,390 --> 00:00:26,610
всю необходимую пред-обработку,
12
00:00:26,610 --> 00:00:30,240
поскольку модель ожидает не тексты, а числа,
13
00:00:30,240 --> 00:00:32,040
а также некоторую постобработку,
14
00:00:32,040 --> 00:00:34,533
чтобы сделать вывод модели человекочитаемым.
15
00:00:35,910 --> 00:00:37,593
Давайте рассмотрим первый пример
16
00:00:37,593 --> 00:00:39,693
с конвейером анализа настроений.
17
00:00:40,740 --> 00:00:44,670
Этот конвейер выполняет классификацию текста на заданном входе
18
00:00:44,670 --> 00:00:46,953
и определяет, является ли он позитивным или негативным.
19
00:00:47,910 --> 00:00:51,750
Здесь он приписывает положительную оценку данному тексту
20
00:00:51,750 --> 00:00:54,413
с достоверностью 95%.
21
00:00:55,650 --> 00:00:58,470
Вы можете передать множество текстов в один конвейер,
22
00:00:58,470 --> 00:01:00,270
которые будут обработаны и переданы
23
00:01:00,270 --> 00:01:02,673
через модель вместе как батч (пакет).
24
00:01:03,570 --> 00:01:05,970
На выходе получается список отдельных результатов
25
00:01:05,970 --> 00:01:07,923
в том же порядке, что и входные тексты.
26
00:01:08,790 --> 00:01:12,270
Здесь мы находим ту же метку и оценку для первого текста,
27
00:01:12,270 --> 00:01:14,443
а второй текст оценивается как отрицательный
28
00:01:14,443 --> 00:01:17,243
с достоверностью 99,9%.
29
00:01:18,720 --> 00:01:20,700
Конвейер zero-shot классификации
30
00:01:20,700 --> 00:01:23,610
это более общий конвейер классификации текста,
31
00:01:23,610 --> 00:01:26,370
он позволяет вам предоставлять нужные метки.
32
00:01:26,370 --> 00:01:29,850
Здесь мы хотим классифицировать наш входной текст по меткам,
33
00:01:29,850 --> 00:01:32,643
образование, политика и бизнес.
34
00:01:33,540 --> 00:01:35,580
Конвейер успешно распознает
35
00:01:35,580 --> 00:01:38,280
это скорее образование, чем другие метки,
36
00:01:38,280 --> 00:01:40,643
с достоверностью 84%.
37
00:01:41,670 --> 00:01:43,110
Переходим к другим задачам,
38
00:01:43,110 --> 00:01:45,030
конвейер генерации текста будет
39
00:01:45,030 --> 00:01:46,533
автоматически заполнять заданную подсказку.
40
00:01:47,460 --> 00:01:49,980
Вывод генерируется с некоторой долей случайности,
41
00:01:49,980 --> 00:01:52,800
поэтому он меняется каждый раз, когда вы вызываете объект генератора
42
00:01:52,800 --> 00:01:53,763
для заданной строки.
43
00:01:54,990 --> 00:01:57,123
До сих пор мы использовали API конвейера
44
00:01:57,123 --> 00:02:00,360
с моделью по умолчанию, связанной с каждой задачей,
45
00:02:00,360 --> 00:02:02,880
но вы можете использовать его с любой моделью, которая была предварительно обучена
46
00:02:02,880 --> 00:02:04,263
или дообучена на этой задаче.
47
00:02:06,540 --> 00:02:10,350
Зайдя в хаб моделей, huggingface.co/models
48
00:02:10,350 --> 00:02:13,350
вы можете отфильтровать доступные модели по задаче.
49
00:02:13,350 --> 00:02:17,190
Модель по умолчанию, использованная в нашем предыдущем примере, была gpt2,
50
00:02:17,190 --> 00:02:19,290
но существует множество других моделей,
51
00:02:19,290 --> 00:02:20,523
и не только на английском языке.
52
00:02:21,450 --> 00:02:23,670
Давайте вернемся к конвейеру генерации текста
53
00:02:23,670 --> 00:02:26,193
и загрузим в него другую модель, distilgpt2.
54
00:02:27,060 --> 00:02:28,950
Это облегченная версия gpt2
55
00:02:28,950 --> 00:02:30,603
созданная командой Hugging Face.
56
00:02:31,740 --> 00:02:34,110
При применении конвейера к данной строке,
57
00:02:34,110 --> 00:02:36,360
мы можем указать несколько аргументов
58
00:02:36,360 --> 00:02:39,240
такие как максимальная длина генерируемых текстов,
59
00:02:39,240 --> 00:02:41,700
или количество предложений, которые мы хотим вернуть,
60
00:02:41,700 --> 00:02:44,150
поскольку в процессе генерации присутствует некоторая случайность.
61
00:02:46,080 --> 00:02:48,750
Генерирование текстов путем угадывания следующего слова в предложении
62
00:02:48,750 --> 00:02:51,450
было целью предварительного обучения в GPT-2.
63
00:02:51,450 --> 00:02:55,140
Конвейер заполнения маски является целью предварительного обучения BERT,
64
00:02:55,140 --> 00:02:57,363
которая заключается в угадывании значения замаскированного слова.
65
00:02:58,260 --> 00:03:01,020
В этом случае мы спрашиваем два наиболее вероятных значения
66
00:03:01,020 --> 00:03:03,660
для пропущенных слов, согласно модели,
67
00:03:03,660 --> 00:03:07,053
и получаем в качестве возможных вариантов ответов "mathematical" или "computational".
68
00:03:08,280 --> 00:03:10,170
Еще одна задача, которую может выполнить модель Transformers
69
00:03:10,170 --> 00:03:12,660
классифицировать каждое слово в предложении
70
00:03:12,660 --> 00:03:14,970
вместо предложения в целом.
71
00:03:14,970 --> 00:03:18,390
Одним из примеров этого является Named Entity Recognition (распознавание именованных сущностей),
72
00:03:18,390 --> 00:03:20,820
которая представляет собой задачу идентификации сущностей,
73
00:03:20,820 --> 00:03:25,323
таких как люди, организации или места в предложении.
74
00:03:26,400 --> 00:03:30,570
Здесь модель правильно находит персону, "Sylvain",
75
00:03:30,570 --> 00:03:32,453
организацию, "Hugging Face",
76
00:03:32,453 --> 00:03:35,010
а также местоположение, "Brooklyn",
77
00:03:35,010 --> 00:03:36,303
внутри входного текста.
78
00:03:37,661 --> 00:03:40,230
Аргумент grouped_entities=True используется
79
00:03:40,230 --> 00:03:42,330
для того, чтобы заставить конвейер сгруппировать
80
00:03:42,330 --> 00:03:44,790
различные слова, связанные с одним и тем же объектом,
81
00:03:44,790 --> 00:03:46,353
например, "Hugging" и "Face".
82
00:03:48,270 --> 00:03:50,670
Еще одна задача, доступная с помощью API конвейера
83
00:03:50,670 --> 00:03:52,920
является extractive question answering (экстрактивный ответ на вопрос).
84
00:03:52,920 --> 00:03:55,380
Предоставляется контекст и вопрос,
85
00:03:55,380 --> 00:03:58,290
модель определит участок текста в контексте
86
00:03:58,290 --> 00:04:00,190
содержащий ответ на вопрос.
87
00:04:01,650 --> 00:04:03,960
Получение кратких резюме очень длинных статей
88
00:04:03,960 --> 00:04:06,540
это то, с чем также может помочь библиотека Transformers,
89
00:04:06,540 --> 00:04:08,140
с конвейером суммаризации.
90
00:04:09,480 --> 00:04:12,570
Наконец, последняя задача, поддерживаемая API конвейера
91
00:04:12,570 --> 00:04:14,130
это перевод.
92
00:04:14,130 --> 00:04:16,170
Здесь мы используем французско-английскую модель
93
00:04:16,170 --> 00:04:17,460
найденную в хабе моделей
94
00:04:17,460 --> 00:04:19,893
для получения английской версии нашего входного текста.
95
00:04:21,600 --> 00:04:23,490
Вот краткий обзор всех задач
96
00:04:23,490 --> 00:04:25,500
которые мы рассмотрели в этом видео.
97
00:04:25,500 --> 00:04:27,390
Попробуйте использовать виджеты инференса
98
00:04:27,390 --> 00:04:28,327
в хабе моделей.
99
00:04:30,459 --> 00:04:33,475
100
00:04:33,475 --> 00:04:35,175