Как выбрать сервер для дообучения языковых моделей
Дообучение помогает адаптировать готовую языковую модель под задачи компании. Для этого требуется сервер, способный выполнять дополнительные вычисления и обрабатывать подготовленные данные. Разберем, от чего зависят требования к оборудованию, как выбрать подходящую конфигурацию и что проверить перед покупкой.
В этой статье:- Когда компании нужно дообучение языковой модели
- Методы дообучения и требования к оборудованию
- Как рассчитать нагрузку на сервер
- Как выбрать GPU для дообучения языковых моделей
- Какие еще компоненты сервера важны
- Примеры серверных конфигураций для дообучения
- Что проверить перед покупкой сервера
- Вопросы и ответы
Когда компании нужно дообучение языковой модели
Готовые языковые модели умеют отвечать на вопросы, обрабатывать текст и выполнять различные инструкции. Однако для корпоративных задач иногда требуется более предсказуемый результат. Например, компания хочет, чтобы система одинаково оформляла обращения клиентов, правильно определяла их категории или соблюдала внутренние правила подготовки ответов.
Дообучение помогает приспособить уже созданную модель к конкретной задаче. Для этого используют примеры входных данных и ожидаемых результатов. В процессе дополнительного обучения изменяются параметры модели, что может улучшить ее работу с подобными запросами.
Какие задачи решает дообучение
Один из распространенных сценариев — обработка обращений в службу поддержки. Сотрудники получают сообщения разного содержания, а система должна определить категорию проблемы и подготовить ответ в установленном формате.
Предположим, компания хочет автоматически распределять обращения по трем категориям: проблемы с оборудованием, ошибки программного обеспечения и вопросы доступа. Для обучения можно подготовить примеры сообщений с правильно указанными категориями. Языковая модель будет учиться определять их по содержанию текста.
Другой сценарий — подготовка ответов по внутренним правилам компании. Например, служба поддержки использует определенную последовательность действий при обработке запросов. Модель должна соблюдать заданную структуру, учитывать ограничения и выдавать результат в удобной для сотрудников форме.
Дополнительное обучение также применяют для задач, связанных с профессиональной терминологией. Это может быть полезно, когда программа регулярно сталкивается со специальными обозначениями и характерными для отрасли формулировками.
Во всех случаях качество результата зависит от исходной модели и подготовленных примеров. Само проведение обучения не гарантирует устранения ошибок.
Чем дообучение отличается от запуска готовой модели
При обычном запуске пользователь передает программе вопрос или инструкцию. Языковая модель обрабатывает запрос и формирует ответ на основе уже полученных знаний и переданного контекста. Ее параметры при этом остаются прежними.
Дообучение предполагает дополнительную работу с самой моделью. Программа многократно обрабатывает подготовленные примеры и изменяет параметры в ходе обучения. Полученную версию затем можно использовать для решения целевой задачи.
Однако для части корпоративных сценариев достаточно правильно составленных инструкций. Например, можно описать требования к ответу и добавить несколько образцов нужного оформления прямо в запрос.
Отдельный случай — работа с корпоративной базой знаний. Если сведения регулярно обновляются, система может находить необходимые документы и передавать их языковой модели во время формирования ответа. Подробнее такой подход рассмотрен в статье RAG на своем сервере: какое железо нужно.
Когда дообучение имеет смысл
Перед началом проекта стоит проверить, как готовая модель справляется с реальными задачами компании. Для этого подбирают характерные запросы и оценивают качество ответов.
Дополнительное обучение имеет смысл рассматривать, когда программа регулярно допускает определенные ошибки, а уточнение инструкций не помогает добиться нужного результата. При этом у компании должны быть качественные примеры, на которых можно показать правильное выполнение задачи.
Допустим, модель распределяет обращения клиентов по категориям, но часто путает похожие типы запросов. Компания может подготовить проверенные образцы и провести дополнительное обучение. Затем необходимо оценить результат на новых обращениях, которые модель ранее не встречала.
Еще до начала работ нужно определить критерии качества. Для распределения обращений важна правильность выбранной категории. При извлечении сведений из текста оценивают точность заполнения полей. Для подготовки ответов дополнительно проверяют соблюдение установленных требований.
Если готовая модель уже справляется с задачей на приемлемом уровне, дообучение может не потребоваться. Решение принимают после проверки исходного качества и оценки возможных улучшений.
Когда цель определена, можно переходить к выбору способа дообучения. От него будут зависеть вычислительная нагрузка и требования к серверному оборудованию.
Методы дообучения и требования к оборудованию
Языковую модель можно дообучать разными способами. Одни методы изменяют все ее параметры, другие позволяют ограничиться небольшим количеством дополнительных значений. Это влияет на объем памяти, вычислительную нагрузку и требования к серверу.
Рассмотрим три подхода: полное дообучение, LoRA и QLoRA. Каждый позволяет приспособить готовую нейросеть к определенным задачам, но использует вычислительные ресурсы по-разному.
Полное дообучение модели
При полном дообучении программа изменяет все параметры исходной нейросети. Она обрабатывает подготовленные примеры, сравнивает полученные результаты с ожидаемыми и корректирует значения, которые определяют поведение модели.
Такой способ позволяет обновлять всю систему. Его стоит рассматривать, когда задача требует глубоких изменений и есть основания полагать, что обучение небольшого числа дополнительных параметров не даст нужного результата.
Для работы сервер должен хранить саму модель, промежуточные результаты вычислений и данные, необходимые для изменения параметров. Чем больше нейросеть, тем выше требования к ресурсам при прочих равных условиях.
Еще одна особенность связана с сохранением результатов. После полного дообучения компания получает измененную версию модели. Если для нескольких задач создают отдельные версии, каждую придется хранить и обслуживать. Объем необходимых данных зависит от способа сохранения.
Полное дообучение дает больше возможностей для изменения исходной модели, но требует значительных вычислительных ресурсов. При этом качество зависит от обучающих данных и настроек. Обновление всех параметров само по себе не гарантирует лучшего результата.
LoRA: обучение дополнительных параметров
LoRA (Low-Rank Adaptation) позволяет адаптировать языковую модель без изменения ее исходных параметров. Вместо этого программа добавляет небольшие наборы обучаемых значений. Их называют адаптерами.
Во время обучения система корректирует только дополнительные значения. Они влияют на работу исходной нейросети и позволяют приспособить ее к новой задаче.
Предположим, компания использует одну языковую модель для обработки обращений и подготовки ответов. Для каждого направления можно обучить отдельный адаптер. Основная нейросеть при этом остается общей.
У метода есть несколько особенностей:
- Меньше обучаемых параметров. Программа изменяет только дополнительные значения, что сокращает потребность в памяти для их хранения и обновления.
- Сохранение исходной модели. Оригинальные параметры остаются прежними, поэтому компания может использовать одну основу для разных задач.
- Отдельное хранение результатов. Адаптеры можно сохранять независимо от основной модели. Обычно они занимают значительно меньше места, чем ее полная копия.
При этом LoRA не устраняет потребность в ресурсах для самой нейросети. Серверу по-прежнему необходимо хранить ее параметры и выполнять вычисления во время обучения.
Метод помогает сократить затраты памяти на обновление параметров. В отдельных задачах он позволяет получить качество, сопоставимое с полным дообучением. Однако результат зависит от модели и выбранных настроек.
QLoRA: сокращение потребления памяти
QLoRA использует тот же принцип обучения адаптеров, что и LoRA, но дополнительно уменьшает объем памяти, который занимает основная модель.
Для этого применяют квантование. Так называют способ представления числовых значений с меньшей точностью. Благодаря ему программа хранит параметры в более компактном виде.
В классическом варианте QLoRA исходная модель использует четырехбитное представление параметров. Это означает, что для хранения одного значения применяется четыре бита. При этом дополнительные адаптеры обучаются с более высокой точностью.
Рассмотрим ситуацию, когда компания планирует дообучить языковую модель, но ее исходные параметры занимают слишком много памяти. Обычный LoRA сокращает объем обучаемых данных, однако сама нейросеть по-прежнему требует места для хранения. QLoRA позволяет дополнительно уменьшить эту часть нагрузки.
У метода есть ограничения. Квантование меняет способ представления чисел, поэтому качество полученного результата необходимо проверять. Кроме того, сжатое хранение параметров не означает пропорционального сокращения всех затрат памяти во время вычислений.
QLoRA также не гарантирует более высокую скорость обучения. При обработке сжатых значений системе приходится выполнять дополнительные операции, поэтому итоговая производительность зависит от программного обеспечения и оборудования.
Метод имеет смысл рассматривать, когда доступная память ограничивает возможность дообучения выбранной модели. Перед его применением нужно убедиться, что программное обеспечение поддерживает необходимый способ квантования.
Как выбранный метод влияет на потребление ресурсов
Основные различия удобно сравнить по трем признакам: какие параметры изменяются, как хранится исходная модель и какие ресурсы нужны для обучения.
| Метод | Что обучается | Как влияет на потребление памяти |
|---|---|---|
| Полное дообучение | Все параметры модели | Требует памяти для самих параметров и данных, необходимых для их обновления |
| LoRA | Дополнительные адаптеры | Сокращает объем обучаемых параметров, сохраняя исходную модель без изменений |
| QLoRA | Дополнительные адаптеры | Дополнительно уменьшает память для хранения исходной модели за счет квантования |
Для компании выбор метода начинается с требований к результату и возможностей исходной нейросети.
Полное дообучение дает возможность изменять все ее параметры. LoRA сокращает объем обновляемых данных. QLoRA позволяет дополнительно уменьшить потребление памяти, когда исходная модель занимает слишком много места.
Однако даже одинаковый метод может предъявлять разные требования к серверу. Значение имеют размер языковой модели, особенности обучающих данных и настройки процесса.
После определения способа дообучения можно оценить фактическую нагрузку. Для расчета потребуется учесть размер модели, параметры обучения и характеристики подготовленных данных.
Как рассчитать нагрузку на сервер
Дообучение языковой модели требует определенного объема памяти и вычислений. Чтобы оценить потребность в ресурсах, нужно знать характеристики нейросети, количество обучающих данных и настройки процесса.
Предварительный расчет помогает понять масштаб задачи и подготовить требования к оборудованию. Точную нагрузку можно определить после контрольного запуска программы, поскольку разные модели и способы обучения используют ресурсы по-разному.
Размер языковой модели и объем обучающих данных
Первый показатель — количество параметров нейросети. Например, обозначение 7B означает, что она содержит около семи миллиардов параметров. Эти значения программа хранит в памяти и использует во время вычислений.
С увеличением числа параметров обычно растут требования к ресурсам при одинаковых условиях работы. Однако размер нейросети сам по себе не позволяет рассчитать точное потребление памяти. На него влияют архитектура модели, способ хранения числовых значений и выбранный метод дообучения.
Следующий показатель — объем подготовленных данных. Для его оценки используют два значения:
- Количество примеров. Показывает, сколько отдельных записей входит в обучающий набор. Одна запись может содержать вопрос и правильный ответ, инструкцию или фрагмент текста.
- Количество токенов. Отражает объем текста после преобразования в элементы, которые обрабатывает нейросеть. Токеном может быть целое слово, его часть или отдельный знак.
Количество токенов зависит от содержимого данных и способа их разбиения конкретной моделью. Для двух одинаковых по размеру файлов число таких элементов может различаться.
Поэтому перед расчетом важно обработать подготовленные тексты тем же способом, который будет использоваться при дообучении. Это даст более точное представление об объеме работы.
Также нужно определить количество эпох. Эпоха — один полный проход по обучающему набору. Программа может обработать примеры несколько раз, чтобы последовательно изменять параметры нейросети.
Для первоначальной оценки используют формулу:
Объем обработки ≈ число токенов × число эпох.
Формула предполагает, что программа обрабатывает весь набор данных в каждой эпохе. Если часть текста обрезается или примеры объединяются в последовательности фиксированной длины, фактический объем вычислений будет отличаться. Дополнительные операции тоже требуют ресурсов.
Полученное значение показывает приблизительный объем обработки текста. Для оценки продолжительности работы потребуется узнать скорость выполнения вычислений.
Длина последовательностей и размер пакета данных
Во время дообучения программа получает текст в виде последовательностей токенов. Каждая может содержать инструкцию, исходные сведения и пример правильного ответа.
Длина последовательностей влияет на потребление памяти. При обработке длинного текста нейросети приходится сохранять больше промежуточных результатов. Программа использует их при вычислении изменений обучаемых параметров.
Например, набор коротких сообщений и набор объемных технических документов могут содержать одинаковое общее количество токенов. Однако требования к памяти при их обработке будут различаться из-за длины отдельных последовательностей.
Перед расчетом стоит проверить:
- Типичную длину обучающих примеров.
- Максимальную длину записей в подготовленном наборе.
- Ограничение на длину последовательности, которое поддерживает модель и использует программа.
Слишком короткое ограничение может привести к потере части текста. Чрезмерно большое значение увеличивает потребление ресурсов и может замедлить обработку. Поэтому его выбирают с учетом реальной длины примеров.
На нагрузку также влияет размер пакета данных — количество примеров, которые система обрабатывает одновременно.
Большой пакет позволяет выполнить вычисления сразу для нескольких записей, но требует дополнительной памяти. При небольшом пакете программа обрабатывает меньше примеров за один раз. Это помогает сократить пиковое потребление ресурсов, хотя общая продолжительность работы может увеличиться.
Когда памяти недостаточно, применяют накопление градиентов. Градиент показывает, как нужно изменить обучаемые параметры для уменьшения ошибки. Программа последовательно обрабатывает несколько небольших пакетов, накапливает результаты вычислений и только после этого обновляет параметры.
Так можно использовать больший общий пакет, не загружая все примеры в память одновременно. Однако программе приходится выполнять несколько последовательных вычислений, поэтому способ не гарантирует сокращения времени обучения.
Для предварительного расчета нужно зафиксировать длину последовательностей, размер пакета и необходимость накопления градиентов. Вместе эти настройки определяют, сколько данных программа должна обрабатывать одновременно.
Требования к скорости и продолжительности дообучения
После оценки объема работы нужно определить допустимую продолжительность обучения.
Для компании, которая периодически обновляет одну модель, и команды, которая ежедневно проводит несколько экспериментов, требования к скорости могут различаться. В первом случае важно время одного запуска. Во втором придется учитывать общую продолжительность всех запланированных вычислений.
Основные показатели для расчета — количество обрабатываемых токенов и скорость выполнения обучения.
Время обучения ≈ число обрабатываемых токенов / скорость обработки токенов в секунду.
Здесь используется скорость обработки данных именно во время дообучения. Скорость генерации ответов готовой моделью для подобного расчета не подходит.
Формула дает ориентировочное время основных вычислений. В нее не входят отдельные затраты на подготовку данных, проверку качества и сохранение результатов.
Чтобы уточнить оценку, проводят контрольный запуск на части обучающего набора. Программа должна работать с тем же методом дообучения и настройками, которые планируется использовать в дальнейшем.
Во время проверки измеряют два основных показателя:
- Скорость обработки. Сколько обучающих токенов система обрабатывает за секунду.
- Пиковое потребление памяти. Какой максимальный объем памяти потребовался программе во время вычислений.
Для проверки выбирают данные, которые отражают характер будущей нагрузки, включая длинные последовательности. Короткие примеры могут показать приемлемое потребление ресурсов, даже если на более объемных записях памяти окажется недостаточно.
По полученным измерениям можно оценить время полного запуска и проверить, укладывается ли процесс в установленные ограничения. При этом результаты остаются предварительными: фактическая скорость зависит от состава данных и условий выполнения программы.
Какие данные нужны для расчета
Перед подбором сервера стоит собрать исходные сведения в одной таблице. Она поможет определить, какие показатели уже известны, а какие необходимо проверить.
| Показатель | Что нужно указать |
|---|---|
| Языковая модель | Название, версия, количество параметров |
| Метод дообучения | Полное дообучение, LoRA или QLoRA |
| Объем данных | Количество примеров и токенов |
| Длина последовательностей | Типичная и максимальная длина |
| Размер пакета | Число одновременно обрабатываемых примеров и настройки накопления градиентов |
| Количество эпох | Сколько проходов по набору планируется выполнить |
| Допустимое время | Продолжительность одного запуска или серии экспериментов |
| Контрольные измерения | Скорость обработки и пиковое потребление памяти |
На первом этапе достаточно определить характеристики модели, объем данных и основные настройки. Контрольные измерения помогут уточнить требования к ресурсам до закупки оборудования.
Следующий шаг — выбор графических ускорителей. Разберем, какие характеристики GPU влияют на дообучение и как определить необходимый объем видеопамяти.
Как выбрать GPU для дообучения языковых моделей
Для дообучения языковых моделей используют графические ускорители (GPU). Они выполняют вычисления над большими массивами чисел и позволяют обрабатывать обучающие данные параллельно.
При подборе оборудования сначала проверяют, хватает ли видеопамяти для выбранной задачи. Затем оценивают вычислительную производительность, скорость обмена данными и поддержку необходимых числовых форматов. Эти характеристики помогают определить, какой ускоритель подойдет для работы и потребуется ли несколько устройств.
Сколько видеопамяти потребуется
Во время дообучения графический ускоритель хранит параметры нейросети, промежуточные результаты вычислений и другие данные, необходимые программе. Объем видеопамяти должен покрывать потребности всех этих операций.
Для первоначальной оценки можно рассчитать, сколько места занимают параметры исходной модели. Например, нейросеть с 7 миллиардами параметров при 16-битном представлении чисел требует приблизительно 14 ГБ только для их хранения.
Однако для полноценного дообучения этого объема недостаточно. Программа дополнительно использует память для промежуточных результатов, градиентов и обновления обучаемых значений. Состав и объем этих данных зависят от метода, программного обеспечения и настроек.
При полном дообучении расход памяти обычно выше, поскольку программа обновляет все параметры. LoRA сокращает число обучаемых значений, а QLoRA дополнительно уменьшает место, необходимое для хранения исходной нейросети.
Есть еще один важный момент. Модель может успешно загрузиться на GPU, но при запуске обучения доступной памяти окажется недостаточно. Во время обработки данных программа создает временные результаты, которые увеличивают потребление ресурсов. Особенно заметно это при работе с длинными последовательностями.
Поэтому при выборе ускорителя необходимо учитывать максимальный расход видеопамяти во время обучения. Его можно измерить на контрольном запуске с рабочими настройками.
Если ресурсов недостаточно, сначала проверяют возможности снижения потребления памяти. Например, можно уменьшить число одновременно обрабатываемых примеров или изменить настройки сохранения промежуточных результатов. Часть таких приемов увеличивает продолжительность вычислений.
Когда уменьшение нагрузки мешает выполнению задачи, рассматривают GPU с большим объемом памяти или возможность распределить вычисления между несколькими устройствами.
Какие характеристики ускорителя влияют на производительность
Объем видеопамяти определяет, сможет ли ускоритель разместить необходимые данные. Но скорость дообучения зависит и от других характеристик. Два GPU с одинаковой емкостью могут выполнять одну задачу за разное время.
Вычислительная производительность
При дообучении языковая модель выполняет множество математических операций над массивами чисел. Графические ускорители используют для этого специализированные вычислительные блоки. Например, в оборудовании NVIDIA предусмотрены тензорные ядра, предназначенные для ускорения матричных вычислений.
Производители указывают теоретическую производительность GPU в операциях за секунду. Однако сравнивать показатели можно только с учетом типа вычислений и числового формата.
Высокая заявленная скорость еще не гарантирует соответствующий результат на конкретной нейросети. На производительность влияют особенности программы и эффективность использования вычислительных блоков.
Пропускная способность видеопамяти
Эта характеристика показывает, сколько данных ускоритель способен передавать между памятью и вычислительными блоками за секунду.
Во время дообучения GPU постоянно обращается к параметрам и промежуточным результатам. Если передача данных происходит недостаточно быстро, вычислительные блоки могут простаивать в ожидании информации.
Пропускная способность особенно важна для операций с интенсивным обменом данными. Однако ее нельзя оценивать отдельно от вычислительной производительности. Реальная скорость работы зависит от того, какие операции выполняет нейросеть и сколько данных для них требуется.
Поддержка числовых форматов
Во время вычислений программа представляет числовые значения с определенной точностью. Для обучения языковых моделей распространены три формата:
- FP32 — 32-битное представление чисел. Позволяет хранить больше значащих цифр, но требует больше памяти для каждого значения.
- FP16 — 16-битный формат. Сокращает объем данных и поддерживает быстрые вычисления на соответствующем оборудовании. Его ограниченный числовой диапазон может вызывать переполнения и другие ошибки.
- BF16 — еще один 16-битный формат. Он сохраняет широкий диапазон значений, сопоставимый с FP32, но уступает ему в точности представления чисел. Благодаря широкому диапазону BF16 часто удобен для обучения нейросетей.
При обучении со смешанной точностью программа может использовать 16-битные вычисления для части операций и сохранять другие значения в 32-битном виде. Поэтому переход на FP16 или BF16 не означает, что общий расход памяти сократится вдвое.
Поддержка нужного формата зависит от конкретной архитектуры GPU. Например, NVIDIA A100 поддерживает вычисления FP16 и BF16 с использованием тензорных ядер. Для других устройств возможности проверяют по официальной спецификации.
При выборе стоит учитывать и программное обеспечение. Если используемая среда обучения не поддерживает нужный режим работы на выбранном ускорителе, часть аппаратных возможностей останется недоступной.
Когда нужны несколько GPU
Один графический ускоритель может ограничивать работу по объему видеопамяти или скорости вычислений. Эти проблемы решаются разными способами.
Если модели не хватает видеопамяти, программное обеспечение может распределить ее параметры и данные обучения между несколькими GPU.
Например, библиотека PyTorch поддерживает распределенное обучение, при котором параметры, градиенты и дополнительные данные для их обновления разделяются между устройствами.
Так программа получает возможность работать с нейросетью, которой недостаточно памяти одного ускорителя. Однако каждая GPU сохраняет собственную область видеопамяти. Сложить объемы нескольких устройств и считать их единым доступным пространством нельзя.
Успех такого распределения зависит от возможностей программного обеспечения и схемы обмена данными.
Если требуется повысить скорость обучения, программа может использовать несколько GPU для параллельной обработки примеров.
В этом случае на каждом ускорителе размещается копия модели. Устройства получают разные части обучающего набора, выполняют вычисления и согласуют изменения параметров.
Такая схема позволяет увеличить объем данных, обрабатываемых за единицу времени. Но каждая копия нейросети должна помещаться в память своего ускорителя.
Дополнительные устройства также создают нагрузку на соединения между ними. Во время обучения GPU обмениваются результатами вычислений, а на передачу информации требуется время.
Для связи используют PCIe и поддерживаемые конкретной платформой соединения, например NVIDIA NVLink. Их возможности зависят от исполнения ускорителей и конструкции системы.
Количество GPU само по себе не определяет производительность. При недостаточной скорости обмена или неэффективном распределении вычислений дополнительные устройства могут дать значительно меньший прирост, чем ожидается.
Подробнее о вариантах совместной работы ускорителей можно прочитать в статье Сервер для локального ИИ: 1, 2 или 4 GPU.
Как определить требования к графическим ускорителям
При выборе оборудования нужно сопоставить результаты расчета нагрузки с возможностями GPU.
Первый критерий — достаточный объем видеопамяти. Ускоритель должен размещать необходимые данные и выполнять обучение без ошибок нехватки памяти при рабочих настройках.
Второй критерий — скорость вычислений. Если обучение одной модели занимает слишком много времени, стоит сравнить производительность нескольких GPU на одинаковой задаче. При этом важно учитывать поддержку числовых форматов и пропускную способность памяти.
Третий критерий — возможность распределения нагрузки. Когда рассматривается сервер с несколькими ускорителями, нужно убедиться, что программа поддерживает выбранный способ параллельной работы.
Для окончательной оценки полезен контрольный запуск. Он покажет фактическую скорость обработки и максимальное потребление видеопамяти. По результатам можно определить требования к ускорителям и их количеству.
После выбора GPU необходимо проверить, сможет ли серверная платформа обеспечить их работу. В следующей главе рассмотрим процессор, оперативную память, накопители и сетевые подключения, которые участвуют в дообучении языковых моделей.
Какие еще компоненты сервера важны
Графические ускорители выполняют основную часть вычислений при дообучении языковой модели. Однако GPU должны своевременно получать данные, а программа — сохранять результаты работы. За эти задачи отвечают другие компоненты сервера.
Процессор обрабатывает исходные данные и управляет выполнением программы. Оперативная память обеспечивает работу приложений, накопители хранят обучающие материалы, а сетевые подключения позволяют обмениваться информацией с другими системами. Разберем, какие характеристики оборудования имеют значение.
Процессор и оперативная память
Центральный процессор (CPU) выполняет задачи, которые программа не передает графическим ускорителям. Например, он может читать файлы, преобразовывать текст в токены, подготавливать обучающие примеры и передавать данные для вычислений.
Во время дообучения программа обычно многократно обращается к подготовленному набору данных. Если процессор не успевает выполнять необходимые операции, графический ускоритель может простаивать в ожидании очередной порции информации.
Для ускорения подготовки данных программное обеспечение иногда использует несколько параллельных процессов. Каждый занимается чтением и обработкой своей части обучающего набора. Это позволяет задействовать несколько процессорных ядер.
Однако увеличение числа ядер помогает не во всех случаях. Когда исходные данные уже подготовлены и программа быстро передает их на GPU, дополнительная вычислительная мощность центрального процессора может практически не влиять на продолжительность обучения.
При выборе CPU стоит учитывать характер обработки данных, количество одновременно работающих процессов и требования используемой программы. Универсальной зависимости между числом GPU и необходимым количеством процессорных ядер нет.
Оперативная память (RAM) нужна для работы самой программы, загрузки обучающих данных и хранения промежуточной информации на стороне центрального процессора.
Объем ее использования зависит от способа подготовки данных. Программа может считывать записи небольшими частями непосредственно с накопителя или заранее размещать значительную часть набора в оперативной памяти.
При параллельной загрузке потребление RAM способно увеличиваться. Например, несколько процессов могут хранить собственные копии части данных и заранее подготавливать следующие группы примеров.
Некоторые способы дообучения также предусматривают перенос части данных из видеопамяти в оперативную память сервера. Это снижает нагрузку на память GPU, но увеличивает обмен информацией между устройствами.
При подборе RAM нужно учитывать потребление памяти всеми одновременно работающими процессами. Объем обучающего набора на диске не дает точного ответа, сколько оперативной памяти потребуется.
Накопители для обучающих данных и промежуточных результатов
Во время дообучения сервер использует накопители для нескольких задач. На них размещаются исходная языковая модель, подготовленные тексты, программное обеспечение и результаты вычислений.
Отдельное место занимают контрольные сохранения состояния обучения. Они позволяют продолжить работу после остановки программы с определенного этапа, если сохранены все необходимые данные.
В зависимости от метода дообучения и настроек такие сохранения могут содержать параметры модели, сведения об их обновлении и другую информацию для восстановления процесса.
Например, при использовании LoRA можно отдельно сохранить обученные адаптеры. Обычно они занимают меньше места, чем полная копия исходной модели. Однако для возобновления прерванного обучения одних адаптеров может быть недостаточно.
При выборе накопителей важны емкость и скорость чтения и записи.
Емкость рассчитывают с учетом исходной модели, обучающих данных, промежуточных файлов и количества результатов, которые планируется сохранять. Если компания проводит несколько экспериментов, потребуется дополнительное пространство для их хранения.
Скорость накопителей влияет на загрузку данных и сохранение результатов. Особенно заметным ограничением она может стать при частом обращении к большому числу файлов или регулярной записи крупных состояний обучения.
Для задач с интенсивным чтением и записью можно рассмотреть серверные SSD с интерфейсом NVMe. Такие накопители используют подключение через PCIe и поддерживают параллельную обработку запросов. Однако необходимость NVMe зависит от характера работы: при небольшом объеме данных или редких операциях с диском преимущества более быстрого накопителя могут быть несущественными.
Подробнее о характеристиках и назначении разных типов накопителей можно прочитать в статье Как выбрать SSD для сервера под разные задачи.
Для хранения обучающих материалов и долговременных результатов можно использовать отдельную СХД. В таком случае скорость доступа будет зависеть также от способа подключения и характеристик сети.
Сетевые подключения и обмен данными
Требования к сети зависят от того, где находятся обучающие данные и сколько серверов участвует в вычислениях.
Один сервер с локальными данными. Когда программа работает на одной машине, а файлы хранятся на установленных в ней накопителях, основная обработка не требует передачи информации через внешнюю сеть.
Даже при наличии нескольких GPU внутри одного сервера их обмен может проходить по внутренним соединениям платформы. Для этой задачи отдельная высокоскоростная сетевая карта не требуется.
Сервер с подключением к внешней СХД. Если обучающие данные размещены в отдельном хранилище, программа получает их через сеть хранения. Производительность зависит от скорости подключения, характеристик СХД и количества одновременных обращений.
Например, при последовательной загрузке больших файлов требования к пропускной способности могут отличаться от работы с множеством небольших записей. Важно учитывать, как именно программа обращается к данным.
Несколько серверов для совместного обучения. В распределенной системе вычисления выполняются на разных машинах. Программа передает между ними информацию, необходимую для согласования обучения.
Объем обмена зависит от выбранного способа распределения вычислений. При частой передаче данных недостаточная пропускная способность сети может ограничивать общую скорость работы.
Для соединения вычислительных серверов применяют Ethernet или InfiniBand при наличии соответствующей аппаратной и программной поддержки. Например, PyTorch поддерживает распределенное обучение через несколько машин с использованием этих сетевых технологий.
При выборе сетевых компонентов необходимо учитывать расположение данных, количество вычислительных узлов и особенности их взаимодействия. Для одного сервера и распределенной системы требования могут существенно различаться.
Как связаны компоненты сервера при дообучении
Все перечисленные устройства выполняют свои функции в общем процессе. Программа получает обучающие данные из хранилища, центральный процессор подготавливает их, а графические ускорители выполняют вычисления. После обработки сервер сохраняет результаты на накопителях.
Скорость работы может ограничиваться на любом из этих этапов. Например, ускоритель будет ждать данные при недостаточной производительности их загрузки. Медленная запись контрольных сохранений способна увеличивать общую продолжительность обучения.
В следующей главе рассмотрим примеры серверных конфигураций для разных сценариев дообучения языковых моделей. Разберем состав оборудования, назначение каждого варианта и ограничения, которые важно учитывать при выборе.
Примеры серверных конфигураций для дообучения
Для дообучения языковых моделей можно использовать серверы с разным количеством графических ускорителей. Выбор зависит от задачи: адаптация небольшой нейросети, параллельные эксперименты или работа с крупной моделью, вычисления которой приходится распределять между устройствами.
Рассмотрим три конфигурации на базе оборудования из каталога CRABBIT. Характеристики серверных платформ и совместимость основных компонентов проверены по документации производителей. Объем оперативной памяти и накопителей в примерах показывает возможное оснащение. Достаточность ресурсов для конкретного проекта определяется отдельно.
1. Сервер для дообучения небольшой языковой модели
Компания хочет научить языковую модель определять категории обращений в службу поддержки и формировать ответы по установленному образцу. Для обучения подготовлены примеры сообщений, правильные категории и образцы ответов.
Если выбранная нейросеть помещается в видеопамять одного ускорителя при использовании LoRA или QLoRA, можно начать с однопроцессорного сервера ASUS ESC4000A-E12.
Пример конфигурации: ASUS ESC4000A-E12
| Компонент | Конфигурация |
|---|---|
| Процессор | AMD EPYC 9354P, 32 ядра |
| Оперативная память | 192 ГБ DDR5 ECC RDIMM, 12 × 16 ГБ |
| Графический ускоритель | NVIDIA L40S, 48 ГБ |
| Накопители | 2 × SSD NVMe по 1,92 ТБ |
| Блоки питания | 2 × 2600 Вт |
ASUS ESC4000A-E12 представляет собой стоечную платформу формата 2U. Производитель подтверждает поддержку процессора AMD EPYC 9354P и ускорителя NVIDIA L40S. В сервере предусмотрены 12 разъемов оперативной памяти и возможность установки нескольких графических карт.
Почему подходит такой вариант
Для небольшой языковой модели, которая помещается в 48 ГБ видеопамяти вместе с необходимыми данными обучения, достаточно одного L40S. Серверу не потребуется распределять вычисления между несколькими GPU.
Процессор AMD EPYC 9354P может выполнять подготовку текста и загрузку обучающих примеров. Оперативная память обеспечивает работу программы, а два накопителя NVMe позволяют разделить исходные данные и результаты экспериментов.
У платформы есть возможность установки дополнительных графических ускорителей. Однако их совместимость с конкретной комплектацией необходимо учитывать отдельно.
Важное ограничение касается питания. NVIDIA L40S имеет максимальное энергопотребление 350 Вт. Для ESC4000A-E12 ASUS указывает условия резервирования, связанные с мощностью установленных GPU. Поэтому режим резервирования двух блоков по 2600 Вт нельзя считать подтвержденным для предложенного варианта без дополнительной проверки.
Когда рассматривать: для адаптации относительно небольших языковых моделей и проведения отдельных экспериментов, если проверка подтверждает достаточность ресурсов одного GPU.
2. Сервер для нескольких корпоративных задач
Организация разрабатывает языковые модели для разных подразделений. Служба поддержки использует одну версию для обработки обращений, а технический отдел готовит другую для классификации заявок на обслуживание оборудования.
Команде необходимо дообучать несколько вариантов модели и сравнивать результаты. В таком случае можно использовать сервер с двумя графическими ускорителями.
Пример конфигурации: Dell PowerEdge R760xa
| Компонент | Конфигурация |
|---|---|
| Процессоры | 2 × Intel Xeon Gold 6438M, по 32 ядра |
| Оперативная память | 512 ГБ DDR5 RDIMM, 16 × 32 ГБ |
| Графические ускорители | 2 × NVIDIA H100 PCIe, по 80 ГБ |
| Системные накопители | 2 × SSD M.2 NVMe по 960 ГБ, с контроллером BOSS-N1 |
| Накопители для данных | 2 × SSD NVMe U.2 по 3,84 ТБ |
| Блоки питания | 2 × 2800 Вт |
Подобное сочетание процессоров, памяти, накопителей и GPU приведено в техническом руководстве Dell по инфраструктуре для адаптации генеративных моделей. PowerEdge R760xa поддерживает два или четыре ускорителя H100 PCIe в предусмотренных производителем исполнениях. Блоки питания мощностью 2800 Вт также входят в перечень доступных вариантов для данной платформы.
Почему подходит такой вариант
Два NVIDIA H100 позволяют выполнять независимые эксперименты на отдельных ускорителях. Например, команда может одновременно проверять разные наборы обучающих данных или настройки LoRA, если каждый процесс помещается в память одной GPU.
Другой вариант — совместная работа ускорителей над одной моделью. Возможность такого распределения зависит от программы и выбранного способа обучения.
Для хранения операционной системы предусмотрены отдельные накопители M.2. Дополнительные SSD NVMe можно использовать для обучающих наборов и промежуточных результатов. Это позволяет разделить системные файлы и рабочие данные.
Оперативная память объемом 512 ГБ предоставляет ресурсы для подготовки текстов и параллельной работы программ. Однако сама по себе большая емкость RAM не увеличивает доступную видеопамять ускорителей.
Когда рассматривать: для корпоративных проектов с несколькими параллельными экспериментами или для дообучения модели, которой недостаточно ресурсов одного GPU.
3. Сервер для ресурсоемкого дообучения крупных моделей
Компания планирует адаптировать крупную языковую модель для специализированных задач. Программа должна работать с большим количеством обучаемых параметров, а вычисления необходимо распределять между несколькими ускорителями.
Для подобных проектов можно рассмотреть платформу Supermicro с восемью NVIDIA H200.
Пример конфигурации: Supermicro SYS-821GE-TNHR
| Компонент | Конфигурация |
|---|---|
| Процессоры | 2 × Intel Xeon Platinum 8570, по 56 ядер |
| Оперативная память | 3 ТБ DDR5 ECC RDIMM |
| Графические ускорители | NVIDIA HGX H200, 8 × 141 ГБ |
| Системные накопители | 2 × SSD M.2 NVMe по 960 ГБ |
| Дополнительные накопители | 4 × SSD NVMe по 3,84 ТБ, предлагаемый вариант оснащения |
| Блоки питания | 8 × 3000 Вт, расширенное исполнение |
Supermicro подтверждает поддержку NVIDIA HGX H200 с восемью ускорителями в исполнении SXM. Для SYS-821GE-TNHR предусмотрены процессоры Intel Xeon Scalable четвертого и пятого поколений, оперативная память DDR5 и накопители NVMe.
Сочетание двух Intel Xeon Platinum 8570, 3 ТБ памяти, восьми H200 и восьми блоков питания по 3000 Вт приведено в материалах Supermicro для исполнения SYS-821GE-TNHR-G1. Дополнительные накопители в таблице представляют вариант расширения, поскольку базовая платформа имеет отсеки NVMe.
Почему подходит такой вариант
NVIDIA HGX H200 объединяет восемь ускорителей с высокоскоростными соединениями NVLink и NVSwitch. Каждый GPU оснащен 141 ГБ видеопамяти.
Это позволяет рассматривать платформу для ресурсоемких задач, в которых программа распределяет параметры модели и вычисления между несколькими устройствами.
В отличие от серверов с отдельными картами PCIe, в данном случае используется готовая вычислительная платформа HGX с ускорителями SXM. Ее внутренние соединения рассчитаны на интенсивный обмен данными между GPU.
Два процессора Intel Xeon и 3 ТБ оперативной памяти обеспечивают ресурсы для подготовки данных и вспомогательных вычислений. Системные накопители M.2 предназначены для загрузки программной среды. Дополнительные SSD можно использовать для обучающих наборов и сохранения результатов.
Платформа имеет несколько вариантов питания. Базовое исполнение предусматривает шесть блоков по 3000 Вт, а расширенное — восемь. В приведенном примере используется вариант с восемью блоками, указанный Supermicro для конфигурации с H200.
Когда рассматривать: для распределенного дообучения крупных языковых моделей, когда требования к памяти и вычислениям подтверждают необходимость нескольких высокопроизводительных ускорителей.
Сравнение серверов для разных задач
| Сервер | Графические ускорители | Для каких задач рассматривать |
|---|---|---|
| ASUS ESC4000A-E12 | 1 × NVIDIA L40S, 48 ГБ | Дообучение небольших моделей, отдельные эксперименты |
| Dell PowerEdge R760xa | 2 × NVIDIA H100 PCIe, по 80 ГБ | Несколько параллельных задач, более ресурсоемкие модели |
| Supermicro SYS-821GE-TNHR | 8 × NVIDIA H200, по 141 ГБ | Распределенное дообучение крупных моделей |
Примеры показывают три варианта организации вычислений. ASUS подходит для задач, которые можно выполнять на одном GPU. Dell позволяет использовать два ускорителя независимо или совместно. Supermicro рассчитан на работу с восемью H200 и интенсивный обмен данными между ними.
При этом размер языковой модели сам по себе не определяет выбор сервера. Важно учитывать метод дообучения, фактическое потребление памяти и требуемую продолжительность вычислений.
Компания может направить специалистам CRABBIT название модели, параметры обучения и характеристики подготовленных данных. На основании этих сведений можно запросить расчет серверной конфигурации и подобрать оборудование под конкретную задачу.
Что проверить перед покупкой сервера
Перед закупкой сервера для дообучения языковых моделей нужно согласовать точный состав оборудования и убедиться, что выбранная конфигурация сможет работать с необходимым программным обеспечением.
Даже когда характеристики отдельных комплектующих подходят под задачу, ограничения серверной платформы могут помешать их совместной работе. Отдельного внимания требуют питание, охлаждение и возможность дальнейшего расширения.
Разберем, какие проверки стоит провести до оформления заказа и как подтвердить, что сервер соответствует требованиям проекта.
Совместимость оборудования и программного обеспечения
Первым делом нужно проверить совместимость всей комплектации. Производители публикуют перечни поддерживаемых процессоров, графических ускорителей, модулей памяти и других устройств. При этом для отдельных сочетаний компонентов могут действовать дополнительные ограничения.
Например, Dell PowerEdge R760xa предусматривает специальные комплекты для установки GPU. В их состав входят платы расширения и кабели питания. Для NVIDIA H100 производитель указывает отдельный тип кабеля. Dell также предупреждает о последствиях установки устройств, которые не прошли проверку совместимости с сервером.
Поэтому в заказе нужно указать точные модели комплектующих и необходимые дополнительные элементы. Если поставщик предлагает готовую сборку, стоит запросить подтверждение совместимости всех установленных устройств.
Следующий вопрос — программное обеспечение. Для дообучения языковых моделей могут использоваться PyTorch, библиотеки Hugging Face и вычислительная платформа NVIDIA CUDA.
CUDA позволяет программам выполнять вычисления на совместимых графических ускорителях. Для ее работы требуется подходящий драйвер — программа, через которую операционная система взаимодействует с GPU.
Совместимость зависит от версий драйвера, CUDA и используемых библиотек. NVIDIA публикует требования к версиям драйверов и описывает ограничения совместимости между выпусками CUDA.
Перед покупкой необходимо согласовать операционную систему, программную среду и версии основных компонентов. Особенно важно проверить поддержку выбранного способа дообучения и распределения вычислений между GPU.
Питание, охлаждение и возможности расширения
Сервер должен сохранять работоспособность при продолжительной вычислительной нагрузке. Для этого необходимо учитывать условия установки и особенности конкретной комплектации.
Электропитание
Потребление электроэнергии зависит от количества и характеристик установленных компонентов. При согласовании конфигурации нужно проверить максимальную расчетную нагрузку и возможности системы питания.
Например, для Supermicro SYS-821GE-TNHR производитель указывает, что мощность одного блока питания составляет 2880 Вт при входном напряжении 200–207 В и 3000 Вт при 207–240 В. Следовательно, доступная мощность зависит от условий электрического подключения.
Отдельно стоит уточнить режим резервирования. Если один блок питания выйдет из строя, оставшиеся должны обеспечивать работу оборудования в пределах возможностей предусмотренной схемы. Наличие нескольких блоков само по себе еще не подтверждает сохранение полной работоспособности при отказе одного из них.
Охлаждение и размещение
Графические ускорители выделяют тепло во время вычислений. Когда температура достигает установленных ограничений, оборудование может снижать производительность.
Поэтому перед закупкой необходимо проверить допустимую температуру окружающей среды, требования к воздушному потоку и условия размещения сервера в стойке.
Например, для Dell PowerEdge R760xa производитель публикует таблицу температурных ограничений. В ней учитываются мощность процессоров, графических ускорителей и конфигурация оперативной памяти. Отдельные сочетания компонентов допускают работу только при определенных условиях охлаждения.
Также нужно проверить глубину стойки, доступное место для установки и возможности системы охлаждения помещения. Для крупных GPU-серверов эти условия могут повлиять на выбор площадки.
Подробнее вопросы электропитания и размещения разобраны в статье Энергопотребление GPU-кластера в ЦОДе: что проверить перед закупкой ИИ-серверов.
Расширение конфигурации
Если компания планирует увеличивать вычислительные ресурсы, стоит заранее определить пределы расширения сервера.
Например, свободный разъем PCIe еще не означает возможность установки дополнительного GPU. Может потребоваться другая плата расширения, кабель питания или изменение системы охлаждения.
Производитель также может устанавливать ограничения на количество и сочетания графических ускорителей.
Аналогичным образом проверяют возможности увеличения оперативной памяти и установки дополнительных накопителей. При необходимости расширения должно быть понятно, какие компоненты можно добавить без замены серверной платформы.
Как проверить производительность на выбранной модели
Технические характеристики позволяют оценить возможности оборудования. Однако фактическую скорость дообучения лучше проверять на той языковой модели, которую компания планирует использовать.
Если доступ к выбранному серверу возможен до закупки, стоит провести пробный запуск. Для сравнения нескольких конфигураций используют одинаковые исходные данные, программную среду и настройки обучения.
Проверка должна ответить на четыре вопроса.
1. Хватает ли видеопамяти?
Программа должна успешно выполнять обучение при заданной длине последовательностей и размере пакета. Во время проверки фиксируют максимальное потребление памяти каждого ускорителя.
PyTorch предоставляет средства для измерения занятой памяти GPU и объема, которым управляет его механизм распределения памяти. Показатели различаются, поэтому при анализе важно понимать, какой именно объем измеряется.
Если программа завершает работу из-за нехватки памяти, необходимо установить причину. Возможные решения зависят от метода дообучения и используемых настроек.
2. Соответствует ли скорость требованиям проекта?
Во время пробного обучения измеряют количество обработанных токенов за секунду и время выполнения вычислительных шагов.
Эти данные позволяют оценить продолжительность полного запуска. При сравнении нескольких серверов важно использовать одинаковые условия, иначе результаты нельзя будет корректно сопоставить.
3. Сохраняется ли производительность при продолжительной работе?
Кратковременный запуск может не выявить ограничений по температуре.
Во время более длительного испытания необходимо отслеживать температуру, загрузку ускорителей и изменение скорости обработки данных. Если производительность снижается, стоит проверить, связано ли это с нагревом или другими ограничениями.
4. Можно ли восстановить обучение после остановки?
Для длительных вычислений важно предусмотреть сохранение состояния программы.
Например, Hugging Face Trainer поддерживает возобновление обучения из контрольного сохранения. Для полноценного восстановления требуются данные о состоянии модели и процесса изменения ее параметров. Сохранения одних только весов может оказаться недостаточно.
Во время испытаний полезно проверить восстановление работы из сохраненного состояния. Это позволит убедиться, что программа способна продолжить обучение после предусмотренной остановки.
Если предварительные испытания провести нельзя, требования к производительности стоит зафиксировать заранее и согласовать возможность их проверки при приемке оборудования. Без измерений нельзя гарантировать скорость дообучения конкретной модели.
Что указать в техническом задании
После выбора оборудования необходимо согласовать состав поставки. Документ должен содержать точные наименования компонентов, условия установки и требования к программной среде.
Для проекта дообучения языковой модели стоит зафиксировать следующие сведения:
| Что указать | Для чего это нужно |
|---|---|
| Состав сервера | Подтвердить совместимость компонентов и комплектность поставки |
| Программная среда | Проверить поддержку GPU, драйверов и библиотек обучения |
| Электропитание и охлаждение | Убедиться, что оборудование можно разместить на выбранной площадке |
| Возможности расширения | Определить допустимые варианты модернизации |
| Условия испытаний | Согласовать порядок проверки производительности |
| Критерии приемки | Установить, какие результаты подтвердят выполнение требований |
Для проверки производительности отдельно указывают название и версию языковой модели, метод дообучения и настройки контрольного запуска. Также фиксируют допустимое потребление памяти, требования к скорости и порядок оценки результатов.
Специалисты CRABBIT могут помочь проверить совместимость комплектующих и подготовить расчет серверной конфигурации с учетом требований проекта.
Вопросы и ответы
Да. Для этого на сервер заранее загружают исходную модель, обучающие данные и необходимые программы. Библиотека Hugging Face Transformers поддерживает работу с локальными файлами без подключения к внешним службам. При этом нужно убедиться, что остальные компоненты программной среды также способны работать без интернета.
Да, если у компании есть право использовать эти материалы и соблюдены требования к защите информации. Однако документы нужно подготовить под конкретную задачу. Например, для обучения корпоративного помощника можно составить пары вопросов и правильных ответов на основе утвержденных инструкций. Перед использованием данные следует проверить на ошибки, устаревшие сведения и информацию с ограниченным доступом.
Универсального количества нет. Все зависит от сложности задачи, качества исходной модели и разнообразия подготовленных примеров. Для начала можно собрать набор типичных обращений и проверить, какие ошибки допускает нейросеть. Затем добавить примеры для проблемных случаев и оценить результат на новых данных. Такой подход помогает определить, приносит ли увеличение обучающего набора пользу.
Да, если вычислительных ресурсов хватает для всех запущенных программ. Например, на одном графическом ускорителе может выполняться дообучение, а другой будет обслуживать запросы сотрудников. Однако приложения также используют общие ресурсы сервера: процессор, оперативную память и накопители. Поэтому перед совместной эксплуатацией нужно проверить скорость работы под ожидаемой нагрузкой.
Да. После полного дообучения можно сохранить измененную версию нейросети и запустить ее на другом совместимом оборудовании. При использовании LoRA обычно сохраняют отдельные адаптеры, для работы которых потребуется соответствующая исходная модель. Также необходимо обеспечить совместимость программного обеспечения и достаточный объем памяти.
Нужно сравнить исходную и дообученную версии на одинаковых заданиях, которые не использовались во время обучения. Для классификации обращений проверяют правильность выбранных категорий. Для подготовки ответов оценивают точность сведений и соблюдение установленных требований. Важно также убедиться, что новая версия не стала хуже выполнять задачи, с которыми исходная модель справлялась успешно.
Это зависит от лицензии конкретной модели. Свободный доступ к ее файлам сам по себе не дает разрешения на любое использование. Перед началом проекта нужно проверить условия коммерческого применения, изменения параметров и распространения дообученных версий. Также необходимо учитывать права на обучающие данные. Сведения о лицензии часто размещаются на странице модели, но при необходимости следует изучить полный текст условий.
Повторное дообучение проводят по мере необходимости. Основанием могут стать новые типы обращений, изменение требований к ответам или снижение качества работы на реальных задачах. Сначала следует определить причину ошибок и проверить, поможет ли дополнительное обучение. После обновления модель снова оценивают на проверочных заданиях, прежде чем использовать в рабочих системах.