Pull to refresh
-4
0
Send message

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

Reading time27 min
Views15K

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


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

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

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

Level of difficultyEasy
Reading time8 min
Views12K
Картинка WangXiNa, Freepik

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

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

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

Level of difficultyEasy
Reading time14 min
Views6.6K

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

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

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

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

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

Читать далее

Упрощенное объяснение новой сети Колмогорова-Арнольда (KAN) из MIT

Reading time2 min
Views15K

В стремительно развивающейся области искусственного интеллекта новая архитектура обещает произвести революцию в понимании и создании нейронных сетей. Названная сетью Колмогорова-Арнольда (KAN), инновационная структура от MIT готова трансформировать традиционные модели своим уникальным подходом.

Читать далее

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

Level of difficultyEasy
Reading time13 min
Views11K

Всем привет! 

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

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

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

Читать далее

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

Level of difficultyHard
Reading time7 min
Views5.2K

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

Читать далее

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

Reading time28 min
Views18K

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

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

Читать далее

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

Reading time12 min
Views1.1K


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

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

Level of difficultyMedium
Reading time38 min
Views4.1K



Hello world!


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



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

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

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

Level of difficultyMedium
Reading time10 min
Views5.2K

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

Читать далее

Как в ИТМО разрабатывают подвижный экзоскелет из титана для серийного производства

Reading time8 min
Views5.8K

В одной из лабораторий факультета систем управления и робототехники ИТМО разрабатывают экзоскелет из титана, который можно будет производить серийно. Пока проект на стадии 3D-печатного макета, но уже сейчас он выделяется на фоне аналогичных разработок своей подвижностью ― почти не сковывает движения. А будущий прототип из титана не потеряет в подвижности, зато ― по прочностному расчету ― поможет работать с весом до 80 кг. В этой статье рассказываем, откуда появился и как развивается проект.

Читать далее

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

Level of difficultyMedium
Reading time17 min
Views6K

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

Читать далее

Как мы обуздали ПОТОК данных со сварочных аппаратов

Level of difficultyEasy
Reading time6 min
Views8.8K

Мы – это специалисты Технопарка «Университетские технологии», в структуре которого есть производственная лаборатория с парком разнообразного сварочного оборудования. Здесь проводится подготовка и проверка практических навыков сварщиков, отработка различных технологических процессов сварки, разработка перспективных способов сварки и т.д. Поскольку мы идём в ногу со временем, на базе лаборатории не так давно было принято решение о разворачивании полигона передовых аппаратно-цифровых решений для оптимизации и мониторинга производственных, главным образом, сварочных процессов. Полигон станет площадкой тестовой эксплуатации аппаратно-цифровых решений для отработки новых идей и их внедрения на промышленных предприятиях новых регионов России. Это также открывает перспективные направления по подготовке специалистов, занятых цифровизацией промышленных предприятий и адаптации имеющихся в распоряжении аппаратно-цифровых решений для конкретных производственных задач.

Читать далее

Архитектура Xорошего Кода Прошивки (Массив-Наше Всё)

Level of difficultyEasy
Reading time10 min
Views8.6K

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

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

Основная идея - массив наша основная скрепа.

Главные достоинства представленной архитектуры - это простота поддержки, сопровождения и масштабирования кодовой базы.

Читать далее

Механический квантовый компьютер

Level of difficultyMedium
Reading time15 min
Views11K

Квантовые компьютеры постепенно мигрировали от «натуральных» квантовых объектов типа ионов и quantum dots к «искусственным» объектам типа трансмонов, где роль атомных переходов выполняют собственные частоты колебаний LC контуров. К таким контурам прикручены коаксиальные кабели для возбуждения системы, считывания их состояния и регулирования их свойств. Они все еще являются квантовыми объектами и работают при низкой температуре.


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


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

Векторные БД vs Точность — часть 2

Level of difficultyEasy
Reading time5 min
Views3.4K

В первой части из тестов стало понятно, что в векторном поиске с терминами что-то не так. И точность достаточно низкая для корректной работы RAG (retrieval augmentation generation). Давайте попробуем гибридный поиск и посмотрим, что из этого получится.

Читать далее

Опыт дистилляции моделей распознавания речи

Level of difficultyMedium
Reading time6 min
Views1.6K

Небольшая история про наш опыт дистилляции моделей для распознавания речи. Как у нас получилось уменьшить модель в 160 раз и не проиграть по качеству.

Читать далее

Написание тестов для асинхронного кода с помощью XCTest

Reading time6 min
Views1K


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее

Квантовый интернет

Reading time10 min
Views10K


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

Распознавание именованных сущностей: механизм, методики, сценарии использования и реализация

Reading time13 min
Views6.2K

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

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

В этой статье мы расскажем о том, что такое NER, о его принципах работы и о том, как оно используется в реальной жизни. Также в ней мы прольём свет на различные методики NER и способы реализации модели NER.
Читать дальше →

Information

Rating
5,559-th
Registered
Activity