Обновить
8K+
17
Рейтинг
114
Подписчики
Сначала показывать

От Naive RAG до ReAct-агента: как мы строили корпоративного AI-помощника на open-source моделях (часть 1)

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

Мы построили мультиагентную RAG-систему на open-source моделях, прошли путь от наивного RAG до ReAct-агента с собственным бенчмарком — и готовы рассказать, где набили шишки. Внутри: две итерации архитектуры, честное сравнение через RAGAS-метрики и ответ на вопрос, почему «просто взять фреймворк» не работает. Будет полезно всем, кто строит RAG для корпоративных знаний или только собирается.

Читать далее

Как мы оценивали OCR на русских документах — и почему все, что «распозналось», можно читать без смеха

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели9.2K

Каждый день через системы «Честного знака» проходят тысячи страниц: контракты, акты, техдокументация, анкеты. Всё это нужно не просто перевести в текст — а сразу пустить в работу: поиск, анализ, генерация выжимок, передача в другие сервисы. Одна ошибка OCR — и вместо «субподрядчика» система получает «cy6пoдpялчика», а дальше никакие регулярки не спасут.

Меня зовут Искандер, я - AI-инженер в Лаборатории искусственного интеллекта «Честного знака». Мы протестировали лучшие open-source OCR-движки на реальных русскоязычных документах — от простых текстов до многостраничных PDF со сложными таблицами и изображениями. Специфика задачи: кириллица, широкий разброс форматов, нулевая терпимость к ошибкам на продакшне.

Чтобы получить честные результаты, мы собрали собственный модуль тестирования и сформировали репрезентативный датасет из 6 наборов реальных документов. В статье — методология, метрики и то, кто из движков реально справился, а кто только обещал «максимальную точность даже на луне».

Читать далее

JUnit 5 Extensions (часть 2): пишем умные data-провайдеры и DI-контейнер на Kotlin

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели6K

"Скоро сказка сказывается, да не скоро дело делается" - говорится в народной пословице. Вот и мы решили не спешить со второй частью статьи по Junit 5 Extensions, а подойти к ней более основательно! Статья будет полезна QA-автоматизаторам, которые хотят глубже понимать работу с расширениями и выжать чуть больше из связки Kotlin + Junit5. Мы пройдем путь от простой реализации condition-выполнения тестов и источников данных для параметризованных тестов до реализации расширения Микро-DI с рекурсивной инъекцией зависимостей.

Как и в прошлой статье, сделаем акцент на практической части реализации расширений для JUnit 5. В качестве языка - Kotlin. Поэтому, достаем бутерброды, наливаем пиво кофе и приступаем!

Читать далее

JUnit 5 Extensions — практическое руководство (часть 1)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели10K

Привет. В Рунете материала по JUnit 5 Extensions сегодня немного, и довольно часто он ограничивается переводом документации (в редких случаях - постов с зарубежный ресурсов). Поэтому было решено исправить сей недостаток.

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

В качестве языка программирования я выберу Kotlin...

Читать далее

Сложный путь к правильной стойке

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.6K

Наша команда занимается технической поддержкой вычислительного комплекса государственной системы маркировки «Честный знак».

Пройдя свой путь от одной стойки до нескольких сотен, хотим поделиться своим опытом и наблюдениями.

Читать далее

Cassandra. The road to 1 PB (1/7)

Время на прочтение8 мин
Охват и читатели4.8K

Центр Развития Перспективных Технологий - компания разработчик системы мониторинга товаров. Как IT компания с большим количеством данных мы используем множество NoSQL решений в своей повседневной работе. Одним из таких решений является Apache Cassandra.

Суммарно, во всех кластерах Cassandra мы храним 0.4PB данных при общей емкости 0.9PB, стабильно производим 0.7млн операций записи и доступа к данным и 1.1млн когда необходимо разогнаться в трудные времена, при этом продолжаем непрерывно расширяться.

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

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

Читать далее

«Замена колес на ходу». Как мы перенесли продуктив на новую сетевую инфраструктуру и при этом ничего не уронили

Время на прочтение16 мин
Охват и читатели10K

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

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

Читать далее

Тестирование агрегатов методом Шерлока

Время на прочтение8 мин
Охват и читатели2.8K

Статья для начинающих аналитиков-стажеров

Когда вводишь в поисковой запрос "Курсы для аналитика данных", то сразу в глаза бросается SQL, Phytnon, R и другие инструменты. Но в первую очередь аналитику данных помогли бы не только инструменты, а еще и определенные способы мышления цифрового детектива. На наглядном примере мы вместе протестируем витрину данных, выстроим логику развития событий, а далее применим SQL. Статья предназначена для junior аналитиков данных или тех, кто только знакомится с будущей профессией Data Analyst.

Читать далее

Игры с Mongo, или как мы избежали проблем благодаря смекалке и реверс-инжинирингу

Время на прочтение6 мин
Охват и читатели4.6K

Одним из трендов при проектировании сервисов в последнее время выступает использование в качестве баз данных NoSQL-систем. Мы также стараемся идти в ногу со временем и, конечно же, имеем в своем IT-ландшафте несколько таких решений. Одно из них — шардированный кластер MongoDB. Эксплуатация этой СУБД сопряжена с проблемами производительности, архитектуры, взаимодействия и т.д. Удивительно, но факт - зачастую, все мы сталкиваемся с тем, что ошибаются разработчики самой СУБД. Кто бы мог подумать.., что после штатной перезагрузки узла конфигурационного сервера MongoDB в процессе обновления может произойти аварийное завершение работы сервиса базы данных и наш стенд превратится в «тыкву»!

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

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

Читать далее

Проверяйте качество, не отходя от кассы

Время на прочтение6 мин
Охват и читатели16K


Чем доступнее средства производства, тем острее проблема подделок. А уж если продукт массовый и легко подделываемый, то волна контрафакта практически гарантирована. Для борьбы с этой напастью мы — Центр развития перспективных технологий — разрабатываем систему маркировки и прослеживания товаров. Она получила название Честный ЗНАК. Производитель наносит на каждую единицу своей продукции уникальный код DataMatrix, а покупатели могут по этому коду посмотреть, настоящий ли перед ним товар, кто его произвёл и как он попал на прилавок.

Этим вводным постом в нашем блоге мы хотим познакомить вас с системой и принципами её работы, а в следующих статьях подробнее опишем техническое устройство и особенности разработки.
Читать дальше →

Информация

Сайт
www.честныйзнак.рф
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия