avatar
文章
599
标签
109
分类
29
首页
归档
分类
标签
关于
xhj的博客
首页
归档
分类
标签
关于

xhj的博客

Python实现注意事项
发表于2026-01-04|AI Agent
16. Python 实现注意事项1. 实现原则目标不是逐字复刻原实现,而是用 Python 重建同样的产品能力结构。 2. 模块建议建议 Python 项目按以下模块拆: runtime/:query loop, orchestration messages/:message schemas tools/:tool registry and execution permissions/:permission engine memory/:memory loading and retrieval tasks/:background task model storage/:transcript and session persistence agents/:agent definitions extensions/:skills/plugins/mcp verification/:verification runner 3. 推荐先用的数据模型优先用: pydantic / dataclasses 定义消息与状态 sqlite 或 JSONL 先...
MCP 解决什么问题
发表于2026-01-03|AI Agent
MCP 解决什么问题在 Agent 系统中,让Agent做出重要的决定的一个关键点是构造好的 /chat/completions 请求参数,参数中: messages 参数:给出对话历史,历史中包含的背景信息质量越高,给出的答案就会更准确; tools 参数:给出模型可用的工具,用于获取动态信息或执行某些动作。 这两个参数都可以认为是我们给模型的上下文信息。(context) message 的内容和问题messages 是一个数组,数组中的 content 的值是 user 给出的信息,或者其他角色的历史输出信息。如果是 user 给出的信息,则一般的做法是用一个 prompt template来组织基本的 prompt 结构,并将一些动态的信息通过其他方式检索到,补充道 prompt template中的占位符,从而形成最终输入模型的 prompt。 要得到最好的解,不同的问题需要不同的 prompt template。这是一个难点 tools 的内容和问题/chat/completions 接受的 tool 是有一定的 schema 规定,而一般的工具(如RESTful...
MCP 三大核心概念
发表于2026-01-02|AI Agent
MCP 三大核心概念MCP(Model Context Protocol)的三大核心概念——Resources、Tools 和 Prompts。MCP 是 2024 年底由 Anthropic 搞出来的一个开放协议,目的是让大语言模型(LLM)能更顺畅地跟外部数据和工具对接。以下是我的解读: 1. Resources(资源)本质:Resources 是 MCP 里用来暴露数据的核心机制,相当于给 LLM 提供“原材料”。你可以把它想象成一个只读的数据库接口或者文件系统,里面装的是静态或者半动态的信息,比如日志文件、用户配置文件、股票价格啥的。 怎么用:服务器(MCP Server)把这些数据暴露出来,客户端(比如 LLM 应用)可以读取它们,然后塞进模型的上下文里去推理或者生成内容。比如你有个日志文件 app.log,通过 Resources 就能让 LLM 直接看到里面的错误信息。 特点: • 应用控制:客户端决定啥时候用、怎么用这些资源。有的客户端像 Claude Desktop 得用户手动选,有的可能自动挑,灵活得很。 • 实时性:支持订阅更新,比如资源变了,服务器能通知...
Agent运行时主循环规格
发表于2026-01-01|AI Agent
08. Agent 运行时主循环规格 目标:定义 Python 版本实现时最核心的运行时循环。该文档不是源码解释,而是实现规格。 1. 设计目标主循环必须满足以下目标: 能持续推进任务,而不是只做一次回答 能在每轮后根据工具结果重新决策 能在权限阻断、上下文压缩、工具失败时继续可控运行 能触发子 agent、后台任务、验证任务 能生成可追踪的消息流与 transcript 2. 主循环的输入一次主循环至少需要以下输入: messages: 当前消息序列 system_prompt: 已组装完成的系统提示词 tool_registry: 当前可用工具集合 tool_use_context: 执行上下文(cwd、权限、session、任务状态) memory_context: 注入后的记忆内容 user_context: 用户态上下文 system_context: 系统态上下文 can_use_tool: 权限判断函数 max_turns: 最大回合数 task_budget: 本轮任务预算(可选) 3. 主循环的输出主循环每轮可能产出: 普通 assistant 消息...
线性代数基本概念
发表于2025-12-15|LLM
线性代数基本概念 特征值和特征向量 值域空间 零空间 行空间与列空间 正交补 基 标准正交基 奇异值分解 Matrix Norm (矩阵范数) Frobenius Norm (弗罗贝尼乌斯范数) 奇异值分解在统计中的主要应用为主成分分析(PCA)。数据集的特征值(在 SVD 中用奇异值表征)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量张成空间为降维后的空间。
深入解析Python包调用原理与最佳实践
发表于2025-12-14|LLM
深入解析 Python 包调用原理与最佳实践[toc] 一、引言写下这篇文章的起因,是最近我在参与 vLLM 项目的开发过程中,发现其中使用了一种动态加载对象的方式值得学习,并由此想对 Python 语言加载依赖的方式做一个研究和总结。本文将通过实验的方式,对 Python import 的原理以及不同 import 方式的区别进行介绍,并针对具体开发过程中可能会遇到的一些问题,分享一些最佳实践的解决方案。 二、什么是 Python 的包?Python 中的模块、包以及库有什么区别? 一种简单且直观的理解: 模块(module):任何 .py 文件都可以作为一个“模块”(除了 .py 文件之外,模块还可以有其它形式); 包(package):任何包含了一个 __init__.py 文件的文件夹都是一个“包”,一个包里可以包含其它的包和模块; 库(library):“库”更多地是一种编程上的概念,表示可重复利用的代码。 关于这个问题,更深入的分析和讲解可以参考知乎上“风影忍者”和“看图学”的这两个回答,这里不再深入进行介绍。 三、深入解析 Python import 原理下...
昇腾empty_cache原理
发表于2025-12-13|LLM
这是个非常好的观察,而且你没有看错 👍在 vLLM-Ascend(NPU) 上,torch.npu.empty_cache() 确实可能导致 non-torch 显存下降,这和 CUDA 的行为本质不同。 下面我分「结论 → 原因 → 机制细节 → vLLM 场景」把这件事讲清楚。 一句话结论(先给你) 在 Ascend / torch-npu 上:torch.npu.empty_cache() 不仅仅是 PyTorch cache 操作,它会间接触发 Ascend Runtime / ACL 的内存回收路径,从而 释放部分 non-torch(runtime / kernel / workspace)显存。 这在 CUDA 上几乎不会发生,但在 Ascend 上是“设计如此”。 1️⃣ 为什么 CUDA 上不行,Ascend 上却行?CUDA(torch.cuda.empty_cache) 只操作 PyTorch CUDACachingAllocator 不会触发: CUDA Runtime 内部 pool cuBLAS &#...
推理显存计算
发表于2025-12-12|LLM
推理显存计算推理所需显存 = 模型参数部分 + 激活参数部分 + KVCache 部分 模型参数部分 = 模型参数量 × 精度系数 激活参数部分 = 激活参数量 × 精度系数 KVCache 部分 = 并发数 ×(输入 Token 数 + 输出 Token 数)× 2(K 和 V)× 层数 × hidden_size × 精度系数 参考资料:模型显存计算逻辑
推理引擎
发表于2025-12-11|LLM
推理引擎推理系统与推理引擎训练和推理服务推理和训练的区别: 模型部署后,长期运行; 不需要反向传播; 部署设备更加多样。 推理服务系统的功能(与 AI 算法关系不大,更多地是平台性的工作): 模型加载; 版本管理; 数据管理; 服务接口。 优化目标 低延迟; 高吞吐:高负载; 高效率:低功耗使用 CPU/GPU; 灵活性:支持多框架; 扩展性。 部署态场景:数据中心的服务端、边缘侧的移动端。 云端; 边侧:严格约束功耗、算力不足、数据分散、平台多样化。 推理系统架构推理服务化、推理服务框架。 基本概念: 推理:前向计算; 部署:将模型部署到硬件上,包括:移植、压缩、加速等; 服务化:将模型封装为 sdk 或 web 服务。 Triton 服务化框架: 接入层:HTTP、gRPC、CAPI; 模型仓库; 模型预编排:解析 URL 请求; 框架后端:指推理引擎(如 TensorRT、ONNX Runtime、MindSpore Lite 等); 监控功能:健康管理。 模型版本管理模型生命周期管理: 金丝雀策略(Canary); 回滚策略(Rollba...
推理加速
发表于2025-12-10|LLM
推理加速模型量化数值类型LLM 的训练和推理要尽量使用 BF16,而不是 FP16/HF16/FP32。 FP32:单精度浮点数,用 8 bit 表示指数,23 bit 表示小数; FP16:半精度浮点数,用 5 bit 表示指数,10 bit 表示小数; BF16:对 FP32 单精度浮点数截断数据(小数部分),即用 8 bit 表示指数,7 bit 表示小数。 这里的计算方式不太懂? BF16 vs HF16: BF16 拥有 7 位精度,而 HF16 拥有 10 位精度。这表明在表示接近于 1 的小数值时,HF16 比 BF16 能提供更高的精度。然而,BF16 拥有与 FP32 相同的 8 位指数部分,因而能够表示与 FP32 几乎一样广泛的数值范围,这对于避免上溢和下溢非常重要。尽管 BF16 在尾数精度上不如 HF16,但在深度学习应用中,这种较宽的数值范围通常比尾数的额外几位精度更为重要。这是因为深度学习模型通常对权重的尾数精度不是非常敏感,而更依赖于能够处理范围广泛的梯度和权重值。 总结: 量化后速度并不能明显提高,但占用的显存显著减...
1…202122…60
avatar
xhj
相关学习笔记
文章
599
标签
109
分类
29
Follow Me
公告
欢迎来到我的博客
最新文章
14-FastAPI接口与项目闭环2026-10-14
13-主智能体搭建与异步执行2026-10-13
12-RAGFlow子智能体与知识库准备2026-10-12
11-数据库查询子智能体与MySQL工具2026-10-11
10-网络搜索子智能体与Tavily工具2026-10-10
分类
  • AI Agent101
  • Algorithm20
  • Backend Dev74
  • Big Data2
  • C/C++2
  • Claude Code118
  • Computer Basics18
  • Computer Network2
标签
JDBC Semaphore Hadoop Kafka HBOS Process Backend Dev Gradient Descent GCN Cross validation Trie Docker MLP Isolation Forest Gradient descent PyOD NMF Tornado TwoPointer Math Algorithm RabbitMQ OLSE dijkstra Filter Bayesian optimization PCA Wapper Git MonotoneStack List Dubbo Linux JVM Architecture JVM Redis JVM Performance Monitoring Embedding TCP/IP Stream API
归档
  • 十月 2026 14
  • 九月 2026 17
  • 八月 2026 30
  • 七月 2026 24
  • 六月 2026 26
  • 五月 2026 25
  • 四月 2026 16
  • 三月 2026 20
网站信息
文章数目 :
599
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By xhj框架 Hexo 8.1.2|主题 Butterfly 5.5.4