MiniLMv2-agentflow-v2-onnx项目介绍
项目概述
MiniLMv2-agentflow-v2-onnx是一个基于ONNX格式量化的文本分类模型,用于识别大语言模型(LLM)在对话中的常见事件和模式。这些事件包括对错误的道歉,即LLM在承认错误时的表达方式。该模型提供的流标识可以为复杂的LLM分析提供基础元素。
该模型是从MiniLMv2-L6-H384微调而来的,主要应用于LLM代理文本,而非用户文本。如果需要处理用户文本,可以使用另一个专用的模型。
主要功能
MiniLMv2-agentflow-v2-onnx通过分类来判断对话中不同的LLM代理事件,如:
- 道歉错误误解:当代理承认在信息提供或请求处理方面出现错误或误解时会标识为这种情况。
- 不理解:指代理没有理解用户的请求或问题。
- 拒绝回答:因政策限制或道德考虑,代理拒绝回答问题或履行请求。
- 成功并提供后续帮助:代理成功提供了所需信息或服务,并提供进一步帮助或后续行动选择。
这些分类帮助用户更好地理解和分析对话中的LLM代理行为。
使用说明
安装Optimum工具
Optimum是一个优化器,支持ONNX模型的推理。安装方法如下:
python -m pip install optimum[onnxruntime]@git+https://github.com/huggingface/optimum.git
运行模型
可以通过以下Python代码快速运行模型,以便于将文本输入进行分类:
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer, pipeline
model = ORTModelForSequenceClassification.from_pretrained('minuva/MiniLMv2-agentflow-v2-onnx', provider="CPUExecutionProvider")
tokenizer = AutoTokenizer.from_pretrained('minuva/MiniLMv2-agentflow-v2-onnx', use_fast=True, model_max_length=256, truncation=True, padding='max_length')
pipe = pipeline(task='text-classification', model=model, tokenizer=tokenizer, )
texts = ["My apologies", "Im not sure what you mean"]
pipe(texts)
输出结果会提供每条输入文本的标签和对应的可信度评分。
与ONNX Runtime的集成
ONNX Runtime是该模型最轻量化的部署方案之一。使用ONNX Runtime进行模型运行,可以有效减低部署成本并提升效率。用户可以直接使用Python安装onnxruntime
和tokenizers
来实现。
测试数据集中的性能指标
在我们的私有测试数据集中,该模型展现了极高的准确性和表现。具体指标如下:
模型版本 | Loss | 准确性 | F1分数 |
---|---|---|---|
minuva/MiniLMv2-agentflow-v2 (33M) | 0.1462 | 0.9616 | 0.9618 |
minuva/MiniLMv2-agentflow-v2-onnx (33M) | - | 0.9624 | 0.9626 |
这种高准确性的表现表明该模型在识别和分类不同对话事件方面具有很好的稳定性与可靠性。
部署
用户可以查看我们的llm-flow-classification repository,以获取基于FastAPI和ONNX的服务器部署方案,适用于CPU设备的在线推理服务。