Класс Interface изнутри

Урок 95 из 104 курса «HuggingFace: курс по Transformers»: официальный курс Hugging Face Learn (Хаггинг Фейс) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

В этом разделе мы подробно рассмотрим класс Interface и разберем основные параметры, используемые для его создания. Вы заметите, что класс Interface имеет 3 обязательных параметра: Interface(fn, inputs, outputs, ...) Это параметры: fn: функция прогнозирования, обернутая интерфейсом Gradio. Эта функция может принимать один или несколько параметров и возвращать одно или несколько значений inputs: тип(ы) компонента(ов) ввода. Gradio предоставляет множество готовых компонентов, таких как "image" или "mic". outputs: тип(ы) компонента(ов) вывода. Опять же, Gradio предоставляет множество предварительно созданных компонентов, например, " image" или "label". Полный список компонентов смотрите в документации Gradio. Каждый предварительно созданный компонент можно настроить, инстанцировав соответствующий ему класс. Например, как мы видели в предыдущем разделе, вместо передачи "textbox" в параметр inputs, вы можете передать компонент Textbox(lines=7, label="Prompt") для создания текстового поля с 7 строками и меткой. Давайте рассмотрим еще один пример, на этот раз с компонентом Audio. Как уже говорилось, Gradio предоставляет множество различных входов и выходов. Поэтому давайте создадим Interface, работающий с аудио. В этом примере мы создадим функцию audio-to-audio, которая принимает аудиофайл и просто переворачивает его. Для ввода мы будем использовать компонент Audio. При использовании компонента Audio, вы можете указать, будет ли источником звука файл, который загружает пользователь или микрофон, с помощью которого пользователь записывает свой голос. В данном случае давайте зададим "microphone". Просто ради интереса добавим к Audio метку, которая будет гласить "Speak here...". Кроме того, мы хотели бы получать аудио в виде массива numpy, чтобы можно было легко "перевернуть" его. Поэтому мы зададим "type" в значение "numpy", которое передаст входные данные в виде кортежа (sample_rate, data) в нашу функцию. Мы также будем использовать компонент вывода Audio, который может автоматически рендерить кортеж с частотой дискретизации и массивом данных numpy в воспроизводимый аудиофайл. В этом случае нам не нужно делать никаких настроек, поэтому мы будем использовать строку ярлык "audio".

План урока

  1. Как создать Interface
  2. Простой пример со звуком
  3. Обработка нескольких входов и выходов
  4. Метод launch()
  5. ✏️ Давайте применим это!

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды