Pull to refresh
-4
0
Send message

Большие языковые модели гораздо линейнее, чем мы думали

Level of difficultyHard
Reading time4 min
Views19K

Хабр, привет! Это снова Антон Разжигаев, аспирант Сколтеха и научный сотрудник лаборатории Fusion Brain в Институте AIRI, где мы продолжаем углубляться в изучение языковых моделей. В прошлый раз мы выяснили, что эмбеддинги трансформеров-декодеров сильно анизотропны. На этот раз я бы хотел рассказать об их удивительной линейности, ведь нашу статью про обнаруженный эффект («Your Transformer is Secretly Linear») несколько дней назад приняли на международную конференцию ACL!

Читать далее

Распознавание капчи при помощи CNN модели

Level of difficultyMedium
Reading time11 min
Views4.6K

Привет, Хабр!

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

Нажмите, чтобы подвердить, что вы не робот

Город в бутылке — движок Raycasting всего на 256 байт

Reading time8 min
Views17K

Привет любителям микро-кодирования. Вот вам кое-что невероятное: крошечный движок raycasting (метод “бросания лучей”) и генератор городов, который помещается в отдельный 256-байтовый HTML-файл.

Читать далее

Двоичный поиск против вероятностного

Level of difficultyEasy
Reading time7 min
Views6.9K

Внутри Dolt, первой в мире базе данных SQL с полнофункциональными возможностями контроля версий, таится много интересной computer science. Недавно я писал о системе хранения Dolt, в ней есть очень тонкая особенность — применение вероятностного поиска на больших выборках 64-битных целых чисел.

В любом учебном плане по Computer Science есть курс алгоритмов. Моим был CS 102, и одним из пунктов, который объяснялся в нём досконально, было то, что поиск — это, по сути, задача O(log2(N)) при условии, если данные отсортированы. За свою карьеру я многократно встречался с этим в том или ином виде — если сортируешь информацию и сохраняешь её, то стоит ожидать, что для поиска потребуется время O(log2(N)). В общем случае мы соглашаемся на время поиска O(log2(N)), потому что оказывается, что можно перебрать большой объём данных с логарифмическим коэффициентом масштабирования. Эта система работает, потому что мы уже почти автоматически сортируем всё заранее.

Но что если мы добавим дополнительные ограничения на наши данные, которые позволят нам выполнять поиск за константное время?

Будет ли эта статья историей о необязательной оптимизации? Да, будет. В этом конкретном случае поиск будет занимать гораздо меньше времени, чем чтение с диска. Мы говорим о величинах менее чем 0,1% от суммарного времени. Будет ли эта статья историей о преждевременной оптимизации? Нет, не будет. Это бы подразумевало, что мы не осознаём, что время тратится не на то. Эта статья — история о заманчивости алгоритма константного времени.

Читать далее

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views14K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

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


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

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

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

Delta-Rle-Huffman (DRH) Texture Format

Reading time8 min
Views4.2K

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

Внимание! В статье много картинок.

Кому интересно, добро пожаловать под кат!

Наука против возраста: как перепрограммировать организм

Level of difficultyEasy
Reading time8 min
Views5K

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

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

Читать далее

Алгоритмы, вдохновлённые природой

Level of difficultyHard
Reading time7 min
Views6.2K

В последние годы в нашей повседневной речи плотно закрепилось словосочетание «нейронные сети». Этот термин означает набор методов и программных решений из машинного обучения, дискретной математики и информатики. Но про что совсем часто забывают — он происходит из нейробиологии. Несмотря на очевидное название, нейросети — это не набор операторов IF и ELSE, а модели, вдохновлённые нервной системой живых организмов. Их эффективность в пору, когда у нас есть такие генеративные модели как GigaChat и Kandinsky, наглядно видна каждому. 

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

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

Читать далее

Разбираем KAN по полочкам

Reading time4 min
Views8.8K

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

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

Читать далее

Новый прорыв приближает умножение матриц к идеалу

Level of difficultyMedium
Reading time7 min
Views42K

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

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

Возьмем, к примеру, умножение матриц или массивов чисел. В 1812 году французский математик Жак Филипп Мари Бине разработал базовый набор правил, которым мы до сих пор обучаем студентов. Это работает прекрасно, но другие математики нашли способы упростить и ускорить процесс умножения матриц.

Читать далее

В остаточном потоке трансформеров представлена геометрия состояний их убеждений

Level of difficultyMedium
Reading time15 min
Views1.4K

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

Читать далее

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

Level of difficultyMedium
Reading time35 min
Views14K



Hello world!


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



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

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

Реализация Streebog256 и Streebog512 на языке RUST

Level of difficultyEasy
Reading time18 min
Views3.6K

Как и планировалось, следом за реализацией семейства хэш-функций SHA, появляется Стрибог и тоже в двух версиях, для 256 и 512 бит на выходе. Надеюсь эта статья будет полезна другим студентам. Более опытные разработчики в комментариях приветствуются.

Весь код сохранен в репозитории GitVerse.

Читать далее

Ансамблевое обучение для самых маленьких

Level of difficultyMedium
Reading time13 min
Views4.6K

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

Читать далее

Учёные связали органические молекулы с гидротермальными источниками на Энцеладе

Reading time5 min
Views1.4K

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

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

Читать далее

AlphaFold 3 предсказывает структуру и взаимодействие всех молекул жизни

Level of difficultyMedium
Reading time6 min
Views4.1K

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

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

Читать далее

Интуитивное понимание пространств и ядер в машинном обучении: Часть 1

Level of difficultyHard
Reading time9 min
Views12K

При изучении темы ядер (kernel) в ML/DS программы вузов, роадмэпы и видео на YouTube обычно рассматривают её через призму SVM, не говоря уже о всеми любимых курсах:). Казалось бы, это неплохо: вот тебе краткое объяснение и модель, которая использует ядра. Но, увы, в этих областях желательно понимать многие процессы интуитивно, так сказать — «тяжело в учении, легко в бою». К тому же, эта тема нечто большее, чем просто метод; она позволяет связать многие вещи в машинном обучении в единую картину через пространство, что я и хочу показать в этой статье.

Читать далее

КодоГенератор Линейных Отображений (как ускорить создание ASIC драйвера)

Level of difficultyEasy
Reading time5 min
Views2.3K

В программировании микроконтроллеров на Си часто приходится писать драйверы для умных и навороченных ASIC чипов с управлением по I2C/SPI/MDIO интерфейсам.

Обычно перед запуском эти чипы надо правильным образом сконфигурировать.

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

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

Читать далее

За гранью возможного: создание полимерных электродов, способных восстановить зрение

Reading time5 min
Views5.3K

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

Имплантируемые электроды зачастую негативно воспринимаются обществом, из-за недостаточной информации об эффективности и биосовместимости спустя какое-то время пребывания в организме, ограничиваясь первичными успехами. Это исследование затрагивает производительность и состояние электродов (и тканей мозга) как в начале экспериментов, так и спустя 55 недель!

 Подробнее об исследовании далее в статье! Приятного прочтения :)

Читать далее

DIY для шпиона: использование обнаружения объектов с помощью YOLOv8 в рамках военных стратегий

Reading time8 min
Views9.8K

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

В рамках глобальной системы мониторинга, известной как «The Machine». , функционируют разнообразные элементы. Данная система объединяет множество устройств, распределенных по всему земному шару, что обеспечивает комплексное наблюдение. Это позволяет государственным органам осуществлять мониторинг за индивидуальными лицами, анализировать общественные поведенческие тенденции и контролировать военные объекты на международном уровне. Геопространственная разведка (GEOINT) занимает центральное место в этой системе.

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

Читать далее

Information

Rating
5,581-st
Registered
Activity