OpenAI шепот — это усовершенствованная модель автоматического распознавания речи (ASR) с лицензией MIT. Технология ASR находит применение в службах транскрипции, голосовых помощниках и повышении доступности для людей с нарушениями слуха. Эта современная модель обучена на обширном и разнообразном наборе многоязычных и многозадачных контролируемых данных, собранных из Интернета. Высокая точность и адаптируемость делают его ценным инструментом для решения широкого спектра задач, связанных с голосовой связью.
В постоянно развивающемся мире машинного обучения и искусственного интеллекта Создатель мудреца Амазонки обеспечивает комплексную экосистему. SageMaker дает специалистам по данным, разработчикам и организациям возможность разрабатывать, обучать, развертывать модели машинного обучения и управлять ими в любом масштабе. Предлагая широкий спектр инструментов и возможностей, он упрощает весь рабочий процесс машинного обучения: от предварительной обработки данных и разработки моделей до простого развертывания и мониторинга. Удобный интерфейс SageMaker делает его ключевой платформой для раскрытия всего потенциала искусственного интеллекта, делая его революционным решением в области искусственного интеллекта.
В этом посте мы приступаем к исследованию возможностей SageMaker, уделяя особое внимание размещению моделей Whisper. Мы углубимся в два метода сделать это: один использует модель Whisper PyTorch, а другой — реализацию Hugging Face модели Whisper. Кроме того, мы проведем углубленное исследование вариантов вывода SageMaker, сравнивая их по таким параметрам, как скорость, стоимость, размер полезной нагрузки и масштабируемость. Этот анализ дает пользователям возможность принимать обоснованные решения при интеграции моделей Whisper в их конкретные варианты использования и системы.
Обзор решения
На следующей диаграмме показаны основные компоненты этого решения.
- Чтобы разместить модель на Amazon SageMaker, первым делом необходимо сохранить артефакты модели. Эти артефакты относятся к основным компонентам модели машинного обучения, необходимым для различных приложений, включая развертывание и переобучение. Они могут включать параметры модели, файлы конфигурации, компоненты предварительной обработки, а также метаданные, такие как сведения о версии, авторство и любые примечания, связанные с ее производительностью. Важно отметить, что модели Whisper для реализаций PyTorch и Hugging Face состоят из разных артефактов модели.
- Далее мы создаем собственные сценарии вывода. В этих сценариях мы определяем, как должна загружаться модель, и указываем процесс вывода. Здесь мы также можем при необходимости включать пользовательские параметры. Кроме того, вы можете перечислить необходимые пакеты Python в
requirements.txt
файл. Во время развертывания модели эти пакеты Python автоматически устанавливаются на этапе инициализации. - Затем мы выбираем контейнеры глубокого обучения (DLC) PyTorch или Hugging Face, предоставляемые и поддерживаемые AWS. Эти контейнеры представляют собой предварительно созданные образы Docker с платформами глубокого обучения и другими необходимыми пакетами Python. Для получения дополнительной информации вы можете проверить это ссылке.
- С помощью артефактов модели, пользовательских сценариев вывода и выбранных DLC мы создадим модели Amazon SageMaker для PyTorch и Hugging Face соответственно.
- Наконец, модели можно развернуть в SageMaker и использовать со следующими опциями: конечные точки вывода в реальном времени, задания пакетного преобразования и конечные точки асинхронного вывода. Мы углубимся в эти варианты более подробно позже в этом посте.
Пример блокнота и код для этого решения доступны по этой ссылке. Репозиторий GitHub.
Прохождение
Размещение модели Whisper на Amazon SageMaker
В этом разделе мы объясним шаги по размещению модели Whisper на Amazon SageMaker с использованием PyTorch и Hugging Face Frameworks соответственно. Чтобы поэкспериментировать с этим решением, вам понадобится учетная запись AWS и доступ к сервису Amazon SageMaker.
PyTorch Framework
- Сохранение артефактов модели
Первый вариант размещения модели — использовать Официальный пакет Python Whisper, который можно установить с помощью pip install openai-whisper
. Этот пакет предоставляет модель PyTorch. При сохранении артефактов модели в локальном репозитории первым шагом является сохранение обучаемых параметров модели, таких как веса модели и смещения каждого слоя в нейронной сети, в виде файла «pt». Вы можете выбирать модели разных размеров, включая «крошечную», «базовую», «маленькую», «среднюю» и «большую». Модели большего размера обеспечивают более высокую точность, но достигаются за счет более длительной задержки вывода. Кроме того, вам необходимо сохранить словарь состояния модели и словарь измерений, которые содержат словарь Python, который сопоставляет каждый слой или параметр модели PyTorch с соответствующими обучаемыми параметрами, а также другими метаданными и пользовательскими конфигурациями. Код ниже показывает, как сохранить артефакты Whisper PyTorch.
- Выберите DLC
Следующий шаг — выбрать готовый DLC из этого списка. ссылке. Будьте осторожны при выборе правильного изображения, учитывая следующие параметры: платформа (PyTorch), версия платформы, задача (вывод), версия Python и оборудование (т. е. графический процессор). Рекомендуется по возможности использовать последние версии платформы и Python, так как это приводит к повышению производительности и устранению известных проблем и ошибок из предыдущих выпусков.
- Создание моделей Amazon SageMaker
Далее мы используем SDK для SageMaker Python для создания моделей PyTorch. Важно не забывать добавлять переменные среды при создании модели PyTorch. По умолчанию TorchServe может обрабатывать файлы размером до 6 МБ, независимо от используемого типа вывода.
В следующей таблице показаны настройки для разных версий PyTorch:
Рамки | Переменные среды |
PyTorch 1.8 (на основе TorchServe) | "TS_MAX_REQUEST_SIZE ': '100000000'" TS_MAX_RESPONSE_SIZE ': '100000000'" TS_DEFAULT_RESPONSE_TIMEOUT ': '1000' |
PyTorch 1.4 (на основе MMS) | "MMS_MAX_REQUEST_SIZE ': '1000000000'" MMS_MAX_RESPONSE_SIZE ': '1000000000'" MMS_DEFAULT_RESPONSE_TIMEOUT ': '900' |
- Определите метод загрузки модели в inference.py.
В обычае inference.py
скрипте мы сначала проверяем наличие графического процессора с поддержкой CUDA. Если такой графический процессор доступен, то мы назначаем 'cuda'
устройство к DEVICE
переменная; в противном случае мы присваиваем 'cpu'
устройство. Этот шаг гарантирует, что модель будет размещена на доступном оборудовании для эффективных вычислений. Мы загружаем модель PyTorch, используя пакет Whisper Python.
Рамка «Обнимающее лицо»
- Сохранение артефактов модели
Второй вариант заключается в использовании Шепот обнимающего лица выполнение. Модель можно загрузить с помощью AutoModelForSpeechSeq2Seq
класс трансформаторов. Изучаемые параметры сохраняются в двоичном (bin) файле с помощью save_pretrained
метод. Токенизатор и препроцессор также необходимо сохранить отдельно, чтобы обеспечить правильную работу модели Hugging Face. Альтернативно вы можете развернуть модель в Amazon SageMaker непосредственно из Hugging Face Hub, задав две переменные среды: HF_MODEL_ID
и HF_TASK
. Для получения дополнительной информации, пожалуйста, обратитесь к этому веб-страница.
- Выберите DLC
Как и в случае с платформой PyTorch, вы можете выбрать готовый DLC Hugging Face из той же среды. ссылке. Обязательно выберите DLC, который поддерживает новейшие трансформеры Hugging Face и включает поддержку графического процессора.
- Создание моделей Amazon SageMaker
Аналогичным образом мы используем SDK для SageMaker Python для создания моделей Hugging Face. Модель Hugging Face Whisper имеет ограничение по умолчанию, согласно которому она может обрабатывать только аудиосегменты продолжительностью до 30 секунд. Чтобы устранить это ограничение, вы можете включить chunk_length_s
параметр в переменной среды при создании модели Hugging Face, а затем передайте этот параметр в пользовательский скрипт вывода при загрузке модели. Наконец, установите переменные среды, чтобы увеличить размер полезных данных и время ответа для контейнера Hugging Face.
Рамки | Переменные среды |
Контейнер вывода HuggingFace (на основе MMS) |
"MMS_MAX_REQUEST_SIZE ': '2000000000'" MMS_MAX_RESPONSE_SIZE ': '2000000000'" MMS_DEFAULT_RESPONSE_TIMEOUT ': '900' |
- Определите метод загрузки модели в inference.py.
При создании пользовательского сценария вывода для модели Hugging Face мы используем конвейер, позволяющий передавать chunk_length_s
в качестве параметра. Этот параметр позволяет модели эффективно обрабатывать длинные аудиофайлы во время вывода.
Изучение различных вариантов вывода в Amazon SageMaker
Шаги по выбору параметров вывода одинаковы для моделей PyTorch и Hugging Face, поэтому ниже мы не будем различать их. Однако стоит отметить, что на момент написания этой статьи бессерверный вывод Опция SageMaker не поддерживает графические процессоры, поэтому мы исключаем эту опцию для данного варианта использования.
Мы можем развернуть модель как конечную точку в режиме реального времени, предоставляя ответы за миллисекунды. Однако важно отметить, что эта опция ограничена обработкой входных данных размером менее 6 МБ. Мы определяем сериализатор как сериализатор аудио, который отвечает за преобразование входных данных в формат, подходящий для развернутой модели. Мы используем экземпляр графического процессора для вывода, что позволяет ускорить обработку аудиофайлов. Входные данные вывода — это аудиофайл из локального репозитория.
Второй вариант вывода — это задание пакетного преобразования, которое способно обрабатывать входные полезные данные размером до 100 МБ. Однако этот метод может занять несколько минут задержки. Каждый экземпляр может одновременно обрабатывать только один пакетный запрос, а запуск и завершение работы экземпляра также занимают несколько минут. Результаты вывода сохраняются в Amazon Simple Storage Service (Amazon S3) сегмент после завершения задания пакетного преобразования.
При настройке пакетного преобразователя обязательно включите max_payload = 100
для эффективной обработки больших полезных нагрузок. Входными данными вывода должен быть путь Amazon S3 к аудиофайлу или папка Amazon S3 Bucket, содержащая список аудиофайлов, каждый из которых имеет размер менее 100 МБ.
Пакетное преобразование разделяет входные объекты Amazon S3 по ключам и сопоставляет объекты Amazon S3 с экземплярами. Например, если у вас есть несколько аудиофайлов, один экземпляр может обрабатывать input1.wav, а другой экземпляр может обрабатывать файл с именем input2.wav для повышения масштабируемости. Пакетное преобразование позволяет настроить max_concurrent_transforms
для увеличения количества HTTP-запросов к каждому отдельному контейнеру-трансформеру. Однако важно отметить, что значение (max_concurrent_transforms* max_payload
) не должен превышать 100 МБ.
Наконец, Amazon SageMaker Asynchronous Inference идеально подходит для одновременной обработки нескольких запросов, обеспечивая умеренную задержку и поддерживая входные полезные данные объемом до 1 ГБ. Этот параметр обеспечивает превосходную масштабируемость, позволяя настроить группу автоматического масштабирования для конечной точки. Когда возникает всплеск запросов, он автоматически масштабируется для обработки трафика, а после обработки всех запросов конечная точка масштабируется до 0 для экономии затрат.
Используя асинхронный вывод, результаты автоматически сохраняются в корзине Amazon S3. в AsyncInferenceConfig
, вы можете настроить уведомления об успешных или неудачных завершениях. Входной путь указывает на местоположение аудиофайла в Amazon S3. Для получения дополнительной информации, пожалуйста, обратитесь к коду на GitHub.
Дополнительно: Как упоминалось ранее, у нас есть возможность настроить группу автомасштабирования для конечной точки асинхронного вывода, что позволяет ей обрабатывать внезапный всплеск запросов на вывод. Пример кода приведен в этом Репозиторий GitHub. На следующей диаграмме вы можете наблюдать линейный график, отображающий две метрики из Amazon CloudWatch: ApproximateBacklogSize
и ApproximateBacklogSizePerInstance
. Первоначально, когда было запущено 1000 запросов, для обработки вывода был доступен только один экземпляр. В течение трех минут размер невыполненной работы постоянно превышал три (обратите внимание, что эти числа можно настроить), и группа автоматического масштабирования отреагировала на это запуском дополнительных экземпляров для эффективной очистки невыполненной работы. Это привело к значительному снижению ApproximateBacklogSizePerInstance
, что позволяет обрабатывать невыполненные запросы намного быстрее, чем на начальном этапе.
Сравнительный анализ вариантов вывода
Сравнение различных вариантов вывода основано на распространенных случаях использования обработки звука. Вывод в реальном времени обеспечивает самую высокую скорость вывода, но ограничивает размер полезной нагрузки 6 МБ. Этот тип вывода подходит для систем аудиокоманд, где пользователи управляют устройствами или программным обеспечением или взаимодействуют с ними с помощью голосовых команд или устных инструкций. Голосовые команды обычно имеют небольшой размер, а низкая задержка вывода имеет решающее значение для обеспечения того, чтобы расшифрованные команды могли быстро запускать последующие действия. Пакетное преобразование идеально подходит для запланированных автономных задач, когда размер каждого аудиофайла не превышает 100 МБ и нет особых требований к быстрому времени отклика. Асинхронный вывод позволяет загружать до 1 ГБ и обеспечивает умеренную задержку вывода. Этот тип вывода хорошо подходит для расшифровки фильмов, телесериалов и записанных конференций, где необходимо обрабатывать аудиофайлы большего размера.
Опции как в реальном времени, так и асинхронный вывод предоставляют возможности автоматического масштабирования, позволяя экземплярам конечных точек автоматически увеличивать или уменьшать масштаб в зависимости от объема запросов. В случаях отсутствия запросов автоматическое масштабирование удаляет ненужные экземпляры, помогая избежать затрат, связанных с предоставленными экземплярами, которые активно не используются. Однако для вывода в реальном времени необходимо сохранить хотя бы один постоянный экземпляр, что может привести к более высоким затратам, если конечная точка будет работать непрерывно. Напротив, асинхронный вывод позволяет уменьшить объем экземпляра до 0, когда он не используется. При настройке задания пакетного преобразования можно использовать несколько экземпляров для обработки задания и настроить max_concurrent_transforms, чтобы один экземпляр мог обрабатывать несколько запросов. Таким образом, все три варианта вывода обеспечивают отличную масштабируемость.
Убираться
После завершения использования решения обязательно удалите конечные точки SageMaker, чтобы избежать дополнительных затрат. Вы можете использовать предоставленный код для удаления конечных точек вывода в реальном времени и асинхронного вывода соответственно.
Заключение
В этом посте мы показали вам, как развертывание моделей машинного обучения для обработки звука становится все более важным в различных отраслях. На примере модели Whisper мы продемонстрировали, как размещать модели ASR с открытым исходным кодом на Amazon SageMaker с использованием подходов PyTorch или Hugging Face. Исследование включало в себя различные варианты вывода в Amazon SageMaker, что позволило получить представление об эффективной обработке аудиоданных, составлении прогнозов и эффективном управлении затратами. Целью этого поста является предоставление знаний исследователям, разработчикам и специалистам по обработке данных, заинтересованным в использовании модели Whisper для задач, связанных со звуком, и принятии обоснованных решений по стратегиям вывода.
Более подробную информацию о развертывании моделей в SageMaker см. здесь. Руководство для разработчиков. Кроме того, модель Whisper можно развернуть с помощью SageMaker JumpStart. Для получения дополнительной информации, пожалуйста, проверьте Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart после.
Не стесняйтесь просмотреть блокнот и код для этого проекта на GitHub и поделитесь с нами своим комментарием.
Об авторе
Ин Хоу, доктор философии— архитектор прототипов машинного обучения в AWS. Ее основные области интересов включают глубокое обучение с упором на GenAI, компьютерное зрение, НЛП и прогнозирование данных временных рядов. В свободное время она любит проводить приятные моменты со своей семьей, погружаясь в романы и совершая пешие прогулки по национальным паркам Великобритании.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/host-the-whisper-model-on-amazon-sagemaker-exploring-inference-options/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 10
- 100
- 12
- 14
- 140
- 16
- 19
- 30
- 32
- 7
- 8
- 900
- a
- ускоренный
- доступ
- доступность
- Учетная запись
- точность
- через
- действия
- активно
- Добавить
- дополнительный
- Дополнительно
- адрес
- продвинутый
- AI
- Цель
- Все
- Позволяющий
- позволяет
- вдоль
- причислены
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- an
- анализ
- и
- Другой
- любой
- Приложения
- подходы
- МЫ
- области
- массив
- искусственный
- искусственный интеллект
- AS
- активы
- помощники
- связанный
- At
- аудио
- Авторство
- Автоматический
- автоматически
- свободных мест
- доступен
- избежать
- AWS
- Использование темпера с изогнутым основанием
- основанный
- BE
- становиться
- ниже
- Лучшая
- между
- предубеждения
- BIN
- изоферменты печени
- ошибки
- но
- by
- CAN
- возможности
- способный
- тщательный
- случаев
- изменения
- График
- проверка
- Выберите
- Выбирая
- класс
- Очистить
- код
- как
- комментарий
- Общий
- сравнив
- сравнения
- Заполненная
- завершение
- компоненты
- комплексный
- вычисление
- компьютер
- Компьютерное зрение
- Проводить
- конференции
- Конфигурация
- настроить
- настройка
- принимая во внимание
- последовательно
- содержать
- Container
- Контейнеры
- непрерывно
- контраст
- контроль
- преобразование
- исправить
- соответствующий
- Цена
- Расходы
- может
- Создайте
- Создающий
- решающее значение
- изготовленный на заказ
- данным
- решения
- снижение
- глубоко
- глубокое обучение
- По умолчанию
- определять
- убивают
- развертывание
- развернуть
- развертывание
- развертывание
- подробность
- подробный
- подробнее
- развивать
- застройщиков
- Развитие
- устройство
- Устройства
- различный
- дифференцировать
- Размеры
- непосредственно
- отображать
- погружение
- Разное
- Docker
- не
- дело
- вниз
- в течение
- e
- каждый
- Ранее
- экосистема
- фактически
- эффективный
- эффективно
- легкий
- или
- еще
- начинать
- Наделяет
- включить
- позволяет
- позволяет
- охватывала
- охватывает
- Конечная точка
- повышать
- повышение
- обеспечивать
- обеспечивает
- Весь
- Окружающая среда
- существенный
- налаживание
- пример
- превышать
- Превышен
- отлично
- эксперимент
- Объяснять
- исследование
- Исследование
- Face
- Oшибка
- ложный
- семья
- БЫСТРО
- быстрее
- быстрый
- несколько
- Файл
- Файлы
- находит
- Во-первых,
- Фокус
- фокусировка
- после
- Что касается
- формат
- Рамки
- каркасы
- Бесплатно
- от
- полный
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- большой
- группы
- обрабатывать
- Управляемость
- Аппаратные средства
- Есть
- слух
- помощь
- ее
- High
- высший
- кашель
- хостинг
- Как
- How To
- Однако
- HTML
- HTTP
- HTTPS
- хаб
- ОбниматьЛицо
- i
- идеальный
- if
- иллюстрирующая
- изображение
- изображений
- реализация
- реализации
- Импортировать
- важную
- in
- углубленный
- включают
- включает в себя
- В том числе
- включать
- Увеличение
- все больше и больше
- individual
- лиц
- промышленности
- информация
- сообщил
- начальный
- первоначально
- инициирование
- вход
- затраты
- размышления
- устанавливать
- установлен
- пример
- инструкции
- Интегрируя
- Интеллекта
- взаимодействовать
- интерес
- заинтересованный
- Интерфейс
- в
- вопросы
- IT
- ЕГО
- работа
- Джобс
- JPG
- Основные
- знания
- известный
- пейзаж
- больше
- наконец
- Задержка
- новее
- последний
- слой
- вести
- изучение
- наименее
- Используя
- Лицензия
- ограничение
- Ограниченный
- линия
- Список
- загрузка
- погрузка
- локальным
- расположение
- Длинное
- дольше
- Низкий
- машина
- обучение с помощью машины
- сделанный
- Главная
- сделать
- ДЕЛАЕТ
- Создание
- управлять
- управления
- Карты
- Май..
- упомянутый
- Метаданные
- метод
- методы
- Метрика
- может быть
- миллисекунды
- Минут
- MIT
- ML
- модель
- Модели
- умеренному
- Моменты
- Мониторинг
- БОЛЕЕ
- Кино
- много
- с разными
- должен
- Названный
- национальный
- необходимо
- Необходимость
- необходимый
- сеть
- нервный
- нейронной сети
- следующий
- НЛП
- нет
- в своих размышлениях
- ноутбук
- Заметки
- уведомление
- Уведомления
- отметив,
- сейчас
- номер
- номера
- объект
- объекты
- наблюдать
- of
- предлагают
- предлагающий
- Предложения
- Официальный представитель в Грузии
- оффлайн
- on
- консолидировать
- ONE
- только
- с открытым исходным кодом
- работает
- Опция
- Опции
- or
- заказ
- организации
- OS
- Другое
- в противном случае
- внешний
- обзор
- пакет
- пакеты
- параметр
- параметры
- pass
- путь
- Выполнять
- производительность
- фаза
- трубопровод
- основной
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- пожалуйста
- пунктов
- возможное
- После
- потенциал
- прогноз
- Predictions
- предотвращать
- предыдущий
- первичный
- процесс
- Обработанный
- обработка
- процессор
- Проект
- должным образом
- макетирования
- обеспечивать
- при условии
- приводит
- обеспечение
- Питон
- pytorch
- ассортимент
- реального времени
- область
- признание
- Управление по борьбе с наркотиками (DEA)
- записанный
- Цена снижена
- относиться
- Несмотря на
- Связанный
- публикации
- помнить
- удаление
- удаляет
- хранилище
- запросить
- Запросы
- требовать
- обязательный
- требование
- исследователи
- соответственно
- ответ
- ответы
- ответственный
- результат
- Итоги
- возвращают
- sagemaker
- то же
- Сохранить
- сохраняются
- экономия
- Масштабируемость
- Шкала
- Весы
- считаться
- Ученые
- скрипт
- скрипты
- Во-вторых
- секунды
- Раздел
- сегментами
- выберите
- выбранный
- выбор
- Серии
- обслуживание
- Услуги
- набор
- установка
- настройки
- Поделиться
- она
- должен
- показал
- Шоу
- выключение
- значительный
- просто
- упрощает
- Размер
- Размеры
- небольшой
- меньше
- So
- Software
- Решение
- конкретный
- конкретно
- указанный
- речь
- Распознавание речи
- скорость
- Расходы
- говорят
- Начало
- Область
- современное состояние
- Шаг
- Шаги
- диск
- стратегий
- последующее
- успешный
- такие
- внезапный
- подходящее
- поддержка
- поддержки
- Поддержка
- Убедитесь
- возникает
- системы
- ТАБЛИЦЫ
- взять
- с
- Сложность задачи
- задачи
- Технологии
- чем
- который
- Ассоциация
- Великобритании
- их
- Их
- тогда
- Там.
- следовательно
- Эти
- они
- этой
- три
- время
- Временные ряды
- раз
- в
- инструменты
- факел
- трафик
- Train
- специалистов
- Transform
- трансформатор
- трансформеры
- вызвать
- срабатывает
- tv
- два
- напишите
- типично
- Uk
- под
- отпирающий
- ненужный
- на
- us
- использование
- используемый
- удобно
- пользователей
- через
- утилита
- использовать
- Использующий
- ценный
- ценностное
- переменная
- различный
- Огромная
- версия
- версии
- видение
- Режимы
- объем
- ждать
- хотеть
- законопроект
- we
- Web
- веб-сервисы
- ЧТО Ж
- были
- когда
- когда бы ни
- , которые
- Whisper
- широкий
- Широкий диапазон
- в
- рабочий
- работает
- стоимость
- письмо
- Ты
- ВАШЕ
- зефирнет