目录
它的工作原理
步骤3:使用二进制量化的QDRANT设置
Process-2:A-增强提示
>您已经编写的内容没有太大差异。我们将重复使用相同的搜索和管道功能以及我们需要运行query_points的收集名称。
重要链接
结论
首页 科技周边 人工智能 建立一名博伽梵歌AI助手

建立一名博伽梵歌AI助手

Mar 05, 2025 am 11:39 AM

在AI的快速发展世界中,大型语言模型正在以速度,准确性和成本效益来推动界限。 DeepSeek R1最近发布的开源模型与Openai的O1相抗衡,是AI领域中的热门话题,尤其是考虑到其成本较低的27倍和卓越的推理能力。将其与QDRANT的二进制量化配对,以进行高效和快速的向量搜索,我们可以将超过1,000页文档索引。在本文中,我们将创建一个Bhagavad Gita AI助手,能够索引1,000页,使用GROQ在几秒钟内回答复杂的查询,并提供具有特定于域的精度的见解。

>

学习目标

    在qdrant中实现二进制量化,以进行内存效率的向量索引。
  • >
  • 了解如何使用DeepSeek R1,Qdrant和Llamaindex建立Bhagavad Gita AI助手进行有效的文本检索。
  • >
  • 学会用GROQ优化Bhagavad Gita AI助手,以快速,域特异性查询响应和大规模文档索引。
  • >
  • >使用llamaindex和快速培养的本地嵌入来处理1,000页的Bhagavad Gita。
  • 从GROQ的推断中集成了DeepSeek R1,以实时,低延迟响应。
  • >开发一个简化的UI,以展示具有思维透明度的AI驱动见解。

>本文是> > data Science Blogathon的一部分。 内容表

deepSeek r1 vs openai o1
  • >在向量数据库中的二进制量化是什么?
  • > DeepSeek R1 vs Openai O1
  • > DeepSeek R1挑战OpenAI在27X降低的API成本和接近标准的表现方面的主导地位。与OpenAI的O1关闭,基于订阅的模型(每月200美元)不同,DeepSeek R1 iSfree,开放源代码,并且是预算意识的项目和实验的理想之选。
  • >
  • 推理-ARC-AGI基准:[来源:Arc-Agi DeepSeek]
  • DeepSeek:20.5%准确性(公共),15.8%(半私有)。
  • OpenAI:21%准确性(公共),18%(半私人)。
  • 从我到目前为止的经验来看,DeepSeek在数学推理,与编码相关的用例和上下文感知的提示方面做得很好。
在向量数据库中的二进制量化是什么?

二进制量化(BQ)是QDRANT的索引压缩技术,可优化高维矢量存储和检索。通过将32位浮点矢量转换为1位二进制值,它可以大幅度加速搜索速度。

它的工作原理

  • 二进制:基于阈值将向量简化为0s和1s(例如,值> 0成为1)。
  • >有效索引:QDRANT的HNSW算法使用这些二进制向量快速近似最近的邻居(ANN)搜索。
  • >过采样:为了平衡速度和准确性,BQ检索额外的候选者(例如200限制为100),并使用原始向量将它们对其进行重新排名。
  • >
为什么它很重要

存储:1536-Dimension Openai矢量从6KB缩小到0.1875 kb。
    速度:1位向量上的布尔操作执行更快,减少了延迟。
  • 可伸缩性:适合大型数据集(1M向量)的理想选择,以最少的召回权衡。
  • 避免二进制量化,以实现二量矢量(< 1024),其中信息损失显着影响准确性。传统的标量量化(例如,UINT8)可能更适合较小的嵌入。
  • 建造Bhagavad Gita Assistant
  • 下面的
是流程图,该流程图解释了我们如何构建Bhagwad Gita助手:

架构概述

建立一名博伽梵歌AI助手

数据摄入:900页的Bhagavad gita pdf分为文本块。 嵌入:QDrant Fastembed的文本对矢量嵌入模型。

>向量DB:带有BQ商店嵌入的QDRANT,启用毫秒搜索。
    LLM推断:DeepSeek R1通过GROQ LPU生成上下文感知的响应。
  • UI:简化具有可扩展的“思考过程”可见性的应用程序。
  • >逐步实现
  • >让我们现在按一个步骤操作:
  • step1:安装和初始设置
  • >让我们使用LlamainDex建立抹布管道的基础。我们需要安装必需软件包,包括核心Llamaindex库,QDRANT矢量商店集成,快速嵌入的嵌入以及用于LLM访问的GROQ。
  • 注意:

>

>对于文档索引,我们将使用COLAB的A gpu

存储数据。这是一个一次性过程。

>

>保存数据后,我们可以使用集合名称在任何地方运行推断,无论是在VS代码,简化还是其他平台上。

完成安装后,让我们导入所需的模块。> step2:文档处理和嵌入

    >在这里,我们处理将原始文本转换为向量表示的关键任务。 SimpleDirectoryReader从指定的文件夹加载文档。
  • > >创建一个文件夹,即数据目录,然后在其中添加所有文档。在我们的情况下,我们下载了Bhagavad Gita文档并将其保存在数据文件夹中。
  • 您可以在此处下载〜900页的Bhagavad Gita文档:Iskconmangaluru
  • !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
    登录后复制
    登录后复制

    步骤3:使用二进制量化的QDRANT设置

    >是时候配置我们的矢量数据库QDRANT客户端,并具有优化的性能设置。我们创建了一个名为“ Bhagavad-Gita”的集合,该集合具有特定的向量参数,并启用了二进制量化以进行有效的存储和检索。

    有三种使用QDRANT客户端的方法:

      >内存模式:使用位置=“:内存:”,它创建了一个仅运行一次的临时实例。 
    • > localhost:使用位置=“ localhost”,它需要运行Docker实例。您可以在此处遵循“设置指南:QDRANT QUICKSTART”。 
    • 云存储:将集合存储在云中。为此,创建一个新的群集,提供群集名称并生成一个API键。复制键并从curl命令中检索URL。
    • 请注意,收集名称必须是唯一的,在每个数据更改之后,此也需要更改。

    >我们首先检查带有指定Collection_name的集合是否存在于Qdrant中。如果不是这样,只有然后我们创建一个配置为存储1,024维向量的新集合,并使用余弦相似性进行距离测量。

    data = SimpleDirectoryReader("data").load_data()
    texts = [doc.text for doc in data]
    
    embeddings = []
    BATCH_SIZE = 50
    登录后复制
    登录后复制
    >我们为原始向量启用了盘存存储,并应用二进制量化,这会压缩向量以减少内存使用量并提高搜索速度。 Elwand_RAM参数可确保将量化的向量保存在RAM中以更快地访问。>

    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)
    登录后复制
    登录后复制
    在此阶段将使用GPU,根据数据大小,此步骤可能需要几分钟。

    步骤5:带有DeepSeek r1

    的抹布管道

    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  
    登录后复制
    登录后复制
    登录后复制

    Process-2:A-增强提示

    对于抹布,使用chatprompttemplate定义系统的交互模板很重要。该模板创建了一个专业的助手,在Bhagavad-Gita中知识渊博,能够理解多种语言(英语,印地语,梵语)。>它包括用于上下文注入和查询处理的结构化格式,并清楚地说明了处理外面问题的明确说明。

    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
    登录后复制
    登录后复制
    process-3:g-生成响应

    >最终管道将所有内容融合在一起。它遵循检索仪式生成模式:检索相关文档,使用我们的专业及时模板增强它们,并使用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
    登录后复制
    登录后复制
    output :(语法:< think>推理</think>响应)

    建立一名博伽梵歌AI助手

    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)
    登录后复制
    登录后复制

    建立一名博伽梵歌AI助手

    现在,如果您需要再次使用此应用程序怎么办?我们应该再次执行所有步骤吗?

    答案是否。

    step6:保存的索引推理

    >您已经编写的内容没有太大差异。我们将重复使用相同的搜索和管道功能以及我们需要运行query_points的收集名称。

    >我们将在“ sparlit app.py”中使用上面的两个函数和message_template。 
    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
    )
    
    登录后复制

    step7:简化UI

    在每个用户问题之后,在精简中,状态都会刷新。为了避免再次刷新整个页面,我们将在简化的cache_resource下定义一些初始化步骤。

    请记住,当用户输入问题时,快速培训将仅下载一次模型权重,GROQ和QDRANT INTANTITION也是如此。

    >

    如果您注意到响应输出,则格式为< think>推理</think>响应。

    在UI上,我想保留在简化的扩展器下的推理,以检索推理部分,让我们使用字符串索引来提取推理和实际响应。>
    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")
    登录后复制

    聊天机器人组件

    >在Sparlit的会话状态中初始化消息历史记录。侧边栏中的“清晰聊天”按钮使用户可以重置此历史记录。 

    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)) 
    登录后复制
    >通过存储的消息迭代并在类似聊天的接口中显示它们。对于助手响应,它使用extract_thinking_and_answer函数将思维过程(如可扩展部分显示)与实际答案分开。

    剩下的代码是一种标准格式,用于在简化中定义聊天机器人组件,即输入处理为用户问题创建输入字段。提交问题时,将显示并将其添加到消息历史记录中。现在,它可以通过RAG管道处理用户的问题,同时显示加载旋转器。响应分为思考过程和回答组件。

    !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  
    登录后复制
    登录后复制
    登录后复制

    重要链接

    • 您可以找到完整的代码
    • >替代性bhagavad gita pdf-下载
    • >用钥匙替换“< replace-api-key>”占位符。

    结论

    通过将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的文档处理,嵌入生成和矢量存储的演示代码示例了解抹布管道实现。 通过QDRANT中的二进制量化,有效的矢量存储优化,从而可以处理大型文档收集,同时保持性能和准确性。
    • >结构化的及时工程实施,具有清晰的模板来处理多语言查询(英语,印地语,梵语)并有效地管理外面的问题。
    • > 使用简化的交互式UI,以推导一旦存储在矢量数据库中的应用程序。>
    • 常见问题
    • > Q1。
    • 二进制量化会降低答案质量吗?对召回的影响最小! Qdrant的过采样采样使用原始矢量重新排名最高的候选者,保持准确性,同时提高速度40倍,并将内存使用量减少97%。
    • >快速培养的可以处理诸如梵文/印地语的非英语文本? Q3。 为什么选择DeepSeek R1而不是OpenAi O1? DeepSeek R1的API成本降低了27倍,推理精度(20.5%vs 21%)以及卓越的编码/特定于域的性能。它是经文分析等专业任务的理想选择。 >本文所示的媒体不归Analytics Vidhya拥有,并由作者的酌情决定使用。

以上是建立一名博伽梵歌AI助手的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
10个生成AI编码扩展,在VS代码中,您必须探索 10个生成AI编码扩展,在VS代码中,您必须探索 Apr 13, 2025 am 01:14 AM

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

GPT-4O vs OpenAI O1:新的Openai模型值得炒作吗? GPT-4O vs OpenAI O1:新的Openai模型值得炒作吗? Apr 13, 2025 am 10:18 AM

介绍 Openai已根据备受期待的“草莓”建筑发布了其新模型。这种称为O1的创新模型增强了推理能力,使其可以通过问题进行思考

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

pixtral -12b:Mistral AI&#039;第一个多模型模型 - 分析Vidhya pixtral -12b:Mistral AI&#039;第一个多模型模型 - 分析Vidhya Apr 13, 2025 am 11:20 AM

介绍 Mistral发布了其第一个多模式模型,即Pixtral-12b-2409。该模型建立在Mistral的120亿参数Nemo 12B之上。是什么设置了该模型?现在可以拍摄图像和Tex

如何使用AGNO框架构建多模式AI代理? 如何使用AGNO框架构建多模式AI代理? Apr 23, 2025 am 11:30 AM

在从事代理AI时,开发人员经常发现自己在速度,灵活性和资源效率之间进行权衡。我一直在探索代理AI框架,并遇到了Agno(以前是Phi-

超越骆驼戏:大型语言模型的4个新基准 超越骆驼戏:大型语言模型的4个新基准 Apr 14, 2025 am 11:09 AM

陷入困境的基准:骆驼案例研究 2025年4月上旬,梅塔(Meta)揭开了Llama 4套件的模特套件,具有令人印象深刻的性能指标,使他们对GPT-4O和Claude 3.5 Sonnet等竞争对手有利地定位。伦斯的中心

多动症游戏,健康工具和AI聊天机器人如何改变全球健康 多动症游戏,健康工具和AI聊天机器人如何改变全球健康 Apr 14, 2025 am 11:27 AM

视频游戏可以缓解焦虑,建立焦点或支持多动症的孩子吗? 随着医疗保健在全球范围内挑战,尤其是在青年中的挑战,创新者正在转向一种不太可能的工具:视频游戏。现在是世界上最大的娱乐印度河之一

OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 Apr 16, 2025 am 11:37 AM

该版本包括三种不同的型号,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,标志着向大语言模型景观内的特定任务优化迈进。这些模型并未立即替换诸如

See all articles