贝叶斯msp
一种模型调用协议服务器,使大型语言模型能够进行严格的贝叶斯分析和概率推理,包括推断、模型比较和具有不确定性量化的预测建模。
服务介绍
贝叶斯 MCP
一种用于贝叶斯推理、推断和信念更新的模型调用协议(MCP)服务器。该工具使大型语言模型(LLMs)能够执行严格的贝叶斯分析和概率推理。
特性
- 🧠 贝叶斯推断:使用 MCMC 采样方法根据新证据更新信念
- 📊 模型比较:使用信息准则比较竞争模型
- 🔮 预测推断:生成带有不确定性量化的预测
- 📈 可视化:创建后验分布的可视化
- 🔌 MCP 集成:与任何支持 MCP 的 LLM 无缝集成
安装
开发安装
克隆仓库并安装依赖项:
bash
git clone https://github.com/wrenchchatrepo/bayesian-mcp.git
cd bayesian-mcp
pip install -e .
依赖项
- Python 3.9+
- PyMC 5.0+
- ArviZ
- NumPy
- Matplotlib
- FastAPI
- Uvicorn
快速开始
启动服务器
bash
使用默认设置运行
python bayesian_mcp.py
指定主机和端口
python bayesian_mcp.py --host 0.0.0.0 --port 8080
设置日志级别
python bayesian_mcp.py --log-level debug
服务器将启动并在指定的主机和端口上监听 MCP 请求。
API 使用
贝叶斯 MCP 服务器通过其 API 提供了几个功能:
1. 创建模型
使用指定变量创建一个新的贝叶斯模型。
python
MCP 请求
{
"function_name": "create_model",
"parameters": {
"model_name": "my_model",
"variables": {
"theta": {
"distribution": "normal",
"params": {"mu": 0, "sigma": 1}
},
"likelihood": {
"distribution": "normal",
"params": {"mu": "theta", "sigma": 0.5},
"observed": [0.1, 0.2, 0.3, 0.4]
}
}
}
}
2. 更新信念
使用新证据更新模型信念。
python
MCP 请求
{
"function_name": "update_beliefs",
"parameters": {
"model_name": "my_model",
"evidence": {
"data": [0.1, 0.2, 0.3, 0.4]
},
"sample_kwargs": {
"draws": 1000,
"tune": 1000,
"chains": 2
}
}
}
3. 进行预测
使用后验分布生成预测。
python
MCP 请求
{
"function_name": "predict",
"parameters": {
"model_name": "my_model",
"variables": ["theta"],
"conditions": {
"x": [1.0, 2.0, 3.0]
}
}
}
4. 比较模型
使用信息准则比较多个模型。
python
MCP 请求
{
"function_name": "compare_models",
"parameters": {
"model_names": ["model_1", "model_2"],
"metric": "waic"
}
}
5. 创建可视化
生成模型后验分布的可视化。
python
MCP 请求
{
"function_name": "create_visualization",
"parameters": {
"model_name": "my_model",
"plot_type": "trace",
"variables": ["theta"]
}
}
示例
examples/ 目录中包含几个示例,演示如何使用贝叶斯 MCP 服务器:
线性回归
一个简单的线性回归示例,演示参数估计:
bash
python examples/linear_regression.py
A/B 测试
一个贝叶斯 A/B 测试示例,用于转换率:
bash
python examples/ab_test.py
支持的分布
贝叶斯引擎支持以下分布:
normal:正态(高斯)分布lognormal:对数正态分布beta:贝塔分布gamma:伽玛分布exponential:指数分布uniform:均匀分布bernoulli:伯努利分布binomial:二项分布poisson:泊松分布deterministic:确定性变换
MCP 集成该服务器实现了模型调用协议(Model Calling Protocol),使其与广泛的LLM和框架兼容。要将其与您的LLM一起使用:
python
import requests
response = requests.post("http://localhost:8000/mcp", json={
"function_name": "create_model",
"parameters": {
"model_name": "example_model",
"variables": {...}
}
})
result = response.json()
许可证
MIT
致谢
基于Wrench AI框架的概念和代码。