简介(Introduction) 本项目是一个基于 Transformer 的中文对联生成器,使用 PyTorch 构建模型,使用 Gradio 构建 Web UI。 数据集:https://www.kaggle.com/datasets/marquis03/chinese-couplets-dataset GitHub 仓库:https://github.com/Marquis03/Chinese-Couplets-Generator-based-on-Transformer Gitee 仓库:https://gitee.com/marquis03/Chinese-Couplets-Generator-based-on-Transformer 项目结构(Structure) 12345678910111213141516171819202122232425262728.├── config│ ├── __init__.py│ └── config.py├── data│ ├── fixed_couplets_in.txt│ └── fixed_couplets_out ...
Scheduler Warm-up + CosineAnnealingLR 1234567891011121314import mathwarm_up_iter = 10T_max = 50lr_max = 0.1lr_min = 1e-5def WarmupCosineAnnealingLR(cur_iter): if cur_iter < warm_up_iter: return (lr_max - lr_min) * (cur_iter / warm_up_iter) + lr_min else: return lr_min + 0.5 * (lr_max - lr_min) * ( 1 + math.cos((cur_iter - warm_up_iter) / (T_max - warm_up_iter) * math.pi) ) 前 warm_up_iter 步,学习率从 lr_min 线性增加到 lr_max;后 T_max - warm_up_iter 步,学习率按照余弦退火从 lr_ma ...
VAE 简介 变分自编码器(Variational Autoencoder,VAE)是一种深度学习中的生成模型,它结合了自编码器(Autoencoder, AE)和概率建模的思想,在无监督学习环境中表现出了强大的能力。VAE 在 2013 年由 Diederik P. Kingma 和 Max Welling 首次提出,并迅速成为生成模型领域的重要组成部分。 基本原理 自编码器(AE)基础: 自编码器是一种神经网络结构,通常由两部分组成:编码器(Encoder)和解码器(Decoder)。原始数据通过编码器映射到一个低维的潜在空间(或称为隐空间),这个低维向量被称为潜变量(latent variable)。然后,潜变量再通过解码器重构回原始数据的近似版本。在训练过程中,自编码器的目标是使得输入数据经过编码-解码过程后能够尽可能地恢复原貌,从而学习到数据的有效表示。 VAE的引入与扩展: VAE 将自编码器的概念推广到了概率框架下。在 VAE 中,潜变量不再是确定性的,而是被赋予了概率分布。具体来说,对于给定的输入数据,编码器不直接输出一个点估计值,而是输出潜变量的均值和方差(假设潜变量 ...
比赛介绍 比赛链接 DataCastle 员工离职预测:https://challenge.datacastle.cn/v3/cmptDetail.html?id=342 赛题描述 给定影响员工离职的因素和员工是否离职的记录,建立模型预测有可能离职的员工。 评分标准 评分算法为准确率,准确率越高,说明正确预测出离职员工与留职员工的效果越好。 评分算法参考代码如下: 1234from sklearn.metrics import accuracy_scorey_true = [1, 0, 1, 0]y_pred = [1, 1, 1, 0]score = accuracy_score(y_true, y_pred) 比赛数据 数据下载 百度网盘:https://pan.baidu.com/share/init?surl=UjkKggnWQMIBhrU1vPm1sw&pwd=99gu 数据说明 数据主要包括影响员工离职的各种因素工资、出差、工作环境满意度、工作投入度、是否加班、是否升职、工资提升比例等. 以及员工是否已经离职的对应记录。 数据分为训练数据和测试数据,分别保存在 tr ...
ragged2e 宏包简介 ragged2e 是一个 LaTeX 宏包,它为 LaTeX 文档提供了一种改进的、更加灵活的文本对齐方式,特别是对于那些需要避免完全齐行对齐(justified)而采用不对齐排版样式(如左对齐、右对齐或两端对齐但内部单词间距可变)的情况。在标准的 LaTeX 中,纯文本段落默认是齐行对齐的,但在某些情况下,比如窄栏布局或者特定设计要求下,用户可能希望使用更为灵活和自然的不对齐排列。 主要功能: 改进的 ragged 右边距设置: \RaggedRight 命令用于设置左对齐同时允许右侧边缘不规则的文本段落,但会尽可能均匀地分布单词间距,相比标准的 \raggedright 提供了更美观的结果。 \RaggedLeft 则实现右对齐,左侧边缘参差不齐,同样优化了单词间距。 居中对齐命令: \Centering 用于创建居中的段落环境,不同于 \centering,它不会影响行间距。 两端对齐选项: 虽然 ragged2e 不直接支持完整的两端对齐,但它可以辅助实现类似效果,通过调整字间距和断词规则来尽量使每行长度接近。 微调控制: ...
PyCaret 简介 PyCaret 是一个开源的低代码 Python 库,专注于简化机器学习(ML)工作流程并加速实验过程。它特别适用于数据科学家、分析师和开发人员,通过减少实现 ML 解决方案所需的繁琐编码工作来提高工作效率。PyCaret 可以在一个统一且用户友好的接口下提供多种机器学习任务的支持,包括但不限于分类、回归、聚类、异常检测、关联规则挖掘等。 以下是一些关于 PyCaret 的关键特点和功能: 低代码自动化: PyCaret 允许用户通过简洁的 API 调用快速执行数据预处理、特征工程、模型训练、模型评估和模型选择等步骤。 用户无需编写大量的底层代码即可完成复杂的机器学习任务,仅需少量命令就能在几秒钟内搭建和比较多个模型。 集成多种库: 库内部封装了诸如 scikit-learn、XGBoost、LightGBM、CatBoost 等流行机器学习框架,并提供了对这些库中模型的便捷访问和管理。 同时也集成了其他辅助工具,如用于文本处理的 spaCy,以及用于超参数优化的 Optuna、Hyperopt 等。 模块化设计: PyCaret 按照不同 ...
Pandarallel 简介 Pandarallel 是一个 Python 库,设计用于简化并行处理在 Pandas DataFrame 上的操作,特别针对那些原本串行执行的 apply、map 和 applymap 等方法。它通过利用多核 CPU 的优势,在本地环境中实现并行计算,从而显著提高数据处理速度。 以下是对 Pandarallel 主要特点的简单介绍: 简单易用: Pandarallel 无需用户显式管理进程或线程,只需在代码开始处初始化一次,之后就可以直接使用类似 Pandas 的接口进行并行化操作。 初始化通常通过一行代码完成:pandarallel.initialize() 在初始化时,可以指定参数如 progress_bar=True 来显示进度条,或者调整 nb_workers 参数以设置使用的 CPU 核心数量。 高效并行: Pandarallel 在后台使用 multiprocessing 库,绕过了 Python 全局解释器锁(GIL)的限制,因此能够在多个 CPU 核心上并行执行任务。 它能够自动检测系统的可用 CPU 资源,并根据需要分配工 ...
UMAP 简介 UMAP(Uniform Manifold Approximation and Projection)是一种先进的非线性降维技术,用于将高维数据集转换为低维空间中的表示,同时尽可能保留原始数据的复杂结构和拓扑特性。它特别适用于可视化分析和机器学习领域的预处理步骤。 理论基础 流形学习:UMAP 建立在流形学习的基础上,该理论认为即使在高维空间中,许多真实世界的数据点也可以近似地分布在一个低维流形上。通过捕捉这些隐藏的低维结构,UMAP 能够生成有意义的二维或三维投影。 代数拓扑:算法利用了代数拓扑的概念,特别是对邻域图的同胚嵌入来估计数据流形上的全局和局部连通性。这意味着 UMAP 不仅关注数据点之间的局部相似性,还考虑了它们在整个数据集中的相对位置和全局关系。 黎曼几何:虽然 UMAP 并不直接依赖于严格的黎曼几何计算,但其背后的思想受到了启发。算法假设数据均匀分布在某种局部恒定度量的空间中,并且这个空间可以通过数学操作进行近似。 特点与优势 保留全局结构:相比 t-SNE(t-Distributed Stochastic Neighbor Emb ...
RAG 检索增强生成(RAG, Retrieval-Augmented Generation)是一种自然语言处理(NLP)中的创新方法,它结合了信息检索(IR)和深度学习生成模型的优点,以提高文本生成任务的准确性和上下文相关性。在 AI 和机器学习领域中,RAG 旨在解决大规模语料库中的信息检索与自动生成相结合的问题。 具体来说,RAG 系统包含两个主要组件: 检索模块:该模块负责从一个大规模的数据集或知识库中检索相关信息。它采用一种检索式机制,根据输入查询或上下文内容快速定位到最相关的文档或片段。 生成模块:检索出的相关信息随后被输入到一个大型语言模型(如 GPT 系列或其他变体),这个模型基于检索到的内容生成连贯、精准的回答或文本输出。通过这种方式,生成模型能够利用实际存在的数据源,而不是完全依赖于自身的参数来生成信息,从而减少了错误传播并增强了生成内容的真实性和可靠性。 使用 RAG 框架的一个显著优势在于它可以减少由于模型自身知识库限制而产生的 hallucination(幻觉)。通过实时检索外部存储的信息,RAG 能够在生成时引用准确的事实,这对于问答系统、对话 ...
学习笔记
未读TF-IDF 简介 TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文档频率)是一种用于信息检索和文本挖掘的常用加权技术,它用于评估一个单词对于一个文档集合中某个特定文档的重要程度。在自然语言处理、搜索引擎优化和机器学习等领域中,TF-IDF 被广泛应用于关键词抽取、相似性计算、文档排名等多个场景。 组成部分: TF (Term Frequency): TF 表示词频,即一个给定词语在特定文档中出现的次数或频率。 通常,TF 的计算方法是对单个文档中的词频进行归一化,可以简单地计算为该词语在文档中出现的次数除以文档总词汇数,或者使用更复杂的加权方式来降低非常长文档中高频但不一定重要的词语的影响。 IDF (Inverse Document Frequency): IDF 是逆文档频率,反映了一个词语在整个文档集合(语料库)中的普遍重要性。 它是通过将所有文档的数量除以包含该词语的文档数量,然后对得到的商取对数来计算的。 IDF 值越大,说明这个词越稀有,即它在较少的文档中出现过,因此具有更高的鉴别度。 TF- ...