在AI的快速发展世界中,大型语言模型正在以速度,准确性和成本效益来推动界限。 DeepSeek R1最近发布的开源模型与Openai的O1相抗衡,是AI领域中的热门话题,尤其是考虑到其成本较低的27倍和卓越的推理能力。将其与QDRANT的二进制量化配对,以进行高效和快速的向量搜索,我们可以将超过1,000页文档索引。在本文中,我们将创建一个Bhagavad Gita AI助手,能够索引1,000页,使用GROQ在几秒钟内回答复杂的查询,并提供具有特定于域的精度的见解。
>
学习目标>本文是> > data Science Blogathon的一部分。 内容表
deepSeek r1 vs openai o1
数据摄入:900页的Bhagavad gita pdf分为文本块。 嵌入:QDrant Fastembed的文本对矢量嵌入模型。
>向量DB:带有BQ商店嵌入的QDRANT,启用毫秒搜索。>对于文档索引,我们将使用COLAB的A
完成安装后,让我们导入所需的模块。
!pip install llama-index !pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed !pip install llama-index-readers-file !pip install llama-index-llms-groq
Qdrant的快感是一个轻巧,快速的Python库,旨在有效地嵌入生成。它支持流行的文本模型,并利用量化的模型权重以及推理的ONNX运行时,确保高性能而没有较重的依赖性。
要将文本块转换为嵌入,我们将使用Qdrant的快速介绍。我们分批处理50个文档以有效地管理内存。
>import logging import sys import os import qdrant_client from qdrant_client import models from llama_index.core import SimpleDirectoryReader from llama_index.embeddings.fastembed import FastEmbedEmbedding from llama_index.llms.groq import Groq # deep seek r1 implementation
>是时候配置我们的矢量数据库QDRANT客户端,并具有优化的性能设置。我们创建了一个名为“ Bhagavad-Gita”的集合,该集合具有特定的向量参数,并启用了二进制量化以进行有效的存储和检索。
有三种使用QDRANT客户端的方法:
>我们首先检查带有指定Collection_name的集合是否存在于Qdrant中。如果不是这样,只有然后我们创建一个配置为存储1,024维向量的新集合,并使用余弦相似性进行距离测量。
data = SimpleDirectoryReader("data").load_data() texts = [doc.text for doc in data] embeddings = [] BATCH_SIZE = 50
step4:索引文档
索引过程将我们的处理过的文档及其嵌入到批处理中。每个文档都与其向量表示并存,创建一个可搜索的知识库。
embed_model = FastEmbedEmbedding(model_name="thenlper/gte-large") for page in range(0, len(texts), BATCH_SIZE): page_content = texts[page:page + BATCH_SIZE] response = embed_model.get_text_embedding_batch(page_content) embeddings.extend(response)
的抹布管道
process-1:r-检索相关文档>搜索功能采用用户查询,将其转换为嵌入,并根据余弦相似性从Qdrant中检索最相关的文档。我们通过有关Bhagavad-Gītā的示例查询进行了证明,展示了如何访问和打印检索到的上下文。
!pip install llama-index !pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed !pip install llama-index-readers-file !pip install llama-index-llms-groq
对于抹布,使用chatprompttemplate定义系统的交互模板很重要。该模板创建了一个专业的助手,在Bhagavad-Gita中知识渊博,能够理解多种语言(英语,印地语,梵语)。
答案是否。 step6:保存的索引推理
step7:简化UI >
如果您注意到响应输出,则格式为< think>推理</think>响应。 聊天机器人组件 >在Sparlit的会话状态中初始化消息历史记录。侧边栏中的“清晰聊天”按钮使用户可以重置此历史记录。 剩下的代码是一种标准格式,用于在简化中定义聊天机器人组件,即输入处理为用户问题创建输入字段。提交问题时,将显示并将其添加到消息历史记录中。现在,它可以通过RAG管道处理用户的问题,同时显示加载旋转器。响应分为思考过程和回答组件。 钥匙要点import logging
import sys
import os
import qdrant_client
from qdrant_client import models
from llama_index.core import SimpleDirectoryReader
from llama_index.embeddings.fastembed import FastEmbedEmbedding
from llama_index.llms.groq import Groq # deep seek r1 implementation
>最终管道将所有内容融合在一起。它遵循检索仪式生成模式:检索相关文档,使用我们的专业及时模板增强它们,并使用LLM生成响应。在这里,我们将使用deepSeek r-1蒸馏羊lama 70 B托管在Groq上,从这里获取您的钥匙:Groq Console。data = SimpleDirectoryReader("data").load_data()
texts = [doc.text for doc in data]
embeddings = []
BATCH_SIZE = 50
embed_model = FastEmbedEmbedding(model_name="thenlper/gte-large")
for page in range(0, len(texts), BATCH_SIZE):
page_content = texts[page:page + BATCH_SIZE]
response = embed_model.get_text_embedding_batch(page_content)
embeddings.extend(response)
>您已经编写的内容没有太大差异。我们将重复使用相同的搜索和管道功能以及我们需要运行query_points的收集名称。
collection_name = "bhagavad-gita"
client = qdrant_client.QdrantClient(
#location=":memory:",
url = "QDRANT_URL", # replace QDRANT_URL with your endpoint
api_key = "QDRANT_API_KEY", # replace QDRANT_API_KEY with your API keys
prefer_grpc=True
)
请记住,当用户输入问题时,快速培训将仅下载一次模型权重,GROQ和QDRANT INTANTITION也是如此。if not client.collection_exists(collection_name=collection_name):
client.create_collection(
collection_name=collection_name,
vectors_config=models.VectorParams(size=1024,
distance=models.Distance.COSINE,
on_disk=True),
quantization_config=models.BinaryQuantization(
binary=models.BinaryQuantizationConfig(
always_ram=True,
),
),
)
else:
print("Collection already exists")
for idx in range(0, len(texts), BATCH_SIZE):
docs = texts[idx:idx + BATCH_SIZE]
embeds = embeddings[idx:idx + BATCH_SIZE]
client.upload_collection(collection_name=collection_name,
vectors=embeds,
payload=[{"context": context} for context in docs])
client.update_collection(collection_name= collection_name,
optimizer_config=models.OptimizersConfigDiff(indexing_threshold=20000))
!pip install llama-index
!pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed
!pip install llama-index-readers-file
!pip install llama-index-llms-groq
重要链接
结论
通过将Deepseek R1的推理,QDRANT的二进制量化和LlamainDex的RAG管道结合起来,我们建立了一个AI助手,该AI助手交出了Seviressub-2-Second Second Secondson 1,000页。该项目强调了特定于领域的LLM和优化的向量数据库如何使对古代文本的访问民主化,同时保持成本效率。随着开源模型的不断发展,利基AI应用程序的可能性是无限的。
DeepSeek R1竞争对手Openai O1以1/27的成本推理,非常适合特定于领域的任务,例如圣经分析,而OpenAI适合更广泛的知识需求。
使用llamaindex和qdrant的文档处理,嵌入生成和矢量存储的演示代码示例了解抹布管道实现。
以上是建立一名博伽梵歌AI助手的详细内容。更多信息请关注PHP中文网其他相关文章!