
# MoXing Framework功能介绍
MoXing Framework模块为MoXing提供基础公共组件，例如访问华为云的OBS服务，和具体的AI引擎解耦，在ModelArts支持的所有AI引擎（TensorFlow、MXNet、PyTorch、MindSpore等）下均可以使用。目前，提供的MoXing Framework功能中主要包含操作OBS组件，即下文中描述的mox.file接口。
![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
在Notebook中，MoXing已经预先安装好，用户无需自行下载。只需在Notebook中[导入MoXing Framework模块]，即可直接使用其功能。
#### 使用场景
Moxing主要使用场景为提升从OBS读取和下载数据的易用性，适配对象为OBS对象桶，对于OBS并行文件系统部分接口可能存在问题，不建议使用。生产业务代码开发建议直接调用OBS Python SDK，详情请参见[Python SDK接口概览](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0100.html)。
#### 为什么要用mox.file
使用Python打开一个本地文件，如下所示：
```
with open('/tmp/a.txt', 'r') as f:
  print(f.read())
```
OBS目录以"obs://"开头，比如"obs://bucket/XXX.txt"。用户无法直接使用open方法打开OBS文件，上面描述的打开本地文件的代码将会报错。
OBS提供了很多方式和工具给用户使用，如SDK、API、console、OBS Browser等，ModelArts mox.file提供了一套更为方便地访问OBS的API，允许用户通过一系列模仿操作本地文件系统的API来操作OBS文件。例如，可以使用以下代码来打开一个OBS上的文件。
```
import moxing as mox
with mox.file.File('obs://bucket_name/a.txt', 'r') as f:
  print(f.read())
```
例如，列举一个本地路径会使用如下Python代码。
```
import os
os.listdir('/tmp/my_dir/')
```
如果要列举一个OBS路径，mox.file则需要如下代码：
```
import moxing as mox
mox.file.list_directory('obs://bucket_name/my_dir/')
```
 #### 导入MoXing Framework模块
使用MoXing Framework前，您需要在代码的开头先导入MoXing Framework模块。
执行如下代码，导入MoXing模块。
```
import moxing as mox
```
#### 导入MoXing Framework的相关说明
在导入MoXing模块后，Python的标准logging模块会被设置为INFO级别，并打印版本号信息。可以通过以下API重新设置logging的等级。
```
import logging
from moxing.framework.util import runtime
runtime.reset_logger(level=logging.WARNING)
```
可以在导入MoXing之前，配置环境变量MOX_SILENT_MODE=1，来防止MoXing打印版本号。使用如下Python代码来配置环境变量，需要在import moxing之前就将环境变量配置好。
```
import os
os.environ['MOX_SILENT_MODE'] = '1'
import moxing as mox
```
#### 导入MoXing Framework的数据下载加速特性的相关说明
在使用基于ModelArts预置镜像的训练作业时，可以导入MoXing Framework的数据下载加速特性。加速特性适用场景为：文件数在100w\~1000w的场景、单个大文件及文件大小大于20GB的场景。
![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
以下操作仅适用于旧版控制台（左侧导航栏为"模型训练 \> 训练作业"）。如果您是新版控制台（左侧导航栏为"模型开发与训练 \> 模型训练"），请在导航栏最下方，单击"返回旧版"。
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，在左侧菜单栏选择"模型训练 \> 训练作业"，进入训练作业管理页面。
2. 单击右上角"创建训练作业"进入创建训练作业页面，在"环境变量"中设置"MA_MOXING_FWVER=2.2.8.0aa484aa"以安装最新MoXing Framework版本，其他参数填写请参见[创建生产训练作业](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0006.html)。 配置完成后，可以在训练作业脚本中使用"moxing.file.copy_parallel"接口加速数据下载。
3. 需要时可以通过在训练作业的"环境变量"中设置"MOX_C_ACCELERATE=0"，来关闭数据下载加速特性。
 
