Обновить
2
0
Садовников Антон Петрович@Siddthartha

Developer

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

Пайплайны в GitLab для микросервисов

Время на прочтение10 мин
Охват и читатели9.9K

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

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →

Нейросеть для генерации текста

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

Как я и ChatGPT писали текстовый генератор. Есть несколько изюминок

Модель нейросети больше, чем предложил чат-бот и она обучается нестандартным способом.

Читать далее

Учимся летать: симуляция эволюции на Rust. 1/5

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.8K



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


Я расскажу вам, как работают простая нейронная сеть и генетический алгоритм, затем мы реализуем их на Rust и скомпилируем приложение в WebAssembly.


Предполагается, что вы немного знакомы с Rust, остальное я постараюсь объяснить.

Эта серия состоит из нескольких статей:


  1. Введение (что мы будем симулировать, как работает нейронная сеть и генетический алгоритм).
  2. Реализация нейронной сети.
  3. Реализация генетического алгоритма.
  4. Реализация глаз, мозга и самой симуляции (в двух частях: первая, вторая).




Интересно? Тогда поехали.

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

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

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



Hello world!


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



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

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

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

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели1.7K

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели7.9K

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

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели13K

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

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

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

Читать далее

Как 8 сотрудников Google изобрели современный искусственный интеллект

Время на прочтение16 мин
Охват и читатели15K

Восемь имён указаны в качестве авторов научной работы «Всё, что вам нужно – это внимание», написанной весной 2017 года. Все они были исследователями из Google, хотя к тому времени один из них уже покинул компанию. Когда ветеран исследования, Ноам Шазир, увидел ранний вариант работы, он был удивлён, что его имя стоит первым, что говорит о том, что его вклад был первостепенным. «Я не думал об этом», — говорит он.

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

Читать далее

Генерация синтетических изображений с использованием диффузионно-трансформерной модели (DiT)

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели5.9K

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

Сегодня с Вами Илья Абрамчук и Дарья Ульянова, участники профессионального сообщества NTA.

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

Узнать как мы генерировали изображения

LLM field landscape

Уровень сложностиСредний
Время на прочтение43 мин
Охват и читатели10K

Ради чего эта статья?

Сфера генеративных моделей сегодня кипит, булькает и шипит — каждый день выходят новые статьи, новые бенчмарки, новая модель вырывается вперёд на Arena, открывается очередной AI‑стартап… Только мы успеваем потрогать одну модель и сделать свои выводы, выходит другая, а Sam Altman в каждом интервью намекает, насколько GPT-5 будет умнее, лучше и круче, чем GPT-4.

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

Читать далее

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели110K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее

Архитектура Stable Diffusion: Face ID, Lighting

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

Это перевод моей статьи на medium.com.

Год назад я провёл краткий обзор по теме переноса стиля. Пару месяцев назад я решил вернуться к этому вопросу и исследовать прогресс за последний год. За это время случилось много значимых изменений: архитектура open-source модели Stable Diffusion стала, лидирующей среди моделей для задач генерации изображений. Особенно её модификация SDXL [1]. Hugging Face превратился в лидирующую платформу для запуска модели Stable Diffusion с помощью библиотеки diffusers [2].

Читать далее

ENTRYPOINT vs CMD: назад к основам

Время на прочтение6 мин
Охват и читатели359K

Construction


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

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

Пишем калькулятор на Rust с GUI

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели31K

Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

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

Читать далее

Какой плащ был у Понтия Пилата? Отвечает GigaChat

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели17K

Всем привет! На связи лид разработки SDK GigaChat’a — Константин Крестников. В этой статье я расскажу о том, что такое GigaChain и как в целом SDK позволяет упростить жизнь разработчика LLM, например, научить LLM давать ответы на вопросы по вашим документам или работать в режиме автономного агента. Также поговорим про решения, которые практически невозможно сделать без использования SDK.

GigaСhain — это ответвление (fork) открытой библиотеки LangСhain на Python. Её главная цель — облегчить жизнь разработчику. Библиотека состоит из большого количества различных компонентов, которые позволяют работать с промптами, объединять вызовы к большим языковым моделям в цепочки, загружать данные из разных источников и сохранять обработанные ответы языковой модели. 

Читать далее

GigaAM: класс открытых моделей для обработки звучащей речи

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели32K

Салют, Хабр! Ранее мы в SberDevices анонсировали предобученную на русском языке модель GigaAM (Giga Acoustic Model) и её дообученные состояния под распознавание речи (GigaAM-CTC) и определение эмоций (GigaAM-Emo). Сегодня же делимся с сообществом весами моделей и примерами использования.

Приглашаем под кат погрузиться в self-supervised learning для звучащей речи и оценить возможности предобученных моделей!

Читать далее

Rust — это не «memory safe C»

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели59K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее

В общих чертах про функциональное программирование в Rust

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

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

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

Хоть Rust не является чистым функциональным языком программирования, однако он имеет множество инструментов, позволяющих применять функциональные принципы.

Rust поддерживает рекурсию, хотя и без оптимизации хвостовых вызовов, что является отступлением от некоторых традиционных функциональных языков, таких как Haskell. Тем не менее, язык предоставляет мощные абстракции и паттерны, такие как владение и заимствование.

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

Кроме того, Rust имеет поддержку функций высшего порядка и замыканий.

Читать далее

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

Время на прочтение42 мин
Охват и читатели44K

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

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

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

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

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

Читать далее

Заимствование и время существования в Rust

Время на прочтение10 мин
Охват и читатели15K
Представляю вашему вниманию перевод статьи «Rust Borrow and Lifetimes» из блога Артура Ляо (Arthur Liao), инженера Yahoo!

Rust — это новый язык программирования, находящийся в активной разработке с версии 1.0. Я могу написать другой блог о Rust и том, почему он крут, но сегодня я сфокусируюсь на его системе заимствования и времени существования, которая запутывает многих новичков, в том числе и меня самого. Данный пост предполагает, что у вас есть базовое понимание Rust. Если же нет, вы можете сперва прочитать само Руководство и Руководство по указателям.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Луганск, Луганская обл., Украина
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Ведущий
От 10 800 $
PHP
ООП
Docker
Rust
Linux
Асинхронное программирование
MQTT
Геоинформационные системы
Машинное обучение
Computer Science