海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

WhiteLightning 是一个开源命令行工具,旨在帮助开发者通过单行命令快速生成轻量级文本分类模型。工具利用大型语言模型生成合成数据,通过师生蒸馏技术训练出小于1MB的ONNX模型,支持完全离线运行,适合边缘设备如树莓派、手机或低功耗设备。WhiteLightning 由乌克兰公司Inoxoft开发,历时一年,支持多语言编程,强调隐私保护和低成本部署。用户无需准备真实数据即可生成模型,适用于情感分析、垃圾邮件过滤等场景。项目采用GPL-3.0许可证,模型使用MIT许可证,社区通过GitHub和Discord提供支持。

 

功能列表

  • 一键生成小于1MB的ONNX文本分类模型,支持多类分类,如情感分析、垃圾邮件检测。
  • 利用大型语言模型(如Grok-3-beta、GPT-4o-mini)生成合成训练数据,无需真实数据。
  • 支持完全离线运行,模型部署后无需云端API,保护数据隐私。
  • 兼容Python、Rust、Swift、Node.js、Dart等多种编程语言,适配多种开发环境。
  • 提供Docker容器,支持macOS、Linux、Windows,简化安装和运行。
  • 集成GitHub Actions,支持云端模型训练和CI/CD自动化流程。
  • 提供交互式命令生成器,简化复杂参数配置。
  • 支持边缘案例生成,确保模型在复杂输入场景下表现稳定。
  • 模型训练过程透明,日志显示进度、准确率和损失值。

使用帮助

安装流程

WhiteLightning 通过Docker容器分发,确保跨平台一致性和简便性。以下是详细安装步骤:

  1. 安装Docker
    确保设备已安装Docker。macOS和Linux用户可从Docker官网下载安装包,Windows用户建议使用PowerShell运行命令。验证Docker安装:

    docker --version
    

    若未安装,请参考官方指南完成安装。

  2. 拉取WhiteLightning镜像
    从Docker Hub拉取最新镜像:

    docker pull ghcr.io/inoxoft/whitelightning:latest
    

    镜像内置所有依赖,无需额外配置Python或其他环境。

  3. 设置API密钥
    WhiteLightning 在训练阶段需调用大型语言模型(如OpenRouter提供)生成合成数据,因此需配置API密钥。例如:

    export OPEN_ROUTER_API_KEY="sk-..."
    

    "sk-..."替换为从OpenRouter官网获取的实际密钥。密钥仅用于训练,生成的模型运行时无需联网。

  4. 运行容器
    使用Docker运行WhiteLightning,生成分类模型。例如,分类客户评论为正面、中立或负面:

    docker run --rm -e OPEN_ROUTER_API_KEY="sk-..." -v "$(pwd)":/app/models ghcr.io/inoxoft/whitelightning:latest python -m text_classifier.agent -p "Categorize customer reviews as positive, neutral, or negative"
    

    命令说明:

    • --rm 运行后自动删除容器,节省空间。
    • -e 设置API密钥环境变量。
    • -v "$(pwd)":/app/models 将当前目录挂载到容器,保存生成的模型。
    • -p 指定分类任务,需简洁描述任务目标。
      Windows用户将$(pwd)替换为${PWD}
  5. 验证安装
    运行命令后,工具在约10分钟内生成ONNX模型,保存至挂载目录(如models_multiclass/customer_review_classifier/customer_review_classifier.onnx)。检查日志确认训练完成,日志示例:

    ✅ - INFO - Test set evaluation - Loss: 0.0006, Accuracy: 1.0000
    

    确保输出目录包含模型文件。

使用主要功能

WhiteLightning 的核心功能是一键生成和部署轻量级文本分类模型。以下是详细操作流程:

生成文本分类模型

用户通过-p参数指定分类任务,工具自动完成合成数据生成和模型训练。例如,生成垃圾邮件分类器:

docker run --rm -e OPEN_ROUTER_API_KEY="sk-..." -v "$(pwd)":/app/models ghcr.io/inoxoft/whitelightning:latest python -m text_classifier.agent -p "Classify emails as spam or not spam"
  • 流程
    1. 工具调用大型语言模型(如x-ai/grok-3-betaopenai/gpt-4o-mini)生成合成数据,默认每类50条,包含边缘案例。
    2. 使用师生蒸馏技术,基于合成数据训练轻量级ONNX模型。
    3. 训练完成后,模型导出至指定目录,日志显示训练进度(如Epoch 20/20 - accuracy: 1.0000)。
  • 输出:模型文件(如customer_review_classifier.onnx)和日志,记录数据生成和训练详情。

部署和运行模型

生成的ONNX模型支持多种语言运行,占用空间小,适合边缘设备。以下以Python为例:

  1. 安装ONNX运行时:
    pip install onnxruntime
    
  2. 加载并运行模型:
    import onnxruntime as ort
    import numpy as np
    session = ort.InferenceSession("models_multiclass/customer_review_classifier/customer_review_classifier.onnx")
    input_data = np.array(["This product is amazing!"], dtype=np.object_)
    outputs = session.run(None, {"input": input_data})
    print(outputs)  # 输出结果,如 ['positive']
    
  3. 其他语言(如Rust、Swift)参考ONNX官网运行时文档。

高级配置

WhiteLightning 提供灵活的参数配置,优化模型性能:

  • 提示优化循环:通过-r参数设置优化次数,默认1次。例如:
    -r 3
    

    增加循环提高数据质量,但延长训练时间。

  • 边缘案例生成:通过--generate-edge-cases启用,默认开启,每类生成50条边缘案例:
    --generate-edge-cases True
    

    确保模型处理复杂输入时表现稳定。

  • 模型选择:支持多种大型语言模型,配置文件中可指定(如x-ai/grok-3-beta)。
  • 数据量调整:通过--target-volume-per-class设置每类数据量,默认50条。例如:
    --target-volume-per-class 100
    

在线Playground

WhiteLightning 提供在线Playground,用户无需安装即可测试模型生成。访问Playground,输入任务描述(如“Classify tweets as happy or sad”),点击生成,查看模型输出。Playground适合快速验证任务效果。

社区支持与调试

  • GitHub Actions:支持云端训练,访问GitHub仓库的“Actions”页面,选择“Test Model Training”,配置参数后运行。
  • 调试
    • 若Docker命令失败,检查Docker服务是否运行,确认权限。
    • 若API密钥无效,重新从OpenRouter获取。
    • 日志文件位于输出目录,记录详细错误信息。
  • 社区支持:加入Discord服务器与开发者交流,或在GitHub提交issue。

注意事项

  • 训练阶段需稳定网络连接以调用API生成数据。
  • 模型运行时完全离线,适合隐私敏感场景。
  • 确保输出目录有写权限,Windows用户注意路径格式。
  • 模型训练时间因任务复杂度和数据量而异,通常10-15分钟。

应用场景

  1. 移动应用开发
    WhiteLightning 生成的轻量级模型适合集成到移动应用,如聊天软件的情感分析功能。模型占用空间小,运行效率高,适配低功耗设备。
  2. 边缘设备部署
    在树莓派或工业控制器上运行文本分类模型,处理实时日志或用户输入。离线运行避免数据泄露,适合工业场景。
  3. 隐私敏感场景
    医疗、金融领域处理敏感文本数据时,WhiteLightning 的离线模型确保数据不上传云端,保护隐私。
  4. 快速原型开发
    开发者可快速生成分类模型,测试不同任务效果,缩短开发周期,适合初创公司或研究团队。

QA

  1. WhiteLightning 是否需要持续联网?
    仅训练阶段需联网调用API生成合成数据,生成的模型完全离线运行。
  2. 模型大小是多少?
    模型通常小于1MB,具体大小取决于任务复杂度和数据量,远小于传统大型模型。
  3. 支持哪些编程语言?
    ONNX模型支持Python、Rust、Swift、Node.js、Dart、C++等,参考ONNX运行时文档。
  4. 如何处理训练失败?
    检查API密钥、网络连接或Docker权限。日志文件记录详细错误,可在GitHub或Discord寻求社区帮助。
  5. 是否需要准备真实数据?
    不需要。WhiteLightning 使用大型语言模型生成合成数据,支持零数据场景建模。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

回顶部

zh_CN简体中文