Model Context Protocol (MCP) 开放协议解析与落地实践
前言:AI 时代的“万能插座”与 USB 革命在探讨 MCP(Model Context Protocol,模型上下文协议) 之前,让我们先回到个人电脑诞生初期的 20 世纪 80 年代。 在那个年代,给电脑插上一个外设是所有用户的噩梦。如果你买了一台打印机、一个鼠标或是一个游戏手柄,你必须面对不同厂商各自设计的奇形怪状的物理接口,还要在操作系统中手动安装专属的驱动程序。如果接口不兼容,你甚至需要去买一块专用的扩展卡。 这种混乱的局面,直到 USB(Universal Serial Bus,通用串行总线) 协议诞生才被彻底终结。USB 定义了统一的物理接口标准和统一的数据传输协议,任何硬件厂商只要遵循 USB 标准,其设备就能插在任何支持 USB 的电脑上即插即用。 现在的 AI 应用领域正经历着一模一样的“前 USB 时代”。 大语言模型(LLM)能力强大,但它们默认是被困在沙盒里的“信息孤岛”。为了让 AI 能够连接你的代码库、读取数据库、调用 GitHub API 或是浏览网页,开发者们不得不面对极度割裂的局面: 针对 OpenAI,你需要按照其 tools 规范写一套 ...
使用 LLaMA-Factory 进行开源大模型 LoRA 微调
前言前面那篇微调入门讲了概念和决策框架。这篇是纯操作——用 LLaMA-Factory 这个工具,不用写多少代码,就能完成 LoRA 微调。 选 LLaMA-Factory 的原因是它把模型加载、数据预处理、训练配置、评估、导出这些步骤全封装好了,支持 Web UI 操作,对新手友好。 一、端到端微调工程流 flowchart LR subgraph Prep["1. 数据准备与注册"] D["业务指令数据 (my_data.json)"] --> Reg["注册至 dataset_info.json"] Base["基座模型 (ModelScope / HF)"] --> Reg end subgraph Train["2. LLaMA-Factory SFT"] Reg --> Engine["LoRA / QLoRA 训练引擎<br/...
基于 Unsloth 降低大模型微调成本的实践
前言Unsloth 是目前最激进的微调加速方案——通过手动优化的 Triton kernel 和一系列工程技巧,把微调速度提升 2-5 倍,显存占用降低 50-80%。 最大的卖点是:在 Google Colab 的免费 T4 GPU(16GB 显存)上就能微调 7B 模型。 [!WARNING]系统平台环境提醒:Unsloth 深度依赖针对 Linux 优化的 OpenAI Triton 算子,不支持原生 Windows(在 Windows CMD/PowerShell 下直接 pip 安装会导致 C++ 扩展编译失败)。Windows 用户请务必在 WSL2 (Ubuntu 22.04+) 或直接在 Google Colab / 云端 Linux GPU 实例 中运行。 一、加速与显存节省原理为什么 Unsloth 能够实现 25 倍训练加速,且显存开销直降 50%80%? flowchart TD subgraph Traditional["传统 PyTorch + HuggingFace 训练"] ...
微调入门:什么是 Fine-tuning,什么时候需要它
前言网上很多文章上来就教你跑微调代码,但很少讲清楚一个根本问题:你需不需要微调。 这篇文章先回答”什么时候需要微调”,再讲清楚微调的核心概念和方法,最后给出一个决策框架。 一、大模型训练全景:微调处于什么位置?要理解微调,首先要看清大模型训练的三大核心阶段: flowchart LR subgraph Phase1["阶段一:预训练 (Pre-training)"] Raw["海量无标签文本 (万亿 Token)"] --> Base["基座模型 (Base Model)<br/>具备语言续写与通识能力"] end subgraph Phase2["阶段二:监督微调 (SFT)"] Base --> Pair["高质量问答/指令对 (几千~几十万)"] Pair --> SFT["指令对齐模型 (Instruct/Chat)&...
Claude Code 扩展机制:理解 MCP、Skills 与 Agent 协作
前言Claude Code 不是一个孤立的命令行工具——它通过 MCP、Skills 和 Agent 三层机制,可以接入外部数据源、复用工作流程、编排多智能体协作。 这篇文章从概念到配置,把这三种机制说清楚。 一、MCP(Model Context Protocol,模型上下文协议)MCP 是什么MCP 是 Anthropic 提出的一套开放协议,让 AI 模型能安全地访问外部工具和数据源。你可以把它理解为”AI 的 USB 接口”——只要实现了 MCP 协议,任何工具和数据源都能被 Claude 调用。 在没有 MCP 之前,让 AI 查数据库或调 API 需要自己写代码封装 Function Calling。有了 MCP,第三方直接提供现成的 MCP Server,配置一下就能用。 MCP 的架构与底层通信机制MCP 架构通过统一的标准化协议,将 AI 大模型与底层工具/数据源实现了解耦解绑定: flowchart LR Client["Claude Code / Cursor (MCP 客户端)"] ...
Claude Code + CCSwitch 使用教程:从安装到实践
前言Claude Code 是 Anthropic 推出的命令行 AI 编程助手,直接在终端里运行。和 Copilot 的补全模式不同,Claude Code 是对话式的——你告诉它要做什么,它读你的代码、写修改、跑命令,像一个在终端里随时待命的结对程序员。 CCSwitch 是社区开发的一个配置管理工具,用来解决 Claude Code 的多账号切换、Token 管理、模型选择等问题。 一、Claude Code 核心架构与运行机理 flowchart LR subgraph User["用户终端交互"] T["终端命令行 (claude / claude -p)"] end subgraph Host["Claude Code 运行引擎"] T --> Engine["Claude CLI 核心引擎 (Node.js)"] Engine --> LLM["Anthropic Clau...
AI Agent 入门:让大模型自己干活
前言到目前为止我们讲的大模型用法——不管是普通对话还是 RAG——本质上都是”你问一句,它答一句”。 Agent(智能体)让模型更进一步:给一个目标,它自己规划步骤、调用工具、检查结果、修正错误,直到把事办成。就像你交代下属一个任务,不需要把每个细节都告诉他怎么做。 一、Agent 和普通 Chat 的区别12345678910普通 Chat:你: "今天北京天气怎么样?"模型: "抱歉,我无法获取实时天气信息。"Agent:你: "帮我查一下北京今天的天气,如果下雨就提醒我带伞"Agent 做了三件事:1. 调用天气 API: get_weather("北京") → "多云转小雨,15-22°C"2. 分析结果:有小雨3. "今天北京多云转小雨,15-22°C,出门记得带伞。" Agent 本质上是 LLM + 工具 + 循环 的组合。LLM 负责思考规划,工具负责执行实际操作,循环负责检查修正。 二、ReAct 模式这是目前 Agent 最主流的实现模...
基于 RAG 架构构建企业内网文档问答机器人
前言前面那篇 RAG 入门讲了基本原理和最小 Demo。这篇从实际部署的角度,做一个能真正给团队用的文档问答机器人。 完整的流程包括:多种格式文档导入 → 智能切片 → 向量化存储 → 检索优化 → 大模型回答 → Web 界面。 一、项目架构 flowchart TD subgraph Ingestion["文档导入与切片 (离线/后台)"] D["企业多源文档 (PDF / Word / MD / TXT)"] --> L["多格式文档加载器 (Doc Loader)"] L --> S["语义与结构智能切片器 (Text Splitter)"] S --> E["Embedding 模型 (OpenAI / BGE)"] E --> V[("向量数据库 ChromaDB")] S --&...
RAG 入门:给大模型接上你的知识库
前言大模型的知识截止于训练数据的时间点,而且不知道你公司内部的产品文档、技术手册、规章制度。 RAG(Retrieval-Augmented Generation,检索增强生成)解决了这个问题:先把你的文档”喂”给系统,用户提问时,系统先检索最相关的文档片段,再把片段和问题一起发给大模型。这样模型就能基于你的私有知识来回答了。 这篇文章用最小的代码量,跑通一个完整的 RAG 流程。 一、RAG 的核心流程 flowchart TD subgraph Offline ["离线数据处理 (Ingestion)"] D["企业私有文档 (PDF/MD/TXT)"] --> S["文本分块切片 (Chunking)"] S --> E["Embedding 向量化 (bge/OpenAI)"] E --> DB[("向量数据库 (Chroma/Milvus)")] ...
Function Calling 进阶:让 AI 调用你的函数
前言前面的 OpenAI API 文章演示了基本的对话。这篇讲 API 中最重要也最容易被低估的功能:Function Calling——让模型不仅能”说话”,还能”做事”。 Function Calling 不是让模型执行你的代码,而是让模型决定什么时候该调用哪个函数,以及用什么参数。模型返回函数名和参数,你的代码负责执行,然后把结果返回给模型。 一、基本交互时序机制Function Calling 的核心是“大模型做决策与参数抽取,客户端执行逻辑并回传数据”。其标准交互时序如下: sequenceDiagram autonumber actor User as 终端用户 participant App as 你的应用程序 (宿主) participant LLM as 大模型 (GPT-4o) participant Tool as 外部函数 / 真实 API User->>App: "北京今天天气怎么样?" App->>LLM: 携带用户输入 + to...