说明文档
KAi 毒性过滤器 (ONNX)
日语有害表达检测模型的ONNX优化版本
日语有害表达检测模型的ONNX优化版本
原始PyTorch模型: b4c0n/KAi-Toxicity-Filter
中文版
模型概述
此模型是b4c0n/KAi-Toxicity-Filter的ONNX格式转换优化版本。推理速度和部署灵活性得到提升。
ONNX版的优势
- ✅ 高速推理: 与PyTorch版相比推理速度更快
- ✅ 轻量部署: 无需PyTorch,仅需ONNX运行时即可运行
- ✅ 跨平台: 支持C++、C#、Java、JavaScript等多种语言
- ✅ 边缘设备支持: 易于在IoT设备和移动端运行
模型详情
- 原始模型: b4c0n/KAi-Toxicity-Filter
- 基础架构: BERT (tohoku-nlp/bert-base-japanese-v3)
- 任务: 二分类(有害/无害)
- ONNX Opset: 18
- 模型大小: 约426 MB(单个文件)
性能
保持与原始PyTorch模型同等的精度:
- 准确率: 86.32%
- F1分数 (F1 Score): 70.68%
- 精确率: 72.31%
- 召回率: 69.12%
推理结果误差: < 0.000001(实质上完全相同)
使用示例
Python (ONNX Runtime)
import onnxruntime as ort
import numpy as np
from transformers import AutoTokenizer
# 加载分词器(从原始模型)
tokenizer = AutoTokenizer.from_pretrained("b4c0n/KAi-Toxicity-Filter")
# 创建ONNX会话
session = ort.InferenceSession("toxicity_model.onnx")
# 文本分词
text = "有毒言论"
inputs = tokenizer(text, return_tensors="np", padding=True, truncation=True, max_length=512)
# 执行推理
onnx_inputs = {
"input_ids": inputs["input_ids"].astype(np.int64),
"attention_mask": inputs["attention_mask"].astype(np.int64),
"token_type_ids": inputs["token_type_ids"].astype(np.int64)
}
outputs = session.run(None, onnx_inputs)
# 使用softmax转换为概率
logits = outputs[0][0]
exp_logits = np.exp(logits - np.max(logits))
probs = exp_logits / exp_logits.sum()
print(f"有害概率: {probs[1]:.2%}")
print(f"健康概率: {probs[0]:.2%}")
安装
pip install onnxruntime transformers
如需使用GPU版本:
pip install onnxruntime-gpu transformers
文件结构
KAi-Toxicity-Filter-ONNX/
├── toxicity_model.onnx # ONNX模型(单个文件,已嵌入外部数据)
└── README.md
注意: 不包含分词器。请从原始模型b4c0n/KAi-Toxicity-Filter加载。
使用目的
为KAi(海鯖群组AI)中的日语文本有害内容检测和过滤而开发。
主要用途:
- 需要快速推理的实时审核
- 无服务器环境部署
- 边缘设备毒性检测
- 多平台应用程序
限制说明
- 分词器需要单独加载(从原始PyTorch模型)
- 针对短口语表达进行了优化,对长文本或依赖上下文的有害性检测存在局限性
- 可能存在误判(假阳性/假阴性)
- 无法检测训练数据中未包含的新类型有害表达
技术详情
- 转换方法: torch.onnx.export with dynamo=True
- 外部数据: 已嵌入模型中(单个文件)
- 验证: 已确认与PyTorch模型输出一致
- 优化: 已应用ONNX标准优化
许可证
Apache 2.0
相关链接
- 原始PyTorch模型: b4c0n/KAi-Toxicity-Filter
- 基础模型: tohoku-nlp/bert-base-japanese-v3
- 数据集: inspection-ai/japanese-toxic-dataset
English
Model Description
This is the ONNX-optimized version of b4c0n/KAi-Toxicity-Filter, offering improved inference speed and deployment flexibility.
ONNX Benefits
- ✅ Faster Inference: Optimized for speed compared to PyTorch
- ✅ Lightweight Deployment: No PyTorch dependency, ONNX Runtime only
- ✅ Cross-Platform: Compatible with C++, C#, Java, JavaScript, etc.
- ✅ Edge Device Ready: Easy deployment on IoT and mobile devices
Model Details
- Original Model: b4c0n/KAi-Toxicity-Filter
- Base Architecture: BERT (tohoku-nlp/bert-base-japanese-v3)
- Task: Binary Text Classification (toxic/not-toxic)
- ONNX Opset: 18
- Model Size: ~426 MB (single file)
Performance
Maintains equivalent accuracy to the original PyTorch model:
- Accuracy: 86.32%
- F1 Score: 70.68%
- Precision: 72.31%
- Recall: 69.12%
Inference output difference: < 0.000001 (virtually identical)
Usage
Python (ONNX Runtime)
import onnxruntime as ort
import numpy as np
from transformers import AutoTokenizer
# Load tokenizer from original model
tokenizer = AutoTokenizer.from_pretrained("b4c0n/KAi-Toxicity-Filter")
# Create ONNX session
session = ort.InferenceSession("toxicity_model.onnx")
# Tokenize text
text = "toxic expression"
inputs = tokenizer(text, return_tensors="np", padding=True, truncation=True, max_length=512)
# Run inference
onnx_inputs = {
"input_ids": inputs["input_ids"].astype(np.int64),
"attention_mask": inputs["attention_mask"].astype(np.int64),
"token_type_ids": inputs["token_type_ids"].astype(np.int64)
}
outputs = session.run(None, onnx_inputs)
# Convert to probabilities with softmax
logits = outputs[0][0]
exp_logits = np.exp(logits - np.max(logits))
probs = exp_logits / exp_logits.sum()
print(f"Toxic probability: {probs[1]:.2%}")
print(f"Not-toxic probability: {probs[0]:.2%}")
Installation
pip install onnxruntime transformers
For GPU support:
pip install onnxruntime-gpu transformers
File Structure
KAi-Toxicity-Filter-ONNX/
├── toxicity_model.onnx # ONNX model (single file with embedded external data)
└── README.md
Note: Tokenizer not included. Load from original model b4c0n/KAi-Toxicity-Filter.
Intended Use
Developed for KAi (KaisabaGroupAI) to detect and filter harmful content in Japanese text.
Primary Use Cases:
- Real-time moderation requiring fast inference
- Serverless environment deployment
- Edge device toxicity detection
- Multi-platform applications
Limitations
- Tokenizer must be loaded separately from the original PyTorch model
- Optimized for short colloquial expressions; limited for long texts or context-dependent toxicity
- May have false positives/negatives
- Cannot detect new types of toxic expressions not present in training data
Technical Details
- Conversion Method: torch.onnx.export with dynamo=True
- External Data: Embedded in model (single file)
- Validation: Output verified against PyTorch model
- Optimization: Standard ONNX optimizations applied
License
Apache 2.0
Related Links
- Original PyTorch Model: b4c0n/KAi-Toxicity-Filter
- Base Model: tohoku-nlp/bert-base-japanese-v3
- Dataset: inspection-ai/japanese-toxic-dataset
b4c0n/KAi-Toxicity-Filter-ONNX
作者 b4c0n
创建时间: 2026-01-02 07:36:40+00:00
更新时间: 2026-01-02 07:42:12+00:00
在 Hugging Face 上查看