新闻详情

新闻详情

首页 / 资讯中心 / 详情

容器化部署性能优化实战:从Docker镜像到Kubernetes编排的全面调优

发布时间:2026/11/11 17:34:17来源:尧图网络
容器化部署性能优化实战:从Docker镜像到Kubernetes编排的全面调优
1. 项目背景与性能瓶颈定位1.1 为什么会想到做这个优化先说个背景。去年有一个业务系统从单体架构往容器化迁移用的是 Docker Kubernetes 这套技术栈。迁移本身很顺利镜像打包、编排文件编写、滚动发布都正常跑起来了但问题出现在上线后的一周——接口响应时间比原来虚拟机上跑的时候慢了两三倍高峰期还会出现偶发超时CPU 使用率一直很高但业务量并没有明显增长。这个现象其实非常典型。很多团队把服务容器化之后遇到性能变差的第一反应是代码写得有问题或者是网络架构的问题但排查下来往往发现语言层面的代码逻辑根本没有变化问题出在容器化之后那一层看不见的资源分配和运行时配置上。正是这次踩坑让我决定把整个容器化部署的性能优化做一次系统性的梳理和实战验证。这个优化的目标也很明确让同样一份代码跑在容器里不比跑在虚拟机里慢甚至在弹性伸缩和资源利用率方面比原来更好。适合所有正在做容器化迁移、或者迁移完发现性能不如预期的开发和运维同学参考。1.2 优化前的基础状态摸底在动任何配置之前先花了两天时间把现状摸清楚。这一步很关键没有基线数据后面所有的优化都说不清楚到底有没有效果。当时摸底的信息大概分成三层:第一层是基础资源层Docker 和 Kubernetes 的版本、节点规格、存储类型、网络模式。第二层是应用运行时层每个服务的基础镜像、启动参数、JVM 参数、连接池配置、日志输出方式。第三层是业务指标层接口的 P95/P99 延迟、吞吐量、错误率、节点的 CPU 内存水位。有个细节特别值得提醒容器化部署的性能优化第一步不是打开各种调优文档而是先把监控数据接好。Prometheus 加 Grafana 这套组合在 K8s 生态里是事实标准如果项目里还没有建议第一件事就把 node-exporter、kube-state-metrics 和 cAdvisor 部署起来。cAdvisor 是 Google 开源的容器资源监控工具会采集容器的 CPU、内存、网络和磁盘 IO 数据K8s 里通常直接内置集成。有了这套监控后面每做一步调整都能用数据说话。1.3 性能优化前需要理清的核心概念聊容器性能优化有几个概念必须先理清楚不然很容易被误导。第一个是 CPU 请求和 CPU 限制的区别。很多人以为这两个值设置得越大越好实际上在 K8s 里requests 是调度时使用的决定 Pod 会被调度到哪台节点limits 是运行时强制限制。如果只设置 requests 不设置 limits节点 CPU 被打满时Pod 的 CPU 使用会被压缩也就是 CPU Throttling表现为延迟突然升高。第二个是内存的 requests 和 limits 的区别以及 OOM 杀进程的机制。内存一旦超过 limitsK8s 会直接杀掉容器而且正常情况下没有商量的余地。第三个是容器文件系统和数据卷的 IO 性能差异。镜像层是只读的容器层写入会有 Copy-on-Write 的额外开销数据卷则取决于存储类型本地盘和网络存储的 IOPS 差距非常大。这些概念直接决定了后面所有调优的方向。2. 镜像构建优化从源头给容器减负2.1 多阶段构建把构建环境和运行环境彻底分开容器化部署性能优化的第一站很多人想不到其实是镜像本身。镜像是容器的静态基础它的大小、层数、构建方式直接决定容器的启动速度和运行时 IO 开销。当时我们有个 Java 服务基础镜像用的是比较早期的做法直接在 openjdk 镜像里跑 Maven 编译再带着完整的 Maven 环境一起打包。这种镜像包含了编译器、依赖下载缓存和大量无用的系统工具体积接近 1.5GB每次拉取都要花不少时间启动时文件系统层也要初始化处理这么多数据。后来改成了标准的多阶段构建。第一阶段用 maven 镜像作为构建环境完成 jar 包编译第二阶段只把编译好的 jar 包拷贝到精简的 jre 镜像里。改造之后镜像体积从 1.5GB 直接降到 300MB 出头拉取时间从原来的几分钟降到了几十秒。多阶段构建还有一层好处就是构建环境里的敏感文件不会遗留在运行镜像里安全层面也更有保障。下面是当时改造后 Dockerfile 的核心片段Java 服务加 Spring Boot 的典型写法# 第一阶段编译 FROM maven:3.8-openjdk-11 AS builder WORKDIR /build COPY pom.xml . RUN mvn dependency:go-offline COPY src ./src RUN mvn package -DskipTests # 第二阶段运行 FROM openjdk:11-jre-slim WORKDIR /app COPY --frombuilder /build/target/app.jar ./app.jar EXPOSE 8080 ENTRYPOINT [java,-jar,app.jar]这里面有两个关键点。第一个是dependency:go-offline把依赖下载放到单独的一层代码变更时只要 pom.xml 没动这一层缓存就能直接命中构建速度能快非常多。第二个是openjdk:11-jre-slim只包含运行时环境不带编译器体积比完整 JDK 镜像小一半以上。2.2 精细控制镜像层与依赖体积镜像多一层在 Docker 里意味着多一个只读层的存在运行时访问这些层的文件会有额外的查找开销拉取和存储也都要多占资源。减少镜像层数量最直接的办法就是把 RUN 命令合并。我见过比较夸张的 Dockerfile一个 RUN 一条命令一个镜像十几层每一层还要做清理。正确的做法是把必要的安装、配置、清理操作合并到一个 RUN 块里比如RUN apt-get update \ apt-get install -y --no-install-recommends curl tzdata \ rm -rf /var/lib/apt/lists/*最后面的rm -rf /var/lib/apt/lists/*是关键很多人装完包不清理软件源缓存会让镜像白白多出几十 MB。对于 Java 服务还可以考虑用jlink裁剪 JRE只保留运行需要的模块能进一步压缩体积但这个操作偏高级而且对模块化不完整的项目有风险建议评估后再用。另外提一句.dockerignore文件这个很容易被忽略。如果项目里没有配置Docker 会把整个项目目录都作为构建上下文发送给守护进程临时文件、target 目录、.git 目录都会包含进去。配置了.dockerignore之后构建上下文体积能缩小非常多构建速度也明显提升。2.3 利用构建缓存加速镜像构建当镜像构建从 5 分钟降到 3 分钟之后我们可以继续优化最耗时的那一步——依赖下载。这里利用 Docker 的构建缓存机制把COPY pom.xml和RUN mvn dependency:go-offline放在复制全部源码之前。因为在实际开发中pom.xml 的改动频率远低于源代码所以缓存命中率会非常高。这里有个隐藏问题值得注意如果使用 BuildKit它默认不缓存那些通过RUN --mounttypecache挂载的部分需要手动指定。对于 Maven 构建可以这样利用自定义缓存目录避免每次构建都去仓库拉取全部依赖RUN --mounttypecache,target/root/.m2 \ mvn package -DskipTests这样配置后.m2仓库的依赖会在多次构建之间保留只有真正有变更的依赖才会重新下载。实测下来稳定依赖阶段的构建时间能压缩到 1 分钟以内。镜像优化做完之后容器启动速度已经有了明显提升但这只是性能优化的第一层真正的重头戏在下面。3. 容器运行时配置优化资源与内核参数3.1 CPU 限制导致的应用卡顿之谜镜像优化完之后我们把服务重新发布接口延迟有所改善但高峰期 CPU Throttling 的问题还是很明显。这才开始认真研究 CPU 限制的底层机制。这里先讲一个容易误判的场景。有一套服务我们一开始给 Pod 设置的是limits.cpu: 4想着 4 核的配额总够了吧。但跑了一段时间发现即使负载并不算高接口的响应时间在特定时间段内仍然周期性变差。监控面板上看 CPU 使用率并不高但容器的 CPU Throttling 指标却持续有波动。查了不少资料才弄明白Kubernetes 的 CPU 限制用的是 CFSCompletely Fair Scheduler配额机制。CFS 默认的运行周期是 100mslimits.cpu: 4意味着在每个 100ms 周期里该容器最多能使用 400ms 的 CPU 时间。对于一个多线程 Java 应用来说如果线程在同一时刻爆发式地请求 CPU就很容易在某个周期内达到配额上限然后被内核强制节流导致线程等待调度表现出来就是延迟突然升高。这个问题的解决方案有两个方向。第一个方向是调大cpu.cfs_period_us让配额周期变长这样 CPU 使用的突发性会被摊平触发 Throttling 的概率会降低。第二个方向是使用 Kubernetes 1.22 之后提供的 CPU 管理策略把 CPU 绑核给 Pod避免上下文切换带来的性能损耗。我们最终采用了静态 CPU 管理策略给核心服务设置cpu: 2把高优先级的服务绑在固定的物理核上实测下来 P99 延迟降了将近 30%。下面是当时配置 Pod 时用到的核心片段resources: requests: cpu: 2 memory: 4Gi limits: cpu: 4 memory: 4Gi如果希望使用静态绑核策略需要在 kubelet 启动参数里加--cpu-manager-policystatic并对相关节点打标签。这个配置需要在集群层面去调整不是每次发版都能改的所以我们在做之前先评估了节点数量和业务类型最终确定只对延迟敏感型服务开启这个策略。3.2 内存限制极易踩的 OOM 与 swap 坑内存这块有个非常经典的大坑。Java 服务在容器里跑如果 JVM 参数还是按照物理机的写法来比如-Xmx4g但容器内存 limit 只有 2Gi那 On-Heap 内存还没用满容器就可能因为总内存超限被 OOM Killer 杀掉。因为 JVM 除了堆内存之外还有 Metaspace、线程栈、JIT 编译缓存、Direct Buffer 这些堆外内存这些同样要被算进容器的内存使用量里面。更麻烦的是在容器里如果不加任何 JVM 参数老版本的 JVM 默认会拿宿主机内存来设置堆大小比如宿主机有 64GB 内存JVM 会非常老实地把默认堆上限设到 16GB。结果就是容器 limit 只有 2GiJVM 却按 16GB 来申请内存一启动就直接 OOM根本跑不起来。很多人第一次碰到这个问题时会以为是镜像坏了其实只是 JVM 感知不到容器边界。现在从 JDK 8u191 开始JVM 提供了-XX:MaxRAMPercentage这个参数可以按容器内存的百分比来设置堆大小。推荐配置是JAVA_OPTS-XX:MaxRAMPercentage75.0 -XX:InitialRAMPercentage50.0要注意给堆外内存留出余量千万不要把 MaxRAMPercentage 设成 90 以上。保守一点的话配合-XX:MaxDirectMemorySize把堆外内存也限制住会更稳。另一个建议是在容器里测试时要主动触发 Full GC观察 RSSResident Set Size是否稳定在 limit 内避免线上出现来自 OOM 的惊喜。3.3 磁盘 IO 与日志导致的隐性问题线程池、CPU、内存都优化完之后还有一个容易被忽略的地方是磁盘 IO。容器写日志默认是写到容器层也就是 OverlayFS 的可写层。OverlayFS 的写操作跟普通文件系统不太一样会有 COWCopy-on-Write的开销而且日志量一旦大起来容器可写层会被写满K8s 会开始清理并驱逐 Pod。我们当时的做法是把日志目录挂载成 emptyDir 卷避免写入容器层volumeMounts: - name: app-log mountPath: /app/logs volumes: - name: app-log emptyDir: {}这只是第一步更彻底的方案是让应用直接把日志输出到标准输出 stdout由容器运行时统一收集K8s 层面的日志轮转重启 Pod 后也能保留。这样不再往容器文件系统写日志文件磁盘 IO 压力小很多也方便对接后端的日志采集平台。说到磁盘 IO还有一个 Docker 存储驱动的老问题。在 CentOS 上默认可能是 devicemapper在 Ubuntu 上默认是 OverlayFS2如果你的节点还在用 devicemapper性能跟 OverlayFS 比会差不少建议尽早迁移到 OverlayFS2 或 fuse-overlayfs。这个影响在最开始可能看不出来但日志量一大、镜像拉取一频繁差距就很明显。4. 应用运行时调优 JVM 连接池与线程数4.1 容器感知型 JVM 参数配置既然提到 JVM就再展开说说容器化之后 JVM 的调优思路。与物理机上运行不同容器化之后 JVM 需要更强的自我约束能力。对于 Java 11 及以上的版本默认开启了容器感知Container Awareness但仍有必要显式配置堆内存比例。最稳的设置是-XX:MaxRAMPercentage75 -XX:InitialRAMPercentage50 -XX:UseG1GC -XX:MaxGCPauseMillis100G1 垃圾收集器在 JDK 11 之后已经成为默认但对于内存较大的服务ZGC 在低延迟场景下表现更好。我们当时有一个核心交易服务内存 limit 是 8GiJDK 17切换成 ZGC 之后GC 停顿从 G1 的几十毫秒降到了几毫秒以内Very nice。注意ZGC 适合堆内存比较大的场景小内存就别跟风了开 ZGC 不一定有收益。而且ZGC 在容器里需要特别关注 CPU 核数默认的并发线程数可能会偏高可以通过-XX:ConcGCThreads手动控制。4.2 连接池参数设置的黄金法则另一个常见的性能杀手是连接池和线程池大小设置不合理。现在很多后端服务用 Spring Boot MySQL默认的 HikariCP 连接池是 10 个连接大多数场景下够用但如果服务部署了多个副本每个副本又持有 10 个连接数据库侧的连接数很快就被打满。更关键的是连接池不是越大越好连接太多反而会增加数据库的上下文切换开销。有句话叫“连接池大小 核数 x 2 有效磁盘 IO 数”这是一个经验公式实际项目中还要结合接口的平均响应时间来看。更直接的方法是做压测用 JMeter 或者 wrk 从低到高级别压观察连接池使用率和接口延迟之间的关系。当时我们一个商品查询服务初始连接池是 20压测后发现 8 个连接就能稳定支撑当时的峰值流量把连接数调小之后数据库的 CPU 反而下降了。对于 HTTP 客户端的连接池也是一样的逻辑不要让每个服务都有自己的一套超大连接池微服务体系里这些连接池叠加起来很容易把下游服务压垮。4.3 数据库与中间件的连接治理数据库连接池这块再补一点。容器化部署环境下应用实例会频繁的扩缩容如果连接池参数配置不当扩容时会瞬间建立大量数据库连接给数据库带来连接风暴严重时会把数据库拖垮。给连接池设置一个合理的初始化连接数和最大连接数同时打开连接泄漏检测。以 HikariCP 为例spring: datasource: hikari: minimum-idle: 5 maximum-pool-size: 20 connection-timeout: 3000 leak-detection-threshold: 60000connection-timeout设置成 3000 毫秒避免数据库连接池耗尽时应用无限等待。leak-detection-threshold是连接泄漏检测超过 60 秒没归还连接就告警。这套配置在现网验证过扩容 3 副本时数据库连接数依然保持平稳没有产生过连接风暴。5. Kubernetes 编排层优化弹性伸缩与服务调度5.1 优雅上下线减少滚动更新时的流量损失配好资源之后我们开始看 K8s 层的优化。前面做的优化都是针对单个 Pod 的但如果整个集群的调度和滚动发布做得不好单个 Pod 再快也没用。先说滚动更新时的优雅上下线。默认的配置下Pod 被终止时K8s 会先发送 SIGTERM 信号然后等terminationGracePeriodSeconds时间到了之后直接杀死容器。如果应用没有处理 SIGTERM或者处理得太慢就会导致正在处理的请求被强行中断。我们的做法分三步。第一步在 Deployment 里配置preStop钩子让新版本 pod 完全就绪前先等待几秒再接受流量。第二步配置readinessProbe的periodSeconds和failureThreshold确保流量只打到真正就绪的Pod上。第三步设置合理的terminationGracePeriodSeconds给应用留出处理存量请求的时间。配置参考如下lifecycle: preStop: exec: command: [sh, -c, sleep 10] terminationGracePeriodSeconds: 30 readinessProbe: httpGet: path: /actuator/health port: 8080 initialDelaySeconds: 10 periodSeconds: 5 failureThreshold: 3这套组合下来滚动更新造成的请求失败基本降为零。这里sleep 10的作用是等待负载均衡器摘除旧 Pod 的流量时间可以根据自己的网络组件来调整不同网络插件摘除流量的速度有差异。5.2 HPA 弹性伸缩的阈值与副本数设置弹性伸缩是容器化部署一个很大的优势。但如果 HPA 的参数配得不好性能不但不会变好反而会劣化。最常见的问题是扩容太慢、缩容太快以及扩容阈值设置太高导致请求已经超时了才开始扩容。当时有个用户服务流量有明显的波峰波谷最开始 HPA 配置是 CPU 使用率超过 70% 才扩容结果在高峰期CPU 涨到 70% 到扩容完成之间有将近一分钟的窗口期这段时间请求延迟直接飙升。调整之后把扩容阈值降到 50%并且配置了一条基于 QPS 的 Prometheus 自定义指标 HPA。Modern 推荐做法是以 Pod 的 CPU 使用率加 QPS 双指标进行弹性伸缩。CPU 反映的是资源压力QPS 反映的是业务压力两者结合才能做到精准伸缩。配置参考metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 - type: Pods pods: metric: name: http_requests_per_second target: type: AverageValue averageValue: 500关于缩容K8s 默认的缩容策略过于激进需要配合behavior参数设置冷却时间和缩容比例。我们用的是下面的配置让缩容在五分钟内最多减少一个副本避免流量稍微下降一点就疯狂缩容然后又马上扩容。behavior: scaleDown: stabilizationWindowSeconds: 300 policies: - type: Pods value: 1 periodSeconds: 605.3 集群拓扑与亲和性调度优化集群节点之间如果网络链路不稳定或者部分节点规格差异较大调度策略会直接影响性能。最简单的优化是给节点打标签把延迟敏感型服务调度到固定的一批高性能节点上其他服务不要占用这批节点资源。可以用 nodeSelector 来实现。更进一步如果要保证服务的高可用且服务之间有大量调用可以把调用方的 Pod 和被调方的 Pod 放在同一节点或者同一可用区通过 Pod 亲和性来减少网络往返的延迟。还有一点如果集群的规模比较大要确保 CoreDNS 的副本数足够并且不要把所有 CoreDNS 放在同一个节点。DNS 解析延迟虽然看起来很小但在高并发场景下一次额外的 DNS 超时等待就能让 P99 延迟翻倍。这些编排层的优化和单个 Pod 的优化叠加效果才开始全面体现。6. 监控告警与故障排查实战经验6.1 容器化性能问题排查的核心命令优化做完了要能验证效果出了问题也要能快速定位。我整理了一套容器化性能排查常用的命令Ex多少钱都不换的经验#查看Pod的CPU节流情况 kubectl exec -it pod -- cat /sys/fs/cgroup/cpu.stat #查看Pod当前CPU和内存使用 kubectl top pod -n namespace #查看节点上容器资源用量 docker stats --no-stream #抓取JVM线程栈 jstack pid thread_dump.txt #查看OOM Kill日志 kubectl describe pod pod | tail -20 dmesg -T | grep -i oom #确认容器实际内存占用的RSS cat /sys/fs/cgroup/memory.currentcgroup 文件直接看容器的资源数据比任何工具都可靠。cpu.stat里的nr_throttled如果持续增长说明 CPU 限制需要进行调整throttled_time如果占了实际运行时间的很大比例那么 CPU limit 很可能设得太小了。6.2 三个实际踩过的坑与复盘第一个坑是基础镜像里的时区问题。镜像是 UTC 时区日志打印时间和本地时间差 8 小时一开始排查性能问题时看日志的时间戳非常混乱后来加了ENV TZAsia/Shanghai并安装tzdata解决。这个问题不在性能指标本身但会影响排查效率。第二个坑是健康检查的配置。最开始readinessProbe的initialDelaySeconds配置为 3服务启动要 15 秒结果在启动前 12 秒内没有就绪探针探测等探针开始探测时服务刚启动完第一次探测失败了几次。后来把initialDelaySeconds调到 20就稳定了。健康检查本身不直接提升性能但能避免流量打到未就绪的 Pod 上减少无效重试和超时。第三个坑是 Python 服务的 Dockerfile 里用pip install的时候没有加--no-cache-dir镜像体积大了不少拉取慢。这个和 Java 场景下的 apt 缓存清理是同一个问题不同语言的项目会在不同位置载同一个跟头。6.3 一套实用到可以直接抄的压测与验收方法优化得有没有效果口说无凭得用数据说话。这里分享一套我们实际用来验收的压测方法。压测工具用的是 wrk 和 Locust。wrk 适合短平快的接口压测Locust 适合模拟更真实的用户行为。对于每个优化项都做同一组对比实验同样的代码、同样的压测参数、同样的数据量只改变要验证的配置记录吞吐量、P95 延迟、P99 延迟、错误率这四个核心指标。当时优化前后的一组实测数据对比指标优化前优化后提升幅度镜像体积1.5GB320MB提升了 78%P99 接口延迟850ms210ms提升了 75%容器 CPU Throttling 占比12%1%明显缓解滚动更新错误率1.8%0.02%下降了 98%高峰期副本数2414减少了 42%压测的时候注意一点压测工具本身也会消耗资源有条件的话把压测机单独部署不要在同一个集群里压测服务否则结果会互相干扰。优化完成之后一定要回归一遍业务全流程确认没有因为参数调优引入新问题。6.4 一套够用且不过度的监控告警规则监控告警是性能优化的持续保障。没有监控优化效果无法持续验证告警配置得太多又会出现告警风暴最后大家都不看了。我比较推荐的最小化告警集合节点层面关注 CPU 使用率超过85%、内存使用率超过85%、磁盘空间不足/磁盘 I/O 延迟过高。Pod 层面关注 OOMKilled、反复重启、CPU Throttling 占比持续大于5%、就绪探针失败。应用层面关注 P99 延迟异常增长、错误率超过1%、QPS 断崖式下跌。Prometheus 告警规则示例比如容器CPU节流- alert: ContainerCPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_requests_total{container!}[5m]) / rate(container_cpu_cfs_periods_total{container!}[5m]) 0.05 for: 10m labels: severity: warning annotations: summary: 容器CPU节流异常 ({{ $labels.container }})我个人的经验是告警宁缺毋滥每一个告警都必须能让人立刻知道该怎么开始排查。配好监控后每一次变更发布后都要顺手看一眼各项指标曲线是否平稳绝不直接丢给业务方说自己没问题。容器化性能优化没有一次做完的说法。业务在增长流量在变化基础组件在升级优化是一个持续迭代的过程。但方法论是通用的先监控定位再镜像瘦身再资源分配再应用调优再编排优化最后用数据回归验证。每一步都有据可依每一步都能看到明确的结果。循环往复系统的性能就可以稳定在健康的状态。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/10 19:42:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/11 9:31:44

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/11 5:36:08

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/11 15:37:39

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/10 17:14:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉