Pull to refresh
102
0
Антон Титов @Lachezis

CTO and Co-Founder at Spiral Scout

Send message

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

Reading time18 min
Views7.2K

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

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

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

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

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

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

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

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

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

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

Читать далее
Total votes 18: ↑18 and ↓0+19
Comments8

Kubeflow: учимся устанавливать и запускать Kubeflow на локальной машине

Reading time6 min
Views3.8K
Пошаговое руководство по установке и конфигурированию всех компонентов kubeflow на локальной машине.

image
Рис. 1. Взаимодействие Kubeflow и Kubernetes | рисунок автора |иконки от Eucalyp

Kubeflow [1] – это созданная Google опенсорсная платформа, на которой разворачивается весь жизненный цикл разрабатываемой модели машинного обучения. Kubeflow представляет собой инструментарий, каждый компонент которого применяется для отработки каждой из стадий жизненного цикла при машинном обучении, а именно: исследования данных, конструирования признаков, преобразования признаков, обучения модели, оценки модели, тонкой настройки модели, предоставления модели и версионирования модели. Главный атрибут kubeflow заключается в том, что он предназначен для работы на базе kubernetes [2]. Таким образом, kubeflow пользуется именно теми преимуществами, которые предоставляет кластер kubernetes, в частности, оркестрацией контейнеров и автомасштабированием.
Читать дальше →
Total votes 10: ↑9 and ↓1+13
Comments1

YOLOv7 пользовательское обнаружение объектов

Reading time20 min
Views21K

Статья по обучению YOLOv7 на своих данных, для обнаружения выбоин на дорогах

С момента своего создания семейство моделей обнаружения объектов YOLO прошло долгий путь. YOLOv7 является самым последним дополнением к этому знаменитому семейству детекторов объектов с одним выстрелом на основе привязки. Он поставляется с множеством улучшений, которые включают в себя самую современную точность и скорость. В этой статье мы проведем точную настройку модели обнаружения объектов YOLOv7 на основе реального набора данных для обнаружения выбоин.

Поехали
Total votes 7: ↑7 and ↓0+7
Comments9

DIY-одноплатник или OrangePi на минималках

Reading time14 min
Views19K

Некоторое время назад Arduino казалось какой-то непонятной магией когда только узнал про нее. Потом быстро перешел к самим микроконтроллерам. Позже, работая программистом микроконтроллеров, захотелось чего-то большего и я уже смотрел в сторону линукса и одноплатных компьютеров. В руки попал Raspberry Pi, но это готовый продукт с определенной периферией (не хочу HDMI, хочу RGB LCD) и некоторое время спустя я уже думал как сделать что-то подобное самому.

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

Stable Diffusion: Лучшая версия DALL-E 2 с открытым исходным кодом

Reading time6 min
Views12K

Созданная проектировщиками и инженерами из Stability AI, CompVis и LAION, "Stable Diffusion" отбирает право на обладание титулом новой современной модели преобразования текста в изображение с открытым исходным кодом у Craiyon, ранее известного как DALL-E-Mini.

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

Давайте углубимся в детали и узнаем, что Stable Diffusion припасла для научного сообщества.

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

Самодельный носимый рюкзачный компрессор на 600 атмосфер? Вызов принят

Reading time14 min
Views29K

А давайте-ка я расскажу вам, как мы построили несколько весьма интересных видов технических устройств, добились поразительных результатов, но потом забросили? Усаживайтесь поудобнее, мы начинаем:)

Читать дальше →
Total votes 109: ↑108 and ↓1+142
Comments51

Flutter for Desktop — новый подход к разработке приложений

Reading time11 min
Views26K

Язык программирования Dart был изначально разработан как перспективная замена JavaScript в веб-приложениях (с поддержкой асинхронности, потоков, классической поддержки ООП и возможностью использования строгой типизации), но, к сожалению, в этом качестве он так и не достиг значительных успехов. Однако в дальнейшем компилятор Dart был доработан для других целевых платформ и наибольшего успеха достиг в сочетании с фреймворком Flutter как инструмент разработки высокопроизводительных мобильных приложений, создаваемых на основе реактивной модели. Но нужно отметить, что наряду с возможностями компиляции в целевые платформы Android и iOS (а также, разумеется, Web), Dart также может использоваться для создания приложений для операционных систем Windows, Linux и MacOS, что в сочетании с возможностями фреймворка Flutter и оптимизированных платформенных реализаций Flutter Engine и Embedder, представило новый путь к созданию нативных приложений с графическим интерфейсом. В этой статье мы рассмотрим возможности и особенности реализации desktop-приложений на Flutter и разберемся с механизмами интеграции внешних библиотек.

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

15 Open Source библиотек для повышения качества данных

Reading time5 min
Views11K

Автор этого материала — программист и ML-инженер — собрала Open Source библиотеки Python, которые помогут вам сделать данные лучше, чтобы избежать траты времени и упростить анализ данных. Подборкой делимся к старту курса по анализу данных.

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

35 реальных рисков, убивающих data- и machine learning проекты

Reading time13 min
Views8.3K

Всем привет! Эта статья - обобщение моего опыта 30+ проектов, связанных с обработкой данных и машинным обучением. Здесь не будет теории про управление рисками и общего перечня проектных рисков. Я перечислил только наиболее частые “грабли” именно из data-специфики, с которыми приходилось сталкиваться за последние 7 лет. Надеюсь, что эта статья поможет менеджеру проекта или менеджеру продукта сохранить свой цвет волос, ценное время команды и удовлетворенность заказчиков. Риски я разделил на три группы:

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

Работа с временем в Google

Reading time2 min
Views53K

Высокоточный рубидиевый осциллятор PRS10

Компания Google решила отказаться от использования NTP (Network Time Protocol) и создала свою собственную систему проверки времени с GPS и атомными часами, более точную и надёжную. Её назвали TrueTime API. Система работает для обеспечения целостности крупнейшей в мире базы данных Google Spanner, распределённой по всему миру.
Читать дальше →
Total votes 68: ↑62 and ↓6+56
Comments31

Открытый проект индуктивного абсолютного энкодера

Reading time11 min
Views30K

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

Читать далее
Total votes 102: ↑101 and ↓1+125
Comments122

Открытый проект частотного преобразователя для управления электродвигателями

Reading time10 min
Views44K

Дефицит компонентов отразился не только на рынке потребительской электроники, но и на промышленной. Стали дефицитом в том числе и частотные преобразователи (ЧП). Может стоит сделать свой ЧП? Мы пробовали.

Вот что получилось
Total votes 60: ↑59 and ↓1+78
Comments80

Как перестать разговаривать с людьми и собрать свой первый синтезатор

Reading time12 min
Views21K

Жизнь в 2021 не стала легче. Ледники всё ещё тают, границы закрыты, биткоин дорожает, а просмотров у любого челленджа в Тиктоке больше чем у всех видео с канала NASA вместе взятых. Что делать технарю, чтобы почувствовать себя уютнее в постоянно меняющемся мире где в новостях пишут что Земля снова плоская, а коллеги у кулера всерьёз обсуждают программирование микроконтроллеров на JavaScript?

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

Читать далее
Total votes 28: ↑26 and ↓2+28
Comments16

Тёмный маршрутизатор из Raspberry Pi

Reading time3 min
Views24K

В данной статье я расскажу о том, как я сделал из Raspberry Pi маршрутизатор, способный перенаправлять отдельные сайты, отдельные подсети, да хоть все запросы через tor.

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments28

Blazor WebAssembly: соединительные линии в SVG

Reading time4 min
Views4K

Demo | GitHub

В статье описан способ реализации соединительных линий между SVG объектами. Соединительные линии автоматически перестраиваются при изменении положения объектов. Попутно рассмотрен метод OnParametersSet.

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

Анализ распределения временных интервалов между покупками на R

Reading time10 min
Views4.2K

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

Я представляю:

1. Код на R для анализа любых временных интервалов.

2. Подбор экспоненциального и степенного распределения под данные с помощью метода максимального правдоподобия (MLE). Для экспоненциального я использую fitdistr() из пакета MASS, а для степенного fit_power_law() из пакета igraph.

3. Проверку данных на соответствие подобранному распределению с помощью теста Колмогорова-Смирнова. Я использую функцию ks.test() из пакета stats.

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

Как развить в себе системные качества лидера

Reading time8 min
Views30K

Помните фразу «ему не дано быть лидером»? Но данность ли это? Уверена, что нет. Лидерские качества в себе можно развить, как и другие soft skills, а предрасположенность — харизма и прочие природные данные — всего лишь помогают в этом, но не являются определяющими. Как самостоятельно «прокачать» в себе лидерство и какие лидерские навыки особенно нужны разработчикам, которые хотят стать тимлидами?

Читать далее
Total votes 24: ↑21 and ↓3+22
Comments10

TinyPhoto: встраиваемая графика и экономичные вычисления

Reading time7 min
Views8.9K

TinyPhoto – это миниатюрный электронный фотоальбом с встраиваемой графикой, собранный с использованием микроконтроллера ATiny85 и OLED-дисплея 128х64px. Такой дуэт может обеспечить не менее 20 часов непрерывного показа изображений от «таблетки» на 3В и 225мАч.
Total votes 25: ↑23 and ↓2+35
Comments10

Парсим протобаф на скорости больше 2 Гб/с.: как я научился любить хвостовую рекурсию в C

Reading time10 min
Views12K


Отличную функцию недавно добавили в основную ветку компилятора Clang. С помощью атрибутов [[clang::musttail]] или __attribute__((musttail)) теперь можно получить гарантированные хвостовые (tail) вызовы в C, C++ и Objective-C.

int g(int);
int f(int x) {
    __attribute__((musttail)) return g(x);
}

(Онлайн-компилятор)
Читать дальше →
Total votes 25: ↑24 and ↓1+39
Comments12

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views65K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Total votes 205: ↑205 and ↓0+205
Comments229
1
23 ...

Information

Rating
Does not participate
Location
San Francisco, California, США
Registered
Activity