当前位置: 首页 > news >正文

各种网站末班wordpress 插件表单 写入数据库

各种网站末班,wordpress 插件表单 写入数据库,网站开发5000,设计制作小船的第一步是什么最近#xff0c;DeepSeek v3#xff08;一个MoE模型#xff0c;拥有671B参数#xff0c;其中37B参数被激活#xff09;模型全球爆火。 作为一款能与Claude 3.5 Sonnet#xff0c;GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源#xff0c;还放出一份扎实的技术… 最近DeepSeek v3一个MoE模型拥有671B参数其中37B参数被激活模型全球爆火。 作为一款能与Claude 3.5 SonnetGPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源还放出一份扎实的技术报告详尽描述了DeepSeek是如何进行大模型架构、算法工程协同设计部署训练数据处理等方面的思考堪称是一份DeepSeek给开源社区送上的年末大礼。 本篇文章我们会对DeepSeek v3的亮点进行梳理并对其RAG搭建流程与效果做一个简单的示例。 01. DeepSeek v3的亮点 亮点一超低的训练成本将带来算力的极大富余 相比于海外大厂动辄上万甚至上十万的H100集群例如Meta使用了16K的H100训练Llama3.1 405BDeepSeek仅仅使用了2048张丐版显卡H800就在14.8T数据上训练了一个处于第一梯队的开源模型。以下是DeepSeek v3的训练成本数据。 不难看出基于以上数据传统对大模型对算力的供需预测推演直接被推翻过去Scaling law曲线所估算出的GPU需求数量会出现极大冗余。 那么问题来了DeepSeek v3是如何做到的 亮点二颠覆GPT架构极致的工程设计 在去年大模型领域普遍认为模型的设计已经收敛到Decoder-only的GPT架构但DeepSeek依然没有放弃对模型架构的进一步探索。 这一次V3的设计延用了V2提出的MLAMulti-head Latent Attention这是一种通过低秩压缩键值对来减少缓存需求的创新架构以提高Transformer模型的推理效率。 另外此次的MoE模型规格也比之前大了许多V3 671B V2 236B也体现出了对这个架构拥有更多的信心和经验。DeepSeek V3将除前三层外的所有 FFN 层替换为 MoE 层。每个 MoE 层包含 1 个共享专家和 256 个路由专家。在路由专家中每个 token 将激活 8 个专家并确保每个 token 最多会被发送到 4 个节点。 同时论文还对如何在系统中设计将这种架构进行推理的性能优化也进行了详尽的描述。 DeepSeek V3使用了多token预测MTP即每个 token 除了精确预测下一个 token 外还会预测一个额外的 token通过投机采样的方式提高推理效率。 关于如何使用FP8进行模型训练这个各个大模型工程团队头痛的问题DeepSeek V3也对自己的实践有细致的描述对这部分感兴趣的朋友强烈推荐阅读论文原文。 亮点三通过蒸馏推理模型进行后训练 自从OpenAI发布了o1模型之后业界开始逐渐兴起了探索这种内置思维琏CoT的模型它不断对中间结果探索分析的过程仿佛人的“慢思考”。DeepSeek同样也开发了类似的R1模型在DeepSeek V3中DeepSeek创新性地通过在后训练阶段使用R1得到的高质量答案来提高了自身的性能。这一点也非常有趣。 众所周知类似o1的开源模型大部分都是从基础模型利用CoT结合强化学习的技巧训练出来提高了推理效果而现在又通过蒸馏推理模型获得了下一代更好的基础模型这一种模型和数据质量互相交织的发展模式贯穿着机器学习发展的历史而还将继续被见证。 而以发掘非结构化数据价值的厂商Zilliz也相信对于数据和知识的高效管理将会一直在智能化浪潮发展中扮演着重要的角色。 看到10K$的后训练成本相信许多致力于微调专属大模型的厂商都跃跃欲试在这里我们也来看一下DeepSeek V3的后训练过程整个流程也比传统的SFT要复杂一些。整个过程分成了SFT阶段监督学习以及RL阶段强化学习在SFT阶段他们将数据分成了两种类型推理数据以及非推理数据 推理数据 包括数学编程这些问题DeepSeek训练了针对性的专家模型并使用专家模型为每一个问题生成了两种格式的学习数据。 problem, original responsesystem prompt, problem, R1 response 非推理数据 对于非推理任务如创意写作和简单问答作者利用DeepSeek-V2.5模型生成初步响应并聘请人工标注员对其准确性进行验证 训练的流程 SFT阶段使用基于专家模型生成的SFT样本进行初步的监督微调。通过这些训练数据模型学习如何根据问题和回答生成精确的推理响应。RL阶段使用高温采样来生成响应这些响应融合了来自原始数据和R1生成数据的模式。在RL阶段会使用LeetCode编译器来检查编程的答案以及一些规则来去检查数学问题的答案对于开放性问题 会用一个奖励模型来去判断。该过程帮助模型在没有显式系统提示的情况下进行推理经过数百次RL步骤模型学会如何平衡准确与简洁性的答案。完成RL训练后作者实施拒绝采样策略过滤掉模型认为低质量的数据以从生成的样本中挑选出高质量的SFT数据。这些数据用于最终模型的微调。 不难发现做好一个高质量的后训练下的功夫远远不止10k$的训练算力。 DeepSeek V3虽然拥有可以与闭源模型匹敌的性能但是部署它依然不是一个简单的事即使作者已经为了推理优化做了许多工作但搭建一个DeepSeek V3的服务考虑到它671B的参数量成本依然不低。 02. 使用Milvus和DeepSeek搭建RAG 接下来我们将展示如何使用Milvus和DeepSeek构建检索增强生成RAGpipeline。 2.1 准备 2.1.1 依赖和环境 pip install --upgrade pymilvus[model] openai requests tqdm 如果您使用的是Google Colab要启用刚刚安装的依赖项您可能需要重启运行环境单击屏幕顶部的“Runtime”菜单然后从下拉框中选择“Restart session”。 DeepSeek启动了OpenAI风格的API。您可以登录官网并将api密钥 DEEPSEEK_API_KEY准备为环境变量。 import osos.environ[DEEPSEEK_API_KEY]  *********** 2.1.2 准备数据 我们使用Milvus文档2.4. xhttps://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip中的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, recursiveTrue):with open(file_path, r) as file:file_text  file.read()text_lines  file_text.split(# ) 2.1.3 准备LLM和embedding模型 DeepSeek采用了类OpenAI风格的API您可以使用相同的API并对相应的LLM进行微调。 from openai import OpenAIdeepseek_client  OpenAI(api_keyos.environ[DEEPSEEK_API_KEY],base_urlhttps://api.deepseek.com, ) 选择一个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] 2.2 将数据加载到Milvus 2.2.1 创建集合 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中的公共端点和Api密钥。 检查集合是否已经存在如果存在则将其删除。 if milvus_client.has_collection(collection_name):milvus_client.drop_collection(collection_name) 使用指定的参数创建一个新集合。 如果我们不指定任何字段信息Milvus将自动为主键创建一个默认的id字段并创建一个向量字段来存储向量数据。保留的JSON字段用于存储未在schema里定义的标量数据。 milvus_client.create_collection(collection_namecollection_name,dimensionembedding_dim,metric_typeIP,  # Inner product distanceconsistency_levelStrong,  # Strong consistency level ) 2.2.2 插入数据 逐条取出文本数据创建嵌入然后将数据插入Milvus。 这里有一个新的字段“text”它是集合schema中的非定义字段会自动添加到保留的JSON动态字段中。 from tqdm import tqdmdata  []doc_embeddings  embedding_model.encode_documents(text_lines)for i, line in enumerate(tqdm(text_lines, descCreating embeddings)):data.append({id: i, vector: doc_embeddings[i], text: line})milvus_client.insert(collection_namecollection_name, datadata) Creating embeddings:   0%|          | 0/72 [00:00?, ?it/s]huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks... To disable this warning, you can either:- Avoid using tokenizers before the fork if possible- Explicitly set the environment variable TOKENIZERS_PARALLELISM(true | false) Creating embeddings: 100%|██████████| 72/72 [00:0000:00, 246522.36it/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} 2.3 构建RAG 2.3.1 检索查询数据 让我们指定一个关于Milvus的常见问题。 question  How is data stored in milvus? 在集合中搜索问题并检索语义top-3匹配项。 search_res  milvus_client.search(collection_namecollection_name,dataembedding_model.encode_queries([question]),  # Convert the question to an embedding vectorlimit3,  # 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, indent4)) [[ 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/?nc1h_ls), [Google Cloud Storage](https://cloud.google.com/storage?hlen#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] ] 2.3.2 使用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-chat模型根据提示生成响应。 response  deepseek_client.chat.completions.create(modeldeepseek-chat,messages[{role: system, content: SYSTEM_PROMPT},{role: user, content: USER_PROMPT},], ) print(response.choices[0].message.content) In Milvus, data is stored in two main categories: inserted data and metadata.1. **Inserted Data**: This includes vector data, scalar data, and collection-specific schema. The inserted 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 within Milvus and is specific to each Milvus module. This metadata is stored in etcd, a distributed key-value store.Additionally, when data is inserted, it is first loaded into a message queue, and Milvus returns success at this stage. The data is then written to persistent storage as incremental logs by the data node. If the flush() function is called, the data node is forced to write all data in the message queue to persistent storage immediately. 太好了现在我们已经成功使用Milvus和DeepSeek构建了一个RAG pipeline。 作者介绍 王翔宇 Zilliz 算法工程师 推荐阅读
http://www.dnsts.com.cn/news/196641.html

相关文章:

  • 百度申请qq号免费注册杭州网站优化流程
  • 嘉兴seo网站推广百度短链接
  • 新网站怎么做优化站长之家网站查询
  • asp网站做视频网站建设pc指什么软件
  • wordpress万能密码青岛网站优化价格
  • 自己怎么做新闻开头视频网站简单的网站建设找哪个公司
  • 网站建设做的快网站建设合同属于技术服务合同吗
  • 韶山网站建设外贸网站关键词
  • wordpress网站主题插件做文献ppt模板下载网站
  • 策划方案免费网站请简述网站建设的一般流程
  • 淮北网站建设求职简历中通物流企业网站建设书
  • 网站建设的市场策划wordpress打造
  • 四川省建设工程质量监理协会网站网站建设公司不能备案吗
  • 网站管理建设年度关键词有哪些
  • 照片做视频ppt模板下载网站网站建设案例教程试卷
  • 江山网站制作妇联网网站建设工作
  • 网站建设帮助中心做软件用什么编程语言
  • 企业怎样做好网站建设网站哪些功能是PHP做的
  • 简述网站与网页的区别打开一个不良网站提示创建成功
  • 小程序开发需要多少钱知乎无锡优化推广
  • 国外seo比较好的博客网站贵阳经济技术开发区网站
  • 电子商务网站建设的基本构成广州网上注册公司
  • 网站备案 核验单浏览器网站大全免费
  • 三站合一网站建设方案网站搜索引擎优化的步骤
  • 永康电子商务网站建设顺德建设行政主管部门网站
  • 建设网站平台滴滴车设计感网站有哪些方面
  • 可以做微课PPT模板 网站办公室隔断
  • 东莞市行业网站制作公司网站开发 pdf
  • 微网站开发建设win10如何部署自己做的网站
  • seo顾问和seo专员安徽优化推广