之前尝试使用ModelScope搭建了一个共用公开的模型,现在想试试依据本地私有化知识库搭建一个专有模型,应该怎么把自己准备的相关资料/材料灌进去啊
要基于本地私有化知识库搭建一个专有模型,您可以按照以下步骤操作。这些步骤涵盖了从数据准备到模型部署的完整流程,确保您的私有知识能够被有效利用。
首先,您需要准备好用于构建知识库的相关资料或材料。这些资料可以是文档、文本文件或其他非结构化数据。
上传知识文档
如果您使用的是阿里云百炼平台,可以通过以下方式上传知识文档:
.docx
、.pdf
等)上传到默认类目中。本地数据处理
如果您计划在本地环境中处理数据,可以参考以下方法:
.txt
或.json
)。示例代码如下:
import os
def prepare_data(path, batch_size=25):
batch_docs = []
for file in os.listdir(path):
with open(os.path.join(path, file), 'r', encoding='utf-8') as f:
batch_docs.append(f.read())
if len(batch_docs) == batch_size:
yield batch_docs
batch_docs = []
if batch_docs:
yield batch_docs
将准备好的数据转化为向量形式,并存储到向量数据库中,以便后续检索和问答。
使用百炼平台构建知识库
百炼平台提供了零代码构建知识库的能力:
本地向量化与存储
如果您希望在本地环境中完成向量化,可以参考以下步骤:
pip install dashvector dashscope
将向量化后的数据存储到向量数据库(如DashVector)中。示例代码如下:
from dashvector import Client
from dashscope import TextEmbedding
# 初始化DashVector客户端
client = Client(api_key="your-api-key")
collection = client.create_collection("knowledge_base")
# 文本向量化
embedding_model = TextEmbedding(model="text-embedding-model")
for batch in prepare_data("path/to/your/data"):
embeddings = embedding_model.embed(batch)
collection.insert(embeddings)
完成知识库构建后,需要将知识库与模型结合,以实现基于私有知识的问答服务。
使用百炼平台配置模型
本地模型部署
如果您希望在本地环境中部署模型,可以参考以下步骤:
modelscope download -model 'iic/nlp_gte_sentence-embedding_chinese-large' -local_dir 'modelscope/iic/nlp_gte_sentence-embedding_chinese-large'
修改代码中的嵌入模型配置,启用本地模型:
from langchain_community.embeddings import ModelScopeEmbeddings
from llama_index.embeddings.langchain import LangchainEmbedding
embeddings = ModelScopeEmbeddings(model_id="modelscope/iic/nlp_gte_sentence-embedding_chinese-large")
EMBED_MODEL = LangchainEmbedding(embeddings)
MODEL_ID
、TASK
、REVISION
),并单击部署。完成上述步骤后,您需要对模型进行测试,确保其能够正确回答基于私有知识的问题。
测试问答功能
在应用界面或本地环境中发起提问,验证模型的回答是否符合预期。例如:
发布应用
如果测试结果满意,可以在百炼平台中点击发布按钮,将应用正式上线。
通过以上步骤,您可以成功搭建一个基于本地私有化知识库的专有模型,并实现高效的问答服务。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352