# Mixtral 8\*7B 大模型精度问题总结

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): Ascend910

软件环境: MindSpore 版本: 2.3

执行模式\(PyNative/Graph\)： Graph

**2. 精度问题与分析**

**2.1 正向rotary embedding精度不一致**

使用tensordump进行网络正向对比，发现rotary embedding处精度不一致，对比源码后发现rotary embedding的base参数不一致，修改后精度一致。

**2.2 正向MOE部分精度不一致**

对比moe层，发现torch的q、k、v等tensor的排布和ms的不同，无法对比，只能对比整体的输入和输出，发现误差放大到十分位。对比脚本，发现torch moe中容量为全容量设置与mindspore不一致，修改ms为专家全容量后，前向最终loss误差为万分位。

**2.3 adam优化器精度不一致**

正向对比完成后，对比反向精度，发现反向loss误差在百分位，torch的fuseAdam优化器与ms的FP32AdamW实现不同引入误差。分析fuseAdam源码，使用ms的Adam可与torch对齐。ms使用Adam优化器与权重FP32初始化已与torch对齐，整体误差千分位。权重fp16/bf16初始化，和torch还是无法对齐，存在误差，同时ms当前不支持权重精度低于梯度的精度，导致报错。

