【爱克斯开发板试用】Intel Open Model Zoo英特尔训练模型库验证与Open5GS网元部署

witt.xu 更新于 7月前
作者:徐万腾  周峰  费颖超   公司:东方通信股份有限公司 

一、前言

    本次使用的开发板型号为AIxBoard-N5105,开发公司为蓝蛙智能。蓝蛙智能作为英特尔OpenVINO官方技术伙伴,在2023年推出英特尔数字化开发套件爱克斯板AIxBoard-N5105。作为入门级人工智能应用和边缘智能设备,爱克斯板能完美胜人工智能学习、开发、实训、应用等不同应用场景。

二、产品开箱展示

三、Intel Open Model Zoo英特尔训练模型库验证

    本次首选Intel Open Model Zoo英特尔训练模型库(部署流程可参考:https://github.com/openvinotoolkit/open_model_zoo),挑选部分实验进行验证,测试开发板在人工智能入门学习场景下的应用;

3.1   speech_recognition_quartznet_demo(语音识别实验)

    该实验读取标准化音频信号,输出解码的文本。使用Wav2Vec 模型(轻量型)适合边缘计算,运行命令如下:

python3 speech_recognition_quartznet_demo.py -m ./public/quartznet-15x5-en/FP16/quartznet-15x5-en.xml -i clean007.wav

    语音识别实验效果如图(红框为语音转文字内容):

3.2   face_recognition_demo(人脸识别演示)

    该实验检测输入的视频或图像中的人脸,并可通过构建数据库,判断是谁,人脸识别技术广泛用于门禁系统、刷脸支付、无人超市等场景中。运行命令如下:

python face_recognition_demo.py -i head-pose-face-detection-female-and-male.mp4 -m_fd ./intel/face-detection-retail-0004/FP16/face-detection-retail-0004.xml -m_lm ./intel/landmarks-regression-retail-0009/FP16/landmarks-regression-retail-0009.xml -m_reid ./intel/face-reidentification-retail-0095/FP16/face-reidentification-retail-0095.xml

3.3   machine_translation_demo(机器翻译演示)

    程序输入为原始语言文本,翻译成目标国家语言的文本。运行命令如下:

#以下为英语翻译为德语
python3 machine_translation_demo.py -d CPU   -i "a sample english text" -m ./intel/machine-translation-nar-en-de-0002/FP16/machine-translation-nar-en-de-0002.xml --tokenizer-src ./intel/machine-translation-nar-en-de-0002/tokenizer_src/ --tokenizer-tgt ./intel/machine-translation-nar-en-de-0002/tokenizer_tgt/
#以下为英语翻译为俄语
python3 machine_translation_demo.py -d CPU   -i "a sample english text" -m ./intel/machine-translation-nar-en-ru-0002/FP16/machine-translation-nar-en-ru-0002.xml --tokenizer-src ./intel/machine-translation-nar-en-ru-0002/tokenizer_src/ --tokenizer-tgt ./intel/machine-translation-nar-en-ru-0002/tokenizer_tgt/

    英文翻译为俄文结果演示:

    英文翻译为德文结果演示:

3.4   sound_classification_demo(声音分类演示)

根据实验加载模型的label,对源声音数据进行分类,查找对应匹配的label,每秒检查推理出声音的类型Class。运行命令如下:

python3 sound_classification_demo.py -i clean007.wav -m ./public/aclnet/FP16/aclnet.xml -d CPU --sample_rate 16000

3.5    其他验证实验说明

        除了上述实验,我们还在该开发板上部署了近期非常流行的对话模型:ChatGPT2和清华ChatGLM。其中清华ChatGLM最小需要6G以上显存,暂时无法启动;ChatGPT2 117M模型文件需要内存4G以上,可以正常运行。从实验案例验证来看,AIxBoard(爱克斯板)很适合作为个人开发,及入门的边缘计算项目。

四、Open5GS网元部署

    部署前准备:k8s dashboard版本为v2.5.1;

4.1 NFV+5GC组网架构

    NFV+5GC组网架构图如下:

1.以容器方式运行的采用绿色。以K8S运行的采用淡绿色,以进程方式运行的采用黄色;

2. UDMA首次启动会通过ODBC连接网管MySQL,后续通过UDR访问MySQL;

3.Mysql通过物理机IP和UDR容器(物理机IP)进行通信,Redis雷同;

4.业务Pod都是以Macvlan方式运行;

5.RAN和DN目前是固定172网段,故跟192网段不同网段;

6.验证在开发板上部署open5gs各网元;


4.2 新建命名空间open5gs

在左边下拉框中找到命名空间,然后点击右上角的“+”号进入创建操作:

    点击后进入以下界面:

选择输入并创建选项,输入namespace配置,点击上传,命名空间创建完成。

选择刚刚创建的open5gs命名空间,后续操作都在该命名空间下操作。

点击下图红框处。

以下部署网元也是进入到此页面,不再赘述,各网元所需yaml文件已提供模板,下文只讲各网元可配的地方。

4.3 部署mongodb

deploy-mongodb.yaml文件内容及详细说明如下:

apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: open5g***ongodb spec: #pod 网络配置 config: '{ "cniVersion": "0.3.0", "type": "macvlan", "master": "enp3s0f0", "mode": "bridge", "ipam": { "type": "host-local", "subnet": "10.8.62.0/24", "rangeStart": "10.8.62.120", "rangeEnd": "10.8.62.120", "routes": [], "gateway": "10.8.62.1" } }' --- #用于webui访问的service apiVersion: v1 kind: Service metadata: name: open5g***ongodb spec: ports: - port: 27017 protocol: TCP targetPort: 27017 selector: k8s-app: open5g***ongodb type: ClusterIP --- #api版本 apiVersion: v1 #资源类型 kind: Pod #资源元数据 metadata: #注释信息,关联上面的网卡配置 annotations: k8s.v1.cni.cncf.io/networks: open5g***ongodb #pod标签,与上面资源选择器的匹配标签对应 labels: k8s-app: open5g***ongodb #pod名 name: open5g***ongodb #pod规格 spec: #重启策略 restartPolicy: Always #容器列表 containers: #- image: 10.8.52.202/open5g***ongo - image: 10.8.52.202/open5g***ongo #容器端口 ports: - containerPort: 27017 protocol: TCP #容器名 name: open5g***ongodb #计算资源 resources: #资源限制 limits: cpu: 300m memory: 300Mi #资源请求 requests: cpu: 300m memory: 300Mi #volume挂载 volumeMounts: #被挂载的volume名 - name: config-volume #挂载至容器的目录 mountPath: /data/db #volume列表 volumes: #volume名 - name: config-volume #volume类型,这里暂时使用宿主机目录 hostPath: #指定宿主机目录,若宿主机没这个目录,k8s会新建这个目录 path: /root/open5gs-k8***ongodb

把以上yaml文件内容**到dashboard中,如下:

然后点击上传即可。

4.4 部署open5gs各网元

首先以amf为例,创建configmap,作为amf的配置文件,创建方法与上面相同,配置文件如下:

apiVersion: v1 kind: ConfigMap metadata: name: amf-conf namespace: open5gs data: amf.yaml: |- level: trace logger: file: /var/log/open5gs/amf.log amf: **i: - addr: 10.8.62.102 port: 7777 ngap: - addr: 10.8.62.102 guami: - plmn_id: mcc: 901 mnc: 70 amf_id: region: 2 set: 1 tai: - plmn_id: mcc: 901 mnc: 70 tac: 1 plmn_support: - plmn_id: mcc: 901 mnc: 70 s_nssai: - sst: 1 security: integrity_order : [ NIA2, NIA1, NIA0 ] ciphering_order : [ NEA0, NEA1, NEA2 ] network_name: full: Open5GS amf_name: open5gs-amf0 nrf: **i: - addr: - 10.8.62.106 port: 7777 parameter: max: pool: time:

滚动至下面可以查看到刚刚创建的configmap。

然后再部署amf网元,配置如下:

apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: open5gs-amf spec: #pod 网络配置 config: '{ "cniVersion": "0.3.0", "type": "macvlan", "master": "enp3s0f0", "mode": "bridge", "ipam": { "type": "host-local", "subnet": "10.8.62.0/24", "rangeStart": "10.8.62.102", "rangeEnd": "10.8.62.102", "routes": [], "gateway": "10.8.62.1" } }' --- apiVersion: v1 kind: Pod metadata: annotations: k8s.v1.cni.cncf.io/networks: open5gs-amf name: open5gs-amf labels: app: open5gs-amf spec: restartPolicy: Always #由于网络方案未定,手动配ip需要时间,init容器用于等待ip配置 initContainers: - image: 10.8.52.202/library/busybox name: wait-network command: ['sh', '-c', 'while true; do ping 10.8.62.102 -c 1 -W 2;a=$?;if \[\[ $a == 0 \]\];then break; fi; done;'] containers: - image: 10.8.52.202/open5gs/open5gs-amf name: open5gs-amf resources: limits: cpu: 200m memory: 200Mi requests: cpu: 200m memory: 200Mi volumeMounts: - name: config-volume mountPath: /open5gs-config volumes: - name: config-volume #volume类型为configMap configMap: #configMap名 name: amf-conf

dashboard上显示如下:

后续其他网元操作类似,不再赘述。

4.5 增加用户

    打开浏览器,在地址栏中输入IP:port,登录后可在Subscribe菜单页上进行开户操作:

IMSI号填ue配置文件中的supi项中的号码即可。

4.6 运行模拟基站

首先修改模拟基站配置文件open5gs-gnb.yaml:

其中linkIp,ngapIp,gtpIp都改为模拟基站所在服务器ip。amfConfigs下的addresst填amf的ip。配置完成后,启动模拟基站。

4.7 运行模拟ue

首先也是修改配置,如下图红框处所示,填写基站地址即可。

配置完成后,启动模拟ue。如下图所示,注册成功。

五、总结

    从实验结论来看,AIxBoard(爱克斯板)适合作为个人开发,及入门的边缘计算项目;同时可以快速的移植x86架构下应用程序,为公司5G融合边缘计算项目加速落地提供支持,具有实时完成移动网络边缘的业务处理;适配服务器边缘计算小型硬件组网的要求,可进行便捷部署,支持统一管理接口和主流的服务器操作系统。

    另一方面,开发板存在GPU性能不足的问题,导致部分显存需求实验存在压力。介绍上主要接口与Jetson Nano(带GPU)载板兼容,但还需进行实验探索。若开发板后期能够增加性价比高的GPU组件,将会对边缘计算,图像处理功能提供强大的助力。


0个评论