- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 什么是面向切面编程(Aspect-Oriented Programming)
面向切面编程(Aspect-Oriented Programming)的缩写是AOP。在 Spring Framework 中,AOP 是一个常用的功能,特别适合于分离关注点、简化业务逻辑。
2024-11-12 11:16:41
1319
原创 springboot 里 包含 starter的包 和不包含 starter的包有什么区别呢
在springboot中,starter包和非starter包的区别主要在于使用方便性、配置简洁性和依赖管理的自动化。
2024-11-12 11:11:04
834
原创 交替最小二乘法(ALS)的工作原理
首先,定义预测矩阵为 ( \hat{R} = UV^T )。我们的目标是最小化这个预测矩阵 ( \hat{R} ) 和实际评分矩阵 ( R ) 之间的误差。误差可以表示为:T)2 ]( E ) 是总的平方误差。( R_{ij} ) 是用户 ( i ) 对物品 ( j ) 的评分。( U_i ) 是用户 ( i ) 的特征向量(大小为 ( 1 \times k ))。( V_j ) 是物品 ( j ) 的特征向量(大小为 ( 1 \times k ))。
2024-10-10 17:55:15
1460
原创 事件驱动架构的定义、好处与实现
事件驱动架构(Event-Driven Architecture,简称 EDA)是一种软件架构模式,其中系统的行为由事件的生成、传播、和处理所驱动。事件驱动架构可以用于构建高度松耦合、响应式和可扩展的系统,特别适合处理复杂和异步的业务场景。它的核心思想是事件成为系统中各个组件之间通信和协调的主要方式。采用事件驱动的架构有多个目的和优势,主要集中在提高系统的松耦合性扩展性可维护性以及响应性等方面。我们先讨论事件驱动架构的主要目的和优势,然后再看看如何使用springboot来简单实现事件驱动架构。
2024-08-09 11:36:50
1558
原创 用一个demo辅助理解spring的事件机制
网上介绍spring事件机制的文章很多,非常难入门和理解。今天我们使用纯 Java 来手动实现一个类似于 Spring 事件机制的简单示例。这将帮助你理解其背后的观察者模式和发布-订阅机制的工作原理。以下是一个简单的例子,展示如何用纯 Java 实现一个基本的事件发布和监听系统。首先,我们定义一个简单的事件类。这个类相当于 Spring 中的。接下来,我们定义一个事件监听器接口。所有监听器都要实现这个接口,相当于 Spring 中的。然后,我们定义一个事件发布者类,用来管理监听器并发布事件。
2024-08-09 11:22:31
641
原创 springboot项目如何合理分层呢
在Java Spring项目中,合理的分层结构有助于实现良好的系统架构,提高代码的可维护性、可扩展性和测试性。通过定义专用的请求和响应实体类,可以帮助减少和避免一些潜在的安全问题,包括隐含的恶意代码。合理的分层设计可以提高系统的可维护性、可扩展性和测试性。在Java Spring项目中,常见的分层包括表现层、业务逻辑层、数据访问层、领域层、配置层和辅助层。每一层都有明确的职责,通过接口和依赖注入进行解耦,遵循设计原则,有助于构建一个清晰、稳定的应用程序架构。
2024-08-02 10:50:07
1113
原创 关于rpc的思考
很久没有用rpc了,最近回忆起在以前的公司使用rpc的场景,想重新对rpc进行一下思考。是的,为了在IDE(如IntelliJ IDEA)中不报错,并且提供良好的代码提示和检查功能,在Java中使用RPC时,通常需要定义接口。这样做不仅可以避免IDE报错,还能使代码更清晰、易维护。以下是一个如何定义接口并使用RPC的简单示例。假设你有一个用户服务,提供获取用户信息的功能。紧耦合客户端和服务器之间的接口定义需要同步变更,这增加了系统的维护成本和复杂性。
2024-08-02 10:09:35
1085
原创 从台风格美看如何用python计算地球自转偏向力
最近一直在看台风格美的动向,于是产生了很多的疑问。例如很多文献里说台风是因为地球自转偏向力产生的。那么什么是地球自转偏向力呢,它要怎么计算呢?地球自转偏向力,通常称为科里奥利力,是由于地球自转而产生的。这种力影响了地球表面上移动的物体,使它们的运动轨迹发生偏转。科里奥利力之所以产生,是因为地球是一个旋转的参考系,而非惯性参考系。地球的自转: 地球以大约一天一圈的速度自西向东旋转。这意味着在赤道上的物体相对于地轴有最大的线速度,而在两极,这个速度为零。惯性和非惯性参考系。
2024-07-26 16:48:59
606
原创 使用 Hugging Face Transformers 库实现“代码生成和理解”功能
近年来,深度学习在自然语言处理(NLP)领域取得了显著进展,特别是使用 Transformers 架构的模型,如 BERT、GPT 等。Hugging Face 的 Transformers 库为研究人员和开发人员提供了一个强大且易于使用的工具包,使得实现复杂的 NLP 任务变得更加简单。在这篇文章中,我们将探讨如何使用 Hugging Face Transformers 库实现“代码生成和理解”功能。
2024-07-23 10:37:26
1233
原创 增量预训练和微调的区别
增量预训练是一种在现有预训练模型的基础上,通过引入新的数据或任务来进一步训练模型的方法。这种方法的主要目的是在不从头开始训练模型的情况下,利用新数据或特定领域的数据增强模型的能力和性能。选择基础模型:选择一个已经预训练的模型,例如BERT、GPT等。准备新数据:收集和整理新的训练数据,通常是与现有任务相关的数据,或是针对特定领域的数据。继续训练:使用新的数据在基础模型上进行进一步的训练。这一步可以包括全量训练(对所有模型参数进行调整)或部分训练(只调整部分参数,如顶层的几层)。评估与调整。
2024-07-17 21:44:17
4250
原创 一起学Hugging Face Transformers(19)- pipeline的类型
前面的文章里有如下一段代码# 创建NER管道这个ner管道是什么呢在命名实体识别任务中,创建了一个用于识别文本中命名实体的管道。这个管道会自动处理文本的分词、模型推理以及结果的后处理,使得整个过程变得非常简洁和高效。以下是对pipeline和ner。
2024-07-17 01:00:00
1838
原创 在java中如何查找某一个包被谁引入呢?学会使用依赖分析
目前有这么个场景log4j-api有的版本有漏洞,但是很多同学搜索了项目并没有发现有log4j在哪里被引入的,因此就无法替换它,这是因为它可能是由其他的包依赖引入的。那么如何找出项目中是否有log4j-api被引入以及它是如何被引入的呢?我们今天一块来探讨下。通过上述步骤,你应该能够确定log4j-api是如何被引入到你的项目中的,并采取相应的措施来管理或排除这些依赖。
2024-07-16 16:32:28
1926
1
原创 一起学Hugging Face Transformers(18) - 使用Transformers 库实现命名实体识别(NER)
命名实体识别(NER)是自然语言处理(NLP)中的一种任务,旨在识别文本中具有特定意义的实体,例如人名、地名、组织名等。NER 在信息抽取、文本分析和许多其他 NLP 应用中具有重要作用。本文将介绍如何使用 Hugging Face 的库来实现 NER。通过本文,我们了解了如何使用 Hugging Face 的库和预训练的 BERT 模型来实现命名实体识别。这个过程包括加载模型和分词器、创建 NER 管道、对文本进行识别以及解释识别结果。Hugging Face 的。
2024-07-16 09:58:31
796
原创 一起学Hugging Face Transformers(17)- 使用 Transformers 库实现摘要生成
随着信息的爆炸式增长,自动摘要生成(Summarization)已经成为自然语言处理(NLP)领域的重要任务之一。它可以帮助我们快速获取文档的核心内容,从而提高信息处理的效率。本文将介绍如何使用 Hugging Face 的库来实现摘要生成。首先,我们需要安装必要的库。确保你已经安装了和torch库。接下来,我们使用模型生成摘要。这里我们使用generate方法来生成摘要。# 生成摘要# 解码生成的摘要通过本文,我们了解了如何使用 Hugging Face 的。
2024-07-15 14:54:52
1386
原创 一起学Hugging Face Transformers(16)- transform库的pipeline
库中的pipeline是一个非常便捷的高级 API,它封装了许多常见的自然语言处理任务,使得用户可以轻松调用预训练模型进行各种任务,而不需要深入了解模型的底层实现。下面是关于pipeline的详细介绍。pipeline。
2024-07-14 00:45:00
1749
原创 一起学Hugging Face Transformers(15)- 使用Transformers 进行情感分析
情感分析(Sentiment Analysis)是自然语言处理(NLP)中的一个重要任务,旨在确定文本的情感倾向,如积极、消极或中性。Hugging Face 的 Transformers 库提供了强大的工具,可以轻松实现情感分析。在这篇文章中,我们将介绍如何使用 Transformers 库进行情感分析。如果预训练模型不能完全满足你的需求,你可以在自己的数据集上微调模型。# 加载预训练模型和分词器# 准备数据集"]# 定义训练参数# 定义 Trainer# 训练模型。
2024-07-13 00:45:00
984
原创 生成式人工智能(AIGC)正在改变软件开发的工作方式
在当今的软件开发领域,生成式人工智能(AIGC)正以前所未有的速度改变开发者的工作方式。从代码生成、错误检测到自动化测试,AI工具正逐渐成为开发者的得力助手。然而,这一转变也引发了关于开发者职业前景和技能需求变化的广泛讨论。AI究竟是在帮助开发者,还是在取代他们?让我们深入探讨这一问题。生成式人工智能正在深刻地改变软件开发的工作方式,带来了显著的效率提升和工作方式的转变。尽管AI引发了对开发者职业前景的担忧,但实际上,AI更像是开发者的助手,而非取代者。
2024-07-12 16:49:52
922
原创 NLP任务中三个概念标记、样本映射和偏移映射三个概念的浅析
在自然语言处理(NLP)任务中,特别是问答任务中,标记、样本映射和偏移映射是用于处理长文本和标记位置的重要概念。我们一起来学习这三个概念。
2024-07-12 01:00:00
1694
原创 一起来了解深度学习中的“梯度”
在深度学习的相关文章中一直提到两个词——梯度和梯度下降。在网上搜索这些词汇时,初学者常常会看到一堆公式和各种复杂的定义,可能会让人打退堂鼓。然而,理解梯度的概念对于掌握深度学习至关重要。今天,我们将用一个通俗易懂的比喻来解释深度学习中的梯度。通过这种方式,希望能帮助大家更轻松地理解这个重要概念,从而更加自信地迈向深度学习的世界。在深度学习中,梯度可以看作是一个指引我们如何调整模型参数(如权重和偏置)以最小化误差的指南针。梯度告诉我们,在当前参数值的情况下,误差朝哪个方向增大或减小,以及应该调整参数多少。
2024-07-11 01:00:00
4043
1
原创 大模型一些概念的理解 - 线性层、前向传播、后向传播
最近提问里有问到一些名词:线性层、前向传播、后向传播。这些实际是神经网络的一些基础概念,我们可以先通过通俗易懂的方式简单了解下它们线性层(Linear Layer)是神经网络中的一种基本层,也称为全连接层(Fully Connected Layer)。y = Wx + b,其中W是权重矩阵,x是输入,b是偏置项,y是输出。线性层的主要任务是将输入的数据通过权重和偏置进行线性变换,从而生成输出。前向传播(Forward Propagation)是神经网络计算输出的过程。
2024-07-10 00:45:00
1815
原创 python的列表推导式
问题是最外层的 中括号是做什么的?最外层的中括号表示列表推导式。在 Python 中,列表推导式是一种简洁且强大的生成列表的方法。它允许你使用一种紧凑的语法从一个可迭代对象(如列表或字典)中生成一个新的列表。列表推导式是对列表进行遍历,对每一个元素去除空白字符,并将处理后的结果生成一个新的列表。这个过程可以用更加简洁的列表推导式来实现,代码更为简洁和易读,同时实现了与for循环等价的功能。
2024-07-09 17:47:12
655
原创 一起学Hugging Face Transformers(14)- “自定义训练循环”问题解答
前一篇文章 自定义训练循环 收到不少提问,在这里统一解答一下。:这是一个用于获取学习率调度器的函数。学习率调度器(Learning Rate Scheduler)在训练过程中调整学习率,以便更好地控制模型的优化过程。:指定调度器的类型为线性调度器(linear scheduler),表示学习率将在训练期间线性地从初始值下降到最终值。:指定优化器,调度器将与这个优化器一起工作。:指定学习率预热步骤(warmup steps)的数量。在预热阶段,学习率从0逐渐增加到初始值。这里设置为0,表示没有预热阶段。
2024-07-09 00:45:00
1426
原创 一起学Hugging Face Transformers(13)- 模型微调之自定义训练循环
Hugging Face Transformers 库为 NLP 模型的预训练和微调提供了丰富的工具和简便的方法。虽然 Trainer API 简化了许多常见任务,但有时我们需要更多的控制权和灵活性,这时可以实现自定义训练循环。本文将介绍什么是训练循环以及如何使用 Hugging Face Transformers 库实现自定义训练循环。在模型微调过程中,训练循环是指模型训练的核心过程,通过多次迭代数据集来调整模型的参数,使其在特定任务上表现更好。
2024-07-08 00:30:00
1311
原创 一起学Hugging Face Transformers(12)- 什么是预训练(Pre-training)
预训练(Pre-training)是大模型开发中的一个重要概念,它指的是在大量通用数据上训练一个模型,使其学习广泛的知识和语言模式。这个过程在实际应用中非常关键,因为它为模型提供了一个强大的基础,使其能够更好地适应后续的特定任务。预训练是指在特定任务之前,先在一个大规模的、通用的文本数据集上训练一个模型。这些通用数据集可以包括维基百科文章、新闻报道、书籍内容等。通过在这些数据上训练,模型能够学习到丰富的语言结构和语义知识。
2024-07-07 00:30:00
1210
原创 一起学Hugging Face Transformers(11)- 用于微调的基础模型选择考虑的因素和技巧
微调的基础模型选择是大模型应用中一个关键的决策。选择适合的基础模型可以显著提升微调后的性能和效果。以下是一些关于为什么推荐使用某些基础模型以及选择模型的技巧。选择适合的基础模型进行微调是提高模型性能的关键。推荐使用的基础模型通常是因为其预训练质量高、架构设计优良、社区支持丰富。选择模型时应根据任务类型、计算资源、领域相关性和最新研究进展等因素进行综合考虑。通过这些技巧,你可以更有效地选择和微调基础模型,提升模型在特定任务中的表现。
2024-07-06 00:30:00
1180
原创 一起学Hugging Face Transformers(10)- 使用Transformers 库的 Trainer API 进行模型微调
在自然语言处理(NLP)领域,预训练模型如 BERT、GPT 等已经展示了其强大的能力。然而,实际应用中,预训练模型往往需要进一步微调(Fine-tuning)以适应具体任务。Hugging Face Transformers 库提供了强大的 Trainer API,使得模型微调变得简单高效。本文将详细介绍如何使用 Trainer API 对模型进行微调。通过 Hugging Face Transformers 库的 Trainer API,我们可以方便快捷地对预训练模型进行微调。
2024-07-05 00:45:00
1300
2
原创 一起学Hugging Face Transformers(9) - 微调(Fine-tuning)简介
在大模型学习的过程中,我们经常听到“微调”这个词。也有很多的微调框架。很多人几乎达到了什么模型都要拿来微调下才能用的程度。那到底什么是微调,我想用通俗易懂的方式讲解一下大模型里常说的“微调”(Fine-tuning)。想象一下,你买了一本非常厚的百科全书,里面包含了世界上各种各样的知识。这本百科全书就像是一个预训练的大模型,里面已经包含了大量的信息和知识。然而,当你需要在考试中回答特定学科的问题时,比如历史或生物学,单靠这本通用的百科全书可能还不够。
2024-07-04 00:45:00
1473
原创 IT领域的初学者指南:从高考到新征程
高考的结束标志着一个阶段的完结,但对于有志于IT领域的少年们来说,这只是新旅程的开始。通过系统的学习和不断的实践,你们将能在IT世界中找到属于自己的位置。希望这份学习路线图能为你们提供一些指引和帮助,愿你们在探索IT领域的道路上,勇往直前,收获满满。祝你们假期愉快,学习顺利!
2024-07-03 09:56:20
1031
2
原创 SQuAD(Stanford Question Answering Dataset)数据集简介
SQuAD(Stanford Question Answering Dataset)数据集是一个非常流行且广泛使用的问答数据集,主要用于训练和评估问答系统。它的设计目的是从给定的段落中回答问题。SQuAD 数据集的优点在于它的规模大、数据质量高,并且包含了多样化的上下文和问题。然而,SQuAD 数据集也有一些局限性,使其在覆盖生活中常见问题方面存在一定的不足。标注质量不一致:自定义文档的数据标注质量可能不一致,尤其是在标注过程缺乏标准和规范的情况下。覆盖范围有限。
2024-07-02 00:30:00
3378
原创 一起学Hugging Face Transformers(8)- 使用Transformers 库制作一个简易问答系统
问答系统是一种能够自动回答用户问题的人工智能应用,在许多领域具有重要的应用价值,如客户服务、教育和医疗等。Hugging Face Transformers 库是一个强大的工具,它提供了许多预训练的自然语言处理模型,简化了构建问答系统的过程。本文将介绍如何使用 Hugging Face Transformers 库创建一个问答系统。本文介绍了如何使用 Hugging Face Transformers 库构建一个简单的问答系统。从环境准备、数据处理、模型选择到系统部署,涵盖了问答系统开发的各个方面。
2024-07-01 10:29:17
1265
原创 一起学Hugging Face Transformers(6)- 使用Transformers 库进行文本生成(Text Generation)
文本生成(Text Generation)是自然语言处理(NLP)中的一个重要任务,它涉及从给定的输入生成连贯且有意义的文本。Hugging Face 的 Transformers 库提供了强大而易用的工具来实现文本生成任务。本文将详细介绍如何使用 Transformers 库进行文本生成,包括环境准备、加载预训练模型、进行文本生成和调优生成结果。Hugging Face 的 Transformers 库为文本生成任务提供了强大而灵活的工具。
2024-06-30 00:30:00
970
原创 一起学Hugging Face Transformers(5)- 使用Transformers 库进行文本分类
文本分类(Text Classification)是自然语言处理(NLP)中的一个基本任务,它涉及将文本分配到预定义的类别中。Hugging Face 的 Transformers 库为文本分类提供了强大而简便的工具。本文将详细介绍如何使用 Transformers 库进行文本分类,包括数据预处理、模型训练和评估。我们使用Trainer类来简化训练过程。首先,我们需要定义训练参数。# 定义 Trainer# 开始训练。
2024-06-29 01:00:00
1177
4
原创 一起学Hugging Face Transformers(7) - 使用Transformers 库进行机器翻译(Machine Translation)
机器翻译(Machine Translation)是自然语言处理(NLP)中的一个重要任务,它涉及将文本从一种语言自动翻译为另一种语言。Hugging Face 的 Transformers 库提供了强大而易用的工具来实现机器翻译任务。本文将详细介绍如何使用 Transformers 库进行机器翻译,包括环境准备、加载预训练模型、进行翻译和调整翻译结果。Hugging Face 的 Transformers 库为机器翻译任务提供了强大而灵活的工具。
2024-06-28 14:46:20
2405
原创 一起学Hugging Face Transformers(4)- 通过Transformers 库做数据预处理
在自然语言处理(NLP)任务中,数据预处理是确保模型能够高效、准确工作的关键步骤之一。Hugging Face 的 Transformers 库提供了一整套便捷的工具,帮助开发者进行文本数据的预处理。本文将介绍如何使用该库进行数据预处理,包括文本数据的 Tokenization、Padding 和 Truncation,以及创建数据集和 DataLoader。我们可以使用 Hugging Face 的 Transformers 库高效地进行数据预处理,为模型训练打下坚实的基础。
2024-06-28 10:22:51
1538
原创 一起学Hugging Face Transformers(3) - Hugging Face 加载模型和Tokenizer
Hugging Face提供了一个强大的Transformers库,方便用户加载和使用预训练的自然语言处理模型及其相应的Tokenizer。本文将介绍如何加载预训练模型和Tokenizer,使用AutoModel和AutoTokenizer,以及了解不同模型的输入和输出格式,并举两个具体的例子进行说明。本文介绍了如何使用Hugging Face的Transformers库加载预训练模型和Tokenizer,使用AutoModel和AutoTokenizer类,以及不同模型的输入和输出格式。
2024-06-27 18:09:52
2197
原创 一起学Hugging Face Transformers(2)- 如何安装Python环境并使用Hugging Face Transformers库
安装Python环境是进行机器学习和自然语言处理项目的第一步。本文将介绍如何使用两种不同的方法(conda和venv)安装Python环境,然后详细讲解如何安装Hugging Face Transformers库和PyTorch或TensorFlow。安装完上述工具后,你就可以开始使用Hugging Face Transformers库进行自然语言处理任务了。希望这篇文章对你有所帮助!
2024-06-27 10:41:46
2012
原创 一起学Hugging Face Transformers(1) - Transformer 基础概念
Hugging Face 成立于2016年,总部位于纽约市,是一家专注于自然语言处理(NLP)和人工智能的公司。起初,Hugging Face 以开发一款名为 Hugging Face 的聊天机器人而闻名,但公司很快转向了开发和发布 NLP 工具和资源。其核心产品——Transformers 库,自发布以来在 NLP 社区中迅速流行,成为开发和使用 Transformer 模型的首选工具之一。随着社区的不断壮大和技术的快速迭代,Hugging Face 在全球 NLP 研究和应用领域中占据了重要地位。
2024-06-26 11:32:04
1057
原创 Hugging Face Transformers 库学习提纲
Hugging Face Transformers 库是一个强大且易于使用的工具包,用于实现和应用各种Transformer模型。我们先列一个详细的学习提纲,帮助我们系统地学习和掌握Hugging Face Transformers库。以下是提纲,我们先整体过一遍,然后再有针对的去学习。学习 Hugging Face Transformers 库需要从基础概念和环境配置入手,逐步掌握库的基本使用方法和高级应用,通过实际案例和项目实战提升实践能力,并且结合社区资源和前沿研究不断深入学习和探索。
2024-06-25 01:30:00
922
原创 mvn配置中repository和mirror的区别
平时在配置mvn仓库地址的时候,总是会百度一下,有时候文章让用repository配置,有时候用mirror,配置起来都能用,于是就不怎么在意他们的区别。实际在 Maven 中,mirror和repository是两个相关但有不同用途的配置项。理解它们的区别有助于有效地管理 Maven 项目中的依赖项。repository: 项目中直接使用的仓库配置,指定下载依赖项的具体地址。mirror: 用于重定向对某个或某些仓库的访问,通常在全局配置中使用,用来优化和控制依赖项的下载路径。
2024-06-24 17:45:29
1942
langchain-chatchat在window上使用cpu运行Qwen-1-8B-Chat时遇到ERROR: object
2024-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人