记录一个LLM+API类型的临床预测模型APP(糖尿病Cox预测模型)的过程

记录一个LLM+API类型的临床预测模型APP(糖尿病Cox预测模型)的构建过程

LLM代表的是大语言模型,API代表的是机器学习模型,LLM+API是说将机器学习模型以API的形式引入到LLM,让机器学习模型以对话的方式与用户交流而服务于临床实践的APP形式,是区别与streamlit等具有可视化界面的APP的另外一种APP形式,其优点是结合了LLM丰富的知识储备和对用户需求的理解能力,以及机器学习模型对大数据的拟合能力,能够带给用户不一样的使用体验。

这次构建的是糖尿病COX预测模型APP,是计划制作的慢病预测APP系列的第一个,这里主要记录构建的过程。

1. 通过数据分析构建并储存预测模型

选择构建糖尿病类的预测模型,是因为遇到了数据量大且质量好的数据,然后使用scikit-survival包的生存随机森林算法构建的预测模型,代码和数据可以在和鲸社区中找到。

2. 使用fastapi构建API服务并部署

构建好模型之后,选择fastapi包来构建API服务,这个过程比较程式化,借助AI来完成,最后用宝塔面板中的python部署工具部署构建好的API服务,这个过程没有太复杂的,询问AI工具都可以解决。摸索过程中,还想过采用render网站来部署,但是免费的空间不够,没有部署成功,这也是机器学习类API部署可能遇到的问题之一。

部署好之后为了能够进行外网访问, 采用了cploar的外网穿透功能,这是一个网络服务,就是将自己的电脑当做服务器来使用,可以节省租赁服务器的费用,像机器学习这种只需要CPU就可以运行的算法,家用笔记本电脑就可以胜任。

3. 在百度千帆平台将API引入LLM

这样的平台国内主要是千帆和扣子,各有特点,操作相似,都可以用。一般是先把API制作成组件,然后再把组件添加到应用。
因为LLM是通过变量名称来匹配识别输入的变量的,所以在构建模型的时候变量名称就要设定好,要有自明性,能辨别出含义,然后在promot里面也要进行各种关于变量的说明,比如单位和取值范围,还要注意变量的类型。除了以上功能,这个应用的promot里面还设定一组模拟数据,两种预测方法的说明。
这个应用还引入了“健康小助手”组件来回答糖尿病预防和治疗的医疗问题。

4. 使用过程

APP获取信息都是通过对话完成的,设定了三个预制问题,首先是询问“使用之前需要了解难哪些?”,可以获得输入变量信息的类型、取值范围等信息;其次是“给出一组模拟数据”和“将模拟数据输入模型获得第3年的结果”两个提问的例子,可以完成对模型的体验。网页版链接是糖尿病时间预测模型。在微信小程序中也可以进行体验。

5. 后续

在现在的APP中,信息都是通过文字来展示的,略感不足,后续会尝试引入到gradio可视化界面中来提升体验。

机器学习模型感觉是一直不愠不火,缺乏应用途径可能是原因之一,而医学预测模型的原因可能就更多一些,还有伦理、医疗责任等问题,相对地在慢病防控领域,主要是个人在把控,或许是让机器学习模型落地更适合的一个领域。欢迎大家
聚在一起探讨。

你可能感兴趣的:(APP,construction,web,app)