Pull to refresh
160
-1.9
Сергей @iiiytn1k

Инженер

Send message

Объясняем простым языком, что такое трансформеры

Level of difficultyEasy
Reading time12 min
Views25K

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

Один из важнейших инструментов машинного обучения — трансформеры. Популярность трансформеров взлетела до небес в связи с появлением больших языковых моделей вроде ChatGPT, GPT-4 и LLama. Эти модели созданы на основе трансформерной архитектуры и демонстрируют отличную производительность в понимании и синтезе естественных языков. 

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

Читать далее
Total votes 36: ↑36 and ↓0+36
Comments2

Blender — пользовательские инструменты на базе Geometry Nodes

Level of difficultyMedium
Reading time3 min
Views3.6K

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

Level of difficultyMedium
Reading time7 min
Views11K

Всем привет!

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

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments10

Как создатели мемных спин-оффов «Зельды» изменили российскую индустрию игр и анимации

Level of difficultyEasy
Reading time37 min
Views6.3K
image

Что общего между мемами про Моршу, квестом по Warcraft, «Масяней», «Смешариками» и Jedi Outcast.

Animation Magic Inc. (ООО «АМИ») — одна из первых крупных российских игровых студий. Она была открыта в 1992 году в Санкт-Петербурге и в основном занималась аутсорсом для западных издателей. Ещё это первая отечественная студия, которая на момент открытия имела американское подразделение и команду разработчиков из 50 человек. И это в те годы, когда из известных российских игр был разве что Tetris Алексея Пажитнова, Perestroika Никиты Скрипкина и Color Lines от студии Gamos.

Сегодня об Animation Magic вспоминают только в контексте отменённого квеста по вселенной Warcraft да неканоничных частей The Legend of Zelda, анимационные ролики из которых ещё в нулевые стали популярными интернет-мемами. Обе части Zelda рьяно критикуют и высмеивают уже два десятилетия, но в отрыве от критики — о студии почти ничего неизвестно.

И очень печально, ведь выходцы из Animation Magic серьёзно повлияли на формирование игровой и анимационной индустрии в России. Этим материалом мы хотели бы восстановить историческую справедливость: разобрать полный творческий путь студии, развеять мифы и опубликовать ранее неизвестные факты.
Читать дальше →
Total votes 39: ↑36 and ↓3+45
Comments4

Реализация контроллера SDRAM

Level of difficultyMedium
Reading time10 min
Views6.1K

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

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments10

Разводка регулярных структур в KiCAD: путь лентяя

Reading time11 min
Views4.7K
image

Я в одной из предыдущих статей писал — я, фактически, безработный. Юридически — нет, во-первых я пенсионер, но вполне мог бы и работать. Во-вторых, вроде как и работаю в одной маленькой фирме из двух человек, но последний год у нас с контрактами напряженка. С голоду не умираем, пенсии вполне достаточно на жизнь, но ведь развлекаться как-то надо?
Время от времени от скуки публикую статьи-обзоры на сайте шопоголиков, администрация сайта даже денег довольно-таки регулярно за это дает. Очень хорошая отмазка для супруги — нет, я не шопоголик, это я, вроде как, при деле. И вот здесь взялся публиковать статейки — если на том сайте такие публиковать, только минусов нахватаешь — типа ты что, слишком умный, что ли? — а вот на тебе минус и не балуй. И в следующий раз пиши про какую-нибудь мыльницу.
Читать дальше →
Total votes 32: ↑31 and ↓1+40
Comments13

Восстановить удаленную фотографию с флешки? Искусственный интеллект в помощь

Level of difficultyMedium
Reading time9 min
Views6.6K

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

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments5

Алгоритмы программы для дозиметра на счетчике Гейгера

Level of difficultyEasy
Reading time17 min
Views6.2K

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

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

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

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments29

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Reading time11 min
Views15K

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

Читать далее
Total votes 139: ↑139 and ↓0+139
Comments46

Небанальные правила чистого Python. Часть 1

Reading time6 min
Views19K

Большинство питонистов не раз слышали о таких правилах как «функции должны быть глаголами» или «не наследуйтесь явно от object в Python 3». В этой статье рассмотрим не такие банальные, но полезные правила чистого кода в Python.

Читать далее
Total votes 40: ↑38 and ↓2+45
Comments49

Автоэнкодеры в Keras, Часть 3: Вариационные автоэнкодеры (VAE)

Reading time10 min
Views47K

Содержание



В прошлой части мы уже обсуждали, что такое скрытые переменные, взглянули на их распределение, а также поняли, что из распределения скрытых переменных в обычных автоэнкодерах сложно генерировать новые объекты. Для того чтобы можно было генерировать новые объекты, пространство скрытых переменных (latent variables) должно быть предсказуемым.

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


Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments15

Термостабилизация телескопа

Reading time30 min
Views10K

На Хабре уже много статей о любительской астрономии, но мне пока ещё не встречались статьи о вентиляции (охлаждении, терм стабилизации) телескопа. Про то, зачем это нужно, написано, например, тут и тут. Вкратце, проблема в том, что если ГЗ (главное зеркало) телескопа теплее, чем окружающий его воздух, над ним возникает конвективный поток, который заметно портит изображение. Звёзды обзаводятся асимметричными "лучами", а протяженные объекты (планеты) теряют чёткость и контрастность. Маленькие телескопы довольно быстро остывают сами, а большие, особенно закрытой конструкции (такие, как Шмидт-Кассегрен), Требуется охлаждать принудительно. Самый простой и естественный способ - продувка ГЗ и трубы компьютерными кулерами. Редкие модели крупных ШК оборудованы кулерами, поэтому приходится сверлить дырки. Считаю тему достойной Хабра: тут и разработка электроники, и Ардуино, и 3D печать. Эта статья - адаптация того, что я писал на Астрофоруме год назад, всё никак руки не доходили до Хабра.

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

Читать далее
Total votes 81: ↑81 and ↓0+81
Comments41

Вычисляем π на первом процессоре от Intel — 4004

Reading time10 min
Views16K

Как-то мне пришла в голову мысль о том, насколько же быстрее современные процессоры по сравнению с ранними экземплярами. Да, можно размышлять об этом эмпирически - зная тактовую частоту и особенности микроархитектуры (как устроен конвейер, сколько есть ALU, и т.д.), можно прикинуть производительность Intel 4004. Пусть и не в FLOPS'ах, ибо нативная поддержка чисел с плавающей запятой появилась позже. Но это будет весьма грубая прикидка, так как у этого процессора есть несколько интересных черт: разрядность только 4 бита (а не 64, как у большинства современных машин), очень скудный набор инструкций (нет даже AND'a и XOR'a!) и ограничения переферии (в частности памяти не так уж и много).

Поэтому я решил исследовать вопрос на практике. В качестве бенчмарка выбор пал на вычисления числа π. В конце-то концов, даже ENIAC в дремучем 1949 году справился с этой задачей! [2]

Читать далее
Total votes 78: ↑77 and ↓1+107
Comments25

Трёхмерная графика с нуля. Часть 1: трассировка лучей

Reading time42 min
Views130K
image


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

В этой работе мы сосредоточимся не на скорости, а на чётком объяснении концепций. Код примеров написан наиболее понятным образом, который не обязательно является самым эффективным для реализации алгоритмов. Есть множество способов реализации, я выбрал тот, который проще всего понять.

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


Читать дальше →
Total votes 90: ↑90 and ↓0+90
Comments53

Трёхмерная графика с нуля. Часть 2: растеризация

Reading time47 min
Views54K
image


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

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

Тогда как это удаётся играм?

Ответ заключается в использовании совершенно иного семейства алгоритмов, которое мы исследуем во второй части статьи. В отличие от трассировки лучей, которая получалась из простых геометрических моделей формирования изображений в человеческом глазе или в камере, сейчас мы будем начинать с другого конца — зададимся вопросом, что мы можем отрисовать на экране, и как отрисовать это как можно быстрее. В результате мы получим совершенно другие алгоритмы, которые создают примерно похожие результаты.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments2

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Registered
Activity