- BrainTools - https://www.braintools.ru -
Вам когда-нибудь казалось, что современное ИТ — это в основном про перекладывание JSON-ов, покраску кнопок и борьбу за миллисекунды в банковских транзакциях? Недавно я наткнулся на статистику о том, сколько данных генерирует одна современная молочная ферма, и как я удивился, когда понял: большинство этих данных оседает в разрозненных Excel-таблицах, тетрадках зоотехников или, в лучшем случае, в древних локальных базах типа «СЕЛЭКС», которые не обновлялись годами.
Оказывается, селекция элитного скота сегодня — это не про «посмотреть на корову и понять, что она даст много молока», а про работу с огромными матрицами SNP-маркеров (генетических вариаций) и временными рядами. Но что делать, если данные из лаборатории приходят в формате .vcf, а статистика по надоям лежит в закрытой системе 1С, и они «не знают» друг о друге?
Меня зовут Вишняков Данил, я магистр 1-го курса ИТМО по направлению «Искусственный интеллект». Сейчас в рамках акселератора Talent Hub (совместный проект ИТМО и Napoleon IT) мы с командой работаем над проектом Genome AI. Наша цель — вытащить селекцию животных из «эпохи интуиции» в эпоху доказательного ML.
В этой статье мы рассмотрим, как мы строим платформу Genome AI, зачем нам понадобилась гибридная модель машинного обучения [1] и почему «цифровой двойник» коровы — это следующий большой шаг в агротехе.
Представьте, что вы — директор фермы на 1000 голов. Каждое животное — это актив. Ваша главная задача: понять, каких телят оставить для воспроизводства стада, а каких — продать.
Раньше это делали «по ощущениям» или по средним показателям родителей. Но генетика — штука хитрая: от элитных родителей может родиться средний потомок, и наоборот. В итоге вы тратите два года и огромные ресурсы на выращивание коровы, которая в итоге дает на 15% меньше молока, чем могла бы. Это классический пример упущенной выгоды, которую сложно посчитать без цифр на руках.
Почему данные на ферме — это сложно?
Data Silos (Силосные ямы данных): Информация о здоровье — в одной локальной базе, данные о кормлении — в облачном Excel, а результаты расшифровки генома — в PDF-отчете от сторонней лаборатории. Они существуют в параллельных вселенных.
Грязные данные: Ошибки [2] в ID животных (опечатки в бирках), перепутанные даты отела, «человеческий фактор» при замере суточного удоя.
Ниже — диаграмма того, как выглядит типичный «бизнес-процесс» на ферме до того, как туда приходит системный подход:

В рамках Talent Hub мы создаем SaaS-платформу, которая берет на себя роль агрегатора и аналитического центра.
В чем специфика наших задач (почему это не просто очередной CRUD):
Сложная нелинейность: Генотип [3] — это не просто сумма признаков. Гены взаимодействуют между собой (эпистаз), а на результат сильно влияет среда (корм, влажность, температура). Мы строим модели, которые пытаются разделить «генетический потенциал» и «эффект среды».
Объем признаков: У одной коровы может быть 50 000+ генетических маркеров (SNP). Для модели это 50 000 признаков на одну запись при относительно небольшой выборке самих животных. Привет, проблема размерности!
Длинные циклы обратной связи: В селекции нам нужно ждать годы, чтобы подтвердить точность прогноза реальным удоем.
Чтобы обуздать этот хаос, мы используем гибридный стек: CatBoost для классических признаков и Deep Learning (PyTorch) для обработки геномных матриц.
Мы строим пайплайн, где на входе стоят «стражи качества» (Data Quality Guardrails). Если Call Rate генотипа (качество чтения ДНК) низкий, система выдает алерт и не пускает мусорные данные в модель.
Вот архитектурная схема нашего решения:

Давайте теперь посмотрим, как наши модели «видят» корову. Я покажу три ключевые визуализации, которые мы используем, и код на R, который их генерирует.
Первое, что нужно понять — как корова дает молоко. Удой следует нелинейной кривой (модель Вуда): рост после отела, пик и постепенное снижение. Но кривая кривой рознь! Наша задача — предсказать ее форму на основе генетики.
Мы используем Модель Вуда (Wood’s model) — это стандартная гамма-функция, описывающая кривую лактации. Вот фрагмент кода, где мы моделируем три разных генетических профиля:
# Формула модели Вуда: Y(t) = a * t^b * exp(-c * t)
wood_function <- function(t, a, b, c) {
return(a * (t^b) * exp(-c * t))
}
Что здесь происходит с точки зрения [5] математики [6]?
Уравнение
описывает три фазы жизни животного:
a — начальный уровень удоя после родов.
b — скорость подъема к пику (раздой).
c — скорость падения продуктивности (персистентность).
t — день лактации.
Вот как выглядят прогнозы для коров с разным генетическим потенциалом:

Что это дает на практике? Зная тип кривой теленка, мы можем оценить его пожизненную продуктивность еще до первой лактации и принять решение о его племенной ценности.
Откуда мы берем этот «генетический потенциал»? Из ДНК. Мы проводим полногеномный поиск ассоциаций (GWAS). Проще говоря, мы смотрим на десятки тысяч SNP-маркеров у тысяч коров и ищем те из них, которые статистически значимо связаны с высоким надоем.
Результаты этого поиска отображаются на Манхэттен-графике. Каждая точка — это маркер. Чем выше точка, тем сильнее ее связь с признаком.

Пики (например, вокруг маркера rs574 на хромосоме 2) — это наши «кандидаты» в гены, ответственные за молочность. Именно эти маркеры становятся фичами для модели, предсказывающей ту самую кривую лактации.
А что если в данных ошибка и нам подсунули генотип овцы? Или корова на самом деле не чистопородная? Для этого нужен контроль качества (QC). Один из главных инструментов — анализ главных компонент (PCA).
Он сжимает многомерные генетические данные в 2D-пространство, где животные одной породы находятся в кластере вместе.

Точка, которая выпадает из своего кластера (например, помесь среди чистопородных голштинов) — это красный флаг. Возможно, ошибка в данных, а возможно — ценный генетический нюанс. Без такого QC все дальнейшие прогнозы бессмысленны.
Для меня, как для студента ИТМО, этот проект — вызов применить методы AI там, где еще вчера главной технологией был блокнот и интуиция [7]. Мы движемся к созданию цифрового двойника животного — комплексной модели, которая включает не только геном, но и историю болезней, рацион, микроклимат в коровнике.
Такой двойник позволит не только отбирать лучших, но и:
Оптимизировать кормление индивидуально для каждой коровы.
Предсказывать риски заболеваний (мастит, кетоз) за недели до клинических проявлений.
Симулировать скрещивания и оценивать экономический эффект от покупки семени конкретного быка-производителя.
Геномная селекция — это не про абстрактную науку. А про конкретные деньги и устойчивость бизнеса. Повышение надоев на 5-10% на уровне стада — это миллионы дополнительной выручки при тех же затратах.
Мы открыты для обратной связи, идей и сотрудничества. Если вы работаете в агротехе, data science или просто вам интересна тема — давайте обсудим в комментариях! Возможно, именно ваш опыт [8] поможет нам сделать платформу еще полезнее.
P.S. Код из статьи — это симуляция для наглядности. В реальном пайплайне данные в разы объемнее, а модели сложнее. Но суть остается той же: превратить генетический «шум» в понятные и прибыльные инсайты.
Если вам интересно следить за моими экспериментами в режиме реального времени, буду рад видеть вас в своем Telegram-канале (https://t.me/donny_dank [9])
Автор: FeLkan
Источник [10]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/26199
URLs in this post:
[1] обучения: http://www.braintools.ru/article/5125
[2] Ошибки: http://www.braintools.ru/article/4192
[3] Генотип: http://www.braintools.ru/article/9375
[4] Image: https://sourcecraft.dev/
[5] зрения: http://www.braintools.ru/article/6238
[6] математики: http://www.braintools.ru/article/7620
[7] интуиция: http://www.braintools.ru/article/6929
[8] опыт: http://www.braintools.ru/article/6952
[9] https://t.me/donny_dank: https://t.me/donny_dank
[10] Источник: https://habr.com/ru/articles/1003614/?utm_campaign=1003614&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.