AI开发-python-langchain框架(3-1-向量化 )

张开发
2026/4/15 0:33:29 15 分钟阅读

分享文章

AI开发-python-langchain框架(3-1-向量化 )
all-MiniLM-L6-v2是Sentence-BERTSBERT系列中最经典、最常用的轻量级文本嵌入模型核心作用和特点如下1. 核心功能文本→向量的 语义转换器该模型的核心作用是将任意长度的文本句子 / 短语 / 短段落转换为固定维度384 维的稠密向量也叫嵌入向量 / Embedding且转换后的向量具备以下关键特性语义关联性语义相似的文本生成的向量在向量空间中的距离也更近比如 猫抓老鼠 和 猫咪捉老鼠 的向量相似度极高数值归一化输出向量默认做了 L2 归一化可直接用于余弦相似度计算多语言兼容对中文、英文等主流语言都有较好的语义捕捉能力无需额外适配。2. 典型应用场景为什么这个模型被广泛使用表格应用场景具体作用文本相似度计算计算两个句子的余弦相似度用于查重、语义匹配如问答匹配、文本聚类向量检索RAG 核心将文本向量存入向量数据库如 FAISS/Milvus实现 语义检索而非关键词检索文本分类 / 聚类用生成的向量作为特征输入训练轻量级分类器如情感分析、意图识别大模型 RAG 增强作为 RAG检索增强生成的核心组件将用户问题和知识库文本转为向量实现精准检索3. 模型的核心优势为什么选它而非其他模型轻量级模型体积小约 800MB、推理速度快适合本地部署或低算力场景效果均衡在 速度 - 效果 权衡中表现最优384 维向量既保证语义信息量又避免维度爆炸易用性通过 SentenceTransformer 库可一键加载无需手动处理分词、模型微调等复杂步骤开源免费基于 MIT 协议可商用无版权限制。4. 补充说明该模型的输出维度固定为 384 维是 MiniLM 系列简化版 BERT的优化版本若需要更高的语义精度可选择all-mpnet-base-v2768 维效果更好但体积更大若需要更低的算力消耗可选择all-MiniLM-L4-v2384 维推理更快。看看代码部分1234567891011121314151617181920212223242526272829303132# 导入SentenceTransformer库该库专门用于加载和使用预训练的句子/文本嵌入模型fromsentence_transformersimportSentenceTransformer# 核心配置 # 本地模型文件的存储路径需确保该路径下有完整的all-MiniLM-L6-v2模型文件model_pathD:\\pythonProject2024\\pythonProject\\modelTest\\model\\all-MiniLM-L6-v2# 模型加载 # 加载本地预训练的all-MiniLM-L6-v2模型# 该模型是轻量级的句子嵌入模型核心用于将文本转换为固定维度的向量表示modelSentenceTransformer(model_path)# 示例文本 # 待生成向量嵌入的示例文本列表支持多语言中文/英文均可sentences[这是第一个示例句子,这是第二个示例句子,Hello, how are you?]# 生成向量嵌入 # 调用模型的encode方法将文本列表转换为向量嵌入# encode方法会自动完成文本预处理分词、归一化→ 模型推理 → 向量归一化的全流程embeddingsmodel.encode(sentences)# 结果输出 # 打印向量维度all-MiniLM-L6-v2固定输出384维向量print(f向量维度: {embeddings.shape[1]})# 输出: 向量维度: 384# 遍历打印每个句子的向量仅显示前5个元素避免输出过长fori, embeddinginenumerate(embeddings):print(f句子 {i1} 的向量: {embedding[:5]}...)# 示例输出: 句子 1 的向量: [0.0123, -0.0456, 0.0789, 0.0234, -0.0567]...数据结果向量维度: 384句子 1 的向量: [-0.01811877 0.10055622 0.07948062 0.00487238 0.02543747]...句子 2 的向量: [-0.05084108 0.09896706 0.01865453 -0.02641223 -0.04201426]...句子 3 的向量: [ 0.01909676 0.03446515 0.09162795 0.07016529 -0.02994661]...补充说明向量的维度是由选择的向量模型决定的python环境的依赖如下12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485annotated-types0.7.0anyio4.12.0certifi2025.11.12charset-normalizer3.4.4click8.3.1dataclasses-json0.6.7faiss-cpu1.13.0fastapi0.128.0h110.16.0httpcore1.0.9httpx0.28.1httpx-sse0.4.3huggingface-hub0.36.0idna3.11Jinja23.1.6jiter0.12.0jsonschema4.25.1jsonschema-specifications2025.9.1langchain0.1.20langchain-classic1.0.0langchain-community0.0.38langchain-core0.2.43langchain-experimental0.0.54langchain-milvus0.3.1langchain-openai0.0.5langchain-text-splitters0.0.2langchainhub0.1.21langdetect1.0.9langgraph0.1.10langgraph-checkpoint3.0.1langgraph-prebuilt1.0.5langgraph-sdk0.2.14langsmith0.1.147lark1.3.1MarkupSafe3.0.3marshmallow3.26.1multidict6.7.0mypy_extensions1.1.0numpy1.26.4openai1.109.1orjson3.11.5ormsgpack1.12.0overrides7.7.0packaging23.2pandas2.3.3pydantic2.12.5pydantic-settings2.12.0pydantic_core2.41.5Pygments2.19.2pymilvus2.5.0python-dateutil2.9.0.post0python-dotenv1.2.1python-multipart0.0.22pytz2025.2referencing0.37.0regex2025.11.3requests2.32.5requests-toolbelt1.0.0rpds-py0.30.0safetensors0.7.0scikit-learn1.7.2scipy1.16.3sentence-transformers5.1.2six1.17.0sniffio1.3.1SQLAlchemy2.0.44starlette0.50.0tenacity8.5.0threadpoolctl3.6.0tiktoken0.5.2tokenizers0.22.1torch2.9.1tqdm4.67.1transformers4.57.3types-requests2.32.4.20260107typing-inspect0.9.0typing-inspection0.4.2typing_extensions4.15.0tzdata2025.2ujson5.11.0unstructured0.18.21unstructured-client0.42.4urllib32.6.0uvicorn0.40.0yarl1.22.0

更多文章