将向量数据库与LLMs集成:实用指南

190 篇文章 24 订阅
订阅专栏

探索如何利用向量数据库提升大型语言模型,为精准、具有上下文意识的人工智能解决方案。


欢迎来到我们的实用指南,在这里我们将深入探讨大型语言模型(LLMs)及其与向量数据库的协同作用。LLMs在科技领域产生了深远影响,推动了应用开发的创新。然而,当单独使用时,它们的全部潜力往往无法得到充分发挥。这就是向量数据库发挥作用的地方,它们增强了LLMs的能力,使其不仅产生任何回应,而是产生正确的回应。

通常,LLMs会在各种数据上进行训练,这使它们具有广泛的理解能力,但可能导致特定知识领域存在空白。有时,它们甚至可能输出与目标无关或带有偏见的信息 —— 这是从庞大、未经过滤的网络学习的副产品。为了解决这一问题,我们引入了向量数据库的概念。这些数据库以一种称为“向量嵌入”的独特格式存储数据,使LLMs能够更具上下文和准确性地理解和利用信息。

本指南介绍了如何使用向量数据库构建LLM并改进LLM对这种流的使用。我们将探讨如何结合这两者可以使LLMs更加准确和有用,特别是对于特定主题。

接下来,我们将简要概述向量数据库,解释向量嵌入的概念及其在增强人工智能和机器学习应用中的作用。我们将向您展示这些数据库与传统数据库的区别,以及它们为AI驱动任务提供更好支持的原因,特别是在处理文本、图像和复杂模式等非结构化数据时。

此外,我们将探讨这项技术在构建闭环问答机器人中的实际应用。这款机器人由Falcon-7B和ChromaDB提供支持,展示了当LLMs与正确的工具和技术结合时的有效性。

通过本指南,您将更清楚地了解如何利用LLMs和向量数据库的力量创建不仅创新而且具有上下文意识和可靠性的应用程序。无论您是人工智能爱好者还是经验丰富的开发人员,本指南都旨在帮助您轻松自信地探索这个令人兴奋的领域。

向量数据库简要概述

在深入了解向量数据库是什么之前,理解 向量嵌入的概念至关重要。向量嵌入在机器学习中至关重要,用于将原始数据转换为人工智能系统可以理解的数值格式。这涉及将数据(如文本或图像)转换为一系列数字,称为向量,在高维空间中。高维数据指的是具有许多属性或特征的数据,每个特征代表不同的维度。这些维度有助于捕捉数据的微妙特征。

创建向量嵌入的过程始于输入数据,这可以是句子中的单词或图像中的像素等任何内容。大型语言模型和其他人工智能算法分析这些数据并识别其关键特征。例如,在文本数据中,这可能涉及理解单词的含义以及它们在句子中的上下文。 嵌入模型然后将这些特征转换为数值形式,为每个数据片段创建一个向量。向量中的每个数字代表数据的特定特征,这些数字共同体现了原始输入的本质,以便机器可以处理。

这些向量是高维的,因为它们包含许多数字,每个数字对应数据的不同特征。这种高维度使得向量能够捕捉复杂、详细的信息,使它们成为人工智能模型的强大工具。模型使用这些嵌入来识别数据中的模式、关系和潜在结构。

向量数据库旨在提供针对向量嵌入独特性质的优化存储和查询能力。它们擅长提供高效的搜索能力、高性能、可扩展性和数据检索,通过比较和识别数据点之间的相似性来实现。

这些复杂、高维信息的数值表示使向量数据库与主要存储文本和数字等格式的传统系统有所不同。它们的主要优势在于管理和查询诸如图像、视频和文本等数据类型,特别是在这些数据被转换为机器学习和人工智能应用所需的向量格式时。

在下图中,我们展示了将文本转换为 单词向量的过程。这一步在自然语言处理中至关重要,使我们能够量化和分析语言关系。例如,“小狗”的向量表示在向量空间中会更接近“狗”而不是“房子”,反映了它们的语义接近性。这种方法也适用于类比关系。在“男人”和“女人”之间的向量距离和方向可以类比于“国王”和“皇后”之间的关系。这说明了单词向量不仅代表单词,还允许在多维向量空间中对它们的语义关系进行有意义的比较。

img

来源

LLMs兴起之前的向量数据库

设计用于处理向量嵌入的向量数据库在机器学习和人工智能领域有几个关键用例,特别是:

相似性搜索: 这是向量数据库擅长的核心功能。它们可以快速在高维空间中找到与给定查询相似的数据点。这对于诸如图像或音频检索等应用至关重要,其中您希望找到与特定输入相似的项目。以下是一些行业用例示例:

  • 电子商务: 通过允许客户搜索与参考图像视觉相似的产品,增强产品发现功能。
  • 音乐流媒体服务: 找到并推荐具有与用户喜爱曲目相似音频特征的歌曲。
  • 医疗影像: 通过检索显示类似病变的医学图像(如X射线或MRI)来协助放射科医生进行比较分析。

推荐系统: 向量数据库通过处理用户和项目嵌入来支持推荐系统。它们可以将用户与最符合其兴趣或过去互动的项目(如产品、电影或文章)匹配。以下是一些行业用例:

  • 流媒体平台: 通过根据观看历史推荐电影和电视节目,个性化观影体验。
  • 在线零售商: 根据用户浏览和购买历史推荐产品,增强交叉销售和提升销售机会。
  • 新闻聚合器: 通过将文章与读者过去的互动模式和偏好匹配,提供个性化新闻订阅。

基于内容的检索: 在这里,向量数据库用于根据内容本身而不是传统元数据搜索内容。这对于文本和图像等非结构化数据尤为重要,其中内容本身需要进行分析以进行检索。以下是一些行业用例:

  • 数字资产管理: 通过根据视觉或音频内容特征搜索和检索图像或视频,帮助公司管理庞大的数字媒体库。
  • 法律与合规: 通过搜索大量文件以找到与法律案例或合规查询相关的特定信息或文件。
  • 学术研究: 帮助研究人员找到与其工作在语境上相似的学术文章和研究论文,即使特定关键词未被提及。

关于基于内容的检索的最后一点越来越重要,并促进了一种新颖的应用:

增强LLMs的上下文理解: 通过存储和处理文本嵌入,向量数据库使LLMs能够执行更加细致和具有上下文意识的信息检索。它们有助于理解大量文本的语义内容,在回答复杂查询、保持对话上下文或生成相关内容等任务中至关重要。这种应用正迅速成为向量数据库的一个突出用例,展示了它们增强先进AI系统如LLMs能力的能力。

向量数据库与传统数据库的比较

传统的SQL数据库擅长管理结构化数据,依赖于精确匹配和明确定义的条件逻辑。它们保持数据完整性,适用于需要精确、结构化数据处理的应用。然而,它们的严格模式设计使其不太适应非结构化数据的语义和上下文细微差别,这在LLMs和生成式人工智能等AI应用中至关重要。
向量数据库填补了这一空白。专为人工智能场景量身定制,它们以向量形式处理数据,能够有效管理非结构化数据的复杂性。在处理大型语言模型(LLMs)时,向量数据库支持诸如 相似性搜索和上下文理解等操作,提供了超越传统 SQL 和灵活 NoSQL 数据库的功能。它们擅长处理近似值和模式识别,特别适用于对细微数据解释比准确数据匹配更为重要的人工智能应用。

提升向量数据库性能

优化向量数据库的性能对于依赖快速准确检索高维数据的应用至关重要。这涉及提高查询速度、确保高准确性,并保持可扩展性以有效处理不断增长的数据量和用户请求。这种优化的重要部分围绕索引策略展开,这些策略是用于更有效地组织和搜索向量数据的技术。下面,我们将详细介绍这些索引策略以及它们如何有助于提升向量数据库性能。

索引策略

向量数据库中的索引策略旨在促进快速准确地检索与查询向量相似的向量。这些策略可以极大地影响搜索操作的速度和准确性。

  • 量化(Quantization):量化涉及将向量映射到向量空间中的有限一组参考点,有效地压缩向量数据。这种策略通过将搜索限制在一组参考点的子集而不是整个数据集上,从而减少存储需求并加快搜索过程。量化有各种形式,包括标量量化和向量量化,每种形式在搜索速度和准确性之间都有其权衡。

量化特别适用于管理大规模数据集的应用,其中存储和内存效率至关重要。它在需要在查询速度和准确性之间取得平衡的环境中表现出色,因此非常适合那些可以容忍一定精度损失的速度敏感应用。然而,对于那些要求最高准确性和最小信息丢失的用例(例如精确的科学研究),量化则不太推荐,因为数据压缩和搜索精度之间固有的权衡。

  • 分层可导航小世界(HNSW)图:HNSW 是一种索引策略,它构建了一个分层图,其中每一层代表数据集的不同粒度。搜索从顶层开始,该层具有较少、更远的点,然后向下移动到更详细的层。这种方法允许快速遍历数据集,通过快速缩小类似向量的候选集,显著减少搜索时间。

HNSW 图在查询速度和准确性之间取得了极佳的平衡,使其非常适用于需要即时响应时间的实时搜索应用和推荐系统。它在中等到大型数据集上表现良好,提供可扩展的搜索能力。然而,对于极大型数据集,其内存消耗可能成为限制因素,使其在内存资源受限或数据集大小显著超出实际内存容量的情况下不太理想。

  • 倒排文件索引(IVF):IVF 方法将向量空间划分为预定义数量的簇,使用 k-means 等算法。每个向量被分配到最近的簇,而在搜索过程中,只考虑最相关簇中的向量。这种方法减少了搜索范围,提高了查询速度。将 IVF 与其他技术结合使用,例如量化(导致 IVFADC — 具有非对称距离计算的倒排文件索引),可以通过减少距离计算的计算成本进一步提高性能。

倒排文件索引(IVF)方法推荐用于在可扩展搜索环境中处理高维数据,通过将相似项聚类以有效缩小搜索空间。它特别适用于相对静态的数据集,其中偶尔重新聚类的开销是可以接受的。然而,对于低维数据或要求最低延迟的应用,IVF 可能不是最佳选择,因为聚类过程和需要跨多个簇搜索可能会引入额外的查询时间。

优化的额外考虑因素

  • 降维(Dimensionality Reduction):在应用索引策略之前,降低向量的维度可能是有益的。诸如 PCA 或自动编码器之类的技术有助于保留数据的基本特征同时减少其复杂性,这可以提高索引的效率和搜索操作的速度。
  • 并行处理(Parallel Processing):许多索引策略可以并行化,无论是在具有多个核心的 CPU 上还是在 GPU 上。这种并行处理能力允许同时处理多个查询,显著提高大规模应用的吞吐量并减少响应时间。
  • 动态索引(Dynamic Indexing):对于频繁更新数据的数据库,允许有效插入和删除向量而无需重组索引的动态索引策略至关重要。这确保数据库保持响应并随时间减少性能降级。

通过这些索引策略和考虑因素来提升向量数据库性能,需要深入了解底层数据和应用程序的具体要求。通过精心选择和调整这些策略,开发人员可以显著增强其基于向量的应用程序的响应性和可扩展性,确保其满足实际用例的需求。

用向量数据库丰富LLMs的上下文

像 Facebook 的 LLama2或 TIIUAE 的 Falcon等大型语言模型(LLMs)通过其类人文本生成显著推进了人工智能能力。然而,由于它们在广泛、通用数据集上进行训练,因此在处理专业上下文时面临挑战。

解决上下文限制可以通过两种主要方式来实现:

  1. 定向训练(Targeted Training):这涉及在专注于特定领域的数据集上重新训练或 微调LLM。虽然这种方法可以显著提升模型在特定主题或行业方面的专业知识,但对于许多组织或个人来说通常并不可行。原因包括与训练所需的计算资源相关的高成本,以及有效重新训练这种复杂模型所需的专业知识:有效地重新训练LLMs需要对机器学习、自然语言处理以及所讨论模型的特定架构有深入了解。
  2. 通过向量数据库增加上下文:另一种方法是通过向LLM直接添加上下文来增强其提示,使用来自向量数据库的数据。在这种设置中,向量数据库将专业信息存储为向量嵌入,LLM可以检索并使用这些信息来增强其响应。这种方法允许包含相关的专业知识,而无需进行广泛的重新训练。对于缺乏定向训练资源的组织或个人来说,这种方法特别有用,因为它利用了现有模型的能力,同时提供了专注的上下文洞见。

第二个选择被称为RAG,我们将在接下来的章节中更详细地探讨它。

img

来源

使用Falcon-7B和ChromaDB构建闭合问答机器人

在本节中,我们概述了如何使用向量数据库构建LLM。该模型是一个闭合问答机器人。这个机器人旨在使用一组集成的技术组件有效地回答与科学相关的查询:

  1. databricks-dolly-15k HuggingFace 数据集:这是由 Databricks 员工生成的一组遵循指令的记录的开源数据集。它旨在训练大型语言模型(LLMs)、合成数据生成和数据增强。该数据集包括各种类型的提示和响应,涵盖头脑风暴、分类、闭合问答、生成、信息提取、开放问答和摘要等类别。
  2. Chroma作为向量存储(知识库):我们将Chroma作为我们的主要向量存储,充当机器人的知识库。
  3. 用于语义搜索的Sentence Transformers:具体来说,我们使用来自Sentence Transformers的’multi-qa-MiniLM-L6-cos-v1’模型,该模型针对语义搜索应用进行了优化。该模型负责生成存储在Chroma中的嵌入。
  4. Falcon 7B Instruct 模型:作为我们的开源生成模型,Falcon 7B是一个仅解码器模型,具有70亿个参数。由TII开发,它在一个广泛的1,500B令牌数据集RefinedWeb上进行了训练,并补充了精心策划的语料库。值得注意的是,其更大的对应物Falcon 40B在Hugging Face的Open LLM Leaderboard上排名第一。

环境设置

为了实现本文中讨论的代码,需要进行以下安装:

!pip install -qU \
    transformers==4.30.2 \
    torch==2.0.1+cu118 \
    einops==0.6.1 \
    accelerate==0.20.3 \
    datasets==2.14.5 \
    chromadb \
    sentence-transformers==2.2.2```

这段代码最初在 Qwak 的 Workspaces 上的 gpu.a10.2xl 实例 上运行。需要注意的是,运行 Falcon-7B-Instruct 模型所需的特定代码可能会因使用的硬件配置而有所不同。

构建“知识库”

首先,我们获取 Databricks-Dolly 数据集,专注于 closed_qa 类别。这些条目通常以对精确信息的需求为特征,对于一般训练的大型语言模型(LLM)来说,由于其特定性,这些条目构成了挑战。

from datasets import load_dataset

# 仅加载数据集的训练部分
train_dataset = load_dataset("databricks/databricks-dolly-15k", split='train')

# 过滤数据集,仅包括 'closed_qa' 类别的条目
closed_qa_dataset = train_dataset.filter(lambda example: example['category'] == 'closed_qa')

print(closed_qa_dataset[0])

典型的数据集条目如下所示:

{
  "instruction": "Tomoaki Komorida 出生于哪一天?",
  "context": "Komorida 于1981年7月10日出生于熊本县。高中毕业后,他于2000年加入了J1联赛俱乐部Avispa Fukuoka。他的职业涉及各种职位和俱乐部,从Avispa Fukuoka 的中场球员到 Oita Trinita、Montedio Yamagata、Vissel Kobe 和 Rosso Kumamoto 等俱乐部的防守型中场和中后卫。他还曾在印度尼西亚的 Persela Lamongan 队效力,后回到日本并加入 Giravanz Kitakyushu,于2012年退役。",
  "response": "Tomoaki Komorida 于1981年7月10日出生。",
  "category": "closed_qa"
}

接下来,我们专注于为每组指令及其相应上下文生成词嵌入,并将其整合到我们的向量数据库 ChromaDB 中。

Chroma DB 是一个开源的向量存储系统,擅长管理向量嵌入。它专为语义搜索引擎等应用而设计,这在自然语言处理和机器学习领域至关重要。Chroma DB 的高效性,特别是作为内存数据库,有助于快速数据访问和操作,这对高速数据处理至关重要。其友好的 Python 设置增强了其在我们项目中的吸引力,简化了其整合到我们的工作流程中。详细文档请参阅: Chroma DB 文档。

img

来源

为了为答案生成嵌入,我们使用了专门针对语义搜索用例进行训练的 multi-qa-MiniLM-L6-cos-v1 模型。给定一个问题/搜索查询,该模型能够找到相关的文本段落,这正是我们的目标。

在下面的示例中,我们说明了嵌入是如何存储在 Chroma 的内存集合中的。

import chromadb
from sentence_transformers import SentenceTransformer

class VectorStore:

    def __init__(self, collection_name):
       # 初始化嵌入模型
        self.embedding_model = SentenceTransformer('sentence-transformers/multi-qa-MiniLM-L6-cos-v1')
        self.chroma_client = chromadb.Client()
        self.collection = self.chroma_client.create_collection(name=collection_name)
    
    # 从数据集中填充向量存储的方法
    def populate_vectors(self, dataset):
        for i, item in enumerate(dataset):
            combined_text = f"{item['instruction']}. {item['context']}"
            embeddings = self.embedding_model.encode(combined_text).tolist()
            self.collection.add(embeddings=[embeddings], documents=[item['context']], ids=[f"id_{i}"])
    
    # 根据查询搜索 ChromaDB 集合中的相关上下文的方法
    def search_context(self, query, n_results=1):
        query_embeddings = self.embedding_model.encode(query).tolist()
        return self.collection.query(query_embeddings=query_embeddings, n_results=n_results)


# 示例用法
if __name__ == "__main__":
   # 使用集合名称初始化处理程序
    vector_store = VectorStore("knowledge-base")
    
    # 假设 closed_qa_dataset 已定义并可用
    vector_store.populate_vectors(closed_qa_dataset)

对于每个数据集条目,我们生成并存储了“指令”和“上下文”字段的组合嵌入,其中上下文充当了我们在 LLM 提示中检索的文档。

接下来,我们将利用 Falcon-7b-instruct LLM 生成对没有额外上下文的封闭信息查询的响应,展示我们丰富知识库的有效性。

生成基本答案

对于我们的生成文本任务,我们将利用来自 Hugging Face 的 falcon-7b-instruct 模型的能力。

Falcon-7B-Instruct 的独特之处在于它在先进功能和可管理大小之间的高效平衡。它专为复杂的文本理解和生成任务而设计,提供了与更大、闭源模型相媲美的性能,但以更简化的方式呈现。这使其成为我们项目的理想选择,我们需要深入的语言理解,而无需更大型模型的额外开销。

如果您计划在本地计算机或远程服务器上运行 Falcon-7B-Instruct 模型,请务必注意硬件要求。如 HuggingFace 文档 所述,该模型需要至少 16GB RAM。然而,为了获得最佳性能和更快的响应时间,强烈建议使用 GPU。

import transformers
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

class Falcon7BInstructModel:

    def __init__(self):
        # 模型名称
        model_name = "tiiuae/falcon-7b-instruct"
        self.pipeline, self.tokenizer = self.initialize_model(model_name)
    
    def initialize_model(self, model_name):
        # 初始化分词器
        tokenizer = AutoTokenizer.from_pretrained(model_name)
    
        # 用于文本生成的管道设置
        pipeline = transformers.pipeline(
            "text-generation",
            model=model_name,
            tokenizer=tokenizer,
            torch_dtype=torch.bfloat16,
            trust_remote_code=True,
            device_map="auto",
        )
    
        return pipeline, tokenizer
    
    def generate_answer(self, question, context=None):
        # 准备输入提示
        prompt = question if context is None else f"{context}\n\n{question}"
    
        # 生成响应
        sequences = self.pipeline(
            prompt,
            max_length=500,
            do_sample=True,
            top_k=10,
            num_return_sequences=1,
            eos_token_id=self.tokenizer.eos_token_id,
        )
    
        # 提取并返回生成的文本
        return sequences['generated_text']

这段代码示例基于 Hugging Face 的文档构建,非常清晰易懂。

让我们对其主要组件进行解析,以便更好地理解:

  • 分词器 是自然语言处理(NLP)模型(如 Falcon-7B-Instruct)中的关键组件。其主要作用是将输入文本转换为模型可以理解的格式。它将文本分解为称为标记的较小单元。这些标记可以是单词、子词或甚至字符,取决于分词器的设计。在 Falcon-7B-Instruct 模型的上下文中,AutoTokenizer.from_pretrained(model) 调用加载了一个专门设计用于与该模型配合工作的分词器,确保文本被分词的方式与模型训练时的方式一致。
  • 管道 在 transformers 库中是一个高级实用程序,它抽象了处理数据和从模型获取预测所涉及的许多复杂性。它在内部处理多个步骤,例如对输入文本进行分词、将标记传递给模型,然后将模型的输出处理为人类可读的形式。在此脚本中,管道设置为“text-generation”,这意味着它经过优化,可以接受提示(如用户问题)并生成基于该提示的文本延续。

示例用法:

# 初始化 Falcon 模型类
falcon_model = Falcon7BInstructModel()

user_question = "Tomoaki Komorida 出生于哪一天?"

# 使用 LLM 为用户问题生成答案
answer = falcon_model.generate_answer(user_question)

print(f"结果: {answer}")

正如您可能已经猜到的那样,这是针对给定用户问题的模型输出:

{ answer: “我没有关于 Tomoaki Komorida 出生日期的信息。” }

在没有额外上下文的情况下利用 Falcon-7B-Instruct 会产生负面响应,因为它没有接受过这种“较少知名”信息的训练。这说明了在为非通用问题生成更有针对性和有用的答案时,需要丰富的上下文。

生成具有上下文意识的答案

现在,让我们通过为生成模型提供相关上下文来提升其能力,这些上下文是从我们的向量存储中检索的。

有趣的是,我们在为生成嵌入和从用户问题中提取上下文时都使用了相同的 VectorStore 类:

# 假设 vector_store 和 falcon_model 已经被初始化

# 从 VectorStore 中获取上下文,假设已经填充
context_response = vector_store.search_context(user_question)

# 从响应中提取上下文文本
# 假定上下文位于 'context' 键的第一个元素中
context = "".join(context_response['context'][0]) 

# 使用 Falcon 模型生成答案,结合提取的上下文
enriched_answer = falcon_model.generate_answer(user_question, context=context)

print(f"结果: {enriched_answer}")
田智明,生于1981年7月10日。

img

总结

在我们的详细探讨中,我们向您展示了如何打造一个基于大型语言模型(LLM)的应用程序,并丰富了自定义数据集。显而易见,管理这样一个模型,尝试不同数据集的实验,建立必要的基础设施,并实现一个功能性解决方案远非易事。

人工智能】如何基于向量数据库+LLM(大语言模型),打造更懂你的企业专属Chatbot?—— AnalyticDB(ADB)+LLM:构建AIGC时代下企业专属 Chatbot
程序员光剑
05-17 1万+
在现实世界中,绝大多数的数据都是以非结构化数据的形式存在的,如图片,音频,视频,文本等。这些非结构化的数据随着智慧城市,短视频,商品个性化推荐,视觉商品搜索等应用的出现而爆发式增长。为了能够处理这些非结构化的数据,我们通常会使用人工智能技术提取这些非结构化数据的特征,并将其转化为特征向量,再对这些特征向量进行分析和检索以实现对非结构化数据的处理。因此,我们把这种能存储,分析和检索特征向量数据库称之为向量数据库
ModaHub魔搭社区:如何基于向量数据库+LLM(大语言模型),打造更懂你的企业专属Chatbot?
LCHub低代码社区
06-28 1320
本文接下来将重点介绍基于大语言模型(LLM)+向量数据库打造企业专属Chatbot的原理和流程,以及ADB-PG构建该场景的核心能力。
大型语言模型(LLM)和向量数据库(Vector Databases)的使用
ChatGPTer
12-17 2291
由于向量数据库中的所有操作都是通过...向量完成的,因此我们首先需要将用户的输入文本转换为向量,以便我们可以根据该输入找到相似的项目。回想一下,我们使用句子转换器将文本数据编码为嵌入,因此我们可以使用相同的编码器为用户的输入文本生成数字表示。首先,我们需要找到一种将输入数据转换为向量的方法,我们将其称为嵌入(如果您想更深入地了解嵌入概念,我推荐 Boykis 的文章 [3])。计算出输入查询向量后,我们就可以在集合中搜索最接近的向量,并定义我们想要从这些向量中得到什么样的输出,例如它们的。
LLM 学习之「向量数据库
qkh1234567的博客
08-13 941
人工智能和机器学习领域的不断发展凸显了向量数据库在当今以数据为中心的世界中的不可或缺性。这些数据库具有存储、搜索和分析多维数据向量的独特能力,在推动人工智能驱动的应用程序方面发挥了重要作用。随着人工智能的不断发展,向量数据库在塑造数据检索、处理和分析的未来方面的作用无疑会越来越大,有望在各个领域提供更复杂、更高效、更个性化的解决方案。
(LLM) 的所有知识;10分钟了解向量数据库;微软 Bing 可以识别图片了;
haleycat的博客
06-16 1442
微软 Bing 最新识图功能让用户可以上传图片并进行编程、做题、看病等操作,还能分析梗图笑点。然而在某些情况下表现不佳,例如无法数清图片中的图案数量,或是犯错解释棋盘。综合来看,Bing 的图像识别能力十分强大,展现了人工智能技术在图像处理方面的潜力。
搭建LLM向量数据库的开发环境
程序员光剑
05-26 324
1. 背景介绍 随着深度学习和自然语言处理技术的不断发展,语言模型(Language Model, LLM)已经成为一种重要的技术手段。LLM 可以用于各种自然语言处理任务,例如文本生成、文本分类、摘要生成、机器翻译等。与此同时,向量数据库(Vector Database)也在不断发展,以满足各种复杂的数据存储需求。 本文旨在介绍如何搭
【腾讯云云上实验室】从零开始搭建爬虫+向量数据库+LLM模型构建企业私有化知识库
阿刘
11-29 1万+
本文主要论证从零开始搭建爬虫->向量数据库->LLM模型知识库过程,文章中不依赖任何爬虫、LangChain、Chat GLM等框架,从最原始角度通俗易懂、直观的解读大模型向量数据库结合过程,给大家提供现阶段热门企业大模型解决方案建设思路和方向。
向量数据库指南》:向量数据库Pinecone如何集成LangChain(二)
LCHub低代码社区
07-30 229
现在我们已经构建了索引,可以切换到 LangChain。我们首先使用刚刚构建的索引初始化一个向量存储。在GQA中,我们将查询作为要由LLM回答的问题,但LLM必须根据从“vectorstore”返回的信息来回答问题。我们应该看到新的Pinecone索引具有total_vector_count为0,因为我们尚未添加任何向量。现在我们回答被问到的问题,并返回 LLM 正在使用的信息源。要创建我们的向量数据库,我们首先需要从Pinecone获取。(与我们的两个文本块对齐)1536维度的嵌入。
向量数据库指南》:向量数据库Pinecone如何集成LangChain (一)
LCHub低代码社区
07-29 509
欢迎使用Pinecone和LangChain的集成指南。本文档涵盖了将高性能向量数据库Pinecone与基于大型语言模型LLMs)构建应用程序的框架LangChain集成的步骤。Pinecone使开发人员能够基于向量相似性搜索构建可扩展的实时推荐和搜索系统。另一方面,LangChain提供了管理和优化应用程序中语言模型使用的模块。其核心理念是促进数据感知应用程序,其中语言模型与其他数据源及其环境交互。通过将Pinecone与LangChain集成,您可以开发利用两个平台的优势的复杂应用程序。
向量数据库指南》:向量数据库Pinecone如何集成OpenAI
LCHub低代码社区
07-25 227
在OP堆栈的核心,我们有通过支持的嵌入式。我们在Pinecone向量数据库中索引这些嵌入式,以便快速和可伸缩地检索增强我们的LLMs或其他信息检索用例。这个例子演示了核心OP堆栈。它是最简单的工作流程,在其他工作流程中也存在,但不是使用堆栈的唯一方式。请参考上面的链接了解更高级的用法。OP堆栈是为语义搜索、问答、威胁检测和其他依赖于语言模型和大量文本数据的应用程序构建的。嵌入和索引使用OpenAI嵌入式API生成您的文档(或任何文本数据)的向量嵌入。
17-1 向量数据库之野望1 - 使用 Local LLM、VectorDB 和 Pydantic 构建 AI Slack Bot
ms44的专栏
07-16 636
欢迎来到 DIY 研讨会,创建您自己的 Slack FAQ Bot — 这是您成为 MVP 企业 wagie 的门票!本教程将指导您设置一个 Slack Bot,该 Bot 使用大型语言模型来处理和汇总信息,使用 Pydantic 来构造数据,使用矢量数据库来存储和检索 FAQ 条目。
LLMs之LangChain:LangChain(开发和构建)、LangSmith(生产化/跟踪)、LangServe(部署为API)的基础使用案例教程—利用LangChain开发和构建LLM的应用程
近期请国内外头部出版社可尽快私信博主!——心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,谦虚,自律,反思,成长,还算是比较正能量的博主,公益免费传播……内心特别想在AI界做出一些可以推进历史进程影响力的东西(兴趣使然,有点小情怀,也有点使命感呀)…
04-11 1938
LLMs之LangChain:LangChain(开发和构建)、LangSmith(生产化/跟踪)、LangServe(部署为API)的基础使用案例教程—利用LangChain开发和构建LLM的应用程序(构建LLM链/检索链/对话检索链/构建Agent)代码实现教程之详细攻略 目录 LangChain(开发和构建)、LangSmith(生产化/跟踪)、LangServe(部署为API)的基础使用案例教程—利用LangChain开发和构建LLM的应用程序(构建LLM链/检索链/对话检索链/构建Agen
RAG工程必备神器:LlamaIndex全方位入门与应用指南
最新发布
春华秋实
09-09 75
LlamaIndex 是一个复杂的框架,旨在使用您的专有数据进行索引和查询LLMs。此框架支持广泛的数据源,包括结构化数据(如关系数据库)、非结构化数据(如 NoSQL 数据库)和半结构化数据(如 Salesforce CRM 数据)。LlamaIndex 的主要优势在于它能够将专有数据索引到最先进的LLMs可以理解的嵌入中,从而消除了从头开始重新训练模型的需要。LlamaIndex 的强大之处在于它能够获取您的数据,无论其结构如何,并将其转换为LLMs可以有效理解和利用的格式。
向量数据库Chroma极简教程
蛮三刀酱
11-08 5025
目前向量数据库在AI中的应用越来越重要,但很多厂商更倾向于将向量数据库隐藏在产品内部,用户感知不到很多向量数据库的使用细节。但大模型的学习终究是建立在开源代码之上的,学习Chroma可以让我们快速了解向量数据库的基本原理,也有利于我们未来更好地理解大模型
【腾讯云云上实验室】向量数据库+LangChain+LLM搭建智慧辅导系统实践
热门推荐
白洞,白色的明天在等着我们
11-25 2万+
得益于深度学习的快速发展和数据规模的不断扩大,以GPT、混元、T5等为代表的大语言模型具备了前所未有的自然语言处理和生成能力,然而,在实际应用中,大语言模型的高效存储、检索和推理成为了一个新的挑战。 为解决这一问题,向量数据库作为大语言模型时代的次世代引擎应运而生。向量数据库是一种专门设计用于存储和处理向量数据的数据库系统,能够高效地索引、查询和分析高维向量。它不仅适用于存储文本、图像、音频等数据的向量表示,还能有效管理和支持大规模的语言模型,提供快速的语义搜索和相似性匹配能力。
什么是向量数据库?为什么向量数据库LLM很重要?
加百力 的技术博客
02-08 564
使用传统的基于标量的数据库进行向量嵌入是一个挑战,因为它无法处理或跟上数据的规模和复杂性。根据我们使用的向量数据库向量数据库将对最终最近邻进行后处理,以生成查询的最终输出。然后,我们的查询将被插入到嵌入模型(embedding model)中,该模型根据我们想要索引的内容创建向量嵌入(vector embedding)。当用户继续进行查询时,它将通过相同的嵌入模型来创建嵌入,以在数据库中查询类似的向量嵌入。一旦完成搜索,向量数据库就会将查询的向量与索引向量进行比较,应用相似性度量来查找最近的邻居。
LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析
lucky_chaichai的博客
08-24 8721
LLM(fastchat)+Langchain+Gradio/Streamlit各种框架基础点
LLM模型向量数据库技术架构浅析
musicml的博客
11-08 271
▼最近直播超级多,预约保你有收获近期直播:《LLM模型向量数据库技术架构剖析和应用案例实战》—1—AI 智能时代,开发者需要一个真正的向量数据库吗?答案很简单,这取决于开发者的应用场景。举个例子,晚饭选择去一家五星级餐厅用餐或是是快餐店,往往和你的胃口和期望有关。如果只是想简单解决一顿饭,一家快餐店就能满足你。同理,如果想为自己的个人网站快速搭建一个问答机器人,或者为相册里的十万张照片建立一...
语言模型LLMLLMs 区别
05-26
LLM 表示单个大语言模型(Large Language Model),通常指一种能够生成自然语言文本的神经网络模型,如 GPT-3。 LLMs 则表示多个大语言模型(Large Language Models),这些模型可以是不同的、独立的大型语言模型,也可以是同一模型的多个不同版本或实例。多个大语言模型可以用于解决多个自然语言处理任务或问题,也可以用于提升模型的表现和稳定性。
写文章

热门文章

  • 本地上百个大模型便携部署调用工具 Ollama 使用指南 19858
  • 使用大型语言模型进行监督微调(SFT)从想法到实现的工作过程中理解SFT的工作原理... 7747
  • KAN:科尔莫戈洛夫-阿诺德网络 KAN: Kolmogorov-Arnold Networks 7536
  • 工具系列:Panda介绍_《深入浅出Pandas》读书笔记 7396
  • 如何使用 GPT 4o API 实现视觉、文本、图像等功能? 6525

分类专栏

  • 多模态大模型 6篇
  • AIDOCZH 11篇
  • 论文速递 118篇
  • 大语言模型 190篇
  • OCR 2篇
  • 数据挖掘 166篇
  • scikit-learn 49篇
  • 推荐系统 2篇
  • 交易流水应用 4篇
  • 合成数据 1篇
  • 图计算 9篇
  • LangChain 10篇
  • NL2SQL 2篇
  • MLFLow 2篇
  • 爬虫 4篇
  • Numpy 19篇
  • Pandas 2 27篇
  • 数据建模 18篇
  • 数据挖掘案例 20篇
  • 机器学习模型 13篇
  • 异常检测 21篇
  • 时间序列模型 17篇
  • PandasAI 1篇
  • FeatureTools 7篇
  • Feature-Engine 21篇
  • Dart 21篇
  • Tensorflow决策森林 9篇
  • PyCaret 14篇
  • TimeGPT 9篇
  • OpenAI 26篇
  • 经典论文概览 8篇
  • python前后端开发
  • PyQt 2篇

最新评论

  • 解决复杂的 LLM 决策-制定问题,使用语言代理树搜索 (LATS) & GPT-4o

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/619288715。

  • 异常检测系列:局部异常因子(LOF)

    m0_74192641: 第五步,LOF计算邻居的LRD括号里是O吧 写错了 不是p

  • Transformers Pipeline: NLP任务的全面指南

    谢荣文专用权: 帅哥美女么么哒主播早上好,天天开心快乐每一天。表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包表情包

  • 多Agent协作工具CrewAI使用指南——核心概念

    朝凡FR: 一些官方工具类是三方服务提供的api,需求去官网创建用户和key

  • 将向量数据库与LLMs集成:实用指南

    qq_43301543: 几个embedding向量空间是匹配的么,如何能混用呢?

最新文章

  • ChatTTS: 将您的文本转换为语音
  • 探索Civitai:模型、LoRA与创意可能性
  • LLM中工具调用指南
2024
09月 27篇
08月 58篇
07月 69篇
06月 59篇
05月 52篇
04月 54篇
03月 30篇
02月 146篇
01月 93篇
2023年81篇
2022年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家商场雕塑小喇叭花玻璃钢雕塑静安区正宗玻璃钢雕塑择优推荐河南节庆商场美陈销售公司滨州玻璃钢商场美陈聊城玻璃钢仿真水果雕塑随州户外玻璃钢雕塑厂家无锡美陈商场地址镇江玻璃钢人物雕塑批发兰州玻璃钢纪念雕塑定制肇庆仿真玻璃钢雕塑思明园林玻璃钢雕塑推荐宁夏玻璃钢雕塑价格玻璃钢花盆厂家直销河北户外玻璃钢雕塑保养广州商场美陈销售新区玻璃钢雕塑欧式壁画现货玻璃钢仿真电影人物雕塑玉溪商场美陈北京通道商场美陈报价石雕玻璃钢大型雕塑图片2020商场美陈布置图片泰州小提琴玻璃钢花盆玻璃钢雕塑和grc报价表山西玻璃钢人物泡沫雕塑公司无机玻璃钢雕塑系张家口玻璃钢雕塑制作厂家广州玻璃钢抽象人物雕塑价格玻璃钢小品雕塑厂家地址宿迁玻璃钢雕塑加工郑州市玻璃钢雕塑定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化