Pull to refresh
35
245
Send message

Пишем «Змейку» в 12 строк кода на PyTorch

Level of difficultyEasy
Reading time5 min
Views17K

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

Будем использовать PyTorch и NumPy. Можно было использовать даже какую-то одну из библиотек, но у PyTorch прекрасное Tensor API, а в NumPy есть хорошая функция под названием unravel_index, которую мы и будем использовать.

Читать далее
Total votes 24: ↑23 and ↓1+30
Comments26

Эмбеддинги для начинающих

Level of difficultyEasy
Reading time5 min
Views13K

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

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

В этой статье мы рассмотрим, что такое эмбеддинги и какие они бывают.

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

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

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

Читать далее
Total votes 20: ↑16 and ↓4+15
Comments3

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

Reading time42 min
Views38K

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

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

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

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

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

Читать далее
Total votes 181: ↑177 and ↓4+207
Comments21

PFGM++: буст генеративных моделей с применением электростатики

Level of difficultyMedium
Reading time9 min
Views3.3K

Новая ступень в развитии диффузионных генеративных моделей ИИ, и новая возможность создавать собственные изображения в 10 раз быстрее, чем раньше. Это стало реальным благодаря удачной попытке совместить знания об электростатике и принципу функционирования привычных нам диффузионных моделей. Так, исследователям из MIT CSAIL удалось воплотить в жизнь инновационную модель PFGM ++, которая по последним данным значительно превосходит своих предшественниц.

Какова физическая природа PFGM ++, и как ее использовать на практике – давайте разбираться далее вместе.

Приятного прочтения!

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

Обратная нормализация (денормализация)

Reading time7 min
Views5.8K

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

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

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

Читать далее
Total votes 23: ↑22 and ↓1+25
Comments4

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

Level of difficultyMedium
Reading time7 min
Views3.5K

Привет, Хабр! В новом выпуске собрал для вас полезные материалы, которые помогут лучше разобраться в темах ML, искусственного интеллекта и дата-аналитики. Вы узнаете, какие Ops-практики входят в систему MLOps, как выбрать СУБД для анализа данных и как построить платформу для DS/ML-разработчиков. Еще больше полезных материалов — в Telegram-сообществе «MLечный путь».
Читать дальше →
Total votes 21: ↑19 and ↓2+27
Comments1

Dropout и Batch normalization

Level of difficultyEasy
Reading time8 min
Views4.7K


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

Dropout и Batch Normalization очень хороши в оптимизации процесса обучения и борьбе с одной из основных проблем ml — переобучением.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments4

Toolchain в Go

Level of difficultyEasy
Reading time5 min
Views4.5K

Привет, коллеги! В Го toolchain (цепочка инструментов) это не просто buzzword, а реальная рабочая фича. Если вы провели немало времени, погружаясь в дебри кода и модулей, вы знаете, что каждая строчка и каждый пакет как и в любом япе имеют свое место и значение.

Цепочка инструментов или toolchain (тулчейн звучит покруче) используются для создания, тестирования, отладки и управления вашими Go-проектами.

Читать далее
Total votes 16: ↑9 and ↓7+5
Comments2

Shadow Dom в fullstack

Level of difficultyEasy
Reading time12 min
Views2.1K

Shadow DOM – это нечто вроде дополнения к обычному DOM, позволяющее инкапсулировать стили и разметку компонентов, скрывая их от основного дерева документа. Это механизм, который позволяет упаковать HTML-структуру, стили и скрипты в изолированные компоненты.

Shadow DOM обеспечивает инкапсуляцию — значит, CSS и JavaScript могут работать в рамках конкретного компонента, не влияя на остальную часть страницы. Это решает проблему "глобальной области видимости", с которой сталкиваются многие разработчики, и позволяет создавать более предсказуемые и устойчивые веб-приложения.

Читать далее
Total votes 8: ↑5 and ↓3+4
Comments1

Рекомендации по ведению SQL-кода

Level of difficultyEasy
Reading time8 min
Views20K
В этом материале разберем общие рекомендации по ведению SQL-кода на примере СУБД MS SQL (T-SQL). Однако, многие пункты можно также применить и к другим СУБД.
Читать дальше →
Total votes 35: ↑31 and ↓4+47
Comments382

Nota, Typst и Evidence. Языки программирования для генерации документов

Level of difficultyEasy
Reading time6 min
Views8.2K


Все настолько привыкли к Markdown, что считают его неким стандартом для оформления документов в вебе. Но это не конечная истина, высеченная на камне, а просто популярный язык разметки, как HTML и TeX.

В то же время появляется всё больше новых языков, которые позиционируют себя как замену, альтернативу или дополнение к Markdown и TeX. В некоторых случаях они включают функции программирования, то есть позволяют добавить в документ исполняемый код. Веб-редакторы нового поколения можно использовать даже вместо Google Docs.
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments4

Коротко про платежи через ботов в Telegram

Level of difficultyEasy
Reading time7 min
Views16K

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

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

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

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

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

Это база: нюансы работы с Redis. Часть 1

Level of difficultyMedium
Reading time15 min
Views35K

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

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

Какую библиотеку на Python выбрать для создания телеграм-бота?

Reading time12 min
Views44K

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

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

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

Этот обзор поможет вам сохранить время и ресурсы, а также создать более надежный и эффективный телеграм-бот на Python.

Читать далее
Total votes 19: ↑9 and ↓10+1
Comments12

Работа с временными рядами в Python. Часть 2

Level of difficultyEasy
Reading time10 min
Views9K


Добро пожаловать во вторую часть нашей серии статей "Работа с временными рядами в Python." В первой части, мы ознакомились с основами работы с временными рядами и научились анализировать и визуализировать их. Теперь мы переходим к более продвинутым аспектам этой увлекательной темы.
Читать дальше →
Total votes 19: ↑17 and ↓2+21
Comments3

Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений

Level of difficultyEasy
Reading time10 min
Views16K

Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать выражение вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)

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

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

Работа с временными рядами в Python. Часть 1

Level of difficultyEasy
Reading time13 min
Views22K


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

Временные ряды — это наборы данных, где каждая точка данных связана с определенным моментом времени. Это может быть что угодно, от ежедневных финансовых показателей до ежечасных кликов на веб-сайте или даже месячных показателей погоды. Зачем нам это нужно? Потому что временные ряды предоставляют нам ценную информацию о том, как меняются данные со временем.
Читать дальше →
Total votes 22: ↑20 and ↓2+21
Comments2

Как я упростил свою работу тестировщика

Level of difficultyEasy
Reading time7 min
Views12K


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

Так, сначала я решил поискать готовые решения, которые могли бы облегчить мне работу. После нескольких часов поиска, который не дал особого результата, мне пришла идея: почему бы самому не создать такое приложение? После этого я пошел искать библиотеку, которая позволила бы мне реализовать задуманное и здесь время потраченное на поиск окупило себя: я нашел библиотеку keyboard — в первое время мне не требовалась графическая оболочка, достаточно было того, что оно запускается прямо из VSCode.
Читать дальше →
Total votes 18: ↑17 and ↓1+19
Comments6

Как выбрать свое направление в аналитике?

Level of difficultyEasy
Reading time18 min
Views5.3K

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

Читать далее
Total votes 14: ↑10 and ↓4+7
Comments6

Сам написал, сам погонял: как я написал 3D-гонки «на жигулях» за неделю, полностью с нуля?

Level of difficultyMedium
Reading time28 min
Views35K
image

Статьи про инди-разработку игр — это всегда интересно и занимательно. Но статьи про разработку игр с нуля, без каких-либо игровых движков — ещё интереснее! У меня есть небольшой фетиш, заключающийся в разработке минимально играбельных 3D-демок, которые нормально работали бы даже на железе 20-летней давности. Полтора года назад, в мае 2022 года, я написал демку гоночной игры с очень знакомым всем нам сеттингом — жигули, девятки, десятки, и всё это даже с тюнингом! В этой статье я расскажу вам о разработке 3D-игр практически с нуля: рендерер, менеджер ресурсов, загрузка уровней и граф сцены, 3D-звук, ввод и интеграция физического движка. Интересна подробнейшая хаброторная статья о разработке игры с нуля? Тогда добро пожаловать!
Читать дальше →
Total votes 157: ↑157 and ↓0+157
Comments55

Information

Rating
7-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Data Engineer
Middle
From 300,000 ₽
SQL
Python
Database
English
PostgreSQL
Git