Skip to content

Add Florence2 model support and tests#4612

Open
houleisai wants to merge 1 commit into
PaddlePaddle:developfrom
houleisai:Florence-2-base
Open

Add Florence2 model support and tests#4612
houleisai wants to merge 1 commit into
PaddlePaddle:developfrom
houleisai:Florence-2-base

Conversation

@houleisai

@houleisai houleisai commented Jun 6, 2026

Copy link
Copy Markdown
## PR 内容

本 PR 新增 Florence2 模型在 PaddleFormers 中的接入与验证,包括:

- 新增 Florence2 模型配置、建模、图像处理器和 Processor。
- 注册 Florence2 到 AutoConfig / AutoModel / AutoProcessor / AutoImageProcessor。
- 新增 Florence2 多模态 SFT template 和 mm plugin
- 新增 Florence2 SFT 训练配置示例。
- 新增 Florence2 模型单测和 Processor 单测。

## 验证结果

### 1. 单卡前向精度对齐
分别在 transformers/PyTorch 和 PaddleFormers 中进行前向对齐验证。

结果:

```text
logits mean abs diff: 0.00225268
logits p99 abs diff:  0.00976562
logits max abs diff:  0.02343750
first 10 generated tokens equal: True

结论:logits P99 diff 达到 1e-2 量级,且前 10 个生成 token 与 transformers 一致。

2. 生成结果验证

  • transformers/PyTorch 端手动生成 10 个 token。
  • PaddleFormers 端使用 model.generate(..., max_new_tokens=10)
  • 对比前 10 个生成 token。

结果:first 10 generated tokens equal: True

3. Loss 损失正常下降

4. 新增模型单测

新增 Florence2 模型单测:

../miniconda3/envs/paddleformers/bin/python -m unittest \
tests.transformers.florence2.test_modeling

覆盖内容包括:

  • Config 保存 / 加载 / 字段一致性
  • forward + loss
  • save/load 输出一致性
  • determinism
  • hidden states 输出
  • resize token embeddings
  • greedy / beam / sample generation
  • SFT labels 拆分

新增 Florence2 Processor 单测:

../miniconda3/envs/paddleformers/bin/python -m unittest \
tests.transformers.florence2.test_processor

覆盖内容包括:

  • task prompt 构造
  • detection post process
  • segmentation post process
  • region proposal post process
  • Florence2 多模态 SFT message 格式处理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant