-
在鸿蒙的 ArkUI 声明式框架中,开发者不再通过命令式代码控制界面元素的位置与尺寸,而是描述“UI 应该是什么样子”,系统根据设备形态、屏幕尺寸和用户状态自动调整布局。这种 UI = f(state) 的范式,使得一套代码可无缝适配手机、平板、手表甚至车机。以下通过一个媒体控制面板示例,展示如何利用 ArkUI 的自适应能力实现多端兼容。@Entry@Componentstruct MediaPlayer { @State isPlaying: boolean = false; @State volume: number = 70; @State currentTime: string = '02:15'; @State totalTime: string = '04:30'; build() { // 根容器根据屏幕宽度自动选择布局方向 Column() { // 专辑封面区域:固定宽高比 Image($r('app.media.album_cover')) .objectFit(ImageFit.Cover) .aspectRatio(1.0) // 保持 1:1 宽高比 .margin(16) // 歌曲信息:文本自适应换行 Text('Moonlight Sonata') .fontSize(24) .fontWeight(FontWeight.Bold) .maxLines(2) .textOverflow({ overflow: TextOverflow.Ellipsis }) .padding({ horizontal: 16 }) Text('Ludwig van Beethoven') .fontSize(16) .fontColor('#666666') .padding({ horizontal: 16, bottom: 24 }) // 进度条区域 Column() { Slider({ value: 45, min: 0, max: 100, step: 1 }) .width('90%') .padding({ bottom: 8 }) Row() { Text(this.currentTime) .fontSize(12) .fontColor('#999999') Spacer() Text(this.totalTime) .fontSize(12) .fontColor('#999999') } .width('90%') } // 控制按钮组:根据可用空间动态排列 this.buildControlButtons() .padding(24) } .width('100%') .height('100%') } @Builder buildControlButtons(): some View { // 获取当前窗口宽度 const windowWidth = getContext(this).config?.window?.width || 360; if (windowWidth > 600) { // 平板/大屏模式:横向排列,带文字标签 return Row() { this.controlButton($r('app.media.icon_repeat'), 'Repeat') this.controlButton($r('app.media.icon_prev'), 'Previous') this.playPauseButton() this.controlButton($r('app.media.icon_next'), 'Next') this.controlButton($r('app.media.icon_shuffle'), 'Shuffle') } .justifyContent(FlexAlign.Center) .gap(24); } else { // 手机模式:紧凑图标排列 return Row() { Image($r('app.media.icon_repeat')).width(24).height(24) Image($r('app.media.icon_prev')).width(32).height(32) this.playPauseButton() Image($r('app.media.icon_next')).width(32).height(32) Image($r('app.media.icon_shuffle')).width(24).height(24) } .justifyContent(FlexAlign.SpaceBetween) .width('80%'); } } @Builder playPauseButton(): Image { return Image(this.isPlaying ? $r('app.media.icon_pause') : $r('app.media.icon_play')) .width(48) .height(48) .onClick(() => { this.isPlaying = !this.isPlaying; }); } @Builder controlButton(icon: Resource, label: string): Column { return Column() { Image(icon).width(20).height(20) Text(label) .fontSize(10) .fontColor('#333333') .lineHeight(12) } .alignItems(HorizontalAlign.Center) .onClick(() => { console.log(`${label} clicked`); }); }}上述代码通过三个关键机制实现自适应:响应式查询:getContext(this).config?.window?.width 获取当前窗口尺寸,在构建时决定布局结构;弹性容器:Column 与 Row 自动填充可用空间,Spacer() 推动子元素分布;约束属性:aspectRatio 保持比例,maxLines 限制文本高度,objectFit 控制图片裁剪。更进一步,ArkUI 支持 媒体查询(Media Query)语法,可声明式定义不同断点下的样式:build() { Column() { // ... } .mediaQuery([ { condition: '(min-width: 600px)', style: { padding: { left: 48, right: 48 } } }, { condition: '(orientation: landscape)', style: { flexDirection: FlexDirection.Row } } ])}此外,系统还提供 栅格布局(GridRow/GridCol)用于复杂页面:GridRow() { GridCol({ span: { xs: 4, sm: 6, md: 8, lg: 12 } }) { VideoPlayer() } GridCol({ span: { xs: 4, sm: 6, md: 4, lg: 4 } }) { Playlist() }}其中 xs/sm/md/lg 对应不同屏幕宽度区间,系统自动选择最匹配的列数。这种自适应能力不仅减少重复代码,更确保用户体验一致性——无论在 1.5 英寸手表还是 32 英寸智慧屏上,应用都能以最合理的方式呈现内容。这正是声明式 UI 框架将“设备适配”从开发者负担转化为系统能力的核心价值。
-
在鸿蒙生态中,用户数据需在手机、平板、手表等设备间无缝流转。分布式数据管理(Distributed Data Management)为此提供统一抽象,其中 KVStore 作为非结构化数据的存储载体,支持基于设备信任关系的自动同步。开发者无需关心网络传输细节,仅通过本地 API 操作,即可实现多端数据一致。以下展示如何创建一个跨设备同步的键值数据库,并监听远程变更。首先,在 module.json5 中声明数据同步权限:{ "module": { "requestPermissions": [ { "name": "ohos.permission.DISTRIBUTED_DATASYNC" } ] }}接着,在 ArkTS 中初始化分布式 KVStore:import { distributedData } from '@ohos.data.distributedData';import { BusinessError } from '@ohos.base';@Entry@Componentstruct NoteSyncApp { private kvStore?: distributedData.KVStore; private notes: Array<{ id: string, content: string }> = []; aboutToAppear() { this.initKVStore(); } private async initKVStore() { try { // 创建 KVManager 实例 const manager = distributedData.createKVManager({ bundleName: 'com.example.notes' }); // 配置分布式 KVStore const options: distributedData.KVStoreOptions = { createType: distributedData.KVStore.CREATE_TYPE_SINGLE_VERSION, encrypt: false, backup: false, autoSync: true, // 关键:启用自动同步 kvStoreType: distributedData.KVStore.KV_STORE_TYPE_DEVICE_COLLABORATION }; // 获取 KVStore 实例 this.kvStore = await manager.getKVStore('user_notes', options); // 监听本地及远程数据变更 this.kvStore.on('dataChange', distributedData.KVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, (mutations: distributedData.KVMutation[]) => { console.info(`Received ${mutations.length} changes`); this.handleDataChanges(mutations); } ); // 初次加载所有笔记 await this.loadAllNotes(); } catch (err) { console.error('Failed to init KVStore:', (err as BusinessError).message); } } private async loadAllNotes() { if (!this.kvStore) return; try { // 获取所有键 const keys = await this.kvStore.getKeys(''); const newNotes: typeof this.notes = []; for (const key of keys) { if (key.startsWith('note_')) { const value = await this.kvStore.getString(key, ''); newNotes.push({ id: key, content: value }); } } this.notes = newNotes; this.updateUI(); // 触发界面刷新 } catch (err) { console.error('Load notes failed:', (err as BusinessError).message); } } private handleDataChanges(mutations: distributedData.KVMutation[]) { let needReload = false; for (const mutation of mutations) { if (mutation.key.startsWith('note_')) { if (mutation.value === null) { // 删除操作 this.notes = this.notes.filter(note => note.id !== mutation.key); } else { // 新增或更新 const existingIndex = this.notes.findIndex(note => note.id === mutation.key); if (existingIndex >= 0) { this.notes[existingIndex].content = mutation.value as string; } else { this.notes.push({ id: mutation.key, content: mutation.value as string }); } } needReload = true; } } if (needReload) { this.updateUI(); } } private async addNewNote(content: string) { if (!this.kvStore) return; const noteId = `note_${Date.now()}`; try { // 写入即触发同步(因 autoSync=true) await this.kvStore.putString(noteId, content); console.info(`Note ${noteId} saved and synced`); } catch (err) { console.error('Save note failed:', (err as BusinessError).message); } } private async deleteNote(noteId: string) { if (!this.kvStore) return; try { await this.kvStore.delete(noteId); } catch (err) { console.error('Delete note failed:', (err as BusinessError).message); } } private updateUI() { // 在实际 ArkUI 中,可通过 @State 或全局状态触发重绘 } build() { Column() { // 笔记列表 UI List() { ForEach(this.notes, (note) => { ListItem() { Text(note.content).padding(10) Button('Delete').onClick(() => this.deleteNote(note.id)) } }, item => item.id) } // 添加新笔记 TextInput({ placeholder: 'Enter new note...' }) .onChange((value) => { if (value.endsWith('\n')) { this.addNewNote(value.trim()); } }) } .padding(16) }}该实现的关键在于 autoSync: true 配置。一旦启用,系统将:自动发现同账号下其他在线设备;建立加密通道(基于设备证书);增量同步变更数据(仅传输差异部分);冲突解决:采用“最后写入胜出”(Last Write Wins)策略,时间戳由系统统一校准。值得注意的是,所有 API 调用均为异步,但对开发者而言,操作体验如同本地数据库。当用户在手机上新增一条笔记,平板端几乎实时收到 dataChange 事件并更新 UI,整个过程无需手动触发同步或处理网络异常。这种“透明分布式”设计,正是鸿蒙将复杂协同逻辑下沉至系统层,向上提供简洁编程模型的典型体现——让数据自由流动,而代码专注业务。
-
在鸿蒙的分布式生态中,用户期望应用体验不被单一设备束缚。例如,手机上开始的视频会议可无缝迁移到智慧屏,健身应用可将手表的心率数据与电视的指导画面协同呈现。这一能力由分布式任务调度(Distributed Task Scheduling)提供支撑,其核心是将多设备虚拟为一个“超级终端”,并动态迁移或协同执行应用任务。开发者可通过 @ohos.ability.runtime 模块实现跨设备任务迁移。以下以视频播放场景为例,展示如何将播放任务从手机迁移到智慧屏。首先,在 module.json5 中声明支持迁移的能力:{ "module": { "abilities": [ { "name": "VideoPlayerAbility", "type": "page", "launchType": "standard", "continuable": true, "skills": [ { "entities": ["entity.system.home"], "actions": ["action.system.home"] } ] } ] }}关键字段 continuable: true 告知系统该 Ability 支持跨设备迁移。接着,在页面逻辑中实现迁移触发与状态同步:import UIAbility from '@ohos.app.ability.UIAbility';import distributedDeviceManager from '@ohos.distributedHardware.deviceManager';import { BusinessError } from '@ohos.base';@Entry@Componentstruct VideoPlayerPage { private currentVideoUri: string = 'file:///data/media/sample.mp4'; private playbackPosition: number = 0; // 播放进度(毫秒) private dm?: distributedDeviceManager.DeviceManager; private targetDeviceId: string = ''; aboutToAppear() { // 初始化设备管理器 try { this.dm = distributedDeviceManager.createDeviceManager('com.example.videoplayer'); } catch (err) { console.error('Create DeviceManager failed'); return; } // 获取可信设备列表(已配对的智慧屏、平板等) this.dm.getTrustedDeviceList((err: BusinessError, devices: Array<distributedDeviceManager.DeviceInfo>) => { if (!err && devices.length > 0) { // 假设第一个设备为目标(实际应由用户选择) this.targetDeviceId = devices[0].deviceId; } }); } build() { Column() { Video({ src: this.currentVideoUri, startTime: this.playbackPosition }) .width('100%') .height(300) Button('迁移到大屏') .onClick(() => this.migrateToRemoteDevice()) .margin({ top: 20 }) } .padding(16) } private migrateToRemoteDevice() { if (!this.targetDeviceId) { console.warn('No target device available'); return; } // 构建迁移参数:携带当前播放状态 const continuationExtraParams = { videoUri: this.currentVideoUri, position: this.playbackPosition.toString() }; // 调用 AbilityContinuationManager 发起迁移 try { const abilityContext = getContext(this) as common.UIAbilityContext; abilityContext.abilityContinuationManager?.continueAbility( this.targetDeviceId, continuationExtraParams, (result: number) => { if (result === 0) { console.info('Migration request sent successfully'); // 可选择在本地暂停播放 this.pauseLocalPlayback(); } else { console.error('Migration failed with code:', result); } } ); } catch (err) { console.error('Exception during migration:', JSON.stringify(err)); } } private pauseLocalPlayback() { // 实际项目中应调用视频组件的暂停方法 console.log('Local playback paused'); }}在目标设备(如智慧屏)端,需实现 onContinueAbilityRequest 回调以接收迁移任务:// 在智慧屏端的 UIAbility 中export default class VideoPlayerAbility extends UIAbility { onContinueAbilityRequest(wantParam: Record<string, Object>): boolean { // 验证来源设备是否可信(可选) const sourceDevice = wantParam['ohos.continuation.sourceDeviceId'] as string; if (!this.isTrustedDevice(sourceDevice)) { return false; // 拒绝迁移 } // 解析迁移参数 const videoUri = wantParam['videoUri'] as string; const position = parseInt(wantParam['position'] as string, 10); // 启动本地播放器并恢复状态 this.startVideoPlayback(videoUri, position); return true; // 接受迁移 } private isTrustedDevice(deviceId: string): boolean { // 实际可查询设备管理服务验证信任关系 return true; } private startVideoPlayback(uri: string, pos: number) { // 启动播放页面并传入参数 const want = { deviceId: '', bundleName: 'com.example.videoplayer', abilityName: 'VideoPlayerPage', parameters: { videoUri: uri, startPosition: pos } }; this.context.startAbility(want); }}整个迁移过程由系统自动保障:状态一致性:通过 continuationExtraParams 传递关键状态;网络通道:底层使用分布式软总线建立高带宽连接,确保迁移指令低延迟送达;权限控制:仅同账号下已认证设备可发起/接受迁移;失败回退:若目标设备拒绝或离线,本地任务继续运行,无感知中断。这种机制使得应用无需关心设备拓扑变化,只需声明“可迁移”并处理状态同步,即可获得跨设备连续性体验。这正是鸿蒙“一次开发,多端部署”理念在运行时层面的深度体现——设备边界消融,服务随人而动。
-
在鸿蒙的分布式架构中,分布式软总线(DSoftBus)是实现多设备无缝协同的通信底座。其核心能力之一,是在用户无感的前提下,自动发现周边可信设备并建立安全连接。这一过程融合了网络扫描、身份认证与拓扑管理,开发者仅需调用高层 API 即可接入“超级终端”网络。以下通过 ArkTS 代码展示如何在应用中监听并加入可信设备组。首先,应用需声明分布式组网权限:// module.json5{ "module": { "requestPermissions": [ { "name": "ohos.permission.DISTRIBUTED_DATASYNC" }, { "name": "ohos.permission.GET_DISTRIBUTED_DEVICE_INFO" } ] }}随后,在业务逻辑中初始化设备管理器并注册发现回调:import deviceManager from '@ohos.distributedHardware.deviceManager';import { BusinessError } from '@ohos.base';@Entry@Componentstruct DeviceDiscoveryView { private trustedDevices: Array<{ deviceId: string, deviceName: string }> = []; private dm?: deviceManager.DeviceManager; aboutToAppear() { // 获取设备管理器实例 try { this.dm = deviceManager.createDeviceManager('com.example.myapp'); } catch (err) { console.error('Failed to create DeviceManager:', (err as BusinessError).message); return; } // 注册设备发现监听器 this.dm.on('deviceFound', (deviceInfo) => { console.info(`New device found: ${deviceInfo.deviceName} (${deviceInfo.deviceId})`); // 检查设备是否已认证(属于同一华为账号) if (deviceInfo.isTrusted) { this.trustedDevices.push({ deviceId: deviceInfo.deviceId, deviceName: deviceInfo.deviceName }); // 触发UI更新 this.updateUI(); } }); // 启动设备发现(持续扫描) this.startDeviceDiscovery(); } private startDeviceDiscovery() { if (!this.dm) return; const subscribeInfo: deviceManager.SubscribeInfo = { subscribeId: 1001, mode: deviceManager.DiscoverMode.DISCOVER_MODE_ACTIVE, medium: deviceManager.ExchangeMedium.EXCHANGE_MEDIUM_WIFI, protocol: deviceManager.ExchangeProtocol.EXCHANGE_PROTOCOL_BLE, encode: deviceManager.EncodeType.ENCODE_TYPE_JSON, frequency: deviceManager.DiscoveryFrequency.LOW }; this.dm.startDeviceDiscovery(subscribeInfo, (err: BusinessError) => { if (err) { console.error('Start discovery failed:', err.message); } else { console.info('Device discovery started'); } }); } private updateUI() { // 在ArkUI中触发状态更新 // 实际项目中可通过@State或全局状态管理实现 } build() { Column() { Text('Trusted Devices') .fontSize(20) .fontWeight(FontWeight.Bold) .margin(16) List() { ForEach(this.trustedDevices, (item) => { ListItem() { Row() { Text(item.deviceName) .fontSize(16) Spacer() Button('Connect') .onClick(() => this.establishConnection(item.deviceId)) .margin({ right: 16 }) } .padding(12) } }, item => item.deviceId) } .width('100%') } .padding(16) } private establishConnection(deviceId: string) { if (!this.dm) return; // 建立P2P连接(底层由DSoftBus自动选择最优传输通道) this.dm.authenticateDevice(deviceId, (err: BusinessError, authParam?: deviceManager.AuthParam) => { if (err) { console.error('Authentication failed:', err.message); return; } // 连接成功后,可进行数据传输或任务调度 console.info(`Secure connection established with ${deviceId}`); // 示例:发送一条测试消息 this.sendDataToDevice(deviceId, 'Hello from ArkTS!'); }); } private sendDataToDevice(deviceId: string, message: string) { // 实际数据传输通常通过分布式数据管理或文件服务完成 // 此处仅为示意流程 console.log(`Sending to ${deviceId}: ${message}`); }}在上述代码中,deviceManager 模块封装了分布式软总线的底层细节:自动网络适配:medium 和 protocol 字段指定发现媒介(如 Wi-Fi + BLE),但实际通信时 DSoftBus 会根据设备能力动态切换至最优链路(如 Wi-Fi Direct 或以太网);信任关系校验:isTrusted 字段由系统基于华为账号体系与设备证书链验证,确保仅同账户设备可见;低功耗设计:frequency: LOW 表示使用 BLE 广播进行唤醒,仅在需要高带宽时才激活 Wi-Fi P2P。值得注意的是,整个发现与连接过程无需用户手动配对或输入密码。一旦设备登录同一账号并开启蓝牙/Wi-Fi,软总线便在后台完成密钥协商与通道建立,为上层提供类本地 IPC 的通信体验。这种“无感组网”能力,正是鸿蒙实现“超级终端”的第一步——让设备像器官一样自然协同,而非孤立的硬件集合。
-
在多设备协同场景中,用户常需在手机、平板或智慧屏之间共享大型媒体文件或工程文档。传统方案要求完整拷贝,不仅耗时,还浪费存储空间。鸿蒙的分布式文件服务(Distributed File Service, DFS)通过按需加载(On-Demand Loading)技术,实现了“远程文件本地化访问”的体验——用户看到的是完整文件,系统却只在必要时传输所需数据块。这一能力的核心在于虚拟文件句柄与分段缓存策略的协同设计。当应用通过标准 URI 访问远程文件时,DFS 并不会立即拉取全部内容,而是创建一个轻量级代理对象:// 应用层代码:如同访问本地文件const fileUri = 'dfs://device_xxx/document.pdf';const fd = await fileIO.open(fileUri, fileIO.OpenMode.READ_ONLY);// 读取第100KB处的4KB数据const buffer = new ArrayBuffer(4096);await fileIO.read(fd, buffer, { offset: 100 * 1024 });在底层,DFS 拦截该请求并执行以下流程:元数据预取:首次打开文件时,仅同步文件头信息(大小、修改时间、校验和),耗时 <50ms;分块索引构建:将文件逻辑划分为固定大小块(默认 64KB),建立块偏移到远程地址的映射表;懒加载触发:当 read 调用指定偏移量时,计算所属数据块,向源设备发起精准请求;本地缓存写入:接收到的数据块暂存于设备高速缓存区,并更新本地索引;后续访问加速:若再次读取同一区域,直接从缓存返回,避免网络往返。为保障流畅性,DFS 还引入智能预读机制。例如,当用户连续读取视频文件的前几个 GOP(Group of Pictures)时,系统会预测播放趋势,提前加载后续关键帧数据块,确保 4K 视频在跨设备播放时不卡顿。对于写操作,DFS 采用延迟提交策略:修改先写入本地临时副本;应用调用 flush() 或 close() 时,才将差异块同步至源设备;支持断点续传:若传输中断,下次打开时自动校验已传块,仅重传缺失部分。安全方面,所有数据传输均通过设备证书建立的 TLS 通道加密,且文件访问权限继承自分布式数据管理的信任模型——只有已被授权的设备才能发起按需加载请求。
-
1月24日,中国司法人工智能大会(CJAI2026)在上海召开,清华大学互联网司法研究院通过“华为AI百校计划”的算力支持行动,正式发布基于华为云昇腾AI云服务研发的开源法律大模型LegalOne-R1,推动司法智能化迈向新高度。 “LegalOne-R1具有1.7B、4B和8B三个不同参数的版本,是针对我国的司法数据进行训练的生成式法律大模型。”清华大学互联网司法研究院院长、计算机系教授刘奕群在发布现场介绍了模型的研发情况和创新价值。LegalOne-R1 是一款面向法律场景的高性能推理模型,通过“中端训练+后训练”双阶段增强,融合指令微调与强化学习,高效注入法律知识、模拟专业工作流,实现法律思维的涌现。模型在保障通用能力的前提下,精准掌握条文记忆、概念辨析、多跳推理与裁判逻辑,在真实业务中更稳、更准、更可用。LegalOne-R1的训练,得到了“华为AI百校计划”的稳定算力支持;还得到了互联网体系结构全国重点实验室上海分室、泉城省实验室和麦伽智能等产业合作伙伴的大力支持。在公开评测集合上,LegalOne-R1-8B在法律专业能力上表现突出。在LexEval、LawBench、JecQA等评测集上,LegalOne-R1-8B的整体表现对标参数规模显著更大的通用模型,在法律概念理解、法条记忆性、多跳推理等关键任务上达到当前开源模型的领先水平。LegalOne-R1“小参数、强推理”的特性将显著降低司法机关与法律科技企业应用法律大模型的门槛与算力成本:在1.7B、4B、8B等不同尺寸模型上完成系统评测后,LegalOne-R1以8B量级即可逼近更大规模通用模型的法律专业能力上限,为更广泛的本地化部署与行业集成打开空间。技术适配层面,华为云昇腾AI云服务整合大规模算力集群、计算引擎CANN、AI 开发框架MindSpore、ModelArts AI 开发生产线和ModelArts Studio大模型即服务平台,为大模型的训练、推理,AI 应用的开发、运行提供稳定可靠的全栈算力保障。在训练中,昇腾AI云服务为LegalOne-R1模型从数据预处理、模型训练到推理部署的全流程提供了关键的全栈支持,不仅保障了多规格参数模型的高效训练与轻量化推理需求,更精准匹配了司法场景对数据安全与合规的全生命周期要求。此次科研成果,显著推动了法律AI的普惠化应用,更为国内垂直领域专用模型的发展树立了可复制、可推广的创新范式。未来,华为云将进一步扩大高校合作“朋友圈“,以开放姿态持续支持高校科研团队进行科研创新,共同探索AI世界的新边界。
-
各位亲爱的版主们,大家好!经过大家一个月的努力角逐,12月外部版主激励评比结果已出炉,数据公示如下,请查看!·外部版主激励规则:点击了解更多转正礼/基础任务/额外任务(在线时长15小时+,主题帖15+,回帖30+,技术长文5+/原创技术干货1+,合集1+,有效回复问题求助帖10+,话题互动1+,完成这4项指标可获对应价值的代金券/实物礼品)请完成任务获得激励的版主,点击填写激励发放意愿统计问卷反馈截止时间:2026年2月20日,以便小编进行相应的激励发放。如若对统计有问题,可私信联系小助手~~~
-
说起来,2025年刚结束的时候,我在即刻上发了一条动态:"回想一下年初写的AI预测文章,现在看真是挺惭愧的。好多事情,我压根没想到会这么快发生。"这条动态引起了不少共鸣。评论区里有人说:"我也一样,年底回看年初,感觉像是过了十年。"为什么会有这种感觉呢?我想了很久,觉得核心原因可能是:2025年,AI完成了一次质变。不是参数更大了,不是评测分数更高了,而是从"能用"变成了"好用"。什么是"能用"到"好用"?先说说什么是"能用"。2023年下半年到2024年初,大模型确实能用。你可以用GPT-4写文案,用Claude写代码,用Midjourney画图。但问题是,你知道它在哪些地方会翻车,哪些事情不能让它做。比如,你不能让它分析一个很长的PDF,因为经常漏看关键信息。你不能让它写一个完整的项目,因为它会编造一些不存在的API。你不能把它接入你的真实工作流,因为不可控。这时候,AI更像一个"会聊天但不太靠谱的助手"。你有空的时候,可以让它帮点小忙。但真正重要的事情,还是得靠自己。那什么是"好用"呢?2025年,AI开始变得可靠。你可以放心让它处理长文档,因为它学会了在几百页的内容里精准定位信息。你可以让它接手复杂任务,因为它学会了规划步骤、调用工具、在出错时自我纠正。你可以把它集成到真实工作流,因为它的行为变得可预测、可追溯。我最近用的一个例子是Claude Code。年初的时候,我还会担心它改的代码会不会有bug,但现在,我基本上已经可以放心让它改一些关键模块了。不是因为我盲目信任,而是我确实看到,它的代码质量和错误处理能力提升非常明显。这种"从谨慎使用到放心使用"的转变,就是从"能用"到"好用"的质变。四个关键突破要理解2025年为什么会有这个质变,得从四个关键技术突破说起。1. 推理能力:从"模仿"到"思考"2025年最让我意外的,是AI推理能力的提升。说起来,年初的时候,我对"AI能否真正思考"这个问题还持怀疑态度。那时候主流的做法是CoT,就是在prompt里加一句"请一步一步思考",然后模型会输出一串推理过程。但这更像是"模仿思考",不是真正理解DeepSeek在1月份发布的R1模型,改变了我的看法。他们的团队在论文里提到一个很有意思的现象:在训练的某个阶段,模型突然开始大量使用"wait"、"retry"、"verify"这些词。简单说,模型在训练中学会了"停下来想一想"。这个变化不是prompt工程师教它的,而是通过强化学习自己学会的。DeepSeek团队后来在Nature杂志上发表了论文,详细披露了整个过程。他们用671B参数的MoE架构,但每次推理只激活37B参数,激活率约5.5%。这把推理成本降低了60%,而且整个增量训练成本只有29.4万美元。这个数字还挺猛的。要知道,OpenAI训练GPT-4的成本据说超过1亿美元。DeepSeek用不到GPT-4三分之一的成本,做出了一个推理能力接近GPT-5的模型,更让我意外的是,他们把所有训练细节都公开了。从失败尝试到中间检查点,从RL训练架构到消融实验,一共86页论文,把原本藏在黑箱里的东西全部展现出来。这个透明度,在整个AI行业都是空前的。紧随其后,OpenAI在GPT-5中推出了"扩展推理能力",Anthropic发布了O1推理模型,国内也有一批开源推理模型出现。2025年,推理能力变成了超一线模型的核心战场。这些模型不再是"模仿思考",而是真的在思考。2. 多模态:从"拼接"到"原生"第二个突破,是多模态。说起来,多模态不是新概念了。早在2022年,就有CLIP、Stable Diffusion这些能理解图像的模型。但2025年的变化在于,多模态从"拼接式"进化到了"原生式"。什么意思呢?早期的多模态模型,是用几个独立的编码器分别处理不同模态。比如用一个视觉模型处理图像,用一个语言模型处理文本,然后通过一个"连接层"把它们对齐。这就像两个人各说各的,中间有个翻译在沟通。虽然能交流,但信息在传递过程中会大量丢失。2025年的原生多模态模型,比如GPT-4o、通义千问2.5-VL,采用了完全不同的架构。它们把所有模态的数据——文本、图像、音频、视频——都转换成统一的"token",然后用同一个模型处理。这就像给了一个"通用的语言",让模型能够真正理解不同模态之间的关系,而不是简单地拼接。豆包大模型1.6 Vision就是一个很好的例子。他们通过动态推理+多模态融合,在工业质检场景下检测准确率达到98.7%,比上一代提升了12个百分点。更让我印象深刻的是通义千问的实时翻译系统。它不仅翻译文字,还能看口型、识别人物表情,在嘈杂环境下准确率达到94%,比传统模型提升20%而且它能区分一些很容易混淆的词。比如"mask"(口罩)和"Musk"(马斯克),通过口型识别就能精准区分,专有名词翻译准确率达到99.2%。这种理解能力的提升,让多模态从一个"加分项",变成了基础大模型的"标配"。 3. Agent:从"聊天"到"行动"第三个突破,是Agent。2025年被称为"Agent元年",这不是空话。因为Agent确实从概念走到了规模化商用。说起来,年初的时候,我对Agent还持观望态度。那时候的Agent更多是"能调几个工具的聊天机器人",可靠性不高,难以真正替代人类完成复杂任务。但2025年,情况完全变了。我印象最深的是阿里巴巴在下半年发布的千问App。它能同时接入外卖、购物、订票等多个系统,用户说一句话,它就能在后台完成查机酒、选商品、备补给、支付的全流程。这不是简单的"从A入口导向B App",而是以Agent的形式,在后台完成跨系统的协同。金融领域也有大量落地案例。某国有银行接入的智能体,跨境汇款可疑交易识别率从65%飙升至92%,响应速度缩至秒级。编程领域的Agent就更成熟了。Claude Code、Cursor这些工具,已经能帮开发者完成理解需求、读取项目代码、修改文件、运行测试的全流程。我测下来,平均每个项目能省3-5小时。而且这些Agent不再只是单打独斗,而是形成了"多Agent协同"的架构。比如一个活动策划任务,会有主编Agent协同场地、宾客、资源、创意等子Agent,自动完成选址、邀人、物资推荐、图片生成、邮件发送等全流程。这种"从单点调用到智能协同"的转变,让Agent从一个"辅助工具",进化成了"数字员工"。 4. 具身智能:从"表演"到"实用"第四个突破,是具身智能。说起来,2024年我看过很多机器人"炫技"的视频。有的机器人能后空翻,有的能跳复杂的舞蹈。但说实话,这些东西离实际应用还很远。2025年,具身智能完成了从"技术演示"到"规模商用"的跨越。优必选的Walker S2工业人形机器人,累计订单金额已突破8亿元。智元机器人的灵犀X2机器人宣布第5000台量产下线,灵巧手等核心部件年交付量达数千台。产品方向也变了。不再是表演"后空翻"这些炫技动作,而是转向解决冲泡咖啡、踢球、分拣包裹这些"精细活"。特斯拉的Optimus Gen3通过多模态大模型实现复杂动作泛化,抓取成功率高达99.2%。星动纪元的星动L7全尺寸双足机器人,在京东"亚洲一号"仓库里执行分拣包裹、扫码等物流作业,错误率低于0.1%。更关键的是,"大脑-小脑-躯体"的全链路技术都实现了突破。"大脑"方面,多模态大模型的工程化落地,让机器人能通过自然语言理解并规划任务。"小脑"方面,运动控制与智能决策能力提升,使机器人能在开放环境中应对扰动。"躯体"方面,国产谐波减速器、仿生灵巧手、多维视触觉传感器等核心零部件性能达到国际领先水平。2025世界机器人大会显示,参展人形机器人整机企业从27家增至50家。资本也很活跃,前三季度国内机器人行业一级市场融资事件达610笔,融资总额约500亿元,都是去年同期的两倍以上。这个增长速度,还是挺猛的。成本革命除了这四个技术突破,2025年还有一个更底层的变化:成本革命。说起来,大模型的训练和推理成本一直是个大问题。但2025年,这个成本出现了断崖式下降。斯坦福报告显示,在MMLU基准测试中达到GPT-3.5水平的AI模型调用成本,从2022年11月的20美元/百万token,骤降至2024年10月的0.07美元/百万token,18个月内下降了280倍。这个下降速度,在科技史上都是罕见的。训练成本也大幅降低。DeepSeek-R1的增量训练成本约29.4万美元,而OpenAI训练GPT-4的成本超过1亿美元。虽然不能直接对比(因为GPT-4的规模更大),但这个数量级的差异还是很明显的。更关键的是,通过MoE架构、模型压缩、量化等技术,小模型的性能也在快速提升。面壁智能的MiniCPM-Llama3-V 2.5模型,用24亿参数实现百亿级性能,登顶国际开源榜单。这个模型已经搭载于小米、华为等终端设备,支持实时语音翻译与图像识别。这意味着,AI能力可以从云端下沉到端侧,拓展了应用边界。而且推理成本的下降,让很多以前"用不起"的场景变得可行。比如实时翻译、智能客服、个性化推荐这些需要大规模调用模型的场景,现在经济上可行了。 开源生态的崛起2025年的另一个重要变化,是开源生态的崛起。说起来,开源大模型一直存在,但2025年,开源模型与闭源模型的性能差距快速缩小。中国的开源模型全球下载量占比达17.1%,首次超越美国。智谱AI开源的GLM4.6,在编程能力上对标Claude Sonnet4,代码生成准确率达92.3%,支持8种主流编程语言。而且首次实现寒武纪芯片FP8+Int4混合量化部署,模型体积压缩至原体积1/5,推理速度提升3倍。蚂蚁集团开源的Ring1T preview,是全球首个开源万亿参数推理模型,在数学竞赛和编程测试中的表现逼近GPT-5。DeepSeek的R1论文在Nature杂志上发表,成为全球首个通过顶级期刊独立同行评审的主流大语言模型。这在整个AI行业都是前所未有的透明度。这些开源模型的崛起,降低了技术门槛,让中小企业和个人开发者也能用上顶级模型的能力。更重要的是,它们打破了闭源模型的技术垄断,推动整个行业的开放和进步。 产业落地的关键拐点有了这些技术突破和成本下降,产业落地自然水到渠成。2025年,AI在工业、医疗、金融、法律等关键领域实现了深度渗透。截至2025年9月,全国已建成3万多家智能工厂,覆盖80%以上的制造业行业大类,生产效率平均提升超22%。医疗领域,AI辅助放疗系统使中小医院可共享大医院专家经验,显著提升诊疗效率与精准度。金融领域,蚂蚁集团的风控大脑3.0,信贷欺诈识别准确率99.993%,跨境支付清算效率提升22倍。法律领域,英国浚哲律师事务所的律师通过AI工具完成96%的文书起草、案例研究及内部管理任务。应用规模也在快速增长。生成式AI用户规模在2025年前6个月激增106.6%,达5.15亿人,普及率升至36.5%。 治理与伦理的同步推进随着AI的广泛应用,治理和伦理也成了不可回避的话题。2025年,中国在政策与法规层面持续发力:3月发布《人工智能生成合成内容标识办法》,首次将传播平台纳入责任主体,实现从生成端到分发端的闭环监管。8月国务院印发《关于深入实施"人工智能+"行动的意见》,要求建立分类分级监管机制。10月《网络安全法》新增AI安全专章,明确滥用个人信息、生成违法内容的法律责任,该法将于2026年1月1日正式施行。欧盟《人工智能法案》也正式生效,按风险分级对AI系统实施监管,违规企业最高可处全球营业额7%的罚款。这些法规的出台,为AI的可持续发展提供了制度保障。 我的思考:2025年的本质回看2025年,AI发生了这么多变化,本质是什么?我想了很久,觉得核心在于两点。第一,AI从"工具"变成了"伙伴"。2025年之前,AI更像一个"工具"。你给它指令,它执行。它不会主动做什么,也不会超出你的预期。2025年,AI开始像一个"伙伴"。它能理解你的意图,主动规划任务,在出错时自我纠正,甚至在某些时候给你建议。这种转变,不是参数大了多少倍,而是AI学会了"思考"和"行动"。第二,AI从"奢侈品"变成了"日用品"。2025年之前,AI是"奢侈品"。训练一个顶级模型要几千万美元,调用一次API要几美分。只有大公司才玩得起。2025年,AI变成了"日用品"。开源模型性能逼近商用系统,推理成本下降280倍,端侧模型性能大幅提升。中小企业和个人开发者也能用上顶级模型的能力。这种转变,不是技术细节的优化,而是AI真正开始普惠。 2026年的趋势基于2025年的发展,2026年会有哪些趋势呢?我有几个判断。趋势一:多Agent协同成为主流。单一Agent会升级为"Agent矩阵",跨部门、跨系统协作处理复杂任务。比如营销Agent对接风控Agent,实现从获客到转化的全流程自动化。趋势二:低代码开发普及。中小企业通过Dify、微软Power Platform等工具,无需专业技术团队,就能快速搭建专属Agent,落地成本降低60%以上。趋势三:端侧AI成为标配。AI能力会大规模下沉到终端设备,手机、平板、电脑、汽车、眼镜都会内置AI能力。云边端协同会成为主流架构。趋势四:安全合规常态化。AI原生应用会内置数据隔离、端到端加密功能,90%以上金融、医疗企业会采用私有化部署的Agent方案。 最后2025年,AI完成了从"能用"到"好用"的质变。这个质变,不是某一项技术的突破,而是推理能力、多模态、Agent、具身智能、成本革命、开源生态等多个方向协同演进的结果。2026年,AI会如何发展?我觉得核心还是两个关键词:思考和行动。AI会思考得更深,行动得更准从"能用"到"好用",再到"离不开"。这或许就是AI时代的大趋势。
-
2025年又过去了,在过去的一年中,我们见证了AI的发展,见证了社区各种工具及服务的扩展,那在这一看中,你又学习到了哪些好的技术点,一起给大家分享一下吧~
-
(2026年1月发布) < 华为云Versatile智能体平台 体验入口>华为开发者空间 --开发平台--Versatile Agent (请在PC端打开) 版本概览 华为云Versatile智能体平台定位为一站式企业级智能体构建平台,倡导人人都能构建自己的企业级智能体。本次版本更新新增10+特性,侧重于在插件、资产中心、知识库、工作流节点等功能上进行了能力补齐,强化Versatile作为企业级agent平台的一体化开发能力,帮助用户构建更专业、更贴合业务需求的智能体。 新增重点特性介绍 01 团队共享应用/插件 资产中心· 应用广场/插件广场支持团队共享能力,可设置共享模式和共享范围。业务价值:由用户创建的应用、插件等资源,可在当前租户下的所有团队间共享使用,便于团队多成员快速调用,提升协作与效率。(备注:不支持跨租户共享) 02 订阅ROMA Connect MCP服务 资产中心· MCP广场支持订阅ROMA Connect的MCP服务:集成至资产中心-第三方展示;支持工具调测,在智能体中可以添加使用。业务价值:打通ROMA Connect MCP资源,帮助拓展智能体能力边界,提升Agent应用的工具调用能力。 03 对象管理/对象提取节点 配置管理· 新增对象管理:支持创建/编辑/删除对象。可在当前页面创建对象模板,并在相关节点中引用这些模板。业务价值:通过在对象提取节点快速引用模板,减少重复性工作,从而提高开发效率。 工作流应用·新增对象提取节点:工作流支持参数提取节点,用于提取指定对象中的参数。 可配置子工作流以进行参数的校验与校准,并发起用户交互。业务价值:通过使用该节点,简化复杂工作流的管理和维护,提高效率,同时减少配置错误的可能性。 04 多智能体应用新增调试 应用管理多智能体应用优化:支持调试功能业务价值:可查看试运行过程中的调试结果,直观了解多智能体的运行性能,便于开发者快速地追溯操作顺序并精确定位问题。 05 提示词引入变量 应用管理· Agent提示词支持引用自定义变量参数:在模型优先模式下,当用户为应用添加记忆并创建了变量后,可快速引用;同时支持用户在提示词输入框中输入变量。业务价值:支撑提示词创建时快捷选择变量,便于快速定义用户的某一行为或偏好,提升效率。 06 Agent工作流/插件支持参数配置 应用管理· Agent引用工作流、插件时支持参数配置:可配置参数默认值;对值比较稳定的参数,例如密钥等,支持隐藏可见性。业务价值:减少大模型的无效判断,提升插件、工作流的调用效率。针对不需要智能体动态提取的固定参数,提供“可见性”开关,避免参数值发生不必要的修改。 07 发布历史支持还原版本 应用管理· 发布历史中显示每个版本的修改描述:可查看智能体更新发布的历史记录,支持还原版本和删除操作。业务价值:清晰展现版本更新的过程信息;可辅助一键快速还原版本。 08 基于API创建插件 能力增强 组件库· 服务域名和基准URL支持定义变量值:添加变量后,可以在变量参数部分设置参数的描述;在工具调测时,可输入具体的参数值。业务价值:通过可定义变量,提升插件管理的灵活性和可维护性。 · 新增华为云认证:支持华为云IAM认证,通过IAM账号获取用户Token进行认证业务价值:丰富插件鉴权的方式,对接华为云IAM实现快速权限校验。 09 创建MCP支持streamableHttp 组件库· 基于空白模板创建MCP时,安装方式支持streamableHttp业务价值:丰富MCP服务的安装方式,适用于与已部署在外部环境的远程MCP服务器建立连接,例如,接入自主开发的基于streamable http协议的MCP服务。 10 知识库对接KooSearch 知识库· 外部知识库连接,支持对接华为云企业搜索服务KooSearch业务价值:增加知识库来源,快捷调用koosearch知识库平台,实现知识库资源高效共享。 · 知识库高级设置优化:Versatile企业版用户在创建知识库后,可以通过“高级配置”选项来修改精排模型。 11 多智能体运营运维 运营运维-观测· 观测支持上报和统计多智能体的数据信息。包括调用链管理、会话管理、应用指标统计、租户指标统计。业务价值:全面提示多智能体的运维管理能力,呈现关键使用数据,使运维人员能够快速识别性能瓶颈、优化问题。 12 模型配置支持深度思考 模型中心· 模型配置支持深度思考:功能开启时,大模型将首先进行深入的思考和推理,通过逐步拆解问题、梳理逻辑,生成一段详细的思维链内容,并在调试界面展示。业务价值:“深度思考”过程有助于提升最终输出答案的准确性和可靠性,确保用户获得更加精准的信息。 API1、新增获取知识库检索图片接口,可通过图片ID获取知识库检索图片。2、优化工作流/智能体接口:调用工作流接口新增createdTime参数,调用智能体应用新增histories参数。 审计:支持云审计的关键操作:通过云审计服务,可记录与Versatile相关的操作事件,便于日后的查询、审计和回溯。 点击可前往>>华为云Versatile智能体平台 官网
AgentArts运营小助手
发表于2026-01-22 15:44:22
2026-01-22 15:44:22
最后回复
yd_26009237
2026-03-03 17:22:30
80 11 -
总体说明 TensorFlow 1.15训练/在线推理场景需准备的比对数据文件如下表所示文件说明获取方式TensorFlow原始训练网络npy文件标杆数据准备GPU侧npy文件计算图文件(*.txt)计算图文件准备NPU侧dump数据和计算图文件通过昇腾AI处理器运行生成的训练网络dump数据文件待比对数据 准备GPU侧npy文件 生成npy文件:a. 修改TensorFlow训练/在线推理脚本,添加debug选项设置b. 执行训练/在线推理脚本c. 训练/在线推理任务停止后,命令行视图自动进入tfdbg调试命令行交互模式,执行run命令For more details, see help.tfdbg> runrun命令执行完成后,可以依次执行lt命令查询已存储的张量,执行pt命令查看已存储的张量内容,保存数据为npy格式文件 收集npy文件:a. 执行lt > gpu_dump命令将所有tensor的名称暂存到自定义名称的gpu_dump文件里Wrote output to tensor_nameb. 重新开启一个命令行窗口,在新的命令行窗口进入gpu_dump文件所在目录(默认在训练/在线推理脚本所在目录),执行下述命令,用以生成在tfdbg命令行执行的命令timestamp=$[$(date +%s%N)/1000] ; cat gpu_dump | awk '{print "pt",$4,$4}' | awk '{gsub("/", "_", $3);gsub(":", ".", $3);print($1,$2,"-n 0 -w "$3".""'$timestamp'"".npy")}'c. 复制所有生成的存储tensor的命令(所有以“pt”开头的命令),回到tfdbg命令行视图所在窗口,粘贴执行,即可存储所有npy文件。存储路径为训练/在线推理脚本所在目录.d.检查生成的npy文件命名是否符合{op_name}.{output_index}.{timestamp}.npy格式准备NPU侧dump数据和计算图文件 dump参数配置:a. Estimator模式:通过NPURunConfig中的dump_config采集dump数据,在创建NPURunConfig之前,实例化一个DumpConfig类进行dump的配置(包括配置dump路径、dump哪些迭代的数据、dump算子的输入还是输出数据等)from npu_bridge.npu_init import *# dump_path:dump数据存放路径,该参数指定的目录需要在启动训练/在线推理的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限# enable_dump:是否开启dump功能# dump_step:指定采集哪些迭代的dump数据# dump_mode:dump模式,取值:input/output/alldump_config = DumpConfig(enable_dump=True, dump_path = "/home/output", dump_step="0|5|10", dump_mode="all")config = NPURunConfig( dump_config=dump_config, session_config=session_config )b. sess.run模式:通过session配置项enable_dump、dump_path、dump_step、dump_mode配置dump参数config = tf.ConfigProto()custom_op = config.graph_options.rewrite_options.custom_optimizers.add()custom_op.name = "NpuOptimizer"custom_op.parameter_map["use_off_line"].b = Truecustom_op.parameter_map["enable_dump"].b = Truecustom_op.parameter_map["dump_path"].s = tf.compat.as_bytes("/home/output") custom_op.parameter_map["dump_step"].s = tf.compat.as_bytes("0|5|10")custom_op.parameter_map["dump_mode"].s = tf.compat.as_bytes("all") custom_op.parameter_map["dump_layer"].s = tf.compat.as_bytes("nodename1 nodename2 nodename3")config.graph_options.rewrite_options.remapping = RewriterConfig.OFFwith tf.Session(config=config) as sess: print(sess.run(cost)) 获取dump数据文件和计算图文件:a. 执行训练/在线推理脚本,生成dump数据文件和计算图文件b. 选取计算图文件c. 选取dump数据文件了解更多请查阅昇腾社区文档:cid:link_1
-
1 月 17 日下午,G-Star Gathering Day 广州站在广州(国际)科技成果转化示范基地三楼星空间顺利举办。本次活动由 AtomGit 及华为云开发者联盟 HCDG 主办,吸引了众多开发者、创业者及技术爱好者到场参与。围绕「探索 AI 创意落地与智能体构建的无限可能」这一主题,活动通过主题演讲、实操演示、闪电分享及开放交流等多种形式,深度链接开源生态与 AI 应用实践,为现场伙伴带来了一场高密度的技术盛宴。开场致辞:共建开放、多元的开发者生态活动开始,主持人张润迪对到场嘉宾与开发者表示欢迎。随后,华为云开发者支持与运营部部长林华鼎为活动致辞,从生态建设、开发者成长等维度,分享了华为云对开发者社区的长期投入与期待,并现场邀请开发者加入体验官计划,与开发者共创共享易用好用的开发工具。 随后,联合主办方广州天河科创聚能运营管理有限公司对天河基地的政策支持体系也进行了详细解读。 技术分享:从开源生态到智能体实践AtomGit 深圳办总经理徐建国围绕 AtomGit 的平台定位与生态布局,系统介绍了其作为 AI 原生开源社区的核心能力与发展成果。通过分享 G-Star 开源摘星计划的运营机制与数据表现,展示了 AtomGit 如何从项目孵化、社区运营、资源对接等多维度赋能开源项目成长,构建开发者、企业与生态伙伴协同共建的良性循环,助力中国开源生态实现规模化与高质量发展。 华为云 HCDE、HCDG 胡琦从 Agent 基础原理入手,深入解析了 Astron Agent 这一企业级智能体工作流平台的整体架构与核心能力,重点介绍其在模型管理、AI 工作流编排、MCP 工具集与 RPA 自动化等方面的技术优势。通过真实案例与部署演示,生动展示了如何基于 Astron 快速搭建可规模化落地的智能体应用,帮助开发者将“智能体”从概念转化为可用产品。 华为云开发者生态运营总监童得力介绍华为开发者空间的整体能力,基于开发者空间为开发者提供一系列的工具和资源,包括开箱即用的开发环境、免费算力、预置工具链和丰富的案例库。通过现场实操演示 CodeArts代码智能体,现场指导开发者体验代码智能体的代码开发、调测和修改功能。与会的开发者表示,CodeArts代码智能体能帮助开发者提高开发效率,快速完成开发任务,降低 AI 开发门槛,实现高效落地智能应用。 CodeArts代码智能体是一款集代码大模型、AI IDE、代码 Agent 为一体的智能编码产品。面向代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码调试、代码翻译、代码检查、代码优化等场景功能,为开发者提高研发效率,提供极致的智能化编码体验。(点击参与体验) AtomGit 深圳办技术总监、华为云 HCDE 白晓明从行业趋势出发,深入分析了“跨平台 + 鸿蒙”成为必然选择的背景与价值,并系统对比了 Flutter、React Native、uni-app-x、Kuikly 等主流框架在鸿蒙生态中的适配成熟度与适用场景。他结合实践经验,为不同技术团队提供了清晰的技术选型建议,同时分享开源社区建设与训练营计划,鼓励开发者从使用者走向共建者,深度参与鸿蒙生态建设。 闪电演讲 :开发者真实经验碰撞在最具活力的闪电演讲环节,多位开发者主动上台,用 8 分钟分享自己的项目经验、踩坑故事与成长心得,涵盖 AI 应用、开源实践、创业探索等多个方向。随后大家围绕技术选型、项目落地、社区参与展开深度交流,建立起更多真实链接。 G-Star Gathering Day 不只是一次线下聚会,更是一次技术连接、思想碰撞与生态共建的开始。期待下一站,我们继续相聚,共同探索 AI 与开源的无限可能
-
CodeArts代码智能体启动公测!这是一款集AI IDE、Code Agent、代码大模型为一体的智能编码产品,它面向项目级代码生成、代码续写、研发知识问答、单元测试用例生成、代码解释、代码注释、代码调试、代码翻译、代码检查、代码优化等场景,依据开发者输入的需求描述,准确且高效地生成高质量代码, 如同开发者身边的专属技术顾问。为了让CodeArts产品能力更贴合用户应用场景、进一步提升体验,我们发起本次产品体验官招募活动,邀请各位有热情、有想法的开发者们加入CodeArts代码智能体体验官阵营,提出真实的产品改进意见,以帮助产品开发和优化迭代,合力构建易用、好用、开放的AI Coding平台。点此立即报名体验:cid:link_1活动时间:2026.1.16-2026.2.28活动流程:1、 点击上方按钮完成报名后,访问链接免费开通服务2、 下载安装,参照官网帮助文档(内含最佳实践)或收录进案例中心的实操案例,进行产品深度使用体验;同时需创建至少一个应用;3、 将应用运行的截图发送至活动指定评论区,跟帖评论体验感受,可以围绕体验流程、操作步骤(搭配产品界面截图)等主题;4、在官网云声·建议平台,反馈产品优化建议。包括:交互体验、感官体验、bug类、需求类、能力创新类等,(填写时,关联产品/功能 选择“CodeArts代码智能体”) 并标明以【CodeArts代码智能体产品体验官】为开头,示例:【CodeArts代码智能体产品体验官】整体体验不错,建议考虑XXX场景,实现XXX能力等等。) (CodeArts代码智能体产品体验交流群) 完整完成了以上四步体验任务的开发者,将参与评奖,奖项设置奖项设置获奖要求获奖名额激励礼品礼品示例高价值建议奖被产品研发评选为高价值需求3每人价值500元开发者礼包1份华为手环9NFC版(黑色)华为云云宝一套 开发者定制鼠标建议贡献排名奖被采纳建议数≥3条,且根据积分*排名TOP55每人价值200元开发者礼包1份练秋湖纪念水杯U型按摩枕开发者定制鼠标完成任务激励前50名完整完成任务50每人价值20元开发者礼品1份开发者鼠标垫建议采纳奖通过官网云声·建议平台所提的建议被采纳100每人价值50元开发者礼品1份开发者鼠标说明1、每条被采纳建议累计1积分,被采纳建议数统计截止时间为2026年2月28日24点;2、若出现积分相同且排名一致的情况,因奖品数量有限,根据先到先得原则进行发放;3、同一用户仅限获评一个奖项;4、 如礼品库存不足将替换成等价值礼品活动流程:活动时间:2026年1月16日-2月28日联合评审:2026年3月1日-3月15日奖项公示:2026年3月15日-3月20日奖品发放:获奖名单公布后5个工作日内寄出 关于华为云CodeArts代码智能体平台下载安装指引页面:cid:link_5帮助文档:cid:link_2CodeArts代码智能体产品体验指定评论区:cid:link_4
-
自动迁移方式迁移操作导入自动迁移的库代码。在训练入口.py文件的首行,插入以下引用内容。例如train.py中的首行插入以下引用内容。import torchimport torch_npufrom torch_npu.contrib import transfer_to_npu .....迁移操作完成。请参考训练配置及原始脚本提供的训练流程,在昇腾NPU平台直接运行修改后的模型脚本训练完成后,迁移工具自动保存权重成功,说明迁移成功。若迁移失败,请参考迁移异常处理进行解决迁移异常处理如果模型包含评估、在线推理功能,也可在对应脚本中导入自动迁移库代码,并通过对比评估推理结果和日志打印情况,判断与GPU、CPU是否一致决定是否迁移成功。若训练过程中提示部分CUDA接口报错,可能是部分API(算子API或框架API)不支持引起,用户可参考以下方案进行解决PyTorch GPU2Ascend工具迁移方式进入迁移工具所在路径cd Ascend-cann-toolkit /ascend-toolkit/latest/tools/ms_fmk_transplt/ #${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。启动迁移任务./pytorch_gpu2npu.sh -i /home/username/fmktransplt -o /home/username/fmktransplt_output -v 2.1.0 [-s] [distributed -m /home/train/train.py -t model] # /home/username/fmktransplt为原始脚本路径,/home/username/fmktransplt_output为脚本迁移结果输出路径,2.1.0为原始脚本框架版本,/home/train/train.py为训练脚本的入口文件,model为目标模型变量名完成脚本迁移,进入脚本迁移结果的输出路径查看结果件请参考训练配置及原始脚本提供的训练流程,在昇腾NPU平台直接运行修改后的模型脚本。成功保存权重,说明保存权重功能迁移成功。训练完成后,迁移工具自动保存权重成功,说明迁移成功。训练配置为了提升模型运行速度,建议开启使用二进制算子,请参考安装CANN章节安装二进制kernels算子包后,参考如下方式开启a.单卡场景下,修改训练入口文件例如main.py文件,在import torch_npu下方添加如下加粗字体代码import torchimport torch_nputorch_npu.npu.set_compile_mode(jit_compile=False)......b.多卡场景下,如果拉起多卡训练的方式为mp.spawn,则torch_npu.npu.set_compile_mode(jit_compile=False)必须加在进程拉起的主函数中才能使能二进制,否则使能方式与单卡场景相同if is_distributed: mp.spawn(main_worker, nprocs=ngpus_per_node, args=(ngpus_per_node, args))else: main_worker(args.gpu, ngpus_per_node, args)def main_worker(gpu, ngpus_per_node, args): # 加在进程拉起的主函数中 torch_npu.npu.set_compile_mode(jit_compile=False) ......用户训练脚本中包含昇腾NPU平台不支持的torch.nn.DataParallel接口,需要手动修改为torch.nn.parallel.DistributedDataParallel接口执行多卡训练,参考GPU单卡脚本迁移为NPU多卡脚本进行修改若用户训练脚本中包含昇腾NPU平台不支持的amp_C模块,需要用户手动删除import amp_C相关代码内容后,再进行训练若用户训练脚本中包含torch.cuda.get_device_capability接口,迁移后在昇腾NPU平台上运行时,会返回“None”值torch.cuda.get_device_properties接口迁移后在昇腾NPU平台上运行时,返回值不包含minor和major属性,建议用户注释掉调用minor和major属性的代码了解更多请查阅昇腾社区文档:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/850alpha002/devaids/migrationtools/atlasfmkt_16_0019.html
-
迁移分析 PyTorch Analyse工具提供分析脚本,帮助用户在执行迁移操作前,分析基于GPU平台的PyTorch训练脚本中API、三方库套件、亲和API分析以及动态shape的支持情况前提条件 使用PyTorch Analyse工具前须安装如下依赖。如下命令若使用非root用户安装,需要在安装命令后加上--user,例如:pip3 install pandas --user,安装命令可在任意路径下执行pip3 install pandas #pandas版本号需大于或等于1.2.4pip3 install libcst #Python语法树解析器,用于解析Python文件pip3 install prettytable #将数据可视化为图表形式pip3 install jedi #三方库套件、亲和API分析时必须安装启动分析任务进入分析工具所在路径cd Ascend-cann-toolkit /ascend-toolkit/latest/tools/ms_fmk_transplt/ #${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。启动分析任务./pytorch_analyse.sh -i /home/xxx/analysis -o /home/xxx/analysis_output -v 2.1.0 [-m torch_apis] # /home/xxx/analysis为待分析脚本路径,/home/xxx/analysis_output为分析结果输出路径,2.1.0为待分析脚本框架版本,torch_apis为分析模式分析报告简介 分析模式为“torch_apis”时,分析结果如下所示├── xxxx_analysis // 分析结果输出目录│ ├── cuda_op_list.csv //CUDA API列表│ ├── unknown_api.csv //支持存疑的API列表│ ├── unsupported_api.csv //不支持的API列表│ ├── api_precision_advice.csv //API精度调优的专家建议│ ├── api_performance_advice.csv //API性能调优的专家建议│ ├── pytorch_analysis.txt // 分析过程日志分析模式为“third_party”时,分析结果如下所示├── xxxx_analysis // 分析结果输出目录│ ├── cuda_op.csv //CUDA API列表│ ├── framework_unsupported_op.csv //框架不支持的API列表│ ├── full_unsupported_results.csv //全量不支持的API列表│ ├── migration_needed_op.csv //待迁移的API列表│ ├── unknown_op.csv //支持情况存疑的API列表│ ├── pytorch_analysis.txt // 分析过程日志分析模式为“affinity_apis”时,分析结果如下所示├── xxxx_analysis // 分析结果输出目录│ ├── affinity_api_call.csv // 可替换为亲和API的原生API调用列表│ ├── pytorch_analysis.txt // 分析过程日志分析模式为“dynamic_shape”时,分析结果如下所示├── xxxx_analysis // 分析结果输出目录│ ├── 生成脚本文件 // 与分析前的脚本文件目录结构一致│ ├── msft_dynamic_analysis│ ├── hook.py //包含动态shape分析的功能参数│ ├── __init__.py了解更多请查阅昇腾社区文档:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/850alpha002/devaids/migrationtools/atlasfmkt_16_0018.html
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签