【Java程序员转大模型开发 基础篇-文本向量模型 看这一篇全盘掌握】

【Java程序员转大模型开发 基础篇-文本向量模型 看这一篇全盘掌握】 前期知识回顾Java程序员转大模型开发 基础篇Java程序员转大模型开发 实战篇-rag系统连接redisJava程序员转大模型开发 基础篇-向量数据库 看这一篇全盘掌握文章目录前期知识回顾前言什么是文本向量模型为什么要使用向量模型相关网站推荐文本向量模型1.如何下载2.如何使用文本向量模型总结前言本文将为大家介绍智能体开发中的关键组件——文本向量模型。我们将从基本概念入手系统地讲解文本向量模型的定义、核心价值及应用场景。什么是文本向量模型文本向量模型本质上是通过数学转换将文本信息表示为固定维度的数值向量如768维或1024维。这种表示方式使计算机能够理解语义信息并计算文本间的相似度。为什么要使用向量模型在RAG项目开发中我们需要借助向量数据库实现信息检索功能关于向量数据库的详细介绍可参考这篇文章Java程序员转大模型开发 基础篇-向量数据库 看这一篇全盘掌握。为了将数据存入向量数据库我们需要使用各厂商提供的向量模型进行数据向量化转换。相关网站推荐Hugging Face 是一个专注于开源 AI 模型的平台该网站汇集了大量优质的开源模型代码资源。需要科学上网https://huggingface.co/maidalun1020/bce-embedding-base_v1/tree/main文本向量模型今天为大家介绍有道团队开源的文本向量模型BCE-Embedding-Base_v1。该模型已在Hugging Face平台开源接下来我将详细说明其使用方法。1.如何下载首先我们要下载这个BCE-Embedding-Base_v 推荐大家使用的方法是通过sentence_transformers 这个开源库进行模型下载。fromsentence_transformersimportSentenceTransformer# 自定义模型缓存路径替换成你想要的路径custom_cache_pathD:/trace/RagText/bce-embedding-base_v1# 加载模型自动下载到指定路径首次需联网modelSentenceTransformer(maidalun1020/bce-embedding-base_v1,cache_foldercustom_cache_path)# 验证生成向量说明模型下载成功vecmodel.encode(模型下载成功测试)print(f向量维度{len(vec)})print(f模型已保存到{custom_cache_path})成功下载模型后所需的可执行模型目录路径为2.如何使用文本向量模型首先我们需要引入的库为fromsentence_transformersimportSentenceTransformerimportjsonimportnumpyasnpimportchromadb在这里我们chromad的知识以及在之前的文章里面有过讲述感兴趣的朋友可以查看-Java程序员转大模型开发 基础篇-向量数据库 看这一篇全盘掌握。使用方式#创建初始模型modleSentenceTransformer(rbce-embedding-base_v1)# 对指令进行向量化 convert_to_numpyTrue 输出格式为 NumPy 数组instruction_embeddingsmodle.encode(instruction,convert_to_numpyTrue)#对转换的向量进行保存np.save(r./instruction_embeddings.npy,instruction_embeddings)以下是文本向量模型转换与存储的核心代码步骤。接下来我将演示一个简单示例使用bce-embedding-base_v1模型进行向量转换并通过chromadb向量数据库实现本地存储。#创建初始模型modleSentenceTransformer(rbce-embedding-base_v1)withopen(r./health_qa_500.json,encodingutf-8)asf:#将文本读取成字典datajson.load(f)#问题 data 其实是一个字典instruction[i[instruction]foriindata]#答案output[i[output]foriindata]# 对指令进行向量化 convert_to_numpyTrue 输出格式为 NumPy 数组instruction_embeddingsmodle.encode(instruction,convert_to_numpyTrue)np.save(r./instruction_embeddings.npy,instruction_embeddings)#指定数据库路径clientchromadb.PersistentClient(path./collection.pkl)#从向量数据库中创建一个集合collectionclient.create_collection(namehealth_qa)fori,(sen,emb)inenumerate(zip(instruction,instruction_embeddings)):collection.add(documents[sen],#原始文本问题 相当于书的标题embeddings[emb.tolist()],#向量问题生成相当于书的目录ids[fid{i}],metadatas[{output:output[i]}]# 存储原始文本答案相当于书的正文)我整理了 health_qa_500.json 文件有需要的朋友可以关注后私信我获取。总结以上就是关于文本向量数据库的介绍以及常见的使用方式。如有任何疑问欢迎通过私信或留言的方式联系我。