注册网站要多少钱一年雅思培训
注册网站要多少钱一年,雅思培训,海外网站推广优化专员,欧力虎网站建设构建检索增强生成#xff08;RAG#xff09;系统的关键因素之一#xff1a;向量嵌入( vector embeddings )。这些元素是基本的技术和转换工具#xff0c;使 RAG 系统在某些方面能够以类似于人类理解的形式处理语言。
embedding 提供了一种将文本信息转换为数字数据的方法。…构建检索增强生成RAG系统的关键因素之一向量嵌入( vector embeddings )。这些元素是基本的技术和转换工具使 RAG 系统在某些方面能够以类似于人类理解的形式处理语言。
embedding 提供了一种将文本信息转换为数字数据的方法。它允许系统快速搜索和检索最重要的信息以生成响应。这种能力对于提高 LLM 输出的准确性和上下文相关性至关重要。主要为了长文本kimi 200w 字塞给 LLM 也是这么来的切割完文本区域后形成 embedding groups。
在RAG 系统中的 embedding 将数据 embedding 向量数据库以方便检索。 搜索相关数据 向 LLM 发送相关数据 LLM 回答使用发送的数据
什么是 embedding
Vector embedding 是机器学习和人工智能中使用的一种强大技术可将原始数据转换为模型可以轻松处理的数字格式。这里说明下 embedding 跟 LLM 毫无关系在 LLM 出现之前已经纯在这个技术了。这种转换涉及将数据表示为高维空间中的向量其中相似的位置得更近从而实现高效的计算和相似性比较。
Embedding 多种形式
Text embeddings
文本 embedding 是将文本转换为一组向量其中每个向量代表一个单词或一个句子。Word2Vec、GloVe 和 BERT 等技术通常用于此目的。这些模型的工作原理是根据大型文本语料库中的上下文学习单词的表示。例如出现在相似上下文中的单词例如“国王”和“女王”将具有接近的向量表示。中文需要训练出中文的 embedding 库不然会导致不准确或者生僻词无法理解。
Image embeddings
图像 embedding 是将图像转换为数字向量。此类嵌入需要不同类型的嵌入器在这种情况下通常使用卷积神经网络CNN来生成这些嵌入。图像通过 CNN 的各个层提取不同抽象级别的特征。输出是一个密集向量封装了图像的视觉特征对于图像识别、分类和检索等任务很有用。
Audio embeddings
音频数据也可以转换为向量嵌入。 Mel Frequency Cepstral Coefficients (MFCC) 等技术或 WaveNet 和 DeepSpeech 等深度学习模型用于从原始音频中提取特征。然后使用这些特征创建表示音频的向量该向量可用于语音识别、音乐分析和音频分类等应用。 解释多模态理解后转化成高纬度向量特征
Text embedding 如何工作
Text embedding 以数字格式表示单词捕获它们之间共享的语义关系和特征。以下是该过程的工作原理结合以下示例其中包括单词“King”、“Queen”、“Boy”和“Girl”。在考虑矢量化时想象一个多维空间其中每个维度都可以代表年龄、性别、阶级等特征。在这样的空间中
“ King ” 可以表示为坐标上的一个点男性皇室“ Queen ”女性皇室成员“ Boy ”为男性低阶级“ Gril ”为女性低阶级 性别特征在矢量空间中“ King ” 和 “ Boy ”在性别维度上的位置会更接近反映了他们共同的男性属性。同样“ Queen ” 和 “ Gril ” 也会因为女性属性而在这个维度上聚集在一起。阶级特征“ King ” 和 “ Queen ”在皇室维度上彼此接近反映了他们在皇室中的崇高地位。相比之下“ Boy ” 和 “ Gril ”由于其一般非皇室身份在这个维度上可能会距离 “ King ” 和 “ Queen ” 更远
将这些嵌入可以用于各种应用程序例如
相似度测量计算单词之间的距离以找出它们的相似程度例如“ King ” 与 “ Queen ” 的距离比 “ King ” 与 “ Boy ” 的距离更近。解决诸如类比“国王配对女王男孩配对什么”的问题。该模型会发现 “ Girl ” 作为最接近的词向量。
机器翻译和 NLP 任务使用这些向量来理解情感分析、分类等任务中的文本。embedding 在捕获这种微妙关系方面的有效性使其在自然语言处理中非常有价值使机器能够以更类似于人类和直观的方式处理文本。Word2Vec、GloVe 以及最近的 BERT 和 GPT 等模型都使用这些原理来创建强大的嵌入。
RAG 系统中的 vector embedding检索增强生成RAG系统是一种先进的 NLP 架构通过将语言模型与基于检索的信息相结合来增强语言模型的功能。该系统显著提高了语言模型生成的响应的准确性和相关性特别是在需要特定知识的复杂领域。 矢量数据库与 embedding 结合
在 RAG 系统检索相关数据之前信息的结构必须使其易于访问和比较。这涉及数据矢量化。所有数据无论是文本、图像还是任何其他形式都需要转换为向量。只不过是提取到更高维度类似 CNN。这意味着数据库中的每个项目都被转换为表示数据的各种特征的高维数值向量。这里科普另一个 RAG graph 的知识Graph RAG 智能搜索的未来
矢量数据库创建和存储然后将这些矢量存储在矢量数据库中通常使用 FAISSFacebook AI 相似性搜索等系统。这些系统允许高效检索接近高维空间中给定查询向量的向量这对应于检索与查询相似或相关的数据。 RAG系统分三步解释
第一步查找相关数据也是查询向量化当收到查询时首先使用与创建数据库向量相同的模型或方法将其转换为向量。然后检索使用查询向量在向量数据库中搜索相似向量。这些向量的相应数据可以是文本段落、图像等被认为与查询最相关。
第二步向LLM发送相关数据检索到的数据通常以语言模型可以轻松使用的方式进行预处理或格式化。这可能涉及总结信息或将其转换为模型可以理解的结构化格式。也就是需要提示词。处理后的相关数据随后被输入大型语言模型 (LLM) 作为附加上下文或输入的一部分。此步骤至关重要因为它为 LLM 提供了与用户查询直接相关的特定信息。
第三步 LLM 使用发送的数据进行应答利用检索到的数据提供的上下文LLM 生成响应。该模型利用了在预训练期间学到的一般知识和检索数据提供的特定信息。最后生成的响应有时会被细化或调整以确保一致性和相关性。输出将作为初始查询的答案呈现。 RAG 系统的优点
将检索系统与 RAG 设置中的生成模型相集成不仅可以提供上下文准确的响应还可以深入了解特定数据这使得它们在医疗、法律或技术领域等精确信息至关重要的专业领域特别有用。 这种多步骤方法利用了检索系统和生成人工智能的优势弥补了庞大的数据资源和复杂的语言能力之间的差距以及专业领域垂直的深度从而产生内容丰富且与所提出的查询高度相关的输出。
WB
Weave 是 Weights Biases 的一款强大工具旨在简化生产过程中机器学习模型的监控。它提供了一个易于使用的界面用于跟踪各种指标、可视化数据并实时检查模型性能。通过将 Weave 集成到的 RAG 系统中增强了在生产过程中监控模型性能的能力。
要使用 Weave首先使用 weave.init(‘your_project_name’) 对其进行初始化。接下来将 weave.op() 装饰器添加到想要跟踪的任何函数中。该装饰器自动记录函数的所有输入和输出捕获有关其操作的详细信息。然后用户可以在 Weave 界面中检查这些数据以便轻松检查函数调用。将在该项目中使用 Weave 来跟踪模型的输入和输出。
构建金融预测的RAG系统
在下面的代码中将构建我们自己的 RAG 系统。该 RAG 系统将包括 OpenAI LLM、我们从中获取数据的住房数据集、矢量数据库以及 FAISS用来存储矢量化数据的矢量数据库。 Step 1: Installing the necessary libraries
# 安装依赖
~pip install langchain langchain-community tiktoken faiss-cpu transformers pandas torch openaiStep 2: Importing the necessary libraries
这些库将包括允许我们构建答案链的 LLMChain、存储矢量化数据的 FAISS 以及作为首选数据嵌入器的 OpenAIEmbeddings。 Step 3: Integrating WB Weave into our code
# 初始化 weave
weave.init(RAG_System)Step 4: Loading and processing our dataset
从本地 CSV 文件加载数据集。始终可以使用选择的任何数据集确保在使用前正确处理数据集。
df pd.read_csv(/kaggle/input/housing-in-london/housing_in_london_monthly_variables.csv)
# 使用10%的数据
df df.sample(frac0.1, random_state42)
# 将把字段组合成文本字段以便于处理
df[text] df.apply(lambda row: fDate: {row[date]}, Area: {row[area]}, fAverage Price: {row[average_price]}, fCode: {row[code]}, Houses Sold: {row[houses_sold]}, fNumber of Crimes: {row[no_of_crimes]}, fBorough Flag: {row[borough_flag]}, axis1)
# 准备好基础数据
texts df[text].tolist() Step 5: Creating and storing our embeddings
# Create embeddings for the texts.
embeddings OpenAIEmbeddings(api_keyapi_key)
vectors embeddings.embed_documents(texts)
# 创建一个 FAISS 矢量存储并将数据嵌入存储在其中。并且添加了逻辑来缓存向量存储以避免每次运行时生成新的嵌入
# Check if the vector store already exists
vector_store_path faiss_indexif os.path.exists(vector_store_path):# Load the existing vector store vector_store FAISS.load_local(vector_store_path, embeddings, allow_dangerous_deserializationTrue)
else:# Create and save the vector store vectors embeddings.embed_documents(texts) vector_store FAISS.from_texts(texts, embeddings) vector_store.save_local(vector_store_path)Step 6: Retrieving our data
定义检索器函数。在本例中将 K 值定义为 20。这将为给定的每个查询从向量数据库中检索 20 个数据点。
def retrieve(query, k20):return vector_store.similarity_search(query, kk) # 创建一个prompt_template
prompt_template PromptTemplate(input_variables[context, question], templateGiven the following data from the London housing dataset:
{context}Please use the provided data to answer the question accurately. Calculate any necessary averages or totals directly from the data provided.Question: {question}
)Step 7: Testing and evaluating our model
# Initialize the OpenAI LLM, and insert your OpenAI key below.llm OpenAI(api_keyapi_key)# Here we will be creating an LLM chain.llm_chain LLMChain(promptprompt_template, llmllm)# We will define a custom function to generate a response using retrieval and LLM chain. Here we leverage WB Weave so that we can automatically log inputs and outputs to our generate_response function, which allows us to easily monitor how are model is performing in production!weave.op()
def generate_response(question):# Retrieve relevant documents retrieved_docs retrieve(question) context \n.join([doc.page_content for doc in retrieved_docs]) # Print the retrieved documents for debugging print(fRetrieved documents for question {question}:) for i, doc in enumerate(retrieved_docs): print(fDocument {i1}:\n{doc.page_content}\n) # Generate response using LLM chain response llm_chain.run(contextcontext, questionquestion) return {response: response, context: context} # Here are sample questions that we will use to test our model.questions [Using the data retrieved, what was the average price of houses in Westminster in 2019?, Using the data retrieved, how many crimes were reported in Hackney in 2018?, Using the data retrieved, what is the average price trend in London over the years?,
]# Get answers to the example questions.for question in questions:answer generate_response(question) print(fQ: {question}\nA: {answer}\n)Weave Logging
以下是模型的结果。由于将 Weave 添加到了generate_response 函数中这里会自动记录我们的问题、上下文和响应。在 Weave 内部将看到每个函数调用都有多个单元格如下所示 单击任何单元格并检查有关函数输入和输出的更多详细信息 总的来说Weave 是一个超级简单的工具可用于在 RAG 系统中记录数据因为它只需要初始化 Weave然后添加 weave.op() 装饰器。例如可能想要根据以前的生产数据训练新模型或者可能只是想要一种快速、简单的方法来监控模型的性能。如上所示上下文是我们的嵌入搜索检索到的信息而响应是由我们的 LLM 使用检索到的上下文生成的。
结论
通过将各种形式的数据转换为高维向量嵌入允许 RAG 系统有效地检索和利用相关信息从而显著提高生成响应的准确性和上下文相关性。矢量嵌入对于提高 RAG 系统的性能至关重要弥补海量数据资源和复杂的语言能力之间的差距以提供高度信息化和相关的输出。
如何学习AI大模型
作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】 一、全套AGI大模型学习路线
AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能 二、640套AI大模型报告合集
这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。 三、AI大模型经典PDF籍
随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。 四、AI大模型商业化落地方案 作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92546.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!