Pull to refresh
27
0
Send message

Новые паттерны при выводе GenAI-продуктов в продакшн (часть 1)

Reading time19 min
Views2.2K

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

Главное — научиться держать под контролем их непредсказуемость. Тут на сцену выходят evals — тесты, которые проверяют, укладывается ли поведение модели в допустимые рамки.

Сами по себе большие языковые модели (LLM) — как энциклопедия без интернета: знают много, но только то, чему их однажды научили. Чтобы вытащить их за пределы обучающей выборки, их усиливают. Чаще всего — через Retrieval-Augmented Generation (RAG), где модель подхватывает свежую информацию из внешней базы. Правда, даже у базового RAG хватает слабых мест, и чтобы его раскочегарить, приходится применять дополнительные паттерны. Когда и этого не хватает — в ход идёт тонкая настройка (fine-tuning).

Перевод генеративных ИИ-продуктов из состояния PoC в боевые системы оказался куда сложнее, чем ожидалось. И дело не только в технологиях — корень многих проблем в том, что команды мыслят слишком по-старому. Они воспринимают GenAI как надстройку над привычными транзакционными или аналитическими системами. На практике же всё иначе: здесь свои баги, свои грабли и свои демоны. ИИ галлюцинирует, лезет туда, куда не просили, и вечно отвечает чуть-чуть не так. А ещё он непредсказуем — от слова совсем.

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

Читать далее

Визуальное представление структуры btree индекса PostgreSQL

Level of difficultyMedium
Reading time17 min
Views9.7K

В статье визуализируется структура индекса и показывается, как меняется структура индекса типа btree в PostgreSQL. Это полезно для понимания, как выглядят индексы btree. Также рассматривается FILLFACTOR и пример исследования структуры индекса в целях определения, как перераспределяются индексные записи при включении в структуру индекса новых блоков (страниц). Создадим простую таблицу, индекс, вставим три строки:

Читать далее

История ИИ на пальцах — от перцептрона до GPT-4o

Level of difficultyEasy
Reading time18 min
Views9.4K

История развития области искусственного интеллекта - невероятно захватывающая тема. Как из первых, довольно робких идей, которые часто подвергались критике, выросли технологии, меняющие наш мир прямо сейчас? Об этом пути – от почти механических предков ИИ до современных моделей вроде ChatGPT/Claude/Gemini/Grok и других, способных вести осмысленный диалог – я и хочу рассказать.

Это не будет скушняцкий научный трактат, изложение фактов или лекция, а скорее взгляд со стороны человека, которому самому это все супер интересно - взгляд на ключевые вехи, прорывы и интересные моменты этой удивительной истории. Я собираюсь не просто пройтись по истории, но и на пальцах объяснить (вот как сам разобрался - так и расскажу) - как оно все работало. Возможно, без огромной технической глубины - зато интересно и с понятными примерами. Мы с вами получим представление о том, как оно было – от допотопного перцептрона до последних современных моделей-трансформеров. Посмотрим, как это работало, удивимся прорывам и попробуем заглянуть – что там за горизонтом (хотя, конечно, с AI-2027 мне тягаться бесполезно).

Поехали!

Читать далее

Сиквел и приквел: занимательная археология

Reading time20 min
Views2.1K

Предлагаю вашему вниманию немного дополненный доклад, который я делал на конференции PGConf.СПб 2024. В нем я рассказываю о том, как появились первые реляционные системы, как возник и всех победил язык SQL.

Погрузиться в историю

Kubernetes для всех: поймет даже гуманитарий

Level of difficultyEasy
Reading time14 min
Views38K

Привет новичкам в Kubernetes и тем, кто не знаком с этой технологией!

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

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

Мы решили сравнить платформу оркестрации кластеров Kubernetes с любой крупной компанией, взяв за пример «Штурвал». Что из этого вышло — читайте под катом.

Читать далее

Neo4j. Графовая СУБД для RAG и не только

Level of difficultyEasy
Reading time10 min
Views4.2K

Графовые СУБД, пожалуй, одни из самых специализированных хранилищ, существующих на корпоративном рынке. Neo4j при этом яркий представитель этой категории.

C Neo4j я познакомился ещё в далеком 2018-м году, в рамках задачи создания более приятной системы корпоративных знаний чем классические Wiki (некий такой корпоративный Obsidian), ну или основные его части. Это сейчас вы можете радоваться всем благам цивилизации, а в то далёкое время нам надо было очень внимательно относиться к структуре корпоративной базы знаний, т.к. даже поисковые алгоритмы часто оставляли желатель лучшего. Никакого вам ранжирования статей в выдаче по просмотрам и времени создания.

Но в целом с точки зрения базы знаний даже текущие варианты Wiki с ранжированием статей, отображением связанных, последних просмотренных, которые смотрят вместе и т.п. всё равно не решает вопрос оперативного поиска информации. А вот граф - уже другая история. Использовали Obsidian? Понравилось представление информации связанных заметок? Особенно если качественно проставлять связи. Собственно именно таким образом мы обычно и оперируем информацией. Табличная модель конечно удобна, но несколько более синтетическая история, которую придумали чтобы упростить себе жизнь, потому как оперировать графами технически всё-таки более сложная история.

Читать далее

Я устал возиться с кучей VPN и поставил Xray на роутер

Level of difficultyMedium
Reading time5 min
Views139K

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

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

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

Читать далее

Вам бы сервер проведать

Reading time13 min
Views13K

Для начинающего админа (или программиста, пошагово повторяющего по гайду известного ютубера покупку VPS на известном провайдере таких услуг) настройка Linux‑сервера может показаться чёрным колдунством или тарабарщиной в чистом виде. «Работает же.... как‑то...». А всё совсем не так просто как бы того хотелось....

В недавнем исследовании «Tunneling into the Unknown» отмечено, что из 4 000 протестированных туннелей 3 211 (80,3%) предоставляют доступ по SSH на стандартном порту 22, причём с возможностью входа под root и без элементарных ограничений.

Читать далее

Как я запускаю 15+ самых разных ИИ на своей машине — open-source, self-hosted, с HTTP-доступом

Level of difficultyMedium
Reading time16 min
Views28K

Я написал BrainBox — local-first сервис поддержки open-source ИИ-систем для генерации изображений, распознавания объектов на снимках, озвучки, распознавания текстов, транскрибирования аудиозаписей и других целей. Эти системы запускаются за фасадом веб-сервера, который устанавливает их и затем принимает и выполняет задачи в едином для всех систем формате. Задачи можно ставить из любого языка программирования с помощью отправки веб-запросов на сервер, а для Python дополнительно разработан удобный API. Проект доступен на pypi https://pypi.org/project/kaia-brainbox/ с подробной документацией и инструкцией на английском языке. Я надеюсь, что BrainBox поможет тем, кто хочет сделать небольшой проект с использованием ИИ, но не хочет разбираться в питоне и торче, или просто не знает, с чего начать.

Читать далее

Уже через год мы будем общаться с базами данных по-русски

Level of difficultyEasy
Reading time4 min
Views26K

По прогнозу Gartner, запросы на естественном языке вытеснят SQL уже в 2026 году. Возможно, прогноз Gartner чересчур оптимистичный, но если они и ошибаются, то только в сроках — сам переход на естественный язык в работе с БД неизбежен.

Читать далее

SQL и нейросети: изучаем логику моделей через анализ и визуализацию весов

Level of difficultyEasy
Reading time27 min
Views4.1K

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

В статье разберём, как хранить и извлекать веса, вычислять ключевые метрики и строить графики.

Читать далее

5 бесплатных программ для масштабирования видео как альтернатива платному Topaz Video AI

Level of difficultyEasy
Reading time13 min
Views7.5K

Хочешь увеличить качество видео, но ценник у Topaz Video AI вызывает сердечный приступ? Спокойно! Сегодня разберём 5 БЕСПЛАТНЫХ программ, которые помогут улучшить твои видео. И да, результат может удивить! Дочитай до конца, потому что в конце я покажу таблицу, какая из них даёт лучший результат (на примере масштабирования исходного видео в разрешении FullHD 1080х1920 30fps до 4к 30fps). Поехали!

(Сразу хотел бы предупредить - статья длинная, в Word при шрифте = 12 она заняла 28 страниц).

Примечание 1.

В рамках статьи «Бесплатный, но с закрытым исходным кодом» и «Бесплатный и при этом OpenSource» равны между собой — конечному пользователю в большинстве своём всё равно закрытый код или нет — главное, что он может свободно использовать те функции какие ему нужны.

Примечание 2.

В рамках статьи: Python = Питон, Visual Studio Code = VSCode, Нейросеть = ИИ = AI.

Примечание 3.

В рамках данной статьи считается, что вы не умеете работать: с кодом, GitHub-ом и прочее. Поэтому все действия будут объяснены детально.

Читать далее

Парсинг с помощью LLM: зачем, как и сколько стоит?

Level of difficultyMedium
Reading time13 min
Views18K

Во всю идет 2025 год, и нейросети перестают быть чем‑то фантастическим. Они уже повсюду в нашей жизни: от умных колонок в квартирах до сложнейших систем, управляющих логистикой и финансами. Вместе с ними стремительно меняется подход к работе с данными. В этой статье мы поговорим о том, как современные LLM помогают автоматизировать сбор данных с веб‑сайтов и сводят к минимуму рутинную настройку и «подкручивание» парсеров.

Что еще вы найдете в этой статье?

Читать далее

SQL vs Excel: когда таблицы уже не справляются

Reading time8 min
Views11K

Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется. 

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

Читать далее

Делаем жизнь легче: быстрый поиск в django и postgresql с помощью search_vector

Level of difficultyMedium
Reading time28 min
Views5.3K

Привет, меня зовут Таня и я backend-разработчик в ИдаПроджект

Сегодня хочу рассказать о полнотекстовом поиске — как это все работает в django, а как в postgres, и откуда вообще взялось. 

Современные компании ежедневно сталкиваются с разной текстовой информацией. Эффективный поиск не только ускоряет доступ к нужным данным, но и повышает продуктивность, снижает затраты и открывает новые возможности для анализа и принятия решений. 

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

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

Читать далее

Автоматизация загородного дома: хочу, чтобы всё

Level of difficultyEasy
Reading time24 min
Views26K

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

Заказчик подошёл к строительству основательно и со вкусом, а также решил сделать дом максимально умным. Расскажем, что получилось в итоге.

Читать далее

Настройка PostgreSQL для LLM

Level of difficultyMedium
Reading time4 min
Views5K

Итак, в этой статье я расскажу, как эффективно настроить PostgreSQL, чтобы вам было проще работать с большими языковыми моделями.

Пока звучит странно, не правда ли? Что я имею в виду? Я имею в виду повышение эффективности создания любых SQL-запросов в базу данных с использованием LLM (ChatGPT, DeepSeek, Llama и других).

Метод, о котором пойдет речь, до безобразия прост и от этого гениален. После прочтения этой статьи вы сможете самостоятельно или в рамках вашей компании увеличить скорость формирования SQL-запросов в 50 раз!

Читать далее

Java Digest #22

Level of difficultyEasy
Reading time10 min
Views2.9K

Всем привет! 👋 👋 👋 👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске: дикая сторона Java — неожиданные трюки, которые работают. Узнаем, как переключение контекста убивает продуктивность и как с этим бороться. Разберем третью и четвертую части серии про HotSpot C2 JIT Compiler: измерим время компиляции, оптимизируем циклы и ускорим JIT. 

Посмотрим на свежие JEP и разберемся, какие новинки ждут нас в будущих версиях Java. Погрузимся в реальные проблемы миграции баз данных: транзакционные DDL, конфликты обновлений и правильные стратегии применения изменений. А в конце — большое видео на 2,5 часа про все ключевые фичи, которые появились в Java 22 и 23. Приятного прочтения!

Читать далее

Postgres как поисковый движок

Reading time12 min
Views11K

Поиск — это сложно. Важная часть многих приложений, которую нелегко реализовать правильно. Особенно в случае с RAG-пайплайнами, где на качество поиска завязан весь процесс.

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

Эрик Закариассон, разработчик и автор блога Anyblockers, рассмотрел в своей статье, как использовать Postgres для создания надёжной поисковой системы. В рамках задачи автор объединил три техники:

1. Полнотекстовый поиск с tsvector

2. Семантический поиск с pgvector

3. Нечёткое сопоставление с pg_trgm

4. Бонус: BM25

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

Читать далее

Как сделать Telegram-бота умнее: пошаговый гайд на Spring AI и Kotlin

Level of difficultyEasy
Reading time11 min
Views6.2K

Перед вами ещё один гайд о том, как написать свой telegram-бот, который взаимодействует с нейросетью. Мы напишем его таким образом, чтобы с нейросетью можно было вести диалог, т.е. рассмотрим, как сохранять контекст между сообщениями. Но таких гайдов, особенно для Python, уже написано немало. Поэтому напишем его на новом фреймворке Spring AI из эксосистемы Spring. А чтобы совсем было интересно - писать будем на Kotlin)

Читать далее

Information

Rating
Does not participate
Works in
Registered
Activity