PE-Lang-L14-448 是 Meta 开发的 Perception Encoder 系列模型,专门针对语言建模进行了微调。该模型在大规模视觉-语言预训练的基础上,进一步优化了 OCR 和文档理解能力。
| 项目 | 版本/内容 |
|---|---|
| 设备 | Ascend 910B |
PE-Lang-L14-448-ascend/
├── inference.py # 精度测试脚本
├── test.log # 测试日志
├── README.md # 本文档PE-Lang-L14-448 基于 Vision Transformer 架构:
| 组件 | 说明 | 参数数量 |
|---|---|---|
| Conv1 (Patch Embed) | 14x14 patch embedding | 602k |
| Class Token | 可学习类别令牌 | 1k |
| Positional Embed | 位置编码 (1025 tokens) | 1M |
| Transformer Blocks | 23 层残差注意力块 | ~280M |
| LayerNorm | 后处理归一化 | 2k |
source /usr/local/Ascend/ascend-toolkit/set_env.shcd PE-Lang-L14-448-ascend/
python3 inference.pycd PE-Lang-L14-448-ascend/
python3 inference.py --precision_test| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Max Error (sum) | 1.22e-04 | < 1e-3 | PASS |
| Max Error (mean) | 1.19e-07 | < 1e-5 | PASS |
| Max Error (std) | 1.19e-07 | < 1e-5 | PASS |
| 操作 | 耗时 |
|---|---|
| 模型加载 | ~5s |
| CPU 参考计算 (20 tensors) | 0.16s |
| NPU 推理 (20 tensors) | 0.39s |
| 端到端推理 (1 image 448x448) | ~4.8s |
Output: torch.Size([1, 1025, 1024]), CLS: torch.Size([1, 1024]), Time: 4788.67ms精度测试通过对比 CPU 和 NPU 上的张量统计数据验证模型权重在两个设备间的一致性。
weights_only=False 以支持完整 state_dict 加载F.layer_norm 替代自定义实现torch.Tensor of shape [B, 3, 448, 448]torch.Tensor of shape [B, 1025, 1024]
A: 确保模型和输入都使用 float32 类型,使用 .float() 转换。
A: PE-Lang 有 291M 参数,首次推理需要约 5 秒是正常现象。