项目简介

secondKarlMarx 是一个基于大型语言模型构建的马克思主义理论助手。它通过监督微调(SFT)技术,使模型能够深入理解和解释马克思主义理论。本项目利用 Model Context Protocol (MCP) 实现模型的远程访问,允许客户端应用程序轻松连接并与部署在服务器上的模型进行交互,获取理论解释和对话能力。

主要功能点

  • 马克思主义理论问答能力: 基于微调后的大语言模型,能够回答与马克思主义理论相关的各种问题。
  • 通过 MCP 协议进行远程访问: 客户端可以在本地便捷地连接和使用部署在远程服务器上的模型。
  • 支持多轮对话和历史清除: MCP 服务器维护会话的对话历史,并提供工具供客户端清除历史。
  • 提供经过高效微调的大语言模型: 项目包含使用 LoRA 和 DeepSpeed 等技术进行分布式模型训练的代码。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ChizhongWang/secondKarlMarx.git
    cd secondKarlMarx
  2. 创建并激活Python虚拟环境:
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    # 或 venv\Scripts\activate  # Windows
  3. 安装依赖:
    pip install -r requirements.txt
  4. (可选)Hugging Face认证: 如果需要访问受限的基础模型或数据集,请设置您的Hugging Face令牌环境变量。

服务器配置(针对MCP客户端)

MCP客户端需要一个配置文件(例如项目中的 'mcp/mcp_config.json')来指定如何连接到MCP服务器。您需要根据您的服务器部署情况修改此文件,提供服务器的连接地址和端口。

一个配置示例(对应 'mcp/mcp_config.json' 的内容结构)如下:

{
  "mcpServers": {
    "secondKarlMarx": {
      "command": "python",
      "args": ["/path/to/your/start_mcp_server.py", "--model_path", "/path/to/your/model", "--host", "your-server-ip", "--port", "8000"],
      "host": "your-server-ip",
      "port": 8000
    }
  }
}
  • '"secondKarlMarx"': 这是MCP服务器的名称,客户端将通过此名称引用服务器。
  • '"command"' 和 '"args"': 如果客户端配置为可以启动服务器进程,这里指定启动命令和参数。'/path/to/your/start_mcp_server.py' 应替换为您服务器上实际的启动脚本路径。'--model_path' 指定模型存储路径,'--host' 和 '--port' 指定服务器监听的地址和端口。
  • '"host"' 和 '"port"': 这是客户端连接到已运行服务器的关键信息。请将 '"your-server-ip"' 替换为您的服务器实际可访问的公共IP地址或域名,'8000' 替换为服务器监听的端口。

基本使用方法

  1. 训练模型(如果在云服务器上): 如果您尚未训练模型,请先参考 README 中的训练指南运行训练脚本('train.py' 或 'run_distributed_training.sh')。训练完成后,会在 './results/final_model' (或您配置的路径) 生成微调后的模型文件。
  2. 启动MCP服务(在云服务器上): 在模型训练完成后,使用 'start_mcp_server.py' 脚本启动MCP服务器。确保通过 '--model_path' 参数指定正确的模型文件路径,并通过 '--host' 和 '--port' 指定监听地址和端口。
    python start_mcp_server.py --model_path /path/to/your/model --host 0.0.0.0 --port 8000
    (请将 '/path/to/your/model' 替换为服务器上实际的模型路径,'0.0.0.0' 表示监听所有网络接口,请根据需要配置服务器防火墙以允许外部访问指定的端口)
  3. 在本地使用客户端连接:
    • 在您的本地计算机上,确保已安装项目依赖。
    • 编辑本地的 'mcp/mcp_config.json' 文件,将 '"host"' 和 '"port"' 修改为云服务器的实际公共IP或域名和端口。
    • 运行客户端脚本 'mcp/client.py',它通常会启动一个交互式界面(如基于 Gradio 的 Web UI)。
    python mcp/client.py
    • 通过客户端界面与远程部署的马克思主义理论助手进行对话。

信息

分类

AI与计算