
































文本关键字搜索分两类:
本地离线优先:小参数、中文友好、支持 INT4/INT8 量化、GGUF 格式。
适合做关键词提取、文本摘要、语义理解,本地 CPU/GPU 都能跑。
| 模型 | 参数 | 量化后大小 | 特点 | 适用场景 |
|---|---|---|---|---|
| Qwen-1.8B-Instruct | 1.8B | ~2GB (INT4) | 中文极强、速度快、开源商用友好 | 关键词抽取、短文本理解 |
| Qwen-0.5B-Instruct | 0.5B | ~500MB | 超轻量、CPU 秒级 | 边缘 / 低配置设备 |
| ChatGLM3-6B | 6B | ~3GB (INT4) | 中文经典、稳定 | 通用关键词 / 语义检索 |
| DeepSeek-R1-Distill-Qwen-1.5B | 1.5B | ~1.5GB | 推理强、适合 RAG | 本地知识库检索 |
| Phi-3-mini-4K-Instruct | 3.8B | ~2GB (INT4) | 小而强、支持长上下文 | 高质量关键词 / 摘要 |
推荐首选:Qwen-1.8B-Instruct(中文最好、最轻量、速度最快)。
做文本→向量,用于语义相似度搜索,比 LLM 快 10–100 倍。
| 模型 | 大小 | 特点 | 适用 |
|---|---|---|---|
| BGE-small-zh-v1.5 | ~100MB | 中文 SOTA、轻量、CPU 友好 | 本地语义检索首选 |
| BGE-m3 | ~400MB | 多语言、长文本、检索更强 | 大规模文档库 |
| all-MiniLM-L6-v2 | ~80MB | 超轻、通用 | 极简场景 |
| KaLM-embedding-mini | ~200MB | 0.5B、中英、低资源 | 边缘 / 嵌入式 |
推荐首选:BGE-small-zh-v1.5(中文最好、最小、最快)。
适合本地文档 / 笔记 / 知识库的语义搜索,100% 离线。
# 安装依赖
# pip install sentence-transformers faiss-cpu numpy
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
# 1. 加载嵌入模型(本地离线)
model = SentenceTransformer('BAAI/bge-small-zh-v1.5') # 自动下载到本地
# 2. 你的本地文本库
docs = [
"工业物联网设备振动监测方案",
"声纹识别在电力设备故障诊断中的应用",
"多模态数据融合的智能监测系统",
"FunASR语音识别本地部署教程"
]
# 3. 生成向量并建库
embeddings = model.encode(docs, convert_to_numpy=True)
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
# 4. 关键字/语义搜索
query = "语音识别本地部署"
query_emb = model.encode([query], convert_to_numpy=True)
D, I = index.search(query_emb, k=3) # 取Top3
# 输出结果
print("搜索结果:")
for i in I[0]:
print(f"- {docs[i]}")
用Qwen-1.8B做关键词抽取,再用BGE做检索。
# 安装:pip install transformers torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# 加载Qwen-1.8B(本地离线)
model_name = "Qwen/Qwen-1_8B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
).eval()
# 关键词抽取Prompt
text = "工业物联网中多模态数据(振动、声学、红外)用于设备故障诊断与安全监测"
prompt = f"从以下文本中提取3个核心关键词:\n{text}\n关键词:"
# 推理
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=50, temperature=0.1)
keywords = tokenizer.decode(outputs[0], skip_special_tokens=True).split("关键词:")[-1].strip()
print("抽取关键词:", keywords) # 输出:工业物联网, 多模态数据, 故障诊断
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。