Pull to refresh
17
0.2
Send message

Паркет устарел. Пора менять

Level of difficultyMedium
Reading time12 min
Views48K

Паркет устарел. Пора менять

В этой статье речь пойдет не о напольных покрытиях, а о програмном продукте, более современном конкуренте Apache Parquet, продукте который изначально в 2014 году был разработан компанией Huawei как закрытое и проприетарное ПО, но в 2016 году был преобразован в открытый код и передан в управление Apache Software Foundation, где сейчас поддерживается и разрабатывается open-source сообществом. Речь идет о Apache CarbonData.

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

Прощайте, базы данных, да здравствуют векторные базы данных

Level of difficultyEasy
Reading time11 min
Views65K

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

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

Читать далее
Total votes 53: ↑51 and ↓2+49
Comments55

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

Level of difficultyHard
Reading time13 min
Views8.7K

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

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

Читать далее
Total votes 30: ↑29 and ↓1+28
Comments9

Как мы не выбрали Airbyte, или почему собирать данные лучше по старинке

Level of difficultyMedium
Reading time7 min
Views3.7K

Привет, Хабр! Меня зовут Илья, я работаю инженером данных в компании Selectel. В отделе BI мы собираем информацию из внутренних и внешних источников и предоставляем аналитикам.

У нас достаточно большой набор внешних ресурсов, данные из которых нужно собирать и обрабатывать. Среди них — различные SMM-площадки вроде VK и Telegram, платформы лидогенерации, инструменты таргетированной рассылки писем, системы автоматизации и многое-многое другое.

Так как компания развивается, мы спрогнозировали, что число источников тоже будет только расти. И назрела мысль, что нам нужно подобрать специализированное ПО, которое будет отвечать за доставку данных из внешних ресурсов в DWH. Время прошло, идея воплощена: мы используем Airflow и самописные коннекторы на Python. Но могло сложиться все иначе — и мы бы использовали Airbyte, если бы не одно но…
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments5

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

Reading time42 min
Views37K

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

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

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

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

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

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

Краткий обзор методик обучения визуально-языковых (мультимодальных) моделей

Level of difficultyMedium
Reading time12 min
Views1.9K

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

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

Четыре года с умным домом: личный опыт и интересные сценарии

Reading time22 min
Views39K

Меня зовут Виктор, я backend-разработчик в финансовом маркетплейсе Банки.ру.

Последние годы я интересуюсь темой умного дома. Хочу поделиться тем, с чего я начинал и к чему пришел. Эта статья будет полезна тем, кто: хочет понять как устроен self-hosted умный дом; хочет перенять опыт и избежать чужих ошибок; уже имеет умный дом и интересуется прикладными сценариями.

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

Публикация локального сервера из дома в интернет

Level of difficultyEasy
Reading time10 min
Views38K

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

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Total votes 66: ↑64 and ↓2+62
Comments95

Как дообучать огромные модели с максимальным качеством и минимальными затратами? LoRA

Level of difficultyMedium
Reading time8 min
Views3.3K

paper link

hf implementation

Для ответа на вопрос в заголовке - погрузимся в статью.

Саммари статьи:

Обычно LLM-ку предобучают на огромном корпусе, потом адаптируют на down-stream tasks. Если LLM-ка была большая, то мы не всегда можем в full fine-tuning. Авторы статьи предлагают Low-Rank Adaptation (LoRA), который замораживает предобученные веса модели и встраивает "rank decomposition matrices" в каждый слой трансформера, очень сильно понижая кол-во обучаемых параметров для downstream tasks.

Compared to GPT-3 175B fine‑tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on‑par or better than finetuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency.

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

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

Inference latency (paper 1 - Parameter-Efficient Transfer Learning for NLP).

Reduced model's usable sequence length (paper 2 - Prefix-Tuning: Optimizing Continuous Prompts for Generation).

Часто не достигают бейзлайнов, если сравнивать с "классическим" fine-tuning'ом

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments0

Зеркалирование топиков Kafka по-бруклински

Level of difficultyHard
Reading time22 min
Views5.2K

Буквально на секунду представьте, что у вас есть парочка здоровенных кластеров Apache Kafka, каждый из которых держит по нескольку миллионов rps. И тут вас попросили зеркалировать топик из одного кластера в другой. Максимально близко к реалтайму, да ещё и с некоторыми специфическими условиями. Если стало страшно, интересно или страшно интересно, то это статья для вас.

Под катом я расскажу, что такое зеркалирование и зачем оно нужно. Как нам перестало хватать Mirror Maker’а. Поговорим о возможных решениях и выборе между ними. И дам подробную инструкцию, как вам развернуть такое решение у себя.

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

Как узнать больше об Apache Kafka: от базовых настроек до архитектуры сервисов

Level of difficultyEasy
Reading time3 min
Views7.6K

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

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

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

Искусство ETL. Пишем собственный движок SQL на Spark [часть 3 из 5]

Level of difficultyHard
Reading time20 min
Views1.6K

04_assets_residents.tdl


В данной серии статей я подробно рассказываю о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

Краткое содержание предыдущей серии, последней, посвящённой проектированию спецификации языка:
Операторы жизненного цикла наборов данных (продолжение)
Операторы контроля потока выполнения
Операторы управления контекстом исполнения
Операторы выражений


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


Предупреждение о рейтинге «M for Mature»

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

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

HOMEd: A почему «d»? Чтобы никто не догадался

Reading time5 min
Views10K

Это случилось обычным воскресным вечером, лет 15 назад. Завтра - понедельник, на работу, значит пора ложиться спать. По всей квартире горит свет, надо идти выключать, но лень! Хочу чтобы одной кнопкой все выключалось! Знакомая ситуация, не правда ли?

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

Читать далее
Total votes 35: ↑34 and ↓1+33
Comments40

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficultyMedium
Reading time30 min
Views22K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы". Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров предмета. В этой статье мы поговорим о том как этого удается добиться, как работает автофокус и пленоптические камеры и о многих других интересных вещах

Так как же работает объектив?
Total votes 162: ↑161 and ↓1+160
Comments38

Как сделать контекстное окно на 100K в большой языковой модели: обо всех фокусах в одном посте

Reading time17 min
Views6.9K

От переводчика: выражаю огромную искреннюю благодарность Дмитрию Малову @malovdmitrijза консультации по ходу этого перевода, помощь в подборе формулировок, пояснение рисунков и незаменимую человеческую поддержку.

tldr; в статье рассмотрены приёмы, позволяющие ускорить обучение больших языковых моделей (LLM) и нарастить в них логический вывод. Для этого нужно использовать большое контекстное окно, в котором умещается до 100K входных токенов. Вот эти приёмы: ALiBi с подмешиванием в вектор позиции слова в последовательности (positional embedding), разреженное внимание (Sparse Attention), мгновенное внимание (Flash Attention),  многозапросное внимание, условные вычисления и GPU A100 на 80 ГБ.  

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

Большие языковые модели: вносим порядок в семейный балаган

Reading time21 min
Views7.2K

Часто в прикладных задачах NLU при создании эмбеддингов приходится использовать уже обученные модели. Но что если вы работаете со специфичными или нестандартными текстами? Какие модели для создания эмбеддингов выбрать и где их взять, а может быть лучше обучить их на своих данных? О том, какую модель из растущего семейства больших языковых моделей выбрать, как их обучать, а также немного о кейсах применения нашумевшей ChatGPT разбираемся в блоге ЛАНИТ под катом. 

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

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficultyMedium
Reading time19 min
Views75K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

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

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

Level of difficultyMedium
Reading time11 min
Views46K

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

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

Безопасность и контроль: Как GPT-агенты на основе узлов преодолевают ограничения AutoGPT

Level of difficultyMedium
Reading time3 min
Views2.9K

Как далеко на самом деле ушли GPT-агенты, такие как AutoGPT, AgentGPT и GodMode, в автоматизации повседневных задач? Стоит ли ожидать от них высокой эффективности, или их возможности ограничены? И как насчет безопасности: разве не становятся они угрозой, получая полную автономию? Давайте рассмотрим потенциальную альтернативу существующим GPT-агентам, которая позволить минимизировать риски, связанные с использованием GPT-агентов, и при этом потенциально более эффективно решать конкретные задачи.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments3

Введение в диффузионные модели для генерации изображений – полное руководство

Reading time22 min
Views28K

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

Читать далее
Total votes 34: ↑31 and ↓3+28
Comments1
1
23 ...

Information

Rating
2,180-th
Location
Paris, Paris, Франция
Date of birth
Registered
Activity