-
模型的全量微调(Full Fine-tuning) 是深度学习中针对预训练模型的一种适配任务优化方法,核心是在预训练模型的基础上,使用下游任务的数据集重新训练模型的所有参数,使模型从 “通用知识” 适配到 “特定任务能力”。一、核心原理:从 “通用” 到 “专用” 的参数更新预训练模型的基础:先有一个在大规模通用数据上训练的模型(如 BERT 在维基百科等文本上预训练,ResNet 在 ImageNet 图像上预训练),这些模型已经学到了通用特征(如语言的语法规则、图像的边缘 / 纹理信息)。全量微调的过程:将预训练模型的所有层参数(从输入层到输出层) 作为初始值,用下游任务的标注数据(如特定领域的文本分类、医学影像识别)重新训练,通过反向传播更新每一个参数,最终让模型学会适配新任务的特征(如 “法律文本中的术语情感”“CT 影像中的肿瘤特征”)。二、与其他微调方法的关键区别全量微调的核心特点是 **“更新所有参数”**,这与 “参数高效微调(PEFT)” 形成鲜明对比:参数高效微调(如 LoRA、Adapter):仅更新模型的少量参数(如新增的 Adapter 层、低秩矩阵),大部分预训练参数冻结不动,适合数据少、算力有限的场景。全量微调:更新模型的所有参数(包括预训练时的核心权重),理论上能更充分地让模型适配任务,但需要更多数据和算力。三、全量微调的优缺点优点:性能上限高:在数据充足时,全量微调能让模型充分吸收任务特性,性能通常优于参数高效微调(如 BERT 全量微调在 GLUE 文本任务上的得分普遍高于 LoRA 微调)。适配深度深:能调整模型底层的通用特征(如 BERT 的底层词向量、ResNet 的底层边缘检测),使其更贴合任务需求(如医学影像的底层纹理特征)。缺点:计算成本高:需要更新所有参数(如 GPT-3 1750 亿参数全量微调,单轮训练可能需要数万美元算力),对 GPU 显存要求极高(通常需要多卡分布式训练)。数据需求量大:若下游任务数据少(如仅几千样本),全量微调容易 “忘记” 预训练知识(灾难性遗忘),或过拟合到小数据集(泛化能力差)。训练不稳定:大规模参数更新可能导致梯度爆炸 / 消失,需要精细调整学习率(通常比预训练时小 1-2 个数量级)、优化器(如 AdamW)等超参数。四、适用场景全量微调更适合以下场景:下游任务数据充足(如百万级标注样本):例如工业质检(大量缺陷图像)、大规模文本分类(如新闻主题分类)。任务与预训练数据差异大:例如用通用图像模型(预训练于自然图像)微调做卫星遥感图像识别(特征差异大,需深度调整底层参数)。对性能要求极高:如自动驾驶的目标检测(需模型极致适配道路场景特征)、医疗影像诊断(需精准识别微小病灶)。五、关键注意事项学习率设置:通常远小于预训练阶段(如 BERT 预训练学习率约 1e-4,微调时用 2e-5~5e-5),避免破坏预训练学到的通用知识。数据预处理:需与预训练数据的格式一致(如 BERT 的分词方式、ResNet 的图像归一化参数),否则会导致底层特征错乱。正则化策略:为防止过拟合,常使用 dropout(随机失活)、权重衰减(Weight Decay)、早停(Early Stopping)等方法。总结一下下全量微调是通过更新预训练模型的所有参数,使其深度适配下游任务的方法,优势是性能上限高,劣势是成本高、对数据量要求大。实际应用中,需根据数据规模、算力资源和任务需求,在全量微调与参数高效微调之间选择(小规模数据优先 PEFT,大规模数据优先全量微调)。
-
图像增强的核心目标是提升图像质量(如清晰度、对比度)、突出关键信息,或为后续任务(如目标检测、医学影像分析、遥感解译)优化数据。根据技术原理,可分为空域增强、频域增强、深度学习增强三大类。一、空域增强:直接操作像素域(最基础、应用最广)空域增强通过修改图像像素的灰度值或空间位置实现,无需转换到其他域,计算效率高,适合实时场景(如监控、手机拍照)。1. 灰度变换:调整像素灰度分布(提升对比度 / 亮度)通过函数映射改变每个像素的灰度值,核心是优化灰度动态范围,解决 “过暗 / 过曝”“对比度低” 问题。(1)线性灰度变换(对比度拉伸)原理:用线性函数 g(x,y) = a*f(x,y) + b 调整灰度,其中 a 控制对比度(a>1 增强,0<a<1 降低),b 控制亮度(b>0 提亮,b<0 变暗)。适用场景:图像整体灰度偏暗 / 偏亮(如逆光照片、监控夜间图像)。示例:将灰度范围 [50,200] 拉伸到 [0,255],突出暗部细节。(2)非线性灰度变换(伽马校正)原理:用幂函数 g(x,y) = c*f(x,y)^γ 调整,γ 是关键参数:γ<1:增强暗部灰度(适合过暗图像,如室内低光照片);γ>1:增强亮部灰度(适合过曝图像,如晴天雪地照片)。特点:比线性变换更贴合人眼对亮度的非线性感知,手机相机 “夜景模式” 常用此技术。(3)直方图处理(均衡化 / 匹配)全局直方图均衡化(GHE):原理:将图像灰度直方图从 “集中分布” 变为 “均匀分布”,最大化灰度动态范围。适用场景:对比度低且灰度分布均匀的图像(如雾天照片、医学 X 光片)。缺点:可能导致局部过曝(如大面积暗部区域被过度拉伸)。自适应直方图均衡化(CLAHE):改进:将图像分割为多个子块(如 8×8),对每个子块单独均衡化,避免全局过曝。核心场景:医学影像(如 CT、眼底照片)—— 需保留局部细节(如肿瘤边缘),不允许整体过曝。直方图匹配(规定化):原理:将图像直方图调整为 “目标直方图”(如参考清晰图像的直方图),用于颜色一致性校正(如批量处理监控摄像头图像)。2. 空间滤波:基于邻域像素的局部增强(去噪 / 锐化)通过 “滤波核(卷积核)” 与图像卷积,改变像素的局部灰度分布,实现去噪或锐化。(1)平滑滤波(去噪为主)核心是 “平均邻域像素”,抑制高频噪声(如椒盐噪声、高斯噪声),但会轻微模糊边缘。均值滤波:用邻域像素平均值替换中心像素,去高斯噪声效果一般,易模糊细节。高斯滤波:用高斯函数加权平均邻域像素(中心权重高、边缘低),去高斯噪声效果好,模糊程度可控( sigma 越大越模糊)。中值滤波:用邻域像素的中值替换中心像素,去椒盐噪声(黑白斑点)效果最优,且能保留边缘(非线性滤波,不平均边缘像素)。适用场景:监控视频去噪(高斯滤波)、老照片修复去斑点(中值滤波)。(2)锐化滤波(突出边缘)核心是 “增强邻域像素的灰度差异”,突出高频细节(如边缘、纹理),弥补平滑滤波的模糊。拉普拉斯滤波:通过计算邻域像素与中心像素的灰度差,强化边缘(如文字边缘、物体轮廓),但会放大噪声(需先去噪再锐化)。Sobel 滤波:分别计算水平和垂直方向的边缘梯度,可单独增强水平 / 垂直边缘(如遥感影像中的道路边缘、建筑轮廓)。USM 锐化(非锐化掩模):先对图像模糊(生成 “掩模”),再用原图减去掩模,增强细节对比度,是 Photoshop “锐化” 功能的核心算法。3. 几何变换:调整图像空间位置(对齐 / 适配)不改变像素灰度,仅调整像素的空间坐标,属于 “预处理型增强”,为后续任务(如目标检测、图像拼接)做准备。常见类型:平移(图像裁剪后对齐)、旋转(校正倾斜照片)、缩放(插值缩放,如双线性插值 —— 平滑缩放,双三次插值 —— 保留细节)、仿射变换(校正透视畸变,如手机拍文档的倾斜校正)。核心场景:OCR 文字识别(需先旋转校正倾斜文档)、无人机遥感拼接(需平移 / 缩放对齐多幅图像)。 二、频域增强:基于频率成分的全局增强(去周期性噪声 / 全局锐化)将图像通过傅里叶变换转换到 “频域”(分解为低频和高频成分):低频成分:图像的整体轮廓、大面积灰度(如天空、墙面);高频成分:图像的细节、边缘、噪声(如物体边缘、椒盐噪声)。 通过修改频域成分(保留 / 抑制高低频),再逆傅里叶变换回空域,实现增强。1. 低通滤波(保留低频,平滑去噪)抑制高频噪声,保留低频轮廓,效果类似空域的平滑滤波,但全局平滑更均匀。示例:高斯低通滤波 —— 在频域中抑制高频区域,去全局高斯噪声效果优于空域均值滤波,适合天文影像(如星空照片去宇宙射线噪声)。2. 高通滤波(保留高频,全局锐化)抑制低频模糊,保留高频细节,效果类似空域的锐化滤波,但全局锐化更自然。示例:理想高通滤波 —— 在频域中保留高频区域,增强遥感影像中的细小目标(如农田边界、电力线),但会产生 “振铃效应”(边缘出现明暗条纹),需用高斯高通滤波优化。3. 带通 / 带阻滤波(针对性处理)带通滤波:保留特定频率范围(如介于高低频之间的纹理信息),用于增强医学影像中的血管纹理(如眼底照片的血管)。带阻滤波:抑制特定频率范围,去周期性噪声效果最优(如监控摄像头因电源干扰产生的横纹 / 竖纹,其噪声频率固定,可精准抑制)。三、深度学习增强:现代技术(复杂场景下效果远超传统方法)传统方法依赖人工设计规则(如滤波核、灰度函数),对复杂场景(如超分辨率、去雾、医学影像细节增强)效果有限;深度学习通过数据驱动学习增强规则,能处理更复杂的图像退化问题。1. 超分辨率重建(SR):提升图像分辨率核心是 “从低分辨率(LR)图像生成高分辨率(HR)图像”,解决 “图像模糊、细节缺失” 问题(如老照片放大、监控图像清晰度提升)。经典模型:SRCNN(首个基于 CNN 的超分模型):用 3 层 CNN 学习 LR 到 HR 的映射,比传统插值(双三次)效果好,但细节不够精细。ESRGAN(基于 GAN 的超分):引入生成对抗网络,生成的 HR 图像细节更真实(如毛发、纹理),是当前 “图像放大” 工具(如 Topaz Gigapixel AI)的核心算法。Real-ESRGAN:针对真实世界模糊图像(如老照片、压缩失真)优化,去模糊 + 超分一体,修复效果远超传统方法。2. 图像去退化(去雾 / 去噪 / 去模糊)去雾:传统方法(如暗通道先验)依赖大气散射模型,对浓雾效果有限;深度学习方法(如 DehazeNet、GCA-Net)通过学习大量雾天 / 无雾图像对,直接生成去雾图像,可处理浓雾、不均匀雾(如城市雾霾照片)。去噪:传统方法(如 BM3D)对复杂噪声(混合高斯 + 椒盐噪声)效果一般;深度学习方法(如 DnCNN、RIDNet)通过残差学习直接学习 “噪声模式”,去噪的同时保留更多细节(如医学影像去噪 —— 不模糊肿瘤边缘)。去模糊:针对运动模糊(如手抖拍的照片)、失焦模糊,深度学习模型(如 DeblurGAN)可学习模糊核,反向恢复清晰图像,比传统盲去模糊效果好。3. 医学 / 遥感影像专用增强医学影像:如 UNet++ 增强 CT 图像中的肺结节边缘,或用注意力机制(如 ResUNet)突出 MRI 图像中的神经纤维束,辅助医生诊断。遥感影像:如用 SegSRNet 同时实现超分和地物分类增强(如区分农田与建筑),提升遥感解译精度。4. 数据增强(为模型训练服务)属于 “人工生成多样性数据”,目的是提升深度学习模型的泛化能力(而非提升单张图像质量),常用方法:基础操作:随机翻转、旋转、裁剪、缩放(扩充训练集);进阶操作:颜色抖动(随机调整亮度 / 对比度 / 饱和度,模拟不同光照)、MixUp(两张图像加权混合,增强模型鲁棒性)、CutMix(裁剪部分区域替换为其他图像,保留局部结构);核心场景:目标检测、图像分类训练(如自动驾驶数据集增强,模拟不同天气、光照下的道路场景)。 四、一些常见的场景和方法应用场景推荐方法核心原因医学影像(CT / 眼底)CLAHE、ResUNet、医学专用去噪模型需保留局部细节,避免过曝 / 模糊关键结构监控视频 / 老照片修复中值滤波(去斑点)、Real-ESRGAN(超分)处理椒盐噪声 + 低分辨率,提升清晰度雾天 / 低光照片伽马校正、DehazeNet(去雾)、USM 锐化提亮暗部 + 去雾 + 突出细节,还原真实场景遥感影像解译高斯高通滤波(边缘增强)、SegSRNet(超分)突出地物边缘,提升小目标(如电力线)识别率深度学习模型训练随机翻转、CutMix、颜色抖动扩充数据集多样性,提升模型泛化能力总结一下下图像增强方法的选择需结合场景需求(去噪 / 锐化 / 超分)、图像退化类型(噪声 / 模糊 / 雾) 及实时性要求:实时场景(如监控、手机拍照)优先用传统空域方法(高斯滤波、CLAHE);复杂场景(如医学影像、老照片修复)优先用深度学习方法(ESRGAN、医学专用模型);周期性噪声(如横纹干扰)优先用频域带阻滤波。 随着 AI 技术发展,深度学习增强正逐步取代传统方法,成为复杂场景下的首选。
-
🌟经过1年的发展,华为AI 百校计划1.0已覆盖80余所高校,支撑200余个创新项目,惠及600余名师生。在此基础上,我们发布的AI百校计划2.0,实现显著突破:算力资源从千万级跃升至亿级规模,完成了社区技术论坛的建设,提供了丰富的技术资源和开发案例。同时联合 CAAI、GitCode等开通专属渠道,大幅简化申请流程。“华为AI百校计划2.0”,旨在为高校、科研机构AI领域项目提供昇腾AI云算力资助。申请对象包含老师、学生单点申请,及学校/院/系、社区、学会、联盟等组织申请。用以支持算子、算法、推理、训练等开发场景,促进产学研结合,助力高校在AI领域的科研创新、人才培养和技术合作,共建AI繁荣生态。🚀 华为AI百校计划2.0 🚀✨作为科技发展的前沿领域,人工智能正在加速推动社会各方面的改变,给人类带来了巨大的便利和福祉。从智能语音助手到自动驾驶汽车,从精准医疗到智慧城市,AI技术的应用已经渗透到各个领域,高校、科研机构等作为AI技术的策源地和创新高地发挥着重要的作用。✨“华为AI百校计划2.0”旨在帮助高校、科研机构等组织应对AI领域科研创新、人才培养和技术合作所面临的算力资源不足等挑战。该计划主要资助的场景包括:在AI领域有深入研究与影响力的高校、科研机构团队及社区、学会、联盟等组织的科研创新和AI基础技术研究、以及在AI领域开展的人才培养、和与华为通过技术合作解决产业技术难题的项目等。✨基于申请项目涉及的场景,如AI算子、算法、模型推理、大模型训练等,可在线提交申请。华为将从项目目标、项目价值、创新性、先进性、对产业和生态的影响力等维度进行评审。最终评审通过的项目,可以获得昇腾云AI算力资源支持。✨“华为AI百校计划2.0”,更多信息和申请详情,欢迎扫描下方二维码进行了解。✨✨申请传送门>>点击前往官网✨扫码了解✨活动海报
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/async-ddp.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/distributed-optimizer.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/data-parallel.md
-
在数据仓库服务(DWS)中,备份恢复不仅提供完善的 API 接口,还通过多重技术机制确保数据一致性。一、备份恢复 API 接口的设计与实现1. 华为云 GaussDB (DWS) 的 API 体系核心接口:集群级恢复:通过POST /v1.0/{project_id}/snapshots/{snapshot_id}/actions接口,可指定目标集群的网络配置(VPC、子网、安全组)、端口、公网 IP 等参数,实现快照到新集群的恢复细粒度表级恢复:支持从全量或 Schema 备份中选择单表 / 多表恢复,通过restore-target-list参数指定恢复目标表名,支持覆盖原表或新建表。容灾切换:POST /v1.0/{project_id}/disaster-recovery/{disaster_recovery_id}/switchover接口用于主备集群切换,保证业务连续性。SDK 支持:提供 Java、Python 等多语言 SDK,例如 Java 示例代码如下: RestoreClusterRequest request = new RestoreClusterRequest();RestoreClusterRequestBody body = new RestoreClusterRequestBody();body.setRestore(new Restore() .withName("dws-1") .withSubnetId("subnet-xxx") .withSecurityGroupId("sg-xxx"));request.setBody(body);DwsClient client = DwsClient.newBuilder().build();client.restoreCluster(request); 2. AWS Redshift 的 API 体系核心接口:集群恢复:通过RestoreFromClusterSnapshot API 创建新集群,支持指定 VPC 子网组、KMS 加密密钥、节点类型等参数。无服务器命名空间恢复:支持将备份恢复到 Redshift Serverless 命名空间,通过restore-table-from-snapshot API 实现单表恢复。一致性保障:自动快照策略:默认每 8 小时或每节点数据变化 5GB 时触发增量快照,确保恢复点尽可能接近故障时间。WAL 日志集成:备份时包含事务日志,恢复时通过重放日志保证数据一致性。二、数据一致性的核心保障机制1. 事务日志与全局一致性点华为云 GaussDB (DWS):XLog 日志:记录所有数据变更操作,备份时结合pg_start_backup()和pg_stop_backup()获取一致性点,确保备份集包含截至该点的所有已提交事务。CBM(Change Block Mapping):通过常驻线程解析 XLog,实时追踪数据页变更,增量备份仅传输变化的数据块,同时保证恢复时通过日志重放补全未提交事务。AWS Redshift:时间点恢复(PITR):基于增量快照和 WAL 日志,支持恢复到任意时间点,确保事务完整性。无锁备份:备份过程不阻塞业务读写,通过 MVCC(多版本并发控制)保证数据一致性。2. 物理与逻辑验证结合物理层验证:校验和机制:备份时对数据块计算 CRC32 校验和,恢复时对比校验和确保数据未损坏。存储介质冗余:华为云将备份存储在 OBS(对象存储服务),通过多副本(默认 3 份)保证物理耐久性;AWS Redshift 快照存储在 S3,利用 S3 的跨可用区复制功能。逻辑层验证:ACID 测试模型:华为云采用模拟银行转账场景(C1 + C2 = 100)验证备份恢复的一致性,确保事务原子性和数据完整性。元数据一致性:备份时包含表结构、权限等元数据,恢复后通过 DDL 对比工具验证元数据完整性。3. 增量备份的一致性控制华为云 GaussDB (DWS):累积与差分模式:累积增量:所有增量基于最近一次全量备份,恢复时只需全量 + 最后一次增量。差分增量:基于上一次备份(全量或增量),恢复时需按顺序应用所有增量。断点续传:备份中断后可从上次暂停的位置继续,避免重复传输数据 AWS Redshift:增量快照链:自动快照形成链式结构,恢复时自动合并全量快照和所有增量,确保数据一致性。4. 加密与访问控制传输加密:华为云通过 TLS 1.3 加密备份数据传输;AWS Redshift 使用 SSL 连接 S3存储加密:华为云支持对 OBS 存储桶启用 SSE-KMS 加密,密钥由用户管理。AWS Redshift 快照默认加密(AES-256),支持使用客户托管的 KMS 密钥权限隔离:华为云通过 IAM 角色控制备份恢复权限,支持细粒度的 API 操作授权AWS Redshift 使用资源策略和 IAM 策略限制快照访问,例如仅允许特定用户恢复到指定 VPC 三、实际应用与最佳实践1. 华为云 GaussDB (DWS) 的典型场景金融交易系统:备份策略:每周日全量备份,每日凌晨增量备份,保留 30 天。恢复验证:每月通过 Roach 工具执行一次模拟恢复测试,对比备份前和恢复后的数据校验和。容灾切换:通过主备集群和灾备切换 API,实现 RPO=0(生产集群可用时)。医疗数据存储:细粒度恢复:仅恢复特定患者的就诊记录,避免全量恢复带来的性能影响。合规性保障:备份日志和恢复记录保存 7 年,满足 HIPAA 等法规要求。2. AWS Redshift 的典型场景电商数据分析:自动快照策略:设置保留期为 7 天,结合 Lambda 函数自动删除过期快照以降低成本。跨区域恢复:将快照复制到其他 AWS 区域,实现跨区域容灾。日志审计系统:单表恢复:通过restore-table-from-snapshot API 快速恢复被误删的日志表,无需恢复整个集群。增量加载:将恢复后的表与当前数据合并,减少业务中断时间。四、选型建议与技术趋势1. 接口易用性对比华为云 GaussDB (DWS):提供更丰富的细粒度恢复接口(如 Schema 级备份、表级恢复),适合需要精准控制备份范围的场景。AWS Redshift:接口设计更简洁,与 AWS 生态(如 S3、Lambda)集成紧密,适合 Serverless 架构。2. 一致性保障能力华为云:通过 CBM 和 XLog 实现高效增量备份,一致性验证更全面(支持 ACID 测试模型)。AWS:依赖时间点恢复和自动快照链,在大规模数据场景下恢复速度更快。3. 未来技术方向AI 驱动的备份优化:例如华为云正在研究基于机器学习的增量预测,减少备份数据量。联邦备份:跨多个云厂商或数据中心的联合备份,提高容灾可靠性。实时恢复:通过 CDC(Change Data Capture)技术实现秒级恢复,适用于高频交易系统。总结一下下DWS 备份恢复通过标准化的 API 接口和多层次的一致性保障机制,为企业提供了高可靠的数据保护方案。华为云 GaussDB (DWS) 和 AWS Redshift 在接口丰富度、恢复速度和一致性验证上各有优势,企业应根据业务需求(如数据规模、合规性要求)选择合适的方案,并通过定期恢复测试和日志审计确保备份策略的有效性。
-
大语言模型(LLM)基于概率生成文本的特性,导致其可能产生错误或幻觉。一、模型编辑:精准修改知识片段模型编辑通过局部调整模型参数修正特定错误,无需重新训练整个模型,适用于金融、医疗等对准确性要求极高的场景。1. 技术框架核心机制:通过因果追踪定位知识存储位置,直接修改前馈模块参数。例如,ROME 框架通过梯度分解技术,在不影响其他知识的情况下更新特定事实(如 “巴黎是法国首都”)。关键指标:准确性:修改后模型对目标问题的回答正确率(如纠正 “斑马皮肤是白色” 为 “黑色”)。局部性:确保修改不影响无关知识(如不改变 “马是哺乳动物” 的回答)。泛化性:修正后的知识能迁移至语义相似问题(如 “斑马的条纹分布”)。2. 工具链与实践开源工具:TextAttack:生成对抗性样本测试模型鲁棒性,辅助定位需编辑的脆弱知识点。Hugging Face Transformers:提供模型参数访问接口,支持 ROME 等编辑算法的实现。案例:某金融机构通过模型编辑修正了汇率计算逻辑,使风险评估准确率提升 18%,同时保持其他金融指标计算的稳定性。二、自我纠正:模型自主迭代优化自我纠正通过多轮推理和反思机制,在无需外部反馈的情况下改进初始回答,适用于实时交互场景(如客服、法律咨询)。1. 技术框架分解能力:信心能力:对正确答案的坚持程度(避免将正确答案误改为错误)。批判能力:识别并修正错误答案的能力。代表性方法:SCoRe:基于多轮强化学习,通过自生成数据训练模型,在 MATH 数学问题上自我纠正准确率提升 15.6%。CRITIC:结合工具调用(如计算器、知识库)验证推理步骤,在代码生成任务中错误率降低 23%。2. 工具链与实践提示工程模板:# 比如哈:自我验证提示 def self_verify(prompt, response): return f""" 初始回答:{response} 请验证以下内容: 1. 所有事实是否准确? 2. 推理逻辑是否存在漏洞? 3. 是否需要调用工具(如计算器、知识库)? 修正后的回答: """ 案例:某法律咨询平台采用 CRITIC 框架,通过调用法律条文数据库验证回答,使合同审查的合规性准确率从 72% 提升至 91%。三、检索增强生成(RAG):引入外部知识验证RAG 通过检索外部知识库实时验证事实,适用于知识密集型任务(如学术研究、技术支持)。1. 技术框架核心流程:分块与向量化:将文档分割为 500 字符内的语义单元,生成向量索引。混合检索:结合 TF-IDF 和余弦相似度筛选相关片段,动态调整过滤阈值(如 θ=0.7)。生成与验证:基于筛选后的知识生成回答,并通过自反射机制检查一致性。工具链:LangChain:提供 RAG 流程的模块化实现,支持与 Elasticsearch、Pinecone 等向量数据库集成。ChunkRAG:通过细粒度分块和高级过滤,在 PopQA 数据集上准确率达 64.9%,较基线模型提升 10%。2. 企业级实践安全措施:加密传输:使用 TLS 1.3 加密查询与响应数据。访问控制:基于 RBAC(角色 - based access control)限制敏感数据的检索权限。本地化部署:对医疗、政务等领域的私有知识库采用本地向量数据库。案例:某科技公司将 RAG 集成至内部技术支持系统,使故障排查时间缩短 40%,同时将知识更新成本降低 60%。四、对抗训练:提升模型鲁棒性对抗训练通过注入精心设计的扰动数据,使模型学习抵御攻击,适用于高风险场景(如金融交易、自动驾驶)。1. 技术框架核心步骤:生成对抗样本:使用 TextAttack 等工具对原始数据进行同义词替换、随机插入等扰动。联合训练:将对抗样本与原始数据混合,优化模型损失函数。鲁棒性评估:在对抗性测试集上验证模型性能,如 IMDB 影评分类中准确率提升至 91.5%。2. 工具链与实践数据增强工具:nlpaug:支持同义词替换、回译等多种 NLP 数据增强方法。Googletrans:用于回译生成多语言增强数据。案例:某电商平台通过对抗训练优化推荐系统,使恶意刷单攻击导致的推荐错误率从 12% 降至 3%,同时保持正常用户体验不变。五、选型建议与未来趋势1. 场景化选择高准确性需求:优先使用模型编辑(如 ROME)或 RAG(如 ChunkRAG)。实时交互场景:采用自我纠正(如 CRITIC)或轻量级 RAG(如 LangChain)。资源受限环境:选择对抗训练(结合 nlpaug)或参数高效微调(如 LoRA)。2. 技术融合方向多模态验证:结合图像、表格等非结构化数据验证文本回答(如通过医学影像验证诊断描述)。动态模式适应:支持数据库 Schema 变更时的自动知识更新,减少人工干预。联邦学习:在保护数据隐私的前提下,跨机构联合训练纠错模型(如医疗数据共享场景)。六、总结一下下大语言模型的错误纠正需结合多种技术协同解决:模型编辑实现精准知识修正,自我纠正提升自主优化能力,RAG 引入外部验证,对抗训练增强鲁棒性。未来,随着生成对抗网络(GAN)和元学习的发展,模型将具备更强的错误预判和自主进化能力,推动 AI 从 “概率生成” 向 “可信智能” 跨越。实际应用中,需根据具体场景选择技术组合,并通过持续监控和用户反馈动态优化纠错策略。
-
各位华为云社区的技术同仁、开发者伙伴们,大家下午好!金秋九月,既是收获的季节,更是开发者沉淀成长的 “黄金期”—— 开学季的求知氛围感染着每一位保持精进的同行,华为全联接大会的技术盛宴又为我们带来了数智融合的前沿视野。今天,我们特别相聚在这个开放的交流空间,以 “9 月学到的新知识” 为主题,开启一场属于技术人的分享盛宴。首先,请允许我代表社区,对每一位深耕技术、乐于分享的伙伴,致以最热烈的欢迎!在华为云社区,“学习” 从来不是孤军奋战的旅程。正如我们常说的 “智者同行,携手共创”,这里既有 760 万开发者共同搭建的知识生态,也有覆盖昇腾 AI、GaussDB、鸿蒙等根技术的系统课程支持。刚刚过去的 9 月,相信大家都有各自的成长印记:或许是在开发者空间里,用升级后的 CodeArts Doer 智能助手提升了编码效率;或许是钻研了 DataArts Studio 的知识湖服务,解锁了数据治理的新方法;又或是通过社区沙龙,搞懂了 Agent 开发的全生命周期逻辑。这些藏在日常调试与钻研中的收获,正是技术成长最鲜活的注脚。今天的交流没有 “门槛”—— 我们眼中的 “新知识”,可以是硬核的技术突破:比如掌握了 ModelArts 大模型调优的技巧,让训练效率提升 50%;也可以是实用的工具心得:像利用开发者空间的云主机镜像分享功能,简化了团队协作流程;甚至是认知的升级:比如对 “数据 + AI” 双轮驱动的产业逻辑有了更深刻的理解。正如 HCDG 社区的核心价值所言,每一次微小的知识分享,都在为生态的成长 “施肥”,也能让自己在输出中完成认知的闭环。特别想和大家分享的是,华为云始终在为开发者的成长铺路:开发者学堂新增的 1200 多门昇腾课程、云商店的千余款 Agent 工具资源,还有社区里 HCDE 专家们的实战分享,都在让根技术变得触手可及。而今天,轮到我们成为知识传递的纽带 —— 你纠结多日攻克的技术难点,可能正是刚入门伙伴的 “拦路虎”;你偶然发现的效率技巧,或许能帮同行节省大量调试时间。接下来的时间,就请大家放下拘谨,畅所欲言。不用在意分享的 “深度”,重点是传递真实的学习感悟;也欢迎随时提问补充,让知识在碰撞中产生更多火花。毕竟在技术的道路上,最珍贵的莫过于 “我懂你的困惑,你明我的收获”。最后,希望每一位伙伴都能在今天的交流中有所得、有所获,让 9 月的学习成果在分享中延续价值。那么,华为云社区 9 月【话题交流】活动,现在正式开始!哪位伙伴想先聊聊自己 9 月的成长故事?
-
【直播回放】直播回放地址【总结简报】 华为开发者布道师技术沙龙 · 直播间精彩回顾【第1期】联接高校人才培养与前沿产业技术,成就学生未来 / 李一浩老师【第2期】逐梦之旅:学生开发者到华为开发者布道师的蜕变 / 杨阳同学【第3期】昇思MindSpore:AI 领域的创新力量与跨平台之路 / 陈新杰同学【第4期】基于OpenHarmony计算机学科人才培养经验分享 / 周睿老师【第5期】计算机核心课程贯通式实践教学体系介绍 / 赵欢老师、李博经理、杨科华老师【第6期】OpenHarmony应用开发之网络数据请求与数据解析 / 倪红军老师【第7期】华为开发者空间玩转DeepSeek / 马欣老师【第8期】基于能力图谱的openGauss项目闯关 / 马瑞新老师【第9期Day1】基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战 / 齐耀龙老师【第9期Day2】基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战 / 齐耀龙老师【第10期】基于华为云+DeepSeek大模型的脑肿瘤分割实验教学案例 / 林承德老师【第11期】WS63E星闪开发板快速入门指南:开启星闪技术之旅 / 杨阳同学【第12期】星闪应用开发技术课程(群)建设思路与设想 / 葛非老师【第13期】星闪主从一体模式与线性星闪网络 / 齐耀龙老师【第14期】基于昇腾的皮肤病理多模态大模型研发 / 崔笑宇老师【第15期】基于昇腾NPU的合成孔径雷达成像案例 / 李阳老师【第16期】香橙派AIpro的远程推理框架与实验案例 / 郝家胜老师【第17期】鸿蒙端云一体化应用开发 / 倪红军老师【第18期】基于HarmonyOS NEXT应用开发之旅 / 刘俊威同学、吴玉佩同学【第19期】OpenHarmony生态构建 / 王天一同学、聂嘉一同学【第20期】仓颉编程语言的社区化学习实践 / 张引老师【第21期】X+AI驱动下的教育革新与产教融合实践 / 张杨老师【第22期】基于华为云CodeArts的软件开发技术 / 马瑞新老师【第23期】GaussDB在数据库教学与实践中的应用 / 刘斌老师本期问答摘要:序号问题答复1gaussDB的基本架构是怎样的?它与传统的SQL数据库相比有哪些优势?分布式架构。支持集中式和分布式集群部署。云数据库部署更方便。详见GaussDB文档2gaussDB支持哪些数据类型和SQL标准?GaussDB支持SQL933gaussDB的性能监控和调优工具有哪些?在教学中如何通过实际案例来展示这些工具的使用方法?有一个专门的DBA智能运维的工具。4gaussDB的SQL语法与标准SQL有哪些主要区别?支持标准的SQL语法。QL: 2011 标准,并包含了部分 SQL: 2016 和 SQL: 2019 的特性。同时,它对主流的 Oracle 和 PostgreSQL 语法有很好的兼容性。5GaussDB支持哪些高级SQL特性,如窗口函数、递归查询等?窗口函数支持、机器学习库也支持,全密态查询6gaussDB的事务管理机制是怎样的?它如何支持ACID特性?在教学中如何演示这些概念?事务支持4种隔离级别,支持MVCC。7如何支持分布式部署?它在分布式环境下的数据一致性是如何保证的?引入全局节点,全局事务管理器等节点,在架构上支持,其次支持数据的各种分片。8opengauss和gaussDB的语法是一样的吗?基本一致9GaussDB在满足金融行业对数据一致性、高可用性和安全性的严苛要求方面,采用了哪些关键技术机制?与传统的Oracle数据库相比,它在处理高并发事务和灾难恢复能力上有哪些优势和局限性?分布式强一致性(核心):技术:基于 Paxos/Raft 协议的多副本同步机制。技术:全局事务管理器(GTM) + 两阶段提交(2PC)。机制:GTM负责分配全局唯一的事务ID和快照,为整个集群提供统一的事务视图。对于跨多个数据节点的写操作,CN作为协调者,通过2PC协议确保所有节点要么全部提交,要么全部回滚,保证了分布式事务的原子性(Atomicity)。同城双集群强一致性容灾:技术:基于共享存储或日志同步,两个位于同城不同机房的集群可以组成一个大的Paxos组。机制:写操作需要同时在同城两个机房的多数派副本上持久化。单个机房完全故障,另一个机房能立即接管服务,且数据零丢失(RPO=0),恢复时间目标(RTO)通常在秒级到分钟级。这是金融容灾的最高标准。异地灾备:通过逻辑日志或REDO日志异步复制到异地机房,提供远距离的数据备份,防范城市级灾难。节点级高可用:集群内每个DN节点都有主备副本,通过流复制技术保持同步。主节点故障时,备节点能通过选举机制自动、快速(30秒以内)切换为主节点,应用几乎无感知。3. 高安全性机制金融数据是最高机密,必须严防泄露和篡改。全链路加密:支持 TLS/SSL 加密客户端与数据库、以及集群内部节点之间的通信。支持 透明数据加密(TDE),对数据文件进行静态加密,即使硬盘被盗,数据也无法被读取。细粒度权限与访问控制:提供完整的角色管理、权限管理(GRANT/REVOKE)。支持行级访问控制(RLS) 和列级加密,实现“同一张表,不同用户看到不同的行和列”。数据脱敏与审计:提供动态数据脱敏功能,在查询结果返回时对敏感信息(如身份证号)进行掩码。具备强大的安全审计能力,记录所有用户的操作日志,满足合规要求。10GaussDB支持哪些类型的事务隔离级别?四种都支持11GaussDB支持哪些编程接口和驱动?Python,C,Java,操作系统支持WIndows,Unix,等12GaussDB支持自治事务吗?和Oracle在自治事务处理上有何差异?答案是:支持,但实现方式和语法与Oracle有显著差异,具体实现、语法和细节上,两者存在重要区别。。GaussDB(基于openGauss)通过 PL/pgSQL 的 PRAGMA AUTONOMOUS_TRANSACTION 编译指令来支持自治事务。这是一种在存储过程或函数中声明特定子程序为独立事务的机制。
-
collector在尝试采集replication、replication_slot指标时失败了,报错信息如下:time=2025-09-05T09:34:16.375+08:00 level=ERROR source=collector.go:207 msg="collector failed" name=replication duration_seconds=0.0711601 err="ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.674+08:00 level=INFO source=namespace.go:235 msg="error finding namespace" err="Error running query on database \"113.44.80.136:8000\": pg_stat_replication ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.711+08:00 level=INFO source=namespace.go:235 msg="error finding namespace" err="Error running query on database \"113.44.80.136:8000\": pg_replication_slots ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.755+08:00 level=ERROR source=collector.go:207 msg="collector failed" name=replication_slot duration_seconds=0.4515532 err="ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-11T15:33:59.609+08:00 level=ERROR source=gaussdb_exporter.go:684 msg="error scraping dsn" err="queryNamespaceMappings errors encountered, namespace: pg_stat_replication error: Error running query on database \"113.44.80.136:8000\": pg_stat_replication ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883), namespace: pg_replication_slots error: Error running query on database \"113.44.80.136:8000\": pg_replication_slots ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)" dsn="gaussdb://root:PASSWORD_REMOVED@113.44.80.136:8000/circle_test?sslmode=disable"相关SQL:SELECT *, (CASE pg_is_in_recovery () WHEN 't' THEN pg_last_wal_receive_lsn () ELSE pg_current_wal_lsn () END) AS pg_current_wal_lsn, ( CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), PG_LSN ('0/0')) :: FLOAT ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) :: FLOAT END ) AS pg_current_wal_lsn_bytes, ( CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), replay_lsn) :: FLOAT ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), replay_lsn) :: FLOAT END ) AS pg_wal_lsn_diffFROM pg_stat_replication;SELECT slot_name, DATABASE, active, (CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), restart_lsn) ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), restart_lsn) END) AS pg_wal_lsn_diffFROM pg_replication_slots;SELECT slot_name, slot_type, CASE WHEN pg_is_in_recovery () THEN pg_last_wal_receive_lsn () - '0/0' ELSE pg_current_wal_lsn () - '0/0' END AS current_wal_lsn, 0 AS confirmed_flush_lsn, activeFROM pg_replication_slots;错误提示很明确:SQL查询中引用了名为 pg_last_wal_receive_lsn() 的函数,但该函数在数据库系统中不存在。GaussDB版本是:gaussdb (GaussDB Kernel 505.2.1 build ff07bff6) compiled at 2024-12-27 09:22:42 commit 10161 last mr 21504 release采集工具是:Prometheus gaussdb_exporter 从报错信息和背景来看,核心问题是GaussDB 与 PostgreSQL 在复制相关系统函数上存在差异,导致监控工具(gaussdb_exporter)使用的 PostgreSQL 风格函数在 GaussDB 中不被支持。一、问题的根因:GaussDB 与 PostgreSQL 的函数差异pg_last_wal_receive_lsn()是 PostgreSQL 特有函数该函数用于获取备库(处于恢复模式)最后接收的 WAL(Write-Ahead Log)位置,是 PostgreSQL 9.6 及以上版本的内置函数(早期版本使用pg_last_xlog_receive_lsn(),因 PostgreSQL 10 将 XLOG 重命名为 WAL)。GaussDB 不支持该函数您使用的 GaussDB 版本(Kernel 505.2.1)虽然基于 PostgreSQL 开发,但在复制机制的函数实现上有调整,未提供pg_last_wal_receive_lsn()。这是典型的 “兼容性差异”——GaussDB 保留了 PostgreSQL 的核心语法,但在部分系统函数(尤其是与底层存储、复制相关的)上做了定制化实现。二、一些解决方案:适配 GaussDB 的复制指标采集方法GaussDB 通过系统视图和自有函数提供复制相关信息,需修改监控查询语句,替换pg_last_wal_receive_lsn()为 GaussDB 支持的方式。以下是具体改造方案:1. 明确 GaussDB 的复制状态判断与 LSN 获取方式需求(原 PostgreSQL 函数)GaussDB 替代方案说明判断是否为备库(pg_is_in_recovery())仍可使用pg_is_in_recovery()(GaussDB 兼容该函数)返回t表示备库,f表示主库备库最后接收的 LSN(pg_last_wal_receive_lsn())从pg_stat_replication视图的receive_lsn字段获取(主库视角);或备库通过pg_stat_get_wal_receive_lsn()函数(部分版本支持)GaussDB 中,备库的接收 LSN 直接记录在复制状态视图中,无需单独函数计算主库当前 WAL 位置(pg_current_wal_lsn())使用pg_current_wal_lsn()(GaussDB 兼容)或pg_stat_get_wal_current_lsn()函数主库当前写入的 WAL 位置,与 PostgreSQL 用法一致2. 修改监控 SQL 语句(核心改造)针对您提供的 3 条 SQL,替换pg_last_wal_receive_lsn()为 GaussDB 支持的方式:(1)第一条 SQL(pg_stat_replication查询)原 SQL 问题:备库判断分支使用了pg_last_wal_receive_lsn(),GaussDB 不支持。改造后: SELECT *, -- 替换备库LSN获取方式:主库用pg_current_wal_lsn(),备库从pg_stat_replication取receive_lsn (CASE pg_is_in_recovery () WHEN 't' THEN (SELECT receive_lsn FROM pg_stat_replication LIMIT 1) -- 备库场景 ELSE pg_current_wal_lsn () END) AS pg_current_wal_lsn, ( CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:计算receive_lsn与0/0的差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), PG_LSN ('0/0')) :: FLOAT ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) :: FLOAT END ) AS pg_current_wal_lsn_bytes, ( CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:用receive_lsn与replay_lsn计算差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), replay_lsn) :: FLOAT ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), replay_lsn) :: FLOAT END ) AS pg_wal_lsn_diffFROM pg_stat_replication; (2)第二条 SQL(pg_replication_slots查询)改造后: SELECT slot_name, database, active, (CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:用receive_lsn计算差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), restart_lsn) ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), restart_lsn) END) AS pg_wal_lsn_diffFROM pg_replication_slots; (3)第三条 SQL(pg_replication_slots补充查询) SELECT slot_name, slot_type, CASE WHEN pg_is_in_recovery () THEN -- 备库:用receive_lsn与0/0的差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), PG_LSN ('0/0')) ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) END AS current_wal_lsn, 0 AS confirmed_flush_lsn, activeFROM pg_replication_slots; 3. 验证 GaussDB 的系统视图与函数执行以下语句确认 GaussDB 支持的字段和函数,确保改造有效:-- 1. 查看pg_stat_replication视图结构(确认是否有receive_lsn字段)\d pg_stat_replication;-- 2. 检查备库LSN相关函数(部分GaussDB版本可能提供)SELECT pg_stat_get_wal_receive_lsn(); -- 若返回值,则可替代子查询-- 3. 确认主库当前LSN函数SELECT pg_current_wal_lsn(); 4. 调整 gaussdb_exporter 配置将修改后的 SQL 更新到 gaussdb_exporter 的查询模板中(通常在queries.yaml或代码内置的 SQL 字符串中),重新部署 exporter 即可。三、版本差异说明GaussDB 与 PostgreSQL 的基础版本关联您使用的 GaussDB Kernel 505.2.1 对应的 PostgreSQL 基础版本接近PostgreSQL 9.2/9.3(通过内核特性推断),而pg_last_wal_receive_lsn()是 PostgreSQL 9.6 + 引入的(替换了 9.5 及之前的pg_last_xlog_receive_lsn())。因此,从基础版本兼容性来看,GaussDB 不支持该函数符合其版本定位。GaussDB 的复制机制特点GaussDB 的主备复制依赖自有逻辑(如日志复制、一致性校验),更倾向于通过pg_stat_replication(主库视图)、pg_stat_slave_replication(备库视图,部分版本有)等视图暴露状态,而非独立函数。这也是改造时优先使用视图字段的原因。四、总结一下下问题根因是GaussDB 不支持 PostgreSQL 的pg_last_wal_receive_lsn()函数,需通过查询系统视图(如pg_stat_replication的receive_lsn字段)替代。核心解决方案是:修改监控 SQL,用 GaussDB 的视图字段替换 PostgreSQL 特有函数;确认pg_stat_replication等视图的字段存在性,确保 LSN 计算逻辑正确;调整 gaussdb_exporter 的查询模板,适配 GaussDB 的复制指标采集方式。
-
与某内部MRS集群Hive对接,服务器上部署了Spark,连接云端的Hive,参考的样例代码为mrs-example-mrs-3.3.0中的hive-jdbc-example,通过获取连接url,用spark.read().format("jdbc").options(xxxx)的方式;现在报错内容是:①unable to read HiveServer2 configs from ZooKeeper②KeeperErrorCode=Session closed because client failed to authenticate for /hiveserver2改造的内容是hive-jdbc-example中的USER_NAME的值,usedir的路径为实际路径从报错信息来看,核心问题集中在ZooKeeper 连接与认证失败,这通常与云端 Hive 的服务发现配置、认证机制(如 Kerberos)以及客户端参数匹配有关。一、错误原因分析错误①:unable to read HiveServer2 configs from ZooKeeper原因:Spark 通过 ZooKeeper 自动发现 HiveServer2 地址时失败。可能是 ZooKeeper 集群地址 / 端口错误、ZooKeeper 中 HiveServer2 的注册路径(默认/hiveserver2)被修改,或网络不通(如防火墙阻止 ZooKeeper 端口 2181/2182)。错误②:KeeperErrorCode=Session closed because client failed to authenticate for /hiveserver2原因:ZooKeeper 启用了认证机制(MRS 集群通常默认集成 Kerberos,ZooKeeper 可能依赖 Kerberos 认证),而 Spark 客户端未正确配置认证信息,导致 ZooKeeper 拒绝连接。二、解决步骤(针对 MRS 集群 Hive 的适配)1. 确认 Hive 连接的核心参数(基于 ZooKeeper 的服务发现)MRS 集群的 Hive 通常通过 ZooKeeper 实现 HiveServer2 的高可用,连接 URL 格式为: jdbc:hive2://<zk-quorum>/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;<auth-params> 其中关键参数需与云端 MRS 集群一致:<zk-quorum>:ZooKeeper 集群地址,格式为zk-node1:port,zk-node2:port(MRS 集群的 ZooKeeper 端口通常是 2181,若启用安全模式可能是 2182)。zooKeeperNamespace:HiveServer2 在 ZooKeeper 中的注册根路径(默认hiveserver2,若云端有自定义需同步修改)。<auth-params>:认证相关参数(MRS 默认启用 Kerberos,需添加 Kerberos 认证参数)。2. 配置 Kerberos 认证(解决 ZooKeeper 认证失败)MRS 集群的 Hive 和 ZooKeeper 通常集成 Kerberos 安全认证,客户端必须通过 Kerberos 认证才能访问。需完成以下配置:(1)获取 Kerberos 配置文件从 MRS 集群控制台下载:krb5.conf:Kerberos 的配置文件(包含 KDC 地址、 Realm 等信息)。用于访问 Hive 的keytab文件(如hiveuser.keytab)和对应的principal(如hiveuser@HADOOP.COM)。将这两个文件放置在本地 Spark 服务器的可访问路径(如/etc/krb5.conf、/opt/keytabs/hiveuser.keytab)。(2)Spark 代码中添加 Kerberos 认证参数在spark.read.jdbc的options中添加 Kerberos 相关配置,同时确保 JVM 加载krb5.conf:import org.apache.spark.sql.SparkSession object HiveJdbcExample { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("Hive-JDBC-Example") // 加载Kerberos配置 .config("spark.driver.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf") .config("spark.executor.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf") .getOrCreate() // Hive JDBC连接参数 val jdbcOptions = Map( "url" -> "jdbc:hive2://zk-node1:2181,zk-node2:2181,zk-node3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;authMech=1;principal=hive/_HOST@HADOOP.COM", "dbtable" -> "default.t1", // 目标表 "user" -> "hiveuser", // MRS集群的Hive用户名 "password" -> "", // Kerberos认证时密码可为空,依赖keytab "driver" -> "org.apache.hive.jdbc.HiveDriver" ) // 若需通过keytab自动登录(避免手动kinit),可在代码中添加登录逻辑 import org.apache.hadoop.security.UserGroupInformation UserGroupInformation.setConfiguration(spark.sparkContext.hadoopConfiguration) UserGroupInformation.loginUserFromKeytab("hiveuser@HADOOP.COM", "/opt/keytabs/hiveuser.keytab") // 读取Hive表 val df = spark.read.format("jdbc").options(jdbcOptions).load() df.show() spark.stop() } } 3. 验证 ZooKeeper 连接与路径检查 ZooKeeper 地址和端口:通过telnet zk-node1 2181测试网络连通性,确保本地 Spark 服务器能访问 MRS 的 ZooKeeper 节点。确认 HiveServer2 在 ZooKeeper 的注册路径:若云端 MRS 修改过默认路径(非/hiveserver2),需在 URL 中同步修改zooKeeperNamespace参数(如zooKeeperNamespace=custom-hiveserver2)。4. 依赖包兼容性处理(避免版本冲突)MRS 3.3.0 对应的 Hive 版本通常为 2.x 或 3.x,需确保本地 Spark 的依赖包与 MRS 版本兼容:移除 Spark 默认的低版本hive-jdbc、zookeeper、hadoop-common等 jar 包。添加 MRS 3.3.0 配套的依赖(可从 MRS 集群的/usr/share/hadoop、/usr/share/hive目录拷贝,或通过 MRS 的 maven 仓库引入):hive-jdbc-<version>.jarhive-service-<version>.jarzookeeper-<version>.jarhadoop-common-<version>.jarhadoop-auth-<version>.jar(Kerberos 认证依赖)5. 用 beeline 工具验证连接(排除服务端问题)先通过 Hive 官方的beeline工具测试连接,确认服务端配置正确: beeline -u "jdbc:hive2://zk-node1:2181,zk-node2:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=hive/_HOST@HADOOP.COM" -n hiveuser -k 若beeline能成功连接,说明服务端和认证配置正确,问题在 Spark 客户端;若beeline也失败,需先排查 MRS 集群的 HiveServer2 状态、ZooKeeper 状态及 Kerberos 配置。三、注意一下下MRS 安全模式差异:若云端 MRS 集群未启用 Kerberos(非安全模式),则认证参数简化为authMech=3(用户名密码认证),URL 中添加password=<your-password>。ZooKeeper 认证类型:除 Kerberos 外,部分场景可能使用 ZooKeeper 的 Digest 认证,需在 URL 中添加zookeeper.auth=digest:username:password。日志排查:开启 Spark 的 DEBUG 日志(spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties),查看 ZooKeeper 连接阶段的详细报错(如 “no route to host” 为网络问题,“invalid token” 为 Kerberos 认证失败)。
-
GaussDB 集中式数据库中指定表并行处理在华为GaussDB 集中式数据库(主要指 GaussDB 100,面向集中式部署场景) 中,支持通过表级并行度控制或查询 Hint(提示) 实现 “仅对 SQL 中指定表(如示例中的 t2 表)开启并行处理”,核心思路是通过精细化配置表的并行属性或强制查询计划对目标表启用并行,同时让其他表(如 t1 表)沿用默认串行或低并行策略。一、核心实现原理:表级并行度的可控性GaussDB 集中式的并行查询机制遵循 “全局参数为基础,表级配置 / Hint 为优先” 的规则:全局参数(如enable_parallel_execute)控制是否允许并行查询(默认开启),但仅决定 “是否支持并行”,不指定 “哪些表并行”;表级配置(存储参数PARALLEL)或查询 Hint(如/*+ PARALLEL(表名, 并行度) */)可单独指定某张表的并行处理策略,优先级高于全局参数,从而实现 “指定表单独并行”。二、具体实现方案(针对示例 SQL)示例 SQL 为两表关联查询:select * from t1, t2 where ``t1.id`` = ``t2.id,需仅对t2表开启并行,t1表保持串行。以下是两种常用方案:方案 1:通过 “表级存储参数” 长期配置(适合固定需求)通过CREATE TABLE或ALTER TABLE为t2表设置并行度(DOP,Degree of Parallelism),使该表的所有查询默认启用并行;t1表不设置并行参数,沿用全局默认(串行或低并行)。操作步骤:确认全局并行开关已开启首先确保数据库允许并行查询(默认开启),可通过以下 SQL 验证:SELECT name, value FROM SYS.V\$PARAMETER WHERE name = 'enable\_parallel\_execute'; \-- 若value为1,表示开启;若为0,需执行以下语句开启(需管理员权限): ALTER SYSTEM SET enable\_parallel\_execute = 1 SCOPE = SPFILE; \-- 重启数据库使配置生效(仅修改SPFILE时需重启)为 t2 表设置并行度新建 t2 表时直接指定并行度(推荐):CREATE TABLE t2 (   id INT,   col1 VARCHAR2(50),   ... -- 其他字段 )  PARALLEL 4; -- 并行度设为4(根据CPU核心数调整,通常为CPU核心数的1-2倍)已存在的 t2 表,通过 ALTER TABLE 修改并行度:ALTER TABLE t2 PARALLEL 4; -- 对t2表启用并行,并行度4 ALTER TABLE t1 PARALLEL 1; -- 强制t1表串行(并行度1等效于关闭并行)执行目标 SQL无需修改 SQL,数据库会自动对t2启用并行(按表级配置的并行度),t1按并行度 1 串行处理:select \* from t1, t2 where t1.id = t2.id; 方案 2:通过 “查询 Hint” 临时控制(适合动态需求)若仅需对某一次查询中的t2表启用并行(不影响其他查询),可使用 GaussDB 支持的PARALLEL查询 Hint,直接在 SQL 中指定t2的并行度,优先级最高。操作语法与示例:Hint 格式:/*+ PARALLEL(表名, 并行度) */对t2表启用并行度 4,t1表不指定(默认串行):SELECT /\*+ PARALLEL(t2, 4) \*/ -- 强制t2表并行处理,并行度4   \*  FROM t1, t2  WHERE t1.id = t2.id; (可选)若需明确强制t1串行,可增加t1的串行 Hint:SELECT /\*+ PARALLEL(t2, 4) PARALLEL(t1, 1) \*/ -- t2并行,t1串行   \*  FROM t1, t2  WHERE t1.id = t2.id; 三、关键配置说明与注意事项1. 并行度(DOP)的合理设置并行度并非越高越好,需结合服务器 CPU 核心数、内存大小及业务负载调整:推荐值:并行度 = CPU物理核心数 × 1~2(例如 8 核 CPU,并行度设为 8 或 16);避免过度并行:若并行度过高,会导致线程切换开销增大,反而降低性能(尤其小表查询,并行收益可能覆盖不了开销)。2. 表级并行与全局参数的优先级GaussDB 并行策略的优先级从高到低为:查询Hint > 表级PARALLEL参数 > 全局并行参数(如parallel_degree_limit)若全局参数parallel_degree_limit设置了最大并行度(如 16),则表级或 Hint 指定的并行度不能超过该值。3. 验证并行是否生效可通过查看执行计划确认t2表是否启用并行,执行以下 SQL:EXPLAIN FORMAT=TEXT SELECT /\*+ PARALLEL(t2, 4) \*/ \* FROM t1, t2 WHERE t1.id = t2.id; 若执行计划中包含 PARALLEL SCAN ON t2(并行扫描 t2 表),且degree: 4,说明并行已生效;t1表的扫描计划若为 SCAN ON t1(无 PARALLEL 关键字),说明为串行。四、总结一下下能否实现:GaussDB 集中式(GaussDB 100)完全支持 “仅对指定表开启并行”,核心通过表级 PARALLEL 参数(长期配置)或查询 Hint(临时配置)实现。推荐方案:长期固定需求:用ALTER TABLE t2 PARALLEL 4;配置表级并行;临时动态需求:在 SQL 中加/*+ PARALLEL(t2, 4) */ Hint,灵活且不影响其他查询。核心逻辑:通过精细化控制单表的并行度,让目标表(t2)通过多线程加速扫描 / 关联,其他表(t1)保持串行,兼顾性能与资源利用率。
-
< 华为云Versatile智能体平台 体验入口>华为开发者空间--开发平台--Versatile Agent (请在PC端打开) 版本概览 Versatile 920版本总结:新增27个特性,优化增强8个功能,新增多模态交互(图像、语音),新增敏感内容审查和风控,新增提示词管理,支持查看Trace调用链,查看使用量等统计指标,在运营运维、安全审查等企业级特性上有大幅提升。 华为云Versatile智能体平台 功能模块介绍 01 资产中心Versatile资产中心提供应用、MCP、插件、提示词等AI资产的共享,包括系统预置资产、开发者上传资产等,加速AI应用的开发以及公共资产的沉淀。 02 Versatile空间Versatile空间集成通用型AI助手以及各专家Agent,打造企业级智能协作统一入口,通过自主任务规划及多工具协同等,帮助用户完成复杂任务。 03 开发中心Versatile支持单智能体、工作流和多智能体三种应用开发方式,平台集成盘古大模型及DeepSeek等第三方模型,提供角色设定、插件扩展、工作流编排等功能,支持知识库管理、RAG检索和智能提示词优化,确保交互精准可靠。同时支持通过API、网页多渠道发布应用,助力开发者高效打造专业级智能体应用。04 模型中心模型中心提供标准化API接口,支持盘古大模型与业界主流模型的接入与管理,提供多种路由策略,实现模型无感切换和灵活调度,支持NLP与多模态理解模型的在线调测及参数配置。 05 运营运维运营运维包括调用链管理、运营统计,开展全维度Agent观测,实现对Agent调用的多维指标监控运营。 06 空间管理空间管理助力团队高效便捷地协作开发应用,多重权限控制提升企业资产数据安全。 新增重点特性介绍一、企业级特性 团队空间管理· 支持多团队空间的管理与资源隔离,成员角色权限管理,跨空间资产的复制业务价值:方便企业内进行资产、数据管理,同时能方便多人协作 应用管理· 支持配置敏感内容审查和风控:支持配置敏感词,触发后可以进行过滤、替换以及设置兜底回复,确保输出合规。业务价值:提供确定性保证,满足合规性与数据防泄露· 支持集成APIG,通过APIG发布Agent API业务价值:提供企业级API网关能力,可以为Agent的能力提供安全保障、运维能力、商业能力· 支持应用部署、升级、停止、启动、重启、删除等操作业务价值:提供应用的全生命周期标准化管理 调用链管理· 支持Trace调用链统计: 支持查看智能体、工作流的调用情况(时间、tokens消耗、input,output)业务价值1:技术运维与保障价值——技术人员可以快速定位问题、进行性能瓶颈分析等,确保系统稳定、可靠、可用业务价值2:安全合规与审计价值——记录每次调用的详细信息,实现全过程可追溯 指标统计· 支持查看运营数据:支持查看智能体、工作流的各项运营指标统计:基础指标功能(使用次数、服务QPS、模型QPS等)、质量统计指标功能(模型调用错误率、调用错误率、模型调用平均耗时、链路整体耗时、服务请求成功率等)、成本指标功能(tokens消耗等)业务价值:迭代优化价值——可以根据性能、错误指标等数据对智能体、工作流进行多轮迭代与优化 后台逻辑相关特性· 支持开发和测试环境分离部署,支持开发环境资产发布到生产环境业务价值1:保障生产环境稳定,确保正在服务线上客户的生产环境不会因新功能开发或测试而宕机或出错。业务价值2:可以并行开发与协作,开发、运营团队可以同时在各自的环境中进行工作,互不干扰,提升协同效率。· 支持单实例多Agent共享模式和单Agent 多实例独占模式业务价值:优化资源利用,降低成本。共享模式适用于大量轻量级、低并发的Agent,独占模式适用于核心、高并发、高性能要求的Agent,企业可以根据不同Agent的业务重要性、流量特征和性能要求,灵活选择部署模式,实现成本与性能的最佳平衡。· 支持多环境管理,集成开通Serverless运行环境业务价值:极致敏捷与弹性伸缩,提升了开发测试的敏捷性;降低了环境管理成本· 支持与凭据加密服务对接,通过配置凭据保障密钥安全业务价值:杜绝敏感信息泄露,增强安全合规性 二、多模态能力 应用管理· 新增语音交互:单智能体/工作流支持开启语音交互,支持选择不同种类的音色业务价值:满足业务个性化需求,丰富交互形式,让用户体验更流畅· 新增多模态大模型能力:单智能体、工作流-大模型节点支持接入多模态大模型业务价值:新增交互场景,在需要快速获取信息或进行复杂任务处理场景能显著提升用户体验 三、模型管理 模型服务· 支持接入用户自己第三方模型服务业务价值1:增加灵活性,提升用户体验业务价值2:企业可以根据自己的业务选择适合的模型,实现最佳功能匹配 路由策略· 支持配置路由策略业务价值:实现智能负载均衡与成本控制,构建高可用的容灾方案 模型调测· 支持模型调测,对比不同模型的效果业务价值:可以快速了解不同模型在当前任务下的效果,帮助用户进行模型选型 四、数据能力 知识库· 支持接入外部(第三方)知识库业务价值:实现各个系统中的数据贯通,增加架构的灵活性 应用管理· Agent问答支持知识切片溯源,支持配置多个知识库(最多3个)业务价值:构建信任与确保合规,实现答案的可验证与可审计 五、组件能力 提示词· 支持提示词管理,支持提示词效果对比,新增多模态提示词业务价值1:提供提示词统一管理、开发能力,实现高效运维;业务价值2:支持多模态数据,拓宽应用场景 MCP· 支持NPX、UVX方式部署和SSE接口接入服务业务价值:极致简化体验,简化集成复杂度 点击可前往>>华为云Versatile智能体平台 官网
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签