Универсальный интерфейс AutoML на базе ЦП для решения широкого круга задач машинного обучения
Как мы представили в нашем предыдущем посте, ThirdAI — это стартап, посвященный демократизации искусственного интеллекта, позволяющий всем разработчикам обучать и развертывать крупномасштабные нейронные сети на обычном оборудовании ЦП. С помощью алгоритмических и программных инноваций мы стремимся на порядки снизить стоимость разработки современных решений для машинного обучения.
В этом посте мы рады представить новейшее предложение продукта ThirdAI: Universal Deep Transformers (UDT), интерфейс AutoML для решения широкого круга задач машинного обучения с помощью всего нескольких строк кода Python и без ручной настройки гиперпараметров. С помощью UDT любой разработчик или бизнес-организация могут приступить к работе с передовыми возможностями глубокого обучения на стандартной рабочей станции с процессором, не имея опыта машинного обучения.
В оставшейся части этого поста мы суммируем преимущества UDT и рассмотрим несколько вариантов использования, которые вы также можете попробовать в качестве ноутбуков Google Colab.
Возможности UDT
- Универсальный интерфейс.UDT может решать широкий спектр задач машинного обучения и модальностей данных, от обработки естественного языка до поиска, рекомендаций, анализа табличных данных, временных рядов, переформулирования текста и т. д. все через тот же API. Этот универсальный API упрощает рабочий процесс, особенно когда клиенты хотят применять UDT для решения множества бизнес-задач.
- Автоматическая настройка параметров.Проприетарные алгоритмы ThirdAI для обучения нейронных сетей и логических выводов основаны на многолетних исследованиях применения хеширования и вероятностных структур данных для машинного обучения. Эти инструменты, хотя и эффективны, включают в себя множество настраиваемых гиперпараметров, которые требуют значительного опыта в предметной области для правильной настройки для данного набора данных и рабочей нагрузки. Однако мы устранили это узкое место, разработав новые математические методы автоматического выбора оптимальных гиперпараметров, связанных с нашими алгоритмами. Как клиенту, вам нужно всего лишь вызвать интерфейс UDT в своем наборе данных, а затем сесть и расслабиться, зная, что технология ThirdAI выберет оптимальные гиперпараметры и выполнит проектирование функций автоматически без каких-либо дополнительных вычислительных затрат.
- Обучение в миллиардном масштабе. Благодаря инновациям в разработке программного обеспечения ThirdAI, а также большей пропускной способности памяти ЦП по сравнению с ГП, UDT может легко масштабироваться для наборов данных с миллиардами записей и экстремальных задач классификации с сотнями миллионов записей. выходных меток.
- Задержка логического вывода менее миллисекунды.Используя запатентованные алгоритмы разреженного логического вывода ThirdAI, UDT может достичь задержки логического вывода менее 1 мс на стандартных процессорах независимо от общего размера модели.
- Немедленная готовность к работе. Мы разработали UDT с упором на производственное развертывание. После обучения модели UDT клиенты могут немедленно сохранить сеть в сериализованном формате, который можно загружать в различных средах выполнения без дополнительных инженерных усилий.
Тематические исследования UDT
В этом разделе мы выделяем несколько практических вариантов использования UDT. Все эти примеры также доступны в виде блокнотов Google Colab. Мы рекомендуем вам запустить эти записные книжки и лично увидеть UDT в действии!
Прогнозирование доходов по переписи
Наш первый пример включает задачу классификации табличных данных. В частности, цель задачи Kaggle Census Income состоит в том, чтобы предсказать, превышает ли доход данного человека 50 000 долларов в год или нет. После загрузки набора табличных данных мы можем определить нашу модель UDT следующим образом:
from thirdai import bolt from thirdai.demos import download_census_income train_filename, test_filename, inference_batch = download_census_income() model = bolt.UniversalDeepTransformer( data_types={ "age": bolt.types.numerical(range=(17, 90)), "workclass": bolt.types.categorical(), "fnlwgt": bolt.types.numerical(range=(12285, 1484705)), "education": bolt.types.categorical(), "education-num": bolt.types.categorical(), "marital-status": bolt.types.categorical(), "occupation": bolt.types.categorical(), "relationship": bolt.types.categorical(), "race": bolt.types.categorical(), "sex": bolt.types.categorical(), "capital-gain": bolt.types.numerical(range=(0, 99999)), "capital-loss": bolt.types.numerical(range=(0, 4356)), "hours-per-week": bolt.types.numerical(range=(1, 99)), "native-country": bolt.types.categorical(), "label": bolt.types.categorical(), }, target="label", n_target_classes=2, )
И тогда мы можем обучать, оценивать, сохранять и загружать модель всего четырьмя строками кода. Обратите внимание, что помимо скорости обучения и количества эпох все остальные параметры обучения выбираются автоматически.
# Training the model model.train(train_filename, epochs=5, learning_rate=0.01, metrics=["categorical_accuracy"]) # Evaluating the model model.evaluate(test_filename, metrics=["categorical_accuracy"]); # Saving model.save("income_prediction.model") # Loading model = bolt.UniversalDeepTransformer.load("income_prediction.model")
Классификация намерений
Для нашего второго примера мы обратим наше внимание на задачу обработки естественного языка классификации намерений, которая включает в себя предсказание намерения на основе фиксированного набора возможных меток для заданного ввода текста. Для этой демонстрации мы используем набор эталонных данных Clinc150. Как показано ниже, интерфейс такой же, как и в предыдущем табличном примере, несмотря на существенные различия в формате данных.
from thirdai import bolt from thirdai.demos import download_clinc_dataset train_filename, test_filename, inference_batch = download_clinc_dataset() model = bolt.UniversalDeepTransformer( data_types={ "text": bolt.types.text(), "category": bolt.types.categorical(), }, target="category", n_target_classes=150, ) model.train(train_filename, epochs=5, learning_rate=0.01, metrics=["categorical_accuracy"]) model.evaluate(test_filename, metrics=["categorical_accuracy"]); save_location = "intent_classification.model" # Saving model.save(save_location) # Loading model = bolt.UniversalDeepTransformer.load(save_location)
Переформулировка запроса
В нашем последнем примере мы рассмотрим проблему переформулировки запроса, которая является критической задачей для многих поисковых систем. Короче говоря, переформулировка запроса включает в себя переписывание никогда ранее не встречавшегося пользовательского запроса — например, с опечатками или нестандартными описаниями — в каноническую версию, для которой поисковая система уже кэшировала высококачественные результаты. Хотя эта задача сильно отличается от предыдущих задач обучения с учителем, которые мы рассмотрели в этом посте, интерфейс UDT остается практически идентичным.
from thirdai import bolt from thirdai.demos import prepare_query_reformulation_data import pandas train_filename, test_filename, inference_batch = prepare_query_reformulation_data() model = bolt.UniversalDeepTransformer( source_column="source_queries", target_column="target_queries", dataset_size="medium" ) model.train(filename=train_filename) query_reformulations = model.evaluate(filename=test_filename, top_k=5) model_location = "query_reformulation.model" # Saving model.save(filename=model_location) # Loading model = bolt.UniversalDeepTransformer.load(model_location)
В будущих постах мы углубимся в детали этих различных приложений. На данный момент ключевым выводом является то, что мы можем решить множество разнообразных технических задач с помощью одного и того же интерфейса UDT.
Заключение
В этом посте мы представили последнее предложение продукта ThirdAI: Universal Deep Transformers (UDT). Благодаря UDT клиенты получают доступ к современному интерфейсу AutoML для машинного обучения, который эффективно работает на ЦП без необходимости утомительной ручной настройки параметров или знаний в области глубокого обучения. Мы рекомендуем вам попробовать UDT самостоятельно с помощью наших демонстрационных ноутбуков и посетить наш веб-сайт. Чтобы использовать UDT для нужд вашего бизнеса, свяжитесь с нами, запросив пробную лицензию на наше программное обеспечение.