YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

望潮 TideWatcher

望潮(TideWatcher)是一个中文攻击性/毒性短文本检测模型,基于 MacBert 微调,是「守望」微博理性发言主动干预插件(weiboextension)的本地快检模型(c2 实装版)。名字取自望潮蟹:涨潮时在滩涂守望,退潮时归洞。

1. 解决什么问题

在微博等中文社交平台,用户常在情绪冲动时发出攻击性、侮辱性言论,既伤害他人,也让自己事后后悔。望潮在发言即将发出前对文本做快速攻击性检测,为插件提供触发"理性劝导"拦截的依据,给冲动一个缓冲。

模型采用 ONNX INT8 量化,纯 CPU 本地推理(不依赖任何 API),单条延迟约 34ms,适合浏览器插件场景下的实时检测。

2. 主要功能

  • 攻击性二分类打分:对中文短文本输出 0~1 的攻击概率
  • 分层判定:score > 0.9 定案攻击、score < 0.1 定案安全,中间区间交由上层大模型复核(与实装链路一致)
  • 本地推理:ONNX Runtime + CPU,无需 GPU、无需 API key、无网络依赖
  • 即插即用:提供 ONNX 权重与完整分词器,两行代码可加载

3. 安装方法

方式一(最简单,浏览器下载):打开本模型主页 → Files 标签 → 直接下载 model_int8.onnx 及分词器文件,放入本地任意 models/ 目录即可。

方式二(一条命令)

pip install huggingface_hub
huggingface-cli download RainbowLIght/tidewatcher-macbert-c2 --local-dir models/tidewatcher

方式三(一键脚本):下载本仓库 Files 里的 download_models.py,然后运行:

python download_models.py             # 下载全部文件(含原始权重)
python download_models.py --cpu-only  # 只下载实装 ONNX 版(98 MB,插件用)

自动拉取到 models/tidewatcher/(可用 -o 指定目录)。

4. 使用方法

import onnxruntime as ort
from transformers import AutoTokenizer

sess = ort.InferenceSession("model_int8.onnx", providers=["CPUExecutionProvider"])
tok = AutoTokenizer.from_pretrained(".")

def score(text: str) -> float:
    enc = tok(text, truncation=True, max_length=64,
              padding="max_length", return_tensors="np")
    feed = {k: v.astype("int64") for k, v in enc.items()}
    logits = sess.run(None, feed)[0][0]
    import math
    return 1.0 / (1.0 + math.exp(-(float(logits[1]) - float(logits[0]))))

5. 输入输出示例

输入 输出 score 判定
你真是个傻逼,去死吧 0.998 攻击(拦截)
nmsl 0.995 攻击(拦截)
这家店服务太差了 0.42 模糊区(交大模型复核)
今天天气不错,心情很好 0.02 安全(放行)
666 0.01 安全(放行)

技术细节

架构 MacBert(hfl/chinese-macbert-base 变体)
输入长度 max_len=64(与训练一致)
训练配置 c_macbert_lr3e-5_ep4
量化 ONNX 动态 INT8(98 MB)
性能 F1 0.9004(INT8 复测),延迟 mean 34 ms(CPU)
训练数据 自建标注数据集 + 公开中文冒犯性语言数据集(COLD,Apache-2.0),数据集将另行开源

文件说明

文件 说明
model_int8.onnx ONNX INT8 量化权重(实装版,插件实际使用)
model.safetensors 原始 PyTorch 权重(供微调/研究)
config.json / vocab.txt / tokenizer.json / tokenizer_config.json / special_tokens_map.json 模型配置与分词器

已知限制

  • 部分表达(玩梗、熟人调侃、阴阳怪气)存在语境依赖,实装中通过词表豁免与大模型复核缓解
  • 训练语料以微博场景的短句为主,迁移到其他平台/文体需重新评估
  • 本模型仅用于防攻击干预(劝导式拦截),不应被用于内容审查、身份画像或任何形式的压制性监控

许可证

Apache License 2.0

相关项目

Downloads last month
51
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support