Обновить
56
2

Пользователь

Отправить сообщение

Хм... я эти примеры у себя запускал и всё работало. Перепроверю сегодня и внесу изменения. Спасибо!

На самом деле всё не так уж и сложно, можете сравнить с реализацией на Python
https://habr.com/ru/articles/801885/

Первый пример (библиотека PHP-ML) - код обучает классификатор k ближайших соседей (KNN) на наборе точек с метками a и b, а затем определяет, к какому классу относится новая точка. Для точки [3, 2] он возвращает b, потому что её ближайшие соседи принадлежат этому классу.

Во втором примере (библиотека RubixML) код тоже обучает классификатор k ближайших соседей (KNN), но уже на данных роста и веса с метками пола, а затем предсказывает метку для нового человека. Для параметров [172, 68] модель возвращает 'M', так как среди 3 ближайших соседей большинство с этой меткой.

Это очень примитивные примеры и они даны только с образовательной целью - показать пример использования этих библиотек. Если Вы считаете, что их тоже нужно вынести в онлайн примеры сюда: https://aiwithphp.org/books/ai-for-php-developers/examples/home
то, да - можно это сделать. Также я более подробно распишу что делает этот код прямо в книге - раз это вызывает дополнительные вопросы.

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

Насчёт тренировки на PHP будет другая статья - в данный момент никто про это не говорит. Хотя на на небольших объёмах данных вполне можно обучать и простенькие модели на PHP.

Далее.

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

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

Постараюсь прояснить. Я не обижаюсь ни на Python (я сам на нём программирую), ни на ML-сообщество. Речь не про переписывание алгоритмов или ML на PHP в классическом смысле. Пока нет, во всяком случае (у меня есть что написать на эту тему, но в следующих статьях). Я именно про прикладное использование ML/AI в PHP разработке: API, интеграции, реальные кейсы без глубокого погружения в математику и отдельную ML-инфраструктуру.

Сейчас про это действительно пишут в основном с Python-перспективы, и новичкам в PHP (да и старичками тоже) кажется, что без смены стека вход закрыт (ну, типа, в PHP же ничего нет по этой теме, остаётся только дёргать запросами LLMки) – отсюда и ощущение, о котором я писал. Книга как раз про снижение этого порога. Я лично не хочу, чтобы программист PHP менял стек, когда без этого можно обойтись. Поверьте, это не всегда необходимо, в PHP есть своя, конечно, не такая большая как в Python, но всё же - экосистема по ML/AI - поэтому я и начал писать эту книгу.

Про стиль – принял, спасибо за фидбек, буду править текст, чтобы он звучал менее "нейросеточно".

Спасибо, обязательно продолжу! Буду рад любым замечаниям, комментариям и вообще...
Много времени уходит на написание и проверку кода к практическим кейсам. Надеюсь через 1,5-2 месяца в основном книга будет готова.

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

Извините, но как говорил классик: "Не верю!". Я не стану перечислять признаки, по которым я это определил, слишком уж их много. Это я не потому, что нельзя использовать ИИ для написания статей, это я про другое... Но идея для статьи хорошая.

Возможно да, правильнее сказать - для логирования. Но я вполне использую этот хелпер и для дебага, когда нужно распечатать 3х мерный тензор в тестах и сравнить его с ожидаемым результатом, ну и для всякого рода sanity checks.

Да, в JS для 2-х мерного массива это работает. Но речь идёт о дебаге в PHP , когда просто нужно бросить 2-х мерный массив или объект 3-х мерной матрицы в функцию и посмотреть что там внутри.

Да, для табличного вывода это очень хороший вариант.

Symfony Console из коробки так НЕ делает, она не умеет "рисовать" массивы как PyTorch/NumPy.

Извините, но это не работает. Хотя даже если бы и сработало, а что делать, когда 1000 колонок? Идея была в том, что передал массив в функцию без лишних хлопот - и всё!

Что-то подобное есть, вот например: https://github.com/deniskoronets/php-array-table или https://github.com/phplucidframe/console-table
Но это не то, что нужно.

Для дебага такие вещи не очень подходят и к тому же они не работают с 3-х мерными массивами.

Спасибо за статью! Это вообще очень увлекательная и жутко интригующая область исследования лингвистики и истории.

Несколько замечаний.

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

Арамейский же язык в своё время был вообще "Лингва франка" в торговле и его влияние на Древний мир было огромно.

Было бы интересно проследить какое влияние на развитие древней пунктуации оказал именно этот пласт, а именно XI-VIII века до н.э

2. Фраза

"Наиболее мощным выражением этого принципа стало финикийское письмо — предок множества современных систем письма, от латиницы и кириллицы через посредство греческого до иврита, арабской вязи и многочисленных индийских систем письма."

исторически не верна, и выглядит как предложение, сгенерированное ИИ. Эта фраза создаёт ложное впечатление о едином происхождении всех перечисленных письменностей.

Кириллица возникла не из греческого напрямую, а как искусственная система, созданная в IX веке, использующая греческие буквы + дополнительные не греческие знаки (например Ц и Ш).

Финикийское письмо не было предком современного иврита напрямую. Современный иврит использует арамейское квадратное письмо, а не финикийское. Арамейское же письмо - это боковая ветвь, хотя тоже семитская и родственная финикийской. То есть, прямой цепочки "Финикийское письмо -> Иврит" нет, она была бы корректной только для палеоеврейского, но не для современного письма.

И на последок, прямой цепочки “Финикийское -> Арабское” тоже нет. Корректная цепочка выглядит так: Финикийское -> Арамейское -> Набатейское -> Арабское письмо.

Блоки кода в статье добавлены таким образом (копипастом с GPT?), что их почти невозможно прочесть. Я бы наверное попытался в этом разобраться (когда-то сам пытался что-то подобное сделать), но не стал. Пожалуйста приведите статью в удобо-читабелный вид.

Да, конечно можно - и многие так делают, чтобы не зависеть от облака, снизить стоимость или обеспечить приватность данных. Например: Jina Embeddings (локально + Docker) - docker run -p 8000:8000 jinaai/jina-embeddings-v2

Запускаем в отдельном контейнере, делаем доступ через определённый раут и стучимся туда из PHP обычным HTTP-запросом.

В результате будет что-то вроде

$response = file_get_contents("http://localhost:8000/embed?text=Привет"); 
$emb = json_decode($response, true)["embedding"];`

Информация

В рейтинге
1 206-й
Зарегистрирован
Активность