安装 Embedding 模型所需环境(完整指南)

1. 引言

Embedding 模型是 RAG(检索增强生成)、语义搜索、文本相似度计算等应用的核心组件。在开始使用 Embedding 模型之前,我们需要先搭建好运行环境。本文将详细介绍安装 Embedding 所需的环境,涵盖 Python 环境、依赖库、模型下载与验证等步骤。

2. 环境准备概览

在安装 Embedding 模型之前,我们需要准备以下环境:

  • Python 3.8+:主流 Embedding 库均要求 Python 3.8 及以上版本。
  • pip 包管理器:用于安装 Python 依赖库。
  • 网络环境:用于下载模型权重文件(若使用本地模型)。
  • 可选 GPU 环境:若需加速推理,可安装 CUDA 与 cuDNN。

3. 安装 Miniconda 并创建环境

3.1 下载并安装 Miniconda

你的场景是下载了 Miniconda3-py39_23.10.0-Linux-x86_64.sh,这是基于 Python 3.9 的 Miniconda 安装脚本。在终端中执行以下命令进行安装:

bash 复制代码
# 赋予执行权限
chmod +x Miniconda3-py39_23.10.0-Linux-x86_64.sh

# 运行安装脚本
bash Miniconda3-py39_23.10.0-Linux-x86_64.sh

安装过程中按提示操作:

  • 按 Enter 阅读许可协议,输入 yes 接受协议。
  • 选择安装路径(默认 ~/miniconda3 即可)。
  • 询问是否初始化 conda 时,输入 yes,这样会自动配置 ~/.bashrc。

安装完成后,重新加载配置文件:

bash 复制代码
source ~/.bashrc

3.2 验证 conda 与 Python 版本

输入以下命令验证安装是否成功:

bash 复制代码
conda --version
bash 复制代码
python --version

如果输出类似 conda 23.10.0 和 Python 3.9.18,说明 Miniconda 安装成功。由于该安装包自带 Python 3.9,无需再单独安装 Python。

3.3 创建独立的 conda 环境(推荐)

为了避免依赖冲突,建议为项目创建独立的 conda 环境:

bash 复制代码
# 创建环境(指定 Python 版本)
conda create -n embedding_env python=3.9 -y

# 激活环境
conda activate embedding_env

激活后,终端提示符前会出现 (embedding_env) 前缀,表示已进入该环境。后续的依赖安装都在此环境中进行。

4. 安装核心依赖库

4.1 安装 sentence-transformers

sentence-transformers 是最常用的 Embedding 库之一,它封装了 Hugging Face 的 Transformers 模型,使用非常方便:

bash 复制代码
pip install sentence-transformers

4.2 安装 transformers 与 torch

如果只需要底层能力,也可以直接安装 transformers 和 torch:

bash 复制代码
pip install transformers torch

提示:torch 体积较大,若使用 GPU 版本,请根据 CUDA 版本选择对应的安装命令,详见下文「GPU 环境配置」。

4.3 安装其他常用依赖

根据实际需求,可能还需要安装以下库:

bash 复制代码
pip install numpy scikit-learn
  • numpy:数值计算基础库。
  • scikit-learn:用于计算余弦相似度等指标。

5. 下载 Embedding 模型

5.1 使用 Hugging Face 模型

sentence-transformers 支持从 Hugging Face Hub 自动下载模型。首次使用时,只需指定模型名称即可:

python 复制代码
from sentence_transformers import SentenceTransformer

# 首次运行会自动下载模型
model = SentenceTransformer("BAAI/bge-small-zh-v1.5")

5.2 手动下载模型(离线环境)

如果网络环境受限,可以手动下载模型文件并放到本地目录:

bash 复制代码
# 使用 huggingface_hub 下载
pip install huggingface_hub

huggingface-cli download BAAI/bge-small-zh-v1.5 --local-dir ./models/bge-small-zh-v1.5

下载完成后,加载本地模型:

python 复制代码
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("./models/bge-small-zh-v1.5")

6. GPU 环境配置(可选)

如果希望使用 GPU 加速 Embedding 推理,需要额外安装 CUDA 环境。

6.1 安装 CUDA 与 cuDNN

  1. 前往 NVIDIA CUDA 下载页 下载并安装 CUDA Toolkit。
  2. 前往 NVIDIA cuDNN 下载页 下载对应版本的 cuDNN 并配置环境变量。

6.2 安装 GPU 版 PyTorch

安装 GPU 版 PyTorch 时,需要指定 CUDA 版本:

bash 复制代码
# 以 CUDA 11.8 为例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

安装完成后,验证 GPU 是否可用:

python 复制代码
import torch

print(torch.cuda.is_available())  # 输出 True 表示 GPU 可用

7. 验证环境是否安装成功

安装完成后,运行以下代码验证环境是否正常:

python 复制代码
from sentence_transformers import SentenceTransformer

# 加载模型
model = SentenceTransformer("BAAI/bge-small-zh-v1.5")

# 生成 Embedding
sentences = ["你好,世界", "Hello, World"]
embeddings = model.encode(sentences)

print("Embedding 维度:", embeddings.shape)
print("Embedding 向量:", embeddings)

如果正常输出 Embedding 向量,说明环境安装成功。

8. 常见问题排查

8.1 网络超时导致模型下载失败

可设置镜像源加速下载:

bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com

8.2 内存不足

如果模型过大导致内存不足,可尝试加载小模型,或使用 model.encode(..., batch_size=32) 减小批处理大小。

8.3 CUDA 不可用

检查 CUDA 版本与 PyTorch 是否匹配,可使用 nvidia-smi 查看 CUDA 版本。

9. 总结

本文介绍了安装 Embedding 模型所需环境的完整流程,包括 Python 环境搭建、核心依赖库安装、模型下载与验证,以及可选的 GPU 环境配置。按照上述步骤操作,即可顺利搭建 Embedding 模型的运行环境,为后续的 RAG、语义搜索等应用打下基础。

相关推荐
Light Gao7 小时前
Encoder 与 Decoder 详解:从 Embedding 到 Seq2Seq 的完整数据流
java·开发语言·embedding
Light Gao1 天前
RNN 原理、架构与一次完整手算
人工智能·rnn·深度学习·神经网络·embedding
91刘仁德4 天前
RAG实战-Embedding模型(BGE)
笔记·embedding·rag
田园诗人之园4 天前
一文搞懂 Token化、Embedding 与位置编码
embedding·位置编码·深度学习token
XLYcmy12 天前
大语言模型(LLM)核心技术梳理:从词元化到 RAG 的工程实践
自然语言处理·prompt·embedding·token·cot·tokenization·上下文工程
geminigoth13 天前
从零开始学习RAG——02 项目架构
embedding·rag架构·rag学习·faiss 索引·rag清洗提取·rag切片·向量化与索引
书源丶14 天前
Qwen3-Embedding-0.6B 纯 CPU
网络·语言模型·embedding·llama
牛油果子哥q19 天前
多模态大模型工程入门:图文Embedding、图文RAG、图片解析、C++多模态接口封装实战
开发语言·c++·embedding
ZYJCSZKJ20 天前
基于向量检索重排序与查询扩展的GEO优化:从Embedding空间视角提升区域实体引用率
embedding