新郑建设局网站/百度小说排行榜2021

新郑建设局网站,百度小说排行榜2021,个人网站建设思路,徐州建设工程交易网中标公告前言 就在昨晚,DeepSeek v3推出了新版本V3-0324,再次一夜爆火。 虽然官方表示“这只是一次小升级”“API接口和使用方式不变”,但经过Zilliz的第一时间实测,我们发现无论是逻辑能力,还是编程能力,相较原本的…

图片

图片

前言

就在昨晚,DeepSeek v3推出了新版本V3-0324,再次一夜爆火。

虽然官方表示“这只是一次小升级”“API接口和使用方式不变”,但经过Zilliz的第一时间实测,我们发现无论是逻辑能力,还是编程能力,相较原本的v3,都有了极大提升,甚至可以说,这是目前市面上最顶级的开源非推理模型。

具体来说,改变有以下三点:

参数量上,V3-0324为6850亿,较上一版本的6710亿略有提升;

上下文窗口上,V3-0324升级到了 128k

能力上,V3-0324的代码、数学、逻辑等能力有了较大提升。

整个V3的设计依然延用了V2提出的MLA(Multi-head Latent Attention)架构,既多头潜在注意力机制,通过潜在向量(latent vector)对Key-Value(KV)缓存进行压缩,从而减少推理时的内存占用和计算开销。

此外DeepSeek V3将除前三层外的所有 FFN 层替换为 MoE 层,每个 MoE 层包含 1 个共享专家和 256 个路由专家。在路由专家中,每个 token 将激活 评分靠前的几个专家,以平衡整体的计算量。

另外,围绕准确率的提升,DeepSeek V3还使用了多token预测(MTP),通过多层级联预测机制,打破了传统模型只能一次多预测一个token的限制,让每个 token同时预测多个未来token,进而提升模型性能和数据效率。

那么DeepSeek v3-0324该如何用?企业场景应该如何部署?如何将它与RAG结合?本篇文章,我们会对DeepSeek v3的亮点进行梳理,并对其RAG搭建流程与效果,做一个简单的示例。

01

使用Milvus和DeepSeek搭建RAG

接下来,我们将展示如何使用Milvus和DeepSeek构建检索增强生成(RAG)pipeline。

步骤一:准备

(1)依赖和环境

! pip install --upgrade "pymilvus[model]" openai requests tqdm

如果您使用的是Google Colab,要启用刚刚安装的依赖项,您可能需要重启运行环境(单击屏幕顶部的“Runtime”菜单,然后从下拉框中选择“Restart session”)。

(2)准备数据

我们使用Milvus文档2.4. x中的FAQ页面作为RAG中的私有知识,这是搭建一个入门RAG pipeline的优质数据源。

首先,下载zip文件并将文档解压缩到文件夹milvus_docs。

! wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip
! unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs

我们从文件夹milvus_docs/en/faq中加载所有markdown文件,对于每个文档,我们只需简单地使用“#”来分隔文件中的内容,就可以大致分隔markdown文件各个主要部分的内容。

from glob import globtext_lines = []for file_path in glob("milvus_docs/en/faq/*.md", recursive=True):with open(file_path, "r") as file:file_text = file.read()text_lines += file_text.split("# ")

(3)准备LLM和embedding模型

OpenRouter是一家提供统一API接口聚合多个主流AI模型(如DeepSeek、Claude等)的服务平台,让开发者通过单一接入点调用不同大语言模型。在OpenRouter上免费创建DeepSeek V3的API秘钥就可以尝鲜使用DeepSeek V3 0324。(其他平台操作同理,目前仅OpenRouter上线了最新版V3)

from openai import OpenAIdeepseek_client = OpenAI(api_key="<OPENROUTER_API_KEY>",base_url="https://openrouter.ai/api/v1",
)

选择一个embedding模型,使用milvus_model来做文本向量化。我们以DefaultEmbeddingFunction模型为例,它是一个预训练的轻量级embedding模型。

from pymilvus import model as milvus_modelembedding_model = milvus_model.DefaultEmbeddingFunction()

生成测试向量,并输出向量维度以及测试向量的前几个元素。

test_embedding = embedding_model.encode_queries(["This is a test"])[0]
embedding_dim = len(test_embedding)
print(embedding_dim)
print(test_embedding[:10])
768
[-0.04836066  0.07163023 -0.01130064 -0.03789345 -0.03320649 -0.01318448-0.03041712 -0.02269499 -0.02317863 -0.00426028]

步骤二:将数据加载到Milvus

创建集合

from pymilvus import MilvusClientmilvus_client = MilvusClient(uri="./milvus_demo.db")collection_name = "my_rag_collection"

对于MilvusClient需要说明:

  • 将uri设置为本地文件,例如./milvus. db,是最方便的方法,因为它会自动使用Milvus Lite将所有数据存储在此文件中。

  • 如果你有大规模数据,你可以在docker或kubernetes上设置一个更高性能的Milvus服务器。在此设置中,请使用服务器uri,例如http://localhost:19530,作为你的uri。

  • 如果要使用Milvus的全托管云服务Zilliz Cloud,请调整uri和token,分别对应Zilliz Cloud中的Public Endpoint和Api密钥。

检查集合是否已经存在,如果存在则将其删除。

if milvus_client.has_collection(collection_name):milvus_client.drop_collection(collection_name)

使用指定的参数创建一个新集合。

如果我们不指定任何字段信息,Milvus将自动为主键创建一个默认的id字段,并创建一个向量字段来存储向量数据。保留的JSON字段用于存储未在schema里定义的标量数据。

milvus_client.create_collection(collection_name=collection_name,dimension=embedding_dim,metric_type="IP",  # Inner product distanceconsistency_level="Strong",  # Strong consistency level
)

插入数据

逐条取出文本数据,创建嵌入,然后将数据插入Milvus。

这里有一个新的字段“text”,它是集合schema中的非定义字段,会自动添加到保留的JSON动态字段中。

from tqdm import tqdmdata = []doc_embeddings = embedding_model.encode_documents(text_lines)for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")):data.append({"id": i, "vector": doc_embeddings[i], "text": line})milvus_client.insert(collection_name=collection_name, data=data)
Creating embeddings: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 72/72 [00:00<00:00, 1222631.13it/s]
{'insert_count': 72, 'ids': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], 'cost': 0}
步骤三:构建RAG

检索查询数据

让我们指定一个关于Milvus的常见问题。

question = "How is data stored in milvus?"
在集合中搜索问题并检索语义top-3匹配项。
search_res = milvus_client.search(collection_name=collection_name,data=embedding_model.encode_queries([question]),  # Convert the question to an embedding vectorlimit=3,  # Return top 3 resultssearch_params={"metric_type": "IP", "params": {}},  # Inner product distanceoutput_fields=["text"],  # Return the text field
)

我们来看一下query的搜索结果

import jsonretrieved_lines_with_distances = [(res["entity"]["text"], res["distance"]) for res in search_res[0]
]
print(json.dumps(retrieved_lines_with_distances, indent=4))
[[" Where does Milvus store data?\n\nMilvus deals with two types of data, inserted data and metadata. \n\nInserted data, including vector data, scalar data, and collection-specific schema, are stored in persistent storage as incremental log. Milvus supports multiple object storage backends, including [MinIO](https://min.io/), [AWS S3](https://aws.amazon.com/s3/?nc1=h_ls), [Google Cloud Storage](https://cloud.google.com/storage?hl=en#object-storage-for-companies-of-all-sizes) (GCS), [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs), [Alibaba Cloud OSS](https://www.alibabacloud.com/product/object-storage-service), and [Tencent Cloud Object Storage](https://www.tencentcloud.com/products/cos) (COS).\n\nMetadata are generated within Milvus. Each Milvus module has its own metadata that are stored in etcd.\n\n###",0.6572665572166443],["How does Milvus flush data?\n\nMilvus returns success when inserted data are loaded to the message queue. However, the data are not yet flushed to the disk. Then Milvus' data node writes the data in the message queue to persistent storage as incremental logs. If `flush()` is called, the data node is forced to write all data in the message queue to persistent storage immediately.\n\n###",0.6312146186828613],["How does Milvus handle vector data types and precision?\n\nMilvus supports Binary, Float32, Float16, and BFloat16 vector types.\n\n- Binary vectors: Store binary data as sequences of 0s and 1s, used in image processing and information retrieval.\n- Float32 vectors: Default storage with a precision of about 7 decimal digits. Even Float64 values are stored with Float32 precision, leading to potential precision loss upon retrieval.\n- Float16 and BFloat16 vectors: Offer reduced precision and memory usage. Float16 is suitable for applications with limited bandwidth and storage, while BFloat16 balances range and efficiency, commonly used in deep learning to reduce computational requirements without significantly impacting accuracy.\n\n###",0.6115777492523193]
]

使用LLM获取RAG响应

将检索到的文档转换为字符串格式。

context = "\n".join([line_with_distance[0] for line_with_distance in retrieved_lines_with_distances]
)

为LLM定义系统和用户提示。这个提示是由从Milvus检索到的文档组装而成的。

SYSTEM_PROMPT = """
Human: You are an AI assistant. You are able to find answers to the questions from the contextual passage snippets provided.
"""
USER_PROMPT = f"""
Use the following pieces of information enclosed in <context> tags to provide an answer to the question enclosed in <question> tags.
<context>
{context}
</context>
<question>
{question}
</question>
"""

使用DeepSeek提供的deepseek/deepseek-chat-v3-0324模型根据提示生成响应。

response = deepseek_client.chat.completions.create(model="deepseek/deepseek-chat-v3-0324",messages=[{"role": "system", "content": SYSTEM_PROMPT},{"role": "user", "content": USER_PROMPT},],
)
print(response.choices[0].message.content)
Milvus stores data in two main categories: inserted data and metadata.1. **Inserted Data**:- This includes vector data, scalar data, and collection-specific schema.- The data is stored in persistent storage as incremental logs.- Milvus supports various object storage backends for this purpose, such as MinIO, AWS S3, Google Cloud Storage (GCS), Azure Blob Storage, Alibaba Cloud OSS, and Tencent Cloud Object Storage (COS).2. **Metadata**:- Metadata is generated internally by Milvus and is specific to each module.- This metadata is stored in etcd.For vector data, Milvus supports multiple types including Binary, Float32, Float16, and BFloat16, each with different precision and use cases. The data is initially loaded into a message queue upon insertion and is later written to persistent storage by the data node, either during regular operations or immediately if `flush()` is called.
至此,通过Milvus和DeepSeek构建了一个RAG pipeline的完整流程正式完成。

02

对比:原装版DeepSeek-V3-0324  VS RAG版

在搭建好一个最基本的RAG之后,接下来,我们对原装版DeepSeek-V3-0324 以及结合了Milvus+DeepSeek-V3-0324的RAG版本做一下效果对比。

对比问题可以选用"write HTML code to create a fancy website about Milvus"。

我们直接在官网的对话框关闭【深度思考】,然后直接提问,效果如下:

下面是集成了Milvus的RAG版本,将上文代码中的question进行替换

question="write HTML code to create a fancy website about Milvus"

生成的网站如下:

通过对比我们可以看到,在整体审美风格比较接近的情况下,RAG版网站,无论是产品简介,还是具体的亮点分析,都更加符合实际的Milvus特性。建立在本地文档所提供的更丰富的语料语料基础上,给出的整体网站内容也会更加丰富、专业,不空洞。

03

写在最后

其实不只是代码能力,在数学推理、长文本阅读推理等方面,新版V3均有较大程度的提升,几乎与Claude 3.7 Sonnet 媲美。

另外,我们通过实验发现,相比前一段时间风很大的推理模型,作为非推理模型的新版V3,虽然不会在回答中给出详细的推理过程,但其答案生成仍展现了一定的逻辑与思考能力。

与之形成对比,推理模型做RAG与Agent ,效果很好,但却会对一些简单的指令判断,做一大堆分析与反复思考确认,不仅消耗过多token,回答速度还慢。

而新版V3,对于一些成本敏感的场景来说,或许带来了问题的新解法。

更进一步,这也印证了诸如 OpenAI 的大模型厂商,后续不再区别推理和非推理模型背后的逻辑,模型服务应该自动根据需求判断是否推理,以节省不必要的 token 开销

作者介绍

图片

王舒虹

Zilliz Social Media Advocate

推荐阅读

图片图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.M-LAG专题

M-LAG 的作用及特点 能不能简单的描述以下M-LAG的工作原理? 跨设备链路聚合&#xff0c;将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合&#xff0c;从而提供设备级冗余保护和流量负载分担 M-LAG(跨设备链路聚合)是基于IEEEP802.1A协议的跨设备链路聚合技术。…

每日免费分享之精品wordpress主题系列~DAY16

主题介绍&#xff1a; 今日在网上寻找wordpress主题的时候逛到了大叔的网站&#xff0c;赶脚这个主题蛮不错的&#xff0c;于是百度一下&#xff0c;果然&#xff0c;这个主题很受欢迎。作为主题下载站追梦者也不甘落后&#xff0c;马上就发布出来了&#xff0c;希望对你们有用…

LeeCode 383. 赎金信

给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入&#…

目标检测20年(一)

今天看的文献是《Object Detection in 20 Years: A Survey》&#xff0c;非常经典的一篇目标检测文献&#xff0c;希望通过这篇文章学习到目标检测的基础方法并提供一些创新思想。 论文链接&#xff1a;1905.05055 目录 一、摘要 1.1 原文 1.2 翻译 二、介绍 三、目标检测…

IDEA 快捷键ctrl+shift+f 无法全局搜索内容的问题及解决办法

本篇文章主要讲解IDEA、phpStrom、webStrom、pyCharm等jetbrains系列编辑器无法进行全局搜索内容问题的主要原因及解决办法。 日期&#xff1a;2025年3月22日 作者&#xff1a;任聪聪 现象描述&#xff1a; 1.按下ctrlshiftf 输入法转为了繁体。 2.快捷键ctrlshiftr 可以全局检…

树状数组【数据结构】

树状数组 简介 1.应用 1.单点修改区间查询 2.区间修改单点查询(差分) 3.区间修改区间查询(差分公式) 总而言之,就是动态维护前缀和。 2.树状结构图 3.lowbit函数 我们知道&#xff0c;任何一个正整数都可以被表示成一个二进制数。如&#xff1a; ( 2 ) 10 ( 10 ) 2 (2)_{10…

pytorch+maskRcnn框架训练自己的模型以及模型导出ONXX格式供C++部署推理

背景 maskrcnn用作实例分割时&#xff0c;可以较为精准的定位目标物体&#xff0c;相较于yolo只能定位物体的矩形框而言&#xff0c;优势更大。虽然yolo的计算速度更快。 直接开始从0到1使用maskrCNN训练自己的模型并并导出给C部署&#xff08;亲测可用&#xff09; 数据标注…

PCL配置

1、下载 打开GitHub网站&#xff0c;搜索pcl&#xff0c;选择第一个结果打开&#xff0c;按照下图步骤操作 下载PCL预编译安装程序PCL-1.13.1-AllInOne-msvc2022-win64.exe 和要安装的PCL组件&#xff08;例如pcl-1.13.1-pdb-msvc2022-win64.zip&#xff09; 2、安装 双击 P…

VectorBT:使用PyTorch+LSTM训练和回测股票模型 进阶一

VectorBT&#xff1a;使用PyTorchLSTM训练和回测股票模型 进阶一 本文介绍了如何使用PyTorch和LSTM模型进行股票数据的训练和回测。涵盖了数据预处理、特征选择、LSTM模型构建、模型训练与验证、动态阈值策略生成交易信号以及使用VectorBT进行回测和绩效分析。 文中内容仅限技术…

MantisBT在Windows10上安装部署详细步骤

MantisBT 是一款基于 Web 的开源缺陷跟踪系统&#xff0c;以下是在 Windows 10 上安装部署 MantisBT 的详细步骤&#xff1a; 1. 安装必要的环境 MantisBT 是一个基于 PHP 的 Web 应用程序&#xff0c;因此需要安装 Web 服务器&#xff08;如 Apache&#xff09;、PHP 和数据…

深入理解K8s与Docker的关系:容器化技术的双雄

友情提示&#xff1a;本文内容由银河易创&#xff08;https://ai.eaigx.com&#xff09;AI创作平台gpt-4-turbo模型生成&#xff0c;仅供参考。 在现代云计算及微服务架构的发展中&#xff0c;Docker与Kubernetes&#xff08;K8s&#xff09;作为两大核心技术&#xff0c;被广泛…

蓝桥与力扣刷题(蓝桥 蓝桥骑士)

题目&#xff1a;小明是蓝桥王国的骑士&#xff0c;他喜欢不断突破自我。 这天蓝桥国王给他安排了 N 个对手&#xff0c;他们的战力值分别为 a1,a2,...,an&#xff0c;且按顺序阻挡在小明的前方。对于这些对手小明可以选择挑战&#xff0c;也可以选择避战。 身为高傲的骑士&a…

如何查看window电脑的GPU信息

GPU&#xff08;图形处理器&#xff0c;Graphics Processing Unit&#xff09;和显卡是两个密切相关但不同的概念 概念 1. ‌基本概念‌ ‌GPU‌&#xff1a;是专门用于处理图像和视频信息的微处理器&#xff0c;拥有强大的并行计算能力&#xff0c;主要负责图形渲染、数值分…

26考研——查找_树形查找_二叉排序树(BST)(7)

408答疑 文章目录 三、树形查找二叉排序树&#xff08;BST&#xff09;二叉排序树中结点值之间的关系二叉树形查找二叉排序树的查找过程示例 向二叉排序树中插入结点插入过程示例 构造二叉排序树的过程构造示例 二叉排序树中删除结点的操作情况一&#xff1a;被删除结点是叶结点…

如何在 Postman 中导入和导出 cURL 命令?

cURL 是一款广受欢迎的命令行工具&#xff0c;专门用于执行 HTTP 请求。它在 Web 应用或 API 测试中极为实用&#xff0c;让用户得以借助在 API 开发者社区广为流行的成熟语法&#xff0c;直接通过命令行与 API 进行交互。若你需要在多个环境下运行众多 cURL 命令&#xff0c;可…

用python制作一个贪吃蛇小游戏

文章目录 效果图python源码使用说明效果图 只需要一百多行python代码,就能制作一个贪吃蛇小游戏。效果如下: 操作说明: 你可以使用上下左右箭头键来控制蛇的移动方向。蛇吃到食物后会变长,当蛇撞到墙壁或自己的身体时游戏结束。游戏结束后,你可以按 Q 退出游戏,或按 C…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15&#xff08;2016&#xff09; 核心架构&#xff1a;Stack Reconciler&#xff08;栈协调器&#xff09; 工作原理&#xff1a; 同步递归渲染&#xff1a;采用深度优先遍历方式递归处理 Virtual DOM&#xff0c;形成不可中断的调用栈渲染流程&#xff1a;1. 触发 …

微信小程序pdf预览

1.示例图 2.代码 fileId&#xff1a;要预览的pdf文件的id viewsFiles(fileId) {wx.showLoading({title: 加载中...});var params {url: "/common/getFile/" fileId ,//后端提供的接口method: "GET",responseType: "arraybuffer",callBack: …

把手搭建vue前后端管理系统-TAB标签通过pinia来进行管理(二十六)

目标&#xff1a;通过pinia的store来进行组件状态的统一管理&#xff0c;这样大家都可以共用到这个组件的状态信息&#xff0c;就可以实现组件的联动 一、添加侧边栏菜单的点击事件&#xff1a; 1、CommonAside.vue里面添加click的事件 <el-menu-itemv-for"item in …

计算机网络——数据链路层的功能

目录 物理链路 逻辑链路 封装成帧&#xff08;组帧&#xff09; 帧定界 透明传输 SDU 差错控制 可靠传输 流量控制 介质访问控制 主机需要实现第一层到第五层的功能&#xff0c;而路由器这种节点只需要实现第一层到第三层的这些功能 假设左边用户需要给右边用户发送…