﻿1
00:00:05,580 --> 00:00:08,820
- Итак, давайте поговорим об углеродном следе трансформеров.

2
00:00:08,820 --> 00:00:10,530
Возможно, вы видели заголовки, подобные этому

3
00:00:10,530 --> 00:00:13,530
что обучение одной модели ИИ может выбросить столько углерода,

4
00:00:13,530 --> 00:00:16,020
сколько пять автомобилей за весь срок службы.

5
00:00:16,020 --> 00:00:19,440
Так когда же это правда и всегда ли это так?

6
00:00:19,440 --> 00:00:21,803
На самом деле, это зависит от нескольких вещей.

7
00:00:21,803 --> 00:00:23,430
Самое главное, это зависит

8
00:00:23,430 --> 00:00:24,960
от типа энергии, которую вы используете.

9
00:00:24,960 --> 00:00:26,267
Если вы используете возобновляемые источники энергии, такие как

10
00:00:26,267 --> 00:00:30,670
солнце, ветер, гидроэлектроэнергия, вы действительно

11
00:00:30,670 --> 00:00:33,810
не выбрасываете углерод вообще, очень, очень мало.

12
00:00:33,810 --> 00:00:36,769
Если вы используете невозобновляемые источники энергии, такие как уголь

13
00:00:36,769 --> 00:00:39,570
то их углеродный след намного выше

14
00:00:39,570 --> 00:00:43,260
потому что, по сути, вы выделяете большое количество парниковых газов.

15
00:00:43,260 --> 00:00:44,670
Другой аспект - время обучения.

16
00:00:44,670 --> 00:00:47,232
Поэтому чем дольше вы обучаете, тем больше энергии вы используете,

17
00:00:47,232 --> 00:00:50,250
тем больше углерода вы выбрасываете, верно?

18
00:00:50,250 --> 00:00:51,270
Таким образом, это действительно увеличивает

19
00:00:51,270 --> 00:00:53,520
особенно если вы тренируете большие модели

20
00:00:53,520 --> 00:00:56,460
в течение часов, дней и недель.

21
00:00:56,460 --> 00:00:58,380
Используемое вами оборудование также имеет значение

22
00:00:58,380 --> 00:01:00,930
потому что некоторые GPU, например, более эффективны

23
00:01:00,930 --> 00:01:05,460
чем другие и правильно используют эффективность.

24
00:01:05,460 --> 00:01:07,500
Поэтому их постоянное использование на сто процентов

25
00:01:07,500 --> 00:01:10,650
может реально снизить потребление энергии.

26
00:01:10,650 --> 00:01:13,290
И опять же, уменьшить углеродный след.

27
00:01:13,290 --> 00:01:15,870
Есть и другие аспекты, такие как ввод/вывод,

28
00:01:15,870 --> 00:01:17,730
такие как данные, и так далее, и тому подобное.

29
00:01:17,730 --> 00:01:20,940
Но это основные три, на которых вам следует сосредоточиться.

30
00:01:20,940 --> 00:01:23,340
Поэтому, когда я говорю об источниках энергии и углеродоемкости,

31
00:01:23,340 --> 00:01:24,420
что это означает на самом деле?

32
00:01:24,420 --> 00:01:27,480
Итак, если вы посмотрите на верхнюю часть экрана, вы

33
00:01:27,480 --> 00:01:30,480
вы увидите углеродный след

34
00:01:30,480 --> 00:01:33,860
облачного вычислительного центра в Мумбаи, Индия,

35
00:01:33,860 --> 00:01:38,700
который выбрасывает 920 граммов CO2 на киловатт-час.

36
00:01:38,700 --> 00:01:40,110
Это почти один килограмм

37
00:01:40,110 --> 00:01:43,680
CO2 на киловатт-час используемой электроэнергии.

38
00:01:43,680 --> 00:01:45,150
Если сравнить с Канадой, Монреалем,

39
00:01:45,150 --> 00:01:48,720
где я сейчас нахожусь, то 20 граммов CO2 на килограмм-час.

40
00:01:48,720 --> 00:01:50,040
Так что это очень, очень большая разница.

41
00:01:50,040 --> 00:01:54,240
Почти в 40 раз больше углерода выбрасывается

42
00:01:54,240 --> 00:01:55,950
в Мумбаи по сравнению с Монреалем.

43
00:01:55,950 --> 00:01:57,720
И это может очень, очень сильно увеличиться.

44
00:01:57,720 --> 00:01:59,820
Например, если вы обучаете модель в течение нескольких недель

45
00:01:59,820 --> 00:02:01,920
вы умножаете в 40 раз

46
00:02:01,920 --> 00:02:03,450
углерод, который вы выбрасываете.

47
00:02:03,450 --> 00:02:05,070
Поэтому выбор правильного экземпляра

48
00:02:05,070 --> 00:02:07,080
выбор низкоуглеродного компьютерного экземпляра

49
00:02:07,080 --> 00:02:09,690
это действительно самая важная вещь, которую вы можете сделать.

50
00:02:09,690 --> 00:02:13,020
И вот тут-то и может возникнуть реальная проблема

51
00:02:13,020 --> 00:02:15,930
если вы обучаете в очень интенсивном

52
00:02:15,930 --> 00:02:17,580
регионе с высоким выбросом углерода

53
00:02:19,170 --> 00:02:21,750
другие элементы, которые следует рассмотреть, например

54
00:02:21,750 --> 00:02:22,770
использование предварительно обученных моделей

55
00:02:22,770 --> 00:02:25,590
это эквивалент повторного использования в машинном обучении.

56
00:02:25,590 --> 00:02:28,292
Когда у вас есть предварительно обученные модели, используя их,

57
00:02:28,292 --> 00:02:30,120
вы вообще не выбрасываете углерод, верно?

58
00:02:30,120 --> 00:02:31,230
Вы ничего не переобучаете.

59
00:02:31,230 --> 00:02:33,450
Так что это еще и выполнение домашней работы

60
00:02:33,450 --> 00:02:35,574
и изучие того, что уже существует.

61
00:02:35,574 --> 00:02:37,890
Дообучение вместо обучения с нуля.

62
00:02:37,890 --> 00:02:38,723
Поэтому еще раз,

63
00:02:38,723 --> 00:02:40,590
если вы нашли модель, которая почти то, что вам нужно,

64
00:02:40,590 --> 00:02:43,530
но не совсем, то добучение последней пары слоев,

65
00:02:43,530 --> 00:02:45,210
чтобы она действительно соответствовала вашей цели, вместо того,

66
00:02:45,210 --> 00:02:46,500
чтобы обучать большой трансформер

67
00:02:46,500 --> 00:02:48,810
с нуля, может действительно помочь,

68
00:02:48,810 --> 00:02:51,270
начинайте с небольших экспериментов

69
00:02:51,270 --> 00:02:52,800
и отлаживайте по ходу дела.

70
00:02:52,800 --> 00:02:54,630
Это означает, что, например, 

71
00:02:54,630 --> 00:02:58,770
вы убедитесь в правильности кодировки данных, убедитесь в

72
00:02:58,770 --> 00:03:01,170
том, что нет мелких ошибок, которые

73
00:03:01,170 --> 00:03:03,840
могут появиться после 16 часов обучения,

74
00:03:03,840 --> 00:03:05,820
начинайте с малого и убедитесь

75
00:03:05,820 --> 00:03:08,760
в том, что то что вы делаете, что делает ваш код, является стабильным.

76
00:03:08,760 --> 00:03:11,430
И, наконец, сделайте обзор литературы,

77
00:03:11,430 --> 00:03:13,740
чтобы выбрать диапазоны гиперпараметров, а затем 

78
00:03:13,740 --> 00:03:15,900
выполнить случайный поиск вместо поиска по сетке.

79
00:03:15,900 --> 00:03:18,420
Так, случайный поиск комбинаций гиперпараметров

80
00:03:18,420 --> 00:03:21,300
на самом деле оказался столь же эффективным

81
00:03:21,300 --> 00:03:24,000
в поиске оптимальной конфигурации, как и поиск по сетке.

82
00:03:24,000 --> 00:03:27,510
Но очевидно, что вы не проверяете все возможные комбинации,

83
00:03:27,510 --> 00:03:29,520
а только их подмножество.

84
00:03:29,520 --> 00:03:31,800
Так что это тоже может помочь.

85
00:03:31,800 --> 00:03:32,760
Итак, если мы вернемся

86
00:03:32,760 --> 00:03:36,300
к оригинальной статье Струбелла и других в 2019 году

87
00:03:36,300 --> 00:03:39,180
печально известной статье о пяти автомобилях за время их эксплуатации.

88
00:03:39,180 --> 00:03:40,013
Если вы просто посмотрите 

89
00:03:40,013 --> 00:03:43,606
на трансформер с 200 миллионами параметров,

90
00:03:43,606 --> 00:03:46,950
то его углеродный след составит около 200 фунтов CO2,

91
00:03:46,950 --> 00:03:47,940
что значительно

92
00:03:47,940 --> 00:03:49,980
но это не больше, чем у пяти автомобилей, верно?

93
00:03:49,980 --> 00:03:52,893
Это даже не трансатлантический перелет.

94
00:03:52,893 --> 00:03:55,020
Как это действительно увеличивается, когда вы делаете

95
00:03:55,020 --> 00:03:56,190
поиск архитектуры нейронной сети,

96
00:03:56,190 --> 00:03:58,560
когда вы делаете настройку гиперпараметров, и

97
00:03:58,560 --> 00:04:00,930
это перебор всех возможных комбинаций

98
00:04:00,930 --> 00:04:01,763
и так далее, и тому подобное.

99
00:04:01,763 --> 00:04:02,596
И вот откуда

100
00:04:02,596 --> 00:04:05,400
например, 600 000 фунтов CO2.

101
00:04:05,400 --> 00:04:08,490
Так что здесь все действительно складывается.

102
00:04:08,490 --> 00:04:11,880
Итак, если вы поступаете разумно и осознанно,

103
00:04:11,880 --> 00:04:16,410
то ваш углеродный след не будет таким большим, как

104
00:04:16,410 --> 00:04:20,040
предполагалось в статье, а некоторые инструменты помогут вам

105
00:04:20,040 --> 00:04:22,111
определить, сколько CO2 выбрасываете именно вы.

106
00:04:22,111 --> 00:04:24,270
Существует веб-инструмент под названием machine

107
00:04:24,270 --> 00:04:26,430
learning submissions calculator, который позволяет вам

108
00:04:26,430 --> 00:04:29,010
вручную ввести, например, какое оборудование вы использовали,

109
00:04:29,010 --> 00:04:30,488
сколько часов вы его использовали,

110
00:04:30,488 --> 00:04:34,260
где оно было расположено - локально или в облаке.

111
00:04:34,260 --> 00:04:35,640
И затем он даст вам оценку  того,

112
00:04:35,640 --> 00:04:37,560
сколько CO2 вы выбросили.

113
00:04:37,560 --> 00:04:40,200
Другой инструмент, который делает это программно,

114
00:04:40,200 --> 00:04:41,190
называется Code Carbon.

115
00:04:41,190 --> 00:04:45,112
Поэтому вы можете установить его с помощью PIP, вы можете зайти на GitHub

116
00:04:45,112 --> 00:04:48,120
и, по сути, он работает параллельно с вашим кодом.

117
00:04:48,120 --> 00:04:49,085
Так что, по сути, вы вызываете его

118
00:04:49,085 --> 00:04:51,060
и затем проводите все свое обучение.

119
00:04:51,060 --> 00:04:53,760
И в конце он предоставит вам оценку

120
00:04:53,760 --> 00:04:57,210
CSV-файл с оценкой ваших выбросов.

121
00:04:57,210 --> 00:04:59,250
И он даст вам несколько сравнений.

122
00:04:59,250 --> 00:05:01,230
У него есть визуальный пользовательский интерфейс, где вы можете реально посмотреть

123
00:05:01,230 --> 00:05:04,680
как это сравнимо с вождением автомобиля или просмотром телевизора.

124
00:05:04,680 --> 00:05:06,060
Так что это может дать вам представление

125
00:05:06,060 --> 00:05:07,740
о масштабах ваших выбросов.

126
00:05:07,740 --> 00:05:09,930
И на самом деле, code carbon уже интегрирован в AutoML,

127
00:05:09,930 --> 00:05:12,270
и, надеюсь, люди будут использовать его

128
00:05:12,270 --> 00:05:15,240
из коробки и легко отслеживать свои выбросы на протяжении всего

129
00:05:15,240 --> 00:05:17,523
процесса обучения и внедрения трансформеров.

