Sunrise

`长路漫漫,唯剑作伴`


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

使用FastMCP开发MCP服务简单尝试

发表于 2025-06-22 | 分类于 大语言模型

使用FastMCP开发MCP服务简单尝试

FastMCP安装和资料汇总

FastMCP 的完整文档: https://gofastmcp.com/

FactMCP安装指南:https://gofastmcp.com/getting-started/installation

从官方 MCP SDK 的 FastMCP 1.0 升级到 FastMCP 2.0 通常很简单。核心服务器 API 高度兼容,在许多情况下,将您的 import 语句从
from mcp.server.fastmcp import FastMCP
更改为
from fastmcp import FastMCP 就足够了。

另外mcp/fastmcp包对python版本要求>=python3.10,所以在本地另外安装了python3.11,然后在pycharm中配置虚拟环境,base环境指向安装的python3.11路径。
安装fastmcp (V2版本)

pip install fastmcp

如果想要在命令行中使用此环境,可以打开git bash,切换到该虚拟环境目录下:

source python311/Scripts/activate

FastMCP:https://github.com/jlowin/fastmcp

阅读全文 »

MCP初步探索

发表于 2025-05-18 | 分类于 大语言模型

MCP初步探索

MCP服务指南

MCP服务:https://mcpservers.org/

MCP 终极指南:https://guangzhengli.com/blog/zh/model-context-protocol

MCP与Function call的区别?
目前的理解就是,MCP是一堆方法调用声明放到一个MCP服务中,不同应用的方法可以分别定义在不同的MCP服务中,然后大模型根据需要自己去取;
而Function call就是把方法声明和大模型放在一起直接调。

MCP是一种客户端-服务器架构的通信协议,需要特定的客户端环境来接入。
单独的大模型本质上只是一个推理引擎,缺乏处理MCP协议所需的架构组件。

所以MCP的使用方式是搭配一些客户端如cursor使用,然后像cursor里面还可以选择驱动MCP服务的大模型(大脑)
而如果仅仅想给一个大模型赋予“行动”的能力,可以通过function call的形式。

但是这两种方式的共同前提是:需要大模型支持function call,因为大语言模型只具备文本生成能力,如果支持function call的大模型可以通过传参和返回特定参数明确告知用户此步骤是否调用工具,而如果不支持的大语言模型在这方面能力就有所缺失,不过依然可以通过控制大模型输出的格式,如果使用工具调用则返回特定格式,来达到这一目的,但是效果可能不如直接支持function call的大模型。

阅读全文 »

大模型Lora微调实践(思维链版)

发表于 2025-04-14 | 分类于 大语言模型

大模型Lora微调实践(思维链版)

上一篇已经介绍基础版的Lora微调实现过程,这一篇记录如何微调大模型使其输出带思维链。

准备工作

要求大模型输出带思维链,那么就要求微调数据集本身带有思维链,所以需要选择带有思维链的数据集

数据集来自魔搭社区的 medical-o1-reasoning-SFT:

https://modelscope.cn/datasets/AI-ModelScope/medical-o1-reasoning-SFT

数据集格式为:

1
2
3
4
5
{
"Question": "在发生医疗事故或事件且临床诊断不能明确死亡原因的情况下,患者死亡后应该在多长时间内进行尸检?",
"Complex_CoT": "哎,发生医疗事故的时候,真是比较棘手啊。\n\n如果这个时候患者去世了,但具体的死亡原因不清楚,那真得赶紧弄个尸检看看。\n\n尸检不仅能帮助我们找出死亡原因,还有助于解决医疗事故责任问题,保护家属的权益。\n\n其实,我们国家应该对这种情况有相关规定吧,比如《医疗事故处理条例》之类的。\n\n听说很多法律都建议在患者死亡后尽快进行尸检。\n\n对哦,通常法律上是让在48小时内搞定尸检,这样可以保证结果的准确性。\n\n不过有时候,也可能因为家庭的原因或者特殊法律程序的需求,哪怕规定是48小时,实际操作可能会稍有延迟。\n\n但不管怎样,根据法规还是希望尽量在这个时间线内完成检查,以免耽误事情。\n\n除此之外,如果家属同意的话,也许还可以商量延迟的可能性。\n\n所以说,在出现医疗事故这样的敏感情况下,还是真得按法律走,48小时内完成尸检最为稳妥。",
"Response": "根据中国《医疗事故处理条例》的相关规定,在发生医疗事故或事件并且无法明确死亡原因的情况下,通常建议在患者死亡后的48小时内进行尸检。这个时间限制主要是为了保证尸检结果的准确性,因为在过长的时间后,尸体组织可能发生变化,影响结果的精确性。\n\n不过,确切的时间可能会因为个案的特殊性而略有不同,比如遇到复杂的法律程序或家庭方面的考虑。通常在这种情况下,会在充分沟通的基础上,尽力在法律规定的时间内达成一致。\n\n所以,一般情况下,48小时内进行尸检是一个比较合理和法律支持的时间框架。"
}

本实验环境:

GPU 显存 >= 8GB

pytorch==2.5.0+cu118

transformers==4.47.1

peft==0.14.0

参考资料:

https://mp.weixin.qq.com/s/hOgeu6EPbuaQgVHyjij-kg

阅读全文 »

大模型LoRA微调实践

发表于 2025-03-29 | 分类于 大语言模型

大模型LoRA微调实践

准备工作

数据集:采用 GitHub 上的 Chinese-medical-dialogue-data 中文医疗对话数据集

Github地址如下:
https://github.com/Toyhom/Chinese-medical-dialogue-data

微调模型:
Qwen 1.5B模型(Qwen2、2.5均可以,可以自由选择)
模型权重文件可以先从huggingface官网下载,或者从魔塔社区下载速度更快:
https://modelscope.cn/models/Qwen/Qwen2.5-1.5B-Instruct

本实验环境:

GPU 显存 >= 8GB

pytorch==2.5.0+cu118

transformers==4.47.1

peft==0.14.0

参考资料:

https://blog.csdn.net/YoungOne2333/article/details/144718615

阅读全文 »

基于boundary smoothing的中文NER

发表于 2024-12-19 | 分类于 自然语言处理

基于boundary smoothing的中文NER

论文解读

论文《Boundary Smoothing for Named Entity Recognition》

GitHub:GitHub - syuoni/eznlp: Easy Natural Language Processing

解读略

环境安装

packaging包要根据requirements要求安装指定版本:packaging==20.4 ,否则运行程序会报错,这个包最好在所有包安装完成之后再更新至这个版本,因为这个包版本比较老,可能会影响其他包的安装(安装不上)。如果这个包版本是20.4的情况下去安装其他包,可能会报类似下面的错误。
TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'

numpy==1.18.5死活安装不上,ModuleNotFoundError: No module named 'distutils.msvccompiler';安装1.19.5代替
pandas=1.0.5死活安装不上,错误同上;安装1.2.0代替

安装flair=0.8还是安装不上,需要C++环境,安装build Tools工具选择安装C++相关的组件之后就可以成功安装了

阅读全文 »

中文命名实体识别——flat lattice transformer

发表于 2024-11-29 | 分类于 自然语言处理

flat lattice transformer

论文解读

论文《FLAT: Chinese NER Using Flat-Lattice Transformer》

LeeSureman/Flat-Lattice-Transformer: code for ACL 2020 paper: FLAT: Chinese NER Using Flat-Lattice Transformer (github.com)

解读略

环境安装

Windows环境

python和pytorch版本可以根据自己的环境情况,其他包按照官网的说明安装
numpy包,安装1.16.4版本需要C++环境,安装不上
安装超过1.24的版本会因为fitlog库中使用了np.str而报错,虽然1.20之后就废弃了np.str之后,但是安装<1.24的版本还是能跑的
我这里安装了1.23.5

pytorch,项目要求安装版本为1.2.0,但是因为我的cuda版本是12.0,安装不上1.2.0的版本,一开始安装的是2.0.1的版本,但是因为版本太新,在torch.optim.lr_scheduler中其LambdaLR(以及其他类型的调度器)均继承的是LRScheduler类,
而在fastNLP中,其要求为:

阅读全文 »

反爬(十)

发表于 2024-06-01 | 分类于 爬虫

反爬十

之前搞的有反爬的网站基本都是采用debug,然后扣代码的方式,扣出来核心的代码,自己通过node运行或者使用python运行,但是有些情况下难以扣出来核心的代码,或者说这样做的效率非常低,所以还有另一种方式就是拿出全部js,然后直接运行我们需要的方法,如果报错再去定位问题,具体解决。下面列举两个网站的例子。

信用邯郸

网址:https://credit.hd.gov.cn/xyxxgs/

请求列表页时,需要以上参数,其中nonceStr、queryContent、sign都是通过js代码通过一定的逻辑生成的。

阅读全文 »

Simple Lexicon代码剖析

发表于 2024-04-27 | 分类于 自然语言处理

Simple Lexicon代码剖析

Simple Lexicon的原理比较简单,至少不涉及模型架构方面的改写,只是将所有词的embedding融合到字符的embedding中(详情请看原论文,上一篇),其项目源码其实是用了Lattice LSTM的源代码,然后在此基础上改成了python3.6的版本,并且加上词向量融合部分的代码。

项目地址:GitHub - v-mipeng/LexiconAugmentedNER: Reject complicated operations for incorporating lexicon for Chinese NER.

下面直接进行代码分析,在剖析代码的过程中联系论文来深入理解

data_initialization

首先在构建语料库这里,依然还是有

build_alphabet、build_gaz_file,这两个方法与Lattice LSTM是一致的;

有变化的是build_gaz_alphabet,新增了一个count参数(用于统计词频)

在Lattice LSTM中build_gaz_alphabet方法是建立gaz_alphabet,即找到了所有可能的词语(具体逻辑就是利用trie属性保存的词典,然后调用gaz.enumerateMatchList,这里面调用的又是trie.enumerateMatch方法)

在Simple Lexicon中这个方法内部也是先找到所有可能的词语(但是也会返回单个的字),其次是计算词频;

阅读全文 »

Simplify the Usage of Lexicon in Chinese NER论文

发表于 2024-04-13 | 分类于 自然语言处理

Simplify the Usage of Lexicon in Chinese NER

Abstract

有很多工作尝试利用词汇信息提升中文NER的性能,例如LatticeLSTM, 但是它有一个复杂的网络结构,速度也比较慢;

在这项工作中,我们提出了一个将词汇信息融入字符表示的简单而有效的方法,这个方法没有设计复杂的序列模型结构,对于任何神经NER模型,它只需要对字符表示层进行细微的调整就可以引入词典信息.

实验表明与之前最优的各种方法相比,我们的方法速度更快且效果更好,而且也比较方便配合预训练模型如BERT一起使用.

GitHub项目:GitHub - v-mipeng/LexiconAugmentedNER: Reject complicated operations for incorporating lexicon for Chinese NER.

阅读全文 »

LatticeLSTM原理解读与模型实现

发表于 2024-03-24 | 分类于 自然语言处理

LatticeLSTM原理解读与模型实现

深入剖析文章:一文详解中文实体识别模型 Lattice LSTM - 知乎 (zhihu.com)

最容易想到同时也是最简单的词信息利用方法就是直接拼接词表征与字向量或者直接拼接词表征与LSTM的输出。16年的论文《A Convolution BiLSTM Neural Network Model for Chinese Event Extraction》就采用了这样的方法构建了中文事件抽取模型。

Lattcie LSTM的实现方式是怎么样的呢?

Lattice LSTM 模型结构如上图右侧所示。在正式开始介绍 Lattice LSTM 前,我们先来看看上图左半部分。

阅读全文 »
12…12
chenxi

chenxi

120 日志
12 分类
224 标签
Links
  • Docle
  • Swift
© 2025 chenxi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4