Pull to refresh
51
0
Alexander Russkiy @Kolonist

Разработчик

Send message

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficulty Medium
Reading time 33 min
Views 88K

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2 +212
Comments 77

Как работают трансформеры: разбираем математику

Level of difficulty Medium
Reading time 28 min
Views 15K

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

Как вы увидите, математика модели не так уж сложна. Сложность возникает из-за количества этапов и количества параметров. Перед прочтением этой статьи я рекомендую прочитать пост Illustrated Transformer (или читать их параллельно) [перевод на Хабре]. Это отличный пост, объясняющий модель трансформера интуитивным (и наглядным!) образом, поэтому я не буду объяснять то, что уже объяснено в нём. Моя цель заключается в том, чтобы объяснить, как работает модель трансформера, а не что это такое. Если вы хотите углубиться в подробности, то изучите известную статью Attention is all you need [перевод на Хабре: первая и вторая части].

Читать далее
Total votes 40: ↑40 and ↓0 +40
Comments 8

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

Reading time 42 min
Views 36K

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

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

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

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

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

Читать далее
Total votes 215: ↑211 and ↓4 +207
Comments 20

SAGE: коррекция орфографии с помощью языковых моделей

Level of difficulty Medium
Reading time 18 min
Views 7.2K

Коррекция правописания является одной из основополагающих задач в области Natural Language Processing (NLP). Достаточно прозаичная формулировка и кажущаяся жёсткой структура орфографической системы скрывают под собой нетривиальные внутриязыковые взаимодействия, являющиеся традиционно сложными для языковых моделей. В этом посте мы расскажем, как решали эту проблему внутри SberDevices, и как это привело к созданию проекта по исследованию задачи коррекции текста, а также решения, опережающего модели OpenAI.

Читать далее
Total votes 31: ↑31 and ↓0 +31
Comments 6

Запуск приложений на .NET в качестве службы на Linux-системе с systemd

Level of difficulty Hard
Reading time 7 min
Views 9K
image

В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.

Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 18

Python библиотека RuPersonaAgent для создания русскоязычного персонифицированного диалогового агента

Reading time 5 min
Views 1K

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

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

Большой список генеративных нейросетевых сервисов: 99 причин подружиться с ИИ

Reading time 16 min
Views 13K

После того как блестящий дебют ChatGPT сделал большие языковые модели (LLM) основным центром приложения инвестиций в ИТ, новые продукты на основе генеративного ИИ сыпятся на удивленных пользователей как из рога изобилия. Буквально каждую неделю лидеры ИТ-индустрии и небольшие «ламповые» стартапы презентуют нам новые умные сервисы, способные эффективно автоматизировать рутину и облегчить человеку раскрытие его творческого потенциала. 

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

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 1

Дизайнер не нужен. Правила создания красивых UI

Level of difficulty Easy
Reading time 5 min
Views 17K


Чем проще система — тем она эффективнее. Здесь не нужен художественный вкус или особая одарённость. Красота появляется сама собой, если система спроектирована без лишних деталей. Хороший пример таких интерфейсов дают рабочие инструменты. Молоток, ножовка, электропила. Всё это создано не для красоты, а чтобы идеально ложиться в руку и эффективно выполнять свою функцию. О красоте думают в последнюю очередь, но в итоге дизайн профессиональных инструментов зачастую вызывает искреннее восхищение. Ничего лишнего.

Такие же правила действуют в компьютерных интерфейсах. Чем проще — тем лучше. В этом смысле интересно посмотреть на новое поколение Linux-приложений в современном стиле с адаптацией под смартфоны (на КДПВ некоторые примеры), а также на свежие UI-фреймворки, которые продвигают современный стиль разработки.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 30

КОГДА УМЕСТЕН CAPS LOCK, как расставить акценты и другие заметки о типографике

Level of difficulty Easy
Reading time 7 min
Views 3K

Привет. Меня зовут Костя, и я отвечаю за дизайн в AGIMA. Мы занимаемся дизайном интерфейсов. Особенность нашей работы в том, что во многих проектах мы не можем управлять контентом. Например, когда мы делаем какой-нибудь магазин, мы задаем «гнезда», в которые потом система или контент-менеджер вставит фото товаров, цену, описание и т. д. Каталог товаров формируется динамически, а состав главного меню может поменять продакт-оунер после A/B-тестов или хотелок инвестора. Даже надписи на кнопках правит UX-райтер.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 6

Cocos Creator — отличная альтернатива Unity, о которой вы, возможно, ещё не слышали

Level of difficulty Easy
Reading time 6 min
Views 23K

Если ты решил начать делать игры под Яндекс Игры, но Unity и другие движки тебя не устраивают — билды много весят, долгие загрузки и другие проблемы — то эта статья для тебя.

Читать далее
Total votes 32: ↑27 and ↓5 +22
Comments 48

Как построить систему, способную выдерживать нагрузку в 5 млн rps

Level of difficulty Medium
Reading time 12 min
Views 45K

Всем привет! 

Меня зовут Владимир Олохтонов, я руковожу командой разработки в отделе Message Bus, который является частью платформы Ozon. Мы занимаемся разработкой самых разных систем вокруг Kafka, etcd и Vault. В этой статье я расскажу о том, как мы строили линейно масштабируемую gRPC-прокси перед Kafka, способную обслуживать миллионы запросов в секунду, используя Go.

Читать далее
Total votes 114: ↑111 and ↓3 +108
Comments 58

MusicGen — генерируем музыку на своём ПК. Новая локальная нейросеть — знакомство и установка

Level of difficulty Easy
Reading time 4 min
Views 24K

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

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

* организация запрещена в РФ

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 12

Руководство по реализации отзывчивого дизайна в 2023 году

Level of difficulty Medium
Reading time 17 min
Views 29K

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

Термин «отзывчивый» сегодня отражает уже очень многое. У нас есть медиа-запросы, которые проверяют пользовательские настройки, а также современные возможности CSS, которые помогают создавать отзывчивые макеты вообще без использования медиа-запросов. Отзывчивость нынче изменилась, и мы живём в поистине прекрасное время.
Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Comments 27

Транскрипция речи с открытым исходным кодом

Level of difficulty Medium
Reading time 10 min
Views 7.3K

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

VPS хостинг в России

Как ИИ может понять речь?
Total votes 18: ↑14 and ↓4 +10
Comments 12

Создание .NET библиотеки от А до Я

Level of difficulty Medium
Reading time 32 min
Views 16K

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

Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.

Читать далее
Total votes 53: ↑52 and ↓1 +51
Comments 13

Руководство по программированию сокетов на Python. От введения до работающего примера

Reading time 10 min
Views 53K


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.
Посмотреть первую часть
Total votes 8: ↑6 and ↓2 +4
Comments 0

Лучшие книги по Python 2021-2022 года: для новичков и профи

Reading time 6 min
Views 205K

Привет, Хабр! Поговорим о книгах?

Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие. 

И да, в IT-команде Сбера много книголюбов с самыми разными предпочтениями. А поскольку мы на Хабре, то поговорим сегодня о технической литературе. Точнее, о Python и лучших книгах по этому языку для профи, программистов среднего уровня и начинающих. Подборка  ― уже под катом.

Читать далее
Total votes 23: ↑23 and ↓0 +23
Comments 11

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 6

Reading time 5 min
Views 15K

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

Читать далее
Total votes 13: ↑12 and ↓1 +11
Comments 5

Сравнение алгоритмов детекции лиц

Reading time 3 min
Views 16K

Привет, Хабр! Очень часто я на просторах интернета натыкаюсь на такой вопрос: «А какое готовое решение по детекции лиц лучше всего использовать?» Так вот, я отобрал 5 решений с Github, которые показались мне хорошими, относительно новыми и лёгкими в использовании, и хотел бы сравнить их между собой. Всем, кому интересно, что из этого вышло, добро пожаловать под кат!

Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 13

База данных с 1 трлн записей и опыт использования отображаемых на память файлов

Reading time 4 min
Views 6.1K

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

По счастью, моя БД не совсем обычная: размер записи всего 1 бит. В базе должны храниться данные о простых числах. Соответственно, вместо того, чтобы хранить сами числа, проще хранить один бит (1 - простое число, 0 - композитное). И тогда, чтобы хранить один триллион битов, нужно всего 116 ГБайт.

Однако сделав такой файл, мы получили только лишь хранилище, но не собственно БД. Нам нужен код, который будет записывать и считывать данные. Традиционный FileStream был отброшен сразу, по причине его медленности. Постоянное чередование Seek и чтения/записи по 1 байту даёт результат примерно в 100 раз худший, чем сопоставленные в памяти файлы, опытом использования которых я и хочу поделиться в этой статье.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 33

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
C#
Multiple thread
Object-oriented design
Software development
SQL
ASP.Net
PostgreSQL
Linux
MongoDB