TheFounder

TheFounder

Здесь будет интересно всем, кто увлекается нейросетями, хочет стать разработчиком, создать свой IT-стартап... Ну, или просто любит и хочет изучать код :)
На Пикабу
146 рейтинг 6 подписчиков 0 подписок 104 поста 0 в горячем
7

Даже гуру ошибаются: истории великих фейлов в ML

Даже гуру ошибаются: истории великих фейлов в ML Программирование, IT, Программист, Удаленная работа, Инновации, Машинное обучение, Тестирование

Все мы знаем, что учиться на ошибках — это часть процесса, и даже самые именитые эксперты в области ML не застрахованы от промахов.

Именно так Эндрю Ын, один из основателей Coursera и гуру deep learning, в начале своей карьеры столкнулся с проблемой, когда тестовые данные случайно включились в тренировочный набор. Модель выдавала потрясающие результаты, но на новых данных показывала себя просто отвратительно. Это заставило Эндрю внедрить более строгие методы валидации и часто напоминать себе и своим коллегам о важности корректного разбиения данных.

И он не одинок в своих проблемах. Джеффри Хинтон, легенда в мире DL, однажды создал слишком сложную архитектуру нейросети для простой задачи. Модель переобучилась и показала плохие результаты на тесте, что заставило его пересмотреть подход к выбору архитектуры. Хинтон осознал, что баланс между сложностью модели и задачей — ключ к успеху.

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

Илон Маск, продвигая технологии автономного вождения в Tesla, тоже столкнулся с ошибками. Система распознавания объектов неправильно классифицировала дорожные знаки и пешеходов, что привело к инцидентам. Это заставило Tesla улучшить алгоритмы и добавить дополнительные уровни валидации, показывая, что тщательная проверка в реальных условиях необходима.

Заключает наш список Джефф Дин из Google, который работал над масштабируемостью ML-систем. В одном из проектов команда столкнулась с проблемами обработки big data, что привело к созданию новых распределенных систем, таких как MapReduce и TensorFlow. Так Дин понял, что для успешного внедрения ML необходимы масштабируемые системы.

Вот так вот. Даже гуру не застрахованы от промахов, но именно через них они и становятся гуру.

Показать полностью

Как начать писать документацию в VSCode?

Как начать писать документацию в VSCode? Программирование, IT, Программист, Программа, Гайд, Код, Удаленная работа, Техническая документация

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

Составление пояснений и комментариев к обширным ИИ-системам — трудоемкая задача, но под небольшие опен-сорс/продакшн проекты есть решение.

AutoDocstring — инструмент, который автоматически создает документацию к коду на основе структуры и комментариев. Экономия времени, согласованность стиля, адекватная читаемость и повышенную точность документации — плюсы этого тула. Выделил нужный блок кода, прожал ctrl+shift+2 — готово.

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

Теперь в утилиту можно добавлять "кастомные" документации. Чтобы использовать собственный шаблон, создайте файл .mustache и укажите путь к нему с помощью конфигурации customTemplatePath.

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

А еще записи могут не соответствовать стандартам или требованиям проекта.

Поэтому редактировать и редактировать. Но для создания костяка описаний инструмент — идеально. AutoDocstring сократит время, затрачиваемое на написание документации, на 30-50%. А еще неплохо так снизит число ошибок в тексте.

Скачать можно с официального сайта Microsoft.

Показать полностью 1

7 фраз, которые нужно выбросить из своего лексикона, если хотите стать отпадным специалистом

7 фраз, которые нужно выбросить из своего лексикона, если хотите стать отпадным специалистом Программирование, Удаленная работа, Программист, IT, Карьера, Фриланс, Взаимодействие, Длиннопост

Фразы, о которых мы сегодня поговорим, — это база. Только такая, которую знать не следует. Своеобразный парадокс, да, но и тому есть объяснение: это фразы-паразиты, которые только вредят вашему образу в глазах заказчика или работодателя.

Фраза №1 “Это невозможно”

Двоякая фраза. Да, есть люди, которые не слишком в теме развития технологий, и они могут попросить вас, к примеру, создать “Глаз Бога” из “Форсаж 7” — хакерской системы, способной отследить любого в реальном времени. Пока что это возможно лишь гипотетически, но не практически.

Другой случай, если вы говорите “это невозможно” на очень сложную, но реальную задачу. И вы так говорите, потому что вам лень искать решение, а потом ещё и долго работать.

Вместо этой фразы вы можете сказать “Дайте мне время”, а после воспользоваться этим временем, чтобы погуглить, обсудить задачу с коллегами или найти альтернативу.

Фраза №2 "Я не знаю"

А о таких словах нужно вообще забыть в первую очередь, потому что фраза “я не знаю” = “я не хочу”. Не хочу учиться, не хочу вникать в тему, не хочу этим заниматься — много чего. Поэтому запомните: нет фразы “я не знаю”, есть фраза “я не хочу”.

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

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

Фраза №3 "Это не моя обязанность"

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

"Хорошо, но дайте мне время, и я сделаю все возможное”.

Вообще фраза “дайте мне время” — универсальный ответ для всего. Проверено.

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

Фраза №4 "Я сейчас занят"

Эти слова могут показаться не очень учтивыми. Лучше сказать то, что выразит ваше уважение и готовность помочь:

"Сейчас у меня другая задача, но, как только я завершу её, тут же помогу, хорошо?”.

Звучит не только тактично, но и выражает ваш профессионализм.

Фраза №5 "У меня не получается"

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

Да, придется посидеть, подумать, потратить больше времени, чем обычно… Но вы справитесь. Уверены на 100%.

Фраза №6 "Это не мой стиль"

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

Вместо того чтобы ссылаться на “ваш стиль”, лучше обсудить, как вы можете адаптироваться или научиться делать что-то новое. Объясните, что предложенный подход кажется не совсем эффективным, но вы готовы рассмотреть альтернативные варианты и найти решение.

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

Фраза №7 "Это всегда так делалось"

Если вы работаете в разработке, да и не только, то забудьте эту фразу. Ни к чему хорошему она вас не приведет.

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

Показать полностью 1
0

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

Как создать игру, которая будет меняться под каждого игрока? И почему нам не нужно бесконечное количество сюжетных веток? Программирование, IT, Удаленная работа, Программист, Карьера, Машинное обучение, Тестирование, Разработка, Длиннопост

Когда речь о заходит об игре, в которую можно играть бесконечно, то первым делом вспоминается Sims 3 и Sims 4. Типичный симулятор жизни, который постоянно модернизируется как разработчиками, так и самими игроками в помощью модов.

Но что, если попробовать создать игру в жанре action-adventure с элементами survival horror и стелс-экшена, сюжет которой будет адаптироваться под каждого игрока? И, по сути, быть бесконечным? Возможно ли такое?

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

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

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

Вроде бы всё понятно, но…

С какими проблемами столкнется команда?

Именно об этом и стоит думать в первую очередь. Проблемы могут быть разные, но вот, к чему точно нужно быть готовым:

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

Вообще такие подходы развиваются в геймдеве, но вряд ли это экономически выгодно для компаний…

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

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

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

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

Когда вы играете в игру с процедурной генерацией контента, вы никогда не знаете, что вас ждет.

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

А это сложно и неоправданно дорого, потому что всегда найдутся те, кому не понравится ничего.

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

Возможно ли это? Да, только если у вас в команде очень много людей.

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

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

Но что, если она бесконечная? Тогда это большая проблема.

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

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

Но главный вопрос: оправдает ли такая игра всех усилий, что были вложены в её разработку?

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

Показать полностью 1
4

5 ML-проектов для начинающих

5 ML-проектов для начинающих Программирование, IT, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Саморазвитие, Длиннопост

Генеративные модели, NLP, CV, рекомендательные системы… Темы для ML проектов перечислять можно долго, а уж решить, какую из них выбрать для своей практической в портфолио, и потом вспомнить, что эти темы разделяются ещё на подтемы…. Это не просто смело, а очень смело. И сложно.

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

Вдохновляйтесь!

Система автоматического распределения на категории электронных писем по темам

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

Как это будет работать?

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

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

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

Анализатор тональности отзывов

Этот инструмент анализирует отзывы (например, на товары, услуги, заведения общепита) и определяет их настроение: плохое, хорошее или нейтральное.

Как это будет работать?

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

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

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

Система для планирования запасов товаров

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

Как это будет работать?

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

Где это будет работать?

Предсказательная система для планирования запасов товаров может быть интегрирована в программное обеспечение управления ресурсами предприятия (ERP), системы управления цепочками поставок (SCM) или специализированные программы для управления запасами. Она может быть доступна как в виде веб-приложения, так и в виде API, которое можно интегрировать с другими бизнес-системами или использовать в собственных разработках приложений.

Система автоматической категоризации документов

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

Как это будет работать?

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

Бот-помощник по подбору персонала

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

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

Как это будет работать?

Сначала нужно создать бота через BotFather, получить его токен и настроить команды и функции. Затем уже можно написать скрипт на Python, который будет обрабатывать входящие запросы и выполнять логику бота.

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

Показать полностью 1

Вот это мы делаем

Всем, кто стремится к идеальной среде разработки, посвящается.

Представляем вам наш гайд по настройке VSCode)
Если у вас ещё нет Visual Studio Code, то скорее загружайте его с официального сайта. Также перед настройкой не забудьте загрузить и Git отсюда, и мы начинаем.

Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Вот это мы делаем Программирование, IT, Удаленная работа, Программист, Программа, Visual studio Code, Длиннопост
Показать полностью 9
0

Что такое Few-shot learning?

Что такое Few-shot learning? Программирование, IT, Программист, Удаленная работа, Карьера, Машинное обучение

Few-shot learning позволяет модели распознавать и классифицировать новые изображения после того, как она была обучена на небольшом количестве обучающих примеров.

Зачем это придумали? Ведь модели обычно обучают на огромных количествах данных? Чем больше, тем лучше, так?

Да, но…  Few-shot learning — это важный концепт в ML по нескольким причинам.

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

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

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

Короче говоря, метод обучения зависит от целей.

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

А можно ли сделать модель, обученную на небольшом количестве данных, сделать гибче? И как?

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

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

Есть и другие. Техники адаптивного обучения, о которых мы уже рассказывали в рубрике #технокульт в этом материале. Правда, не в контексте обучения моделей, а RL-агентов, но суть не меняется. Другие варианты — это алгоритмы ансамбля: бэггинг, бустинг или стекинг… Обо всём этом — чуть позднее.

Показать полностью 1

5 мифов о профессии ML-инженер

Обновление наших авторских комиксов!

На этот раз расскажем и сравним, что думают обычные люди про ML инженеров, и как их работа выглядит на самом деле)

5 мифов о профессии ML-инженер IT, Программирование, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Фриланс, Длиннопост
5 мифов о профессии ML-инженер IT, Программирование, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Фриланс, Длиннопост
5 мифов о профессии ML-инженер IT, Программирование, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Фриланс, Длиннопост
5 мифов о профессии ML-инженер IT, Программирование, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Фриланс, Длиннопост
5 мифов о профессии ML-инженер IT, Программирование, Программист, Удаленная работа, Карьера, Машинное обучение, Тестирование, Фриланс, Длиннопост
Показать полностью 5
Отличная работа, все прочитано!