Обновить
-7
0

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

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

Как ветвятся дорожки. Об ориентировании и обучении беспилотных автомобилей

Время на прочтение11 мин
Охват и читатели904

Некоторое время назад мне очень понравилась шутка «Беспилотный автомобиль отказался везти пассажира в фастфуд, сославшись на первый закон робототехники». Речь об одном из «законов робототехники», которые сформулировал в 1942 году американский фантаст Айзек Азимов, он формулируется так: «Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред». Притом, что законы робототехники – это строго литературный, но не технологический феномен, мне захотелось разобрать на Хабре, как в настоящее время беспилотные автомобили подстраиваются под человеческие поступки, сосуществуют с потоками пешеходов, могут ли учиться без подкрепления и проявлять эвристику, а также какие разработки ведутся в этой области.

Читать далее

Автопереобучение моделей в Production

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели1.9K

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

В этой статье мы рассмотрим процесс автоматического переобучения моделей ML в продакшене, используя инструменты MLOps. Обсудим интеграцию таких инструментов, как AirFlow и Spark, с CI/CD пайплайнами, а также создание конфигурационного модуля, позволяющего разработчикам сосредоточиться на моделях, не углубляясь в инфраструктурные детали.

Читать далее

Магистратура в 35. Шлюз интернета-вещей

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели2.5K

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

Читать далее

Macroni: рецепт поступательного улучшения языка программирования

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели3.4K


Хотя, Clang и используется в качестве инструмента для рефакторинга и статического анализа, у него есть серьёзный недостаток: в абстрактном синтаксическом дереве не предоставляется информации о происхождении конкретных расширений-макросов на CPP, за счёт которых может надстраиваться конкретный узел AST. Кроме того, Clang не понижает расширения-макросы на уровень LLVM, то есть, до кода в формате промежуточного представления (IR). Из-за этого оказывается запредельно сложно конструировать такие схемы статического анализа, при которых учитывались бы макросы. Сейчас эта тема активно исследуется. Но ситуация налаживается, поскольку прошлым летом был создан инструмент Macroni, упрощающий статический анализ именно такого рода.

В Macroni разработчики могут определять синтаксис новых языковых конструкций на C с применением макросов, а также предоставлять семантику для этих конструкций при помощи MLIR (многоуровневого промежуточного представления). В Macroni используется инструмент VAST, понижающий код C до MLIR. В свою очередь, инструмент PASTA позволяет выяснить, откуда те или иные макросы попали в AST, и на основании этой информации макросы также удаётся понизить до MLIR. После этого разработчики могут определять собственные MLIR-конвертеры для преобразования вывода Macroni в предметно-ориентированные диалекты MLIR, чтобы анализировать предмет с учётом многочисленных нюансов. В этой статье будет на нескольких примерах показано, как Macroni позволяет дополнять C более безопасными языковыми конструкциями и организовать анализ безопасности C.
Читать дальше →

Метрики оценки качества моделей и анализ ошибок в машинном обучении. Подробное руководство

Уровень сложностиСредний
Время на прочтение32 мин
Охват и читатели28K

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

В данном туториале будут рассмотрены популярные метрики для задач классификации, регрессии и кластеризации, а также инструмент для анализа ошибки модели, известный как bias-variance decomposition. Помимо этого, для большей части метрик будут представлены ручные расчёты и реализация с нуля на Python, а в конце вы сможете найти дополнительные источники для более глубокого ознакомления.

Читать далее

Делаю игрулю на Playdate на чистом C. Глава 4

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели2.6K

Я пишу игру на игровую консоль Playdate на чистом C. Игра в жанре "выживальщик" наподобие Vampire Survivors. Так как в чистом C отсутствуют многие современные объектно-ориентированные удобства мне приходится по-всякому изворачиваться чтобы адаптировать свои идеи в код. В этих заметках ты узнаешь из первых уст как создаётся игруля с нуля от идеи до публикации.

Если ты не читал предыдущие главы, то лучше начать с них.

Глава 1 - создание аналога объекта динамического массива для будущих нужд на чистом С;

Глава 2 - программирование внедорожника и объектов пустыни, инициализация и очистка ресурсов игры;

Глава 3 - описание процессинга тика, в частности, обработка пользовательского ввода, а также обновление модели данных.

====================

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

Итак, большинство людей в мире визуалы. Это значит, что им привычнее всего воспринимать информацию глазами. В прошлых главах я создал целый мир, но какой в этом смысл если это невозможно увидеть? Нет, конечно можно в баре рассказывать про то, какой невероятный код я написал, но собеседник не сможет его увидеть так как у него нет Playdate (ты же помнишь, что я живу в Казахстане? У нас на всю страну три человека имеют Playdate), ну и потому что собеседник бухой в щи, пьяный в зюзю, надрался, под мухой, на рогах, зелёный как снег.

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

Читать далее

Управление напряжением PWM сигналом (PWM+RC=DAC)

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели10K

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

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

В этом тексте я написал как мне это удалось.

Читать далее

Хранение данных на ДНК/РНК: возможности и перспективы

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели2.7K

Приветствую всех айтишников и технарей. Выпустив очередную часть саги про ЯМР, я словил катарсис и почувствовал за собой моральное право опять пографоманить на отвлеченные темы. И сегодня мы с двух ног ворвемся в тему хранения данных на ДНК/РНК. Тема интересная, и намного ближе к айтишечке, чем все предыдущие опусы, поэтому погнали!

Добро пожаловать под кат

TransformerFam от Google и другие попытки улучшить память LLM

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.1K

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

Читать далее

Предпочитайте Rust вместо C/C++ для нового кода

Время на прочтение8 мин
Охват и читатели24K

2019-02-07


  • Когда использовать Rust
  • Когда не использовать Rust
  • Когда использовать C/C++
  • Ложные причины использования C/C++
  • Приложение: моя история с C/C++
  • Приложение: хор
Читать дальше →

Криптография на Rust и немного FFI

Время на прочтение4 мин
Охват и читатели4.2K

Расскажу как создать Bitcoin кошелек используя только криптографические функции и о своем опыте разработки FFI (меж-языковой) библиотеки для Go.

Читать

Rust в деталях, часть 2

Время на прочтение27 мин
Охват и читатели16K

Часть 2: Отправка и получение сообщений


В этой серии статей мы рассматриваем процесс создания масштабируемого сервера для чата в реальном времени, во всех деталях. Цель статьи — показать пример практического применения языка Rust на фоне изучения концепций системного программирования и системных API, шаг за шагом.

Вторая часть является прямым продолжением первой, поэтому если вы ее пропустили (или забыли контекст), то рекомендую сначала ознакомиться с ней. В этой части мы продолжаем реализацию протокола WebSocket.
Читать дальше →

Альтернативные технологии производства печатных плат

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9K
Картинка WangXiNa, Freepik

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

Читать дальше →

Как составить функцию инициализации микроконтроллера (Топологическая сортировка графов утилитой Make)

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели4.1K

В программировании микроконтроллеров приходится определять порядок инициализации прошивки. Порядок тут всегда имеет значение.

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

Чтобы всё это работало надо соблюдать правильный порядок инициализации.

В этом тексте я представил формальный алгоритм определения этого порядка.

По сути это топологическая сортировка ориентированного графа зависимостей программных компонентов.

Читать далее

Учим нейронную сеть генерировать текст

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели9.4K

Всем привет! 

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

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

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

Читать далее

Расшифровка startup файла Arm Cortex-M

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели4.3K

В статье предпринята попытка разобраться в содержимое startup файла микроконтроллера STM32F4, построенного на базе ядра Arm Cortex M4. Для запуска ядра используется ассемблерный код, который и предстоит изучить. Для лучшего понимания материала необходимо иметь представление об архитектуре ядра Cortex M4. Сразу отмечу, что замечания и уточнения приветствуются, т. к. они позволят дополнить представленную информацию.

Читать далее

Как мы готовим RL для Alignment в больших языковых моделях: опыт команды YandexGPT

Время на прочтение28 мин
Охват и читатели12K

Сегодня через API стала доступна новая модель YandexGPT 3 Lite. Одним из ключевых этапов её обучения, как и в случае с другими недавними моделями, стал этап выравнивания (Alignment), включающий в том числе стадию обучения с подкреплением (RL). Пожалуй, без этого этапа мы бы не смогли добиться такого роста в качестве, который был необходим для запуска новых возможностей и сервисов (например, Нейро). Поэтому эту статью мы полностью посвятим особенностям выравнивания моделей. 

На тему Alignment и RL было написано уже немало статей. Кажется, любой ML-инженер уже, так или иначе, сталкивался или читал о них. Поэтому мы хоть и напомним базовую информацию, но всё же сфокусируемся на тех деталях реализации, которые не на слуху. 

Читать далее

Контроль популяции: генетика в борьбе с насекомыми-вредителями

Время на прочтение12 мин
Охват и читатели819


Большинство живых организмов на планете в той или иной степени взаимосвязаны и участвуют в формировании пищевой цепи. Удаление какого-либо вида из этой цепи может привести к дисбалансу экосистемы с ее последующем увяданием. При этом существуют организмы, польза от которых весьма сомнительна. Речь, конечно же, о паразитах, многие из которых оказывают негативное влияние на определенные сферы деятельности человека. В попытках избавится от вредителей, мы используем разного рода химические вещества, которые могут нести потенциальный вред не только сельхоз культурам, но и здоровью человека. Ученые из университета Джонса Хопкинса (США) нашли более безопасный метод в борьбе с паразитическими насекомыми, основанный на контроле их популяции. Как именно ученым удалось получить контроль над рождаемостью насекомых, и насколько эффективен их метод? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Туториал по Tokio. 2/2

Уровень сложностиСредний
Время на прочтение38 мин
Охват и читатели3.1K



Hello world!


Представляю вашему вниманию вторую часть туториала по Tokio.



Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера.

Читать дальше →

Какие ошибки есть в коде LLVM?

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.1K

LLVM — open-source проект с огромной кодовой базой. Лучший из лучших, если говорить о качестве кода, учитывая его размеры и открытость. Ведь кому, как не разработчикам инструментов для компиляторов, лучше знать о возможностях языка и правильном их использовании. Их код всегда на высоте, а найти ошибки в нём всегда вызов для нашего анализатора, который мы принимаем.

Читать далее

Информация

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