Как стать автором
Обновить
69
0.7

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

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

Векторные базы данных: простым языком про устройство и принцип работы

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров7.4K

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

Читать далее
Всего голосов 24: ↑25 и ↓-1+26
Комментарии6

Кто же такая это ваша LoRA

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

В сети в последнее время регулярно мелькают статьи типа - как обучить Stable Diffusion генерировать ваши фотографии/фотографии в определенном стиле/фотографии определенного лора/такие фотографии итп.

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

Читать далее
Всего голосов 39: ↑37 и ↓2+35
Комментарии18

Портативное прототипирование электроники

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.3K

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

Читать далее
Всего голосов 41: ↑49 и ↓-8+57
Комментарии21

Как запустить Mixtral на своём компьютере

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

Всякий раз, когда выходит новая хорошая публичная ИИ модель, Хабр наполняется вопросами "Как нам её попробовать" и неправильными ответами, будто нужно платить за какие-то сервисы или иметь железа на сто лямов. Поэтому я вновь напишу инструкцию, как запустить новейший mixtral-8x7 на обычных средних компьютерах.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии7

Создаем изометрические уровни игры с помощью Stable Diffusion

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров19K

Всем привет. Сегодня я покажу вам, как можно создавать 2.5D уровни в изометрии с помощью быстрого прототипирования техникой grayboxing, и генеративного искусственного интеллекта, а именно Stable Diffusion. Практически весь процесс, описываемый в статье, довольно легко автоматизируется.

Если интересно, добро пожаловать под кат.

Читать далее
Всего голосов 67: ↑75.5 и ↓-8.5+84
Комментарии27

Как создать ассистента для поиска по видео

Время на прочтение9 мин
Количество просмотров877

Всем привет! Меня зовут Георгий, я старший разработчик‑исследователь в MTS AI. Одной из задач, которыми я занимаюсь в компании, является умная видеоаналитика. Это мощный инструмент, особенно с учетом современных технологий искусственного интеллекта, который может использоваться во многих отраслях: от торговли до обслуживания клиентов.

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

Тем не менее представьте, что можно создать общую систему видеоаналитики, которая заранее не настроена на определенные события. Она гибкая и умеет понимать задачи во время общения с пользователем. Запросы могут быть разнообразными, например: «предупреди меня, если в кадре произойдет ЧП, например, пожар или драка» или «я хочу найти кадры с желтыми автомобилями такси».

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Теоретические основы всех популярных алгоритмов машинного обучения и их реализация с нуля на Python

Уровень сложностиСложный
Время на прочтение1 мин
Количество просмотров22K

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

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии21

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч.1)

Уровень сложностиСложный
Время на прочтение127 мин
Количество просмотров7.5K

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

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

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

А еще эту статью можно рассматривать как глубокое погружение в то, что происходит вот на этом новогоднем видео.

Погрузиться сполна
Всего голосов 60: ↑59 и ↓1+58
Комментарии40

Как распаковать айтишника и настроить цикл управления знаниями

Время на прочтение10 мин
Количество просмотров6K

О преимуществах управления знаниями уже много написано, но вот выстраивание этого процесса — настоящий вызов...

Привет, Хабр! Меня зовут Лена, я архитектор продуктовых знаний. В этом тексте я сосредоточусь на тиражировании знаний и расскажу, как их эффективно «перекладывать» из голов экспертов. Также разберу реальный кейс Selectel — технический курс по сетям для всех сотрудников компании. Подробности под катом!
Читать дальше →
Всего голосов 38: ↑37.5 и ↓0.5+37
Комментарии4

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение45 мин
Количество просмотров136K

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

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

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

Азы больших языковых моделей и трансформеров: декодер

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров5.9K

В этом материале мы поговорим об устройстве компонента‑декодера в системах машинного обучения, построенных по архитектуре «трансформер», уделив особое внимание отличию декодера от энкодера. Уникальной особенностью декодеров является то, что они похожи на циклы. Они, по своей природе, итеративны, что контрастирует с линейными принципами обработки данных, на которых основаны энкодеры. В центре декодера находятся две модифицированные формы механизма внимания: механизм множественного внимания с маскировкой (masked multi‑head attention) и механизм множественного внимания энкодера‑декодера (encoder‑decoder multi‑head attention).

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

Мы, кроме того, продемонстрируем реализацию этих концепций с использованием Python и NumPy. Мы создали простой пример перевода предложения с английского языка на португальский. Практическая демонстрация обсуждаемых здесь идей поможет проиллюстрировать работу внутренних механизмов декодера в трансформерах и позволит лучше понять роль декодеров в больших языковых моделях (Large Language Model, LLM).

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии0

Фантомное питание для микрофона

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.1K


Привет, Хабр! Большинство распространённых аудиоинтерфейсов имеют всего два входных канала, которые обычно используются как левая и правая половина стереосигнала или два канала моно. Например, для микрофона и гитары.

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

В свою очередь, микшеру необходим микрофонный предусилитель с балансным входом, фантомным питанием и фильтром верхних частот, отсекающим низкочастотные шумы, прежде всего, от вентиляторов. Именно такое устройство мы сегодня изучим и соберём.
Заодно узнаем, какие бывают микрофоны
Всего голосов 44: ↑43 и ↓1+42
Комментарии12

Transformer в картинках

Время на прочтение14 мин
Количество просмотров112K

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Как мы с помощью ИИ выбираем обложки для сериалов в KION: кейс MTS AI

Время на прочтение8 мин
Количество просмотров861

Привет, Хабр! На связи вновь Андрей Дугин, руководитель группы видеоаналитики компании MTS AI. Сегодня я закончу рассказ о том, как мы с помощью ИИ выбираем обложки для сериалов в KION. Первую часть можно прочитать здесь.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Инструментальный усилитель для микрофона

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.5K


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

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

Не хватит их и на аудиоинтерфейс с достаточным числом каналов, поэтому приходится использовать микшер, смешивающий несколько моно- и стереосигналов в один стереосигнал. Чтобы подключить качественный микрофон, микшеру необходим чувствительный балансный аудиовход. Сегодня мы изучим и соберём такой модуль.
Схема основана на операционных усилителях.
Всего голосов 58: ↑56 и ↓2+54
Комментарии14

Знакомство с трансформерами. Часть 1

Время на прочтение13 мин
Количество просмотров23K

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

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

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

Здесь можно найти видеолекции о трансформерах. А в этом репозитории имеется реализация простого трансформера с использованием PyTorch.

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Классифицируем рукописные цифры с помощью Tensorflow и Keras

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

Привет, Хабр! Сегодня мы окунемся в мир машинного обучения, создав свою первую нейронную сеть на Python с помощью TensorFlow и Keras для распознавания рукописных цифр из знаменитого датасета MNIST. Этот проект станет отличным стартом для тех, кто только начинает свой путь в машинном обучении, и показательным примером мощи и простоты использования современных инструментов разработки.

Заинтересовал? Добро пожаловать под кат!

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии7

Как языковая модель предсказывает следующий токен (часть 1)

Время на прочтение27 мин
Количество просмотров6.6K

Я обучил небольшой (порядка 10 миллионов параметров) трансформер по превосходному туториалу Let’s build GPT: from scratch, in code, spelled out Андрея Карпати. После того, как он заработал, я захотел максимально глубоко понять, как он устроен внутри и как создаёт свои результаты.

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

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

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

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии5

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров11K

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

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

С новым годом: GPT в 500 строках на SQL

Время на прочтение42 мин
Количество просмотров37K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

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

Читать далее
Всего голосов 215: ↑211 и ↓4+207
Комментарии21
1
23 ...

Информация

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