Обучение ИИ в масштабе

Это часть серии сообщений в блогах, посвященных внедрению искусственного интеллекта. Если вас интересует предыстория этой истории или ее развитие:

На прошлой неделе мы рассмотрели, как использовать параметр chips, отвечающий за сужение результатов, запрашивая изображения с определенной высотой в SerpApi’s Google Images Scraper API для обучения моделей машинного обучения. На этой неделе мы изучим автоматическое обновление набора данных изображения несколькими запросами одного типа и увидим результаты в более крупном масштабе глубокого обучения.

Что такое ИИ в масштабе?

Этот термин относится к масштабируемости при расширении набора данных изображений для использования в процессе обучения машинному обучению, а также к расширению или повторному обучению модели машинного обучения в масштабе с минимальными усилиями. Проще говоря, если у вас есть модель, которая различает кошку и собаку, вы должны иметь возможность легко расширить обучение ИИ, автоматически собирая изображения обезьян и переобучая или расширяя существующий классификатор с использованием различных фреймворков. Решения ИИ с большими моделями нуждаются в эффективных рабочих процессах для разработки моделей.

Как сократить время обучения?

Используя четкие данные, вы можете уменьшить шум и получить эффективные модели искусственного интеллекта, которые могут превзойти другие модели ИИ. В компьютерном зрении этот аспект более важен, поскольку рабочие нагрузки значительно изменятся по сравнению с алгоритмами, отвечающими за nlp (обработку естественного языка).

Легко очищать четкие данные

На прошлой неделе я показал, как вручную получить параметр chips из поиска Google. SerpApi может создавать список различных значений chips и обслуживать их под ключом suggested_searches.

Здесь следует отметить, что значение chips для разных запросов будет иметь разные значения. Однако вы можете получить значение chips определенного запроса и запустить его на разных страницах для этого же конкретного запроса.

Например, значение chips для запроса American Foxhound imagesize:500x500 и спецификации dog равно:
q:american+foxhound,g_1:dog:FSAvwTymSjE%3D

То же значение chips для American Hairless Terrier imagesize:500x500:
q:american+hairless+terrier,g_1:dog:AI24zk7-hcI%3D

Как видите, зашифрованная часть значения chips отличается. Вот почему вам нужно сделать хотя бы один вызов SerpApi's Google Images Scraper API, чтобы получить желаемое значение chips.

Я добавил новый ключ с именем desired_chips_name в наш класс Query для проверки результатов с желаемым name в suggested_searches:

Также была потребность в другой функции в классе Download для извлечения значения chips и использования его для поиска:

Эта функция отвечает за вызов SerpApi с запросом и возврат желаемого параметра chips, а также его обновление в классе Query.

Теперь, когда есть все необходимое для автоматического выполнения вызова с желаемой спецификацией и добавления его в наш набор данных модели ИИ, который будет использоваться для обучения машинному обучению, давайте объявим класс, который будет использоваться для выполнения нескольких запросов:

Ключ queries здесь будет списком запросов, которые вы хотите классифицировать. Например: Список пород собак
Ключ desired_chips_name будет их общей спецификацией. В данном случае это dog.
height и width будут желаемыми размерами изображений, которые будут собраны для обучения глубокому обучению.
num будет количеством результатов на странице.
number_of_pages будет количество страниц, которые вы хотели бы получить. 1 даст около 100 результатов, 2 даст около 200 изображений, если число равно 100 и т. д.
google_domain – это домен Google, в котором вы хотите выполнить поиск.
api_key – ваш уникальный ключ API для SerpApi.

Давайте определим функцию для автоматического вызова запросов по порядку и загрузки изображений в набор данных хранилища с их классификацией:

Мы запрашиваем SerpApi один раз с chips_serpapi_search, а затем используем значение chips для запуска реальных поисков. Затем мы перемещаем все изображения в хранилище набора данных изображений для обучения моделей машинного обучения, созданных ранее.

Наконец, давайте объявим для него конечную точку в main.py:

Обучение в масштабе

Для демонстрации мы будем использовать 8 видов американских пород собак. На самом деле, мы могли бы даже интегрировать SerpApi's Google Organic Results Scraper API, чтобы автоматически получать Famous American Dog Breeds и запускать его с нашим ключом queries. Это выходит за рамки сегодняшнего сообщения в блоге. Но это хороший показатель многоцелевого использования SerpApi.

Если вы отправитесь на площадку по следующей ссылке, вас встретит желаемый результат:

Теперь мы возьмем список из organic_result и поместим его в наш объект MultipleQueries в конечной точке /multipl_query:

Этот словарь принесет нам 2 страниц (около 200 изображений) с высотой 500 и шириной 500 в Google US со значением чипов для dog (специально суженным до только изображений собак) для каждой породы собак, которую мы ввели.

Вы можете заметить, что изображения загружаются на сервер хранения N1QL:

Если вы хотите создать свои собственные оптимизации для своего проекта машинного обучения, вы можете получить бесплатную пробную версию на SerpApi.

Теперь, когда у нас есть все необходимое, давайте обучим модель машинного обучения, которая различает американские породы собак в конечной точке /train, со следующим словарем:

Модель искусственного интеллекта будет автоматически обучаться в больших масштабах с использованием изображений, которые мы загрузили в набор данных, в этом случае через высокопроизводительный графический процессор моего компьютера (также возможно обучение с процессором):

Я благодарен пользователю за внимание и Блестящим людям SerpApi за то, что этот пост стал возможен. На этой неделе мы сосредоточились не на создании эффективных моделей с хорошими метриками, а на процессе автоматизации создания. В следующие недели мы будем работать над устранением его недостатков и недостающих частей. Эти части включают в себя возможность распределенного обучения для моделей машинного обучения, поддержку всех оптимизаторов и критериев, добавление настраиваемых классов моделей, возможность обучения моделей машинного обучения на различных типах файлов (текст, видео), неэффективное использование конвейеров, использование различных инструментов обработки данных. , поддерживая другие библиотеки машинного обучения, такие как tensorflow, наряду с pytorch и т. д. Я не стремлюсь сделать современный проект. Но я стремлюсь создать решение для простого создания систем искусственного интеллекта. Я также стремлюсь создать визуализацию для сравнения различных моделей глубокого обучения, созданных в рамках экосистемы. Мы также обсудим визуализацию процесса обучения, чтобы иметь эффективные модели. Цель состоит в том, чтобы иметь библиотеку с открытым исходным кодом, в которой вы можете масштабировать свои модели по своему усмотрению.

Первоначально опубликовано на https://serpapi.com 19 июля 2022 г.