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

LangChain开发框架并学会对大型预训练模型进行微调(fine-tuning)

要掌握LangChain开发框架并学会对大型预训练模型进行微调(fine-tuning),你需要理解整个过程从数据准备到最终部署的各个环节。下面是这一流程的一个概览,并提供了一些关键步骤和技术点:

1. LangChain开发框架简介

LangChain是一个开源项目,它提供了一套工具和模式,用于构建应用程序,这些应用程序利用语言模型完成各种任务,如文档检索、对话管理等。LangChain通过连接器(Connectors)、链(Chains)、加载器(Loaders)和代理(Agents)等组件帮助开发者快速搭建基于语言模型的应用。
 


LangChain 是一个开源框架,旨在简化利用大型语言模型(LLMs)构建应用程序的过程。它提供了一系列工具和模式,使开发者能够轻松地将语言模型集成到他们的应用中,实现诸如问答系统、聊天机器人、文档检索等多种功能。

下面是对 LangChain 的全面介绍:

1. LangChain 的核心概念

1.1 连接器 (Connectors)

连接器允许开发者从不同的数据源获取信息。这些数据源可以包括文件、数据库、网络API等。例如,你可以使用连接器来读取PDF文件中的文本,或者从网站上抓取信息。

1.2 链 (Chains)

链是定义了输入和输出之间逻辑关系的一系列步骤。它们可以是简单的函数调用,也可以是复杂的多步骤逻辑。例如,一个简单的问答链可能包含一个检索器来查找相关信息,以及一个LLM来生成答案。

1.3 加载器 (Loaders)

加载器用于从特定的数据源加载数据。它们通常是连接器的一部分,但有时也可以独立使用。

1.4 代理 (Agents)

代理是一组链的集合,可以根据输入自动决定执行哪条链。它们可以实现复杂的逻辑分支,根据用户的输入动态调整行为。

1.5 工具 (Tools)

工具是指可以直接调用的功能,例如搜索网络、执行计算等。这些工具可以通过代理或链直接访问。

2. LangChain 的架构

LangChain 的架构主要由以下几个部分组成:

2.1 LLMs

这是指大型语言模型本身,如 GPT-3, GPT-4 或者其他的预训练模型。LangChain 支持多种不同的模型接口,使得开发者可以轻松切换不同的模型供应商。

2.2 数据索引

为了有效地检索信息,LangChain 提供了创建和查询向量数据库的能力。这些数据库可以存储文档的嵌入向量,以便在查询时快速找到最相关的文档。

2.3 应用程序接口 (APIs)

LangChain 提供了 REST API 和 SDK,使得开发者可以在任何环境中使用 LangChain 构建的应用程序。

3. 使用 LangChain 的步骤

3.1 安装 LangChain

首先需要安装 LangChain 框架,这通常通过 pip 命令完成:

 
1pip install langchain
3.2 设置 API 密钥

许多 LangChain 的功能依赖于外部 API,例如 OpenAI 的 API。你需要设置相应的环境变量来提供访问密钥。

3.3 创建连接器

根据你的需求选择合适的连接器,用于加载和处理数据。

3.4 创建链

定义链来处理数据和生成响应。这可以包括简单的问答链,也可以是复杂的多步骤逻辑。

3.5 创建代理

如果需要更复杂的应用逻辑,可以创建代理来管理多个链之间的交互。

3.6 部署应用

将应用部署到服务器或云服务上,使其可以被外部用户访问。

4. 示例:构建一个简单的问答系统

这里有一个简单的示例,展示如何使用 LangChain 构建一个基于文档的问答系统:

4.1 准备数据

假设你有一份 PDF 文件 example.pdf,你想要从中提取信息来回答问题。

4.2 加载数据

使用 LangChain 的 PDF 加载器来读取文件内容:

 

from langchain.document_loaders import PyPDFLoaderloader = PyPDFLoader("example.pdf")
pages = loader.load_and_split()
4.3 创建向量数据库

使用向量数据库来存储文档的嵌入:

 
1from langchain.vectorstores import Chroma
2from langchain.embeddings.openai import OpenAIEmbeddings
3
4embeddings = OpenAIEmbeddings()
5db = Chroma.from_documents(pages, embeddings)
4.4 创建问答链

创建一个链来处理用户的提问并返回答案:

 
1from langchain.chains import RetrievalQA
2from langchain.chat_models import ChatOpenAI
3
4qa = RetrievalQA.from_chain_type(
5    llm=ChatOpenAI(model_name="gpt-3.5-turbo"),
6    chain_type="stuff",
7    retriever=db.as_retriever(),
8    return_source_documents=True
9)
4.5 运行问答系统

现在你可以通过调用这个链来询问文档中的信息:

 
query = "What is the main topic of this document?"
result = qa({"query": query})
print(result["result"])

5. 社区和支持

LangChain 拥有一个活跃的社区,提供了大量的文档、教程和示例代码。你可以在 GitHub 上找到该项目,并参与到社区讨论中。


2. 数据准备

  • 数据收集:首先需要确定你要训练的垂直领域是什么,然后收集相关的数据集。这些数据可以从公开数据源获取,或者通过爬虫等方式自行搜集。
  • 数据清洗:清洗数据是非常重要的一步,需要去除无关的信息、纠正错误和格式不一致等问题。
  • 数据标注:如果需要,对数据进行标注以提供额外的信息,比如情感极性、实体标记等。
  • 数据分割:将数据集分为训练集、验证集和测试集。

3. 数据蒸馏

  • 知识蒸馏:这是一种技术,通过让一个较小的模型(学生模型)模仿一个较大的预训练模型(教师模型)的行为来提高小模型的性能。在这个过程中,你可以使用教师模型的输出作为标签来训练学生模型。
  • 自监督学习:对于无标签数据,可以使用自监督学习方法,如掩码语言模型(Masked Language Model, MLM)来生成训练信号。
  • 对比学习:可以采用对比学习的方法来增强模型的理解能力,尤其是在处理文本相似性问题时非常有效。

数据蒸馏(Data Distillation)是一种机器学习技术,主要用于减少训练数据集的大小,同时尽量保持模型性能不变。这种方法特别适用于那些拥有大量标记数据的情况,其中一部分数据可能是冗余的或不那么重要的。数据蒸馏可以帮助提高模型训练的速度和效率,同时也降低了存储和计算资源的需求。

下面是数据蒸馏的一些具体方法及其注意事项:

1. 基本原理

数据蒸馏的基本思想是从原始的大规模数据集中提取出一个较小的数据子集,该子集能以较小的代价维持原始模型的性能。通常的做法是利用一个已经训练好的模型(教师模型)来生成一个新的小规模数据集,然后使用这个数据集来训练另一个模型(学生模型),以达到与原始模型相似的性能。

2. 具体方法

2.1 核心样本选择
  • 主动学习:主动学习是一种常见的数据蒸馏方法,它通过选择最具代表性的样本进行保留,这些样本往往是最不确定或最有信息价值的。
  • 聚类:通过对数据进行聚类分析,选择每个簇的中心点作为代表性样本。
  • 梯度匹配:选择那些能够产生与教师模型相似梯度的样本。
2.2 知识蒸馏
  • 软标签蒸馏:教师模型不仅给出最终预测,还给出中间概率分布作为“软标签”,学生模型则尝试去学习这些软标签。
  • 特征蒸馏:除了输出层之外,还可以考虑使用教师模型的隐藏层特征来训练学生模型。
  • 自监督学习:利用未标记数据进行额外的学习,从而提升学生模型的表现。
2.3 损失函数设计
  • 交叉熵损失:对于分类任务,通常使用交叉熵损失函数来衡量学生模型的预测与教师模型的软标签之间的差异。
  • MSE损失:对于回归任务,均方误差(MSE)损失可以用来衡量预测值和目标值之间的差距。
  • 组合损失:通常会结合使用交叉熵损失和MSE损失,甚至添加额外的正则化项来优化学生模型。

3. 需要避开的坑

3.1 样本偏差
  • 确保代表性:选择的数据子集应该覆盖原始数据集的分布特性,避免出现偏差。
  • 多样性:确保选择的样本具有足够的多样性,避免过拟合到特定类型的样本上。
3.2 性能下降
  • 评估学生模型:定期评估学生模型的性能,确保其能够达到接近教师模型的表现。
  • 避免过度压缩:不要过分压缩数据集,否则可能会丢失重要信息导致性能下降。
3.3 训练效率
  • 合理设置超参数:超参数的选择会影响数据蒸馏的效果,比如温度参数(t)在知识蒸馏中的作用非常重要。
  • 监控训练过程:监控训练过程中的损失变化和其他指标,及时调整训练策略。
3.4 实施细节
  • 数据预处理:确保在蒸馏过程中使用的数据经过了适当的预处理,比如标准化和归一化。
  • 模型兼容性:确保学生模型和教师模型在架构上是兼容的,特别是在特征蒸馏的情况下。

4. 实践建议

  • 在开始数据蒸馏之前,对原始数据集进行充分的理解和探索。
  • 使用交叉验证来评估不同蒸馏策略的有效性。
  • 考虑使用多种蒸馏技术和方法的组合来达到最佳效果。

通过遵循以上建议和注意事项,你可以更好地实施数据蒸馏,并且避免一些常见的陷阱。如果你正在考虑在项目中应用数据蒸馏,建议先从小规模实验开始,逐步扩大规模,并持续监控性能表现。

 


 

4. 模型选择与微调

  • 选择预训练模型:根据你的任务需求选择合适的预训练模型,如BERT、GPT系列或其他相关模型。
  • 模型微调:使用你的数据集对预训练模型进行微调。这通常涉及到调整模型的某些层,比如添加一个分类头(classification head)或回归层(regression layer)。
  • 超参数调整:通过实验找到最佳的超参数组合,如学习率、批次大小等。

常见超参数⭐️
 

  • 学习率 (Learning Rate): 控制权重更新的步长。
  • 批量大小 (Batch Size): 每次更新权重时使用的样本数量。
  • 迭代次数 (Number of Epochs): 完整遍历一次训练集的次数。
  • 隐藏层单元数 (Number of Units in Hidden Layers): 神经网络中每层的神经元数量。
  • 激活函数 (Activation Functions): 决定神经元的输出。
  • 优化器 (Optimizer): 如SGD、Adam、RMSprop等,用于更新权重。
  • 正则化参数 (Regularization Parameters): 如L1、L2正则化强度。
  • Dropout率 (Dropout Rate): 在训练过程中随机丢弃神经元的比例。
  • 初始权重 (Initialization): 模型参数的初始化方式。
  • 温度参数 (Temperature): 对于生成式模型,控制输出的随机性。


温度”(Temperature)参数

在语言模型(Language Model, LLM)中,“温度”(Temperature)参数通常指的是在生成文本时用于控制输出随机性的参数。这个概念源自统计物理学,在那里温度决定了粒子的运动程度,而在机器学习中,温度参数影响模型生成输出的多样性和不确定性。

温度参数的作用

在生成式语言模型中,模型通常会输出一个概率分布,表示下一个词可能是什么。这个概率分布可以通过采样得到下一个词。温度参数 𝑇T 被用来调整这个概率分布,进而影响最终的采样结果。

  • 高温度 (T > 1):当温度设置得较高时,概率分布变得更加平坦,这意味着原本概率较低的词汇也会有更高的机会被选中。这通常会导致生成的文本更加多样化但可能不够连贯。

  • 标准温度 (T = 1):这是默认设置,模型会按照原始概率分布进行采样。在这种情况下,温度参数不会对概率分布产生影响。

  • 低温度 (T < 1):当温度设置得较低时,概率分布变得更加尖锐,高概率的词汇被选中的可能性更高,而低概率词汇几乎不可能被选中。这通常会使生成的文本更趋向于模型认为最可能的输出,因此文本可能更加连贯但缺乏多样性。

如何使用温度参数

在生成文本时,你可以通过调整温度参数来改变输出的风格。例如:

  • 如果你想让模型生成更加创新和多样化的文本,可以尝试较高的温度值。
  • 如果你需要更加稳定和可预测的输出,可以使用较低的温度值。

数学解释

假设模型输出的概率分布为 𝑝𝑖pi​,那么温度调整后的概率分布 𝑞𝑖qi​ 可以通过下面的公式计算得出: 𝑞𝑖=exp⁡(𝑝𝑖/𝑇)∑𝑗exp⁡(𝑝𝑗/𝑇)qi​=∑j​exp(pj​/T)exp(pi​/T)​

这里 𝑖i 表示词汇表中的某个词汇,𝑗j 是所有可能词汇的索引,𝑇T 是温度参数。可以看到,当 𝑇>1T>1 时,分布变得更为均匀;而当 𝑇<1T<1 时,分布变得更集中。

示例

假设一个模型输出的概率分布为 [0.1, 0.5, 0.4],分别对应三个不同的词汇选项。如果我们使用不同的温度值进行调整,可以得到如下结果:

  • 当 𝑇=1T=1 时,概率分布不变,即 [0.1, 0.5, 0.4]。
  • 当 𝑇=0.5T=0.5 时,概率分布变得更集中,例如 [0.06, 0.64, 0.30]。
  • 当 𝑇=2T=2 时,概率分布变得更平坦,例如 [0.19, 0.38, 0.43]。

在实际应用中,温度参数通常是在模型生成文本时手动调整的一个超参数,而不是在训练阶段使用。在不同的应用场景下,合适的温度值可能各不相同,因此通常需要通过实验来确定最佳的温度值。


5. 大模型部署

  • 模型压缩:为了降低部署的成本,可以考虑使用模型量化、剪枝等技术来减小模型的大小。
  • 服务化:将模型封装成一个API服务,方便其他应用程序调用。
  • 容器化:使用Docker等技术将模型及其运行环境打包,便于跨平台部署。
  • 监控与维护:部署后需要持续监控模型的表现,并定期更新模型以保持其准确性。

实战技能

  • 编程基础:熟悉Python编程,了解常见的数据处理库如Pandas、NumPy等。
  • 深度学习框架:熟悉TensorFlow或PyTorch等深度学习框架。
  • LangChain框架:掌握LangChain的核心概念,了解如何使用LangChain的组件来构建应用。
  • 版本控制:使用Git进行代码版本控制。
  • 云服务:了解如何使用AWS、Google Cloud、Azure等云服务提供商提供的服务进行模型部署。

通过以上步骤,你可以建立起一套完整的流程来对大型语言模型进行垂直领域的微调,并将其部署为一个可用的服务

相关文章:

LangChain开发框架并学会对大型预训练模型进行微调(fine-tuning)

要掌握LangChain开发框架并学会对大型预训练模型进行微调&#xff08;fine-tuning&#xff09;&#xff0c;你需要理解整个过程从数据准备到最终部署的各个环节。下面是这一流程的一个概览&#xff0c;并提供了一些关键步骤和技术点&#xff1a; 1. LangChain开发框架简介 La…...

VMware安装(有的时候启动就蓝屏建议换VM版本)

当你开始使用虚拟化技术来管理和运行多个操作系统时&#xff0c;VMware 是一个强大且广泛使用的选择。本篇博客将指导你如何安装 VMware Workstation Pro&#xff0c;这是一个功能强大的虚拟机软件&#xff0c;适用于个人和专业用户。 一、下载 VMware Workstation Pro 访问官网…...

AV1技术学习:Quantization

量化是对变换系数进行&#xff0c;并将量化索引熵编码。AV1的量化参数 QP 的取值范围是0 ~ 255。 一、Quantization Step Size 在给定的 QP 下&#xff0c;DC 系数的量化步长小于 AC 系数的量化步长。DC 系数和 AC 系数从 QP 到量化步长的映射如下图所示。当 QP 为 0 时&…...

vllm部署记录

1. pip安装 pip install vllm 下载模型在huggingface.co 注意在modelscope上的这个opt-125m好像不行了,我git不下来报错 启动服务 vllm serve opt-125m --model opt-125m --port 8888 第一个opt-125m是名字,可以在vllm支持的模型中查到,第二个是模型存放文件夹及其路径…...

HTML前端 盒模型及常见的布局 流式布局 弹性布局 网格布局

CSDN的文章没有“树状目录管理”&#xff0c;所以我在这里整理几篇相关的博客链接。 操作有些麻烦。 CSS 两种盒模型 box-sizing content-box 和 border-box 流式布局 flow layout 弹性布局 flex layout HTML CSS 网格布局 grid layout HTML CSS...

网络安全 DVWA通关指南 DVWA Command Injection(命令注入)

DVWA Command Injection&#xff08;命令注入&#xff09; 文章目录 DVWA Command Injection&#xff08;命令注入&#xff09;LowMediumHighImpossible Low 1、分析网页源代码 <?php// 当表单提交按钮&#xff08;Submit&#xff09;被触发时执行以下代码 if (isset($_P…...

VUE3学习第三篇:报错记录

1、在我整理好前端代码框架后&#xff0c;而且也启动好了对应的后台服务&#xff0c;访问页面&#xff0c;正常。 2、报错ReferenceError: defineModel is not defined 学到这里报错了 在vue网站的演练场&#xff0c;使用没问题 但是在我自己的代码里就出问题了 3、watchEffec…...

CentOS怎么关闭自动锁屏?

禁止自动锁屏 有时候几分钟不用Centos&#xff0c;系统就自动锁屏了&#xff0c;这是一种安全措施&#xff0c;防止别人趁你不在时使用你的系统。但对于大部分人而言&#xff0c;这是没有必要的&#xff0c;尤其是Centos虚拟机&#xff0c;里面没啥重要的东西&#xff0c;每次…...

vscode 环境

这张截图显示的是在VS Code&#xff08;Visual Studio Code&#xff09;中选择Python解释器的界面。不同的Python解释器及其虚拟环境列出了可选项&#xff0c;用户可以根据需要选择合适的解释器来运行Python代码。以下是对截图中信息的详细解释&#xff1a; 解释器选择界面 当…...

浏览器自动化测试工具selenium——爬虫操作记录

selenium——是一款web自动化测试框架&#xff0c;其能模拟正常的用户操作&#xff0c;比如点击。但selenium并不是浏览器&#xff0c;没有执行js和解析html/css的能力&#xff0c;因此selenium需要和浏览器配合使用。 因为selenium可以模仿用户行为&#xff0c;因此selenium也…...

微信小程序配置访问服务器失败所发现的问题及解决方案

目录 事前现象问题1&#xff1a;问题现象&#xff1a;问题分析&#xff1a; 问题2&#xff1a;问题现象&#xff1a;问题分析&#xff1a;解决方案&#xff1a; 事后现象 事前现象 问题1&#xff1a; 问题现象&#xff1a; 在本地调试时&#xff0c;一切顺利&#xff0c;但一…...

javaEE(1)

一. Web开发概述 Web开发:指的是从网页中向后端程序发送请求,与后端程序进行交互 Web服务器:是一种软件,向浏览器等Web客户端提供文档等数据,实现数据共享,它是一个容器,是一个连接用户和程序之间的中间键 二. Web开发环境搭建 我们要实现前后端交互,首先需要中间键Web服务…...

极简Springboot+Mybatis-Plus+Vue零基础萌新都看得懂的分页查询(富含前后端项目案例)

目录 springboot配置相关 依赖配置 yaml配置 MySQL创建与使用 &#xff08;可拿软件包项目系统&#xff09; 创建数据库 创建数据表 mybatis-plus相关 Mapper配置 ​编辑 启动类放MapperScan 启动类中配置 添加config配置文件 Springboot编码 实体类 mapperc(Dao…...

IPython的Bash之舞:%%bash命令全解析

IPython的Bash之舞&#xff1a;%%bash命令全解析 IPython的%%bash魔术命令为Jupyter Notebook用户提供了一种在单元格中直接执行Bash脚本的能力。这个特性特别适用于需要在Notebook中运行系统命令或Bash特定功能的场景。本文将详细介绍如何在IPython中使用%%bash命令&#xff…...

ST Stellar-E SR5E1 22KW OBC combo 3KW DC-DC汽车充电器解决方案

对于全球的环境保护意识抬头&#xff0c;全球的汽车产业慢慢步入电动化的时代&#xff0c;以减少碳排放。整车系统主要是由电池、电驱、电控的三电所构成&#xff0c;其中电池系统是整车的动力来源&#xff0c;而对电池充电的OBC系统更甚重要。一具高度安全性且高效的OBC系统&a…...

Postman中的A/B测试实践:优化API性能的科学方法

Postman中的A/B测试实践&#xff1a;优化API性能的科学方法 在API开发和测试过程中&#xff0c;A/B测试是一种验证新功能或变更效果的有效方法。通过比较两个或多个版本&#xff08;例如A版本和B版本&#xff09;的性能&#xff0c;可以科学地评估变更的影响。Postman作为API测…...

微信小程序支付流程

前端需要做的事情&#xff1a; 生成平台订单&#xff1a;前端调用接口&#xff0c;向后端传递购买的商品信息、收货人信息&#xff0c;&#xff08;后端生成平台订单&#xff0c;返回订单编号&#xff09;获取预付单信息&#xff1a;将订单编号发送给后端后&#xff0c;&#x…...

Istio 学习笔记

Istio 学习笔记 作者&#xff1a;王珂 邮箱&#xff1a;49186456qq.com 文章目录 Istio 学习笔记[TOC] 前言一、基本概念1.1 Istio定义 二、Istio的安装2.1 通过Istioctl安装2.2 通过Helm安装 三、Istio组件3.1 Gateway3.2 VirtulService3.2.1 route详解3.2.2 match详解3.2.3…...

测试面试宝典(三十三)—— 接口测试有没有测试出什么问题?

在之前的接口测试工作中&#xff0c;确实发现了一些问题。比如&#xff0c;在对某关键业务接口进行测试时&#xff0c;发现当输入的参数值超出正常范围时&#xff0c;接口没有按照预期返回错误提示&#xff0c;而是出现了系统崩溃的情况。 还有一次&#xff0c;在测试一个数据…...

YOLOV8模型转TFJS 在Mac下遇到的版本的坑

1.目的&#xff1a;将训练好的yolov8模型转化成TFJS格式&#xff0c;用于在浏览器中通过tensorflow调用&#xff1b; 遇到问题&#xff1a; A KerasTensor cannot be used as input to a TensorFlow function. 本地环境&#xff1a; python :3.11 自动安装的版本为&#xf…...

vue、react前端框架实现TodoList页面案例

原始TodoList网页&#xff08;主要就是链接里网页应用ndex.html、styles.css、script.js &#xff09;&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/140657576 node、npn安装参考&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/…...

el-date-picker 时间控件校验选择时间必须早于当前时间(带时分秒)

el-date-picker 时间控件校验选择时间必须遭早于当前时间&#xff08;带时分秒&#xff09;&#xff0c;然后监控时间控件&#xff0c;当时间改变的时候&#xff0c;如果不是当天&#xff0c;那时间可以选择全天也就是00-24时&#xff0c;如果是当天&#xff0c;就是当前时间之…...

godot新建项目及设置外部编辑器为vscode

一、新建项目 初次打开界面如下所示&#xff0c;点击取消按钮先关闭掉默认弹出的框 点击①新建弹出中间的弹窗②中填入项目的名称 ③中设置项目的存储路径&#xff0c;点击箭头所指浏览按钮&#xff0c;会弹出如下所示窗口 根据图中所示可以选择或新建自己的游戏存储路径&…...

vue中无法调试

vue.config.js中增加 devtool configureWebpack: {name: name,resolve: {alias: {: resolve(src)}},devtool: "cheap-module-source-map" // add},然后重启即可。 顺便招聘&#xff1a;1.需要会日语。2.Java&#xff0c;JS&#xff0c;Vue&#xff0c;DB任一会者皆…...

python机器学习8--自然语言处理(2)

1&#xff0e;移除用词 在很多情况下&#xff0c;有一些文章内的英文字符、标点符号分词的结果不符合自己的预期&#xff0c;会出现一些不想要的分词&#xff0c;此时就能通过以下的函数自己设定用词&#xff0c;并且删除。 jieba.analyse.set_stop_words("stop_words.tx…...

LinkedList底层原理

节点&#xff08;Node&#xff09;结构 LinkedList 的核心是一个内部类 Node&#xff0c;每个 Node 对象代表链表中的一个元素&#xff0c;并且每个节点包含三个部分&#xff1a; 元素值 (item)&#xff1a;存储实际的数据。前驱节点引用 (prev)&#xff1a;指向当前节点前面…...

CSS技巧专栏:一日一例 11 -纯CSS实现多彩渐变按钮系列特效

CSS技巧专栏:一日一例 11 -纯CSS实现多彩渐变按钮系列特效 本篇,推荐给你几个按钮,先看一下图片 本例图片 案例分析 这是一个系列的按钮,它们具有共同的特点: 底层按钮层,具有一个彩色的渐变边框,上层是依据hover效果需要,可以是渐变,可以时白色。 鼠标hover效果…...

基于微信小程序+SpringBoot+Vue的自助点餐系统(带1w+文档)

基于微信小程序SpringBootVue的自助点餐系统(带1w文档) 基于微信小程序SpringBootVue的自助点餐系统(带1w文档) 基于微信小程序的自助点餐系统前后台分离&#xff0c;让商品订单&#xff0c;用户反馈信息&#xff0c;商品信息等相关信息集中在后台让管理员管理&#xff0c;让用…...

04-Charles中的Map Remote和Map Local介绍

Charles提供了Map Remote和Map Local两个功能。 Map Remote是将指定的网络请求重定向到另一个网址。Map Local是将指定的网络请求重定向到本地文件。 一、Map Remote 假设代码中调用了接口A&#xff0c;但是接口A的响应结果不能满足需求&#xff1b;此时&#xff0c;有另一个…...

R语言优雅的进行广义可加模型泊松回归分析

泊松回归&#xff08;Poisson regression&#xff09;是以结局变量为计数结果时的一种回归分析。泊松回归在我们的生活中应用非常广泛&#xff0c;例如&#xff1a;1分钟内过马路人数&#xff0c;1天内火车站的旅客流动数&#xff0c;1天内的银行取钱人数&#xff0c;一周内的销…...

大模型学习笔记十四:Agent模型微调

文章目录 一、大模型需要Agent技术的原因二、Prompt Engineering可以实现Agent吗&#xff1f;&#xff08;1&#xff09;ReAct原理展示和代码&#xff08;2&#xff09;ModelScope&#xff08;3&#xff09;AutoGPT&#xff08;4&#xff09;ToolLLaMA 三、既然AutoGPT可以满足…...

大疆创新2025校招内推

大疆2025校招-内推 一、我们是谁&#xff1f; 大疆研发软件团队&#xff0c;致力于把大疆的硬件设备和大疆用户紧密连接在一起&#xff0c;我们的使命是“让机器有温度&#xff0c;让数据会说话”。 在消费和手持团队&#xff0c;我们的温度来自于激发用户灵感并助力用户创作…...

搜索引擎项目(四)

SearchEngine 王宇璇/submit - 码云 - 开源中国 (gitee.com) 基于Servlet完成前后端交互 WebServlet("/searcher") public class DocSearcherServlet extends HttpServlet {private static DocSearcher docSearcher new DocSearcher();private ObjectMapper obje…...

声音克隆一键本地化部署 GPT-SoVITS

文章目录 GPT-SoVITS 介绍1:GPT-SoVITS安装2:GPT-SoVITS使用2.1 人声伴奏分离,去混响去延时工具2.2 语音切分工具2.3 语音降噪工具2.4 中文批量离线ASR工具2.5 语音文本校对标注工具GPT-SoVITS 介绍 GPT-SoVITS: 是一个由RVC变声器创始人“花儿不哭”推出的免费开源项目。…...

使用【Easypoi】实现百万数据导出

本文使用easypoi实现百万级数据导出 文章目录 前言一、一般情况下导出二、解决思路三、实现步骤导入依赖重写方法调用实现 结束 前言 下文实现了通过easypoi实现将百万级数据导出 一、一般情况下导出 一般导出流程&#xff08;简单导出&#xff09;&#xff1a; 创建对应的…...

GRL-图强化学习

GRL代码解析 一、agent.py二、drl.py三、env.py四、policy.py五、utils.py 一、agent.py 这个Python文件agent.py实现了一个强化学习&#xff08;Reinforcement Learning, RL&#xff09;的智能体&#xff0c;用于在图环境&#xff08;graph environment&#xff09;中进行学习…...

昇思25天学习打卡营第22天|Pix2Pix实现图像转换

Pix2Pix图像转换学习总结 概述 Pix2Pix是一种基于条件生成对抗网络&#xff08;cGAN&#xff09;的深度学习模型&#xff0c;旨在实现不同图像风格之间的转换&#xff0c;如从语义标签到真实图像、灰度图到彩色图、航拍图到地图等。这一模型由Phillip Isola等人在2017年提出&…...

全感知、全覆盖、全智能的智慧快消开源了。

智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI安全管理平台&…...

ABC364:D - K-th Nearest(二分)

题目 在一条数线上有 NQNQ 个点 A1,…,AN,B1,…,BQA1​,…,AN​,B1​,…,BQ​ &#xff0c;其中点 AiAi​ 的坐标为 aiai​ &#xff0c;点 BjBj​ 的坐标为 bjbj​ 。 就每个点 j1,2,…,Qj1,2,…,Q 回答下面的问题&#xff1a; 设 XX 是 A1,A2,…,ANA1​,A2​,…,AN​ 中最…...

hive中分区与分桶的区别

过去&#xff0c;在学习hive的过程中学习过分桶与分区。但是&#xff0c;却未曾将分区与分桶做详细比较。今天&#xff0c;回顾skew join时涉及到了分桶这一概念&#xff0c;一时间无法区分出分区与分桶的区别。查阅资料&#xff0c;特地记录下来。 一、Hive分区 1.分区一般是…...

Blender材质-PBR与纹理材质

1.PBR PBR:Physically Based Rendering 基于物理的渲染 BRDF:Bidirection Reflectance Distribution Function 双向散射分散函数 材质着色操作如下图&#xff1a; 2.纹理材质 左上角&#xff1a;编辑器类型中选择&#xff0c;着色器编辑器 新建着色器 -> 新建纹理 -> 新…...

微软的Edge浏览器如何设置兼容模式

微软的Edge浏览器如何设置兼容模式&#xff1f; Microsoft Edge 在浏览部分网站的时候&#xff0c;会被标记为不兼容&#xff0c;会有此网站需要Internet Explorer的提示&#xff0c;虽然可以手动点击在 Microsoft Edge 中继续浏览&#xff0c;但是操作起来相对复杂&#xff0c…...

SpringBoot开启多端口探究(1)

文章目录 前情提要发散探索从management.port开始确定否需要开启额外端口额外端口是如何开启的ManagementContextFactory的故事从哪儿来创建过程 management 相关API如何被注册 小结 前情提要 最近遇到一个需求&#xff0c;在单个服务进程上开启多网络端口&#xff0c;将API的…...

优化算法:2.粒子群算法(PSO)及Python实现

一、定义 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种模拟鸟群觅食行为的优化算法。想象一群鸟在寻找食物&#xff0c;每只鸟都在尝试找到食物最多的位置。它们通过互相交流信息&#xff0c;逐渐向食物最多的地方聚集。PSO就是基于这…...

ThreadLocal面试三道题

针对ThreadLocal的面试题&#xff0c;我将按照由简单到困难的顺序给出三道题目&#xff0c;并附上参考答案的概要。 1. 简单题&#xff1a;请简述ThreadLocal是什么&#xff0c;以及它的主要作用。 参考答案&#xff1a; ThreadLocal是Java中的一个类&#xff0c;用于提供线…...

Git操作指令(已完结)

Git操作指令 一、安装git 1、设置配置信息&#xff1a; # global全局配置 git config --global user.name "Your username" git config --global user.email "Your email"# 显示颜色 git config --global color.ui true# 配置别名&#xff0c;各种指令都…...

大数据采集工具——Flume简介安装配置使用教程

Flume简介&安装配置&使用教程 1、Flume简介 一&#xff1a;概要 Flume 是一个可配置、可靠、高可用的大数据采集工具&#xff0c;主要用于将大量的数据从各种数据源&#xff08;如日志文件、数据库、本地磁盘等&#xff09;采集到数据存储系统&#xff08;主要为Had…...

C语言 #具有展开功能的排雷游戏

文章目录 前言 一、整个排雷游戏的思维梳理 二、整体代码分布布局 三、游戏主体逻辑实现--test.c 四、整个游戏头文件的引用以及函数的声明-- game.h 五、游戏功能的具体实现 -- game.c 六、老六版本 总结 前言 路漫漫其修远兮&#xff0c;吾将上下而求索。 一、整个排…...

npm publish出错,‘proxy‘ config is set properly. See: ‘npm help config‘

问题&#xff1a;使用 npm publish发布项目依赖失败&#xff0c;报错 proxy config is set properly. See: npm help config 1、先查找一下自己的代理 npm config get proxy npm config get https-proxy npm config get registry2、然后将代理和缓存置空 方式一&#xff1a; …...

Springboot 多数据源事务

起因 在一个service方法上使用的事务,其中有方法是调用的多数据源orderDB 但是多数据源没有生效,而是使用的primaryDB 原因 spring 事务实现的方式 以 Transactional 注解为例 (也可以看 TransactionTemplate&#xff0c; 这个流程更简单一点)。 入口&#xff1a;ProxyTransa…...