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

大模型面试问题记录

1、prompt 有哪些优化技巧
  1. 明确具体:尽量让提示简明扼要,清楚表达你的需求。例如,比起“告诉我一些关于猫的事”,可以说“请列出猫的五个主要品种及其特点”。

  2. 分步骤提问:如果问题复杂,可以将其拆分成多个小问题。例如,对话主题复杂的主题,可以一步步构建。

  3. 提供背景信息:提供一些相关的背景,可以帮助更好地理解问题。例如,加入你希望的写作风格或用途。

  4. 限制范围:通过限制答案的范围或格式,可以更容易地获取相关信息。例如,可以要求“用500字以内解释”或“列出三个优点”。

  5. 使用示例:给出具体的示例可以帮助准确传达你的意图。例如,“请像下面这样回答:‘我认为...因为...’”

  6. 指定角色:明确希望模型扮演的角色或者立场,比如“假设你是一个历史学家,谈谈…”。

  7. 引导性问题:使用引导性问题来引导生成想要的答案,比如“你认为…会产生什么影响?”

  8. 检查和迭代:如果第一次没有得到理想的答案,可以根据反馈调整你的提示,反复尝试。

  9. 保持语气一致:如果希望回答具有特定的语气(正式、幽默等),可以在提示中注明。

  10. 利用关键词:在提示中使用相关的关键词,以引导模型关注特定领域或主题。

26条prompt规则应用于大模型-CSDN博客

2、langchain有哪些模块

LangChain 是一个用于构建语言模型应用的框架,提供了多个模块,旨在简化与大型语言模型(LLMs)的集成和应用开发。以下是一些关键模块:

  1. LLMs: 提供与不同语言模型的接口,方便调用和使用。

  2. Prompt Templates: 用于构建和管理提示模板,帮助格式化输入以提高模型的响应效果。

  3. Chains: 一系列操作的组合,可以将多个操作链接在一起,形成更复杂的工作流。

  4. Agents: 智能代理,能够根据给定的环境和数据做出决策,选择最合适的工具或操作。

  5. Memory: 管理会话状态和上下文,以便在多轮对话中保持一致性。

  6. Tools: 允许整合外部数据源和API,以增强模型的功能。

  7. Data Augmentation: 提供数据增强工具,以改善模型的训练和生成能力。

  8. Evaluation: 评估和监控模型的表现,帮助开发者优化系统。

langchain入门-CSDN博客

3、transformer使用的是什么norm,为什么?

在Transformer架构中,通常使用的是Layer Normalization(层归一化)。与其他归一化技术(如批归一化)不同,层归一化是在每个样本的特征维度上进行归一化,而不是在批次维度上。

使用Layer Normalization的原因:

  1. 处理变换输入的灵活性

    • Transformer模型可以灵活处理不同长度的输入序列,使用批归一化可能会导致在训练和推理时的行为不一致,而层归一化则确保每个样本独立归一化,提升通用性。

  2. 能更好地处理序列数据

    • 对于序列数据,如文本,层归一化在每个时间步进行归一化,这样可以保留序列中时间依赖性的信息。

  3. 稳定性与收敛性

    • Layer Normalization使得模型在训练过程中更加稳定,能够加速收敛,减少梯度消失或梯度爆炸的风险。

  4. 并行化

    • 相较于批归一化,层归一化在训练时更适合于并行化,尤其是在处理长序列输入时,能够更高效地利用计算资源。

总结:

层归一化在Transformers中的使用有效地解决了批次变化对模型性能的影响,同时保持了序列数据的特征,帮助提升了训练稳定性和效率。

层归一化(Layer Normalization)和批归一化(Batch Normalization)是两种常用的归一化技术,主要用于加速神经网络的训练并提高模型的表现。它们之间的主要区别如下:

1. 计算方式

  • 批归一化(Batch Normalization):

    • 在计算均值和方差时,使用的是整个批次中的样本。这意味着每次迭代都会根据当前批次中的所有样本进行归一化处理。

    • 适用于处理卷积神经网络(CNN)中的多个样本。

  • 层归一化(Layer Normalization):

    • 在计算均值和方差时,使用的是当前样本的所有特征。每个样本独立处理,不依赖于批次中的其他样本。

    • 更适合处理递归神经网络(RNN)等模型,或者当批次大小很小或为1时。

2. 适用场景

  • 批归一化:

    • 通常在训练大型深度神经网络时使用,在卷积网络中应用广泛。对训练效果有良好的提升,但在测试时需要使用全局的均值和方差进行归一化。

  • 层归一化:

    • 更常用于RNN、Transformer等序列模型,能够更好地处理动态大小的输入,并在小批量或单个样本的情况下表现稳健。

3. 计算开销

  • 批归一化:

    • 在训练阶段需要存储额外的均值和方差,但可以利用向量化操作加速计算。

  • 层归一化:

    • 所需计算和内存开销相对较少,因为每个样本都是独立处理。然而,层归一化的计算速度可能不如批归一化快。

4. 性能

  • 批归一化:

    • 可以减少内部协变量偏移,提高训练速度和稳定性,尤其是在深层网络中。

  • 层归一化:

    • 由于是基于每个样本特征的归一化,不受批次大小影响,在某些任务中可能更稳定,但在大规模数据集上训练时可能不如批归一化有效。

总结

综上所述,选择使用层归一化或批归一化主要取决于具体任务和网络架构。批归一化通常用于卷积网络,而层归一化更适合序列模型。根据模型的需求和训练条件灵活运用是关键。

4、因式分解lora为什么在微调时合适?

transformer之间都是矩阵计算,可以进行降秩操作;

因式分解(Low-Rank Adaptation, LoRA)在微调模型时适合的原因主要包括以下几点:

  1. 参数效率:LoRA 通过引入低秩矩阵来表示权重的微调,只需要增加很少的参数,这使得微调过程更为高效,尤其是在大模型上,能显著降低计算和存储的开销。

  2. 避免过拟合:由于引入了低秩限制,LoRA 在微调时能够有效抑制过拟合,尤其是在小样本数据场景下,可以更好地利用已有知识。

  3. 灵活性:LoRA 允许在多个任务上共享相同的模型参数,只需微调少量的低秩矩阵,适合于多任务学习场景。

  4. 加速训练:由于大部分神经网络的计算集中在主权重的前向和后向传播,LoRA 通过低秩的调整减少了需要更新的参数,从而加快训练速度。

  5. 便于迁移学习:通过对模型进行局部微调,LoRA 使得模型能够更好地迅速适应新任务,同时保持原有模型的性能。

总结来说,LoRA 在微调时的优势在于其高效性、低资源消耗、灵活性以及能够有效处理复杂的学习任务,这些特点使其在现代深度学习应用中广受欢迎。

5、使用过训练加速框架吗?了解其中的原理吗?
  1. 并行计算:

    • 数据并行: 将数据分割成多个部分,分布在不同的计算单元(如 GPU 或 TPU)上。每个计算单元独立计算梯度,最后聚合梯度进行模型更新。
    • 模型并行: 将大模型分割到多个设备上,每个设备处理模型的一部分,适用于模型较大而单个设备无法容纳的情况。
  2. 梯度聚合:

    • 在数据并行中,各个设备计算出的梯度需要在全局范围内聚合,一般采用 All-Reduce 算法,这样可以确保每个设备在更新参数时使用的是相同的梯度。
  3. 动态调整:

    • 一些框架能够根据训练过程的需求动态调整资源分配,例如在训练过程中自动平衡负载,提高资源利用率。
  4. 混合精度训练:

    • 通过将部分计算使用低精度(如 FP16)来加速计算和减少内存占用,同时保持模型的精度。这通常结合硬件的能力(如 NVIDIA 的 Tensor Cores)来实现。
  5. 异步更新:

    • 在某些实现中,更新参数的过程是异步的,各个设备可以在完成计算后立即更新,而不必等待所有设备完成,这可以提高整体效率。
6、大模型出现重复的回答是什么原因导致的,如何解这种问题?

大模型出现重复回答的原因主要有以下几种:

  1. 训练数据的特性:模型是在大量文本数据上训练的,如果训练数据中存在许多相似或重复的句子,模型可能会倾向于产生类似的输出。

  2. 输入的模糊性:如果输入的问题不够明确或者信息量不足,模型可能会根据其训练过的内容产生重复或相似的回答。

  3. 温度设置:在生成文本的时候,模型的输出可以通过调整“温度”参数来控制。低温度会导致生成的回答更加集中和确定,可能造成重复;而高温度则会引入更多随机性。

  4. 上下文限制:模型的上下文窗口有限,如果输入信息不够丰富,模型可能会重用之前的回答。

解决方法:

  1. 明确问题:确保输入的问题具体且清晰,有助于模型更准确地理解并生成多样的答案。

  2. 调整生成参数:可以通过调整温度、顶级采样(top-k sampling)或核采样(nucleus sampling)等参数来增加生成文本的多样性。

  3. 增加上下文信息:在提问时提供更多相关信息,帮助模型理解上下文,从而生成更具多样性的回答。

  4. 后处理结果:可以在多个生成结果中筛选,选择最符合需求的回答,或者将多个回答结合起来,以提升内容多样性。

  5. 使用不同模型或版本:尝试不同的模型架构或版本,这些模型可能会在生成回答时表现出不同的特性和创造力。

通过以上方法,可以有效减少大模型输出重复回答的情况。

7、transformer结构是什么样的?
  1. 编码器-解码器架构

    • 编码器:负责处理输入序列,将其转化为上下文表示。编码器由多个(通常是6层)相同的层组成,每一层包括两个主要子层:自注意力机制和前馈神经网络。
    • 解码器:负责生成输出序列,利用编码器的上下文信息。解码器结构也由多个层组成,但是每一层有两个自注意力机制:一个是针对编码器的输出,另一个是针对解码器自己的输入。
  2. 自注意力机制(Self-Attention)

    • 自注意力机制允许模型在处理某个词时同时考虑到序列中所有的其他词,从而捕捉到全局的上下文信息。
  3. 位置编码(Positional Encoding)

    • 由于 Transformer 不使用递归或卷积结构,因此需要补充位置信息。位置编码通过加法的方式将固定的或可学习的嵌入向量添加到输入嵌入中,使模型能够感知词的顺序。
  4. 前馈神经网络(Feedforward Neural Network)

    • 每一层的自注意力输出会输入到一个前馈神经网络中,这个网络通常包含两个线性变换和一个激活函数(如 ReLU)。
  5. 残差连接和层归一化(Layer Normalization)

    • 在每个子层之后,采用残差连接(skip connection)和层归一化技术,帮助模型训练时更稳定,避免梯度消失。
  6. 多头注意力(Multi-Head Attention)

    • 通过并行的多个自注意力机制,模型能够更好地捕捉信息中的不同子空间表示。

总体上,Transformer 的设计使其在长序列学习上表现出色,并克服了传统 RNN 和 LSTM 模型的一些局限,如并行计算能力差和长距离依赖问题。

8、你了解的大模型有哪些,有做过其中的对比吗?

qwen,chatglm、llama、baichuan

9、大模型为什么要用decoder方式进行编码?

大模型使用 decoder 结构进行编码而不是传统的 encoder-decoder 结构,主要有以下几个原因:

  1. 任务特性:许多生成任务(如文本生成、对话生成等)具有自回归特性,即当前的输出依赖于以前的输出。使用 decoder 结构可以更自然地实现这一点。

  2. 简化结构:通过只使用 decoder,模型结构简化,计算复杂度也降低,尤其是在处理大规模数据时。这种结构使得模型更容易训练,减少了微信存储和计算资源的需求。

  3. 灵活性:decoder 结构提供了更大的灵活性,可以通过不同的解码策略(如采样、束搜索等)来改进生成结果。这样可以更好地适应不同的生成任务。

  4. 上下文建模:现代 transformer 型模型已经将上下文建模能力大幅提升,即使在 decoder 环境下,仍然可以有效地记住和利用上下文信息。

  5. 预训练-微调机制:当前许多大模型(如 GPT 系列)基于无监督预训练(如语言模型预训练)。这种预训练通常是在单一的 decoder 结构上进行,因此直接继承该结构可以更好地利用预训练的知识。

  6. 参数共享和效率:只使用 decoder 可以在某些情况下实现参数共享,从而提高模型的训练效率和效果。

总的来说,基于 decoder 的结构在某些特定生成任务中能够更好地满足需求,同时也提高了效率和灵活性。

10、bert、gpt、bart都用到了transformer框架,这几个有什么区别?

1. BERT (Bidirectional Encoder Representations from Transformers)

  • 架构: BERT 主要基于 Transformer 的编码器部分,采用双向自注意力机制。
  • 特点: 通过无监督学习方式进行预训练,能够理解上下文和单词之间的关系。
  • 应用: 常用于文本分类、问答系统和命名实体识别等任务。

2. GPT (Generative Pre-trained Transformer)

  • 架构: GPT 使用的是 Transformer 的解码器部分,通常为单向自注意力机制。
  • 特点: 侧重于生成任务,能够生成连贯的文本,适合对话生成和文本补全。
  • 应用: 用于对话系统、语言建模和文本生成等任务。

3. BART (Bidirectional and Auto-Regressive Transformers)

  • 架构: BART 结合了 BERT 和 GPT 的优点,包含编码器和解码器。
  • 特点: 先对输入文本进行编码,然后通过解码器生成输出,特别适合序列到序列的任务。
  • 应用: 主要用于文本摘要、翻译和其他生成任务。

这三种模型各具特色,适用于不同的自然语言处理任务,但都基于 Transformer 框架。

11、transformer的embedding是怎么表示的?

在Transformer模型中,嵌入(embedding)是将输入的离散 token(比如词语)转换为连续的向量表示。具体来说,Transformer中的嵌入主要由以下几个部分构成:

  1. 词嵌入(Word Embeddings)

    • 每个输入的词会被映射到一个高维向量空间中,通常通过查找一个预先训练好的嵌入矩阵来实现。这个矩阵的维度是 词汇表大小 × 嵌入维度。词汇表中的每个词都有一个唯一的索引,通过这个索引可以获得对应的嵌入向量。
  2. 位置编码(Positional Encoding)

    • 由于Transformer没有使用RNN或CNN结构,无法直接利用序列的顺序信息,因此引入了位置编码。位置编码为每个输入token提供了位置信息,通过将其与词嵌入相加,帮助模型理解序列中的词汇顺序。
    • 位置编码通常使用正弦和余弦函数的组合来创建,使得模型能够捕获不同位置之间的关系:
12、transformer的位置编码是绝对位置编码还是相对位置编码,绝对位置编码和相对位置编码有什么区别?

        Transformer 模型中的位置编码通常是绝对位置编码。这意味着每个位置的编码是固定的,并且与输入序列的位置直接相关。绝对位置编码为每个输入元素分配一个唯一的编码,这些编码被添加到输入嵌入中,以避免模型对位置的不变性。

  1. 表示方式

    • 绝对位置编码是针对每个特定位置的唯一编码。
    • 相对位置编码是基于元素之间的距离或关系来定义编码。
  2. 灵活性

    • 绝对位置编码在处理变长序列时可能不够灵活。
    • 相对位置编码可以适应各种长度的输入,不依赖于绝对位置。
  3. 使用场景

    • 绝对位置编码更常见于经典的 Transformer 模型。
    • 相对位置编码更适合处理序列中元素间关系的重要性,通常在一些改进的 Transformer 变体中使用,如 Transformer-XL 和 T5。
13、有哪些绝对编码的方式?

绝对位置编码(Absolute Position Encoding)是深度学习中用于处理序列数据(如文本)的一个重要概念,尤其是在Transformer模型中。由于Transformer架构本身并不具备处理序列顺序的能力,因此需要引入位置编码来保留序列中元素的位置信息。

绝对位置编码的原理

绝对位置编码为每个输入元素分配一个固定的向量表示,这个表示与元素在序列中的位置相关。通常使用的方法包括:

  1. 正弦和余弦函数

    • 在Transformer的原始论文中,使用正弦和余弦函数的组合来为每个位置生成编码。这种方法的优点是生成的编码具有一定的平滑性和周期性,对模型的学习有帮助。
  2. 学习位置编码

    • 另一种方法是将位置编码作为模型的可学习参数。这意味着模型在训练过程中自己学习每个位置的编码。

绝对位置编码的优点

  • 序列信息:它能够有效地提供序列中各个元素的位置信息,帮助模型理解上下文。
  • 任意长度的序列:使用正弦和余弦函数生成的位置编码可以方便地应用于任意长度的序列(只要长度不超过预设的最大值)。

注意事项

  • 绝对位置编码适用于处理固定顺序的序列,但在一些特定应用场景(如图像处理)中,可能需要其他类型的位置编码(如相对位置编码)。

总结来说,绝对位置编码是Transformer模型中一个重要的组成部分,帮助模型理解序列中的位置信息,从而提高处理序列数据的能力。

14、有哪些相对编码的方式?

在大型语言模型(LLM)中,相对位置编码是为了帮助模型理解输入序列中单词或标记之间的相对关系。这些编码方法相较于绝对位置编码方式,能够更好地处理可变长度的输入序列。以下是一些常见的相对位置编码处理方式:

1. 相对位置编码(Relative Position Encoding)

相对位置编码直接表示一个标记相对于另一个标记的相对偏移。常见的方法有:

  • Transformer-XL: 使用相对位置的注意力机制,以调整注意力得分。这种方法通过将相对位置的表示加入到注意力分数中,使得模型能够捕捉到不同位置之间的关系。

  • T5: 在编码器和解码器中添加相对位置编码。相对位置编码可以通过学习得到,并且直接加到自注意力权重上。

2. 相对位置在自注意力中的应用

在自注意力机制中,通常会有一个位置编码的步骤来帮助模型理解单词之间的相对位置。相对位置编码可以通过以下步骤实现:

  • 相对位置表示: 将相对位置的索引转换为嵌入向量,用以表示当前单词相对于其他单词的位置。

  • 注意力得分计算: 在计算自注意力得分时,通过将相对位置编码添加到得分矩阵中,调整模型对于不同单词的注意力权重。

3. Sinusoidal 和 Learnable Position Encoding

  • Sinusoidal Position Encoding: 虽然这是绝对位置编码的一种形式,但它可以结合相对位置编码使用。Sinusoidal编码的优点在于它可以无缝插入变长序列。通过引入相对位置编码,使得模型能更好地理解位置关系。

  • Learnable Position Encoding: 这种方法使用参数化的嵌入层学习每个位置的表示。在结合相对位置编码时,模型可以更灵活地建模位置关系。

4. 绝对与相对的组合

有些模型会结合绝对位置编码和相对位置编码,通过两者的结合来增强对序列的理解能力,这样在捕捉长程依赖时表现更好。

5. 在不同架构上的实现

不同的架构可能会对相对位置编码有不同的实现方式,例如:

  • BERT: 使用绝对位置编码,不直接使用相对位置编码,但其优势在于多层堆叠的自注意力机制能间接捕捉一些相对位置的信息。

  • GPT系列: 主要使用绝对位置编码,虽然其相对位置也是一种潜在的改进方向。

总结

相对位置编码在LLM中的处理方式多样,主要通过学习相对位置和调整注意力机制,以提高模型对上下文的理解能力。选择哪种编码方式,通常依赖于具体任务和模型架构。

15、deepspeed加速原理

DeepSpeed 是由 Microsoft 开发的一种深度学习训练库,旨在加速和优化大规模模型的训练。以下是 DeepSpeed 加速的主要原理和组成部分:

  1. 零冗余优化器 (ZeRO)

    • 参数分割:ZeRO 将大型模型的参数分散到多个 GPU 上,每个 GPU 只存储部分参数,从而减少内存占用。
    • 优化状态分割:除了模型参数外,ZeRO 还将优化器状态(例如,动量和梯度)分散到 GPU 上。这意味着每个 GPU 只需存储其负责的模型参数的优化器状态。
    • 动态内存优化:ZeRO 能够动态管理内存分配,支持更大的模型训练,即使在显存有限的情况下。
  2. 混合精度训练

    • DeepSpeed 支持使用混合精度训练(FP16),通过使用半精度浮点数来减少计算时间和显存占用,同时保持模型性能。这种方式提高了训练速度,并减少了内存需求。
  3. 高效的并行化

    • 数据并行和模型并行:DeepSpeed 支持多种并行策略,包括数据并行和模型并行,可以结合使用,从而有效利用多 GPU 资源。
    • 自动化通信优化:DeepSpeed 可以自动优化 GPU 之间的通信,减少同步延迟,从而提高训练效率。
  4. 渐进式训练

    • 支持将模型训练过程分为几个阶段,从而有效利用计算资源。例如,先训练小模型,然后逐渐增大模型大小。
  5. 优化的训练步骤

    • DeepSpeed 针对训练步骤进行了多项优化,包括高效的梯度累积、降低计算复杂度的训练策略等。这些优化有助于提高训练过程的速度和效率。
  6. 适配多种深度学习框架

    • DeepSpeed 与多个主流深度学习框架(如 PyTorch)兼容,用户可以方便地将其集成到现有的训练流程中。
  7. 扩展性

    • DeepSpeed 不仅支持大规模模型的训练,还能高效地处理大量训练数据,适合科研和工业界的需求。

通过以上技术,DeepSpeed 可以显著加快模型训练的速度,支持更大的模型和更复杂的任务,使得研究人员和工程师能够更高效地进行深度学习研究和应用。

16、AdamW优化器了解吗

AdamW(Adaptive Moment Estimation with Weight Decay)是一种用于训练深度学习模型的优化算法。它在Adam的基础上增加了权重衰减(Weight Decay),以更好地正则化模型。下面是AdamW的基本计算步骤:

1. 初始化参数

  • 学习率(learning rate)α
  • 超参数β1​和β2​(通常设置为0.9和0.999)
  • 权重衰减系数λ
  • 一阶矩(m)和二阶矩(v)的初始化为零

2. 在每次迭代中进行的计算

对于每个参数θt​,可以按以下步骤更新:

  1. 梯度计算: 计算损失函数关于参数的梯度∇θ​J(θ)。

  2. 一阶动量更新

  3. 二阶动量更新

  4. 偏差校正(使得初始的m和v不偏向于0)

  5. 参数更新

    其中,ϵ是一个小常数,避免除以零(如10−8)

在AdamW中,权重衰减是在参数更新步骤中直接应用的,与标准的L2正则化不同。在每次更新时,直接在参数更新中减去λθt−1​

17、你是怎么微调的?lora还是全参?
  1. LoRA(Low-Rank Adaptation)

    • 只更新模型的一部分参数,通常是通过添加低秩矩阵来进行微调。
    • 可以显著减少训练所需的参数量和计算开销。
    • 非常适合资源有限的环境,且对基础模型的影响较小。
  2. 全参数微调

    • 更新整个模型的所有参数。
    • 通常能获得更好的性能,尤其是在大规模数据集上。
    • 需要更多的计算资源和时间,且更容易发生过拟合。
18、lora微调结构是什么样的?作用在哪些部分

LoRA(Low-Rank Adaptation)微调是一种用于调整大规模预训练模型的方法,其核心理念是通过低秩适应来实现高效的模型微调,减少计算资源和存储需求。

LoRA的结构

  1. 低秩矩阵

    在传统的微调中,通常会直接调整模型的权重。而LoRA则通过引入两个低秩矩阵 A 和 B 来适应原始权重 W:

                                        W′=W+A⋅B

  • 其中 A 和 B 的秩相对较低,通常远低于 W,因此在参数更新上更为高效。
  1. 增加的参数

    • LoRA 只需要为低秩矩阵引入少量新的可训练参数,避免直接调整大量原始参数,这使得整体的存储开销大大降低。
  2. 插入位置

    • LoRA通常会在模型的某些层(如注意力层或全连接层)中插入这两个低秩矩阵。

LoRA的作用

  1. 高效微调

    • 通过仅调整少量参数,LoRA能够有效地在有限的计算和存储条件下进行模型微调。
  2. 降低灾难性遗忘

    • 传统的微调方法可能导致原始知识的丢失,而 LoRA 通过保持原始权重不变,减少了这种灾难性遗忘的风险。
  3. 适用于多任务学习

    • 由于可以共享基础模型参数,LoRA 适合在多任务场景下进行高效的迁移学习。
  4. 灵活性

    • LoRA 允许用户根据具体任务的需要调整模型,无需大规模重训练,从而提高了模型的适应能力。

应用领域

LoRA被广泛应用于自然语言处理(NLP)、计算机视觉(CV)、语音识别等领域,尤其是在需要快速适应新任务或数据集的场景中,如聊天机器人、图像分类等。

总体而言,LoRA通过提供一种高效、灵活的微调方式,让大规模模型的应用变得更加可行和高效。

19、lora微调为什么有用

sft适用于具体任务时,需要改变的参数较小,低秩微调技术,改变少量参数可以满足模型的效果

一文读懂:LoRA实现大模型LLM微调_lora llm-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2018年高教社杯全国大学生数学建模竞赛(ABCD题)题目及附件
  • 数据库分库分表的介绍
  • 浅谈如何克服编程学习中的挫折感
  • java版知识付费saas租户平台的核心功能设计:打造高效、个性化的学习体验
  • 在 Hub 上使用 Presidio 进行自动 PII 检测实验
  • 3154. 到达第 K 级台阶的方案数(24.8.20)
  • C++ | Leetcode C++题解之第343题整数拆分
  • 学分绩点预警系统设计与实现(源码+lw+部署文档+讲解等)
  • Java--SpringBoot工厂模式
  • R 语言学习教程,从入门到精通,R 数据重塑(15)
  • 设计模式在芯片验证中的应用——状态
  • VS Code开发C#(.NET)之快速入门
  • 大数据技术——实战项目:广告数仓(第八部分)FineBI实战
  • C语言 ——— 学习并使用malloc和free函数
  • OSI七层网络模型 /TCP/IP五层模型以及封装分用的详细讲解
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • HTML中设置input等文本框为不可操作
  • JS字符串转数字方法总结
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • nginx 配置多 域名 + 多 https
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • nodejs调试方法
  • Promise初体验
  • ReactNativeweexDeviceOne对比
  • React组件设计模式(一)
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue-loader 源码解析系列之 selector
  • 不上全站https的网站你们就等着被恶心死吧
  • - 概述 - 《设计模式(极简c++版)》
  • 中文输入法与React文本输入框的问题与解决方案
  • 自动记录MySQL慢查询快照脚本
  • Python 之网络式编程
  • ​configparser --- 配置文件解析器​
  • # C++之functional库用法整理
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT(智能家居界面-界面切换)
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)STL算法之遍历容器
  • (C++17) optional的使用
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (二十四)Flask之flask-session组件
  • (九)信息融合方式简介
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)http-server应用
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)详解PHP处理密码的几种方式
  • (转载)利用webkit抓取动态网页和链接
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .bat批处理(六):替换字符串中匹配的子串