自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(591)
  • 收藏
  • 关注

原创 大模型之近端策略优化(ppo)

PPO其实就是避免在使用重要性采样时由于在θθθ下的pθat∣stpθ​at​∣st​与在θ′θ′θ′下的pθ′at∣stpθ′​at​∣st​差太多,导致重要性采样结果偏差较大而采取的算法。具体来说就是在训练的过程中增加一个限制,这个限制对应着θθθ和θ′θ′θ′输出的动作的 KL 散度,来衡量θθθ与θ′θ′θ′的相似程度。

2025-11-04 16:54:51 442

原创 大模型之策略梯度(pg)

演员(actor)环境和奖励函数。其中环境和奖励函数不是我们可以控制的,在开始学习之前就已经事先给定。演员里会有一个策略,它用来决定演员的动作。策略就是给定一个外界输入,它会输出演员现在应该要执行的动作。唯一可以做的就是调整演员里面的策略,使得演员可以得到最大的奖励。将深度学习与强化学习相结合时,策略πππ就是一个网络,用θθθ表示πππ的参数。举上面幻境的例子,输入就是当前分身所在的分叉路口,假设可以向上,向下,向左走,经过策略网络后,输出就是三个动作可以选择的概率。

2025-11-04 15:20:01 254

原创 大模型RLHF:PPO原理与源码解读

智能体(Agent)与环境(Environment)强化学习中两个实体的交互:状态空间S:S即为State,指环境中所有可能状态的集合动作空间A:A即为Action,指智能体所有可能动作的集合奖励R**:** R即为Reward,指智能体在环境的某一状态下所获得的奖励。以上图为例,智能体与环境的交互过程如下:在t时刻,环境的状态为StS_{t}St​,达到这一状态所获得的奖励为RtR_{t}Rt​智能体观测到StS_{t}St​与RtR_{t}Rt​,采取相应动作。

2025-11-03 18:06:19 771

原创 大模型之DPO

基于人类反馈的强化学习(RLHF)是一个复杂且不稳定的过程,拟合一个反映人类偏好的奖励模型,然后使用强化学习对大语言模型进行微调,以最大限度地提高估计奖励,同时又不能偏离原始模型太远。这涉及训练多个 LM,并在训练循环中从 LM 采样,从而产生大量的计算成本。本文作者提出了直接偏好优化(DPO)算法,它稳定、高效且计算量轻,无需拟合奖励模型,也无需在微调期间从LM采样或执行显著的超参数调整。实验表明,DPO 可以微调 LMs,使其与人类偏好保持一致,与现有方法一样或更好。

2025-11-03 17:48:35 810

原创 大模型之强化学习

AI大模型面试圣经大模型开发者宝藏Dify高效AI工作流智能体强化学习包含环境、动作和奖励3部分,其本质是智能体通过与环境的交互,使其做出的动作对应的决策得到的总奖励最大,或者说是期望最大。首先强化学习和无监督学习是不需要有标签样本的,而监督学习需要许多有标签样本来进行模型的构建和训练。其次对于强化学习与无监督学习,无监督学习直接基于给定的数据进行建模,寻找数据或特征中隐藏的结构,一般对应聚类问题;强化学习需要通过延迟奖励学习策略来得到模型与目标的距离,这个距离可以通过奖励函数进行定量判断,这里我们可以

2025-11-03 17:40:20 729

原创 大模型之强化学习-rlhf相关

强化学习(Reinforcement Learning,RL)研究的问题是智能体(Agent)与环境(Environment)交互的问题,其目标是使智能体在复杂且不确定的环境中最大化奖励(Reward)。强化学习基本框 架如图所示,主要由两部分组成:智能体和环境。在强化学习过程中,智能体与环境不断交互。智能体在环境中获取某个状态后,会根据该状态输出一个动作(Action),也称为决策(Decision)。动作会在环境中执行,环境会根据智能体采取的动作,给出下一个状态以及当前动作所带来的奖 励。

2025-11-03 17:29:54 672

原创 大模型之faster_transformer

是一个用于实现基于Transformer的神经网络推理的加速引擎。它包含Transformer块的高度优化版本的实现,其中包含编码器和解码器部分。使用此模块,您可以运行编码器-解码器架构模型(如:T5)、仅编码器架构模型(如:BERT)和仅解码器架构模型(如: GPT)的推理。FT框架是用C++/CUDA编写的,依赖于高度优化的 cuBLAS、cuBLASLt 和 cuSPARSELt 库,这使您可以在 GPU 上进行快速的 Transformer 推理。

2025-11-03 17:15:17 775

原创 大模型之Text Generation Inference(TGI)

Text Generation Inference(TGI)是 HuggingFace 推出的一个项目,作为支持 HuggingFace Inference API 和 Hugging Chat 上的LLM 推理的工具,旨在支持大型语言模型的优化推理。

2025-11-03 16:56:58 642

原创 大模型之推理

需要注意的是,显存的占用情况可能会受到硬件设备、深度学习框架和模型实现的影响。不同的环境和设置可能会导致显存占用的差异。如果显存占用过多导致资源不足或性能下降,可以考虑调整模型的批量大小、优化显存分配策略或使用更高性能的硬件设备来解决问题。

2025-11-03 16:34:50 568

原创 大模型之vllm

声称gpt2gpt2-xl觉得有意思的东西其实主要是两个,continus batching和PagedAttention,本文为上集,主要讲讲continus batching。

2025-11-03 16:18:44 581

原创 大模型之llm推理框架简单总结

下面首先来总结一下这些框架的特点,如下表所示:下面在内存容量为40GB的A100 GPU上,并且使用LLaMA-1 13b模型(因为列表中的所有库都支持它)进行七个部署框架的对比。vLLM的吞吐量比HuggingFace Transformers(HF)高14x-24倍,比HuggingFace Text Generation Inference(TGI)高2.2x-2.5倍。

2025-11-03 15:46:59 863

原创 上下文工程

这不是「感知你的状态」,而是「理解你的目标并帮你达成」。当你走进办公室,系统会自动:检测你的位置(通过红外传感器)、识别你的身份(通过ID卡)、推断你的活动(会议 vs 个人工作)、调整环境(灯光、温度、通知模式)。思考一个问题:如果你是你的上下文的总和,如果你的上下文会在你之后继续存在,如果未来的AI会基于你的上下文来「模拟」你,那么,你想留下什么样的上下文?上下文的使用完全是被动的、固定的、局部的——每个模块各自为政,通过集中式上下文服务器读取数据,遵循全局schema,没有协作,没有推理,没有适应。

2025-11-03 15:29:55 715

原创 浏览器端实时语音采集 + WebSocket 传输 + 后端 Whisper + GPT 翻译 + 实时字幕返回

这个版本相当于一个轻量级“实时同传字幕服务器”,打开网页 → 点击录音 → 说话后端实时识别并翻译 → 字幕实时显示延迟在 1~2 秒内(取决于网络与模型大小)可部署在局域网或云服务器(HTTP + WebSocket)项目结构├── server.py # FastAPI 后端(ASR + 翻译 + WebSocket)│ └── index.html # 前端网页fastapiuvicornsoundfile。

2025-10-30 16:57:39 530

原创 一个可本地运行的实时字幕翻译 Demo(Whisper + GPT + Streamlit),可以边说边出中英文字幕

这个 demo 在本机运行(开发/会议桌面场景)能做到“边说边出字幕(英文 → 中文)”,并包含增量显示、简单断句与缓存策略,方便后续替换为低延迟 streaming ASR 或本地 LLM。注意:示例使用 faster-whisper 做本地 ASR(也可换 OpenAI Whisper API / SenseVoice / FunASR),翻译用 OpenAI ChatCompletion(可替换为本地 LLM)。

2025-10-30 16:52:46 1038

原创 ASR+MT+LLM+TTS 一体化实时翻译字幕系统

一、总体架构:实时翻译字幕系统流程一个完整的实时字幕翻译系统通常包含以下 4 个核心模块:最终输出可以是:屏幕字幕(例如会议、直播)翻译语音(同传)双语字幕流(带时间戳)二、引入大模型:它的作用在哪里?大模型(LLM)可以在三个关键环节增强传统算法:实际做法是:Whisper(ASR)→ LLM(翻译+润色)→ Subtitle Stream三、简单实现方案(本地+Python)这里用一个 可跑通的轻量原型 来说明:环境依赖。

2025-10-30 16:41:53 589

原创 Spring Al学习11:向量数据库

请查阅你使用的向量存储的文档以获取具体的属性名称。给定一个指向 JSON 源文件的 String 引用(包含需加载至向量数据库的数据),我们使用 Spring AI 的 JsonReader 加载 JSON 中的特定字段,将其分割为小块后传递给向量存储实现。当插入向量数据库时,文本内容通过嵌入模型(如 Word2Vec、 GLoVE、 BERT 或 OpenAI 的 text-embedding-ada-002)转换为数值数组(即 float[]),称为向量嵌入(Embedding)。

2025-10-30 14:46:24 874

原创 Spring Al学习10:检索增强生成

此处提供的 PromptTemplate 用于定制 Advisor 如何将检索到的上下文与用户查询合并,这与在 ChatClient 上配置 TemplateRenderer(通过 .templateRenderer())不同 — 后者影响 Advisor 运行前初始用户/系统提示内容的渲染。使用 QueryTransformer 时,建议将 ChatClient.Builder 的温度值(temperature)设低(如 0.0),以确保更确定性和准确的结果,从而提升检索质量。

2025-10-30 14:44:46 440

原创 Spring Al学习9:模型上下文协议(MCP)

Spring AI MCP 通过集成 Spring Boot 扩展了 MCP Java SDK,同时提供 客户端 和 服务端 Starter。具体实现指导(使用底层 MCP 客户端/服务端 API)请参阅 MCP Java SDK 文档。MCP 客户端是 Model Context Protocol(MCP)架构的核心组件,负责建立并管理与 MCP 服务器的连接。MCP Java SDK 提供 MCP 的 Java 实现,支持通过同步和异步通信模式与 AI 模型及工具进行标准化交互。

2025-10-30 14:41:15 331

原创 Spring Al学习8:工具(Tool)调用

在内部,ChatClient 将处理模型发出的所有工具调用请求,并将工具执行结果返回给模型,使模型能够生成最终响应。接下来我们将该工具提供给模型使用。若同时提供默认工具和运行时工具,运行时工具将完全覆盖默认工具。ToolCallbackResolver 由 ToolCallingManager 内部使用,用于在运行时动态解析工具,同时支持 “[_framework_controlled_tool_execution]” 和 “[_user_controlled_tool_execution]” 两种模式。

2025-10-30 14:38:41 866

原创 Spring Al学习7:ImageModel

ImagePrompt 作为 ModelRequest 的实现,封装了 ImageMessage 对象列表及可选的模型请求选项。此外,每个模型特定的 ImageModel 实现可携带专属选项传递给 AI 模型。ImageResponse 类封装 AI 模型的输出,每个 ImageGeneration 实例包含单个提示词可能生成的多个输出之一。ImageOptions 接口继承 ModelOptions,表示可传递给图像生成模型的选项,用于定义少量可跨模型移植的通用参数。

2025-10-30 14:20:26 270

原创 Spring Al学习6:嵌入模型 API

摘要:嵌入技术将文本、图像等数据转换为数值向量以捕捉语义特征。Spring AI的EmbeddingModel接口提供了标准化嵌入处理方案,支持文本转向量操作并具备可移植性和简洁性。该接口包含embed()等核心方法,可与多种嵌入模型(如OpenAI、Azure等)集成,并封装了EmbeddingRequest和EmbeddingResponse等辅助类来管理输入输出。通过计算向量距离实现语义分析,该技术为AI应用提供了基础支持。

2025-10-30 11:55:46 538

原创 Spring Al学习5 :聊天模型 API

要了解 Prompt 和 Message 的实际应用及其与这些角色或消息类别的关系,请参阅 Prompts 章节的详细说明。如下示意图展示统一接口 ChatModel 和 StreamingChatModel 的运作机制,这些接口用于与不同供应商的 AI 聊天模型交互,使客户端应用在保持统一 API 的同时,能轻松集成和切换不同的 AI 服务。借助 Prompt(输入封装)和 ChatResponse(输出处理)等配套类,Chat Model API 统一了与 AI 模型的通信。

2025-10-30 11:43:25 652

原创 Spring Al学习4:结构化输出转换器

StructuredOutputConverter 会尽力将模型输出转换为结构化格式,但 AI 模型并不保证按请求返回结构化输出(可能无法理解提示或生成所需结构)。FormatProvider 向 AI 模型提供特定格式指南,使其生成可被 Converter 转换为目标类型 T 的文本输出。FormatProvider 向 AI 模型提供特定格式指南,使其生成可被 Converter 转换为目标类型 T 的文本输出。Converter<String, T> 负责将模型的文本输出转换为指定类型 T 的实例。

2025-10-30 10:56:08 806 1

原创 Spring Al学习3:Prompt

例如,一项重要研究表明,以 “深呼吸后逐步解决这个问题” 开头的提示词能显著提升解题效率,这凸显了精心设计的语言对生成式AI系统性能的影响。Token 是 AI 模型处理文本的关键要素,作为桥梁将人类理解的单词转换为模型可处理的格式。Spring AI 中提示词模板化的核心组件是 PromptTemplate 类,专为简化结构化提示词的创建而设计,这些提示词随后会发送给 AI 模型处理。应认识到提示词工程的重要性,并考虑采用社区和研究中的洞见来改进提示创建策略。默认情况下,模板变量通过 {} 语法标识。

2025-10-30 10:41:36 867

原创 Spring Al学习2:聊天客户端 API

核心 Advisor 方法 nextAroundCall() 与 nextAroundStream() 主要执行以下操作:检查未密封的 Prompt 数据、定制与增强 Prompt 内容、调用 Advisor 链中的下一实体、选择性阻断请求、分析聊天完成响应,并通过抛出异常标识处理错误。OpenAiApi 与 OpenAiChatModel 类提供的 mutate() 方法,支持基于现有实例创建不同属性的变体,特别适用于需对接多个 OpenAI 兼容 API 的场景。

2025-10-30 10:28:10 803

原创 Spring AI学习:AI 概念LLM

就像欧氏几何中点的坐标决定其远近,语义空间中点的距离反映含义的相似性:话题相近的句子在多维空间中的位置更接近,如同图表上相邻的数据点。最近的 一篇研究论文 发现,最有效的提示语之一是以 “深呼吸,一步一步来” 开头的。系统会提供一个模型对象(通常是 java.util.Map)来填充模板中的占位符,最终 “渲染” 生成的字符串将作为传递给 AI 模型的提示内容。从最初简单的字符串形式,提示词已发展为包含多消息结构的复合形态 — 其中每条消息的字符串都对应着模型需要扮演的特定角色。

2025-10-30 10:14:50 837

原创 LangChain4j学习11:模型上下文协议 (MCP)

和消息的实际内容。如果你想更改此行为,有一个名为 dev.langchain4j.mcp.client.logging.McpLogMessageHandler 的接口,它作为接收日志消息的回调。要获取服务器上的 MCP 资源 列表,使用 client.listResources(),或者在资源模板的情况下使用 client.listResourceTemplates()。我们的想法是构建一个 Java 应用程序,连接到本地 Docker 中运行的 GitHub MCP 服务器,获取并总结最新的提交。

2025-10-29 17:14:19 999

原创 LangChain4j学习10:情感分类服务

本文档提供了使用 Java 中的 LangChain4j 实现分类系统的方法。分类对于将文本分类到预定义标签中至关重要,例如情感分析、意图检测和实体识别。这个示例演示了使用 LangChain4j 的 AI 驱动服务进行情感分类。✅ 客户反馈分析:将客户评论分类为积极、中性或消极。✅ 聊天机器人响应:理解用户情感以提供更好的响应。✅ 社交媒体监控:分析社交媒体评论中的情感趋势。

2025-10-29 17:00:16 266

原创 LangChain4j学习9:结构化输出

默认情况下,生成的 JsonSchema 中的所有字段和子字段都被视为可选的。.responseFormat(ResponseFormat.builder().type(JSON).build()) // 见下面的 [2].responseFormat(ResponseFormat.builder().type(JSON).build()) // 见下面的 [3].responseFormat(ResponseFormat.builder().type(JSON).build()) // 见下面的 [4]

2025-10-29 16:53:42 726

原创 LangChain4j学习8:RAG (检索增强生成)

对于向量搜索,这通常涉及清理文档、用额外数据和元数据丰富文档、 将文档分割成更小的片段(也称为分块)、嵌入这些片段,最后将它们存储在嵌入存储(也称为向量数据库)中。简单来说,RAG 是一种在发送给 LLM 之前,从你的数据中找到并注入相关信息片段到提示中的方法。对于向量搜索,这通常涉及嵌入用户的查询(问题) 并在嵌入存储中执行相似度搜索。与 DocumentTransformer 一样,没有一种通用的解决方案, 所以我们建议实现你自己的 TextSegmentTransformer,根据你独特的数据定制。

2025-10-29 16:51:21 649

原创 LangChain4j学习7:工具(函数调用)

这是一个非常强大的功能。在这个简单的例子中,我们给了 LLM 基本的数学工具, 但想象一下,如果我们给它提供了例如 googleSearch 和 sendEmail 工具, 以及一个查询,如"我的朋友想知道 AI 领域的最新消息。作为开发者,我们应该使用提供的参数执行这个工具,并将工具执行的结果反馈回来。当 LLM 决定调用工具时,AI 服务将自动执行相应的方法, 并将方法的返回值(如果有)发送回 LLM。可能会发生 LLM 在工具调用上产生幻觉的情况,或者换句话说,它要求使用一个不存在的名称的工具。

2025-10-29 16:48:42 680

原创 LangChain4j学习6:agent

然而,您仍然可以通过使用低级 ChatLanguageModel、ToolSpecification 和 ChatMemory API 来构建多代理系统。LangChain4j 不支持像 AutoGen 或 CrewAI 中的 high-level 抽象概念(如"agent")来构建多代理系统。大多数基本的"Agent"功能可以使用 high-level AI Service和Tool API 构建。

2025-10-29 16:46:46 198

原创 LangChain4j学习5:AI Services

例如,您可能想从文本中提取信息,如文本中提到的人员列表, 或将自由格式的产品评论转换为结构化形式,包含 String productName、Sentiment sentiment、List claimedProblems 等字段。以这种方式使用 ChatMemory 时,重要的是要清除不再需要的对话记忆,以避免内存泄漏。如果您想从 LLM 接收结构化输出(例如,复杂的 Java 对象,而不是 String 中的非结构化文本), 您可以将 AI 服务方法的返回类型从 String 更改为其他类型。

2025-10-29 16:34:57 464

原创 LangChain4j学习4:响应流式传输

一种更紧凑的流式传输响应的方式是使用 LambdaStreamingResponseHandler 类。对于 ChatLanguageModel 和 LanguageModel 接口,有相应的 StreamingChatLanguageModel 和 StreamingLanguageModel 接口。这些接口有类似的 API,但可以流式传输响应。LLM 一次生成一个标记(token),因此许多 LLM 提供商提供了一种方式,可以逐个标记地流式传输响应,而不是等待整个文本生成完毕。

2025-10-29 15:53:01 280

原创 LangChain4j学习3:模型参数

有趣的是,为了调试、调整或甚至只是了解所有可用的参数, 可以查看 quarkus DEV UI。在这个仪表板中,您可以进行更改,这些更改将立即反映在您正在运行的实例中, 并且您的更改会自动移植到代码中。可以通过使用命令 quarkus dev 运行您的 Quarkus 应用程序来访问 DEV UI, 然后您可以在 localhost:8080/q/dev-ui(或您部署应用程序的任何位置)找到它。每个模型的参数完整列表和默认值可以在各个模型页面下找到(在集成、语言模型和图像模型下)。

2025-10-29 15:48:50 393

原创 LangChain4j学习2:聊天记忆

这通常在与LLM的每次交互中发生两次: 一次是添加新的UserMessage时,另一次是添加新的AiMessage时。如果包含ToolExecutionRequest的AiMessage被淘汰, 随后的孤立ToolExecutionResultMessage也会自动被淘汰, 以避免与某些LLM提供商(如OpenAI)出现问题, 这些提供商禁止在请求中发送孤立的ToolExecutionResultMessage。当消息被淘汰时,会调用updateMessages()方法, 传入不包含被淘汰消息的消息列表。

2025-10-29 14:47:16 375

原创 LangChain4j学习一:聊天和语言模型

ChatResponseMetadata 包含 TokenUsage,其中包含有关输入包含多少令牌的统计信息 (您提供给 generate 方法的所有 ChatMessages), 输出(在 AiMessage 中)生成了多少令牌,以及总计(输入 + 输出)。然后,ChatResponseMetadata 还包含 FinishReason, 这是一个枚举,包含生成停止的各种原因。如您所见,在第二次调用 chat 方法时,我们提供的不仅仅是单个 secondUserMessage, 还有对话中之前的消息。

2025-10-29 14:43:03 496

原创 2025年语音识别(ASR)与语音合成(TTS)技术趋势分析对比

基于Mamba架构的ASR模型,利用结构化状态空间模型(SSM)有效建模时间依赖关系,实现了在多个标准数据集上的SOTA性能。:OpenAI发布的多语言ASR模型,使用68万小时的多语言数据进行训练,支持多任务和多语言的语音识别。一个完整的语音系统往往既需要听得懂(ASR),也需要说得像人(TTS)。文本转语音(TTS)技术将书面文本转换为自然流畅的语音,广泛应用于有声读物、语音助手、播客制作等领域。自动语音识别(ASR)是将语音信号转换为文本的技术,广泛应用于语音助手、会议记录、字幕生成等场景。

2025-10-28 16:09:44 880

原创 大模型之adapter-tuning

首先,作者通过对Prefix Tuning变换,发现Prefix Tuning和Adapters的公式高度相似。然后,分析不同微调方法的内部结构和结构插入形式的相似之处。下图展示了高效微调方法Adapter、Prefix Tuning、LoRA以及新变体(通过更换一些元素,设计了前人的工作里没有的变体) Parallel Adapter、 Scaled PA的结构。

2025-10-28 15:32:39 687

原创 大模型之预训练

所以要想大模型有领域知识,得增量预训练(靠指令微调记知识不靠谱,不是几十w条数据能做到的)。

2025-10-27 11:58:36 292

时间序列异常检测相关代码

时间序列异常检测代码

2024-10-22

空空如也

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

TA关注的人

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