Четыре года я была волонтёром в приюте для животных. Это не про красивые фотографии с пушистыми котиками - это про ежедневный уход, уборку, лечение, адаптацию и работу с людьми. Самое тяжёлое - видеть стресс у «вернувшихся» животных. Ещё вчера у них был человек, дом, надежда, а сегодня снова клетка, шум и тревожное ожидание. Некоторые так и не находят семью. Самое страшное для животного - прожить жизнь и так и не получить собственного дома хотя бы на один день.

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

У меня дома живут четыре кота из приюта. Каждый из них когда‑то просто подошёл ко мне и больше не ушёл — их настойчивость в любви и доверии оказались сильнее любых рациональных аргументов. Этот опыт сильно повлиял на моё восприятие проблемы: животные готовы доверять человеку гораздо быстрее, чем человек готов взять на себя ответственность.

Приюты делают колоссальную работу. Их главная задача - спасать, лечить, кормить и социализировать животных. У них нет бюджета на профессиональных фотографов, маркетинг или сложные цифровые системы. Часто животное представлено одной фотографией, сделанной на телефон, а у некоторых фото нет вовсе. В результате человек выбирает буквально «по картинке», не понимая характера, уровня активности и реальных потребностей конкретного животного. Выбор становится эмоциональным и импульсивным.

Животных очень много - уход за ними главный приоритет до появления нового дома (на фото 4, но на самом деле щенков 12, мы выгуливали их осенью, мокрые и грязные, но самые счастливые)
Животных очень много - уход за ними главный приоритет до появления нового дома (на фото 4, но на самом деле щенков 12, мы выгуливали их осенью, мокрые и грязные, но самые счастливые)

Когда животное возвращают, чаще всего звучат одни и те же фразы: «Мы не ожидали, что это создаст проблемы, у нас нет времени на их решение», «Период адаптации нам не подходит, нам нужно чтобы он/она сразу ходила в лоток/ласкалась/точила когти только об когтеточку». Иногда животных возвращают официально, иногда просто оставляют в коробке у дверей приюта, а иногда избавляются от них другими способами. При этом вины приютов в этой ситуации нет - у них физически нет ресурсов, чтобы проводить глубокую оценку каждого потенциального владельца. Именно тогда у меня возник вопрос: можно ли технологически снизить риск таких ситуаций? Можно ли помочь человеку сделать более осознанный выбор ещё до встречи с животным?

Ветклиники также способствуют решению проблемы бездомных животных, на фото я социализирую щенка (после прогулки и изучения команд)
Ветклиники также способствуют решению проблемы бездомных животных, на фото я социализирую щенка (после прогулки и изучения команд)

Так появился проект «Лапка в Лапку» - система интеллектуального подбора животных из приютов и оценки риска передачи в новую семью.

От ручной анкеты к формализованной оценке

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

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

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

Архитектура MVP

Текущая версия системы - это MVP, построенный вокруг мобильного при��ожения PetMatch App и backend на FastAPI. Приложение отвечает за пользовательский сценарий: поиск животных, заполнение анкеты, получение рекомендаций и запись на встречу. Backend управляет данными, взаимодействует с моделью скоринга и возвращает результат в приложение.

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

Ключевой компонент MVP - модуль оценки риска, реализованный через API GigaChat. Мы сознательно начали с LLM, а не с собственной модели: это позволило быстро проверить гипотезу без создания размеченного датасета и сложной ML-инфраструктуры.

Как работает оценка риска

Пользователь заполняет анкету. Модель анализирует текст и возвращает структурированный результат, который преобразуется в числовой риск-скор. Это не «вердикт», а индикатор вероятности того, что передача животного может привести к его возврату.

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

Нельзя завести хаски и ждать бесконечной привязанности, они склонны к побегам
Нельзя завести хаски и ждать бесконечной привязанности, они склонны к побегам

Во-вторых, оценивается эмоциональный фон текста. Импульсивные формулировки, чрезмерная категоричность и признаки неосознанной мотивации влияют на результат. Мы не пытаемся «диагностировать» человека, но фиксируем поведенческие паттерны, которые статистически могут коррелировать с возвратами.

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

Дополнительный поведенческий сигнал - глубина и продолжительность взаимодействия с приложением. Более вдумчивое заполнение анкеты и изучение карточек животных косвенно указывает на осознанность выбора.

Упрощённо логика скоринга выглядит так:

RiskScore = 
    w1 * contradiction_score +
    w2 * emotional_instability +
    w3 * expectation_mismatch -
    w4 * experience_factor -
    w5 * engagement_duration

Весовые коэффициенты калибруются эмпирически и будут уточняться по мере накопления данных.

Почему LLM, а не собственная модель

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

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

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

Использование GigaChat позволило быстро собрать рабочий прототип и начать накопление анонимизированных данных. В дальнейшем мы планируем перейти к дообучению собственной модели риска, чтобы снизить зависимость от внешнего API и повысить интерпретируемость решений.

Метрики эффективности

Мы не ориентируемся на количество скачиваний или регистраций. Для нас ключевые показатели - это количество успешных «приёмов в семью» в месяц, конверсия от просмотра карточки до реальной встречи и доля возвратов через 30 и 90 дней. Именно снижение возвратов является главным индикатором того, что скоринг действительно помогает.

Также мы отслеживаем количество активных приютов и пользователей, чтобы понимать масштаб системы и нагрузку на инфраструктуру.

Главная сложность - устойчивость проекта

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

Инженерно задачи решаемы. Гораздо сложнее обеспечить устойчивость и развитие без коммерческой модели.

Что дальше

Следующий шаг - переход от LLM-MVP к собственной модели риска, обученной на накопленных анонимизированных данных и фактических исходах (успешный приём или возврат). Мы хотим повысить точность, снизить количество ложноположительных срабатываний и сделать скор более интерпретируемым.

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

Проект находится в активной доработке. Буду благодарна за критику и советы: какие признаки Вы бы добавили в risk‑модель? Как бы Вы строили систему калибровки скоринга? Какие архитектурные решения помогли бы сделать такую ML‑систему устойчивой?

Также мы будем рады сотрудничеству с Вами, если Вы готовы помогать на волонтерской основе не менее 8 часов в неделю. Любой вклад — будь то разработка, ML, анализ данных или работа с приютами — ценен и помогает нам быстрее приблизиться к цели: чтобы как можно больше животных находили своих людей, а люди — своих питомцев.