Делай RAG
768 subscribers
24 photos
7 files
49 links
Канал об исследованиях неочевидных способах применения ИИ в работе юриста: RAG-системы, вайбкодинг, внедрение.

Связаться с автором через сообщения канала или [email protected]
Download Telegram
Gemini API annotation_details.pdf
598.9 KB
Исходя из этих соображений нейросети повелено делать грейдинг (регрессию?) ценности дела для базы знаний от 0 до 10 по обозначенным мной критериям. Подробнее о критериях смотрите в аттаче, а если коротко, то:
🤩0 баллов получают все дела по вопросам размещения рекламы в материальном мире (нерелевантные задачам бота то есть)
🤩 1-3 — банальные прямолинейные нарушения простых требований и запретов (пиво рекламировали, дисклеймеры на БАДы забыли и т.д.)
🤩 4-7 — комбинации нарушений, нарушения по определенным видам продукции, достаточно очевидные нарушения, не требующие великой аргументационной мысли, но по важным статьям
🤩 8-10 — все, что задает тон всей комнате практике, где нет очевидного решения, пограничные случаи, слои метаиронии, всякое интересное и дающее смысл профессии.
А зачем мне нужны все эти баллы — будет в посте про этап ручного отсмотра (то есть в следующем).

Задача 3: Структурированное извлечение данных
После оценки нейросеть извлекает ключевую информацию и стряпает из неё JSON. Моделька вытягивает название УФАСа (раньше это делалось скриптом, но при сборке пайплайна кое-что отвалилось и пришлось заставлять модель), информацию о нарушителе и отрасли, в которой он работает, детальное описание содержания рекламы с прямыми цитатами её описания, платформу размещения, суть нарушения, аргументацию ФАС с сильными цитатами из решения, а также список нарушенных норм (пункт-часть-статья) ФЗ О рекламе. Смотрите также в аттаче примерчики.
Испытываю уже сожаление по поводу того, что дату принятия решения не вытаскивала все это время, ведь у меня появилось много новых идей, что я могла бы со всей этой инфой делать — и для работы, и для радости. Но дело поправимое!

Что я со всеми эти JSONами делаю — в следующий раз. Не забудьте поглядеть в аттач, там sneak peaks и в промпт, и в JSONы, и в самую святая святых — базу знаний. И некоторое занудство о работе кода, направляющего API-запросы, там есть любопытные выстраданные решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4👍1
Написала как бы полезную колонку, вежливо приглашающую в конце попользовать бот, на некогда славном портале vc.ru. Опять же данные статистические, становящиеся заметными при работе над базой знаний, куда-то можно пристроить.
Если у вас вдруг завалялся там аккаунт, буду рада вашей поддержке в виде лайка-коммента 🥺 очень интересно, придёт ли оттуда кто-то в бот или сюда. Вероятно, что нет, ведь короткие посты писать я не умею, а зазывание в бот в самом конце. Но всё равно есть ощущение, что колонка на VC — это необходимый к выполнению ритуал, ты не думаешь, просто делаешь.

Какие вообще новости, какие планы? #ботоводство Ближайшая большая задача, вызывающая прокрастинацию такого масштаба, что я досмотрела второй сезон Отчаянных домохозяек — это отладка работы с логами (пользовательскими данными). Она пока выглядит тупой их выгрузкой из диска, собиранием плохим скриптом в глупую таблицу с неактуальными колонками. Пока даже лень подумать, что из них и в каком виде я хочу видеть.
И вообще задач очень много: и практику за 2019-2020 просеять, и датасет собрать с какой-то аналитикой по нему, и вообще хочется углубиться в какую-то матчасть RAGостроительства применительно к юридическим разным задачам. Да и не все заявленные в самом начале планы ещё выполнены. Забавно, как даже такие маленькие скромные проектики, как этот, генерят своим существованием необходимость всё время шуршать.

На этой неделе сфокусируюсь на одном — подготовке небольшого выступления для кое-какого мероприятия: с такими вещами сильно не попрокрастинируешь. Желаю всем на этой неделе энергии, а если её нет — поберечь себя без особых угрызений совести ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥144👍2
Вчера была на митапе Moscow legal hackers на тему культуры внедрения ИИ в юридической функции, вернулась домой необычно заряженная, почти вприпрыжку. Уровень спикеров и масштаб проделанной ими работы очень впечатляющий, не могу подобрать другого слова.
3 консалтинга, 3 инхауса, и относительно небольшие компании, и гиганты рынка показали, что все всем известные бутылочные горлышки внедрения ИИ в наш консервативный домен вполне преодолимы.

Хочется зафиксировать мои личные #keytakeaways и рефлексию:

🤩 У всех инхаус-спикеров успешно внедренный ИИ в юр.функции — это реализация поставленной c-level руководством задачи этим заниматься в рамках выполнения общекомпаниевых статегических задач.
В общем-то это самоочевидно, только с c-levelа может прийти нормальная мотивация и, разумеется, деньги.

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

🤩 У половины спикеров в работе компании помимо стандартной конфиденциальной/коммерческой информации есть и охраняемые законом тайны, поэтому у всех ИИ внедрен on prem (они же локальные, они же private LLM).
И, видимо, не так всё это ужасно плохо с нормальными базами знаний и файн-тьюнингом. И не так драматически дорого по железу, как об этом часто говорят (с другой стороны, коллеги не делились уровнем удовлетворенности и метриками качества ответов, хотя как их сделать — та еще загадка).

🤩 Организационная готовность юр.функции — еще один кусочек пазла, без которого ничего не сложится. Курированные базы знаний и knowledge management важны и интересны как деятельность сами по себе, но много ли кто в инхаусе этим занимается? А в плане внедрения это просто обязательная домашка, без которой можно разве что прикрутить бестолкового чат-бота с его родным датасетом и простой суммаризатор/пересказчик текстов.

🤩 Людей нужно учить этим всем пользоваться, иначе инвестиции и потраченные организационные усилия были кинуты на мертворожденную задачу.
«Учить» еще при этом так, чтобы это не воспринималось как дополнительная неоплачиваемая нагрузка, а с донесением ценности и пиететом к какой-то усредненной learning capacity занятого работой сотрудника.

Надеюсь, читатели канала поняли, что я периодически занимаюсь тем, что осознаю тот факт, что у велосипедов в среднем два колеса, поэтому если мои выводы покажутся банальными и самоочевидными — приглашаю сорвать покровы и рассказать свои пушкобомбовые инсайты по теме в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥5👍2
Воскресно-лирическое

В пятницу Рунетлекс Академия устроила замечательный выпускной вечер для завершивших курс по использованию нейросетей в работе юриста.

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

Прошло уже три потока, и на третьем я была ментором. Менторы посильно подсказывают студентам курса что-то по материалу и организации, дают искорку движухе в чате потока и чатах вебинаров, поддерживают студентов в стрессовые моменты. Вроде бы просто пишешь в чатиках, а потом мама курса, Ксения Даньшина, зовёт нас вместе с командой Академии и спикерами выйти к студентам 🥰🥰

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

И про выпускной еще скажу, что я мало когда в своей жизни получала столько поддерживающей обратной связи, как в этот раз по теме бота. У меня сложно с принятием комплиментов, на самом деле, но когда мне на следующий день написала добрые слова экс-служащая ФАС, я просто отлетела от радости! Да и вообще знать, что кто-то реально поделкой пользуется на пользу себе — становится не жалко всех этих вайбкодинговых мучений.

Вот. Спасибо всем причастным за этот классный пятничный вечер! ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥18🤩5
Раз-в-месяцевый #RAG_expansion! Прибыло 3️⃣6️⃣3️⃣ кейса, и теперь в базе 1️⃣8️⃣2️⃣5️⃣ решений. Уже выглядит весьма солидно! С определением охваченного временного периода теперь правда непонятно. Я вроде бы обрабатывала то, что наскрапилось за указанный в фильтрах период 01.01.2020–31.08.2020, но в выборке много дел за 2019-й. Варианта здесь два: либо ФАС в 20-м выложил многое за 19-й, либо я что-то накосячила в своём пайплайне.
Вместе с пополнением базы произошла также смена эмбеддинговой модели: в начале октября Гугл любезно сообщил, что у меня есть месяц для переезда на их новую суперскую cutting-edge модельку gemini-embedding-001, т.к. все предыдущие они перестанут поддерживать ради неё.

Определилась со своими планами по RAGу для этого проекта:
🤩 отсмотрю еще то, что у меня отскраплено за 2019-й и перестану копать вглубь;
🤩 периодически буду собирать копящуюся from now on практику, а так же то, что относится к периодам с 2019-го, но выложили только сейчас;
🤩 постараюсь победить те дела, в которых решения выкладывались не текстом на странице, а аттачами (об этой проблеме здесь).
Думаю, в итоге получится 2500-3000 дел под бот: оптимизированная структурированная база, задизайненная под конкретные задачи. Планы с кластером руководств ФАС и небольшим reranking-ом тоже в силе. И открытый датасет из всех дел тоже будет! Уложусь к декабрю, ваши ставки? 🤪

Еще я сегодня кое-где представила себя человеком, начинающим исследовать возможные стратегии и методики построения RAG-систем в юридическом домене. Надо бы объявить об этом и здесь! У меня по этой теме за последнее время случилось много интересных прозрений, и, по всей видимости, у канала начнется большее тематическое разнообразие (не разбегайтесь сразу, пожалуйста).

И на ночь короткая заметка на полях про вычитанные кейсы. Еще когда только я начала собирать базу знаний, я пошутила, что мы не думали-не гадали, а профеминистическая ячейка вон в питерском и ленобластном УФАСах засела: это на меня произвело впечатление несколько кейсов борьбы с объективацией женщин в рекламе. А дальше этого становилось всё больше, и вот в выборке, над которой я поработала к сегодняшнему экспеншену, из 900+ дел было не меньше трех-четырех десятков, где так или иначе пресекалась убогая сексистская реклама (вплоть до уровня использования слова «шкура»). И это 2019-2020й год!
Подумала шальную мысль, что аббревиатурой «ФАС» также пользуется некая обитающаяся за пределами РФ организация, признанная иноагентской и, не удивлюсь, если экстремистской. И у них Ф в названии отвечает за феминизм. Но оказалось, что ФАС, занимающийся конкретными делами на ниве борьбы с дискриминацией, литералли есть (и всегда был) у нас дома ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍543🔥2
Новый цикл общеобразовательно-рисерческих постов на канале под гордым названием #rise_of_RAG я начну с неожиданного вопроса: что вы знаете о Бразилии? Что бы вы о Бразилии ни знали ранее, сегодня вы узнаете, что в бразильском Сенате работают юристы-гигаумники, которые куют своими руками будущее права. Вот такой кликбейтный зачин!

Как многие читатели уже знают, я не умею писать короткие посты. На этот раз я переплюнула вообще все собственные ожидания от самой себя, и разразилась лонгридом — вот ссылка на Телеграф.
Этот материал в основном является обзором нескольких статей из стремительно накапливающегося корпуса публикаций по теме методов составления баз знаний для технологии Retrieval-Augmented Generation. При описании методов я пересказываю идеи авторов, свою оценку полезности не даю и перепроверить конкретными метриками тоже, разумеется, не могу. Хотя возникают шальные мысли что-то попробовать и некоторые эксперименты поставить.
О чем будет речь? О трёх подходах, эволюционировавших из обычных векторных RAGов — плоских или, как их еще называют, «наивных». Первый - Multi-Layered Embedding-Based Retrieval (MLR), многоуровневый или иерархический подход. Второй - GraphRAG, графовый. Третий — SAT-GraphRAG (Structure-Aware Temporal GraphRAG, структурно-темпоральный подход). В статье рассказываю о том, как они реализованы технологически, какие задачи решают и в чём они, по мнению авторов, лучше других.

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

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

Приятного чтения!
12👍5🔥4
Возможно, новые подписчики не отлистывали до старых постов, и образ автора канала не ассоциируется с каким-то антропоморфным)) это я, всем приветик

Подоспели фотки вот отсюда! #spectacle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥156🤩11
Хочется завершить начатый #делайRAG рассказ про пайплайн — помимо сегодняшнего будет еще два поста о последнем шаге с эмбеддингами и заключительный.
Сегодня хочу рассказать об одном по сути этапе ручной проверки, но сборка таблиц — технически отдельный большой и не простой этап, который у меня, кажется, ни за одну сессию не сработал нормально 🙂

После разметки Gemini возвращает JSONы, в которых есть метки «session_ID». Этот ID появляется еще на первом этапе (скрапинге): это результат моих попыток сделать многоразовый пайплайн, в рамках которого самостоятельные сессии обрабатываются отдельно от других (грубо говоря, я сделала скрапинг практики за 2020-й год, и все дальнейшие шаги должны исполняться в отношении только этой пачки кейсов). В общем, сколько у меня в итоге было субститутных костыльных кодов, которые дособирали эти пачки — стыдно признаться.
Центральная функция этой части кода — собрать таблицу с релевантными для RAG (субстантивными) делами. Каждый ключ в JSONе становится колонкой таблицы (смотрите аттач со скринами в комментарии — этот аттач в отличие от предыдущих полезно посмотреть тем, кто не очень разбирается во всех этих жисонах, там наглядно). Затем таблица с релевантными делами дополняется скриптом тремя колонками:
🤩 колонка с полным текстом решения ФАС из папки, в которую помещаются все txt с решениями на этапе скрапинга;
🤩 колонка с caseID. Зачем это нужно — это довольно скучно, вынесла это в аттач;
🤩 колонка с «тематическими тегами».
Тематические теги — это описание статей из ФЗ «О рекламе» максимально короткими ключевыми словами по типу «некорректное_сравнение», «БАД_дисклеймер».
Основной функционал этих тегов — они помогают оценивать равномерное наполнение базы знаний кейсами разной тематики (чтобы не было перекоса, например, в рекламу финансовых услуг, и было побольше решений по темам, которые достаточно редко затрагиваются (например, правила о государственном языке)). У тегов есть еще и задел на будущее — они будут основой для reranking-а, который я планирую реализовать для повышения точности выдачи кейсов из базы, связью с кластером эмбеддингов для руководств ФАС, который я тоже хочу до Нового года всё же сделать.

Ну и затем я перехожу к ручному отсмотру. Делаю я его по нескольким причинам:
🤩 Нейросеть иногда плохо справляется с частью промпта, которая просит её считать нерелевантными дела, требующими наличия каких-то лицензий и разрешений, где содержание рекламы не совпало с реальностью. В каждом батче таких обязательно будет 20-30 дел, и, на мой взгляд, они не особо нужны для задачи, которую решает бот.
🤩 Нейросеть получает каждый новый кейс на рассмотрение без знания обо всех предыдущих, и ей невдомек, что база знаний распухнет от однотипных решений по фразе «мы лучше, чем ломбард!».
🤩 Мне просто это нравится! 🤗 Мне нравится рекламное право в целом, это расширяет мой профессиональный кругозор. Всё, что нейросеть оценивает на 6-9 баллов, как правило, довольно интересно смотреть.
🤩 Я искренне верю в то, что база знаний не должна быть свалкой документов, она требует кураторского подхода, и мои объемы не такие, чтобы всё отдавать на откуп нейросети.

Но нужно сказать, что вся эта система оценок действительно работает, и если лень, то можно и отдать всю задачу нейросети: просто смело брать из каждого батча дела от 5 баллов. Но и при мануальном отсмотре я полагаюсь на эти оценки: примерно с 5 баллов уже просматриваю по диагонали, подмечая только кейсы по редко освещаемым в практике вопросам, даже если там простая правовая позиция, и «поднимаю» им оценку. В принципе я читаю только колонку violation_summary, иногда смотрю аргументы ФАС с цитатами. Количество осечек при суммаризации минимальное, и я каждый раз радуюсь тому, как нейросети упростили такой тип задач.

Итогом этого этапа является то, что я беру и руками копирую строки с оценкой выше 4 или 3 (зависит от батча) и вставляю в файл с основной базой, святая святых, RAG.csv. Это тоже можно делать скриптом, но мне не лень 😊

Всё! Всех с понедельничком, отличной недели, друзья ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥111
Делай RAG pinned «Новый цикл общеобразовательно-рисерческих постов на канале под гордым названием #rise_of_RAG я начну с неожиданного вопроса: что вы знаете о Бразилии? Что бы вы о Бразилии ни знали ранее, сегодня вы узнаете, что в бразильском Сенате работают юристы-гигаумники…»
Сегодня была на очень классной конференции HeadHunter по рекламе: все узнаваемые лица рекламного права, самые животрепещущие темы — и базовая база, и насущное, отличные спикеры. С первого же выступления пленарной сессии представителя УФАС по республике Башкортостан Рината Хасанова пошла дискуссионная энергия с подачи столпа российского рекламного права Дмитрия Григорьева. Как мне кажется, компетентная дискуссия, тем более с регулятором, — это ни что иное, как успех мероприятия.

Еще мне было особенно приятно услышать от профильных коллег, что о боте знают, он на слуху, им пользуются 🥺 Получилось вынести с конференции #keytakeaways применительно к боту — нужно обязательно перепроверить, как он будет решать задачки в свете законодательных изменений (энергетики, например), и, возможно, раговать сам закон в актуальной редакции, и редакцию эту поддерживать. Так сказать, practice what you preach в плане качественных RAG-систем.

В свете всего этого есть ощущение, что я задолжала с рубрикой #мудростьФАС. Я не могла не посмотреть, что в моей базе есть от УФАС Башкирии: целых 33 кейса, и несколько примечательных дел по использованию ч. 5 ст. 7 Закона О рекламе, запрещающей умолчания о существенных обстоятельствах. Как я писала в своей не особо популярной, но, как мне кажется, весьма дельной колонке на VC, эта статья — это козырь в рукаве ФАС, который позволяет привлекать к ответственности за манипулятивную рекламу в отсутствие прямых законодательных запретов. Часто она используется для формирования практики, которая потом становится законом, как это произошло с рекламой юридических услуг по банкротству физических лиц. И вот где УФАС Башкирии увидело возможность прикрыть шальную рекламу этой статьёй:

🤩 лечение алкоголизма в одном ряду с услугами о гаданиях и приворотах. В газете «Мир вакансий» была размещена реклама с текстом «Гадания. Привороты. Снятие порчи. Лечение алкогольной зависимости», а рекламодательница пояснила, что все эти вещи она реализует с помощью карт Таро, а не предлагает медицинские услуги, как кто-то мог бы подумать. Реклама была признана ненадлежащей по причине (прямая цитата):
«В данном случае осуществление услуг приворот, порча, снятие алкогольной зависимости на гадальных картах ТАРО может привести к формированию у граждан неверного представления о существе оказываемых услуг.»


🤩 Не обошлось и без других способов подлечить население:
«СОЛЯНАЯ ПЕЩЕРА. SPELEON. ВДОХНИ ЗДОРОВЬЕ ВСЕЙ СЕМЬЕЙ! Повышает иммунитет. Способствует профилактике частых простуд, гриппа, ЛОР заболеваний, заболеваний органов дыхания. Оказывает благоприятное воздействие при аллергии и астме. Очищает и омолаживает кожу. Снимает стресс и переутомление. Способствует улучшению сна. Очищает легки от табачного дыма.»

Признавайтесь, кто бывал в таких? Я бывала, мне там бабулиты советовали в телефоне не сидеть. Но УФАС Башкирии, хоть и не пишет об этом прямо, видимо, на стороне докмеда, потому что Комиссия отметила, что в рекламе содержится информация, ничем не подтвержденная и вводящая потребителей в заблуждение, так как доказательства положительного действия используемого при оказании услуг аппарата представлены не были.

🤩 И напоследок о финансовом здоровье — рекламировали «торгового робота», то есть программу «которая может использоваться для предоставления индивидуальных инвестиционных рекомендаций», а такие программы должны иметь аккредитацию ЦБ. Раз информации об аккредитации в рекламе не было, то и ч. 7 ст. 5 нарушилась. Конкретный текст рекламы не приводится, и сложно судить — действительно ли просто увидели формальное нарушение, или использовали его как удобный аргумент, чтобы предотвратить использование гражданами какой-то скамной истории. Возрадуемся, что такие боты, как мой, не требуют ничьей аккредитации! ☕️

Закруглю пост тем, что конференция была просто прекрасно организована в очень красивой локации, спасибо большое Юрию Донникову и его команде за такое полезное мероприятие. А еще сегодня день работника рекламной индустрии, не знаю, планировали ли организаторы, или так удачно совпало. Если совпало, то знак просто отличный!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥51
Давно не было #commits. Только я начала заниматься наиболее приятными для меня делами, как вайб-кодинг с ноги ворвался обратно в мои будни (и выходные) 🤪 Я думала, что этот пост буду постить во вторник, но… впрочем, начну с приятного:

🤩 Ещё немного больше user-friendliness
Не все закоулки пользовательского пути оказались качественно освоенными! Теперь бот проверяет размер загруженного файла (раньше не проверял 😊 и можно теперь 20 МБ лить), и если файл слишком большой, а также если формат неверный, то пользователь получает единое сообщение с кнопочкой, позволяющей попробовать ещё раз. Также в мои админские сообщения об ошибках пользователей теперь добавляется @юзернейм, чтобы я могла оперативно связаться с потерпевшим.
Мелочи, а приятно, и накодилось это всё тоже с полпинка — с первых промптов, на тесте ничего не упало, сразу запушила, в общей сложности минут за 40 этой ночью. Вот всегда бы так!

🤩 Аналитика логов
Я писала недавно, что работа с логами вызывает у меня приступы прокрастинации, но я собралась с духом и в общем-то с первого раза накодился код аж целого нового файла на Гитхабеaggregator.py. Он парсит все логи, делает из них большую csv-таблицу, а также генрит мне красивые ежедевные отчеты о пользовательской активности в админку (пример см. в комментариях).
Код написался-то с первого раза, но не с первого раза удалось сделать так, чтобы вся эта красота действительно работала каждый день в 20:00 по Московскому времени, поэтому этот файл успел обрасти уже собственным подробным логированием, а также логикой повтора попыток отправить отчёт в Telegram. Не хочется вдаваться в скучные подробности, но теперь я знаю, что такое cron job, daemon, что именно делает команда print в коде.
Сохраняется интрига, придёт ли сегодня отчёт в 20:00. Ибо имеет место загадка дыры: отчёт не пришёл в четверг, когда эти изменения были впервые задеплоены (при этом создалась таблица), но пришёл вчера без какого-либо оконченного вмешательства с моей стороны (а ещё пытался отправиться около 17 часов) 🙂
Следующий шаг — аналитика всей этой таблицы, нужно будет трогать палкой синтаксис pandas и разворачивать специальный ноутбук в Jupyter Lab, чтобы по-разному эту табличку крутить. Всё про вас узнаю, наконец!
А из отчётов, кстати, видно, что образовался костяк регулярных пользователей при в общем-то небольшом притоке новых. Очень приятно, коллеги, что вы находите инструмент полезным! 🥺

Ну и новости (придумала название рубрике — #ботоводство)!
На этой неделе стала получать загадочную ошибку «Missing required parameter "ragStoreName"». Диагностика показала, что мой бэкэнд написан на библиотеке google-generativeai, которую перестали поддерживать ещё аж с 31 августа, и по-хорошему нужно переезжать на новую библиотеку google-genai. В некоторых моментах у них принципиально отличается логика обработки API-запросов в Gemini, и вот местами (не каждый раз, но уже с неприятной регулярностью) оно подтравливает и ломается.
Я уже пробовала подступаться к этому делу, и пока миграция не очень получается((( за следующую неделю постараюсь дожать, но в целом не удивляйтесь и отнеситесь, пожалуйста, с пониманием, если будут возникать проблемы. Например, в четверг поломалась именно с этой ошибкой обработка pdf-файлов, а вчера в ночи pdf-ку спокойно отработал. Почему так — не знаю и не чувствую сил погружаться прям сильно подробно, но ценный урок извлекла: таких глубоких привязок к библиотекам, специфическим для конкретной LLM-ки нужно как-то пытаться избегать.

Мытарства этой недели и очевидность мучений недели грядущей позволяют мне решительно посмотреть сегодня 2-3-4 серии Отчаянных домохозяек. И вам тоже хороших выходных! ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥54👍3👏1
Новая неделя, новый обзор новой статьи в рамках нового цикла #rise_of_RAG!
Хоть некоторые уже и похоронили RAG, убитый агентами, моё внутреннее убеждение не позволяет с этим соглашаться и сходить с этого направления ресерча, только на него встав. Поэтому предлагаю вам к чтению за обедом колонку с интригующим названием «Document-Level Retrieval Mismatch: ищем иголку в стоге плоских чанков».

Разбираемся, так ли мёртв плоский RAG применительно к юридическим задачам, попутно раскладывая в голове, что такое precision и recall, а также причем тут le sac в зубах у ретривера. Помимо пересказа статьи произвела также собственное интеллектуальное усилие, направленное на дальнейшую сборку методологии создания RAG-систем, проанализировав, при каких обстоятельствах и для каких задач придуманный авторами метод улучшения плоских RAGов может хорошо сработать.

Буду рада вашим комментариям и идеям, в том числе и скепсису и подсказкам: вдруг кто-то уже это давно умеет-практикует и сам додумался! ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103
Я запустила бот 29 июля, то есть ему уже три месяца. Квартал! 🥺
Напрашивается подведение каких-то итогов, и, кажется, эта фотография очень красноречиво показывает проделанный путь.

Думала ли я, устанавливая на компьютер python в июне, что это приведет меня в переговорку под названием python в офисе HeadHunter? Обсуждали с Юрием Донниковым и его коллегами, как бот может быть полезен их работе с рекламой. Мне очень ценно, что в моём проекте-малыше видят потенциал и пользу такие сильные юридические команды.
Думала ли я, что выбрав самую понятную для себя точку входа в создание RAG-систем, попаду в какую-то востребованную нишу, в которой пытаются что-то делать и ИТ-гиганты, и независимые DIYщики, и крупные корпорации? Мысли были кардинально другими :)

Обновляла лендинг проекта впервые с создания 23 сентября. Даже уже за месяц многое изменилось и в метриках, и в функционале, идей по развитию стало еще больше.
Поэтому кажется, что три месяца — уже довольно приличный срок, в котором можно выступить с «тостом» 🥂 Хочу сказать спасибо большое всем пользователям, подписчикам, всем, кто поддержал на старте, рассказывал о боте, всем, кто видит перспективу и хочет работать вместе. 🌟🫂
Радуюсь, но не расслабляюсь, работы еще много!

#ботоводство
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍129
Только я села писать предпоследний пост о моём RAG-пайплайне #делайRAG, а именно о создании корпуса эмбеддингов, как подумала: технически это самый простой этап, хоть за ним и стоит вся магия, и писать там в сущности нечего. Точнее с одной стороны нечего, с другой стороны даже это «нечего» проще всего вообще _не_ понять. И разве это не хороший хороший повод наконец уже рассказать подробнее о RAG как о технологии? Должен же в канале с соответствующим названием хотя бы на четвертый месяц появиться пост о том, да кто такой этот ваш RAG?

Рассудила я так, и начала писать всё, что знаю, будучи уверенной, что получится коротко, быстро, ещё и про ботовский корпус эмбеддингов останется рассказать. Но что-то пошло не так, поэтому держите новый телеграф: everybody talks about RAG ✌️
В нем схемы всякие, майндмап вот есть. Собственно все написанные на майндмапе слова в колонке и обсуждаются. Она действительно базированная: там информация для совсем новичков или для тех, кто в целом понимает суть технологии, но сильно глубоко в детали не погружался. Я старалась писать понятно без сложной математики (потому что я всё равно сама математику не понимаю), но не могу сказать, что текст получился прям совсем разжёванным, некоторое интеллектуальное напряжение можно и испытать (совсем простой вариант в КАРТОЧКАХ хочу тоже сделать). Зато после этого текста точно будет понятно всё и про пайплайн, и про предыдущие лонгриды, которые #rise_of_RAG, да и вообще многое в устройстве вселенной и нашем месте в ней.

Я знаю, что и на русском языке материалов по этой теме хватает, но мне хотелось написать что-то адаптированное для юристов, да и собственные познания в одном месте сложить (говоря по правде, для этого текста я выясняла некоторые вещи для себя впервые, например, как всё-таки эмбеддинговые модели делают эмбеддинги, и каким таким колдунством при векторизации сохраняется смысл).
Поэтому, коллеги, надеюсь, что это будет полезно — шерьте с другими интересующимися, отвлекайтесь от дел в короткую рабочую неделю, задавайте вопросы, на эту тему я всегда рада поболтать ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥139👏1
Всем привет, почувствовала urge рассказать всякие новости! ☕️ #ботоводство

🤩 Свой недавний лонгрид я вынесла на Хабр. Страшно? Очень страшно! 😵 Когда интерфейс спрашивал меня, уверена ли я, что хочу опубликовать, я была очень не уверена. Там уже две закладки кто-то поставил даже.
Не знаю, есть ли у меня подписчики с профилями на Хабре, если есть кто, и у вас завалялся плюсик — поделитесь, пожалуйста! Самый последний «базированный» лонгрид про RAG тоже планирую вынести на не менее строгую публику zakon.ru, но юристов я боюсь меньше айтишников.

🤩 Если вам было интересно, в какой момент начинают приходить спам-боты в комменты каналов — примерно с 250 подписчиков. Стабильно раз в день удаляю из комментов предложение подзаработать. С глубокомысленными мыслями, что кто-то на моём блоге может заработать, но это не я.

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

🤩 Я в стадии максимальной готовности выкладывания в open-source датасета с размеченной практикой ФАС, а потом еще и кое-какие новости в связи с этим воспоследуют. И в стадии абсолютной неготовности миграции на актуальную genai библиотеку, это новое поле прокрастинации.

🤩 Google сделала инструмент для быстрого и весёлого создания RAGов File Search. Новость хорошая, не угнетающая. Наверное. Не решила пока. Поизучала документацию, вот мои выводы по ней:
⁃ обещают автоматический чанкинг просто по загруженным документам. Технику чанкинга не раскрывают, но дают возможность самим указывать количество токенов на чанк и оверлэп (это сколько токенов могут пересекаться в соседних чанках). Более тонкой настройки нет.
⁃ ваш оригинальный файл, загруженный в этот инструмент, удаляется через 48 часов. дальше хранятся только эмбеддинги в т.н. пространстве file search store — видимо, это такая как бы векторная БД. вот они уже хранятся бесконечно долго в связке с вашим проектом на google cloud. Параметры хранения следующие (довольно щедро и бесплатно):
• Количество хранилищ (stores) на проект: 100
• Максимальный размер одного хранилища: 10 ГБ
• Максимальное количество файлов в одном хранилище: 1 000 000
• Максимальный размер одного файла: 512 МБ
• Количество файлов в одном запросе на загрузку: 100
⁃ хранятся еще и метаданные, обеспечивающие цитирование и более высокую точность поиска. Метаданные можно делать как для всего файла (но это делается однократно при загрузке), так и для чанков (для этого надо заранее готовить jsonы с метками). С помощью метаданных может быть реализован SAC-метод, о котором писала недавно.

В общем очень здорово, очень круто, и главное, что есть на чём попробовать, что-нибудь еще про это напишу. Счастлива наконец написать пост, который влазит в лимиты одного поста 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1310🔥5👏1
Кто видел предыдущий пост — пардон 😊 вот правильный! Со спокойной душой можно теперь написать про последний этап пайплайна — и пока еще не разойтись, есть несколько общих идей и накопленная за прошедшие месяцы рефлексия о том, какие в воронке минусы, и как её можно менять.

Итак, последний этап #делайRAGсборка корпуса эмбеддингов. Он делится на 2 основных сущностных шага — подготовку «чанков», то есть текстов, которые и будут превращаться в эмбеддинги, и само превращение в эмбеддинги, то есть векторизацию.

🤩 Чанки
Обычно под чанками понимаются части документов, имеющие определенную длину (в символах или токенах). Но поскольку я делала RAG для бота по наитию, я не знала, что по классике чанкуются именно тексты. Я пошла по пути изготовления (на этапе разметки) резюме решений нейросетью. И именно резюме отправляются на векторизацию (я схлопываю в один текст содержимое двух колонок из волшебной csv-таблицы, но каких именно — не скажу. Ибо близится датасет, и кто захочет повторить, то будет свободен в своих экспериментах).
Я и сейчас думаю, что, учитывая характер исходного материала, это правильный путь: УФАС в решениях пишут много не несущих никакой (для моей задачи) ценности заклинаний, повторяют одно и то же, что просто нарезка текста решения на чанки блага не сделает.
Эту операцию скрипт проделывает моментально без моего особого участия.

🤩 Эмбеддинги
Далее код пайплайна обращается по API к эмбеддинговой модели (сейчас у Gemini она одна - gemini-embedding-001), по очереди векторизует каждый чанк, и все получившиеся координаты собирает в один файл формата NumPy. Кто читал лонгрид про RAG, тот в курсе, что RAGи вполне могут быть реализованы не в виде векторной базы данных, а просто вот таким массивом чисел. Учитывая мой объем (менее 2000 решений, в перспективе не более 3000), этого более, чем достаточно.
Если возникает необходимость корпус эмбеддингов расширить, то имеющиеся векторы не пересчитываются, так как уже обработанные записываются в кэш. Полностью пересчитать пришлось один раз, когда переезжала на другую эбеддинговую модель (на ранее упомянутую, её представили месяц назад).
Я делаю эмбеддинги 768 размерности и использую float64, то есть каждое число в эмбеддинге весит 8 байт: это как бы обеспечивает более высокую точность семантического подбора. Наверное. Я верю на слово всему, что мне говорят нейронки по этому вопросу 🙂

Вот и всё! RAG.csv и корпус эмбеддингов в .npy в паре представляют собой RAG. Коротко напомню, что происходит дальше (или чем занимается код в backend_logic.py):
1️⃣ пользователь вводит в боте запрос или грузит картинку, скрипт обрабатывает текст или описывает текстом картинку;
2️⃣ полученный текст тоже становится эмбеддингом с помощью той же самой эмбеддинговой модели (корпус эмбеддингов и входящие эмбеддинги должны делаться одной и той же моделькой из-за используемых ими таблиц токенизации);
3️⃣ для эмбеддинга запроса косинусным сходством высчитываются топ-10 наиболее похожих эмбеддингов;
4️⃣ топ-10 эмбеддингов откатываются обратно в текст и вставляются в шаблон промпта для нейросети;
5️⃣ нейросеть готовит заключение с учетом того, что нашлось эмбеддинговым поиском, цитирует релевантный кейс в заключении.

И здесь уместно рассказать, что я предпринимаю для повышения точности отбора (a.k.a костыли):
🤩 предобработка креатива — при обработке входящего текста или подготовке описания выкидывается все, что может «зашумить» эмбеддинговый поиск (часы работы, номера телефонов, сайты, всевозможные идентификаторы и т.п.);
🤩 нейросети дается задача критично относиться к тому, что притащено из RAG, и если действительно релевантного кейса нет, то не обращать на них внимания.

Знаю-знаю, не очень впечатляет, и можно и лучше. Техники есть (о них скоро будет новый #rise_of_RAG). И у меня еще с самого начала появилась идея делать привязку к тематическим тегам (о них здесь), то есть этакий гибрид с фильтром по ключевым словам, который активируется не сразу, а после первого эмбеддингового отбора. Очень хочу постараться до Нового года всё таки его реализовать 🎅
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥6👍4
README_Датасет_решений_ФАС_России_по_рекламным_делам.pdf
439.4 KB
Большая новость! 😐 Я опубликовала датасет с размеченной практикой ФАС по рекламным делам!

Это не RAG-база для бота, это лучше! Это более 7 тысяч дел с начала 2019-го года по ноябрь 2025 вообще всех категорий, собранных в одну большую аналитическую таблицу. Подробнее о том, что это и для чего читайте в приложенном readme.

Ссылки:
🤩 HuggingFace (для скачивания отсюда может потребоваться использование сервисов на три буквы)
🤩 Zenodo (с DOI ✌️ 10.5281/zenodo.17599224)

Как пользоваться этой таблицей юристам?
Пока в меру своего разумения и умения пользоваться Excel (csv-формат прочитывается именно в нем). В планах создание удобного и продвинутого поискового интерфейса, но об этом, надеюсь, будут другие новости (с предложением высказаться о своих пожеланиях к интерфейсу, возможно даже).
Но возможности датасета в виде всякой интересной аналитики, статистики и кластеризации я буду постепенно показывать — это будет новый branch в моей нежно любимой рубрике #мудростьФАС. Для затравки пока сообщу, например, что из представленных 7283 дел ФАС обнаружила факт нарушения в 98,8% случаев.

Я не знаю, найдет ли отклик в текущем виде (без поискового интерфейса) датасет у кого-то, но это было, пожалуй, одно из самых интересных занятий в связи с ботом, и я горжусь проделанной работой 😀
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥31👍12
🤩🤩🤩🤩 Навигация 🤩🤩🤩🤩

Всем привет! Сейчас, к моему большому сожалению, у меня очень мало времени на более содержательные публикации, но я вижу, как на канал приходят новые подписчики. Я очень всем рада! 🥺 В канале несколько основных треков, и вот небольшая карта по ним:

🤩 Если вы не знаете досконально, что такое RAG, так решительно заявленный в названии канала, то у меня есть вводный материал об этой технологии: everybody talks about RAG (он же на zakon.ru)
В целом в центре моих интересов тема построения баз знаний для реализации RAG-технологий, о чем я завела рубрику #rise_of_RAG, в рамках которой написала лонгриды:
🤩 Rise of RAG: от плоских векторов к темпоральным графам (она же в более ИТ-ориентированном виде на Хабре)
🤩 Document-Level Retrieval Mismatch: ищем иголку в стоге плоских чанков

🤩 Другие мои материалы и проекты
🤩 «Как испытать от вайб-кодинга радость» — сборник советов и методов организации кодинга с нейросетями, основанный на моём опыте
🤩 #делай_bench — фасилитация human-eval бенчмарка LLM для юридических задач (а также пост на Хабре).

🤩 Канал начался (и в общем, конечно, продолжается) как канал о Telegram-боте @lastminute_legal_bot, проверяющем рекламные креативы нейросетью с небольшой RAG-базой. В основном публикации на этом треке можно найти по следующим хэштегам:
🤩 #ботоводство — о том, как создавался бот, с какими сложностями я сталкивалась, как их (не) преодолевала, как вообще развивается бот и я вместе с ним. Публикации по этому тегу могут быть интересны тем, кто практикует т.н. вайб-кодинг или любит следить за жизнью pet-проектов
🤩 #commits — о изменениях в коде и функциональности бота
🤩 #RAG_expansion — новости о пополнении базы знаний, которой пользуется бот
🤩 #делайRAG — о процессе создания базы знаний, которой пользуется бот. Настоящий кейс, рассказанный во всех деталях, который можно использовать как мануал в своих проектах, в едином лонгриде собран здесь. В перспективе хочу ставить этот тег и для рассказов о других своих RAG-проектах

Важные ресурсе о боте:
🤩 Github проекта (можно ставить звёздочки 😀)
🤩 Лендинг проекта

🤩 Значительная аудитория канала — юристы, работающие с рекламой. Для вас здесь есть:
🤩 открытый датасет с 7000+ размеченных дел с практикой ФАС по рекламе за прошедшие 6 лет
🤩 любимая мной рубрика #мудростьФАС — о разных курьезах из практики ФАС по рекламным делам, на которые я обратила внимание, делая RAG для бота
🤩 публикация на vc.ru о типах субстантивных нарушений, на которые ФАС обращала внимание чаще всего в 2025-м году

🤩 Также я хожу на разные мероприятия в сфере legal tech и применения нейросетей в работе юристов
🤩 #spectacle — о событиях, где выступала я сама
🤩 #keytakeaways — о событиях, которые посетила

Пост будет пополняться.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥54
Делай RAG pinned «🤩🤩🤩🤩 Навигация 🤩🤩🤩🤩 Всем привет! Сейчас, к моему большому сожалению, у меня очень мало времени на более содержательные публикации, но я вижу, как на канал приходят новые подписчики. Я очень всем рада! 🥺 В канале несколько основных треков, и вот небольшая…»