Друпал и нейросети

Главные вкладки

Аватар пользователя univerico univerico 21 января 2019 в 0:04

Здравствуйте! Подскажите как - то интегрируется сайт на Друпал с функционалом нейросетей?
Можно будет расположить сайт прямо на сервере для нейросети? Или как-то направить данные из нейросети для представления на сайте, кроме импорта из csv или наоборот прямо с сайта заливать в нейросеть?
(нейросеть нужна для анализа и прогнозирования в медицине и биологии). Или может посоветуете какую-то библиотеку, из которой потом будет потом удобнее данные импортировать?
Стоит ли ПО для создания нейросети смотреть только на php, если хочу интегрировать с сайтом или все равно их так просто не свяжешь?

Вот это выдается в поисковике на "drupal neural network"

https://github.com/akamaus/neurocenter

https://www.drupal.org/project/dail/issues/986556

для чего ?

Комментарии

Аватар пользователя bsyomov bsyomov 21 января 2019 в 1:38
2

ПО для создания нейросети стоит смотреть на основе Python, например, но уж точно не PHP.
Интеграция может быть совершенно разными путями построена. И на основе обмена через базу, и на основе запросов через какой-то API.

На одном сервере можно запускать совершенно разное ПО, на совершенно разных языках, вопрос только в наличии достаточного количества ресурсов.

Аватар пользователя univerico univerico 21 января 2019 в 10:21

Спасибо большое! Почему именно python?
Какие главные преимущества для моих задач по сравнению с php?
Я вообще смотрю в сторону FANN из бесплатных ПО для нейросетей. Ну или могу рассмотреть платные какие-то, если возможности конкретно под мои задачи будут больше.
Придется ли идти на ограничения по функционалу в случае, если я буду делать интеграцию через базу или API (в таком случае проще делать экспорт и потом в ручном режиме загрузить в базу).

И на основе обмена через базу

Т.е. нужно будет настроить чтобы и нейросеть и сайт отсылали данные в одну базу и обращались к одной базе?
Какую тогда лучше базу использовать? Как ее настроить?
И нейросеть на python, и сайт подключить к mysql?

и на основе запросов через какой-то API.

Вы можете что-то рекомендовать или это зависит от конкретной нейросети?

Аватар пользователя bsyomov bsyomov 21 января 2019 в 13:58

Потому, что библиотеки для построения сетей на Python есть, а PHP вообще-то слабо для таких задач подходит как таковой - это довольно специализированный язык...

Если у вас есть готовое решение, то какая вам разница, на чём оно, по большому счёту?

По интеграции всё зависит от возможностей интеграции ПО для организации сети, если вы берёте его готовым.

Аватар пользователя univerico univerico 21 января 2019 в 10:35

На одном сервере можно запускать совершенно разное ПО, на совершенно разных языках, вопрос только в наличии достаточного количества ресурсов.

Я вообще пока очень слабо себе все это представляю, вопросы у меня поэтому могут быть ну совсем примитивными.

На разных серверах было бы лучше конечно, потому что для нейросети у нас и так будет скорее всего сервер с минимумом необходимой мощности. В идеале, если сеть будет у меня на месте, а сайт удаленно.

А если на разных серверах, а база одна, то просто как-то где-то в настройках прописать путь к базе на другом сервере?
Или будет по свое база на своем сервере и у сети, и сайта, просто сайт например будет еще дополнительно обращаться и к дополнительной второй базе?

А если через API то какой принцип?

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 10:33
1

Пхп не предназначен для сложных вычислений тем более для нейросетей, самый доступный это питон с его либами

Аватар пользователя univerico univerico 21 января 2019 в 10:44

Ясно. Спасибо. Тогда Питон скорее всего будет. А из библиотек под Питон, которые подходят для прогнозирования или заточенных под медицинское прогнозирование, какую тогда лучше выбирать? Чтобы потом проще было с сайтом соединить?
(судя по первым поискам архитектура нужна для обучения с учителем "Перцептрон" или для смешанного обучения
"Сеть радиально-базисных функций", для анализа "Самоорганизующаяся карта Кохонена", "Нейронная сеть Кохонена".

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 10:52
1

Библиотека выбирается в зависимости от типа сети, можно построить на numpy а так есть keras tensorflow pytorch, под некоторые надо сервер подготовить

Аватар пользователя univerico univerico 21 января 2019 в 11:04

Библиотека выбирается в зависимости от типа сети,

В смысле типа архитектуры с учетом способа обучения?
Если это, то архитектура скорее всего нужна а)для прогнозирования в случае обучения с учителем "Перцептрон" или

б)в случае смешанного обучения "Сеть радиально-базисных функций",

в)для анализа "Самоорганизующаяся карта Кохонена", "Нейронная сеть Кохонена"

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 10:55
1

Кстати да, Гугл и Майкрософт тоже предоставляют сервисы для создания сетей, по ценам только не знаю как у них

Аватар пользователя gun_dose gun_dose 21 января 2019 в 11:01
1

Там цены, начиная с бесплатных. И ещё Амазон тоже предоставляет. Мне просто кажется, что если ничего не понимаешь в нейросетях, то проще будет попытаться начать с каких-то шаблонных решений.

Аватар пользователя univerico univerico 21 января 2019 в 11:06

Так и придется, наверное. Просто может есть какие-то, которые с сайтом потом проще интегрировать, я вот думаю с них начать.

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 11:30
1

Вспомнил нвидиа предоставляет свои rtx бесплатно но раз в сутки обнуляет результаты, это если для тензорных вычислений

Аватар пользователя multpix multpix 21 января 2019 в 14:14
4

Просто оставлю это здесь:
А.Мюллер, С.Гвидо - Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с
данными - 2017
Гудфеллоу Я., Бенджио И., Курвилль А. - Глубокое обучение - 2018
Во второй которткие главы: линейная алгебра, теория вероятности, информации, и численные методы - ваще бестселлер)))

Аватар пользователя Orion76 Orion76 21 января 2019 в 15:04
3

про нейросети и питон.

Софт для организации "нейросети" обычно разрабатывают специалисты прикладной области (физики, математики, медики, инженеры и т.п.)

Питон относительно не сложный язык, поэтому проще медика научить программированию на питоне, чем программиста на питоне обучить "побыстрому" медицине.-)

Аватар пользователя univerico univerico 21 января 2019 в 19:59

Спасибо, ну в любом случае чуть-чуть подучить придется. А что порекомендуете для освоения Питона непрограммистом с нуля при наличии очень базовых знаний других языков?

Аватар пользователя univerico univerico 21 января 2019 в 20:22

Спасибо, ну в любом случае чуть-чуть подучить придется. А что порекомендуете для освоения Питона непрограммистом с нуля при наличии очень базовых знаний других языков? Любое руководство брать или что-то именно порекомендуете? Вот это пойдет https://pythonworld.ru/samouchitel-python? или книги И. А. Хахаев или Марк Лутц?
На какие разделы обратить внимание?

Аватар пользователя univerico univerico 21 января 2019 в 21:04

а сколько месяцев закладывать на изучение Питон в среднем до нужного уровня, если заниматься по 2-4 часа в день?

Аватар пользователя Orion76 Orion76 21 января 2019 в 21:46
1

К сожалению, учебные материалы по питону порекомендовать не могу, т.к. я на нем не специализируюсь.
Когда-то "познакомился" из любопытства и все.-)

В общем, человеку, знакомому не понаслышке с программированием и имеющем какой-либо опыт работы с любым языком, освоить еще один много быстрее и проще чем человеку, изучающему программирование с нуля.

Принципы программирования на большинстве языков практически одни и те же.
Для начала, обычно достаточно освоить синтаксис и базовые функции.

Некоторые уже через пару недель начинают довольно уверенно пользоваться "новым" языком.

Так что скорость изучения тут зависит:
- от Вашего предыдущего опыта
- от Ваших способностей
- от Вашей усидчивости и целеустремленности
И да.. хорошие учебные материалы (теория и практика) тоже не маловажны.
Про них поспрашивайте лучше на специализированных форумах по Питону и нейросетям.
Там же, возможно Вам расскажут по подробнее про Питон и нейросети.

А организовать обмен данными между Drupal и "внешними" приложениями есть тысяча и один способ, если не больше.
Так что, я бы рекомендовал сначала решить "прикладную" задачу - организовать необходимые вычисления при помощи нейросетей.
А потом уже думать, как подружить их с Drupal.

Аватар пользователя Orion76 Orion76 21 января 2019 в 21:59
1

Кстати.. поинтересуйтесь еще парочкой языков:
Go (Golang)
JavaScript (node.js)

Их тоже часто используют для работы с нейросетями.
Один из немаловажных аспектов выбора языка-инструмента: наличие готовых качественных библиотек оптимально подходящих для решения Ваших задач.

Пару статей по теме:
https://habr.com/ru/post/343466/
https://waksoft.susu.ru/blog/2017/04/29/10-primerov-algoritmov-mashinnog...

Аватар пользователя multpix multpix 21 января 2019 в 15:33
1

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

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 17:17

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

Аватар пользователя bsyomov bsyomov 21 января 2019 в 20:20
3

Почему?
Какая разница, где вводить и выводить обрабатываемые данные, и какой стек для этой задачи использовать? Smile
Если нужен веб интерфейс, php ничем, в общем-то, не хуже. А если есть необходимость делать это где-то на сайте, с контролем доступа, какими-то материалами и.т.п., то и Drupal вполне годная основа, в общем-то.

Никаких особых проблем интегрировать приложения на разных стеках нет.

Аватар пользователя Grayw0lf Grayw0lf 21 января 2019 в 20:27

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

Аватар пользователя univerico univerico 21 января 2019 в 21:02

Спасибо. Не пойму как с Друпалом интегрировать. Это будет модуль на js? или все же самостоятельная сеть просто с общей бд?

Аватар пользователя loup54 loup54 21 января 2019 в 21:30
1

У меня нет опыта работы с подобными задачами, однако, всем известно, насколько легко интегрировать в Drupal любые js библиотеки, наверняка нужно будет через модуль подключать. Вообще нужно отталкиваться от задач и согласно философии Drupal сначала создать инструмент и только потом подключать\интегрировать.

Аватар пользователя Orion76 Orion76 21 января 2019 в 23:44
1

univerico wrote:

Спасибо. Не пойму как с Друпалом интегрировать. Это будет модуль на js? или все же самостоятельная сеть просто с общей бд?

Судя по количеству комментов в теме, тема очень интересная.
Так что если Вы будите задавать вопросы без конкретики, Вам сейчас столько советов навалят, что Вы сами запутаетесь.-)

Успех любого предприятия сильно зависит от хорошо проработанного плана.
Я бы начал с него:
Описал бы систему в общих чертах: что, зачем, как и для чего.
Составил(нарисовал) бы схемку данных и схему работы системы в целом. (лучше 1 раз увидеть, чем 100 раз прочитать)

Потом прикинул в общих чертах алгоритмы решения Ваших задач при помощи нейросетей без привязки к конкретному языку программирования(ЯП)

А уже после этого уже можно попробовать определиться с ЯП, библиотекой нейросети и способе интеграции ее с Drupal,
задавая конкретные вопросы тут и на других тематических ресурсах.

Аватар пользователя univerico univerico 22 января 2019 в 0:42

Да, спасибо, все так, только схемка из тысяч компонентов и их надо будет наверное как-то импортировать)))
По языку уже склоняюсь к Питон, по нему много всего. И уже по ходу дела на практике остальные вопросы.

Аватар пользователя univerico univerico 7 декабря 2020 в 16:52

Здравствуйте! После изучения материала по возможностям суперкомпьютеров стало ясно, что для Data Science в широком смысле нужен разный функционал и не только нейросети. Но будет это всё действительно на Python и R. Что лучше: пытаться связать функционал Drupal с чем-то, что обрабатывает Python, R? Или делать сразу сайт на Python? Может быть с Google Collab или Jupiter можно как-то интегрировать сайт?

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

Вот здесь спрашивают, можно ли Python использовать совместно с кодом на php аналогично Node.js? и там же в ответе такой формат предлагают "параллельно php-fpm и uwsgi/gunicorn/итд и на уровне вебсервера роутите запросы на нужный бекенд"

Нужно чтобы:
1)данные для обработки люди могли загружать через сайт
(но сайт в основном на php)
2)далее чтобы работал код для обработки Python (и желательно R)
3)чтобы результат возвращался пользователям снова на сайт
Как сделать интеграцию для 1 и 3?

Ниже примеры, что удалось найти для Python для веб
Чаще всего очень простой функционал вроде Flask и такого используют.
Есть отдельные темы вроде этой или отдельные модули 1, 2, но хочется какой-то обзор или книгу сначала прочитать.
Вот что-то похожее (вроде название многообещающее, но мне так и удалось понять, как работает решение, которое они описывают и в каком направлении мне действовать, каких специалистов привлекать, чтобы его реализовать)

И еще интересно, квантумные компьютеры, которые, как обещают будут в 10 млрд раз быстрее обычных, как-то можно будет интегрировать с Друпал?

Аватар пользователя bsyomov bsyomov 7 декабря 2020 в 17:40
1

Выше уже всё разжёвано. Совершенно не важно на чём будут расчёты, и на чём будет веб интерфейс. Это просто разные части системы, каким-то образом обменивающиеся данными, не более того. Мешать их в одно приложение не нужно и даже вредно. Это даже разрабатывают обычно совершенно разные люди, специализирующиеся в разных совершенно вещах. Да и работать они могут на совершенно разных серверах, например.

Интеграция может быть очень разной, от общей базы, до шин и очередей сообщений.

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

Аватар пользователя univerico univerico 7 декабря 2020 в 19:43

Спасибо. То, что разжевано это относительно понятно, точнее понятно, что нужно искать специалиста.
Вы, например, можете это сделать или знаете, кто может? Просто например со стороны разработчиков по Python не удалось найти специалиста пока для интеграции, там где я сейчас учусь по DS, Ml и в целом по этому направлению, на веб не специализируются и делают максимум на Flask.
Я так понимаю лучше тогда со стороны Друпал искать из программистов, системных администраторов, кто готов взяться? У меня пока задача в целом оценить, насколько это достижимо, потяну ли я или может это прямо мега сложно и ресурсозатратно и дорого и нужно ждать в перспективе готового сервиса такого, чтобы на хостинге уже все было настроено? Я ТЗ не размещаю потому что пока конкретно нет задачи, просто прощупываю почву.
Почему сейчас? потому что на том домене, где я хочу это делать, еще ничего нет, но уже пора начать что-то делать и хотелось бы добавить функционал форума, таксономии - это всё на Друпал мне проще сделать. Но если интеграция потом окажется сложной, то может проще сделать на Django или как-то так. Вот в чем вопрос?

А если можно и есть какая-то рекомендация, какой функционал со стороны DS проще будет интегрировать, то так как я пока начинаю всё изучать только, я могу именно более легко интегрируемый начать изучать в первую очередь.
Про компьютеры я по аналогии с quantum computer, ок буду по правилам суффиксов русского языка "квантОВые", если Вы про это : ).

Аватар пользователя univerico univerico 7 декабря 2020 в 21:47

Если конкретнее, то такой первый пример: в Google collab создан проект с кодом для статистической обработки данных. Пользователь на сайте загружает файл (это необходимый минимум), который обрабатывается согласно этому коду и в зависимости от результата обработки на сайт возвращаются результаты, может быть даже какие-то поля заполняются определенными тегами. Хорошо если еще можно будет одновременно с загрузкой файлов в какие-то поля вводить значения некоторых переменных для обработки (фактически вводить опции/настройки для будущей обработки).
Хотя я может и что-то неверно представляю пока про Googlr collab, потому что сейчас работаю онлайн с Jupiterhub. Может и с Jupiterhub сделать?
И еще вопрос, может глупо звучит, но просто как вариант: сам код собственно для обработки данных из Jupiterhub можно и в Git сохранять, но я так понимаю это смысла не имеет, потому что там он будет просто храниться. А вот может наоборот как-то сделать так, чтобы с сайта через UI посылать в Git файл (или просто класть в папку сайта какую-то а оттуда уже сайт сам отправляет в Git) источник данных для обработки и чтобы Google collab или Jupiterhub уже оттуда читал его? И туда возвращал результат, а уже оттуда в базу сайта вытягивать? Может так проще будет, потому что и у Друпала, и у многих средств для DS есть интеграция с Git?

Пример 2. Пользователь загружает изображение на сайт, и оно обрабатывается сторонним сервисом с помощью методов "компьютерного зрения". Результат выдается тоже через сайт.

Аватар пользователя bsyomov bsyomov 8 декабря 2020 в 11:38
1

Google collab это песочница для запуска python скриптов, насколько я понимаю. Возможно там есть какой-то api, у него тогда есть документация, и надо читать, и интегрировать, если это возможно.

Jupiterhub это оснастка для запуска python окружения. Она вообще не очень-то нужна.
Вообще, обычно, пишется прога на python, которая потом просто запускается на сервере. Написать её можно примерно в чём угодно, хоть в блокноте, хоть в каком-нибудь pycharm, хоть в каком-нибудь онлайн редакторе/платформе. А доставлять куда нужно и запускать множеством разных способов. Также, от того, как написать программу, будет зависеть то, как с ней коммуницировать можно будет.

Вообще судя по вопросам, вы почитали о разных алгоритмах обработки данных, но как-то базы по программированию у вас нет. А без этого работать не получится. Надо знать питон, не только на уровне знаний библиотек, но и на уровне того, в каком окружении он работает. Надо знать в целом программирование - не только как считать, но и как строится коммуникация между процессами, например. Вы работаете в каких-то созданных для обучения окружениях, где от вас всё спрятано, кроме редактора и кнопки запуска кода, но не представляете, что "под капотом", а в решении реальных задач это необходимо.

Для начала, надо бросить коллабы и Jupiterhub, поставить себе на комп python, научиться настраивать окружения, и начать писать проги, которые можно просто запустить из консоли.
А потом проги, которые будут постоянно работать в режиме сервера, и иметь какой-то интерфейс для взаимодействия.
И будет сразу всё куда понятнее с тем, как это всё интегрируется.

Аватар пользователя univerico univerico 8 декабря 2020 в 12:08

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

Аватар пользователя bsyomov bsyomov 8 декабря 2020 в 12:18
1

Такое разделение обязанностей возможно где-то в крупной компании.
К тому же, специализация не должна быть в принципе начальным этапом - основы знать надо всё равно. Иначе будут постоянные проблемы. Правильнее учить математику, программирование, и только потом углубляться в обработку данных, и начинать на этом специализироваться. А не проходить какой-то обзорный курс и думать, что с этим можно будет полноценно работать...

Вероятно, на курсах забыли упомянуть, что от такого курса до полноценной работы, ещё годы самообучения нужны, иначе бы продать его было бы куда сложнее. Smile

Аватар пользователя univerico univerico 8 декабря 2020 в 19:01

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

Аватар пользователя bsyomov bsyomov 8 декабря 2020 в 11:18
1

Интеграция будет примерно одинаковой, на чём бы не писался веб интерфейс. А делать на django с нуля сложный сайт, будет конечно сложнее, чем на любом готовом движке.

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

Всё это просто детали ТЗ, на самом деле. И зависит от конкретной реализации.
Искать с вашей постановкой вопроса кого-либо рано - нет постановки задачи ещё. Вообще обсуждать отсутствующую задачу как-то странно...

Про квантовые компьютеры: да про это, это устоявшийся термин, вполне.