paulwong

2025年3月12日 #

安装docker mcp

下载docker-mcp https://github.com/docker/mcp-gateway/releases/latest@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

移到:
Linux    ~/.docker/cli-plugins/docker-mcp
macOS    ~/.docker/cli-plugins/docker-mcp
Windows    %USERPROFILE%\.docker\cli-plugins


posted @ 2025-12-14 11:28 paulwong 阅读(26) | 评论 (0)编辑 收藏

解读RAG

向大模型输入问题,让大模型回答。
大模型的做法是,先自己去寻找相关信息,再汇总出答案。这个过程有可能不靠谱,大模型自己寻找出他自己认为是对的信息,可能是错的,所以做出的答案,就是错的。
于是改成,让程序找出相关信息,再给大模型汇总。程序员编程后找出的信息肯定是对的,大模型汇总的结果,以大模型的能力,结果也是对的。

但这种方式有问题,就是会多次调用大模型,大模型通常是部署在远端的,就会产生性能问题。所以在大模型内部,让大模型自己去调用工具。

要大模型自己调用工具,就得靠系统提示词了,当然系统提示词不用自己写,将在n8n中流程导出json,再向deepseek提问,就可以生成提示词了。

调用的工具不止一个,就会产生协同问题,如何将a工具产生的结果作为参数调用b工具,这里的做法就是使用few shot,意思是在提示词中要要提供例子,如调用工具产生结果r1,{"input": r1}以这个参数调用工具b,这样工具b内部通过fromAI("input")就能获取到input参数的值了。

这个过程中大模型实际只做汇总,利用了大模型的长处,避免了大模型的短处。

程序去找信息,如果是从数据库中找出相关文档的方式,就是通常据说的RAG。

但在做RAG的过程中,难免碰到需求,如:用户输入关键词,直播回答某些预先答案。

象这种的实现方式,如果采用将答案弄成文档,再去让程序找到相关文档,再让大模型汇总这种方式也是不可靠。因为找到文档也是靠概率。
因此需使用新的方式,这种方式就是让程序调用工具,得出结果作为相关信息,再让大模型做汇总。这个过程出来的结果就是可靠的了。

为什么大模型会去调用工具呢

如果工具处理的方式不够,需要思考,那就需要加入大模型进去,进行协助,这种工具就是智能体了。整个架构就是所谓的多智能体的方式了。

所以总体的思路,就是让大模型做最擅长的活,汇总,信息提供由外部去做。整个结果就是可控的了。

posted @ 2025-12-13 01:28 paulwong 阅读(31) | 评论 (0)编辑 收藏

添加Milvus MCP

克隆源码:

git clone https://github.com/zilliztech/mcp-server-milvus.git

添加Dockerfile

FROM python:3.12-slim

WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    curl \
    git \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# 使用 pip 安装 uv(替代 curl 方式)
#RUN pip install --no-cache-dir uv -i https://pypi.tuna.tsinghua.edu.cn/simple 
RUN curl -LsSf https://astral.sh/uv/install.sh | sh

# 或者使用更可靠的方式
# RUN pip install --no-cache-dir uv==0.3.0

# 复制依赖文件
COPY pyproject.toml uv.lock README.md ./

# 为 uv 设置镜像源环境变量
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

# 使用 uv 安装依赖
# 3. (关键)在构建时安装Python依赖到系统,而非虚拟环境
RUN pip install uv && \
    uv pip install --system -r pyproject.toml
# RUN uv pip install --system -r pyproject.toml -i https://pypi.tuna.tsinghua.edu.cn/simple 

# 复制源代码
COPY src/ ./src/

# 暴露端口
EXPOSE 8000

CMD ["uv", "run", "src/mcp_server_milvus/server.py", "--sse", "--milvus-uri", "http://milvus:19530", "--port", "8000"]

docker-compose.yaml

services:

  mcp-milvus-server:
    build: .
    container_name: mcp-milvus-server
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - MILVUS_URI=http://host.docker.internal:19530
      # - MILVUS_TOKEN=http://localhost:19530
      # - MILVUS_DB=http://localhost:19530
    ports:
      - "8012:8000"
    volumes:
      - ./src:/app/src
    # depends_on:
    #   milvus:
    #     condition: service_healthy
    command: uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://milvus:19530 --port 8000
    networks:
      - n8n_network

volumes:
  milvus_data:
  milvus_conf:
  etcd_data:
  minio_data:

networks:
  n8n_network:
    external: true

login-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose exec -it mcp-milvus-server /bin/bash


logs-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose logs -f 

start-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose up -d
docker compose logs -f

shutdown-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose down

restart-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH

pwd
./shutdown-mcp-milvus-server.sh
./start-mcp-milvus-server.sh


posted @ 2025-12-08 01:49 paulwong 阅读(27) | 评论 (0)编辑 收藏

MCP资源

什么是mcp?
https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server-to-your-user-settings

mcp server大全
https://github.com/modelcontextprotocol/servers?tab=readme-ov-file

常用mcp server:
https://github.com/modelcontextprotocol/servers-archived/tree/main/src/postgres

mcp 官网:
https://modelcontextprotocol.io/docs/develop/build-server


posted @ 2025-12-07 21:29 paulwong 阅读(31) | 评论 (0)编辑 收藏

AI 模型广场

如果想在某些垂直领域找比较好的模型, 可到下面这个网址查看:

https://ai.gitee.com/serverless-api

posted @ 2025-11-23 09:53 paulwong 阅读(14) | 评论 (0)编辑 收藏

Open WebUI + N8N 流式输出

Integrating n8n with Open WebUI: Building advanced AI chatbots and workflows
https://www.pondhouse-data.com/blog/integrating-n8n-with-open-webui

n8nchatui
https://n8nchatui.com/docs
https://www.youtube.com/watch?v=_dmrr7kWRI0

open-webui function:
https://openwebui.com/f/webfox/n8n_streaming

Complete Guide to n8n Chat Streaming Setup
https://sudhanshu-sharma.notion.site/Complete-Guide-to-n8n-Chat-Streaming-Setup-24ed62104585806a8909d1b662209af3

posted @ 2025-11-08 09:03 paulwong 阅读(22) | 评论 (0)编辑 收藏

微调案例

我如何用 Prompt 工程将大模型调教成风控专家
https://my.oschina.net/u/4090830/blog/18690981


posted @ 2025-09-10 13:25 paulwong 阅读(16) | 评论 (0)编辑 收藏

RAG提高召回率秘笈

传统的搜索是全文搜索, 即用户提供关键字, 系统将此关键字去数据库中的文本查找, 看文本是否含此关键字, 如有则返回.
这种有个缺点, 如果提供的是关键字的同义词, 则无法搜索了.

于是最新的人工智能技术能解决这个问题, 即只提供同义词之类的也能找出来.

为什么能查找出来呢, 系统将待搜索的文本转成向量, 再将关键词转成向量, 查找欧氏距离或余弦相似度最近的那组向量, 再将此对应的文本返回.

由于文本长度太长, 通常是将文本切割成文本块, 再逐个存储. 这样会导致返回的文本有缺失.

于是产生不同的存储策略, 将文本的属性作为元数据保存了下来, 如果精准的知道其属性, 则可以直接查属性而找到文本.

也可以将此文本生成一段摘要, 也作为元数据保存下来, 关键字先和摘要匹配, 如果相近即返回.

也可以将文本转成全文索引的格式保存下来, 再以文本是否含此关键字进行搜索, 如有则返回.

这样返回的文本多了, 搜索的准确度自然就提高了.

这里推荐Milvus数据库, 将以上机制都放在服务器端, 用户只需调包即可实现, 大大简化的编程.

代码实现:

https://milvus.io/docs/zh-hant/full_text_search_with_langchain.md


书本代码:
https://github.com/huangjia2019/rag-in-action/blob/master/04-向量存储-VectorDB/Milvus/create_milvus_db.py#L100

https://github.com/Tylersuard/EnterpriseRAG/blob/main/Ch03/upload_sql_records_to_ai_search.py#L10

https://github.com/tomasonjo/kg-rag/blob/main/README.md

posted @ 2025-09-06 15:47 paulwong 阅读(114) | 评论 (0)编辑 收藏

RAG优化

老王AIGC
https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzkzMzc2MjAwOQ==&scene=24&album_id=3853666856078622721&count=3#wechat_redirect


posted @ 2025-08-26 16:57 paulwong 阅读(26) | 评论 (0)编辑 收藏

docker镜像加速


https://github.com/DaoCloud/public-image-mirror

posted @ 2025-08-26 09:59 paulwong 阅读(20) | 评论 (0)编辑 收藏

支持 A 股、港股!AI 投资炒股「智能体」开源,太绝了。

它部署了多个专业的 AI 大模型智能体,每一个智能体对应交易公司的一个角色。比如有的智能体是基本面分析师、有的是情绪分析师、有的是技术分析师,还有交易员、风险管理员等等。让这些角色的AI智能体在一起叽叽喳喳讨论,最终确定最优的策略。给出买入或者卖出的决策。

https://mp.weixin.qq.com/s/mu1eF1l5ung-siVcUrEsTQ


合集

posted @ 2025-07-11 19:06 paulwong 阅读(75) | 评论 (0)编辑 收藏

保险核保系统设计

回答用户的问题, 如“醉驾能否赔偿”时, 首先去条款库中匹配是否对得上的条款, 如有直接返回.
上面如果不中, 则走llm回答.
提取关键字, 用一关键字列表, 逐个对照, 如有则返回关键字, 没有则返回默认的车险关键字
拿着此关键字去知识图谱搜索出一堆条款
构造大模型输入的提示词, 即角色+条款列表+问题+请回答, 输入到大模型, 让大模型回答
检查回答是否合规, 如是否有免责字样或没有条款列表, 如不规合则直接返回, “请联系销售代表”字样
如合规, 则提取回答后面的字样作为答案返回
@import url(/css/cuteeditor.css);

posted @ 2025-07-02 00:43 paulwong 阅读(39) | 评论 (0)编辑 收藏

debian安装python+替换为清华源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vi /etc/apt/sources.list.d/debian.sources

添加如下内容:
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian/
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security/
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

更新所有包
sudo apt update

安装python
sudo apt-get install python3

sudo apt-get install python3-pip

命令支持短写
sudo apt install python-is-python3

安装miniconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_25.3.1-1-Linux-x86_64.sh

bash Miniconda3-py310_25.3.1-1-Linux-x86_64.sh
conda config --set show_channel_urls yes

cat > ~/.condarc <<EOF
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF

清除缓存
conda clean -i

conda --version
conda info # 查看渠道是否显示为清华源




posted @ 2025-06-23 11:32 paulwong 阅读(91) | 评论 (0)编辑 收藏

最全 Docker 神器集结,让你的服务器瞬间起飞!

https://mp.weixin.qq.com/s/gtyMdmCqBY7LfdBGUBldSA

posted @ 2025-06-21 23:01 paulwong 阅读(42) | 评论 (0)编辑 收藏

百炼大模型支持深度思考


https://help.aliyun.com/zh/model-studio/deep-thinking#1f5ad51894bvi

posted @ 2025-06-18 23:56 paulwong 阅读(31) | 评论 (0)编辑 收藏

以非root用户运行docker

sudo useradd -m paul # 创建用户并自动建立家目录
sudo passwd paul # 设置用户密码(需输入两次确认)
sudo usermod -aG wheel paul # CentOS/RHEL
[root@dev69 ~]$ groupadd docker
[root@dev69 ~]$ usermod -aG docker $USER
[root@dev69 ~]$ reboot
[paul@dev69 ~]$ docker run hello-world

posted @ 2025-06-13 16:47 paulwong 阅读(36) | 评论 (0)编辑 收藏

创建数据集的资源


AI 数据集生成和模型微调框架 Distilabel 入门指南:基本概念、安装与快速开始
https://zhuanlan.zhihu.com/p/25766406373

使用Llama3和distilabel构建微调数据
https://huggingface.co/blog/dvilasuero/synthetic-data-with-llama3-distilabel

posted @ 2025-05-18 08:01 paulwong 阅读(38) | 评论 (0)编辑 收藏

强化学习资源

蘑菇书EasyRL
李宏毅老师的《深度强化学习》是强化学习领域经典的中文视频之一。李老师幽默风趣的上课风格让晦涩难懂的强化学习理论变得轻松易懂,他会通过很多有趣的例子来讲解强化学习理论。比如老师经常会用玩 Atari 游戏的例子来讲解强化学习算法。此外,为了教程的完整性,我们整理了周博磊老师的《强化学习纲要》、李科浇老师的《世界冠军带你从零实践强化学习》以及多个强化学习的经典资料作为补充。对于想入门强化学习又想看中文讲解的人来说绝对是非常推荐的。

本教程也称为“蘑菇书”,寓意是希望此书能够为读者注入活力,让读者“吃”下这本蘑菇之后,能够饶有兴致地探索强化学习,像马里奥那样愈加强大,继而在人工智能领域觅得意外的收获。
https://github.com/datawhalechina/easy-rl?tab=readme-ov-file


posted @ 2025-04-30 14:15 paulwong 阅读(46) | 评论 (0)编辑 收藏

足球数据资源

足球基础数据
https://www.nami.com/details/4nw10i0tela68lq#interface

足球统计数据
https://www.nami.com/details/7xwk3iqtv3s9rk6#interface

足球统计数据
https://www.nami.com/details/7xwk3iqtv3s9rk6#interface

足球高阶数据
https://www.nami.com/details/g5wvvikteeixwzd#interface

指数数据
https://www.nami.com/details/o6w9kipt4yi78k3#interface

足球资料库数据
https://www.nami.com/details/7j8gxi0to7inrql#interface

Marz火星数据(体育)
https://www.kancloud.cn/marz/marz-sport/3098904



posted @ 2025-04-24 14:56 paulwong 阅读(86) | 评论 (0)编辑 收藏

ai预测足球资源

基于机器学习的2022世界杯预测实战
https://www.showmeai.tech/article-detail/400

AI 竞彩赛事 预测工具
https://www.mysports.ai/cn

posted @ 2025-04-19 01:07 paulwong 阅读(56) | 评论 (0)编辑 收藏

微调训练的数据集

使用trl库做微调时, 对数据集的要求是:

如果是多轮对话场景:
jsonl 文件,且需符合以下要求:
1.每行是一个独立的 JSON 对象;
2 每个对象须包含一个键名为 messages 的数组,数组不能为空;
3.messages 中每个元素必须包含 role 和 content 两个字段:
4.role 只能是 system,user 或 assisiant;
5.如果有 system 角色消息, 需在数组首位;
6.第一条非 system 消息必须是 user 角色;
7.user 和 assisiant 角色的消息应当交替、成对出现,不少于1对;

如果是指令微调场景:
jsonl 文件,且需符合以下要求:
1.每行是一个独立的 JSON 对象;
2 每个对象须包含且只能包含一个键名为 text 的键值对,值不能为空;

posted @ 2025-03-21 21:52 paulwong 阅读(87) | 评论 (0)编辑 收藏

大模型训练的几个阶段

大模型开发出来后, 一般要经过以下几个阶段的训练:

预训练(Pre-Trained)

单纯提供文本: {"text":"..."}
训练模型由第一个文字开始, 预测后面的文字, 直到结束.
这种模型只会做完成文本的任务

监督微调(Supervised Fine Turning)

为了使模型能完成根据指令完成回答, 而不是随机生成回答
提供的文本: {"instruction":"...", "output":"..."}

高效参数微调(Parameter Efficient Fine Turning)

只调整部分参数, 具体实现方法有LoRA

参考:
https://github.com/huggingface/smol-course/blob/main/1_instruction_tuning/notebooks/sft_finetuning_example.ipynb



posted @ 2025-03-18 13:14 paulwong 阅读(88) | 评论 (0)编辑 收藏

python资源

python
https://www.w3schools.com/python/

https://www.runoob.com/python/python-basic-syntax.html

廖雪峰的官方网站
https://liaoxuefeng.com/books/python/index.html


posted @ 2025-03-16 20:54 paulwong 阅读(54) | 评论 (0)编辑 收藏

大模型微调后的评估指标

大模型微调后的评估指标是衡量模型性能的关键,通常根据任务类型和具体需求选择不同的评估指标。以下是一些常见的评估指标及其适用场景:


1. 分类任务

  • 准确率(Accuracy):预测正确的样本占总样本的比例。
    • 适用场景:类别分布均衡的任务。
  • 精确率(Precision):预测为正类的样本中,实际为正类的比例。
    • 适用场景:关注减少假阳性(False Positive)的任务。
  • 召回率(Recall):实际为正类的样本中,预测为正类的比例。
    • 适用场景:关注减少假阴性(False Negative)的任务。
  • F1分数(F1 Score):精确率和召回率的调和平均值。
    • 适用场景:类别不平衡或需要平衡精确率和召回率的任务。
  • ROC-AUC:ROC曲线下的面积,衡量模型区分正负类的能力。
    • 适用场景:二分类任务,尤其是类别不平衡的情况。

2. 回归任务

  • 均方误差(MSE, Mean Squared Error):预测值与真实值之差的平方的平均值。
    • 适用场景:对误差较大的样本惩罚更重的任务。
  • 均方根误差(RMSE, Root Mean Squared Error):MSE的平方根。
    • 适用场景:与MSE类似,但更接近原始数据尺度。
  • 平均绝对误差(MAE, Mean Absolute Error):预测值与真实值之差的绝对值的平均值。
    • 适用场景:对异常值不敏感的任务。
  • R²(决定系数):模型解释目标变量方差的比例。
    • 适用场景:评估模型拟合优度。

3. 生成任务

  • BLEU(Bilingual Evaluation Understudy):衡量生成文本与参考文本的n-gram重叠程度。
    • 适用场景:机器翻译、文本生成任务。
  • ROUGE(Recall-Oriented Understudy for Gisting Evaluation):衡量生成文本与参考文本的重叠程度,侧重于召回率。
    • 适用场景:文本摘要、生成任务。
  • METEOR:综合考虑精确率、召回率和词序的评估指标。
    • 适用场景:机器翻译、文本生成任务。
  • Perplexity(困惑度):衡量模型预测概率分布的不确定性。
    • 适用场景:语言模型评估。

4. 多标签任务

  • Hamming Loss:预测错误的标签比例。
    • 适用场景:多标签分类任务。
  • Jaccard Similarity:预测标签与真实标签的交集与并集之比。
    • 适用场景:多标签分类任务。

5. 排序任务

  • NDCG(Normalized Discounted Cumulative Gain):衡量排序结果的相关性。
    • 适用场景:推荐系统、信息检索。
  • MAP(Mean Average Precision):平均精确率的均值。
    • 适用场景:信息检索、推荐系统。

6. 其他指标

  • 训练时间:模型微调所需的时间。
  • 推理速度:模型生成结果的速度。
  • 资源消耗:模型运行所需的计算资源(如GPU内存、CPU使用率)。
  • 鲁棒性:模型对噪声、异常值或对抗样本的抵抗能力。

7. 领域特定指标

  • 医学领域:敏感性(Sensitivity)、特异性(Specificity)、AUC-ROC。
  • 金融领域:收益曲线、夏普比率(Sharpe Ratio)。
  • 计算机视觉:mAP(mean Average Precision)、IoU(Intersection over Union)。

8. 人类评估

  • 人工评分:通过人工评估生成结果的质量(如流畅性、相关性、准确性)。
  • 用户满意度:通过用户反馈评估模型的实际效果。

9. 模型对比

  • 基线对比:与未微调的模型或基线模型进行性能对比。
  • 消融实验:评估微调过程中不同组件(如数据、超参数)对性能的影响。

10. 综合评估

  • 多指标综合:根据任务需求,结合多个指标进行综合评估。
  • 任务特定指标:针对特定任务设计自定义指标。

在实际应用中,选择合适的评估指标需要结合任务目标、数据特点和业务需求,同时注意避免单一指标的局限性。

posted @ 2025-03-12 10:08 paulwong 阅读(503) | 评论 (0)编辑 收藏