我训练了一个模型来预测我的血糖 [P]

Reddit r/MachineLearning 模型

摘要

作者训练了一个仅编码器的 transformer,利用过去的血糖、碳水化合物、胰岛素以及未来的进餐/胰岛素输入来预测未来的血糖水平,并发布了采用 MIT 许可的源代码和预训练权重。

这是一个仅编码器的 transformer,它接收过去的(血糖 + 碳水化合物 + 胰岛素)和未来的(碳水化合物 + 胰岛素)数据,并预测未来 2 小时的血糖。已宣告的进餐和追加剂量/基础剂量用于作为预测的条件。上下文长度是可变的(8-24 小时),模型可以在自回归模式下工作,以预测接下来超过 2 小时的情况。它还会通过查看上下文来预测时间,但从不将时间作为输入。架构是 BERT 风格的:双向注意力,并对未来的 BG 进行掩码。使用 DILATE 损失来拟合中位数线;使用 pinball 损失来拟合不确定度带。这两者通过 Kendall-Gal 进行“混合”。所有血糖数据都处于 Kovatchev 风险空间中,并重新参数化到 [40, 400] 范围。我训练了 4 个模型类别(nano、small、medium、large),每个类别有 3 个变体(仅在模拟器上预训练;在 ohiot1dm 上预训练+微调;在 ohiot1dm + azt1d + shanghait1dm 上预训练并微调)。最大的模型约有 1700 万参数(16 层,每层 16 个头)。最大模型的预训练耗时约 48 小时。微调耗时不到 10 分钟。还有一个在我自己的数据上微调的版本,我目前正在手机上运行它。源代码可在此处获取,采用 MIT 许可证发布。该仓库还包含训练权重和评估数据的链接。我从三月起就一直在做这个项目。仍有一些地方需要改进(例如,它总是需要宣告的碳水化合物 + 胰岛素,如果能不依赖这些进行预测会更好),但我决定把它发布在这里,想听听大家的意见(如果你们有任何问题,我也乐意回答)。编辑:我的模型被“身材羞辱”了 ;_; 所以我只想强调,有一个 nano 版本,参数少于 40K。
查看原文

相似文章

下一代潜在预测变换器 [R]

Reddit r/MachineLearning

微软研究院提出Next-Latent Prediction (NextLat)方法,一种自监督学习方法,训练变换器预测自身下一个潜在状态,从而形成用于推理和规划的紧凑世界模型,并通过自推测解码实现高达3.3倍的推理加速。