Skip to content

鸿蒙 AI 能力

1. 鸿蒙 AI 生态概述

1.1 AI 在鸿蒙中的定位

鸿蒙 AI 架构:
┌──────────────────────────────────────────────────┐
│  应用层 AI 组件                                    │
│  ├── ArkAI 组件库(语音/图像/文本)                │
│  ├── AI 推荐引擎                                   │
│  └── AI 搜索                                      │
├──────────────────────────────────────────────────┤
│  端侧 AI 推理框架                                  │
│  ├── mindspore-lite(端侧推理引擎)               │
│  ├── Ascend NPU 驱动                              │
│  ├── CPU/GPU 通用推理                              │
│  └── AI 模型管理(加载/部署/卸载)                 │
├──────────────────────────────────────────────────┤
│  系统级 AI 服务                                    │
│  ├── 小艺(Celia)AI 助手                          │
│  ├── AI 输入法                                     │
│  ├── AI 相机(场景识别/美颜)                      │
│  ├── AI 音频(降噪/语音识别)                      │
│  └── AI 系统(智能调度/能耗优化)                  │
├──────────────────────────────────────────────────┤
│  云侧 AI 服务                                      │
│  ├── AGC AI 服务(云侧大模型)                     │
│  ├── AI 模型训练                                   │
│  └── AI 知识更新                                   │
└──────────────────────────────────────────────────┘

2. 端侧 AI 推理

2.1 MindSpore Lite

MindSpore Lite 是鸿蒙的端侧 AI 推理框架:

┌──────────────────────────────────────┐
│  MindSpore Lite                       │
│  ├── 模型格式:.om(MindSpore 优化格式)│
│  ├── 推理引擎:CPU / GPU / NPU        │
│  ├── 支持框架:PyTorch / TensorFlow / ONNX │
│  ├── 量化支持:INT8 / FP16 / BF16     │
│  └── 硬件适配:Kirin NPU / CPU / GPU  │
└──────────────────────────────────────┘

2.2 端侧 AI 模型使用

arkts
// 1. 加载 AI 模型
import { aiModel } from '@kit.AiKit';

async function loadModel() {
  const model = await aiModel.loadModel({
    modelPath: '/data/user/0/com.example/models/resnet50.om',
    provider: aiModel.Provider.MINDSPORE,
    config: {
      deviceTypes: [aiModel.DeviceType.NPU], // 优先使用 NPU
      quantization: aiModel.QuantizationType.INT8
    }
  });
  return model;
}

// 2. 创建推理会话
async function createSession(model: aiModel.Model) {
  const session = await model.createSession({
    inputShape: [1, 224, 224, 3],  // NCHW 格式
    outputShape: [1, 1000],
    maxMemorySize: 1024 * 1024 * 64 // 64MB
  });
  return session;
}

// 3. 执行推理
async function predict(session: aiModel.Session, input: ArrayBuffer): Promise<Float32Array> {
  // 创建输入 Tensor
  const inputTensor = await aiModel.createTensor({
    type: aiModel.TensorType.FLOAT32,
    shape: [1, 224, 224, 3],
    data: input
  });

  // 执行推理
  const outputTensors = await session.predict([inputTensor]);

  // 获取结果
  const result = outputTensors[0].getData() as Float32Array;
  return result;
}

2.3 端侧模型优化

端侧模型优化策略:
├── 模型量化:FP32 → INT8,减少 75% 内存,加速 2-3x
├── 模型剪枝:去除不重要的神经元
├── 知识蒸馏:大模型 → 小模型
├── 算子融合:减少内核启动开销
├── NPU 加速:利用 Kirin NPU 硬件加速
├── 动态图优化:编译期优化计算图
└── 缓存:复用中间结果

3. AI 组件集成

3.1 语音识别组件

arkts
// 语音识别
import { speech } from '@kit.AiKit';

class SpeechService {
  private recognizer: speech.Recognizer | null = null;
  private isListening: boolean = false;

  async startRecognition() {
    this.recognizer = await speech.createRecognizer({
      language: 'zh-CN',
      sampleRate: 16000,
      format: speech.AudioFormat.PCM
    });

    this.recognizer.on('result', (text: string) => {
      console.log('识别结果: ' + text);
    });

    this.recognizer.on('error', (err: Error) => {
      console.error('识别错误: ' + err.message);
    });

    this.isListening = true;
    await this.recognizer.start();
  }

  async stopRecognition() {
    if (this.recognizer && this.isListening) {
      this.isListening = false;
      await this.recognizer.stop();
    }
  }
}

3.2 图像识别组件

arkts
// 图像识别(物体检测/场景识别)
import { vision } from '@kit.AiKit';

class VisionService {
  private detector: vision.ObjectDetector | null = null;

  async init() {
    this.detector = await vision.createObjectDetector({
      modelPath: '/models/object_detection.om',
      provider: vision.Provider.MINDSPORE
    });
  }

  async detect(image: PixelMap): Promise<vio.Object[]> {
    if (!this.detector) throw new Error('Detector not initialized');

    const results = await this.detector.detect(image, {
      confidenceThreshold: 0.7,
      maxResults: 10
    });

    return results.map(r => ({
      label: r.label,
      confidence: r.confidence,
      boundingBox: r.boundingBox
    }));
  }
}

3.3 AI 推荐组件

arkts
// AI 推荐
import { recommend } from '@kit.AiKit';

class RecommendationService {
  private recommender: recommend.Recommender | null = null;

  async init() {
    this.recommender = await recommend.createRecommender({
      modelPath: '/models/recommend.om',
      userFeatures: ['age', 'gender', 'history'],
      itemFeatures: ['category', 'price', 'tags']
    });
  }

  async recommend(userId: string, count: number = 10): Promise<recommend.Recommendation[]> {
    const recommendations = await this.recommender!.recommend(
      { userId: userId },
      count
    );
    return recommendations;
  }

  async updateFeedback(userId: string, itemId: string, rating: number) {
    await this.recommender!.updateFeedback(userId, itemId, rating);
  }
}

4. 端云协同 AI

4.1 端云协同架构

端云协同策略:
┌───────────────────────┬───────────────────┐
│      端侧 (On-Device) │   云侧 (Cloud)     │
├───────────────────────┼───────────────────┤
│ 轻量模型推理           │  大模型推理          │
│ 隐私数据处理           │  大数据训练          │
│ 离线可用               │  模型更新/训练       │
│ 低延迟 (< 100ms)      │  高复杂度计算        │
│ 节省带宽               │  知识更新            │
└───────────────────────┴───────────────────┘

协同策略:
├── 简单任务 → 端侧(离线、低延迟、隐私)
├── 复杂任务 → 云端(大模型、高准确度)
├── 反馈循环 → 端侧结果反馈到云端(模型优化)
└── 模型同步 → 云端更新推送到端侧

4.2 端云协同示例

arkts
// 端云协同推理
import { aiInference } from '@kit.AiKit';

async function smartInference(image: PixelMap): Promise<InferenceResult> {
  // 1. 先尝试端侧推理
  try {
    const onDeviceResult = await aiInference.onDevicePredict(image);
    if (onDeviceResult.confidence > 0.8) {
      return onDeviceResult;  // 端侧置信度高,直接使用
    }
  } catch (e) {
    // 端侧推理失败
  }

  // 2. 端侧置信度低,切换到云端
  const cloudResult = await aiInference.cloudPredict(image);
  return cloudResult;
}

// 结果反馈(用于模型优化)
async function feedbackResult(result: InferenceResult) {
  if (result.isCloudResult) {
    // 云端推理结果反馈到云端,用于模型优化
    await aiInference.sendFeedback({
      image: result.imageHash,
      prediction: result.prediction,
      confidence: result.confidence
    });
  }
}

5. AI 应用场景

5.1 AI 相机

AI 相机能力:
├── 场景识别:自动识别场景(风景/人像/美食)
├── 美颜:AI 美颜/瘦脸/大眼
├── HDR:AI 多帧合成 HDR
├── 夜景:AI 夜景增强
├── 物体检测:自动对焦/测光到物体
├── 文字识别:OCR 实时识别
└── 生成式 AI:AI 消除/AI 扩图

5.2 AI 输入法

AI 输入法能力:
├── 语音转文字:实时语音识别
├── 智能预测:基于上下文的词组预测
├── 跨语言翻译:实时翻译
├── 手写识别:手写转文字
└── 表情推荐:根据语境推荐表情

5.3 AI 系统

AI 系统优化:
├── 智能调度:AI 调度 CPU/GPU/NPU 资源
├── 能耗优化:AI 预测用户习惯,优化功耗
├── 内存优化:AI 预测内存需求,预加载
├── 存储优化:AI 预测访问模式,预加载数据
└── 网络优化:AI 预测网络需求,预加载内容

6. AI 开发指南

6.1 开发流程

AI 应用开发流程:
┌─────────────────────────────────────────────────────┐
│  1. 模型选择/训练                                  │
│     → 云端训练大模型 → 导出 .om 格式               │
├─────────────────────────────────────────────────────┤
│  2. 模型优化                                      │
│     → 量化(FP32 → INT8)                          │
│     → 剪枝/蒸馏                                    │
│     → 算子融合                                    │
├─────────────────────────────────────────────────────┤
│  3. 端侧部署                                      │
│     → 模型打包到应用                               │
│     → MindSpore Lite 加载                          │
│     → NPU/CPU/GPU 适配                            │
├─────────────────────────────────────────────────────┤
│  4. 推理集成                                      │
│     → 创建推理会话                                 │
│     → 输入预处理                                   │
│     → 执行推理                                     │
│     → 结果后处理                                   │
├─────────────────────────────────────────────────────┤
│  5. 性能优化                                      │
│     → NPU 硬件加速                                │
│     → 模型缓存                                    │
│     → 批量推理                                    │
│     → 异步推理                                    │
└─────────────────────────────────────────────────────┘

6.2 模型格式

格式说明适用场景
.omMindSpore 优化模型鸿蒙端侧(推荐)
.onnxONNX 通用模型跨平台推理
.tfliteTensorFlow LiteAndroid/iOS
.ptPyTorch 模型训练阶段
.pbTensorFlow 模型训练/转换阶段

7. 🎯 面试高频考点

Q1: 鸿蒙端侧 AI 推理的工作原理?

答要点

  • 使用 mindspore-lite 端侧推理引擎
  • 模型格式为 .om(MindSpore 优化格式)
  • 支持 NPU/CPU/GPU 多种硬件加速
  • 支持 INT8/FP16 量化,减少内存和加速推理
  • 通过 @kit.AiKit 加载、创建会话、执行推理
  • 与云端协同:简单任务端侧,复杂任务云端

Q2: 端云协同 AI 的优势?

答要点

  • 延迟:端侧推理低延迟(< 100ms),适合实时场景
  • 隐私:隐私数据在端侧处理,不上传云端
  • 离线:端侧无需网络,离线可用
  • 成本:端侧推理减少云端计算成本
  • 准确度:云端大模型提供高准确度
  • 自适应:根据置信度自动选择端侧或云端

Q3: 端侧模型如何优化?

答要点

  • 量化:FP32 → INT8,减少 75% 内存,加速 2-3x
  • 剪枝:去除不重要的神经元
  • 知识蒸馏:大模型 → 小模型
  • 算子融合:减少内核启动开销
  • NPU 加速:利用 Kirin NPU 硬件加速
  • 缓存:复用中间结果和输出

💡 面试提示:鸿蒙 AI 是前沿方向。重点掌握 端侧推理框架(mindspore-lite)端云协同策略模型优化方法。展示对鸿蒙 AI 生态的理解。