Qifan Zhang
Add Qwen3 embedding support with last-token pooling
b91a6bd
metadata
title: TransDis-CreativityAutoAssessment
emoji: 💡
colorFrom: yellow
colorTo: gray
sdk: gradio
sdk_version: 6.14.0
python_version: '3.11'
app_file: app.py
pinned: false
license: mit

项目用途

TransDis-CreativityAutoAssessment 是一个用于自动评估发散思维回答的 Gradio 应用。它目前支持两类评分:

  • Originality:计算每条 promptresponse 之间的语义距离,用于估计回答的独创性。
  • Flexibility:计算同一 id + prompt 分组内多条回答之间的语义距离,用于估计回答的灵活性。

本应用基于论文 "Automatic Assessment of Divergent Thinking in Chinese Language with TransDis: A Transformer-Based Language Model Approach"

输入格式

可以直接在文本框中粘贴 CSV 文本,也可以上传 .csv / .xlsx 文件。如果同时提供文本框和文件输入,上传文件优先。

Originality 任务需要提供:

id,prompt,response
1,床单,过滤器
1,bedsheet,used as a filter

Flexibility 任务需要为同一个被试和同一个提示词提供多条回答:

id,prompt,response
1,床单,过滤器
1,床单,做成渔网捞鱼
1,床单,做成枕头

单次请求最多处理 10,000 行数据。

模型选择

应用会在下拉菜单中提供多语言、英文和中文 Transformer 检查点,包括多语言 embedding 模型 Qwen/Qwen3-Embedding-0.6B。默认模型是:

sentence-transformers/paraphrase-multilingual-mpnet-base-v2

可选 pooling 方式主要用于 legacy Transformer 检查点,包括 meancls。如果使用 bert-base-chinese,建议选择 mean pooling。选择 Qwen/Qwen3-Embedding-0.6B 时,界面会自动切换并锁定为 last-token,应用会使用该模型推荐的 last-token pooling 和向量归一化,即使 API 请求传入其他 pooling 值也会被覆盖。

本地开发

此 Space 使用 Python 3.11 和 Gradio 6.14.0。Gradio 版本由 README 顶部的 Space metadata 控制,因此不会写入 requirements.txt

python3.11 -m venv .venv
source .venv/bin/activate
pip install gradio==6.14.0 -r requirements.txt
python app.py

安装并运行 pre-commit:

uvx pre-commit install
uvx pre-commit run --all-files

推送前建议运行:

python3 -B -m py_compile app.py utils/pipeline.py utils/models.py
uvx pre-commit run --all-files

Hugging Face Space

此 Space 由 README 顶部的 YAML 配置:

  • sdk: gradio
  • sdk_version: 6.14.0
  • python_version: "3.11"
  • app_file: app.py

推送到 Space 仓库后,Hugging Face 会自动重建并重启应用。