Как стать автором
Обновить
4
0

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

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

Наш опыт эксплуатации Airflow в Kubernetes

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

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

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

Самые дикие налоговые проблемы, в которые встряли уехавшие из России айтишники в 2024

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

Попытка налоговой отхватить 6% с продажи квартиры в Грузии у налогового нерезидента РФ, двойное налогообложение заработанной крипты от российской ФНС, а также штраф 30% за сдачу в аренду недвижимости в Германии – в этой статье мы собрали самые жуткие истории из жизни, с которыми налоговые юристы сталкивались на практике.

Читать далее
Всего голосов 163: ↑148 и ↓15+163
Комментарии279

Три недели кодирования экономят два дня проектирования

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

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

Писать постановку, но чуть-чуть
Всего голосов 69: ↑67 и ↓2+80
Комментарии73

Как устроен GIL в Python

Время на прочтение6 мин
Количество просмотров124K
Почему после распараллеливания выполнение вашей программы может замедлиться вдвое?
Почему после создания потока перестает работать Ctrl-C?
Представляю вашему вниманию перевод статьи David Beazley «Inside the Python GIL». В ней рассматриваются некоторые тонкости работы потоков и обработки сигналов в Python.

GIL
Читать дальше →
Всего голосов 67: ↑65 и ↓2+63
Комментарии28

Как совмещать работу и учебу

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

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

Эта первая статья из серии “успешного успеха” или не очень успешного. Как стал разработчиком и с какими проблемами сталкивался на этом длинном пути.

Читать далее
Всего голосов 21: ↑19 и ↓2+18
Комментарии11

Математическое моделирование технологических объектов и систем глазами и руками студента

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

Разработка 1D-модели системы подвески автомобиля

Исследование возможностей и границ применения научных технологий и программного обеспечения как в привычной области работы, так и в новых сферах – это один из ключевых приоритетов современной индустрии. Мы продолжаем серию статей о математическом моделировании, раскрывая еще одно направление применения программного обеспечения REPEAT.
Сегодня перед вами результат проекта "Школа Моделирования" – 1D-модель системы подвески автомобиля. Автор статьи, студент РГУ им. Косыгина – Алексей, который работал над этим проектом, используя наши инструменты и технологии, что стало хорошим тестом для их универсальности и гибкости применения.

Ссылка на телеграм-канал REPEAT: https://t.me/repeatlab

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

Quantization Deep Dive, или Введение в современную квантизацию

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

Привет! Меня зовут Василий Землянов, я занимаюсь разработкой ML-инфраструктуры. Несколько лет я проработал в команде, которая делает споттер — специальную маленькую нейросетевую модельку, которая живёт в умных колонках Яндекса и ждёт от пользователя слова «Алиса». Одной из моих задач в этой команде была квантизация моделей. На пользовательских устройствах мало ресурсов, и мы решили, что за счёт квантизации сможем их сэкономить — так в итоге и вышло.

Потом я перешёл в команду YandexGPT. Вместо маленьких моделей я стал работать с очень крупными. Мне стало интересно, как устроена квантизация больших языковых моделей (LLM). Ещё меня очень впечатляли истории, где люди берут гигантские нейросети, квантизируют в 4 бита и умудряются запускать их на ноутбуках. Я решил разобраться, как это делается, и собрал материал на доклад для коллег и друзей. А потом пришла мысль поделиться знаниями с более широкой аудиторией, оформив их в статью. Так я и оказался на Хабре :)

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

Читать далее
Всего голосов 66: ↑65 и ↓1+81
Комментарии13

Вступление в мир разработки игр

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

Исследуйте путь профессионала в области машинного обучения и его команды, погружаясь в разработку мобильных игр. Статья рассказывает о переходе от участия в соревнованиях на Kaggle к созданию мобильного приложения «Угадай фильм». Узнайте о проблемах разработки MVP для Android, интеграции техник машинного обучения с использованием OpenCV и различных этапах разработки и публикации приложения. Погрузитесь в процесс использования ИИ для дизайна, выбора кадров из фильмов и включения интересных фактов о фильмах через ChatGPT, завершившись успешным запуском в Google Play.

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

Почему вы не тренируетесь?

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров70K
Читать далее
Всего голосов 57: ↑36 и ↓21+25
Комментарии228

Как графы знаний и LLM могут друг другу помочь

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

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

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

ИИ в 3D: Где мы сейчас и какое будущее нас ждёт? (Часть 2)

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

В предыдущей статье мы уже затрагивали задачу реконструкции 3D-объектов по их 2D-изображениям. В этой же углубимся в реконструкцию с головой! Вообще говоря, как мне кажется, сейчас мы рассмотрим гораздо более концептуально интересные методы, а именно - HSP и Mesh R-CNN. Это база, которая просто должна осесть в головах всех любителей ИИ в 3D!

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

Настоящее предназначение OpenAI SORA: как и зачем симулировать «Матрицу» для ChatGPT

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

Ну что, уже успели прочитать восхищения небывалым качеством видео от нейросетки SORA у всех блогеров и новостных изданий? А теперь мы вам расскажем то, о чем не написал никто: чего на самом деле пытается добиться OpenAI с помощью этой модели, как связана генерация видео с самоездящими машинами и AGI, а также при чем здесь культовая «Матрица».

Войти в симуляцию →
Всего голосов 248: ↑244 и ↓4+281
Комментарии122

Анатомия асинхронных фреймворков в С++ и других языках

Время на прочтение20 мин
Количество просмотров43K
Привет! В этой статье я расскажу об устройстве асинхронных движков с корутинами и без них. Для начала сосредоточимся не на конкретном движке, а на том, почему во всех популярных языках программирования появились корутины и чем они так хороши. Это может быть интересно не только C++-разработчикам, но и всем, кто занимается разработкой сетевых приложений или интересуется архитектурой современных фреймворков.

Пройдёмся по разным архитектурам построения серверов — от самой простой синхронной к более интересным, посмотрим на типичную архитектуру корутинового движка, а после окунёмся в дебри C++ и взглянем на самое страшное на примере нашего фреймворка userver.

Пишем синхронный сервер


Представьте, что у вашего сервиса очень маленькая нагрузка — 100 rps, и вам дали задачу написать простой сервер, понятный каждому второму школьнику. У вас получится что-то наподобие следующего:

void naive_accept() {
  for (;;) {
    auto new_socket = accept(listener);

    std::thread thrd([socket = std::move(new_socket)] {
      auto data = socket.receive();
      process(data);
      socket.send(data);
    });

    thrd.detach();
  }
}
Читать дальше →
Всего голосов 56: ↑53 и ↓3+63
Комментарии32

Как автоматизировать построение архитектурных схем в большой микросервисной системе

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

Если у вас есть большая система, состоящая из множества микросервисов, то вы наверняка задавались вопросом: «Что сделать, чтобы архитектурная схема всей системы была всегда на 100% актуальной?».

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

Чтобы решить проблему мы автоматизировали отрисовку схем опираясь на метаданные IT-систем. Мы создали отдельный микросервис, который этим занимается и назвали его «Architect». О том как это происходит и как работает Architect я расскажу в этой статье, а также дам несколько советов, которые помогут внедрить то же самое у вас в компании.

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

Поговорим об оптимизирующих компиляторах. Сказ восьмой: размотка циклов

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

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

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

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

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

Крупнейшие научные открытия 2023 года

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

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

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

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

Прекратите клепать базы данных

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

В жизни каждого инженера-фронтендера наступает момент, когда осознаёшь: далее не обойтись без кэширования данных из API. Всё может начаться с самых невинных вещей: сохраняем предыдущую страницу с данными, чтобы кнопка «Назад» срабатывала мгновенно; реализуем простенькую логику отмены действия или обеспечиваем слияние нескольких состояний от различных запросов к API. Но все мы знаем, чем такое кончается. Один за другим возникают запросы на новые фичи, и вскоре мы уже не покладая рук реализуем кэши данных, индексы для работы вручную, оптимистические мутации и рекурсивную инвалидацию кэша.

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

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

Читать далее
Всего голосов 37: ↑31 и ↓6+37
Комментарии45

Что ты такое, dhclient?

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

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 177: ↑176 и ↓1+221
Комментарии61

Ускорение в 30 раз — requestIdleCallback

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

В данной статье я хотел бы привести пример практического кейса использования метода requestIdleCallback, который возник у меня на проекте. Кейс сам по себе небольшой, замеры времени отработки функции и отрисовки компонентов для использования производились с помощью React Profiler.

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

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

Oracle/ClickHouse. DWH. Партицирование как средство быстрого обновления данных

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

В этой статье хотелось бы рассмотреть такой вопрос - как частичное обновление больших объемов данных в таблицах, которые активно используются пользователями на чтение. Задача является типовой, и с ней сталкивается каждый инженер данных. При этом не важно на какой ступеньке своей карьерной лестницы вы находитесь, Junior или Senior, такие задачи будут.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность