使用机器学习进行灾害响应:afetharita 项目

在 2023 年 2 月 6 日袭击土耳其东南部的地震之后,一群志愿者开发了 afetharita(灾害地图),这是一款旨在通过将非结构化的社交媒体帖子转换为可操作数据,帮助搜救团队定位幸存者的应用。该项目利用 Hugging Face 生态系统进行原型设计、协作和部署拯救生命的机器学习工具,以应对极端的时间限制。

从社交媒体中提取幸存者信息

志愿者构建了一个流水线,将截图和推文转换为结构化数据,包括姓名、电话号码和地址,并将这些信息提供给当局。

OCR 与信息提取

为了处理短信和推文的截图,团队使用 easyocr 实现了光学字符识别(OCR)功能,并使用 Gradio 构建用户界面。提取的文本随后使用经过微调的基于 transformers 的命名实体识别(NER)模型进行解析,以识别关键的个人信息。

地址提取与地理编码

针对基于文本的求助信息,团队使用 bert-base-turkish-cased 作为标记分类的基础模型,开发了地址提取模型。工作流程如下:

  • 提取:NER 模型从原始推文中提取地址。
  • 地理编码:提取的地址被发送到地理编码 API,以获取经度和纬度。
  • 可视化:地理位置信息在前端地图上展示,以指导救援团队。

为降低 DevOps 开销,团队使用 Hugging Face Inference API 提供模型服务,从而无需手动创建 Docker 镜像和部署云实例。

生存者需求的意图分类

为了识别具体需求(如庇护、食物或后勤),团队尝试了多种方法:

  • 零样本和少样本学习:最初的测试使用了开源 NLI 模型,如 xlm-roberta-large-xnliconvbert-base-turkish-mc4-cased-allnli_tr。最初更倾向于使用 NLI 模型而非生成模型,因为它们可以进行候选标签推断,避免模型“杜撰”标签的风险。
  • 微调:团队最终对 BERT 模型进行微调,发现 bert-base-turkish-uncasedbert-base-turkish-128k-cased 的表现优于 bert-base-turkish-cased
  • 优化:由于类别不平衡,团队优先消除假阴性,关注召回率和 F1 分数。他们创建了一个 Hugging Face Space,使用特定的元数据标签(deprem-clf-v1)对模型进行基准测试,以对性能进行排名并确定每个标签的最佳阈值。

主动学习与大语言模型

为了改进 NER 模型,团队使用 ArgillaGradio 创建了一个众包标注界面,用户可以将输出标记为正确、错误或模糊。此外,另一团队通过提示工程使用生成模型提取细粒度需求的自由文本,指出少样本提示与大语言模型结合在快速数据漂移的适应上非常有效,无需新的标注数据。

遥感用于损害评估

为克服缺乏电力和稳定移动网络的困难,志愿者使用卫星影像评估建筑和基础设施的损毁情况。

卫星数据收集与处理

图像来自 Planet Labs、Maxar 和 Copernicus Open Access Hub。为便于训练,将 1080x1080 的卫星图像裁剪为 640x640 的块。

模型部署

团队对多个模型进行了微调,以实现建筑检测和语义分割:

  • 目标检测:使用 YOLOv5、YOLOv8 和 EfficientNet 进行建筑检测。
  • 语义分割:使用 SegFormer 模型对建筑进行语义分割。

这些应用以 Hugging Face Spaces 的形式部署。团队与 Co-One 等公司合作,进行详细标注,包括 无损害毁坏受损受损设施未受损设施 等标签,目标是发布一个大型开源数据集,以支持未来的全球灾害响应。

MLOps 与协作基础设施

部署速度得益于 Hugging Face Hub 及其集成生态系统:

  • 协作:组织账户使志愿者能够通过 pull request 进行协作。
  • CI/CD:CI 机器人提供临时环境,以在 Hugging Face Spaces 中预览 pull request 的更改。
  • 基础设施:Hugging Face 提供 GPU 资源和额外的 Inference API 副本,确保应用在高流量下保持稳健,避免宕机。

Sources