Pull to refresh
40
0
Юрий@yurixi

Программист

Send message

Оптимизация промышленных видеокарт для машинного обучения и нюансы тюнинга на примере A30, A100, L4 и L40s

Level of difficultyMedium
Reading time10 min
Reach and readers1.5K

Чтобы эффективно осваивать вложенные в покупку или аренду GPU ресурсы, важно использовать весь потенциал видеокарт. Первые сложности возникают при настройке оборудования в контексте его потенциальных возможностей. С одной стороны — недостаточная утилизация ресурсов, с другой — бесконечное горизонтальное масштабирование и кратное удорожание ИТ-инфраструктуры. 

В этой статье мы разберем базовые принципы и настройки оптимизации проверенных моделей GPU, чтобы эффективнее справляться с задачами машинного обучения. Посмотрим, как настраивать драйверы и библиотеки, управлять памятью, активировать Tensor Cores для ускорения вычислений, использовать технологию MIG для распределения задач и проводить разгон GPU для получения максимальной производительности. Следуя этим рекомендациям, вы сможете ускорить вычислительные процессы и сократить затраты на оборудование, увеличив эффективность работы с большими данными. Разбираться будем на примерах популярных моделей NVIDIA: A30, A100, L40s и L4.

Хочу больше знать

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

Level of difficultyHard
Reading time8 min
Reach and readers997

Привет! Меня зовут Милена Газдиева, я являюсь научным сотрудником Института AIRI, а также инженером-исследователем и аспиранткой Сколтеха. Мои научные интересы лежат в области разработки генеративных моделей на основе оптимального транспорта (optimal transport, ОТ) и их приложений к различных задачам. Мы с коллегами добились успехов в повышении устойчивости таких моделей, и одна из наших статей по этой теме была принята на престижную конференцию по искусственному интеллекту ICLR 2025, которая в этом году будет проходить в Сингапуре. Сегодня я расскажу об этой работе, в рамках которой мы разработали метод оценки барицентров (взвешенных средних) распределений, устойчивый к различным выбросам и дисбалансам в данных.

Что это означает и зачем нужно — читайте далее.

Читать далее

Как ошибается ИИ, если за ним плохо следят

Reading time4 min
Reach and readers8K

ИИ – это очень здорово и удобно. Он уже спасает жизни, штрафует за преступления, помогает делать весёлые картинки и видеоролики (посмотрите только на рекламу Сбера к 8 марта). Однако, за искусственным интеллектом нужен глаз да глаз, потому что он иногда выдаёт такие штуки, что становится стыдно или страшно.

Предлагаю рассмотреть несколько примеров – про оштрафованного адвоката, запутанного Евгения Онегина, про робота, склоняющего пациента к роскомнадзору, сексизм при отборе кандидатов на работу и другие. 

А в комментарии присылайте самые яркие и бредовые случаи – чтобы мы собрали полный список. 

Читать далее

Service Workers. Инструкция по применению

Reading time9 min
Reach and readers174K


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

Проблема в том, что до сих пор нет хорошего механизма управления кэшем ресурсов и результатов сетевых запросов. В своей статье я хочу рассказать как Service Worker (SW) может помочь в решении этой задачи. Объясню в формате рецептов — какие элементы и в какой пропорции смешать, чтобы получить нужный результат, исходя из задачи и требований.
Поехали!

Game++. Building arcs

Level of difficultyEasy
Reading time24 min
Reach and readers4K

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

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

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

Читать далее

Личность изначально находится в конфликте с социумом. И как мне с этим жить?

Level of difficultyEasy
Reading time5 min
Reach and readers1.3K

Дорогой, личность изначально находится в конфликте с социумом - разве тебе это не понятно?”. И в тот момент я словно подвис. Единственное, что пришло мне в голову - “Почему мне никто не сказал этого раньше?”

Мой разбор этого явления - психология, философия и выводы. И картинки в стиле киберпанк, потому что.

Давай глянем, что там

Vulkan. Руководство разработчика. Графический конвейер

Reading time14 min
Reach and readers21K


Я переводчик в IT-компании CG Tribe, и я продолжаю выкладывать перевод руководства к Vulkan API (vulkan-tutorial.com).

Сегодня я хочу поделиться с вами переводом первых двух глав раздела, посвященного графическому конвейеру (Graphics pipeline basics), — Introduction и Shader modules.

Содержание
Читать дальше →

Путеводитель C++ программиста по неопределённому поведению

Level of difficultyHard
Reading time3 min
Reach and readers7.6K

Путеводитель C\+\+\ программиста по неопределённому поведению


Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с программированием на C++. Это своего рода путеводитель C++ программиста по неопределённому поведению, причём по самым его тайным и экзотическим местам. Автор книги — Дмитрий Свиридкин, редактор — Андрей Карпов.

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

Старики будут править IT

Level of difficultyEasy
Reading time6 min
Reach and readers78K

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

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

Читать далее

Помогаторы разработчика 1С

Reading time17 min
Reach and readers54K

Всем привет.

Данная статья написана по моему выступлению на Infostart Event 2022, на котором я рассказал об инструментах и «лайфхаках», которые использую в своей работе и которые, как мне кажется, помогают сделать работу разработчика 1С проще, удобнее, а главное, эффективней. Многие вещи, возможно, покажутся вам очевидными или совсем простыми. Но часто я вижу, что разработчики пренебрегают ими, а ведь именно такие «мелочи» и делают нашу жизнь проще.

Читать далее

Как написать грамотный гайд: правила для техписов и разрабов

Level of difficultyEasy
Reading time20 min
Reach and readers4.3K

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

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

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

Прочитать →

Honey — я устал #2

Level of difficultyMedium
Reading time8 min
Reach and readers5K

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

Читать далее

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

Reading time27 min
Reach and readers37K

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

Своим постом автор Jenny Jam* пытается заполнить этот пробел. Он рассуждает, когда C — идеальный выбор, а когда лучше обратиться к другим языкам. Описывает, как настроить среду разработки и выбрать инструменты, разобраться в версиях, особенностях сборки и тонкостях работы с библиотеками.

Цель статьи — упорядочить представление о языке C и его экосистеме, и, конечно, дать практические советы, которые пригодятся в реальных проектах.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис

Читать далее

Ещё раз о великой границе между материей и сознанием

Level of difficultyEasy
Reading time3 min
Reach and readers1.8K

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

Буквально на днях я закончил читать тетралогию ПВО по вселенной Transhumanism Inc. Оказалось, что я запустил это дело и не читал не только последний роман “Круть”, но и предыдущие два — “KGBT”+ и “Путешествие в Элевсин”. Этот пост я помещу в хаб “Информационная безопасность” с тэгом “кибербез” хотя бы на том основании, что в последних двух романах главный герой — это заместитель начальника службы безопасности корпорации Transhumanism Inc. Маркус Зоргенфрей (нет, не еврей, но с российскими корнями, то есть предки жили в Добром государстве в эпоху позднего карбона). Поскольку вся корпорация Transhumanism Inc. предоставляет услуги цифровой жизни за пределами физических тел (в банке), такая классификация поста будет оправдана.

Несмотря на то, что при чтении всей тетралогии я нередко ржал как помешанный, но прорыдавшись, поневоле задумывался о вопросах вполне профессиональных. Например, начальник СБ адмирал-епископ Ломас рассказывает своему заместителю, что удалось запереть в банке демона зла Ахилла и отключить от нее все информационные потоки, то есть заточить демона в темницу. Обеспокоенный Маркус Зоргенфрей спрашивает, но позвольте, ведь банка с демоном находится в банкохранилище, где обеспечивается электропитание и климатика, а демон хитер и опасен, не может ли он выбраться из банки по электрическим проводам или по слаботочке? Нет, успокаивает его адмирал Ломас, не сможет, потому что именно здесь проходит великая граница между материей и сознанием. Похихикав, я задумался, что же это мне напоминает из недавнего опыта. И тут меня как молнией ударило и я опять начал бешено хохотать как Паниковский перед гирями, когда тот сообразил, что они золотые.

Читать далее

Фундаментальная математика — теория всего в IT и не только. Теория типов и формализация в Coq

Reading time38 min
Reach and readers9.8K

У нас есть 3 "теории всего" - научная картина мира (все сводится к законам физики), информатика (все сводится к битам) и фундамент математики (все сводится к логике). Именно фундамент математики представляет особый интерес, так как он является фундаментом для двух других фундаментов и имеет глубокий философский смысл. Последние 2 года я сильно им увлекся и проделал довольно большую работу по углубленному изучению теории типов (Calculus of Constructions), и готов поделиться результатами, а также рассказать о девяти направлениях, где можно применить это на практике. Очень многое получилось лучше, чем я планировал. Изначально перспективы были не очень понятными, и поэтому я не рассказывал друзьям и коллегам про мою работу в этом направлении и называл это «Секретный Проект». Но теперь, когда многое прояснилось и получилось, можно поделиться успехом. Собственно, в этой статье я расскажу вам не только про сам фундамент математики, а еще его связь с ежедневной работой программиста, а также с Computer Science/Data Science и AI/ML. Я вам нарисую большую и красивую картину, на которой все понятно и логически следует из маленького набора правил выведений типов (11 штук) и аксиом теории множеств (9 штук).

У нас есть 3 фундамента математики — теория множеств (удобна для человека), теория типов (удобна для компьютера) и теория категорий (не знаю, зачем она вообще нужна). Они примерно одинаковой мощности и одну можно выразить внутри другой. Особый интерс представляет именно теория типов, тк ее довольно легко можно запрограммировать внутри компьютера и использовать как строгий фундамент для других теорий, который не дает совершить ошибку и проверяет каждое ваше действие.

Читать далее

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

Level of difficultyEasy
Reading time5 min
Reach and readers16K

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

Читать далее

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Reach and readers462K

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

Читать далее

Синтаксис, синглтон и смертельный ромб в С++: взгляд опытного разработчика на C

Level of difficultyMedium
Reading time15 min
Reach and readers6.1K

Давайте знакомиться: меня зовут Анатолий Семятнёв, я и моя команда разрабатываем ПО для опорных сетей 5G в YADRO. В IT-сфере работаю давно, и мой опыт в основном связан с языком С: занимался Board Support Package (BSP) и драйверами, много работал с операционной системой QNX. 

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

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

• Ключевые концепции — explicit, final, default, string — и как их использовать.

• Инициализацию мемберов с помощью пустого брейс-листа.

• Синглтон Майерса в корутинах.

• «Смертельный ромб» и все, что связано с виртуальным наследованием.

Читать далее

Как понять нейронные сети? Часть 2

Level of difficultyEasy
Reading time17 min
Reach and readers1.5K

Начало обзора здесь.

Первые необъяснимые результаты

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


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

В довольно простой задаче распознавания рукописных цифр, используя хорошо известную базу MNIST (60 тысяч обучающих образцов и десять тысяч тестовых) в упрощенном варианте MNIST-1D (всего 4000 обучающих образцов). Каждый упрощенный образец дискретизируется в 40 точках и на каждый из сорока входов модели подается горизонтальное смещение точки образца (поэтому набор данных и называется MNIST-1D). В модели два слоя по 100 элементов в каждом. Для оптимизации используется стохастический градиентный спуск. По ходу обучения ошибка классификации образцов, подаваемых на вход плавно снижается до нуля. Однако ошибки на тестовом наборе, которые начинают снижаться, дойдя до 40%, остаются на этом уровне. Значение функции потерь при этом даже увеличивается, приближаясь к единице, что означает, что модель делает те же ошибки, но с большей уверенностью.

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

Читать далее

Пишем свою Diffusion модель с нуля

Level of difficultyMedium
Reading time12 min
Reach and readers10K

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

Меня зовут Юра, я - разработчик, фаундер и ML энтузиаст, также пишу свои заметки в своем ТГ канале. Я решил разобраться и понять, как устроена Diffusion модель внутри, понять ее математику и постараться объяснить и разложить ее на пальцах. Ну и конечно пописать код, который (спойлер) заработал. На гифке изображены примеры итоговых картинок на моей финальной модели.

Если вам тоже интересно, то читайте дальше

Читать далее

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity