/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
aadya-neural
Опубликована
26 сен 2026

aadya-m1

Прогноз временных рядовTime_series → time_series3 профессии

aadya-m1 прогнозирует вероятностное распределение длительности следующего менструального цикла для локальных приложений и исследований.

160скачиваний за 30 дней2лайкавеса обновлены8 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

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

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

aadya-m1 — вероятностная модель прогнозирования длины следующего менструального цикла, разработанная автором репозитория Aadya. Модель содержит около 256 млн параметров и выдаёт распределение вероятностей для длительности цикла от 1 до 120 дней, чтобы приложения могли показывать вероятное окно начала следующей менструации с оценкой неопределённости. На вход подаются длительности прошлых циклов и число дней с начала последней менструации; дополнительно можно передать возрастную группу и день положительного теста на овуляцию.

Модель предназначена для локального использования в приложениях и инструментах отслеживания цикла, а также для исследований вероятностного прогнозирования. По данным README, она показала низкую ошибку на опубликованных синтетических и двух реальных выборках, однако преимущество над классическим байесовским ориентиром на реальных данных невелико. Качество снижается при пропущенных записях, короткой истории, очень нерегулярных циклах, после родов, в перименопаузе и при гормональной контрацепции; дополнительный вход с тестом на овуляцию проверен лишь в небольшом исследовании. Модель не предназначена для диагностики, планирования контрацепции или зачатия и принятия лечебных решений и не является медицинским изделием. Веса распространяются по лицензии Apache-2.0.

Сценарии применения

  • прогнозирование вероятного окна начала следующей менструации
  • оценка распределения вероятностей для длительности цикла
  • персонализация прогноза цикла по истории пользователя на устройстве
  • уточнение прогноза по дню положительного теста на овуляцию
  • сравнение методов вероятностного прогнозирования цикла в исследованиях

Ограничения

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

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

aadya-m1

aadya-m1 forecasts when the next period is likely to start as a full probability distribution, not a single date. Open weights. It runs on your own machine, and your cycle data never has to leave it.

Aadya (आद्या) is Sanskrit for “the first” or “the beginning”, a fitting name for a model that forecasts the start of a cycle, whose day one is the first day of bleeding.

Need something tiny? aadya-m1-mini (0.84M parameters, 3.4 MB) is built for phones and low-power devices, with the same API and level accuracy on the public real data we have. See which model to use.

Paper | Live demo | Contribute on GitHub

Which model should I use?

aadya-m1aadya-m1-mini
Parameters256M0.84M
Weightsabout 1 GB3.4 MB
Best forservers, desktops, research, fine-tuning, the larger starting pointphones, browsers, low-power devices
Accuracy on 364 public real users (mean CRPS, lower is better)1.9301.932 (level)
Live demoaadya-m1-tryaadya-m1-mini-try

Same API, same inputs, same outputs. On the public real data we have, the two are level, so choosing the small one costs nothing in accuracy there; choose aadya-m1 when you want the extra capacity to fine-tune or to study larger-scale behaviour.

Highlights

  • #1 by mean error on every public benchmark we ran: AadyaBench simulated users, and the Creighton and Marquette real-data cohorts (364 real users). It is clearly ahead of the LSTM, Poisson-skip, rolling-median and 28-day methods, and slightly but clearly ahead of the classical Bayes reference on the pooled real users (about 1% lower error).
  • 18% lower error than the usual tracker method (a rolling median of recent cycles) on 364 public real users, and 21% lower on simulated users.
  • Honest uncertainty. It gives a probability for each possible cycle length (1 to 120 days), so an app can say "most likely these days, about 8 in 10 chance" instead of showing one brittle date.
  • Optional ovulation-test input (experimental). It narrows the 80% window from about 12 to about 7 days in a 41-participant study.
  • Private by design. Runs locally, learns from confirmed periods on the device, no accounts, no network calls.

Model details

TypeProbabilistic model for next-cycle length
Parameters~256M
InputPast cycle lengths (days), days since the last period, optional age group, optional ovulation-test day
OutputA probability for each cycle length from 1 to 120 days
Training dataNo real person's records were used
LicenseApache-2.0

Benchmarks

AadyaBench, mean error (CRPS, lower is better). Evaluation uses fixed seeds and public data only.

Mean error on the three boards

MethodSimulated users (539)Creighton, real (251, cross-fitted)Marquette, real (113)
aadya-m1*2.9252.0911.572
Classical Bayes reference3.0262.1191.580
LSTM (same training data)2.9652.1391.639
Poisson-with-skips model3.1092.4911.969
Rolling median (usual tracker method)3.7022.5361.950
28-day constant3.7122.7172.145
Rank of aadya-m1111

Error removed versus the usual tracker method

* On the real users the lead over the classical Bayes reference is small, about 1% of the error: clear on Creighton (251 users, cross-fitted) and on the pooled 364 users, within noise on Marquette alone (113 users). On the simulated users it is also clear. Every margin to the other methods is clear. Simulated users are a stand-in for real people.

Larger simulated board (5,400 users, same protocol): aadya-m1 2.889, LSTM 2.926, Bayes reference 2.988, rolling median 3.625. aadya-m1 is first, and the lead over the Bayes reference (0.099 lower) is concentrated in irregular cycles; on regular, drifting and follicular-plus-luteal users it is level with it or slightly behind.

Larger simulated board and per-scenario lead

aadya-m1 against aadya-m1-mini

With the optional ovulation-test input (41 participants, 110 cycles; mean error):

Mean error
aadya-m1 with ovulation-test input1.70
aadya-m1 without it2.43
Rolling median (usual tracker method)3.49

Ovulation-test input

The numbers behind every chart are in benchmarks/scores.json, and example outputs are in samples/.

Evaluation data: simulated users from AadyaBench; Marquette FedCycleData; Creighton Model cycle lengths (Stanford and Najmabadi, Hive, CC BY-NC 4.0); the mcPHASES dataset (PhysioNet) for the ovulation-test study.

Example outputs

Forecast distributions

Forgotten logs

Intended use

  • Apps and tools that show when a period is likely to start, with honest uncertainty
  • Research and education on probabilistic forecasting of cycle timing

Out of scope: diagnosis, contraception or conception planning, "safe days", treatment decisions, and anything that sends a person's data to a server. This is not a medical device.

Limitations

  • Results come from simulated users plus two public cohorts (364 real users in total). The lead over the classical reference on real data is small, about 1% of the error, and on an unseen simulated generator the model is slightly behind the reference and an LSTM (it stays clearly ahead of simple heuristics).
  • Less accurate for very irregular cycles, postpartum or perimenopause phases, hormonal contraception, and very short histories. With no history at all it matches a classical population prior.
  • Forgotten period logs hurt every method: for aadya-m1 the error rises from 3.0 to 9.5 when 20% of periods go unlogged. Apps should ask "did you forget to log a period?" when a cycle looks too long.
  • The ovulation-test input has been tested on one small study only.

Inference

pip install -r requirements.txt   # numpy, scipy, torch, safetensors, huggingface_hub
from huggingface_hub import snapshot_download
import sys

path = snapshot_download("manasdutta04/aadya-m1")
sys.path.insert(0, path)

from aadya_m1 import AadyaM1

model = AadyaM1.from_pretrained(path)

# Past cycle lengths in days (oldest first), days since the last period started
pmf = model.forecast([28, 30, 27, 29], days_since_last_period=0, age_group="25-34")
print(model.window(pmf))            # 80% window, for example (26, 33)

# Update daily as time passes without a period
pmf = model.forecast([28, 30, 27, 29], days_since_last_period=31, age_group="25-34")

# Optional, experimental: cycle day on which an ovulation test showed the surge had passed
pmf = model.forecast([24, 36, 29], days_since_last_period=17, ovulation_test_day=17)

# Learn from the real outcome, on this device only
model.observe_outcome(29)

pmf[k - 1] is the probability that the next cycle is k days long. Show the whole distribution or a window, never a single date presented as certain. Personalisation state (export_state) stays on the device; never upload it.

License

Apache-2.0. See LICENSE.

Contributing

Ideas, bug reports and forecasting methods are welcome at github.com/manasdutta04/aadya.

Citation

If you use aadya-m1, please cite the preprint (DOI 10.5281/zenodo.23236800):

@misc{dutta2026aadyam1,
  title  = {aadya-m1: An Open, On-Device Probabilistic Model for Calibrated Next-Period Forecasting},
  author = {Dutta, Manas},
  year   = {2026},
  doi    = {10.5281/zenodo.23236800},
  url    = {https://doi.org/10.5281/zenodo.23236800},
  note   = {Preprint}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · aadya-neural

Нельзя запустить

Временные ряды пока не поддерживаются.

Ревизия весов
3520463

0 моделей