Piston v0.1
причинная модель для временных рядов, которая умеет отказываться от ответа
Piston v0.1 — небольшой исследовательский релиз OlynkAI (Apache-2.0) для причинного вывода по временным рядам. На входе — таблица измерений до 9 переменных и 128+ шагов и what-if вопрос: если на шаге t задать treatment равным x1 вместо x0, как изменится target через k шагов (k = 1, 2, 3). Модель возвращает эффект с 90% диапазоном, вероятность p_answerable и вероятность достижимости эффекта.
🔎 Ключевые особенности
- ⚙ 3-seed ансамбль axial transformer: около 4M параметров на модель, 12M всего; обучение только на синтетических мирах.
- 🎯 Предсказывает квантили эффекта 5/50/95 для лагов 1–3, а также p_answerable и reachability.
- 🛑 Отказывается отвечать при p_answerable < 0.5; бейзлайны отвечают на все вопросы, включая ~32%, не идентифицируемые по панели.
- 🧩 Читает данные в контексте: без подгонки под каждый датасет, по последним 256 шагам.
- 💡 Может принимать причинный граф: edges и hidden; при известном графе лучше использовать как оценщик внутри exact identification.
💡 Пример
import numpy as np
from piston import Piston
pst = Piston.from_pretrained(".")
panel = np.loadtxt("my_data.csv", delimiter=",")
out = pst.predict(panel, treatment=0, target=2, lag=1, x0=10.0, x1=12.0)
print(out['p_answerable'], out['effect'], out['lo90'], out['hi90'])
Подробнее
Бенчмарк: 4 592 вопроса в 998 синтетических мирах из 23 семейств, не виденных при обучении. T1 — 0.280 против 0.387 у лучшего бейзлайна; confident-wrong — 35.0%.С известным графом exact identification + Piston: T1 — 0.112, confident-wrong — 7.1%.
Ограничения: только синтетика, до 9 переменных, эффекты до 3 шагов, одна сущность на панель, стационарные ряды; оценки на реальных данных нет.








Комментарии