大模型基础知识 - 语言模型及其演进

开场白

人工智能发展到现在,在2个重要领域取得了重大突破,有望达到人类水平:

  • 计算机视觉 (Computer Vision, CV)-> 希望机器帮助人类处理图像数据
  • 自然语言处理(Natural Language Processing, NLP)-> 希望机器帮助人类处理文本数据

AIGC

  • 计算机视觉 (Computer Vision, CV)-> AI作画
  • 自然语言处理(Natural Language Processing, NLP)-> 文本生成

自然语言处理在大语言模型(Large Language Model, LLM)被提出之后,再次取得重大突破:

  1. 以ChatGPT为代表的对话大模型有望重新定义人类使用计算机的方式

    • 直接以自然语言让计算机执行任务替代编程语言已具备可能性
  2. 使用大模型的能力设计开发互联网产品,有望颠覆部分领域产品设计开发模式

    • 举个🌰:百度翻译、谷歌翻译

注:

  1. 关于使用计算机的方式 -> 我们这里讲的是底层的使用方式,应用层来看的话都是通过软件来使用,但软件也是经由编写程序编译之后的产物,归根结底还是通过代码。
  2. 关于颠覆部分领域 -> 负责任地讲,目前还是有一些领域传统方法效率和结果更好,未来不确定。

接下来我们来从0到1了解一下大语言模型背后的基础知识。

导语

通过本节课程,希望大家能够了解:

  1. 语言模型的数学基础:概率语言模型 (25分钟)
  2. 神经网络语言模型的发展历史:即大语言模型是如何发展而来的 (10分钟)
  3. GPT训练流程:大语言模型是如何训练的 (10分钟)

语言模型 Language Model

根据语言客观事实而进行的语言抽象数学建模,是一种对应关系。
语言模型与语言客观事实之间的关系,如同数学上的抽象直线与具体直线之间的关系。

语言模型发展简史

概率语言模型 Probabilistic Language Model

一说统计语言模型 Statistic Language Model
概率语言模型是一个基于概率的判别式模型,它的输入是一句话即多个单词组成的顺序序列,输出是这句话的概率,即这些单词的联合概率(joint probability)。

compute the probability of a sentence or sequence of words

概率语言模型是一个针对语言进行数学建模的概率模型它衡量了一句话,也即是多个单词的组成的顺序序列,在语料库(corpus)中实际存在的概率如果语料库无限大,那么这个概率扩展到这句话实际在自然语言中存在的概率

注:也可以理解为是也可以理解为它是真实正确的一句话的概率。

css
复制代码
I like eating apples. ✅
I prefer coke to soda. ✅
Enjoy basketball playing I. ❌

以上面3个句子为例,前2句是真实句子,在日常生活中可能会被用到,第3句则不是。

N-Gram语言模型

假定一个自然语言句子WWW由lll个单词组成,记为w_1,w_2,…,wlw_1,w_2,…,w_lw_1,w_2,…,wl​,那么:
P(W)=P(w1,w2,…wl)=p(w1)p(w2∣w1)p(w3∣(w1,w2))…p(wl∣w1,w2,…,wl−1)P(W) = P(w_1,w_2,…w_l)=p(w_1)p(w_2|w_1)p(w_3|(w_1,w_2))…p(w_l|w_1,w_2,…,w_{l-1})P(W)=P(w1​,w2​,…wl​)=p(w1​)p(w2​∣w1​)p(w3​∣(w1​,w2​))…p(wl​∣w1​,w2​,…,wl−1​)

条件概率公式:
P(B∣A)=P(AB)/P(A)P(B|A) = P(AB)/P(A)P(B∣A)=P(AB)/P(A) P(AB)=P(A)∗P(B∣A)P(AB) = P(A)*P(B|A)P(AB)=P(A)∗P(B∣A) P(ABC)=P(A)∗P(B∣A)∗∣P(C∣AB)P(ABC) = P(A)P(B|A)|P(C|AB)P(ABC)=P(A)∗P(B∣A)∗∣P(C∣AB)

这么计算概率有个问题:0<p(wi)<10<p(w_i)<10<p(wi​)<1 ,句子越长,参数空间越大,概率越接近0,数据稀疏严重。

引入马尔科夫假设(Markov Assumption),即下一个词的出现仅依赖于它前面的n−1n-1n−1个词,我们得到: p(wi∣w1,w2,…wi−1)=p(wi∣wi−n,…wi−1)p(w_i|w_1,w_2,…w_{i-1})=p(w_i|w_{i-n},…w_{i-1})p(wi​∣w1​,w2​,…wi−1​)=p(wi​∣wi−n​,…wi−1​)

马尔科夫性质:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。 这里引入马尔科夫假设,认为按从左到右读到的一句话有时间先后的概念,后面的单词仅依赖于它前面的n-1个单词。

n=n=n=表示下一个词的出现不依赖它前面的0个单词,即每个单词条件独立,称为unigram model P(w1,w2,…,wl)=∏i=1lP(wi)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i)P(w1​,w2​,…,wl​)=∏i=1l​P(wi​)

erlang
复制代码
# English
Questions make difference.
Questions make reality.
Questions begin a quest.

# 中文
我吃苹果。
我吃香蕉。
我喝可乐。

提问:
给定单词“我”,下一个单词是吃的概率是多少?下一个单字是喝的概率是多少?“我吃苹果”整句话的概率是多少?

n=2n=2n=2表示下一个词的出现只依赖它前面的1个词,称为bigram model P(w1,w2,…,wl)=∏i=1lP(wi∣wi−1)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i|w_{i-1})P(w1​,w2​,…,wl​)=∏i=1l​P(wi​∣wi−1​)

n=3n=3n=3表示下一个词的出现只依赖它前面的2个词,称为trigram model(常用) P(w1,w2,…,wl)=∏i=1lP(wi∣wi−2wi−1)P(w_1,w_2,…,w_l)=\prod_{i=1}^{l}P(w_i|w_{i-2}w_{i-1})P(w1​,w2​,…,wl​)=∏i=1l​P(wi​∣wi−2​wi−1​)

以此类推,我们的得到了给定nnn词,输出下一个词概率的语言模型: P(W)=∏i=1lp(wi∣wi−n+1i−1)P(W)=\prod_{i=1}{l}p(w_i|w_{i-n+1}{i-1})P(W)=∏i=1l​p(wi​∣wi−n+1i−1​),其中wijw_i^jwij​表示单词序列wi,w2,…,wjw_i,w_2,…,w_jwi​,w2​,…,wj​

构建语言模型可以使用最大似然估计(Maximum Likelihood Estimate)生成每一个条件概率,以unigram为例即: p(wi∣wi−1)=count(wi−1,wi)/count(wi−1)p(w_i|w_{i-1})=count(w_{i-1},w_i)/count(w_{i-1})p(wi​∣wi−1​)=count(wi−1​,wi​)/count(wi−1​)

计算概率语言模型公式的每一个组成元素,再将所有组成元素连乘,即得整个句子的概率。

提问(非常重要)
给定n个词,为语料库里面的所有单词依次计算概率,选概率最大的那个单词,作为n+1个单词输出,想想我们在做什么?

给定n+1个单词,求第n+2个单词,…,我们在做文本生成这就是语言模型最朴素的原理

这种用法下,我们将n-gram模型作为生成式模型使用。

N-gram语言模型实际效果并不好,能解决的实际问题非常有限,因而自然语言处理在概率语言模型阶段没有产生太大影响力。

神经网络语言模型 (NNLM)

随着深度学习的出现和崛起,我们有了一个强有力的工具:人工神经网络
神经网络语言模型即使用神经网络来进行语言建模我们将给定的n个单词作为输入,预测第n+1个单词作为输出,那么可以使用监督学习的方式通过标记数据集让神经网络学习到输入输出之间的映射关系。

NNLM

NNLM, Neural Network Language Model
A Neural Probabilistic Language Model (2000, 2003)

在这里插入图片描述

使用一个简单的神经网络来替代概率模型,模型的训练目标定义为给定 n n n个单词作为上下文,预测下一个单词是上下文中的第 i i i个单词,输入层 C C C表示一个共享的矩阵参数,随机初始化, C i C_i Ci​表示语料库中第 i i i个单词的特征向量。

提问(非常重要)
输入层的矩阵 C C C是什么?

答案:词向量

Word2Vec

Efficient Estimation of Word Representations in Vector Space(2013)
训练神经网络语言模型过程中,将神经网络的权重值作为词向量来使用

现在我们讲的词向量,其实是训练语言模型过程中的副产品
在这里插入图片描述

项目Value
CBOW (Continuous Bag-of-Words Model)Skip-gram
CBOW 的基本思想为以上下文作为输入,预测中间词。具体而言,设定一个上下文范围 N,输入为中间词的前 N 个单词和后 N 个单词,输出为中间词的概率分布,训练目标是真实中间词的概率最大(即argmax),也即1次分类过程。Skip-gram基本思想为以中间单词作为输入,预测上下文。具体而言,设定一个上下文范围 N,输入为中间词,输出为前 N 个单词和后 N 个单词的概率分布,训练目标是2N次概率输出,每次使得真实上下文词的概率最大(即2N次argmax),也即2N次分类过程。训练过程的参数规模非常巨大,有Hierarchical Softmax、Negative Sampling等方式降低计算复杂度,这里不再展开。

神经网络语言模型架构演进

上个小节介绍的NNLM和Word2Vec是一个DNN架构的神经网络语言模型,随着神经网络架构的演进,神经网络语言模型的架构也在不断演进:

大规模语言模型 Large Language Model (LLM

PaLM、LLaMA、GPT 3.5、GPT 4

大规模语言模型(Large Language Model, LLM) ,即参数规模非常大的神经网络语言模型,由神经网络语言模型随网络架构经长时间发展迭代而来,特点是参数规模达到一定量级(千万~亿)之后,出现了涌现能力,使得模型在各项NLP任务中取得重大突破,接近人类水平。

涌现能力一句话介绍就是模型参数达到一定量级(亿),能力突飞猛进,更多详情,可以参见:

LLM的涌现能力和Scaling
Emergent Abilities of Large Language Models
Scaling Laws for Neural Language Models

神经网络语言模型发展史

nlp中的预训练语言模型总结(单向模型、BERT系列模型、XLNet)

大模型时代之前 ->2019

预训练模型
NLP范式:Pre-training + fintuning 即预训练 + 下游任务精调

在这里插入图片描述

  1. Pre-training -> 训练通用语言模型 (相当于训练模型认识自然语言)
  2. Fine-tuning -> 训练下游NLP任务(相当于训练模型执行任务)

在这里插入图片描述
在这里插入图片描述

大模型时代 2019->

Pre-training + instruction fintuning + RLHF 即 预训练+指令精调+RLHF
下一节的GPT训练流程部分有详细描述

在这里插入图片描述
PaLM: arxiv.org/pdf/2204.02…
LLaMA: arxiv.org/pdf/2302.13…

清华提出了ChatGLM系列,并开源了其中的ChatGLM-6B和ChatGLM2-6B,在C-Eval上测试是目前最好的中文大模型:

cevalbenchmark.com/static/lead…

在这里插入图片描述

GPT发展史

如果我们单看GPT的话

在这里插入图片描述GPT-1: Improving Language Understanding by Generative Pre-Training
GPT-2: Language Models are Unsupervised Multitask Learners
GPT-3: Language Models are Few-Shot Learners

ChatGPT训练流程

图源:State of GPT - Microsoft Build

在这里插入图片描述
笔者翻译上图如下:
请添加图片描述

阶段子阶段目标备注
Pre-Training--------语言建模
Instruction Finetuning---------让模型能够理解自然语言指令
RLHFReward Modeling奖励建模,用来代替人工打分,降低标注成本奖励模型是用来建模强化学习的一个组件
RLHFReinforcement Learning强化学习建模,通过强化学习的方式训练模型输出奖励最大的文本,即更符合人类偏好的文本

强化学习建模过程如下:

  1. 将指令精调后的大语言模型作为Agent,agent的action即给定输入文本 i i i进入 S t a t e State State S i S_i Si​后的文本 O u t p u t i Output_i Outputi​。
  • 所有可能输入的文本构成了agent的状态空间
  • 所有可能输出的文本构成了agent的动作空间
  1. 奖励模型作为Environment对模型输出进行打分,将分数作为奖励。

注:
3. 二元分类说法并不准确,原始目标是希望对两个生成的回复进行打分即两者之间按更符合人类预期进行比较,胜出的回复应该得到更多的分数,亦即获得更大的奖励。或者也可以认为是在两者之间做分类,将更符合人类预期的筛选出来,但前者是更加准确的描述。
在这里插入图片描述
图源:cs224n-2023-lecture11-prompting-rlhf.pdf

  1. 奖励模型是用来实现强化学习的一个辅助模型,可以理解为强化学习建模中的环境(Environment)**

Key Takeaway

  1. 概率语言模型设计用于计算一个句话在自然语言中出现的概率
    n-gram语言模型是概率语言模型基于条件独立假设的简化,给定n个单词,它可以用来预测第n+1单词
  2. 语言建模(即训练语言模型的过程):给定n个单词,预测第n+1个单词是什么。神经网络语言模型使用神经网络进行语言建模。
  3. 神经网络语言模型随着自然语言处理领域不断提出新的网络架构逐步演进,transformer是其中一个标志性里程碑。基于transformer,Google和Open AI分别提出了BERT和GPT 1.0/2.0,开启了自然语言处理pretraining + fintuning(预训练语言模型)的时代,模型参数到达亿级别,大语言模型的雏形出现。
  4. 随着神经网络语言模型的参数量继续增大到一个千亿级别,开始表现出强大的涌现能力,辅以instruction fituning和RLHF的(大语言模型)训练流程改进,突破性的大语言模型ChatGPT出现,大模型时代来临。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于R语言lavaan结构方程模型(SEM)实践技术应用

原文链接&#xff1a;基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;实践技术应用https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd…

文章自动生成器

1.前言 最近开始想写一些东西&#xff0c;脑子里也有不少想法&#xff0c;但是自己写又比较费时间&#xff0c;而且还要排版&#xff0c;精修&#xff0c;刚开始写的字数甚少&#xff0c;想法也是断断续续&#xff0c;不连贯&#xff0c;本想放弃&#xff0c;但是想到放弃就太…

HarmonyOS实战开发-如何实现跨应用数据共享实例。

介绍 本示例实现了一个跨应用数据共享实例&#xff0c;分为联系人&#xff08;数据提供方&#xff09;和联系人助手&#xff08;数据使用方&#xff09;两部分&#xff1a;联系人支持联系人数据的增、删、改、查等功能&#xff1b;联系人助手支持同步联系人数据&#xff0c;当…

15.队列集

1.简介 在使用队列进行任务之间的“沟通交流”时&#xff0c;一个队列只允许任务间传递的消息为同一种数据类型&#xff0c;如果需要在任务间传递不同数据类型的消息时&#xff0c;那么就可以使用队列集。FreeRTOS提供的队列集功能可以对多个队列进行“监听”&#xff0c;只要…

【数据结构与算法】—— 二叉树

目录 一、树 1、初识树 2、树的一些概念 3、树的表示形式 二、二叉树 1、初识二叉树 2、两种特殊的二叉树 3、二叉树的性质 4、二叉树的遍历 5、实现一棵二叉树 6、二叉树题目&#xff08;没代码的后面会给补上&#xff09; 一、树 1、初识树 &#xff08;1&…

从人机界面设计黄金三法则视角看 ChatGPT 的界面设计的“好”与“坏”

热门文章推荐&#xff1a; &#xff08;1&#xff09;《为什么很多人工作 3 年 却只有 1 年经验&#xff1f;》&#xff08;2&#xff09;《一文掌握大模型提示词技巧&#xff1a;从战略到战术巧》&#xff08;3&#xff09;《AI 时代&#xff0c;程序员的出路在何方&#xff1…

破晓数据新纪元:隐语隐私计算,携手共创安全智能的未来生态

1.业务背景&#xff1a;安全核对产生的土壤 隐语隐私计算在安全核对业务背景下的应用&#xff0c;主要聚焦于解决企业在数据交换和分析过程中面临的隐私保护问题。 在许多行业中&#xff0c;特别是在金融、医疗、政务等领域&#xff0c;数据的安全核对至关重要&#xff0c;例如…

三流大学毕业,物流专业转行自述:“从月薪4K到现在月入2W+,我做到了哪些?”

我是25岁转行学python的。说实在&#xff0c;转行就是奔着挣钱去的。希望我的经历可以给想转行的朋友带来一点启发和借鉴。 先简单介绍下个人背景&#xff0c;三流大学毕业&#xff0c;物流专业&#xff0c;学习能力一般&#xff0c;没啥特别技能&#xff0c;反正就很普通的一…

《springcloud alibaba》 四 seata安装以及使用

目录 准备调整db配置准备创建数据库 seata配置nacos配置confi.txt下载向nacos推送配置的脚本 启动seata新建项目order-seata项目 订单项目数据库脚本pom.xmlapplication.yml启动类实体类dao类service类controller类feign类mapper类 stock-seata 库存项目数据库脚本pom.xmlappli…

python代码使用过程中使用快捷键注释时报错

1.代码 2.代码报错 3.代码注释后的结果 4. 原因

动态输出n位小数——满满都是坑!

【题目描述】 输入正整数a&#xff0c;b&#xff0c;c&#xff0c;输出a/b的小数形式&#xff0c;精确到小数点后c位。a,b ≤10^6 &#xff0c;c≤100。输入包含多组数据&#xff0c;结束标记为a&#xff1d;b&#xff1d;c&#xff1d;0。 【样例输入】 1 6 4 0 0 0 【样…

HIDS是什么,如何保护主机系统

随着网络安全攻防对抗的日趋激烈&#xff0c;主机当前企业和组织的安全运营工作面临的挑战越来越突出&#xff0c;外网防护的同时&#xff0c;内网主机安全防护也越来越重要。 HIDS(Host-based Intrusion Detection System)&#xff0c;是基于主机型入侵检测系统的简称。作为计…

30万奖金谁能瓜分?OurBMC开源大赛决赛入围名单公示

首届开放原子开源大赛基础软件赛道自今年 1 月开启报名以来&#xff0c;吸引了全国各地 BMC 技术爱好者的广泛关注和踊跃报名。该赛事由开放原子开源基金会牵头&#xff0c; OurBMC 社区及理事长单位飞腾信息技术有限公司联合承办&#xff0c;以 “基于 BMC 技术的服务器故障诊…

抖音电商罗盘品牌人群运营策略指南

【干货资料持续更新&#xff0c;以防走丢】 抖音电商罗盘品牌人群运营策略指南 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 抖音运营资料合集&#xff08;完整资料包含以下内容&#xff09; 目录 品牌人群运营策略&#xff0c;旨在帮助品牌通过精细化运营提…

雅虎套餐发稿独家技巧,让你的媒体宣发效率翻倍

在如今的信息时代&#xff0c;媒体宣发是每个品牌和公司都不可或缺的一部分。而雅虎套餐发稿&#xff0c;作为其中的一种方式&#xff0c;更是受到了许多人的青睐。那么&#xff0c;如何才能充分利用雅虎套餐发稿的功能&#xff0c;让你的媒体宣发效率翻倍呢&#xff1f;以下就…

Java 解决 Process 执行命令行命令报【CreateProcess error=2, 系统找不到指定的文件。】错误问题

目录 问题 问题代码 解决方案 判断操作系统 问题 使用 Process 执行命令行命令时&#xff0c;报 CreateProcess error2, 系统找不到指定的文件。但明明指定的文件是存在的。而且这种错误只在 IDEA 中运行会报错&#xff0c;打包后直接 java -jar 运行就能正常运行&#xf…

【绩效管理】帮助零售企业建立分层分类绩效考核体系项目纪实

购物中心张经理评价&#xff1a;“员工的绩效管理一直是困扰我公司的难题&#xff0c;我们只懂得怎么经营&#xff0c;至于怎么做人力资源管理&#xff0c;真是一点都不懂。这次华恒智信为我们提供的服务对我们的帮助很大。基于企业实际调研情况&#xff0c;华恒智信专家明确指…

高维解码|Redis 收紧许可证!开源软件公司如何在云时代生存?

最近&#xff0c;Redis 从开放源代码的 BSD 许可证过渡到了更加限制性的 Server Side Public License (SSPLv1)。一石激起千层浪&#xff0c;Redis 的这一举动&#xff0c;不仅分化了前 Redis 维护者&#xff0c;也再次引发业界对于“开源项目可持续性以及许可证决策对其社区的…

easyExcel - 按模板导出

目录 前言一、情景介绍二、文档介绍2.1 读取模板2.2 填充模板 三、代码示例3.1 案例一&#xff1a;工资表3.2 案例二&#xff1a;报价单 四、我所遇到的问题 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如…

无尽加班何时休--状态模式

1.1 加班&#xff0c;又是加班&#xff01; 公司的项目很急&#xff0c;所以要求加班。经理把每个人每天的工作都排得满满的&#xff0c;说做完就可以回家&#xff0c;但是没有任何一个人可以在下班前完成的&#xff0c;基本都得加班&#xff0c;这就等于是自愿加班。我走时还有…