自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 spring源码(1)、idea编译spring源码详细教程

以下源码编译过程是本人按照官方文档实操,并结合国情对一些下载源修改为国内源,如果你是新手建议每一步都安装本教程操作,确保不会出现一些奇葩问题 下载spring源码 建议去码云下载,github下载会比较慢,地址:https://gitee.com/mirrors/Spring-Framework,建议下载标签中的正式版本,我这里下载的是v5.2.0.RELEASE 仓库修改为阿里云 下载源码并解压后,进入Spring-Framework目录修改build.gradle,需要修改两处:

2020-09-06 09:45:37 3579 2

原创 RAG-6-Microsoft GraphRAG

GraphRAG(Graph-based Retrieval-Augmented Generation)是一种结合知识图谱与检索增强生成 (RAG)的技术框架,旨在通过图结构数据增强大语言模型(LLMs)的推理能力和回答准确性。(1)知识图谱构建• 节点与边:节点表示实体(如人物、概念),边表示关系(如“影响”“属于”)。• 自动化构建:通过LLM从非结构化文本中抽取实体和关系(如“莫奈→创作→《睡莲》”),并存 储于图数据库(Neo4j等)。

2025-10-28 16:30:01 855

原创 大模型微调-1-基础知识概览

预训练是指在一个大型、通用数据集上,以自监督或无监督的方式,训练一个模型,使其学习到数据中内在的、可迁移的表示(Representations)。模型通过完成一些“前置任务(Pretext Tasks)”来学习,这些任务的设计目的是让模型在尝试解决它们的过程中,自然而然地掌握数据的有用特征,而不需要昂贵的人工标注微调是指在预训练模型的基础上,使用特定任务的小规模标注数据,对模型的全部或部分参数进行额外的训练,以使其优化在该任务上的性能。分类代表方法核心思想参数量推理延迟特点选择性微调分层学习率。

2025-09-09 11:53:23 829

原创 RAG-5-案例1

本文通过整合前面4篇博文,包括文本读取、切片、向量化及向量数据库等技术,实现了一个完整的简单的RAG应用案例,回顾加强前面的知识。本文对话模型使用智谱GLM-4, embedding模型使用智谱embedding-3。

2025-09-08 21:34:45 327

原创 大模型部署-3-vllm部署deepseek

如果说Ollama的优势在于其简洁性,那么Vllm则是一个另辟蹊径、优先考虑性能和可扩展性的大模型部署框架,其核心的优化点在高效内存管理、持续批处理功能和张量并行性,从而在生产环境中的高吞吐量场景中表现极佳,同时这也是为什么Vllm框架是目前最适用于企业真实生产环境部署的根本原因。首先需要重点说明的是:Vllm框架仅支持Linux操作系统,官方并没有提供Windows的兼容版本。同时除了有操作的限制,对运行的`Python`版本也要求在Python 3.8 ~ Python 3.12之间。

2025-09-08 12:17:56 684

原创 大模型部署-1-ollama部署

Ollama是在Github上的一个开源项目,其项目定位是:一个本地运行大模型的集成框架,目前主要针对主流的LLaMA架构的开源大模型设计,通过将模型权重、配置文件和必要数据封装进由Modelfile定义的包中,从而实现大模型的下载、启动和本地运行的自动化部署及推理流程。

2025-09-08 11:38:13 1063

原创 RAG-2-文本切块

文本切块是将长篇文档分解成更小、更易于管理的片段的过程。这在RAG系统中至关重要,因为它直接影响到检索到的信息的质量和相关性,从而最终影响大模型生成答案的准确性。

2025-09-05 12:20:15 1015

原创 RAG-1-RAG简介和读取文本

Document 类是 LangChain 中的核心组件,它定义了文档对象的基本结构,主要包含两个关键属性:page_content:存储文档的实际内容metadata:存储文档的元数据,如来源、创建时间等这个简单而强大的数据结构在整个 RAG 流程中扮演着关键角色,是文档加载器、分割器、向量数据库和检索器之间传递数据的标准格式。LangChain 提供了丰富的文档加载器,支持从多种数据源加载文档:文本文件Markdown 文档Office 文档(Word、Excel、PowerPoint)

2025-09-05 11:37:50 619

原创 大模型微调-3-案例

PEFT(Parameter-Efficient Fine-Tuning)是一类旨在最大限度减少可训练参数数量同时保持模型性能的微调技术3。计算资源瓶颈:例如GPT-3 175B参数全微调需要数千GB显存,单个A100 GPU(80GB)仅能承载约10B参数模型的完整训练状态存储问题:保存100个不同任务的完整微调版BERT-large(335M参数)需要33.5GB,而使用LoRA(0.1%参数)仅需33.5MB灾难性遗忘:全参数微调可能导致模型遗忘预训练阶段学到的通用知识。

2025-08-09 09:32:39 1072

原创 大模型微调-2-Hugging Face核心组件

加载预训练模型。

2025-08-07 16:22:55 681

原创 LangChain-6-Memory和持久化

是一个抽象基类,定义了一系列用于管理聊天消息历史记录的接口和方法。它允许你添加用户和 AI 的消息到历史记录中,检索历史消息,以及清理历史记录。不同的子类实现了不同的持久化策略,例如内存存储、文件存储、数据库存储等。#向聊天历史记录中添加用户发送的消息history.add_user_message("你好今天过得怎么样")#向聊天历史记录中添加 AI 生成的回复消息history.add_ai_message("我没有真实的生活体验,但随时为你服务!")

2025-07-16 17:06:02 372

原创 LangGraph-2-interrupt 流程中断

是 LangGraph 中一个强大的流程控制机制,允许在状态机执行过程中根据特定条件中断当前流程并跳转到其他节点。这一机制可以让开发者在关键操作执行前对条件进行检查,若不满足条件,就提前终止流程,避免不必要的计算或者操作。这一机制可以让开发者在关键操作执行前对条件进行检查,若不满足条件,就提前终止流程,避免不必要的计算或者操作。是两个强大的流程控制机制,允许在节点执行前或执行后插入中断检查。这些机制提供了更精细的流程控制能力,特别适合需要精确管理执行顺序和条件的复杂工作流。在 LangGraph 中,

2025-07-10 18:03:19 432

原创 LangGraph-1-快速入门

LangGraph 是 LangChain 生态系统中的关键组件,专门用于构建的应用程序。它基于图论概念,允许开发者创建复杂的代理工作流,特别适合构建需要循环、分支和协作的智能系统。

2025-07-08 17:48:31 787

原创 Agent调用MCP Server(python,java)案例

使用智谱的网路搜索工具,实现网络搜索mcp_server = FastMCP("我的mcp服务", port="8080")client = ZhipuAI(api_key="") # 填写您自己的APIKey@mcp_server.tool("my_search_tool", description="搜索互联网上的内容,无法联网的情况下使用")"""搜索互联网上的内容"""count=5, # 返回结果的条数,范围1-50,默认10。

2025-07-03 17:48:50 442

原创 RAG-4-向量数据库Milvus

混合检索(Hybrid Search)是一种结合全文检索(如 BM25)和向量相似度检索(如 ANN,近似最近邻搜索)的技术,通过融合两者的结果提升检索的准确性和覆盖率。BM25(全文匹配):适用于关键词匹配,捕捉显式语义。ANN(向量匹配):适用于语义理解,捕捉隐式相关性。混合检索在实际应用中可以显著提高召回率和排序质量,尤其适合处理复杂查询或模糊语义场景。混合检索的核心流程数据建模:存储原始文本字段(用于 BM25)存储该文本的 embedding 向量(用于 ANN)

2025-07-03 11:20:16 1886

原创 RAG-3-Embeddings

所有的数据都变成向量,这些向量组成⼀个庞⼤的矩阵。Embeddings 模型的核心功能是将离散的符号(如文本中的单词、图像中的像素块等)转化为连续的向量表示,这些向量通常位于低维的实数空间中。:在 Word2Vec 的基础上进行了扩展,考虑了单词的子词信息,对于未登录词(在训练集中未出现的单词)也能生成合理的向量表示。:是一种基于 LSTM 网络的句嵌入模型,通过在有监督的任务上进行训练,学习句子的语义表示。:也是经典的卷积神经网络,具有简单的网络结构,其输出的特征向量可以用于图像的语义表示。

2025-07-01 23:08:55 1088

原创 大模型部署-2-vllm部署智谱

Graphical Processing Units (GPUs) 图形处理单元(GPU)是一种功能强大的电子芯片,用于在沉浸式视频游戏、电影和其他视觉媒体中呈现丰富的 2D/3D 图形和动画 因其超越 CPU 的并行矩阵运算性能,所以也被广泛应用于人工智能相关的各种系统,包括机器视觉、NLP、语音识别、自动驾驶等 GPU通过大量简单的处理单元(CUDA核心、Tensor核心等)并行工作,能够在短时间内完成复杂的矩阵运算和数据处理任务。

2025-06-29 22:21:31 902

原创 一、Claude大模型

‌Claude是由美国人工智能公司Anthropic开发的大型语言模型家族‌,具备多模态理解、代码生成和复杂推理能力,当前最新版本为Claude 3.7 Sonnet(2025年2月发布)。该系列模型在推理能力、任务处理广度和性能优化方面均处于行业领先地位。‌‌。

2025-06-25 17:08:42 1516

原创 LangChain-5-agent

Agent 是一种能够基于接收到的输入,利用自身的决策逻辑和可用的工具,动态地规划并执行一系列操作,以达成特定任务的程序或系统。它在与外界交互过程中,会根据实时情况灵活调整策略,而不是按照固定的预设流程执行任务。

2025-06-21 22:27:38 788 1

原创 LangChain-4-工具调用

Agent是LangChain中一种更高级的机制,它可以根据输入动态地决定是否调用工具、调用哪个工具以及如何使用工具的输出。Agent通常包含一个决策逻辑,能够根据模型的输出和任务的需求进行智能决策。

2025-06-20 15:40:31 442

原创 LangChain-3-输出解析器

负责获取模型的输出并将其转换为更适合下游任务的格式。在使⽤⼤型语⾔模型⽣成结构化数据或规范化聊天模型和⼤型语⾔模型的输出时⾮常有⽤。

2025-06-16 19:41:04 877

原创 LangChain-2-Model I/O

ICL提⽰词模板有助于将⽤⼾输⼊和参数转换为语⾔模型的指令。这可以⽤于指导模型的响应,帮助其理解上下⽂并⽣成相关且连贯的基于语⾔的输出。提⽰词模板的输⼊是⼀个字典,其中每个键表⽰要填充的提⽰词模板中的变量。

2025-06-16 15:02:33 510

原创 LangChain-1-快速入门

想象一下,如果你能让聊天机器人不仅仅回答通用问题,还能从你自己的数据库或文件中提取信息,并根据这些信息执行具体操作,比如发邮件,那会是什么情况?Langchain 正是为了实现这一目标而诞生的。Langchain 是一个开源框架,它允许开发人员将像 GPT-4 这样的大型语言模型与外部的计算和数据源结合起来。LangChain 是一个用于开发由语言模型驱动的应用程序的框架。Langchain,这是一个用于提升大型语言模型(LLMs)功能的框架。

2025-06-16 07:56:41 1140

原创 基于 Spring AI 的 MCP 客户端/服务端实现

模型上下文协议(MCP)由Anthropic开源的开放协议,为AI模型与外部数据/工具提供了“标准化桥梁”,通过统一的接口规范,使模型能够动态调用本地文件、数据库、API等资源,实现“上下文感知”的智能交互。MCP的核心价值在于:标准化集成:告别“一对一”定制开发,通过协议对接即可连接任意兼容MCP的数据源或工具,大幅降低生态构建成本。安全与灵活性:支持本地部署,数据无需离境,兼顾隐私合规与实时访问需求。智能体赋能:为AI Agent提供“手脚”,使其能自主执行查询、分析、操作等复杂任务流。在。

2025-06-11 17:48:45 960

原创 使用spring-ai-alibaba接入大模型

是Spring AI生态里与阿里巴巴相关的组件,借助它能够实现接入各类大模型。以下为你详细介绍如何使用。

2025-06-11 16:45:47 1022

原创 spring源码(2)、资源&资源加载器

对于每一个底层资源,比如文件系统中的一个文件,classpath上的一个文件,或者一个以URL形式表示的网络资源,Spring 统一使用 Resource 接口进行了建模抽象,相应地,对于这些资源的加载,Spring使用了 ResourceLoader 进行了统一建模抽象。Spring对各种底层资源,比如文件系统中的一个文件,classpath上的一个文件,或者一个网络URL,统一抽象为接口Resource来表示。6 否则将其封装成一个UrlResource句柄返回;4 如果路径是URL格式。

2023-01-03 13:59:48 468

原创 javassist学习

Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以去生成一个新的类对象,通过完全手动的方式。在 Javassist 中,类表示 class 文件。

2023-01-03 13:00:43 503

原创 dubbo源码解析-SPI机制

dubbo spi

2022-12-31 17:38:30 1216

原创 spring源码-依赖注入@Autowired

依赖注入@Autowired

2022-12-13 10:34:14 352

原创 spring源码-bean的后置处理器

bean的后置处理器

2022-12-12 11:39:22 891

原创 springmvc源码-整体运行流程

springmvc整体流程图

2022-12-08 10:00:02 427

原创 设计模式—行为型—备忘录模式

备忘录模式备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式优缺点:备忘录模式是一种对象行为型模式,其主要优点如下。提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。 实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。 简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在

2021-02-08 11:10:34 172

原创 设计模式—行为型—状态模式

状态模式对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。角色环境类(Context)角色:也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换。 抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为。 具体状态(Concrete State)角色:实现抽象状态所对应的行为,并且在需要的情况下进行状态切换。类图状态模式一般用来实现状态机,而状态机常用

2021-02-07 17:29:17 238

原创 配置阿里yum源

1、备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/CentOS 5wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a

2021-02-07 16:22:32 545

原创 设计模式—结构型

结构型模式主要、关注如何将现有类或对象组织在一起形成更加强大的结构,总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式 桥接模式 装饰器模式 适配器模式 门面模式 组合模式 享元模式1. 代理模式 代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并...

2021-02-07 15:42:12 234

原创 设计模式—行为型—访问者模式

表示一个作用于某对象结构中的各元素的操作,它使你可以不改变个元素的类的前提下定义作用于这些元素的操作。访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接收这个操作的数据结构则可以保持不变访问者模式适用于数据结构未定的系统,它把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操作集合可以相对的演化角色抽

2021-02-05 17:17:38 416

原创 设计模式—行为型—备忘录模式

在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。角色:1.Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Memento(备忘录):负责存储Orig

2021-02-05 16:38:29 490

原创 设计模式—行为型—中介者模式

用一个中介对象来封装一系列的对象交互。中介是各个对象不需要现实的相互引用。从而使其耦合松散。而且可以独立的改变他们之间的交互角色:Mediator:中介者接口。在里面定义了各个同事之间相互交互所需要的方法,可以是公共的方法,如Change方法,也可以是小范围的交互方法。ConcreteMediator:具体的中介者实现对象。它需要了解并为维护每个同事对象,并负责具体的协调各

2021-02-05 16:18:11 409

原创 设计模式—行为型—命令模式

命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作将一组行为抽象为对象,实现“行为请求者”与“行为实现者”的松耦合。这就是命令模式模式结构 Command:定义命令的接口,声明执行的方法。ConcreteCommand:命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接

2021-02-05 15:20:51 325

原创 设计模式—行为型—迭代模式

迭代模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。它可以使得对于聚合对象的遍历行为和聚合对象分离,即我们不关心聚合对象的底层结构是什么样子迭代模式中的角色迭代器角色(Iterator): 负责定义访问和遍历元素的接口。具体迭代器角色(Concrete Iterator):实现迭代器接口,并要记录遍历中的当前位置。容器角色(Container

2021-02-05 14:43:22 614

ik5.3.1中文分词器jar

ik5.3.1中文分词器jar

2017-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除