赋能公共机构:为您的数据做好人工智能时代准备

社区文章 发布于 2025 年 4 月 10 日

概述

公共机构——包括政府机构、图书馆、非营利组织和统计局——正日益认识到为人工智能时代准备其数据的重要性。虽然大量公共数据仍以不适合机器学习的格式存在,但机构已开始将这些数据转换为可供机器读取的形式,以支持人工智能应用。这些努力表明了全球范围内将公共数据转化为人工智能就绪数据的趋势,旨在增强组织影响力、支持包容性人工智能发展,并通过协作倍增其数据价值。本指南概述了公共机构如何效仿,并提供了将有价值但未充分利用的数据转化为公共利益人工智能基础的实用策略。

示例:2023 年从 MassGIS 获取的马萨诸塞州航拍图像,转换为 Hugging Face 数据集

快速导航

1. 引言:公共数据为何比以往任何时候都更重要

跨部门、跨国界,公共机构——从政府机构和统计局到图书馆和非营利组织——正逐渐认识到一个严峻的现实:它们的数据蕴含着为人工智能提供动力的巨大潜力,但前提是这些数据必须以机器可读、可访问的格式进行准备。

公共机构是关键信息的权威来源:监测环境状况、跟踪教育成果、记录劳动力趋势、保护文化遗产以及管理公共基础设施。然而,大部分数据以人工智能系统不易使用的格式存在——存储在 PDF 中、分散在结构不一致的 Excel 文件中,并且通常以专为人类而非机器学习设计的特殊格式组织。事实上,据估计,只有约 20% 的组织拥有足够成熟的数据策略,能够充分利用人工智能工具。这限制了人工智能系统利用这些资源的能力,进而限制了创新、服务改进和更广泛的社会影响。

具有前瞻性的组织和机构一直在引领一场悄无声息的变革——格式化并公开共享他们的数据,以支持反映公众需求和价值观的AI驱动工具。

使公共数据为人工智能做好准备,不仅能推动机构使命,还能确保新兴技术建立在多样化、具有代表性和可信赖的信息基础上。通过为人工智能准备数据,公共机构可以:

  • 启用更好地服务社区的技术,例如根据标准化考试数据构建的个性化学习工具。
  • 通过协作扩大公共数据的价值,允许公民技术专家和研究人员创建新的应用程序,而无需增加额外的组织负担。
  • 保持对数据使用的原则性控制,建立符合公共利益目标的许可和访问标准。

本指南探讨了各种公共组织如何应对这一挑战,并通过马萨诸塞州数据中心的数据案例研究,提供了使数据为人工智能做好准备的具体示例和实用策略。

非常感谢 Daniel Van Strien 对本文的反馈,以及他在该领域丰富的经验和专业知识,使得在 Hugging Face Hub 上进行此类数据集工作成为可能。

2. Hugging Face Hub 上的公共机构

许多政府机构和公共组织已经在为机器学习应用准备数据并在 Hugging Face 上分享方面走在前列。以下是一些例子:

挪威国家图书馆 (Nasjonalbiblioteket) AI 实验室

挪威国家图书馆已成为 Hugging Face 上的强大力量,公开分享了 150 多个模型、21 个数据集和多个机器学习演示。他们的贡献包括基于其国家图书馆藏书训练的挪威语模型针对萨米语进行微调的 Whisper(语音转文本)模型

这些资源使挪威公民、研究人员和企业能够民主地使用人工智能,从而实现从自动化转录服务到专门为挪威文化背景优化的自然语言处理工具等各种应用。

美国国家航空航天局(NASA)

NASA 与 IBM 联合在 Hugging Face 上共享了多个数据集,包括卫星图像环境监测数据地理空间基础模型Hugging Face 上的 NASA CISTO 数据科学小组也发布了卫星视觉数据和交互式空间以辅助研究。这些公开可用的地理空间数据为多种强大的人工智能应用提供了支持,例如,研究人员利用这些数据集开发了能够快速评估自然灾害后损失的模型,帮助应急响应人员优先开展工作。

BigLAM 倡议

BigLAM 倡议源于 BigScience 项目,致力于使画廊、图书馆、档案馆和博物馆 (GLAM) 的数据集更易于机器学习。他们已通过 Hugging Face Hub 提供了 30 多个与 GLAM 相关的数据集,为文化和历史机器学习应用提供了丰富的资源。

这些数据集对于研究人员来说尤其有价值,他们致力于识别文化文物、历史文档分析和档案材料自动元数据生成的计算机视觉模型。

一个值得注意的例子是欧洲艺术品检测数据集 (DEArt),该数据集包含 12 世纪至 18 世纪的 15,000 多幅画作,其中包含 69 个类别的 112,000 多个带注释的对象。该数据集已赋能研究人员构建专门用于艺术分析的计算机视觉模型,如下所示的 YOLOv11 模型结果所示:

image/jpeg

这并非详尽的列表,还有许多其他公共机构,如法国文化部芬兰国家档案馆波兰数字事务部,都在为 Hugging Face Hub 的公共知识贡献数据集和模型。

3. 使用马萨诸塞州数据中心准备公共数据以进行机器学习的教程

马萨诸塞州数据中心是一个官方平台,连接用户与马萨诸塞州州政府机构发布的数据和报告。数据中心于 2022 年启动,作为数百个数据集的集中门户,允许用户按主题或关键词搜索数据,而无需知道具体是哪个机构持有这些信息。它涵盖商业、教育、健康、环境、交通等多个领域,使政府数据更容易为公众所获取。

在本案例研究中,我们从马萨诸塞州选择了四种不同类型的政府数据,这些数据代表了公共数据可访问性方面的常见挑战。这些数据集中的每一个都包含有价值的信息,但其发布格式对机器学习应用造成了障碍。通过对这些数据集进行调整以适应机器学习应用,我们旨在展示其他公共组织可以用于其自身数据的实用方法。

教育评估数据 (MCAS)

包含马萨诸塞州所有公立学校学生的表现指标,这些数据来自 MCAS 成绩门户,包括不同学科的成绩水平、成长百分位和人口统计学细分。

原始格式:

Excel 电子表格,2017-2024 年间格式不一致

挑战:

  • 不同文件中的标题行位置不同
  • 列命名约定不一致
  • 不同数据类型(某些文件中数字以文本形式存储)
  • 成绩水平定义随时间变化

我们的方法:

尽管数据已存在于允许导出到 Excel 文件的结构化表格中,但约定不一致仍需要仔细处理。我们开发了一个 Python 脚本,可以自动识别正确的标题行,强制执行一致的数据类型,并查找所有文件中的共同列。

# Define string columns that should never be converted to numeric
string_columns = ['District Name', 'District Code', 'Subject', 'Year']
for col in combined_df.columns:
    if col not in string_columns:
        # Convert all other columns to numeric
        combined_df[col] = pd.to_numeric(combined_df[col], errors='coerce')

该脚本还通过扫描关键列标识符来处理不同的标题位置

# Example of how we handled inconsistent header rows in Excel files
for i in range(10):
    if 'DISTRICT NAME' in str(sample_df.iloc[i].values).upper():
        header_row = i
        break

结果与代码:

一个包含 6,741 行的整合数据集,涵盖七年的评估数据,可用于纵向分析。

创建此数据集的 Python notebook 可在此处找到。

您可以用这些数据做什么:

利用这个教育评估数据集,您可以构建预测模型来识别教育趋势,为政策制定者创建交互式仪表板,或训练模型以推荐有针对性的干预措施。Hugging Face Hub 提供诸如 AutoTrain 等无代码机器学习工具用于结构化数据,Gradio 用于构建交互式可视化,以及 Inference Endpoints 用于部署分析应用程序。这个数据集可以帮助教育部门更好地理解绩效模式并更有效地分配资源。

劳动力市场信息:区域劳动力数据

提供马萨诸塞州七个不同地区的劳动力趋势、重点行业和职业的详细统计数据,来自 Mass.gov 上的 2019 年区域劳动力市场数据

原始格式:

Mass.gov 上的 PowerPoint 文件,已下载并转换为 PDF 格式

挑战:

  • 数据最初以 PowerPoint 演示文稿形式存在,随后转换为 PDF 格式
  • 表格与叙述性文本混合
  • 各区域布局不一致
  • 未提供机器可读的源文件

我们的方法:

我们利用了 SmolDocling 模型,这是一个多模态图像-文本-文本模型,专为高效文档转换而设计。该模型具备 OCR 功能,使我们能够从 PowerPoint 文件转换而来的 PDF 中提取结构化内容。

# Example of how we processed PDFs with SmolDocling
from transformers import AutoProcessor, AutoModelForVision2Seq

# Load the SmolDocling model
processor = AutoProcessor.from_pretrained("ds4sd/SmolDocling-256M-preview")
model = AutoModelForVision2Seq.from_pretrained("ds4sd/SmolDocling-256M-preview")

# Process a PDF page
def extract_from_pdf_page(page_image):
    inputs = processor(images=page_image, text="Convert this page to docling.", return_tensors="pt")
    outputs = model.generate(**inputs, max_length=1024)
    return processor.decode(outputs[0], skip_special_tokens=True)

SmolDocling 模型将文档转换为文本,同时保留了原始文档的格式元素、表格和其他组件。

结果与代码:

一个结构化数据集,包含马萨诸塞州七个地区的区域劳动力市场统计数据,并保留了原始报告的语境和组织结构。

创建此数据集的 Python notebook 可在此处找到。

您可以用这些数据做什么:

这份劳动力市场数据集使劳动力发展机构能够利用人工智能进行经济规划和行业定位。您可以利用 Hugging Face 的 LangChain 集成来构建 RAG 应用程序,解答有关区域劳动力趋势的复杂查询,或者使用 SetFit 训练分类模型,从最少的训练数据中识别新兴产业集群。这种机器可读的格式显著减少了区域经济分析所需的时间,并帮助劳动力委员会做出更能服务求职者和雇主的数据驱动决策。

情感分析和前瞻性分析是强大的工具,可以对这类数据进行分析,从而分析宏观趋势并快速从报告中描绘出概况。这是 Hugging Face 上一个针对财务报表数据进行此操作的空间

image/png

职业安全与健康统计

来自马萨诸塞州职业安全与健康统计项目的数据,包含有价值的工作场所安全信息,包括按行业、职业和人口统计数据划分的伤害情况。

原始格式:

在 Mass.gov 上发布的 PDF 报告

挑战:

  • 信息锁定在 PDF 格式中
  • 表格、图表和叙述性文本混合
  • 复杂的多列布局
  • 无结构化数据导出可用

我们的方法:

由于这些文件已经是 PDF 格式,我们直接使用了 SmolDocling 模型的 OCR 和文档结构识别功能。

# Example of structured extraction from PDFs
def process_safety_data_pdf(pdf_path):
    # Convert PDF pages to images
    images = convert_pdf_to_images(pdf_path)
    
    results = []
    for img in images:
        # Use SmolDocling to extract structured content
        inputs = processor(images=img, text="Convert this page to docling.", return_tensors="pt")
        outputs = model.generate(**inputs, max_length=1024)
        page_content = processor.decode(outputs[0], skip_special_tokens=True)
        results.append(page_content)
    
    # Combine and post-process the results
    return process_doc_tags(results)

结果与代码:

一个结构化数据集,包含工作场所安全统计数据,既保留了原始报告的丰富语境,又使数据可用于机器学习应用。

创建此数据集的 Python notebook 可在此处找到。请注意,这与劳动力市场示例中的代码相同,因为一旦 PPT 文件转换为 PDF,其余流程保持不变。

您可以用这些数据做什么:

这份职业安全数据集为风险预测和预防策略提供了可能性。利用 Hugging Face Hub,安全机构可以开发 PEFT 微调的语言模型,从复杂的安全报告中提取见解;使用 Sentence Transformers 创建行业特定的风险分类器;或者使用 Gradio 或 Streamlit 在 Hugging Face Spaces 上构建交互式安全仪表板。结构化数据格式使机构能够从回顾性分析转向主动风险识别,正如佛罗里达州所提议的,这可能有助于在事故发生前预防工作场所伤害。

地理空间图像:航空摄影

来自 MassGIS 2023 航空图像数据库的高分辨率“落叶期”航空照片,覆盖马萨诸塞州全境,拍摄于 2023 年春季。这些图像支持环境监测、城市规划、基础设施管理和地理空间分析应用。

原始格式:

JP2(JPEG 2000)文件以不规则的瓦片结构排列

挑战:

  • 专业 JP2 格式不受许多 AI 视觉系统支持
  • 文件尺寸大(每瓦片平均 19MB)
  • 图像以 ZIP 文件形式分发,需要解压
  • 复杂的地理索引系统(美国国家网格坐标)

我们的方法:

我们创建了一个下载、提取和转换图像的管道,同时保留地理元数据。文件处理尤其具有挑战性。

# Handle potential encoding issues in filenames
def safe_extract(zip_ref, jp2_file, target_path):
    try:
        with zip_ref.open(jp2_file) as source, open(target_path, 'wb') as target:
            shutil.copyfileobj(source, target)
        return True
    except UnicodeEncodeError:
        # Try alternative encoding for filename
        jp2_file_encoded = jp2_file.encode('cp437').decode('utf-8')
        with zip_ref.open(jp2_file_encoded) as source, open(target_path, 'wb') as target:
            shutil.copyfileobj(source, target)
        return True
    except Exception as e:
        print(f"Error extracting {jp2_file}: {e}")
        return False

此外,我们还必须创建数据集的样本子部分,以便在 Hugging Face 数据集查看器中正确预览,因为全分辨率图像太大。

# Create a sample dataset with resized images for preview
df = pd.DataFrame({
    'file_path': [os.path.join(train_dir, row['file_name']) for _, row in metadata_df.iterrows()],
    'tilename': metadata_df['tilename'].tolist(),
    'zone': metadata_df['zone'].astype('int64').tolist()
})

# Resize the images to a manageable size for preview
df['image'] = df['image'].pil.resize((256, 256))

# Save to Parquet for efficient storage and retrieval
df = df[['image', 'tilename', 'zone']]
df.to_parquet(output_path)

结果与代码:

标准化航空图像的集合,可用于计算机视觉和机器学习应用,并提供样本预览,使数据集更易于开发人员和研究人员访问。

创建此数据集的 Python notebook 可在此处找到。

您可以用这些数据做什么:

image/png

一个 Hugging Face 空间,用于将航空图像转换为地图。

这份地理空间数据集能够实现强大的环境监测和城市规划应用。在 Hugging Face Hub 上,您可以利用 SegFormerYOLOS 等预训练视觉模型进行土地利用分类,使用 MMDetection 构建自定义目标检测模型以通过开放视觉语言模型(如 SmolVLM2)识别基础设施元素,或使用 Segment Anything 自动检测环境变化。州政府机构可以开发跟踪城市扩张、监测森林砍伐、评估洪水风险或识别潜在太阳能电池板安装位置的应用程序——所有这些都基于他们已有的数据。

4. 在 Hugging Face 上共享的分步指南

一旦您为机器学习应用准备好数据,下一步就是将其共享到人工智能开发人员可以轻松找到和使用的平台。Hugging Face Hub 已成为机器学习数据集的中央存储库,并提供了多种上传数据的方式。

通过 GUI(Web 界面)上传

对于较小的数据集或初步探索,Web 界面提供了一种直接共享数据的方式

  1. 登录您的 Hugging Face 账户
  2. 点击您的个人资料 → “新建数据集”
  3. 选择名称、可见性设置和许可证
  4. 上传文件并创建文档

Screenshot of dataset upload

通过代码上传

对于大型数据集或自动化工作流,您可以通过代码上传

from datasets import Dataset
import pandas as pd

# Load your data
df = pd.read_csv("your_processed_data.csv")

# Convert to Hugging Face dataset
dataset = Dataset.from_pandas(df)

# Push to Hugging Face Hub
dataset.push_to_hub("your-username/your-dataset-name")

有关 Hugging Face Hub 数据集托管功能的更详细讨论可在此处找到,上传数据集的完整文档可在此处找到。

5. 技术要点

以下是组织希望使其数据更易于人工智能系统访问的一些关键要点

识别最有价值的数据集

在深入技术实施之前,请评估您当前的数据资产

  • 如果能更容易访问,哪些数据集能为您的组织带来最大价值?
  • 您的组织拥有哪些独特的信息可以推动创新?
  • 目前,您的团队和外部用户使用哪些数据集最困难?
  • 您现有的哪些数据集已经具备明确的许可条款,能够支持人工智能的使用?

优先处理具有高潜在影响和存在技术访问障碍的数据集。这种初步评估将有助于将您的精力集中在投资回报率最大的地方。

确定格式需求

不同的用例需要不同的格式。考虑以下几点:

  • 谁将使用这些数据,他们的技术能力如何?
  • 哪种格式能让您的目标受众最容易访问数据?
  • 需要进行何种程度的处理才能使原始数据可用?

通过了解数据用户的需求,您可以选择最大化可访问性同时最小化转换工作的格式。

清晰地记录

全面的文档对于确保您的数据能够有效利用至关重要。

  • 包含清晰的数据来源信息
  • 解释对原始数据进行的任何转换或处理
  • 记录已知限制、缺失或质量问题
  • 提供如何加载和使用数据的示例
  • 清晰地指明您的数据许可条款

良好的文档不仅能帮助用户理解您的数据,还能建立对其质量和适用于不同应用的信任。此外,文档完善的数据也始终是下载量最多的数据——Hugging Face 上 90% 的数据集下载量来自文档完善的数据集

通过为机器学习应用程序准备组织数据,您正在创造创新机会,并放大现有数据资产的影响力。通过有针对性的努力,公共组织可以将其宝贵的信息资源转化为支持创新、研究和符合其使命的公共服务的格式。我们迫不及待地想看到您在 Hugging Face 上的数据集 🤗!


引用这篇博文:

如果您想引用这篇博客文章,请使用以下内容:

@misc{public_org_data_ai_hf_blog,
  author    = {Avijit Ghosh and Yacine Jernite},
  title     = {Empowering Public Organizations: Preparing Your Data for the AI Era},
  booktitle = {Hugging Face Blog},
  year      = {2025},
  url       = {https://huggingface.co/blog/evijit/public-org-data-ai/},
}

社区

注册登录 发表评论