sandbox和container对比
sandbox和container对比 Sandbox 和 Container 的区别 基本概念 Sandbox(沙箱) 定义:一种隔离环境,用于安全地运行程序,限制其对系统资源的访问 目的:提供安全隔离,防止恶意代码影响主机系统 范围:通常针对单个应用程序或进程 Container(容器) 定义:一种轻量级虚拟化技术,将应用程序及其依赖打包在一起 目的:提供一致的运行环境,确保应用在不同环境中行为一致 范围:包含完整的应用程序运行时环境 主要区别对比 特性 Sandbox Container 主要目标 安全隔离 环境一致性 隔离级别 高(安全优先) 中等(资源隔离) 资源开销 极低 低到中等 启动速度 极快 快 包含内容 单个应用/进程 完整运行时环境 技术实现差异 Sandbox 实现方式 1234567// 浏览器沙箱示例(概念性)// 运行在受限环境中const sandboxedCode = ` // 无法访问DOM、网络、文件系统 // 只能执行安全的JavaScript代码 return 42;`; 典型技术: 浏...
容器运行时扩展方案技术解析
容器运行时扩展方案技术解析 基于对某容器运行时扩展项目的代码分析,现从架构层面提炼其核心技术实现,聚焦三大核心能力:运行时接入机制、容器根文件系统云端持久化、Docker-in-Docker 安全实现方案。 1. 如何接入 Containerd 运行时生态 项目通过 Containerd Proxy Plugin 机制 实现与容器运行时的无缝集成,架构清晰、扩展性强。 ▶ 配置层接入 在 containerd 配置中注册名为 custom-snapshotter 的代理插件,通过 Unix Domain Socket 与本地 Agent 通信; 同时注册自定义 Runtime,指向特定二进制执行程序,实现容器生命周期的定制化控制。 ▶ 运行时层实现 Agent 侧:实现标准 gRPC 服务,响应来自 Containerd 的 Snapshotter 接口调用(如 Prepare、Mount、Remove); 存储层封装:采用 Wrapper 模式封装原生 OverlayFS Snapshotter,在不破坏原有逻辑的前提下注入自定义行为(如镜像预处理、元数据记录等); 通...
如何通过Pod进入到宿主机?
如何通过Pod进入到宿主机? nsenter -a -t 1 bash 命令的作用是让你在一个新的 shell 会话中,进入 PID 为 1 的进程所在的全部命名空间(Namespace)。 通过这种方式,可以从pod中进入到宿主机(全部的namespace都跟宿主机一样) breakdown 如下: nsenter: 这是一个 Linux 命令行工具,用于将当前进程“进入”到指定进程的一个或多个命名空间中。 -t 1: 这个选项指定了目标进程的 PID (Process ID)。在这里,1 是 Linux 系统中第一个启动的进程(通常是 init 或 systemd)的 PID。所有其他进程都是由它或它的子进程派生出来的。 -a: 这个选项是 “all namespaces” 的缩写。它告诉 nsenter 将当前进程加入到目标进程(PID 1)所属于的所有类型的命名空间中,包括但不限于: Mount (mnt) UTS (主机名和域名) IPC (进程间通信) Network PID (进程 ID) User ID Cgroup bash: 这是要在新加入的命名空间环...
k8s informer通俗易懂详解
Kubernetes Informer 机制详解 核心概念 Informer 是 Kubernetes 中用于监听和缓存资源对象的核心机制,它通过 ListAndWatch 机制实现高效的资源监控。 核心组件及作用 1. Reflector(反射器) 作用:负责从 Kubernetes API Server 获取资源对象 功能: List:获取资源的全量数据 Watch:监听资源的增量变化 将数据放入 Delta FIFO 队列 2. Delta FIFO Queue(增量队列) 作用:存储资源对象的变化(增删改) 特点: 保持操作顺序 存储对象的增量变化(Delta) 线程安全 3. Informer(通知器) 作用:从 Delta FIFO 队列中取出对象并处理 功能: 调用 Indexer 更新本地缓存 触发注册的事件处理器 4. Indexer(索引器) 作用:本地缓存,提供快速查询 功能: 存储资源对象的本地副本 提供基于索引的快速查找 线程安全的读写操作 5. Resource Event Handlers(资源事件处理器) ...
k8s控制面相关学习
k8s控制面相关学习 informer informer:https://zhuanlan.zhihu.com/p/391465614 https://www.zhihu.com/question/463207052/answer/2377261278 (注意Informer最后也有个controller,跟这个不一样) 对于Informer而言 大步骤1: Reflector 将资源对象的事件添加进 Delta FIFO queue 中 这里先提前介绍一下 Delta FIFO queue。 所谓 Delta 就是变化的意思,什么的变化呢?就是资源对象的变化。 即 资源对象的变化都会被添加到 Delta FIFO queue 中!这样是不是就很好理解了。 大步骤2: Informer 将 Delta FIFO queue 中的对象数据 添加到本地 cache 中。 补充一下这个本地 cache 缓存的就是监听资源对象的最新版。就是缓存的当前集群里面的资源信息。 大步骤3: 使用 workqueue 处理业务逻辑。 Kubernetes 控制面controller基...
Nano-vllm 项目学习
Nano-vllm 项目学习 项目地址:https://github.com/GeeeekExplorer/nano-vllm vllm介绍:https://zhuanlan.zhihu.com/p/693279132 paged attention:https://zhuanlan.zhihu.com/p/691038809 nano vllm: https://zhuanlan.zhihu.com/p/1923689524778766954 请求(request)可理解为操作系统中的一个进程 逻辑内存(logical KV blocks)可理解为操作系统中的虚拟内存,每个block类比于虚拟内存中的一个page。每个block的大小是固定的,在vLLM中默认大小为16,即可装16个token的K/V值 块表(block table)可理解为操作系统中的虚拟内存到物理内存的映射表 物理内存(physical KV blocks)可理解为操作系统中的物理内存,物理块在gpu显存上,每个block类比于虚拟内存中的一个page vLLM节省KV cache显存的核...
GSPO & Routing Replay
GSPO & Routing Replay 强化学习(RL)中用于大模型(尤其是MoE架构)的策略优化算法演进:GRPO → Routing Replay → GSPO。我们来系统梳理一下: 🧩 背景:GRPO 在 MoE 下的问题 什么是 GRPO? GRPO(Generalized Reward Policy Optimization) 是一种广义的策略优化方法,旨在通过广义优势估计和策略梯度提升训练稳定性与样本效率,常用于语言模型的 RLHF(Reinforcement Learning from Human Feedback)阶段。 什么是 MoE? MoE(Mixture of Experts) 是一种模型架构,通过“路由机制”动态选择部分专家(子网络)处理每个 token,从而在不显著增加计算量的前提下扩展模型容量。 GRPO 在 MoE 下的问题: 新旧策略的差异 新旧策略可能会激活不同的专家,产生结构性偏差,带来噪声。 当从 πθold 更新到 πθ 时,很有可能出现 Router 发生变化,导致新旧策略激活了不同的专家。 例如: 在 πθold...
Routine:A Structural Planning Framework for LLM Agent System in Enterprise
Routine:A Structural Planning Framework for LLM Agent System in Enterprise 这篇论文的核心价值在于,它没有停留在“让大模型自己想”的层面,而是创造性地提供了一个“剧本”,从根本上解决了企业级Agent落地难的痛点。 我们将从问题根源、解决方案(Routine框架)、系统架构、训练方法、实验结果、核心洞见六个维度,层层递进地进行深度剖析。 PS:在附录提供了prompt、routin的格式、多步工具调用的例子 一、 问题根源:为什么企业级Agent总是“掉链子”? 论文开篇就犀利地指出了当前LLM Agent在企业环境中失败的三大根本原因: “无知” (Lack of Domain-Specific Process Knowledge): 通用大模型(如GPT-4)是“通才”,但不是“专才”。它不了解企业内部错综复杂的业务流程。 后果:模型在规划时会遗漏关键步骤。论文特别指出,最容易被忽略的是权限验证(permission verification)和模型生成(model generation)这类工...
Agent中multi-hop reasoning的跳数如何控制?如何避免无限循环?
Agent中multi-hop reasoning的跳数如何控制?如何避免无限循环? 在 Agent 系统中,multi-hop reasoning(多跳推理) 是指 Agent 通过多次调用工具、反思中间结果、逐步逼近最终答案的推理过程。例如: 用户问:“马斯克创办的公司中,哪家市值最高?” → 第一跳:查“马斯克创办了哪些公司?” → 得到 SpaceX、Tesla、xAI、Neuralink 等 → 第二跳:查“Tesla 当前市值?”、“SpaceX 估值?” → 比较得出 Tesla 市值最高 → 返回答案 这类推理能力是 Agent 智能性的体现,但若不加以控制,可能导致: 无限循环(如反复调用同一工具,无进展) 效率低下(跳数过多,响应慢) 资源浪费(API 调用超限、Token 耗尽) 错误累积(中间步骤出错导致最终答案错误) 一、如何控制跳数? 1. ✅ 设置最大跳数(Max Hop Limit) 最直接有效的方法: 123456789101112MAX_HOPS = 5 # 或根据任务复杂度调整,如 3~8current_hop = 0while ...
Agent中tool selection该怎么做?
Agent中tool selection该怎么做? 在 Agent 系统中,Tool Selection(工具选择) 是决定“当前该调用哪个工具”的关键决策环节。它直接影响推理效率、准确性和用户体验。根据系统复杂度和应用场景,有多种方法可选 —— 从简单规则到高级模型驱动均有成熟方案。 🧭 一、Tool Selection 的核心目标 准确性:选对工具,参数能填对 效率:避免试错、减少跳数 鲁棒性:面对模糊输入、工具变更仍能工作 可扩展性:新增工具时无需重写逻辑 🧩 二、主流 Tool Selection 方法分类 ✅ 1. 基于 LLM 的自然语言推理(最主流) 让大语言模型(LLM)直接根据当前状态和可用工具列表,“思考”该调用哪个工具。 实现方式: Prompt 工程:在 prompt 中列出工具描述 + 用户问题 + 当前观察 → 让 LLM 输出工具名和参数 Function Calling / Tool Calling(推荐):OpenAI、Anthropic、本地模型(如 Qwen、GLM、Llama3)原生支持结构化工具调用 📌 示例(OpenA...