Red-Hat-AI-Innovation-Team/sdg_hub

GitHub: Red-Hat-AI-Innovation-Team/sdg_hub

Red Hat AI团队推出的模块化Python框架,通过积木式组合和异步处理构建高性能的LLM合成数据生成流水线。

Stars: 128 | Forks: 53

# `sdg_hub`: 合成数据生成工具包 [![构建](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/edd4d3ce1b214928.svg)](https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub/actions/workflows/pypi.yml) [![发布](https://img.shields.io/github/v/release/Red-Hat-AI-Innovation-Team/sdg_hub)](https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub/releases) [![许可证](https://img.shields.io/github/license/Red-Hat-AI-Innovation-Team/sdg_hub)](https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub/blob/main/LICENSE) [![测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/77c4ba3225214929.svg)](https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/Red-Hat-AI-Innovation-Team/sdg_hub/graph/badge.svg?token=SP75BCXWO2)](https://codecov.io/gh/Red-Hat-AI-Innovation-Team/sdg_hub) [![询问 DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Red-Hat-AI-Innovation-Team/sdg_hub)

SDG Hub Cover

一个模块化的 Python 框架,用于使用可组合的块和流构建合成数据生成流水线。通过**积木式组合**转换数据集——混合搭配 LLM 驱动的和传统处理块,以创建复杂的数据生成工作流。 **📖 完整文档请访问:[DeepWiki](https://deepwiki.com/Red-Hat-AI-Innovation-Team/sdg_hub)** ## ✨ 主要特性 **🔧 模块化可组合性** - 像乐高积木一样混合搭配块。使用 YAML 配置的流构建简单的转换或复杂的多阶段流水线。 **⚡ 异步性能** - 高吞吐量的 LLM 处理,内置错误处理。 **🛡️ 内置验证** - 基于 Pydantic 的类型安全,确保配置和数据在执行前正确无误。 **🔍 自动发现** - 自动注册块和流。无需手动导入或复杂设置。 **📊 丰富的监控** - 详细的日志记录,包含进度条和执行摘要。 **📋 数据集模式发现** - 即时发现所需的数据格式。获取具有正确模式的空数据集,以便轻松验证和准备数据。 **🧩 易于扩展** - 通过简单的继承创建自定义块。内置丰富的日志记录和监控。 ## 📦 安装 推荐:安装 uv — 请参阅 https://docs.astral.sh/uv/getting-started/installation/ ``` # 生产环境 uv pip install sdg-hub # 开发环境 git clone https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub.git cd sdg_hub uv pip install .[dev] # 或:uv sync --extra dev ``` ### 可选依赖 ``` # 支持 vLLM uv pip install sdg-hub[vllm] # 示例 uv pip install sdg-hub[examples] ``` ## 🚀 快速开始 ### 核心概念 **块** 是转换数据集的可组合单元——可以将它们视为数据处理乐高积木。每个块执行特定任务:LLM 聊天、文本解析、评估或转换。 **流** 将多个块编排为在 YAML 中定义的完整流水线。将块链接在一起,创建具有验证和参数管理的复杂数据生成工作流。 ``` # 简单概念:Blocks 转换数据,Flows 将 Blocks 链接在一起 dataset → Block₁ → Block₂ → Block₃ → enriched_dataset ``` ### 试用一下! #### 流发现 ``` from sdg_hub import FlowRegistry, Flow # 自动发现所有可用的 Flows(无需设置!) FlowRegistry.discover_flows() # 列出可用的 Flows flows = FlowRegistry.list_flows() print(f"Available flows: {flows}") # 搜索特定类型 qa_flows = FlowRegistry.search_flows(tag="question-generation") print(f"QA flows: {qa_flows}") ``` 每个流都有一个根据其名称自动生成的**唯一的、人类可读的 ID**。这些 ID 为引用流提供了便捷的简写形式: ``` # 每个 Flow 都有一个确定的 ID # 相同的 Flow 名称总是生成相同的 ID flow_id = "small-rock-799" # 使用 ID 来引用 Flow flow_path = FlowRegistry.get_flow_path(flow_id) flow = Flow.from_yaml(flow_path) ``` #### 发现模型并配置它们 ``` # 发现推荐的模型 default_model = flow.get_default_model() recommendations = flow.get_model_recommendations() # 在运行时配置模型设置 # 这假设您有一个托管在 http://localhost:8000/v1 的 meta-llama/Llama-3.3-70B-Instruct vLLM 实例正在运行 flow.set_model_config( model=f"hosted_vllm/{default_model}", api_base="http://localhost:8000/v1", api_key="your_key", ) ``` #### 发现数据集要求并创建您的数据集 ``` # 首先,发现 Flow 需要什么数据 # 获取一个具有所需确切架构的空数据集 schema_dataset = flow.get_dataset_schema() # Get empty dataset with correct schema print(f"Required columns: {schema_dataset.column_names}") print(f"Schema: {schema_dataset.features}") # 选项 1:直接将数据添加到架构数据集 dataset = schema_dataset.add_item({ 'document': 'Your document text here...', 'document_outline': '1. Topic A; 2. Topic B; 3. Topic C', 'domain': 'Computer Science', 'icl_document': 'Example document for in-context learning...', 'icl_query_1': 'Example question 1?', 'icl_response_1': 'Example answer 1', 'icl_query_2': 'Example question 2?', 'icl_response_2': 'Example answer 2', 'icl_query_3': 'Example question 3?', 'icl_response_3': 'Example answer 3' }) # 选项 2:创建您自己的数据集并验证架构 my_dataset = Dataset.from_dict(my_data_dict) if my_dataset.features == schema_dataset.features: print("✅ Schema matches - ready to generate!") dataset = my_dataset else: print("❌ Schema mismatch - check your columns") # 选项 3:获取原始需求以进行详细检查 requirements = flow.get_dataset_requirements() if requirements: print(f"Required: {requirements.required_columns}") print(f"Optional: {requirements.optional_columns}") print(f"Min samples: {requirements.min_samples}") ``` #### 试运行和生成 ``` # 使用 Dry Run 进行快速测试 dry_result = flow.dry_run(dataset, sample_size=1) print(f"Dry run completed in {dry_result['execution_time_seconds']:.2f}s") print(f"Output columns: {dry_result['final_dataset']['columns']}") # 生成高质量的 QA 对 result = flow.generate(dataset) # 访问生成的内容 questions = result['question'] answers = result['response'] faithfulness_scores = result['faithfulness_judgment'] relevancy_scores = result['relevancy_score'] ``` ## 📄 许可证 本项目在 Apache License 2.0 下获得许可 — 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 我们欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解有关如何为本项目做出贡献的指南。 由 Red Hat AI Innovation Team 用 ❤️ 构建
标签:Apex, DLL 劫持, DNS解析, NLP, Pydantic, Python, Red Hat, YAML配置, 人工智能, 内存取证对抗, 合成数据, 大语言模型, 工作流, 开发框架, 开源项目, 异步编程, 数据增强, 数据生成, 数据管道, 数据验证, 无后门, 机器学习, 模型微调, 用户模式Hook绕过, 网络调试, 自动化, 软件工程, 逆向工具