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

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

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

FP32, FP16, BF16 и FP8 — разбираемся в основных типах чисел с плавающей запятой

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

Привет, Хабр! Сегодня давайте поговорим о том, как современные вычисления на GPU стали более гибкими и эффективными благодаря различным форматам чисел с плавающей запятой (FP64, FP32, FP16, BFLOAT16 и FP8). Эти форматы не просто числа — за каждым из них стоит конкретная область применения. В разных ситуациях мы сталкиваемся с задачами, где важны либо скорость, либо точность, и правильно выбранный тип floating point помогает оптимизировать ресурсы. Давайте разберём всё это на примерах и поймём, в каких задачах каждый из этих форматов будет наиболее полезен.

Читать далее
Всего голосов 14: ↑11 и ↓3+10
Комментарии16

Шаблоны проектирования для баз данных

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

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

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

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

Пять книг про NLP, с которых можно начать

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

Всем привет! Меня зовут Валентин Малых, я — руководитель направления NLP-исследований в MTS AI, вот уже 6 лет я читаю курс по NLP. Он проходит на платформе ODS, а также в нескольких университетах. Каждый раз при запуске курса студенты спрашивают меня про книги, которые можно почитать на тему обработки естественного языка. Поскольку я все время отвечаю одно и то же, появилась идея сделать пост про мой список книг, заодно описав их. 

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

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

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

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

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

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

50 оттенков линейной регрессии, или почему всё, что вы знаете об A/B тестах, помещается в одно уравнение

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

Всем привет! A/B тестирование уже давно стало стандартом в проверке гипотез и улучшении продуктов в X5. Но, как ни странно, многие из «модных» техник, которые применяются в A/B тестировании, на самом деле, не что иное, как вариации старой доброй линейной регрессии. 

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

Чтобы разобраться в этом, для начала вспомним основы линейной регрессии, после чего перейдём к различным статистическим методам снижения дисперсии и покажем, как они сводятся к линейной регрессии. Затем объединим все техники вместе и на примере покажем, как они работают на практике.

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

Разработка Telegram-бота для управления файлами и заметками с помощью Aiogram 3 и асинхронной SQLAlchemy

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

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

Для полного погружения желательно, чтобы вы уже имели базовые знания Python, были знакомы с фреймворком Aiogram 3 (на моем Хабре уже есть около 15 публикаций, в которых я подробно разбираю создание телеграм‑ботов с нуля на этом фреймворке), а также имели общее представление о базах данных, в частности SQLite, и их интеграции с Python.

Что мы будем делать сегодня?

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

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

1001-ый способ миграции на асинхронный Python

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

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

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

Читать ещё одну статью про GIL и asyncio
Всего голосов 15: ↑14 и ↓1+17
Комментарии13

Python: как переменные работают на самом деле? Погружаемся в байткод и C

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

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

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

Программирование — это вообще не просто!⠀

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


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


Идея статьи появилась, когда я начал повсюду замечать якобы подтверждения мифа, что «программирование — это просто»‬‬.


В новостях «восьмилетняя девочка, которая второй раз в жизни занимается программированием, наклепала чат-бота за 45 минут»‬ (ага, да!).


Курсы предлагают мне за 10 месяцев с нуля стать миддл+ (ага, да!).


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


Читать дальше →
Всего голосов 201: ↑191 и ↓10+217
Комментарии109

Pet-проекты и данные для Data-Engineer

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

При изучении дата‑инжиниринга часто возникает вопрос: «откуда брать данные?»

В данной статье вы узнаете про крутые инструменты, которые позволят вам создавать свои pet‑проекты c использованием разнообразных данных.

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

Как адаптировать терминальные отчёты pytest под свои интересы

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

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

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

Параметризованные тесты в Pytest: обзор с примерами

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

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

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

Цепи Маркова в Telegram-боте

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

Привет, меня зовут Александр и я жёсткая самоучка в области искусственного интеллекта (ИИ). 5 лет назад я задался целью создать сильный искусственный интеллект (СИИ).

Думаю, стоит начать с того, как я создал бота для Телеграма с цепями Маркова.

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

Полноценный API на Django REST Framework: легкая разработка, автодокументация и быстрый деплой

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

Сегодня мы погрузимся в процесс создания собственного API на Django с использованием мощного инструмента — Django REST Framework (DRF). Этот фреймворк предоставляет полный набор инструментов для разработки API: маршрутизация, сериализация данных, обработка запросов и формирование ответов. DRF значительно упрощает взаимодействие с клиентами через HTTP, поддерживая такие методы, как GET, POST, PUT и DELETE.

Однако, в отличие от FastAPI, Django REST Framework не включает встроенный инструмент для автодокументирования API. Мы легко решим эту задачу, воспользовавшись расширением drf‑spectacular, которое генерирует спецификации API в формате OpenAPI 3.0. Это позволит интегрировать интерфейсы, такие как Swagger и Redoc, для удобного тестирования и наглядной визуализации документации.

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

«Кото-физика»: объясняем термины квантовой физики на простых и забавных примерах

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

Решили составить для вас алфавит квантовых терминов. Чтобы было проще и веселее, добавили немного котиков. Приятного чтения!

А

Алгоритмы (квантовые)

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

Алгоритм Гровера

Допустим, вы ищете потерянный документ, который ваш коллега, торопясь уйти с работы пораньше, случайно засунул в папку из ста файлов. На классическом компьютере вам нужно просмотреть каждый файл, один за другим. Совсем не весело, согласитесь! С алгоритмом Гровера вы сможете обойтись всего лишь за √N проверок, то есть в вашем случае, вместо 100 проверок, вам нужно будет проверить лишь около 10 файлов.

Алгоритм Дойча

Представьте себе, что у вас в офисе есть два кота. Иногда вам нужно понять, кто из котов более активен - один кот может быть постоянно в действии (сбалансированный), а другой кот может быть ленивым и спокойным (константный). В классическом подходе вам придётся задавать каждому коту вопрос о его активности, чтобы выяснить отличия.

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

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

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

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq ScanBitmap Heap ScanIndex Scan и почему Index Only Scan бывает нехорош.

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

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

А/Б тестирование: множественная проверка гипотез

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

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

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

Мини-гайд по отправке сообщений из Google Таблицы или базы данных с Python

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

В этом материале расскажем, как автоматизировать отправку сообщений-уведомлений по данным из таблицы.

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

Kaggle Mercedes и кросс-валидация

Время на прочтение18 мин
Количество просмотров61K
image

Всем привет, в этом посте я расскажу о том, как мне удалось занять 11 место в конкурсе от компании Мерседес на kaggle, который можно охарактеризовать как лидера по количеству участников и по эпичности shake-up. Здесь можно ознакомиться с моим решением, там же ссылка на github, здесь можно посмотреть презентацию моего решения в Yandex.

В этом посте пойдет речь о том, как студент консерватории попал в data science, стал призером двух подряд kaggle-соревнований, и каким образом методы математической статистики помогают не переобучиться на публичный лидерборд.

Начну я с того, что немного расскажу о задаче и о том, почему я взялся ее решать. Должен сказать, что в data science я человек новый. Лет 7 назад я закончил Физический Факультет СПбГУ и с тех пор занимался тем, что получал музыкальное образование. Идея немного размять мозг и вернуться к техническим задачам впервые посетила меня примерно два года назад, на тот момент я уже работал в оркестре Московской Филармонии и учился на 3 курсе в Консерватории. Начал я с того, что вооружившись книгой Страуструпа стал осваивать C++. Далее были конечно же разные онлайн курсы и примерно год назад я стал склоняться к мысли о том, что Data Science — это пожалуй именно то, чем я хотел бы заниматься в IT. Мое “образование” в Data Science — это курс от Яндекса и Вышки на курсере, несколько курсов из специализации МФТИ на курсере и конечно же постоянное саморазвитие в соревнованиях.
Читать дальше →
Всего голосов 61: ↑58 и ↓3+55
Комментарии16

Зачем в iPhone чип, который убивает FaceID

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

Разбирался я в низкоуровневой работе камер iPhone, и дошёл до FaceID — системы распознавания лиц, используемой Apple для разблокировки смартфона. И наткнулся внутри на интересную вещь: чип, единственное предназначение которого в том, чтобы вывести из строя FaceID. Навсегда.

О том, как в iPhone вообще работает FaceID, где там этот чип стоит, что именно он делает, зачем его сделали таким злым, и как в ремонте справляются с этой напастью — под катом!

Читать далее
Всего голосов 630: ↑629 и ↓1+747
Комментарии177
1
23 ...

Информация

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