AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践
系列篇章💥
AI大模型探索之路-训练篇1:大语言模型微调基础认知
AI大模型探索之路-训练篇2:大语言模型预训练基础认知
AI大模型探索之路-训练篇3:大语言模型全景解读
AI大模型探索之路-训练篇4:大语言模型训练数据集概览
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化
AI大模型探索之路-训练篇6:大语言模型预训练数据准备-预处理
AI大模型探索之路-训练篇7:大语言模型Transformer库之HuggingFace介绍
AI大模型探索之路-训练篇8:大语言模型Transformer库-预训练流程编码体验
AI大模型探索之路-训练篇9:大语言模型Transformer库-Pipeline组件实践
AI大模型探索之路-训练篇10:大语言模型Transformer库-Tokenizer组件实践
目录
- 系列篇章💥
- 前言
- 一、Model类型概览
- 二、Model Head详解
- 三、Model API调用实践
- 1、模型的保存
- 2、模型的加载
- 3、模型加载参数
- 4、模型调用
- 5、不带Model Head的模型调用
- 6、带Model Head的模型调用
- 总结
前言
随着自然语言处理(NLP)领域的不断发展,各种预训练模型层出不穷。其中,基于Transformer架构的预训练模型在各种任务中取得了显著的成果。Hugging Face的transformers库提供了丰富的预训练模型和相关组件,使得研究人员和开发者能够轻松地使用这些模型进行各种NLP任务。本文将介绍transformers库中的Model组件,包括不同类型的预训练模型、Model Head以及如何调用这些模型进行推理。通过本文的介绍,大家可以更好地理解和应用transformers库中的Model组件。
一、Model类型概览
目前基于Transformer的模型主要存在以下三种:
1)仅仅包含Transformer的编码器模型(自编码模型):使用Encoder,可以从两个方向进行编码,拥有双向的注意力机制,即计算每一个词的特征时都看到完整上下文。常见仅仅存在编码器的预训练模型有:ALBERT、BERT、DistilBERT、RoBERTa等。经常被用于的任务:文本分类,命名实体识别,阅读理解等。
2)仅仅存在Transformer的解码器模型:(自回归模型),使用Decoder,拥有单向的注意力机制,即计算每一个词的特征时都只能看到上文,无法看到下文。常见的预训练模型:GPT、GPT-2、GPT-3、Bloom、LLaMA等。经常被用于文本生成中。
3)具有Transformers的编码器-解码器:(序列到序列模型),使用Encoder+Decoder,Encoder部分使用双向的注意力,Decoder部分使用单向注意力。常见的预训练模型为:BART、T5、mBART、GLM等。被用于文本摘要和机器翻译中。

二、Model Head详解
Model head是模型架构中用于处理特定任务的关键组件,它负责将模型编码的表示映射到任务所需的输出格式:(它们在预训练模型的基础上添加了一层或多层额外的网络结构,以适应任务需求,比如针对特定任务设计分类、问答或生成)
1)ForCausalLM:这是带有因果语言建模头的模型,通常用于解码器(Decoder)类型的任务。这种类型的任务包括文本生成或文本完成,其中生成的每个新词都依赖于之前生成的所有词。
2)ForMaskedLM:这是带有掩码语言建模头的模型,用于编码器(Encoder)类型的任务。这种任务涉及预测文本中被掩盖或隐藏的词,BERT模型就是这种类型的一个例子。
3)ForSeq2SeqLM:这是带有序列到序列语言建模头的模型,适用于需要编码器和解码器共同工作的任务,如机器翻译或文本摘要。
4)ForMultiplechoice:这是用于多项选择任务的模型,它处理包含多个候选答案的输入,并预测正确答案的索引。
5)ForQuestionAnswering:这是问答任务的模型,它从给定的文本中抽取答案。这种模型通常包括一个编码器来理解问题和上下文,然后是一个答案抽取机制。
6)ForSequenceClassification:这是用于文本分类任务的模型,它将整个输入序列映射到一个或多个标签。例如,情感分析或主题分类。
7)ForTokenClassification:这是用于标记分类任务的模型,如命名实体识别(NER),它将序列中的每个标记映射到一个预定义的标签。
这些Model Head提供了一种方便的方法来加载预训练的模型,并针对特定任务进行微调或直接使用。在transformers库中,这些类允许研究人员和开发者快速实现和测试不同的NLP任务,而无需从头开始设计和实现模型架构。
三、Model API调用实践
1、模型的保存
1)直接使用git将模型下载到本地
git clone "https://huggingface.co/hfl/rbt3"
2)save_pretrained保存训练模型
一旦模型被训练完成,你可以使用模型的save_pretrained方法来保存模型和分词器。这通常涉及指定一个保存模型的目录路径。以下是如何保存模型和分词器的示例:
# 假设model是一个已经训练好的模型实例
# 假设tokenizer是与model相对应的分词器实例# 指定保存模型和分词器的目录路径
model_save_path = "path_to_save_model"
tokenizer_save_path = "path_to_save_tokenizer"# 保存模型
model.save_pretrained(model_save_path)# 保存分词器
tokenizer.save_pretrained(tokenizer_save_path)
在这个例子中,model_save_path和tokenizer_save_path是你希望保存模型和分词器的目录路径。运行这段代码后,模型和分词器的状态将被保存在指定的目录中,每个目录通常包含多个文件,例如模型的权重文件、配置文件等
2、模型的加载
from transformers import AutoConfig, AutoModel, AutoTokenizer
1)在线加载
model = AutoModel.from_pretrained("hfl/rbt3", force_download=True)

2)离线加载
model = AutoModel.from_pretrained("/root/代码/Model组件/rbt3")
3、模型加载参数
模型加载
从预训练模型的权重文件中加载整个模型,包括模型的结构、权重等信息。这样可以在需要使用预训练模型进行推理或者继续训练时,直接加载整个模型。
model = AutoModel.from_pretrained("/root/代码/Model组件/rbt3")
model.config
输出
BertConfig {"_name_or_path": "/root/代码/Model组件/rbt3","architectures": ["BertForMaskedLM"],"attention_probs_dropout_prob": 0.1,"classifier_dropout": null,"directionality": "bidi","hidden_act": "gelu","hidden_dropout_prob": 0.1,"hidden_size": 768,"initializer_range": 0.02,"intermediate_size": 3072,"layer_norm_eps": 1e-12,"max_position_embeddings": 512,"model_type": "bert","num_attention_heads": 12,"num_hidden_layers": 3,"output_past": true,"pad_token_id": 0,"pooler_fc_size": 768,"pooler_num_attention_heads": 12,"pooler_num_fc_layers": 3,"pooler_size_per_head": 128,"pooler_type": "first_token_transform","position_embedding_type": "absolute","transformers_version": "4.35.2","type_vocab_size": 2,"use_cache": true,"vocab_size": 21128
}
加载配置信息
是从预训练模型的配置文件中加载配置信息,而不是整个模型。这样可以在不下载整个模型的情况下,仅加载模型的配置信息
config = AutoConfig.from_pretrained("/root/代码/Model组件/rbt3")
Config
输出
BertConfig {"_name_or_path": "/root/代码/Model组件/rbt3","architectures": ["BertForMaskedLM"],"attention_probs_dropout_prob": 0.1,"classifier_dropout": null,"directionality": "bidi","hidden_act": "gelu","hidden_dropout_prob": 0.1,"hidden_size": 768,"initializer_range": 0.02,"intermediate_size": 3072,"layer_norm_eps": 1e-12,"max_position_embeddings": 512,"model_type": "bert","num_attention_heads": 12,"num_hidden_layers": 3,"output_past": true,"pad_token_id": 0,"pooler_fc_size": 768,"pooler_num_attention_heads": 12,"pooler_num_fc_layers": 3,"pooler_size_per_head": 128,"pooler_type": "first_token_transform","position_embedding_type": "absolute","transformers_version": "4.35.2","type_vocab_size": 2,"use_cache": true,"vocab_size": 21128
}
4、模型调用
sen = "今天天气不错,我的心情也不错!"
tokenizer = AutoTokenizer.from_pretrained("/root/代码/Model组件/rbt3")
inputs = tokenizer(sen, return_tensors="pt")
inputs
输出
{'input_ids': tensor([[ 101, 4696, 679, 7231, 8013, 102]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1]])}
5、不带Model Head的模型调用
下面代码从指定路径加载一个预训练的模型,并在加载时设置了output_attentions=True。这意味着模型在推理时不仅会输出最终的logits或预测结果,还会输出每个层的注意力权重。这通常用于调试或分析模型的内部工作机制。
model = AutoModel.from_pretrained("/root/代码/Model组件/rbt3", output_attentions=True)
output = model(**inputs)
output
输出
BaseModelOutputWithPoolingAndCrossAttentions(last_hidden_state=tensor([[[ 0.3299, 0.8761, 1.1550, ..., -0.2296, 0.3674, 0.1555],[ 0.6773, -0.5668, 0.0701, ..., -0.3799, -0.2055, -0.2795],[ 0.0841, -0.0825, 0.5001, ..., -0.3421, -0.8017, 0.3085],[ 0.0224, 0.4439, -0.1954, ..., -0.0618, -0.2570, -0.1142],[ 0.1476, 0.7324, -0.2727, ..., -0.1874, 0.1372, -0.3034],[ 0.3260, 0.8858, 1.1529, ..., -0.2277, 0.3656, 0.1587]]],grad_fn=<NativeLayerNormBackward0>), pooler_output=tensor([[ 2.3760e-02, -9.9773e-01, -9.9995e-01, -7.9692e-01, 9.9645e-01,1.8497e-01, -2.9150e-01, -1.9350e-02, 9.9650e-01, 9.9989e-01,1.6279e-01, -1.0000e+00, -3.5968e-02, 9.9875e-01, -9.9999e-01,9.9879e-01, 9.9744e-01, 8.8014e-01, -9.8801e-01, 8.8588e-03,-9.3252e-01, -7.1405e-01, 2.3119e-01, 9.7772e-01, 9.9352e-01,-9.9826e-01, -9.9987e-01, -7.6323e-02, -8.6268e-01, -9.9992e-01,。。。-1.0000e+00, -1.0385e-02, 3.3378e-01, -9.7509e-01, -3.8623e-01,-9.2922e-01, 1.8362e-01, 9.9848e-01, -6.6866e-01, 9.1038e-01,-9.6579e-01, -9.9962e-01, 1.7735e-01, -9.9997e-01, 9.8384e-01,1.0000e+00, -1.6213e-01, 9.7850e-01, -9.0667e-01, 1.2217e-01,-9.9999e-01, -9.9999e-01, 8.7128e-01, 9.9946e-01, 1.0102e-01,-9.9855e-01, 1.5214e-01, -9.9987e-01, -2.8880e-01, 5.7587e-01,9.9336e-01, -9.9998e-01, 9.9947e-01, -6.4215e-01, 1.2852e-01,9.8215e-01, -1.0000e+00, 8.4377e-01, -9.9904e-01, 9.9924e-01,-1.0000e+00, 9.9885e-01, 9.1444e-02, 2.1949e-01, 3.0374e-01,9.7917e-01, -9.9957e-01, -1.9862e-01, 9.8820e-01, 9.9878e-01,-4.6083e-01, 9.8808e-01, 2.5509e-02]], grad_fn=<TanhBackward0>), hidden_states=None, past_key_values=None, attentions=(tensor([[[[5.6623e-01, 8.2719e-04, 7.1828e-04, 3.0170e-04, 3.7589e-04,4.3154e-01],[1.0803e-02, 1.0227e-01, 1.1626e-01, 2.4532e-01, 5.2110e-01,4.2390e-03],[4.1117e-02, 1.4175e-01, 2.8284e-01, 2.3116e-01, 2.9142e-01,1.1724e-02],[3.2763e-02, 1.7774e-01, 8.3885e-02, 1.2232e-01, 5.7365e-01,9.6361e-03],[9.1095e-02, 8.2052e-02, 7.2211e-02, 6.6084e-02, 6.5778e-01,3.0778e-02],[6.0973e-01, 1.3369e-03, 1.1642e-03, 7.6050e-04, 1.2266e-03,3.8578e-01]],...[[4.1663e-01, 2.5743e-02, 3.3069e-02, 2.7573e-02, 4.8997e-02,4.4799e-01],[9.3001e-01, 2.1486e-02, 2.9548e-02, 5.0943e-03, 5.1063e-03,8.7589e-03],[5.5021e-02, 8.8170e-01, 3.0817e-02, 7.5048e-03, 2.2834e-02,2.1212e-03],[3.3265e-02, 1.9535e-02, 9.0744e-01, 1.3685e-02, 1.4819e-02,1.1257e-02],[1.7344e-01, 1.0500e-01, 1.1638e-01, 5.0705e-01, 7.0892e-02,2.7225e-02],[7.2889e-02, 9.4428e-03, 1.2270e-02, 2.8002e-02, 4.1791e-01,4.5948e-01]]]], grad_fn=<SoftmaxBackward0>), tensor([[[[4.5796e-01, 9.9558e-03, 1.0020e-02, 2.2092e-02, 6.5916e-02,4.3405e-01],[4.3907e-01, 8.2675e-03, 1.1408e-01, 9.8204e-03, 6.1844e-03,4.2258e-01],[2.1006e-01, 5.2901e-01, 3.7502e-03, 1.8742e-03, 3.6851e-02,2.1846e-01],[3.0209e-01, 1.3334e-04, 3.6354e-01, 1.5319e-03, 4.1311e-02,2.9139e-01],[8.7918e-02, 2.8945e-02, 3.2605e-03, 7.6759e-01, 2.3085e-02,8.9203e-02],[4.5857e-01, 9.8717e-03, 9.9597e-03, 2.0971e-02, 6.6149e-02,4.3448e-01]],...[[5.0059e-01, 1.7413e-03, 9.1523e-04, 5.8339e-03, 6.8815e-03,4.8404e-01],[4.3327e-01, 3.0781e-02, 1.8540e-02, 4.1750e-02, 4.3144e-02,4.3252e-01],[4.6648e-01, 1.6748e-02, 2.3486e-03, 4.6985e-02, 7.2329e-03,4.6021e-01],[4.6306e-01, 8.3569e-03, 5.8932e-03, 5.5269e-02, 1.3125e-02,4.5429e-01],[4.5754e-01, 3.4543e-02, 7.7011e-03, 2.6113e-02, 2.0748e-02,4.5336e-01],[5.0072e-01, 1.7318e-03, 9.1770e-04, 5.7174e-03, 6.6844e-03,4.8423e-01]]]], grad_fn=<SoftmaxBackward0>), tensor([[[[3.1533e-01, 6.1664e-02, 3.2057e-02, 7.3921e-02, 2.0709e-01,3.0993e-01],[3.5292e-01, 9.7867e-02, 7.6420e-02, 5.6472e-02, 6.7811e-02,3.4851e-01],[3.7263e-01, 1.6694e-01, 4.0402e-02, 3.4887e-02, 1.7787e-02,3.6736e-01],[4.6658e-01, 3.5042e-02, 9.0006e-03, 1.9572e-02, 1.0726e-02,4.5908e-01],[3.6866e-01, 7.5453e-02, 4.1273e-02, 4.2048e-02, 1.1026e-01,3.6231e-01],[3.1706e-01, 6.0658e-02, 3.1613e-02, 7.3170e-02, 2.0586e-01,3.1164e-01]],...[[2.7216e-01, 1.2583e-01, 5.1468e-02, 8.0823e-02, 2.0379e-01,2.6593e-01],[1.3690e-01, 3.7407e-02, 4.5398e-01, 2.0540e-01, 3.1681e-02,1.3463e-01],[2.4628e-01, 1.2131e-02, 9.3940e-03, 3.9019e-01, 9.8574e-02,2.4343e-01],[4.4038e-01, 3.6646e-03, 3.7501e-03, 2.5508e-02, 8.7129e-02,4.3957e-01],[3.6957e-01, 3.0530e-02, 6.2554e-02, 1.2588e-01, 4.2998e-02,3.6847e-01],[2.7344e-01, 1.2471e-01, 5.0839e-02, 8.0282e-02, 2.0355e-01,2.6718e-01]]]], grad_fn=<SoftmaxBackward0>)), cross_attentions=None)
6、带Model Head的模型调用
下面代码使用AutoModelForSequenceClassification类加载一个用于序列分类任务的预训练模型。这个类是专门用于文本分类任务的,如情感分析或主题分类,它期望输出是整个输入序列的分类结果。它从指定路径加载模型,并使用inputs进行推理。
from transformers import AutoModelForSequenceClassification, BertForSequenceClassification
clz_model = AutoModelForSequenceClassification.from_pretrained("/root/代码/Model组件/rbt3")clz_model(**inputs)
输出
SequenceClassifierOutput(loss=None, logits=tensor([[0.2360, 0.2302]], grad_fn=<AddmmBackward0>), hidden_states=None, attentions=None)
1)这段代码中的模型调用使用了带有特定Model Head的模型。在Transformer模型架构中,Model Head(模型头部)是指模型主体结构之后的输出层,它根据具体任务对模型的输出进行适配和映射。Model Head通常包含了一些额外的全连接层或其他特定于任务的结构
2)AutoModelForSequenceClassification:这个类是transformers库提供的,用于自动选择适合序列分类任务的预训练模型。它在加载预训练模型权重后,会添加一个适合分类任务的头部(Model Head)
3)当使用AutoModelForSequenceClassification进行推理时,模型不仅执行了特征提取和编码,还通过Model Head进行了分类预测,输出通常是每个类别的得分或概率,你可以直接根据这些得分或概率进行标签的预测。
指定参数加载模型
clz_model = AutoModelForSequenceClassification.from_pretrained("/root/代码/Model组件/rbt3", num_labels=2)
输出:10
这段代码与上面代码类似,但它在加载模型时额外指定了num_labels=2参数。这个参数对于序列分类模型是重要的,因为它告诉模型输出层期望的输出尺寸,即分类标签的数量。如果模型被微调用于一个具有两个标签的分类任务(如正面情感和负面情感),这个参数是必须的。如果没有正确设置num_labels,模型的输出可能无法正确映射到标签空间。
总结
通过上述步骤,展示了如何使用Hugging Face的transformers库中的Model组件来执行各种NLP任务。Model组件的选择和使用对于实现高效和准确的NLP模型至关重要。

🎯🔖更多专栏系列文章:AIGC-AI大模型探索之路
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!
相关文章:
AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...
鸿蒙内核源码分析(工作模式篇) | CPU的七种工作模式
本篇说清楚CPU的工作模式 工作模式(Working mode) 也叫操作模式(Operating mode)又叫处理器模式(Processor mode),是 CPU 运行的重要参数,决定着处理器的工作方式,比如如何裁决特权级别和报告异…...
5月6(信息差)
🌍一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% https://hub.baai.ac.cn/view/36857 🎄 LeetCode 周赛超越 80% 人类选手,推理性能超 Llama3-70B。 ✨ 我国量子计算机实现“四算合一” 实现通算、…...
Qt在任务栏图标和系统托盘图标上显示红点
在任务栏图标上显示红点 关键类:QWinTaskbarButton #include <QWinTaskbarButton>QPointer<QWinTaskbarButton> taskbarBtn nullptr; if (!taskbarBtn) {taskbarBtn new QWinTaskbarButton(window);taskbarBtn->setWindow(window->windowHand…...
springboot拦载器
1、拦载器 package com.Interceptor;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.security.auth.login.Log…...
知道创宇安全服务实习
自我介绍攻防演练讲一下,我讲到了内网利用,用到了frp/nps这种nps直接扫不会有被发现吗?cs搭建在vps,有做什么隐藏吗,(端口或者cdn之类的)域前置了解吗cs上传的木马免杀了吗问了linux怎么查看进程…...
SGP.22-V.3.1-安全1
有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题,欢迎W: xiangcunge59 一起讨论, 共同进步 (加的时候请注明: 来自CSDN-iot). 2.6.4.4 Command TLV MACing and Encryption 在提供的文件 "RSP Technical Specification Version 3.1 Final" 中&a…...
STM32单片机ADC功能详解
文章目录 1. ADC概述 2. ADC结构图 3. 引脚定义 4. 转换模式 5. 数据对齐 6. 转换时间 7. 硬件电路 8. STM32使用ADC单/多通道检测数据 1. ADC概述 功能:ADC是一个将模拟信号(如电压)转换为数字信号的设备。在微控制器中,…...
47.Redis学习笔记
小林coding -> 图解redis的学习笔记 文章目录 Rediswindwos安装docker安装redis启动redis使用RDM访问虚拟机中的redispython连接redis缓存穿透、击穿、雪崩基本数据类型高级数据类型高并发指标布隆过滤器分布式锁Redis 的有序集合底层为什么要用跳表,而不用平衡…...
数控六面钻适用场景-不止家具制造
在快节奏的现代生活中,家具作为我们生活的重要组成部分,其美观度和实用性日益受到人们的关注。而在这背后,一个不可或缺的“工匠”正默默地发挥着它的作用——那就是数控六面钻。 数控六面钻,顾名思义,是一种高度自动…...
【力扣】86. 分隔链表
86. 分隔链表 题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head […...
海云安受邀参加诸子云 4.27南京「金融互联网」私董会
4月27日,“安在新媒体网安用户行业活动”第四期私董会在南京顺利举办。活动以“金融&互联网”为主题,邀请十余位业内资深的甲方用户以及典型厂商代表。摒弃传统的议题分享,采取“随时问答,自由讨论”的形式,提问题…...
docker操作使用注意事项
文章目录 一、运行docker二、拉取的镜像存放位置1、查询所有拉取的镜像2、查询所有安装的镜像3、查询docker应用的所有信息 一、运行docker 该命令执行后是在窗口下运行的,关闭或退出后docker应用会停止运行 -p:设置绑定端口映射,10022对应…...
Leetcode—163. 缺失的区间【简单】Plus
2024每日刷题(126) Leetcode—163. 缺失的区间 实现代码 class Solution { public:vector<vector<int>> findMissingRanges(vector<int>& nums, int lower, int upper) {int n nums.size();vector<vector<int>> an…...
Ansible自动化运维工具 - playbook 剧本编写
一. inventory 主机清单 Inventory 支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。 1.1 inventory 中的变量含义 Inventory 变量名 含义ansible_hostansible连接节点时的IP地址ansible_port连接对方…...
Web前端一套全部清晰 ⑥ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式
别人的议论,那是别人的,你的人生,才是你的 —— 24.5.7 一、复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成 作用:更准确、更高效的选择目标元素(标签) 1.后代选择…...
Linux 认识与学习Bash——3
在Linux bash中,数据流重定向是指将命令的输出从默认的标准输出(通常是终端)重定向到其他位置,如文件或另一个命令的输入。这是通过使用特定的符号来实现的。例如,>用于将输出重定向到文件,而<用于将…...
匠心精神与创新力量:构筑网络安全的新防线
一、匠心精神在网络安全中的重要性 匠心精神代表着对工作的专注和对质量的极致追求。在网络安全领域,这意味着对每一个安全漏洞的深入挖掘,对每一项安全技术的精心打磨。亿林网络李璐昆的提名,正是对其在网络安全领域匠心精神的认可。 二、…...
接口信息解析
目录 一、通讯流程 二、如何获取接口信息--抓包 1、抓包步骤: 2、抓包工具 接口文档:又称为API文档,是由后端开发编写,用来描述接口信息的文档 一、通讯流程 功能(比如:登录)请求(请求路径、请求方式、…...
scikit-learn实现单因子线性回归模型
1.是什么: 针对机器学习提供了数据预处理,分类,回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题: 2.1.求解a,b对新数据进行预测: 2.2评估模型表现(y和y’的方差MSE)…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
