将机器学习临床预测模型融入AI agent的尝试(一)
我主要是使用机器学习制作临床预测模型和相关的应用,最近考虑的事情是自己之前的的工作能不能和AI agent进行融合,将AI 对自然语言理解能力和预测模型的预测能力结合在一起,让用户在AI agent界面使用临床预测模型。经过一段时间的学习和尝试,虽然还没有完全实现这个功能,在这里和大家做阶段性的分享。
1. 使用fastapi构建临床预测模型
目前来说,预测模型融合到AI agent 唯一的形式就是以API形式,即将构建好的预测模型部署到网络上,然后通过API被agent 所使用,所以之前streamlit等可视化形式就不适合,需要使用fastapi等来构建临床预测模型,然后将其部署到网络上。
在这里我从github上下载了一个fastapi构建的简单的糖尿病预测模型,然后将其部署到Render平台上,接下来可以调试一下生成的API,可以借助一些平台,比如apifox。
2. 百度千帆构建工作流组件调用预测模型API
Agent调用API是在工作流组件那里, 预测模型API是固定的输入,输出是string形式,是“这个人是糖尿病”这样一个结论,是为了后续的大语言模型来进行引用。API引用位于“开始”模块之后,在“开始”模块上增加自定义参数作为模型的输入,文档中说自定义参数是大模型从用户输入中提取的,这是后话,调试组件的时候可以手动输入模型参数。预测模型API后接着是LLM模块,对API的输出进行理解和解释,最后形成输出(见图)。目前在组件内调试是成功的,但是是不是有更贱简便的组合还有待遇进一步研究。
agent组件调试的一点经验:大模型中会要求撰写promot,对LLM的输出进行规定,这里要用双括号{{query}}引用预测模型API输入到LLM中的结果,否则可能输出不理想。
总结
- 之所以说是阶段性的, 一方面是还没有找到预测模型融入agent最佳的形式,包括输入和输出是不是与其他的模块结合更好,比如知识库模块;另一方面,是在应用层面还没有完成测试。所以也欢迎有经验的各位多提意见。
- Agent与机器学习结合起来,具有互补的效果,机器学习可以利用agent丰富的知识,而agent可以使用机器学习的依据大数据形成的预测能力。
敬请大家期待后续的尝试!