【机器学习】机器学习与大模型在人工智能领域的融合应用与性能优化新探索

文章目录

    • 引言
    • 机器学习与大模型的基本概念
      • 机器学习概述
        • 监督学习
        • 无监督学习
        • 强化学习
      • 大模型概述
        • GPT-3
        • BERT
        • ResNet
        • Transformer
    • 机器学习与大模型的融合应用
      • 自然语言处理
        • 文本生成
        • 文本分类
        • 机器翻译
      • 图像识别
        • 自动驾驶
        • 医学影像分析
      • 语音识别
        • 智能助手
        • 语音转文字
    • 大模型性能优化的新探索
      • 模型压缩
        • 权重剪枝
        • 量化
        • 知识蒸馏
      • 分布式训练
        • 数据并行
        • 模型并行
        • 异步训练
      • 高效推理
        • 模型裁剪
        • 缓存机制
        • 专用硬件
    • 未来展望
      • 跨领域应用
      • 智能化系统
      • 人工智能伦理
      • 技术创新
    • 结论

引言

随着计算能力的不断提升和数据规模的爆炸性增长,机器学习和大模型在人工智能(AI)领域的应用变得越来越广泛和深入。尤其是大规模机器学习模型,如深度神经网络(如GPT-3、BERT等),在自然语言处理、图像识别、语音识别等方面展现了卓越的性能。然而,如何有效地融合机器学习与大模型,提升其应用性能,仍然是当前研究和应用中的重要课题。本文将探讨机器学习与大模型在人工智能领域的融合应用,并重点讨论性能优化的新方法和新探索。
在这里插入图片描述

机器学习与大模型的基本概念

机器学习概述

机器学习是一种通过数据训练模型,并利用模型对新数据进行预测和决策的技术。其基本思想是让计算机通过样本数据学习规律,而不是通过明确的编程指令。根据学习的类型,机器学习可以分为监督学习、无监督学习和强化学习。

监督学习

监督学习是通过带标签的数据集训练模型,使其能够对新数据进行分类或回归预测。常见的算法包括线性回归、逻辑回归、支持向量机、决策树和神经网络等。

无监督学习

无监督学习是在没有标签的数据集上进行训练,主要用于数据聚类和降维。常见的算法包括K-means聚类、层次聚类和主成分分析(PCA)等。

强化学习

强化学习是一种通过与环境交互学习最优行为策略的技术。智能体通过试错法在环境中学习,以最大化累积奖励。常见的算法包括Q-learning、深度Q网络(DQN)和策略梯度方法等。

大模型概述

大模型是指具有大量参数和层数的深度学习模型,通常通过大规模数据集进行训练。大模型在自然语言处理、图像识别和语音识别等任务中表现出色。其代表性模型包括GPT-3、BERT、ResNet和Transformer等。

GPT-3

GPT-3(Generative Pre-trained Transformer 3)是OpenAI开发的一种语言模型,具有1750亿个参数。它通过大量的文本数据进行预训练,能够生成高质量的自然语言文本,广泛应用于文本生成、翻译和对话系统等领域。

BERT

BERT(Bidirectional Encoder Representations from Transformers)是Google开发的一种语言模型,通过双向Transformer架构进行预训练。BERT在各种自然语言理解任务中表现优异,如问答系统和情感分析等。

ResNet

ResNet(Residual Network)是Microsoft提出的一种深度卷积神经网络,通过残差连接解决了深层神经网络训练中的梯度消失问题。ResNet在图像识别任务中取得了显著成果。

Transformer

Transformer是Google提出的一种基于注意力机制的神经网络架构,广泛应用于自然语言处理任务。与传统的卷积神经网络和循环神经网络不同,Transformer能够更高效地处理长距离依赖关系。
在这里插入图片描述

机器学习与大模型的融合应用

自然语言处理

自然语言处理(NLP)是机器学习与大模型应用最广泛的领域之一。大模型在文本生成、文本分类、情感分析、机器翻译等任务中表现出色。

文本生成

GPT-3等大模型在文本生成任务中展现了强大的能力。通过预训练,大模型能够理解上下文,生成连贯且有意义的文本,广泛应用于对话系统、内容创作和自动摘要等场景。

import openaiopenai.api_key = 'YOUR_API_KEY'def generate_text(prompt):response = openai.Completion.create(engine="davinci-codex",prompt=prompt,max_tokens=100)return response.choices[0].text.strip()prompt = "Explain the significance of machine learning in modern technology."
generated_text = generate_text(prompt)
print(generated_text)
文本分类

BERT等大模型通过预训练和微调,在文本分类任务中取得了显著成果。通过对文本进行语义理解,大模型能够准确地对文本进行分类,广泛应用于垃圾邮件检测、情感分析和主题识别等领域。

from transformers import BertTokenizer, BertForSequenceClassification
from transformers import TextClassificationPipelinetokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')pipeline = TextClassificationPipeline(model=model, tokenizer=tokenizer)
result = pipeline("I love this product, it's amazing!")print(result)
机器翻译

Transformer架构在机器翻译任务中表现出色。通过大规模双语数据集的训练,Transformer能够实现高质量的文本翻译,广泛应用于跨语言信息交流和全球化业务拓展。

from transformers import MarianMTModel, MarianTokenizermodel_name = 'Helsinki-NLP/opus-mt-en-de'
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)def translate(text):inputs = tokenizer(text, return_tensors="pt", padding=True)translated = model.generate(**inputs)translated_text = tokenizer.batch_decode(translated, skip_special_tokens=True)return translated_text[0]text = "Machine learning is transforming the way we approach problems in various fields."
translated_text = translate(text)
print(translated_text)

在这里插入图片描述

图像识别

大模型在图像识别领域同样取得了显著成果。通过深度卷积神经网络(如ResNet),大模型能够准确地识别图像中的物体,广泛应用于自动驾驶、安防监控和医学影像分析等领域。

自动驾驶

在自动驾驶领域,图像识别技术用于检测道路上的行人、车辆和交通标志等。大模型通过大量的图像数据进行训练,能够实现高精度的目标检测和分类,提高自动驾驶系统的安全性和可靠性。

import torch
import torchvision.models as models
import torchvision.transforms as transforms
from PIL import Imagemodel = models.resnet50(pretrained=True)
model.eval()def predict_image(image_path):img = Image.open(image_path)preprocess = transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])img_tensor = preprocess(img)img_tensor = img_tensor.unsqueeze(0)with torch.no_grad():output = model(img_tensor)_, predicted = torch.max(output, 1)return predicted.item()image_path = 'path/to/your/image.jpg'
predicted_class = predict_image(image_path)
print(predicted_class)
医学影像分析

在医学影像分析领域,图像识别技术用于检测和诊断疾病。大模型通过大量的医学影像数据进行训练,能够准确地识别病变区域,辅助医生进行诊断和治疗,提高医疗服务的质量和效率。

from fastai.vision.all import *def load_learner():learner = load_learner('path/to/your/exported/learner.pkl')return learnerdef predict_image(image_path):learner = load_learner()img = PILImage.create(image_path)pred, pred_idx, probs = learner.predict(img)return pred, probs[pred_idx]image_path = 'path/to/your/image.jpg'
predicted_class, probability = predict_image(image_path)
print(f'Predicted class: {predicted_class}, Probability: {probability}')

语音识别

语音识别是大模型在人工智能领域的重要应用之一。通过深度神经网络和大规模语音数据集的训练,大模型能够实现高精度的语音识别,广泛应用于智能助手、语音控制和语音转文字等场景。
在这里插入图片描述

智能助手

智能助手如Siri、Alexa和Google Assistant等,广泛应用于家庭和办公场景。大模型通过语音识别技术,实现语音指令的理解和响应,提高用户的交互体验和工作效率。

import speech_recognition as srdef recognize_speech():recognizer = sr.Recognizer()with sr.Microphone() as source:print("Say something:")audio = recognizer.listen(source)try:text = recognizer.recognize_google(audio)print("You said: " + text)except sr.UnknownValueError:print("Google Speech Recognition could not understand audio")except sr.RequestError as e:print("Could not request results from Google Speech Recognition service; {0}".format(e))recognize_speech()
语音转文字

语音转文字技术用于将语音信息转换为文本信息,广泛应用于会议记录、客户服务和语音搜索

等场景。大模型通过语音识别技术,实现高精度的语音转文字,提高信息处理的效率和准确性。

from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer
import torch
import librosatokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")def speech_to_text(audio_path):speech, _ = librosa.load(audio_path, sr=16000)input_values = tokenizer(speech, return_tensors="pt").input_valueslogits = model(input_values).logitspredicted_ids = torch.argmax(logits, dim=-1)transcription = tokenizer.batch_decode(predicted_ids)[0]return transcriptionaudio_path = 'path/to/your/audio.wav'
transcription = speech_to_text(audio_path)
print(transcription)

在这里插入图片描述

大模型性能优化的新探索

模型压缩

大模型虽然在性能上表现出色,但其巨大的参数量和计算复杂度带来了显著的存储和计算成本。为了在实际应用中更高效地部署大模型,模型压缩技术成为了重要的研究方向。

权重剪枝

权重剪枝是一种通过删除网络中不重要的权重,减少模型参数量和计算量的技术。通过剪枝后的模型在推理阶段能够大幅度提高计算效率,同时保持较高的准确度。

import torch
import torch.nn.utils.prune as prunemodel = models.resnet50(pretrained=True)
parameters_to_prune = [(module, 'weight') for module in model.modules() if isinstance(module, torch.nn.Conv2d)]for module, param in parameters_to_prune:prune.l1_unstructured(module, name=param, amount=0.2)# Remove pruning reparameterization to enable inference
for module, param in parameters_to_prune:prune.remove(module, param)
量化

量化是将模型参数从高精度(如32位浮点数)转换为低精度(如8位整数)的技术。量化后的模型能够大幅度减少存储空间和计算复杂度,同时保持较高的性能。

model = models.resnet50(pretrained=True)
model.eval()quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8
)# Test the quantized model
input_tensor = torch.randn(1, 3, 224, 224)
output = quantized_model(input_tensor)
print(output)
知识蒸馏

知识蒸馏是一种通过训练一个较小的学生模型来模仿大模型的行为,从而达到模型压缩的技术。学生模型在推理阶段能够更高效地运行,同时保持接近大模型的性能。

import torch.nn.functional as F# Define teacher and student models
teacher_model = models.resnet50(pretrained=True)
student_model = models.resnet18()# Define a knowledge distillation loss function
def distillation_loss(student_outputs, teacher_outputs, labels, alpha=0.5, temperature=2.0):loss_ce = F.cross_entropy(student_outputs, labels)loss_kd = F.kl_div(F.log_softmax(student_outputs / temperature, dim=1),F.softmax(teacher_outputs / temperature, dim=1),reduction='batchmean') * (temperature ** 2)return alpha * loss_ce + (1 - alpha) * loss_kd# Example training loop
optimizer = torch.optim.SGD(student_model.parameters(), lr=0.01, momentum=0.9)for epoch in range(10):for inputs, labels in dataloader:optimizer.zero_grad()student_outputs = student_model(inputs)with torch.no_grad():teacher_outputs = teacher_model(inputs)loss = distillation_loss(student_outputs, teacher_outputs, labels)loss.backward()optimizer.step()

分布式训练

大模型的训练通常需要大量的计算资源和时间。为了加速训练过程,分布式训练技术成为了重要的研究方向。

数据并行

数据并行是一种将大规模数据集分割成多个小批次,并在多个计算节点上并行训练模型的技术。数据并行能够显著加速大模型的训练过程,同时提高计算资源的利用率。

import torch
import torch.distributed as dist
import torch.nn as nn
import torch.optim as optim
from torch.nn.parallel import DistributedDataParallel as DDPdist.init_process_group(backend='nccl')
model = models.resnet50().cuda()
ddp_model = DDP(model)
optimizer = optim.SGD(ddp_model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.cuda(), labels.cuda()optimizer.zero_grad()outputs = ddp_model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()
模型并行

模型并行是一种将大模型分割成多个子模型,并在多个计算节点上并行训练的技术。模型并行能够解决单个计算节点内存不足的问题,提高大模型的训练效率。

import torch
import torch.nn as nn
import torch.optim as optim
from torch.nn.parallel import DistributedDataParallel as DDPclass ModelParallelResNet50(nn.Module):def __init__(self):super(ModelParallelResNet50, self).__init__()self.model = nn.Sequential(models.resnet50().layer1.to('cuda:0'),models.resnet50().layer2.to('cuda:1'),models.resnet50().layer3.to('cuda:2'),models.resnet50().layer4.to('cuda:3'))def forward(self, x):for layer in self.model:x = layer(x)return xmodel = ModelParallelResNet50()
optimizer = optim.SGD(model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.to('cuda:0'), labels.to('cuda:3')optimizer.zero_grad()outputs = model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()
异步训练

异步训练是一种允许不同计算节点在不同步的情况下进行模型更新的技术。异步训练能够提高计算资源的利用效率,加速大模型的训练过程。

import torch
import torch.distributed as dist
import torch.nn as nn
import torch.optim as optim
from torch.multiprocessing import Processdef train(rank, world_size):dist.init_process_group(backend='gloo', rank=rank, world_size=world_size)model = models.resnet50().to(rank)ddp_model = nn.parallel.DistributedDataParallel(model, device_ids=[rank])optimizer = optim.SGD(ddp_model.parameters(), lr=0.01)for epoch in range(10):for inputs, labels in dataloader:inputs, labels = inputs.to(rank), labels.to(rank)optimizer.zero_grad()outputs = ddp_model(inputs)loss = F.cross_entropy(outputs, labels)loss.backward()optimizer.step()def main():world_size = 4processes = []for rank in range(world_size):p = Process(target=train, args=(rank, world_size))p.start()processes.append(p)for p in processes:p.join()if __name__ == "__main__":main()

在这里插入图片描述

高效推理

大模型在推理阶段同样面临计算复杂度高的问题。为了在实际应用中更高效地进行推理,高效推理技术成为了重要的研究方向。

模型裁剪

模型裁剪是一种在推理阶段,根据输入数据的特性动态裁剪模型结构的技术。模型裁剪能够减少计算量,提高推理速度,同时保持较高的性能。

import torchclass DynamicPruningModel(nn.Module):def __init__(self, model):super(DynamicPruningModel, self).__init__()self.model = modeldef forward(self, x):# Example of dynamic pruning logicif x.size(0) > 1:self.model.layer4[0].conv1 = nn.Identity()return self.model(x)model = models.resnet50(pretrained=True)
pruned_model = DynamicPruningModel(model)input_tensor = torch.randn(1, 3, 224, 224)
output = pruned_model(input_tensor)
print(output)
缓存机制

缓存机制是一种通过缓存推理过程中的中间结果,减少重复计算的技术。缓存机制能够显著提高大模型的推理效率,特别是在实时应用场景中。

import torch
import torch.nn as nnclass CachedModel(nn.Module):def __init__(self, model):super(CachedModel, self).__init__()self.model = modelself.cache = {}def forward(self, x):if x in self.cache:return self.cache[x]output = self.model(x)self.cache[x] = outputreturn outputmodel = models.resnet50(pretrained=True)
cached_model = CachedModel(model)input_tensor = torch.randn(1, 3, 224, 224)
output = cached_model(input_tensor)
print(output)
专用硬件

专用硬件如GPU、TPU和FPGA等,能够为大模型的推理提供高效的计算支持。通过利用专用硬件的并行计算能力,大模型能够在推理阶段显著提高性能。

import torch
import torch.nn as nn# Check if a GPU is available
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = models.resnet50(pretrained=True).to(device)input_tensor = torch.randn(1, 3, 224, 224).to(device)
output = model(input_tensor)
print(output)

在这里插入图片描述

未来展望

跨领域应用

随着大模型的不断发展和优化,机器学习和大模型的融合应用将在更多领域得到拓展。未来,大模型将在医疗、金融、教育、能源等领域发挥更大的作用,为各行各业带来深远的影响和变革。

智能化系统

未来的智能化系统将更加依赖于大模型的支持。通过将大模型应用于智能制造、智能交通和智慧城市等领域,可以实现更加高效、智能和自动化的系统,提高生产效率和生活质量。

人工智能伦理

随着大模型的广泛应用,人工智能伦理问题将变得更加重要。如何确保大模型的公平性、透明性和可解释性,如何保护用户隐私,如何防止大模型被滥用,将是未来需要重点关注的问题。

技术创新

未来,机器学习和大模型领域将继续涌现出新的技术创新。新型神经网络架构、更加高效的训练算法、更智能的优化技术等,将推动大模型的性能进一步提升,开创更多的应用场景和可能性。

结论

机器学习与大模型的融合应用在人工智能领域展现了巨大的潜力和前景。通过对机器学习和大模型的深入理解和研究,结合实际应用中的需求,开发者可以构建出高性能、智能化的系统,实现智能预测和数据分析。在实际应用中,通过模型压缩、分布式训练和高效推理等性能优化技术,可以进一步提升大模型的应用效率和性能。未来,随着技术的不断创新和发展,机器学习与大模型的融合应用将为各行各业带来更多的机遇和挑战。希望本文能够为开发者提供有价值的参考和指导,推动机器学习与大模型在人工智能领域的持续发展和应用。
在这里插入图片描述

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

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

相关文章

C++之类与类之间的关系

1、UML 2、继承(泛化) 3、关联 一个类对象与另一个类对象存在一个固定关系。他们的关系不是暂时的,而是固定的。 一个类对象作为另一个类对象的成员。例如订单,是用户的一个成员。用户关联订单。 4、聚合 聚合其实是特殊的一种…

spring boot +Scheduled 动态定时任务配置

通常情况下我们设定的定时任务都是固定的,有时候需要我们动态的配置定时任务,下面看代码 import com.mybatisflex.core.query.QueryWrapper; import com.yzsec.dsg.web.modules.exportpwd.entity.ExportPwd; import com.yzsec.dsg.web.modules.exportpwd.entity.table.Export…

PbootCms微信小程序官网模版/企业官网/社交电商官网/网络工作室/软件公司官网

在数字化时代,企业网站已成为吸引潜在客户、提升企业形象、和扩大品牌影响力的必备工具。因此,一个优秀的企业网站模板显得尤为重要。 企业官网的内容框架通常都包含企业形象、产品或服务类型、信息展示等部分,设计师需要借助和企业形象契合…

mysql的binlog占用大量磁盘空间的解决方法

查看当前日志保存天数: mysql> show variables like %expire_logs_days%; ------------------------- | Variable_name | Value | ------------------------- | expire_logs_days | 0 | ------------------------- 1 row in set (0.08 sec) 默认是0&…

【Linux 网络】高级 IO -- 详解

一、IO 的基本概念 I/O(input/output)也就是输入和输出,在冯诺依曼体系结构当中,将数据从输入设备拷贝到内存就叫作输入,将数据从内存拷贝到输出设备就叫作输出。 对文件进行的读写操作本质就是一种 IO,文…

安防视频融合汇聚平台EasyCVR如何实现视频画面自定义标签?

安防视频融合汇聚平台EasyCVR兼容性强,可支持Windows系统、Linux系统以及国产化操作系统等,平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、…

港中文斯坦福提出SD加速模型PCM,一步即可生成图像和视频,可直接与SD1.5,SDXL,AnimateLCM结合!

又有新的SD加速模型可以用了,PCM解决了原来LCM模型的各种问题。并且对 AnimateLCM 也做了优化,用PCM直接生成动画也可以保证质量了。 PCM从这三个角度说明了LCM的设计空间是有限的并很好地解决了这些限制。 PCM主要改善了三个LCM原有的问题:…

Spring Cloud工程添加子模块打包后文件为war包而非jar包

Spring Cloud工程添加子模块打包后文件为war包而非jar包 Spring Cloud子模块打出的包通常是JAR包而非WAR包,这是因为Spring Cloud主要基于Spring Boot构建,而Spring Boot默认打包为可执行JAR包。然而,如果遇到了Spring Cloud子模块打成了WAR…

俯视角2D游戏_02 子弹对象池

[!NOTE] 对象池 应用场合:这种做法常用于子弹这种会大量产生的对象 ,目的是减少性能的损耗 基本思路:产生的对象是有限的,并且加入到"对象池"的数组中不进行销毁,当需要使用时,再从对象池中提取对象循环利用&#xff0c…

碰撞问题和单调栈的结合-735. 小行星碰撞【有小坑】

题目链接及描述 . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/asteroid-collision/description/?envTypestudy-plan…

Vue——子级向父级使用props传递数据(函数)

文章目录 前言原理案例效果演示 前言 看到这个标题,相信很多人会说我,你之前博客写的父级向子级中传递数据使用的是props,然后说的子级向父级传递数据则是用的$emit。 并且还说了对于String、数组Array,只能是父级使用props传递…

C++ 11【右值引用】

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:C修炼之路⏪   🚚代码仓库:C高阶🚚   🌹关注我🫵带你学习更多C知识   🔝🔝 1.C 11 简介 目录 1.C 11 简介 2. 统一的列表…

C语言小例程8/100

题目&#xff1a;输出特殊图案&#xff0c;请在c环境中运行&#xff0c;看一看 程序分析&#xff1a;字符共有256个。不同字符&#xff0c;图形不一样。 #include<stdio.h> int main() {char a176,b219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c…

Kafka 如何基于 KRaft 实现集群最终一致性协调

01 架构概览 Zookeeper 提供了配置服务、分布式同步、命名服务、Leader 选举和集群管理等功能&#xff0c;在大数据时代的开始很多开源产品都依赖 Zookeeper 来构建&#xff0c;Apache Kafka 也不例外。但是随着 Kafka 功能的演进和应用的场景越来越多&#xff1a; 基于 Zoo…

济南适宜地提取

题目: 网上下载中国的DEM、土地利用地图(1980、2000、2015年的)和一张最新济南市行政区划 图(要求:莱芜市并入济南后的区划图); 2.网上下载中国2015年年平均降水空间插值数据;3..网上下载中国2015年年平均气温空间插值数据; (注:以上数据可到资源环境科学与数据中心下载http…

QT快速下载

去QT官网之后&#xff0c;如下图所示 比如要下载qt-opensource-windows-x86-5.14.2.exe&#xff0c;进入5.14对应的文件夹&#xff0c;找到对应的版本 点击Details&#xff0c; 下载对应的种子&#xff0c;然后通过迅雷下载 个人实测&#xff0c;家庭网络平均18M的速率

【因果推断python】21_匹配2

目录 匹配估计器 匹配估计器 子分类估计器在实践中用得不多&#xff08;我们很快就会明白为什么&#xff0c;主要是因为维度诅咒这个原因&#xff09;&#xff0c;但它让我们很好地、直观地了解了因果推理估计器应该做什么&#xff0c;以及它应该如何控制混淆因素。这使我们能…

python--装饰器

[掌握]装饰器入门 语法糖 目标&#xff1a;掌握装饰器的快速使用。 装饰器本质上就是闭包&#xff0c;但装饰器有特殊作用&#xff0c;那就是&#xff1a;在不改变原有函数的基础上&#xff0c;给原有函数增加额外功能。 定义装饰器&#xff1a; def outer([外面参数列表]):…

kafka-消费者-消费异常处理(SpringBoot整合Kafka)

文章目录 1、消费异常处理1.1、application.yml配置1.2、注册异常处理器1.3、消费者使用异常处理器1.4、创建生产者发送消息1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费者控制台&#xff1a;1.8.1、第一次启动SpringK…

Linux环境---在线安装jdk

Linux环境—在线安装jdk 一、使用步骤 1.安装环境 JDK版本&#xff1a;1.8 1.1 建立存放软件的目录 注意&#xff1a;此处本人是将需要按照的软件存放在directory目录下&#xff0c;可根据实际情况调整接收路径。 命令如下&#xff1a; mkdir directory2.安装jdk 2.1 建…