Рубрики
Без рубрики

Выбор Java в качестве языка для проекта машинного обучения – Мы что, сошли с ума???

Большинство людей ошеломлены, когда понимают, что движок Xat kitbot написан на Java. Правда, тот… С тегами java, чат-бот, машинное обучение, язык.

Большинство людей ошеломлены, когда понимают, что бот-движок Xatkit написан на Java.

Правда, подавляющее большинство проектов искусственного интеллекта/машинного обучения написаны на Python. Но это не значит, что вы должны использовать Python при запуске своего собственного проекта. И не волнуйтесь, это не пост о языковых войнах . Я не претендую на то, чтобы утверждать, что Java лучше Python (и наоборот, если уж на то пошло). Я просто объясняю наш выбор языка. И предполагая, что вы должны учитывать многие аспекты при выборе базового языка для вашего следующего проекта.

Давайте посмотрим, почему Java является хорошим выбором для проектов машинного обучения или, по крайней мере, таким же хорошим выбором, как и многие другие:

  • Машинное обучение – это лишь малая часть вашего проекта . Большая часть вашего кода будет посвящена не задачам ML, а вводу/выводу данных, пользовательскому интерфейсу, взаимодействию с внешними службами,… так что язык также должен быть хорош во всех этих вещах.   Это особенно верно в случае чат-ботов , которые, для начала, должны взаимодействовать с различными платформами пользовательского ввода.
  • Существуют библиотеки ML, доступные для каждого языка . Таким образом, всегда есть способ выполнить/обучить ваши нейронные сети за пределами мира python. Например, в Xat kit мы повторно используем CoreNLP от Stanfords модели в некоторых наших языковых процессорах . И, при необходимости, всегда есть возможность обернуть код моделей ML на сервере Python (мне нравится простота Flask для этого) и использовать их с помощью вызовов API на этот сервер.
  • Java широко используется в корпоративном мире . Таким образом, в то время как поклонники core ML могут неодобрительно относиться к нашему выбору языка, корпоративные пользователи могут рассматривать Java как преимущество, поскольку они уже знают, как управлять и развертывать приложения на основе Java, но у них не может быть такого же опыта работы с Python или другими языками.
  • Мы являемся Java “экспертами” . Мы гораздо более продуктивно кодируем на Java, чем на любом другом языке. Конечно, мы могли бы овладеть Python, если бы потратили время, но время дорого, и имело смысл придерживаться языка, который мы уже использовали в других проектах
  • Xat kit – это инструмент, основанный на модели. Под моделью я подразумеваю здесь модели проектирования программного обеспечения , а не модели ML. И в экосистеме моделирования Java по-прежнему является главным. В частности, Xat kit повторно использует некоторые библиотеки EMF , в основном для того, чтобы немного поразмыслить над определением бота во время выполнения. Конечно, есть и другие способы достижения той же цели, но вы можете рассматривать это как устаревшее решение до того, как Katkit использовал Fluent API для определения бота.

Как вы можете видеть, возможно, Java не должна быть вашим первым вариантом при начале работы с технологиями искусственного интеллекта, если есть действительно никаких ограничений на ваш выбор языка. В противном случае выбор языка – это скорее социальное/командное/организационное решение, которое должно учитывать многие другие аспекты (знания команды, архитектура организации, потребности в интеграции, …). Мы видим, как разработчики безостановочно спорят о том, почему язык A лучше языка B, но для большинства проектов, даже тех, которые включают в себя какой-то интеллектуальный компонент, подойдет любой основной язык, и этот выбор ВООБЩЕ НЕ будет ключевым элементом успеха проекта.

Итак, простите меня, если мы продолжим разработку ботов на Java:-)

Оригинал: “https://dev.to/jcabot/choosing-java-as-your-language-for-a-machine-learning-project-are-we-crazy-454l”