Skip to content

ahsd-coder/Intent-Classify

Repository files navigation

一.训练模型

python3 training_code/train_tfidf.py
python3 training_code/train_bert.py

二.压测服务

cd test/

ab -n 100 -c 100 -p data.json -T 'application/json' -H 'accept: application/json' 'http://0.0.0.0:8000/v1/text-cls/regex'
ab -n 100 -c 100 -p data.json -T 'application/json' -H 'accept: application/json' 'http://0.0.0.0:8000/v1/text-cls/tfidf'
ab -n 100 -c 100 -p data.json -T 'application/json' -H 'accept: application/json' 'http://0.0.0.0:8000/v1/text-cls/bert'

三.接口

curl -X 'POST' \
  'http://0.0.0.0:8000/v1/text-cls/tfidf' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "request_id": "string",
  "request_text": "帮我播放周杰伦的歌曲"
}'

四.部署

(1)只有后端时启动

fastapi run main.py

(2)后端+前端启动

uvicorn main:app --host 0.0.0.0 --port 8000
解释:Uvicorn是一个ASGI服务器,负责接收HTTP请求并转发给FastAPI应用处理。FastAPI本身只是一个框架,不负责网络监听;uvicorn才是真正"跑起来"的那个进程
main:app → main是Python模块名,对应main.py文件;app是该模块里的变量,即main.py里的app = FastAPI()
uvicorn会先 import main,然后拿到main.py里的FastAPI实例,开始监听请求

五.推广

可以重新找一个公开数据集(比如在魔搭社区的数据集),或直接标注一个文本分类数据集(推荐3个以上的类别个数),复现加载bert base 模型在新数据集上的微调过程。最终输入一个新的样本进行测试,验证分类效果是否准确。

六.意图识别方式

本项目介绍了意图识别常用的三个方法:
1.关键词匹配。写规则。好处是简单快,坏处是说法稍微变一下就抓不到了,并且容易误命中
2.模型分类。用一个专门训练过的语言理解模型做分类(本项目有TFIDF/BERT)
3.大模型判断:直接把用户输入喂给大语言模型,让它判断意图,不需要训练,但速度慢、成本高,适合长尾场景或刚起步阶段。

对于一个高频场景,通常的选择是:模型分类做主力,关键词规则兜底,大模型处理没见过的长尾说法。三个分开用,别指望一个方案全搞定。

七.置信度

置信度就是模型对自己判断结果的把握程度,范围0到1。1是完全确定,0是完全不知道
  ┌────────────────────┬────────────────────┬────────────┐
  │        路由        │     置信度来源     │   值范围     │
  ├────────────────────┼────────────────────┼────────────┤
  │ /v1/text-cls/bert  │ softmax 概率       │ 0 ~ 1       │
  ├────────────────────┼────────────────────┼────────────┤
  │ /v1/text-cls/tfidf │ predict_proba 概率 │ 0 ~ 1       │
  ├────────────────────┼────────────────────┼────────────┤
  │ /v1/text-cls/regex │ 固定值             │ 1.0 或 0.0  │
  ├────────────────────┼────────────────────┼────────────┤
  │ /v1/text-cls/gpt   │ 固定值             │ 1.0         │
  └────────────────────┴────────────────────┴────────────┘

About

利用机器学习、深度学习、大模型进行的一个意图识别项目

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages