贝叶斯MCP
用于贝叶斯推理、推断和信念更新的模型调用协议(MCP)服务器。该工具使LLM能够执行严格的贝叶斯分析和概率推理。
特性
- 🧠 贝叶斯推断:使用MCMC抽样用新证据更新信念
- 📊 模型比较:使用信息标准比较竞争模型
- 🔮 预期推理:生成具有不确定性量化的预测
- 📈 可视化:创建后验分布的可视化
- 🔌 MCP集成:与支持MCP的任何LLM无缝集成
安装
开发安装
克隆存储库并安装依赖项:
git clone https://github.com/wrenchchatrepo/bayesian-mcp.git
cd bayesian-mcp
pip install -e .需求
- Python 3.9+
- PyMC 5.0+
- ArviZ
- 数值Python
- Matplotlib
- 快速 API
- 乌维科恩
快速开始
启动服务器
# Run with default settings
python bayesian_mcp.py
# Specify host and port
python bayesian_mcp.py --host 0.0.0.0 --port 8080
# Set log level
python bayesian_mcp.py --log-level debug服务器将启动并监听指定主机和端口上的MCP请求。
API使用
贝叶斯MCP服务器通过其API公开了几个功能:
1.创建模型
使用指定变量创建新的贝叶斯模型。
# MCP Request
{
"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.更新信念
用新的证据更新模型信念。
# MCP Request
{
"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.做出预测
使用后验分布生成预测。
# MCP Request
{
"function_name": "predict",
"parameters": {
"model_name": "my_model",
"variables": ["theta"],
"conditions": {
"x": [1.0, 2.0, 3.0]
}
}
}4.比较模型
使用信息标准比较多个模型。
# MCP Request
{
"function_name": "compare_models",
"parameters": {
"model_names": ["model_1", "model_2"],
"metric": "waic"
}
}5.创建可视化
生成模型后验分布的可视化。
# MCP Request
{
"function_name": "create_visualization",
"parameters": {
"model_name": "my_model",
"plot_type": "trace",
"variables": ["theta"]
}
}例子
这 examples/ 目录中包含几个示例,演示如何使用贝叶斯MCP服务器:
线性回归
一个简单的线性回归示例来演示参数估计:
python examples/linear_regression.pyA/B测试
转换率的贝叶斯A/B测试示例:
python examples/ab_test.py支持的分发
贝叶斯引擎支持以下分布:
normal:正态(高斯)分布lognormal:对数正态分布beta:Beta分布gamma:伽马分布exponential:指数分布uniform:均匀分布bernoulli:伯努利分布binomial:二项式分布poisson:泊松分布deterministic:确定性转换
MCP集成
此服务器实现了模型调用协议,使其与各种LLM和框架兼容。要将其与LLM一起使用:
import requests
response = requests.post("http://localhost:8000/mcp", json={
"function_name": "create_model",
"parameters": {
"model_name": "example_model",
"variables": {...}
}
})
result = response.json()许可证
麻省理工学院
鸣谢
基于Wrench AI框架的概念和代码。
