Как стать автором
Обновить
7
2.6

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

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

Неувядающая классика или «чёрный ящик»: кто кого в битве за прогноз. Глава первая

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

После перерыва продолжаю цикл статей про одно из самых интересных направлений в статистике и науке о данных — прогнозировании временных рядов (или рядов динамики, как их первоначально называли в учебниках по эконометрике). Эта работа будет не в стиле перевода с моими комментариями, а полноценное исследование на тему эффективности прогнозных моделей: мы с вами разработаем и сравним две модели прогнозирования временных рядов — традиционную статистическую модель — реализацию модели ARIMA с сезонной компонентой и экзогенными переменными под названием SARIMAX и рекуррентную модель глубокого обучения на основе слоя LSTM. Выясним, какая их них наиболее эффективно справится с климатическими данными, которые подготовил для своей книги Франсуа Шолле «Глубокое обучение с Keras», второе издание которой вышло в 2023 году. Второе издание значительно переработано в ногу со временем, и я настоятельно рекомендую изучить эту книгу как начинающим аналитикам данных, так и бывалым представителям науки о данных с багажом знаний о временных рядах.

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

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

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

Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

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

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

Когда SQL-запрос становится немного сложнее: SELECT * FROM table, у нас появляется огромная вариативность его исполнения внутри системы — и не всегда понятно, какой из возможных вариантов эффективнее как по памяти, так и по скорости. Чтобы сократить огромное количество вариантов до приемлемого, обычно используются так называемые эвристики — эмпирические правила, которые придуманы человеком для сокращения пространства поиска на несколько порядков. Понятное дело, эти правила могут отсечь и сам оптимальный план выполнения запроса, но позволяют получить хоть что-то приемлемое за адекватное время.

В последние годы в связи с активным развитием ML начали развиваться и нейронные оптимизаторы запросов —особенность которых в том, что они самостоятельно, без участия человека, находят необходимые закономерности в выполнении сложных планов исходя из обучения на огромном количестве данных. Тенденция началась приблизительно в 2017 году и продолжается до сих пор. Давайте посмотрим, что уже появилось в этой области в хронологическом порядке и какие перспективы нас ждут.

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

Нейросети для генерации изображений: обзор популярных сервисов

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

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

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

Приятного прочтения (:

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

Как развивалась технология экстремального сжатия LLM: от QuIP до AQLM с PV-tuning

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

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

Модели выкладываются в формате float16, где на один вес выделяется 16 бит. Два года назад человечество научилось хорошо сжимать нейросети до 4 бит с помощью таких методов, как GPTQ. Но на этом исследователи не остановились, и сейчас актуальная задача — сжатие моделей до 2 бит, то есть в 8 раз. 

Недавно исследователи Yandex Research совместно с коллегами из IST Austria и KAUST предложили новый способ сжатия моделей в 8 раз с помощью комбинации методов AQLM и PV-tuning, который уже доступен разработчикам и исследователям по всему миру — код опубликован в репозитории GitHub. Специалисты также могут скачать сжатые с помощью наших методов популярные опенсорс-модели. Кроме того, мы выложили обучающие материалы, которые помогут разработчикам дообучить уменьшенные нейросети под свои сценарии.

О том, как исследователи пришли к сегодняшним результатам, мы расскажем на примере двух «конкурирующих» команд и их state-of-the-art алгоритмов сжатия — QuIP и AQLM. Это короткая, но увлекательная история «противостояния» исследователей, в которой каждые пару месяцев случаются новые повороты, появляются оптимизации и оригинальные подходы к решению проблем.

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

17 продвинутых RAG-техник: как превратить прототип LLM-приложения в готовое решение

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

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

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

Как метко подметил Мэтт Тёрк: если в 2023 году мы боялись, что GenAI нас погубит, то в 2024-м мечтаем хоть как-то приручить его и запустить в "мелкосерийное производство".

Если вы уже успели создать свои первые LLM-приложения и готовы вывести их на новый уровень, эта статья для вас. Мы рассмотрим 17 продвинутых RAG-техник, которые помогут избежать типичных ошибок и превратить ваш прототип в мощное и стабильное решение.

Пристегните ремни, мы отправляемся в увлекательное путешествие по миру AGI! Вместе мы:

Поймем, как система отличает ценную информацию от информационного шума;

Разберемся, как правильно подготовить данные для LLM;

Выясним, можно ли строить цепочки из нескольких LLM;

Поймем, как направлять запросы через разные компоненты системы.

Приятного прочтения(:

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

Подборка ресурсов для начинающих дизайнеров интерфейсов

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

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

Я — Анна, продуктовый дизайнер в компании Ozon, занимаюсь проектированием интерфейсов сайта и приложения компании, также являюсь ревьюером курсов «Дизайнер интерфейсов» и «Веб-дизайнер». Когда я начинаю работать над продуктом, я обращаюсь к разным ресурсам, ссылками на которые поделюсь в этой статье.

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

Архитектура RAG: полный гайд

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

Если, открывая холодильник вы еще не слышали из него про RAG, то наверняка скоро услышите. Однако, в сети на удивление мало полных гайдов, учитывающих все тонкости (оценка релевантности, борьба с галлюцинациями и т.д.) а не обрывочных кусков. Базируясь на опыте нашей работы, я составил гайд который покрывает эту тему наиболее полно.

Итак зачем нужен RAG?

Читать далее
Всего голосов 27: ↑26 и ↓1+28
Комментарии11

За границей Hello World: полный гайд по разработке Telegram ботов с помощью Python и Aiogram 3. Часть 1

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

Нетипичный туториал по разработке Telegram-бота на Python и Aiogram 3. В отличие от большинства гайдов и туториалов про разработку ботов «для новичков», здесь будут рассмотрены все аспекты создания бота, от установки редактора кода до подключения оплаты и развёртывания на сервере. В первой части мы рассмотрим подготовку окружения, файловую структуру бота и напишем первый рабочий код бота.

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

Он победил LLM RAG: реализуем BM25+ с самых азов

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

Привет, меня зовут Борис. Я автор телеграм канала Борис опять. Периодически мне на глаза попадается что-то интересное и я глубоко в этом закапываюсь. В данном случае это алгоритм поиска BM25+, который победил продвинутые методы векторного поиска на LLM.

Разберемся, что это за зверь и почему он так хорошо работает. В этой статье мы реализуем его на Python с нуля. Начнем с самого простого поиска, перейдем к TF-IDF, а затем выведем из него BM25+.

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

Код доступен в Google Collab.

Читать далее
Всего голосов 33: ↑32 и ↓1+39
Комментарии13

Что такое векторизация текста в NLP и какая она бывает: One-hot encoding, Bag of words, TF-IDF, Word2Vec, BERT и другие

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

Привет, Хабр! Меня зовут Александр Троицкий, я автор канала AI для чайников, и в этой статье я расскажу про разные способы векторизации текстов.

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

О чем эта статья:

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

Справочник по применению GPU в машинном обучении

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

Это перевод популярного лонгрида Тима Детмерса "Выбор графического процессора для глубокого обучения: мой опыт и советы".

Глубокое обучение (Deep learning, DL) - область с высокими вычислительными требованиями, и выбор графического процессора будет в корне определять ваши возможности в этой сфере. Какие характеристики важны при выборе нового GPU? Оперативная память GPU, ядра, тензорные ядра, кэш? Как сделать экономически эффективный выбор? Мы рассмотрим эти вопросы, заодно разберемся с распространенными заблуждениями, разберемся в характеристиках GPU, дадим советы, которые помогут вам сделать правильный выбор.

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

Что такое дрифт ML-моделей и как его мониторить?

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

Даже при наличии качественных входных данных качество предсказаний ML-модели со временем ухудшается. Под катом рассмотрим, как команда Neoflex с помощью мониторинга обнаруживает изменения вовремя и поделимся подборкой open source-библиотек для определения дрифта данных.

Теперь клиенты Selectel могут оптимизировать управление DS/ML-моделями с помощью MLOps-платформы Neoflex Dognauts. Она обеспечивает автоматизацию полного цикла разработки и эксплуатации моделей машинного обучения.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+46
Комментарии2

Мега-Учебник Flask, Часть XVII: Развертывание под Linux

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

(издание 2018)


Miguel Grinberg




Туда Сюда


Это семнадцатая часть серии Мега-учебников Flask, в которой я собираюсь развернуть микроблог на сервере Linux.

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

Азы больших языковых моделей и трансформеров: декодер

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

В этом материале мы поговорим об устройстве компонента‑декодера в системах машинного обучения, построенных по архитектуре «трансформер», уделив особое внимание отличию декодера от энкодера. Уникальной особенностью декодеров является то, что они похожи на циклы. Они, по своей природе, итеративны, что контрастирует с линейными принципами обработки данных, на которых основаны энкодеры. В центре декодера находятся две модифицированные формы механизма внимания: механизм множественного внимания с маскировкой (masked multi‑head attention) и механизм множественного внимания энкодера‑декодера (encoder‑decoder multi‑head attention).

Слой множественного внимания с маскировкой в декодере обеспечивает последовательную обработку токенов. Благодаря такому подходу предотвращается воздействие последующих токенов на сгенерированные токены. Маскировка важна для поддержки порядка следования и согласованности сгенерированных данных. Взаимодействие между выходом декодера (из слоя множественного внимания с маскировкой) и выходом энкодера организовано с помощью механизма множественного внимания энкодера‑декодера. Этот последний шаг даёт декодеру доступ к входным данным.

Мы, кроме того, продемонстрируем реализацию этих концепций с использованием Python и NumPy. Мы создали простой пример перевода предложения с английского языка на португальский. Практическая демонстрация обсуждаемых здесь идей поможет проиллюстрировать работу внутренних механизмов декодера в трансформерах и позволит лучше понять роль декодеров в больших языковых моделях (Large Language Model, LLM).

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

Руководство по веб-скрейпингу на Python

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

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

Вы получите навыки для скрейпинга сложных сайтов и решения проблем, которые касаются ограничений частоты запросов, блокировок и генерируемых при помощи JavaScript страниц.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+55
Комментарии18

Как писать более чистый CSS: дюжина советов от банальных до неочевидных

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

Если CSS для вас все еще боль и страдания, добро пожаловать под кат. Мы наткнулись на интересную подборку советов по CSS на английском языке и решили перевести ее, дополнив собственными примерами с кодом.

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

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

Начало работы с Axum — самым популярным веб-фреймворком Rust

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


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

Читать дальше →
Всего голосов 25: ↑22 и ↓3+25
Комментарии9

Двуязычный словарь от ChatGPT за 7 (нет) простых шагов

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

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

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

api2app — быстрое создание графического интерфейса для API

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

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

При помощи api2app можно быстро создать графический интерфейс для API. Его можно использовать для тестирования или демонстрации работы вашего API. Созданным приложением можно поделиться со всеми желающими или использовать по приватной ссылке.

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

Годовой дайджест по аналитике и ML за 2023

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

Привет, Хабр! Я Стас, занимаюсь развитием аналитических и ML-продуктов в Selectel. В новом мегадайджесте мы с командой собрали для вас свои лучшие материалы по итогам 2023 года. Читайте и сохраняйте в закладки: пригодится всем, кто хочет быть в курсе новостей и актуальных технологий из мира AI, ML и дата-аналитики.

Под катом — ежемесячные дайджесты, которые вы могли пропустить, экспертные статьи по совместному использованию GPU, кэшированию датасетов и бэкапированию данных в Kubernetes, а также записи докладов с наших мероприятий.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии0
1

Информация

В рейтинге
1 286-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность