一、项目简介
FlagEmbedding是由FlagOpen团队开发的一款开源库,主要用于对词语、句子甚至篇章进行深度的语义表示。它的主要目标是通过计算词向量,捕捉词汇之间的语义关系,从而实现更精确的文本理解和信息提取。
二、应用场景
FlagEmbedding广泛适用于各种NLP任务,包括但不限于:
- 文本分类:自动识别文本的主题或情感。
- 问答系统:从大量信息中检索相关答案。
- 机器翻译:在不同语言之间进行准确的转换。
- 命名实体识别:识别文本中的专有名词。
- 对话生成:构建智能聊天机器人。
三、项目地址
github地址:GitHub - FlagOpen/FlagEmbedding: Retrieval and Retrieval-augmented LLMs
四、安装部署
(一)硬件环境
作者目前的硬件条件
1.操作系统:windows 10
2.硬件条件:16G
(二)源文件安装部署
注意:为了不破坏系统本身的环境,需要安装一个Anaconda,保证本身系统不被污染。
1.安装Anaconda
2.选择磁盘和目录,我选择D盘根目录
3.在D盘输入cmd 打开命令提示符面板
4.克隆并安装FlagEmbedding
(1)给FlagEmbedding提供一个独立环境,并指定python版本
conda create -n flagembedding python=3.11
-n 指定创建环境的名称
(2)激活embedding环境
conda activate flagembedding
(3)克隆embedding并安装
git clone https://github.com/FlagOpen/FlagEmbedding.git
cd FlagEmbedding
pip install .
#在可编辑的情况下安装
pip install -e .
注意:在执行pip install . 命令的时候会出现很多环境问题,依次安装即可。
比如:ERROR: Could not find a version that satisfies the reguirement torch>=1.6.0
解决方法:安装torch版本大于等于1.6.0即可。
安装命令:
可选指定torch的版本。未选默认安装最新
# 直接安装torch
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple
# -i 是指定国内镜像地址,下载速度更快
# 如果上面命令不行,直接安装一整套的环境
conda install pytorch torchvision -c pytorch
比如:ERROR: Could not find a version that satisfies the requirement ransformers>=4.33.0
解决方法:安装transformers
pip install transformers==4.33 -i https://pypi.tuna.tsinghua.edu.cn/simple
后面遇到类似的问题,都是下载对应环境依赖即可。
(4)测试
① 在D盘的FlagEmbedding这个目录下,新建一个test.py的文件编写以下内容
# 首先,加载一个BGE向量模型:
from FlagEmbedding import FlagModel
model = FlagModel('BAAI/bge-base-en-v1.5',
query_instruction_for_retrieval="Represent this sentence for searching relevant passages:",use_fp16=True)
# 将语句作为模型输入,得到向量:
sentences_1 = ["I love NLP", "I love machine learning"]
sentences_2 = ["I love BGE", "I love text retrieval"]
embeddings_1 = model.encode(sentences_1)
embeddings_2 = model.encode(sentences_2)
# 取得向量后,通过内积计算相似度:
similarity = embeddings_1 @ embeddings_2.T
print(similarity)
② 在D盘的FlagEmbedding下,运行test.py
python test.py
会输出语句的相识度 如下图所示:
到此,FlagEmbedding向量模型 在windows环境下搭建成功。