首页 文章 精选 留言 我的

精选列表

搜索[原生统一],共10006篇文章
优秀的个人博客,低调大师

AIGC生成风格统一图片的方法介绍

过去一段时间以来,AIGC图片生成技术快速发展,在电商以及内容创作领域展现出来极高的应用价值。 除了基础的基于prompt的文生图能力,社区还涌现出来更多的扩展技术。 比如Controlnet技术能利用线稿信息、深度信息等对生成图片的空间结构进行控制,还有IP-Adapter技术能够基于参考图片的内容对生成图片进行风格迁移。 这些技术都便利了用户对AIGC的使用。 本文将介绍如何利用AIGC生成多张风格一致的图片的技术。对此,本文挑选了两篇比较有代表性的方法:Style Aligned方法和Story Diffusion方法,本文会对这两种方法的原理和技术细节进行介绍。然后,我们展示了相关方法应用在家装领域上的一些效果,并分析了目前效果的优点与不足。最后我们对本文内容进行了总结,并讨论了该类方法未来的应用前景。 技术介绍 我们在这里简单介绍一下生成多张风格一致图片的AIGC技术,包括Style Aligned方法以及Story Diffusion方法。 ▐StyleAligned 方法 Style Aligned方法的目标是生成符合prompt的一批风格一致的图片。想要实现该目标,最简单直接的方法是在prompt中使用相同的风格描述词,但是由于在生成过程中,图片之间对彼此的内容缺乏了解,导致最后风格往往很难达成一致。 Style Aligned方法的核心思想是在生成过程中设计共享self-attention机制,从而实现同一批图片彼此内容的交流。具体来说,Style Aligned在生成一批图片时,会让每一张图片参考该图片本身以及该批图片中第一张图片的特征进行共享self-attention的计算,实现同一批图片在特征上的对齐,从而生成多张风格一致的图片。 ▐StoryDiffusion方法 Story Diffusion方法包含两个阶段,在第一阶段中,提出了Consistent Self-Attention, 一种training-free 的方式,来生成主题一致性的一系列图像。在第二阶段中,利用之前生成的一致性图片,作者构建了一个transformer block,它在语义隐空间预测中间帧,并用视频生成模型来把语义隐空间的向量重新解码成视频。 本文接下来对第一阶段的一些细节进行讲解。对于输入的一段长prompt,首先会将其按场景分为多段prompt,每段prompt分别对应生成一张图片。为了构成连环画或视频,这些图片的主体需要保持一致,作者提出了Consistent Self-Attention方法来实现这一目标。Consistent Self-Attention 对于每一帧在计算Self-Attention 的时候,会随机采样batch 内其他帧的内容,作为Key 和 Value 的一部分,实现了batch 内图像的细节交互。 运用Consistent Self-Attention之后,人脸可以保证特别好的保持效果,结合prompt的辅助控制,也能较好的保持衣物细节。因为保持人物id的性质,这一部分不仅可以作为视频关键帧,也可以用作漫画生成。 实测效果 我们在家装场景中对Style Aligned方法的效果进行了测试。我们将一件家具的多张视角图片作为一个batch输入到Style Aligned中,然后对这些家具填充背景。Style Aligned的输出如下图所示,可以看到同一批图片中,不同视角下的家具在整体装修上的风格是可以保持一致的。但是,进一步观察,这些图片在空间结构和物体细节上还是无法精准的保持一致的,这可以作为未来研究的一个方向。 结语 本文介绍了两种生成多张风格一致图片的AIGC技术,即Style Aligned方法和Story Diffusion方法。Style Aligned方法通过共享self-attention机制实现图片间特征对齐,而Story Diffusion方法则利用Consistent Self-Attention在语义隐空间实现主题一致性。实验结果显示,这些方法能够较好地保持同批图片的整体风格一致性,但在保持空间结构和细节方面的一致性仍有提升空间。总的来说,这些技术为AIGC生成连贯性图像序列提供了有益探索,对于视频/漫画等应用场景具有重要意义。 参考资料 [1] Amir Hertz, Andrey Voynov, Shlomi Fruchter and Daniel Cohen-Or. Style Aligned Image Generation via Shared Attention. In CVPR, 2024. [2] Yupeng Zhou, Daquan Zhou, Ming-Ming Cheng, Jiashi Feng and Qibin Hou. StoryDiffusion: Consistent Self-Attention for Long-Range Image and Video Generation. arXiv preprint arXiv:2405.01434, 2024. 团队介绍 我们是淘天集团-场景智能技术团队,一支专注于通过AI和3D技术驱动商业创新的技术团队, 依托大淘宝丰富的业务形态和海量的用户、数据, 致力于为消费者提供创新的场景化导购体验, 为商家提供高效的场景化内容创作工具, 为淘宝打造围绕家的场景的第一消费入口。我们不断探索并实践新的技术, 通过持续的技术创新和突破,创新用户导购体验, 提升商家内容生产力, 让用户享受更好的消费体验, 让商家更高效、低成本地经营。 ¤ 拓展阅读 ¤ 3DXR技术| 终端技术| 音视频技术 服务端技术 | 技术质量| 数据算法 本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

统一观测|借助 Prometheus 监控 ClickHouse 数据库

引言 ClickHouse 作为用于联机分析(OLAP)的列式数据库管理系统(DBMS), 最核心的特点是极致压缩率和极速查询性能。同时,ClickHouse 支持 SQL 查询,在基于大宽表的聚合分析查询场景下展现出优异的性能。因此,获得了广泛的应用。本文旨在分享阿里云可观测监控 Prometheus 版对开源 ClickHouse 的监控实践。 一、ClickHouse 简介 (一)技术特点 列式存储与数据压缩: 在执行数据查询时,列式存储可以减少数据扫描范围和数据传输大小,提高数据查询的效率。 完备的 DBMS 功能 <!----> DDL (数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务; DML(数据操作语言):可以动态查询、插入、修改或删除数据。 <!----> 权限控制: 可按照用户粒度设置数据库或表的操作权限,保障数据安全性。 数据备份与恢复 提供数据备份导出与导入恢复机制,满足生产环境要求。 分布式管理 提供集群模式,自动管理多个数据库节点。 (二)ClickHouse 典型适用场景 复杂查询聚合的 OLAP 场景; 需要支持稳定大量数据写入; 不需要高频查询; 不需要高级 DBMS 功能,如事务性;不需要经常很复杂的表间操作,比如 join 操作。 (三)ClickHouse 核心概念 ClickHouse 集群(Cluster) 在物理构成上,ClickHouse 集群是由多个 ClickHouse Server 实例组成的分布式数据库。这些 ClickHouse Server 根据规格的不同可以包含 1 个或多个副本(Replica)、1 个或多个分片(Shard)。在逻辑构成上,一个ClickHouse 集群可以包含多个数据库(Database)对象。 分片(Shard) 在超大规模海量数据处理场景下,单台服务器的存储、计算资源会成为瓶颈。为了进一步提高效率,ClickHouse 将海量数据分散存储到多台服务器上,每台服务器只存储和处理海量数据的一部分,在这种架构下,每台服务器被称为一个分片(Shard)。 副本(Replica) 为了在异常情况下保证数据的安全性和服务的高可用性,ClickHouse 提供副本机制,将单台服务器的数据冗余存储在2台或多台服务器上。 数据库(Database) 数据库是云数据库 ClickHouse 集群中的最高级别对象,内部包含表(Table)、列(Column)、视图(View)、函数、数据类型等。 表(Table) 表是数据的组织形式,由多行、多列构成。 二、ClickHouse Metrics 监控参考模型 我们从 Metrics 采集、监控大盘、告警规则等三个方面定义 ClickHouse Metrics 监控的参考模型,以便实现监控闭环。 (一)Metrics 采集 主机节点监控即硬件资源(Node-Exporter) <!----> 处理器、内存负载; 磁盘存储; <!----> ClickHouse 服务指标监控(集成进 ClickHouse-Exporter) <!----> 系统指标(metrics): system.metrics 表用于统计 ClickHouse 服务在运行时,当前正在执行的高层次的概要信息,包括了正在执行的查询总次数、正在发生的合并操作总次数等。具体指标通过执行select * from system.metrics; 系统事件(events):system.events 用于统计 ClickHouse 服务在运行过程中已经执行过的高层次的 累积概要信息,包括查询总次数、 SELECT 查询总次数等,具体指标通过执行查询select * from system.events--> 64个指标; 系统异步指标(asynchronous_ metrics):asynchronous_metrics 用于统计 ClickHouse 服务运行过程时,当前正在后台 异步运行的高层次的概要信息,包括当前分配的内存、执行队列中的任务数量等。 具体指标通过执行查询select * from system.asynchronous_metrics --> 500个指标; 查询日志:查询日志目前主要有6种类型,所有查询日志在默认配置下都是关闭状态,需要在 config.xml文件配置,开启日志后可以到对应的日志表进行日志查询system.query_log。 (1)主机节点监控 该部分指标主要来源于 Node-Exporter , 提供集群/ ECS 节点 CPU、内存、磁盘、inode 等监控指标。 (2)ClikcHouse 服务指标 ClikckHouse 内置 Metrics、events 和 asynchronous_metrics 三张系统表用于存放其监控指标,通过预先安装 clickhouse-exporter 将这三张系统表中的数据转化、发送给阿里云可观测监控 Prometheus 版。 ⚠️注意: 以上列出的为关键指标,更多详细指标详见: 应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-选择实例-集成中心-ClickHouse (二)ClickHouse 监控大盘 我们默认提供了arms-clickhouse-ecs和arms-clickhouse-k8s两个大盘,分别针对 ClickHouse 安装在ACK 集群/ ECS 中两个场景,这两个大盘中图标均来自于上述 Metrics 指标。 ⚠️注意: 主机节点监控需提前安装 Node-Exporter,以下大盘图示数值仅为展示作用,不具备参考价值,实际数值依 ClickHouse 环境而定 (1)主机节点指标 (2)ClickHouse Server指标 (3)MergeTree 指标 (4)消息队列指标 (三)告警规则 参考前面对各项主要指标介绍,针对 ClickHouse 可以重点配置以下告警项,这些告警项已内置到arms-clickhouse告警规则中,可依据自身业务情况及经验调整告警阈值: 【L0】CPU 超过 90% 【L0】Mem 超过 90% 【L0】Disk 超过 90% 【L0】Inode 使用率超过 90% 【L0】写入失败率超过 5% 【L1】运行 Query 个数超过 95 【L1】连接数超过 4k 【L1】失败 Query 个数超过 10 (四)相关实践示例 (1)CPU 过高 确认 CPU 占用过高是由 ClickHouse 引起的。可以通过 top 命令top -H -p xxx查看系统的 CPU 占用率,找出占用 CPU 比较高的进程。如果发现 ClickHouse 进程占用了大量 CPU 资源,那么就需要进一步排查。 使用 ClickHouse 内置查询来查看系统的状态。可以使用以下查询: SHOW PROCESSLIST query WHERE query NOT LIKE '%SYSTEM%' ORDER BY elapsed DESC LIMIT 10 这个查询可以列出最耗时的查询,找到可能引起 CPU 占用过高的查询语句。 检查 ClickHouse 配置。一些配置参数可能导致 ClickHouse 占用大量 CPU 资源。可以查看 ClickHouse 配置文件,确认配置是否合理,是否需要调整。 检查 ClickHouse 日志。ClickHouse 日志中可能包含错误信息或警告信息,可以帮助找出问题所在。 检查硬件资源是否充足。如果系统 CPU、内存等硬件资源不足,那么 ClickHouse 可能会出现 CPU 占用过高的情况。可以检查系统的硬件资源使用情况,确认是否需要升级硬件。 升级 ClickHouse 版本。如果是 ClickHouse 版本的问题,可以考虑升级到更稳定的版本。 (2)内存过高 使用内置查询查看内存占用情况。可以使用以下查询来查看 ClickHouse 系统的内存占用情况: SELECT * FROM system.metrics WHERE metric LIKE '%memory%'; 这个查询会列出 ClickHouse 的各个内存指标,包括总内存、已用内存、缓存内存等。可以根据这些指标来判断内存占用是否过高。 检查 ClickHouse 的配置。一些配置参数可能会导致 ClickHouse 占用大量的内存资源。可以查看 ClickHouse 的配置文件,确认配置是否合理,是否需要调整。 检查系统的内存资源使用情况。如果系统的内存资源不足,那么 ClickHouse 可能会出现内存占用过高的情况。可以使用命令free -m查看系统的内存使用情况。 检查 ClickHouse 的日志。ClickHouse 的日志中可能包含错误信息或警告信息,可以帮助找出问题所在。 升级 ClickHouse 版本。如果是 ClickHouse 版本的问题,可以考虑升级到更稳定的版本。 减少查询语句的数据量和计算量。如果查询语句的数据量和计算量过大,那么 ClickHouse 可能会占用大量的内存资源。可以考虑优化查询语句,减少数据量和计算量。 (3)Disk 占用过高 使用系统工具查看磁盘占用情况。可以使用命令 df -h 来查看系统的磁盘使用情况,查看是否有磁盘空间不足的情况。 检查 ClickHouse 的配置。一些配置参数可能会导致 ClickHouse 占用大量的磁盘资源。可以查看 ClickHouse 的配置文件,确认配置是否合理,是否需要调整。 使用 ClickHouse 内置的查询来查看磁盘占用情况。可以使用以下查询来查看 ClickHouse 的磁盘占用情况: SELECT database, table, sum(bytes) AS total_size FROM system.parts WHERE active GROUP BY database, table ORDER BY total_size DESC 这个查询会列出 ClickHouse 的各个表的占用磁盘空间情况,可以根据这个查询来判断磁盘占用是否过高。 检查 ClickHouse 的日志。ClickHouse 的日志中可能包含错误信息或警告信息,可以帮助找出问题所在。 清理不必要的数据。如果 ClickHouse 中存在不必要的数据,可以考虑进行清理,释放磁盘空间。 三、如何使用阿里云可观测监控 Prometheus 版监控ClickHouse 服务 (一)安装 Prometheus 监控 (1)前序条件:已根据安装ClickHouse 安装环境,创建对应Prometheus 实例。 根据 ClickHouse 安装方式: 如果 ClickHouse 部署在 ACK 中, 并创建了Prometheus for 容器实例,创建请参考Prometheus for 容器服务; 如果 ClickHouse 部署在 ECS 中, 并创建了Prometheus for ECS 实例,创建请参考Prometheus for ECS。 (2)安装方式一:Prometheus for 容器服务 在Prometheus for 容器服务实例中,ClickHouse 已经默认在集成中心中展示,用户可以在应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-选择Prometheus for 容器服务实例-集成中心中找到入口,点击 ClickHouse 图标,可以看到常见的指标列表和大盘缩略图。点击+安装可以接入 ClickHouse 监控,配置如下图: Exporter 名称: 自定义 Exporter 名称; ClickHouse Scrape 地址: IP + Port, Exporter 能够访问的 ClickHouse 地址 ; ClickHouse 用户名: 登陆用户名; ClickHouse 密码: 登陆密码; Metrics 采集间隔(秒): 默认 30s 采集一次, 一般不需要更改。 点击确定后, clickhouse-exporter-填入的名称的 Exporter 会被安装到 arms-prom 命名空间下,并自动完成采集 job 的配置。 可以在应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-选择Prometheus for 容器服务实例-集成中心-已安装-ClikckHouse中快速浏览相关的 Target/指标/大盘/告警/服务发现/ Exporter 等信息。 (3)安装方式二:Prometheus for ECS 安装 ClickHouse 相同 VPC 的Prometheus for ECS实例,由于Prometheus for ECS实例中 ClickHouse 的主机节点监控来自于Node-Exportor,所以先安装 Node-Exportor。用户可以在 应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-选择Prometheus for ECS实例-集成中心中找到入口,点击Node-Exporter图标,点击+安装可以接入 Node-Exporter 监控,然后选择对应 ECS 实例安装即可。 用户可以在应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-选择Prometheus for ECS实例-集成中心中找到入口,点击 ClickHouse 图标,点击+安装可以接入 ClickHouse 监控,配置与上述Prometheus for 容器服务相同。 (4)指标未采集的排查方法 ⚠️注意: 下面是Prometheus for 容器实例的排查方法,Prometheus for ECS实例请联系Prometheus值班-美娜 ClickHouse-Exporter 本身的主要工作是指标映射,需要填入正确 ClickHouse 抓取 URL及登陆用户名、密码。如果出现指标采集不到的问题,可以参考如下的排查思路。 检查 Prometheus Target 状态,如果 Target 显示为Unhealthy状态,请排查clickhouse-exporter Pod 运行状态;如果 Target 状态正常,继续下一步。 若 Target 状态正常,但抓取指标量很少且指标全为go_相关查看clickhouse-exporter Pod 日志,确认日志中是否有报错信息。 查看clickhouse-exporter Pod 日志,确定 Exporter 抓取目标 URL 是否正常。 (二)查看大盘 如需要查看 ClickHouse 相关大盘,可以从应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-实例详情页-集成中心-已安装-ClikckHouse中点选大盘,列出两类大盘arms-clickhouse-ecs和arms-clickhouse-k8s,根据环境选择对应的大盘模板。 以下是arms-clickhouse-k8sVariables 参数说明: datasource : 数据源,选择对应的实例名称; job: 新建 clickhouse-exporter 对应 job 名称,与 clickhouse-exporter 名称一致,用于展示ClickHouseServer 指标、MergeTree 指标、消息队列指标; namespace: ClickHouse Pod 所在的命名空间,用于主机节点指标筛选; Pod: 可根据需要选择对应的 ClickHouse Pod,用于主机节点指标筛选。 以下是arms-clickhouse-ecsVariables参数说明: datasource: 数据源,选择对应的实例名称; job: 新建的 clickhouse-exporter 对应 job 名称,与clickhouse-exporter 名称一致,用于展示ClickHouseServer 指标、MergeTree 指标、消息队列指标; instance: ecs 实例 IP,用于主机节点筛选。 (三)配置告警 在集成中心安装 ClickHouse 监控时,已经默认增加了arms-clickhouse告警分组的相关规则,但未启用,您只需要简单修改参数并确认启用即可。 可以从应用实时监控服务ARMS控制台-Prometheus监控-Prometheus实例列表-实例详情页-集成中心-已安装-ClikckHouse中选择告警-创建告警规则进入规则新增页面,在其中告警分组选择arms-clickhouse告警分组并根据环境选择您需要启用的告警指标,确认参数阈值并保存,即可完成告警规则的创建。 四、自建 Prometheus 与阿里云可观测监控 Prometheus 版监控 ClickHouse 优劣对比 Prometheus 作为目前主流可观测开源项目之一,已被众多企业所广泛应用,但还会遇到不少困难与挑战: 每套完整的自建观测系统都需要安装并配置 Prometheus、Grafana、AlertManager 等组件,部署过程复杂、实施周期长,并且每次升级都需要对每个组件进行维护; 开源分享的相关大盘不够专业,更新速度慢,缺少开箱即用的丰富指标; 由于安全、组织管理等因素,用户业务通常部署在多个相互隔离的 VPC,需要在多个 VPC 内都重复、独立部署 Prometheus,导致部署和运维成本高。 针对以上问题,阿里云可观测监控 Prometheus 版进行了以下优化: 结束语 阿里云可观测监控 Prometheus 版与阿里云容器服务无缝集成,提供了开源 ClickHouse 的指标采集、用户大盘、告警规则等项目的一键集成,用户免运维,开箱即用,目前 ClickHouse 指标采集功能仍在不断演进中,欢迎大家试用和提出改进意见。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册