【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型

GLM-130B:一个开源双语预训练语言模型
《GLM-130B: An open bilingual pre-trained model》

论文:https://arxiv.org/pdf/2210.02414.pdf

相关博客
【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)
【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型
【自然语言处理】【大模型】DeepMind的大模型Gopher
【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言模型
【自然语言处理】【大模型】大语言模型BLOOM推理工具测试
【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型
【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍
【自然语言处理】【大模型】BLOOM:一个176B参数且可开放获取的多语言模型
【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型
【自然语言处理】【chatGPT系列】大语言模型可以自我改进
【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答
【自然语言处理】【ChatGPT系列】FLAN:微调语言模型是Zero-Shot学习器
【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里?
【自然语言处理】【ChatGPT系列】大模型的涌现能力

一、简介

在这里插入图片描述

​ 大语言模型(LLMs),特别是参数超过100B的模型呈现出诱人的scaling laws,其会突然涌现出zero-shot和few-shot能力。具有175B参数的GPT-3率先对100B尺度的LLM进行了研究:在各种基准上,使用32个标注示例可以显著超越全监督的BERT-Large模型。然而,GPT-3本身以及如何训练仍然是无法公开获得的。训练出如此规模的高质量LLM,并对每个人分享模型和训练过程非常的有价值。

​ 我们的目标是预训练一个开源且高准确率的100B模型。在我们尝试的过程中,我们逐渐意识到相比于训练10B的模型,训练一个100B以上的稠密LLM面临着许多意想不到的技术和工程的挑战,例如预训练效率、稳定性和收敛等。类似的困难也发生在OPT-175B和BLOOM-176B的训练中,进一步证明了GPT-3作为先驱研究的重要性。

​ 在本文中,我们介绍了100B规模模型GLM-130B的预训练,包括工程上的努力、模型设计选择、为了效率和稳定性的训练策略、用于降低推理成本的量化。因为人们已经普遍意识到,枚举训练100B规模LLM的所有可能设计在计算资源上无法负担,因此我们不仅程序训练GLM-130B成功的部分,也介绍许多失败的选择来吸取经验。训练稳定性是这种规模模型能够训练成功的关键因素。不同于OPT-175B中的人工调整学习率,以及BLOOM-176B中使用embedding norm,我们实验了各种选项并发现embedding梯度shrink策略可以显著稳定GLM-130B的训练。

​ 具体来说,GLM-130B是一个具有1300亿参数的双语双向稠密模型,其在96个NVIDIA DGX-100(8*40G)节点的集群上用400B的token进行了预训练,训练从2022年5月6日至2022年7月3日。相比于使用GPT风格的架构,我们采用General Language Model(GLM)算法来利用双向注意力优势和自回归空白填充目标函数。上表1比较了GLM-130B、GPT-3、OPT-175B、BLOOM-176B和PaLM540B。

​ 总的来说,概念独立性和工程上的努力使得GLM-130B在广泛的基准上展现出了超过GPT-3的性能,在许多例子中也超过了PaLM540B,而OPT-175B和BLOOM-176B并没有展现出超越GPT-3的性能。对于zero-shot的表现,在LAMBADA上GLM-130B优于GPT-3 175B(+5.0%)、OPT-175B(+6.5%)和BLOOM-176B(+13.0%),并在BIG-Bench-Lite上优于GPT-3三倍。对于5-shot MMLU任务,其优于GPT-3 175B(+0.9%)和BLOOM-176B(+12.7%)。由于一个包含中文的双语LLM,其显著的优于ERNIE TITAN 3.0 260B,在7 zero-shot CLUE数据集上(+24.26%),以及5 zero-shot FewCLUE(+12.75%)。重要的是,GLM-130B作为一个开放模型,相比于其他100B模型,其偏见和毒性明显小很多。

​ 最后,我们设计GLM-130B的目标是让更多的人进行100B LLM的研究。首先,相比于175B+参数的OPT和BLOOM,130B尺寸能够在单台A100(8*40G)服务器上进行推理。其次,为了进一步减低对GPU的需要,我们在不使用量化感知训练的情况下将GLM-130B量化至INT4的精度,而OPT和BLOOM仅能够达到INT8。由于GLM-130B架构的独特性,GLM-130B的INT4量化引入了可以忽略不计的性能下降,例如LAMBADA的-0.74%甚至在MMLU上+0.05%,使其仍然优于未压缩的GPT-3。这使得GLM-130B在保证性能的情况下,在4xRTX3090(24G)或者8xRTX2080 Ti(11G)上进行快速推理,迄今为止100B LLM所需的最实惠GPU。

二、GLM-130B的设计选择

1. GLM-130B的架构

​ **GLM作为主干。**大多数近期的100B规模的LLM,例如GPT-3、PaLM、OPT和BLOOM遵循GPT风格的架构,decoder-only自回归语言模型。在GLM-130B中,我们尝试利用双向GLM的潜力作为主干网络。

​ GLM是一种基于transformer的语言模型,利用自回归空白填充作为训练目标。简单来说,对于文本序列 x = [ x 1 , … , x n ] \textbf{x}=[x_1,\dots,x_n] x=[x1,,xn],从其中采样文本片段 { s 1 , … , s m } \{\textbf{s}_1,\dots,\textbf{s}_m\} {s1,,sm},每个 s i \textbf{s}_i si表示连续tokens片段 [ s i , 1 , … , s i , l i ] [s_{i,1},\dots,s_{i,l_i}] [si,1,,si,li]并被替换为单个mask token,从而形成 x c o r r u p t \textbf{x}_{corrupt} xcorrupt。模型被要求使用自回归的方式进行恢复。为了允许被破坏的片段间交互,彼此之间的可见性由一个随机采样的排列决定。预训练目标定义为:
L = max ⁡ θ E z ∼ Z m [ ∑ i = 1 m log ⁡ ∏ j = 1 l i p ( s i , j ∣ x c o r r u p t , s z < i , s i , < j ) ] \mathcal{L}=\max_{\theta}\mathbb{E}_{\textbf{z}\sim Z_m}\Big[\sum_{i=1}^m\log\prod_{j=1}^{l_i} p(s_{i,j}|\textbf{x}_{corrupt},\textbf{s}_{z_{<i}},\textbf{s}_{i,<j})\Big] L=θmaxEzZm[i=1mlogj=1lip(si,jxcorrupt,sz<i,si,<j)]
其中, Z m Z_m Zm表现序列所有排列的集合, s z < i \textbf{s}_{z_{<i}} sz<i表示 [ s z 1 , … , s z i − 1 ] [\textbf{s}_{z_1},\dots,\textbf{s}_{z_i-1}] [sz1,,szi1]

​ GLM在unmaksed上下文上的双向注意力机制,使GLM-130B与使用单向注意力机制的GPT风格LLM。为了同时支持理解和生成,其混合了两种破坏目标函数,每个由特殊的mask token表示:

  • [MASK]:句子中的短空白,其长度被添加至输入的某一个部分;
  • [gMASK]:句尾随机长度的长空格,并提供前缀上下文;

​ 概念上来将,具有双向注意力的空白填充目标函数要比GPT风格的模型更有效的压缩上下文:当使用[MASK]时,GLM-130B的行为同BERT和T5;当使用[gMASK]时,GLM-130B的行为类似于PrefixLM。

​ 经验上来说,GLM-130B在zero-shot LAMBADA上实现了创记录的80.2%准确率,优于GPT-3和PaLM。通过设置注意力mask,GLM-130B单向变体可以与GPT-3和OPT-175B媲美。
在这里插入图片描述

Layer Normalization. 训练LLM的主要挑战是训练不稳定。LN的合适选择有助于稳定LLM的训练。我们对现有的实践进行了实验,Pre-LN、Post-LN和Sandwich-LN,这些都不适合稳定GLM-130B。

​ 我们后面的研究重点放在了Post-LN上,因为其在下游任务上效果很好,虽然其在GLM-130B上不稳定。幸运地是,新提出的DeepNorm产生了很好的训练稳定性。具体来说,给定GLM-130B层的数量N,我们采用
DeepNorm( x ) = LayerNorm ( α ⋅ x + Network ( x ) ) \text{DeepNorm(\textbf{x})}=\text{LayerNorm}(\alpha\cdot\textbf{x}+\text{Network}(\textbf{x})) DeepNorm(x)=LayerNorm(αx+Network(x))
其中, α = ( 2 N ) 1 2 \alpha=(2N)^{\frac{1}{2}} α=(2N)21。并在ffnv_projout_proj上应用了缩放因子为 ( 2 N ) − 1 2 (2N)^{-\frac{1}{2}} (2N)21的Xavier初始化。此外,所有的偏差项被初始化为0。上图3展示了GLM-130B的训练稳定性。

​ 位置编码和FFN。我们针对训练稳定性和下游表现,测试了位置编码(PE)和FFN的不同选项。GLM-130B中的位置编码选择了Rotary Positional Encding(RoPE),而不是ALiBi。为了改善Transformer中的FFN,我们选择GLU和GeLU作为激活的替代。

2. GLM-130的预训练设置

​ 受最近工作的启发,GLM-130B预训练目标不仅包含了自监督的GLM自回归空白填充,而且对一小部分token进行了多任务学习。这有助于改善下游的zero-shot表现。

​ **自监督空白填充(97%tokens)。**回想一下,GLM-130B在这个任务中同时使用了[MASK]和[gMASK]。具体来说,[MASK]用于遮蔽训练token30%的连续片段用于空白填充。片段的长度遵循Poisson分布( λ = 3 \lambda=3 λ=3),并且添加至输入的15%。对于其他70%的tokens,每个序列的前缀被保留为上下文,[gMASK]被用于遮蔽余下的部分。遮蔽的长度从均匀分布中采样。预训练数据包括1.2T Pile英文语料、1.0T中文Wudao语料和从网络上爬取的250G中文语料(包括在线论坛、百科和问答)。

​ 多任务Instruction预训练(MIP,5%的token)。T5和ExT5建议在预训练中进行多任务学习有助于微调,因此我们提出在GLM-130B预训练中包含各种语言理解、生成和信息抽取的instruction prompted数据集。

​ 相比于近期利用多任务prompted微调来改善zero-shot任务的迁移, MIP仅考虑5%的token且设置在预训练阶段来防止破坏LLM的其他一般性能力,例如:无条件自由生成。具体来说,我们包括了74个prompted数据集。

3. 平台感知的并行策略和模型配置

​ GLM-130B在96个DGX-A100 GPU(8x40G)的集群上训练了60天。目标是尽可能多的训练tokens,近期的研究表明大多数的LLM是训练不足的。

3D并行策略。数据并行和张量并行是训练10亿级参数模型的标准实践。为了进一步处理巨大的GPU显存需求,以及在节点之间进行张量并行导致的整体GPU利用率下降。我们合并了流水线模型并行,从而形成3D并行的策略。

​ 流水线并行将模型划分为每个并行组的顺序阶段,并进一步最小化由流水线引入的“气泡”,我们利用由DeepSpeed实现的PipeDream-Flush来训练GLM-130B,并使用全局batch size为4224来检索时间和GPU显存的浪费。我们采用4路张量并行和8路管道并行,达到135 TFLOP/s perGPU(40G)。

GLM-130B配置。我们的目标是确保100B的LLM能够以FP16精度运行在单个DGX-A100上。基于我们从GPT-3中获得的hidden state维度12288,得到的模型尺寸必须不大于130B参数。为了最大化GPU利用率,我们基于平台和对应的并行策略来配置模型。为了避免由于两端额外的word embedding导致中间阶段的显存利用率不足,我们从中移除一层来平衡流水线划分,使得GLM-130B中有 9 × 8 − 2 = 70 9\times 8-2=70 9×82=70的transformer层。

​ 在对集群的60天访问中,我们以固定每个样本长度为2048的情况下,在400B的tokens上训练了GLM-130B。对于[gMASK]训练目标,我们使用2048 tokens的上下文窗口。对于[MASK]和多任务目标,我们使用512的上下文窗口,并将4个样本拼接为2048长度。我们在前2.5%的样本上将batch size从192 warm-up至4224。我们使用AdamW作为优化器, β 1 \beta_1 β1 β 2 \beta_2 β2设置为0.9和0.95,权重衰减值为0.1。在前0.5%的样本上,我们将学习率从 1 0 − 7 10^{-7} 107 warm up至 8 × 1 0 − 5 8\times 10^{-5} 8×105,然后通过 10 × 10\times 10× consine调度进行衰减。我们使用的dropout率为0.1,裁剪梯度的值使用1.0。

三、GLM-130B的训练稳定性

​ 训练稳定性是GLM-130B质量的绝对因素,这很大程度上受到其通过的token数量影响。因此,考虑到计算使用的限制,对于浮点数(FP)格式必须进行效率和稳定性的权衡:低精度浮点数格式能够改善计算效率,但是可能会导致上溢和下溢问题,从而导致训练崩溃。

​ **混合精度。**我们遵循混合精度的常见实践,即FP16用于前、后向传播,FP32用于优化器状态和主要的权重,从而减少GPU显存使用并改善训练效率。类似于OPT-175B和BLOOM-176B,由于这种选择导致训练GLM-130B面临频繁的loss峰值,并且随着训练的进行会变得越来越频繁。与精度相关的峰值通常没有明确的原因:一些会自己恢复;另一些则会伴随着突然飙升的梯度范数,最终loss出现峰值或者NaN。

​ OPT-175B通过人工跳过数据和调整超参数来解决这个问题;BLOOM-176B则是通过embedding norm技术。我们花费了数个月来研究峰值并意识到当transformer变大时会有一些问题:

​ 首先,若使用Pre-LN,transformer主要分支的值尺寸在更深的层可能非常大。在GLM-130B中使用基于Post-LN的DeepNorm来解决,其会使得值的尺度总是有边界的。

​ 其次,随着模型规模的增大,注意力分数变得非常大以至于超过了FP16的范围。在LLM中没有什么选项来克服这个问题。在BLOOM-176B中,使用BF16格式来替换FP16,由于其在NVIDIA Ampere GPUs上有更加广的范围。但是由于BF16在梯度累加中转换为FP32,导致在我们的实验中比FP16多消耗约15%的显存,更重要的是其不支持其次的GPU平台。另一个来自BLOOM-176B的选择是应用embedding norm,但是对模型的表现有损坏。

Embedding层梯度收缩。我们的经验研究表明,梯度范数(gradient norm)可以作为训练崩溃的信息指标。具体来说,我们发现训练崩溃通常滞后于梯度范数峰值几个训练steps。这种峰值通常是由embedding层的异常梯度导致的,因为我们观察到在GLM-130B早期训练阶段,其梯度范数比其他层高几个数量级。此外,在训练早期其波动很大。在视觉模型中处理这个问题是通过固定patch投影层。不幸的是,我们不能固定语言模型中的embedding层。

​ 最终,我们发现在embedding层的梯度收缩(gradient shrink)有助于克服loss峰值,并且稳定GLM-130B的训练。这最早是在多模态transformer模型CogView中使用。具体来说,令 α \alpha α是收缩因子,可以通过下面的方式来轻易实现
word_embedding = word_embedding × α + word_embedding.detach() × ( 1 − α ) \text{word\_embedding}=\text{word\_embedding}\times\alpha+\text{word\_embedding.detach()}\times(1-\alpha) word_embedding=word_embedding×α+word_embedding.detach()×(1α)
根据经验来看,将设置 α = 0.1 \alpha=0.1 α=0.1有助于避免大多数的峰值,速度的损失可以忽略不计。

​ 事实上,最早GLM-130B训练仅在后期经历了3次loss发散,由于硬件故障而失败了无数次。

四、在RTX 2080 Ti上推理GLM-130B

在这里插入图片描述

​ GLM-130B的主要目标是在不减低效率和有效性的情况下,降低访问100B规模LLM的硬件需求。

​ 130B的模型尺寸可以使得在单个A100(40G*8)机器上运行完整的GLM-130B,而不是像OPT-175B和BLOOM-176B那样运行在高端A100(80G*8)机器上。为了加速GLM-130B的推理,我们也利用FasterTransformer来实现GLM-130B。相比于Huggingface中Pytorch实现的BLOOM-176B,GLM-130B在相同的单A100服务器上解码推理快7-8.4倍。

用于RTX 3090/2080的INT4量化。为了进一步支持流行的GPU,在保存性能优势的前提下尽可能的压缩GLM-130B,特别是通过量化。

​ 通常的实践是将模型权重和激活都量化为INT8。然而,我们的分析表明LLM的激活可能包含极端异常值。同时,在OPT-175B和BLOOM-176B中也发现了涌现的异常值,其仅影响0.1%的特征维度,因此可以通过矩阵乘法分解来解决问题。

​ 不同的是,GLM-130B的激活中存在约30%的异常值,使得上述的技术效率大大降低。因此,我们决定专注在良好模型权重,而保持模型激活为FP16精度。我们简单的使用训练后absmax量化,在运行时权重动态转换为FP16精度,引入了少量的计算开销,但是大幅度的降低了GPE显存的使用。

​ 令人兴奋的是,GLM-130B达到了INT4全量量化,而现有成功案例仅实现了INT8级别。相比于INT8,INT4版本有助于额外节约所需显存的一半至70GB,这样就允许GLM-130B在4 x RTX 3090 Ti(24)或者8 x RTX 2080 Ti(11G)上进行推理。上表2左侧表明,没有使用任何的后训练,INT4版本的GLML-130B几乎没有性能的下降,在常见基准上维持对GPT-3的优势。

在这里插入图片描述

GLM INT4全量量化scaling law。上图5右侧展示了性能随模型尺寸增加的趋势,表明GLM INT4权重量化性能存在scaling law。我们评测了GLM中这种唯一的潜在机制。上图5左侧绘制了权重值分布,其表明了对量化质量的直接影响。具体来说,值分布根据广泛的的线性层需要更大的bins进行量化,否则会导致更多的精度损失。值广泛分布的attn-densew2矩阵解释了BLOOM的INT4量化失败原因。相反地,GLM相比于类似尺寸的GPT,有着更窄的值分布。随着GLM模型尺寸的增大,INT4和FP16版本的差距进一步减小。

五、结果

​ 我们遵循GPT-3和PaLM等LLM的常用设置来评估GLM-130B。GLM-130B除了在英文上进行评估,作为双语模型也会在中文基准上进行评估。

GLM-130B中Zero-shot Learning范围讨论。因为GLM-130B已经使用MIP进行训练,这里明确了zero-shot评估的范围。事实上,“zero-shot”似乎有着争议性的解释,在社区没有达成共识。我们遵循一个重要的相关综述,其中“zero-shot learning设置在测试时,其目标是为测试图像分配一个未见过的类别标签”,其中涉及到未见过的类别标签是关键。因此,我们得出选择GLM-130B zero-shot数据集的准则是:

  • 英语:1) 对于那些带有固定标签的任务(如自然语言推断),不应该对此类任务中的任务数据集进行评估;2) 对于没有固定标签的任务(问答、主题分类):只有与MIP有明确领域迁移的数据集被考虑;
  • 中文:所有数据集多可以被评估,因为存在zero-shot跨语言迁移;

​ **过滤测试数据集。**遵循先前工作的实践和上面提及的准则,我们过滤并避免报告可能受到污染的数据集评估结果。对于LAMBADA和CLUE,我们发现在13-gram设定下是最小的覆盖。Pile、MMLU和BIG-bench要么被留出一部分,或者在爬取语料之后发布。

1. 语言建模

在这里插入图片描述

LAMBADA。LAMBADA是测试最后一个单词语言建模能力的数据集。GLM-130B使用双向注意力实现了80.2的zero-shot准确率,在LAMBADA上实现了新的记录。

Pile。Pile的测试集中包含了一系列的语义建模准则。与GPT-3和Jurassic-1相比,GLM-130B在18个加权BPB的共享测试集上实现了最好的表现,证明了其强大的语义能力。

2. 大规模多任务语言理解(MMLU)

在这里插入图片描述

​ MMLU是一个包含了57个多项选择问答任务的多样性基准,主要是从高中水平至专家水平的人类知识。其是在Pile爬取之后发布的,是一个LLM few-shot learning的理想测试基准。GPT-3的结果来自于MMLU,BLOOM-176B则是使用与GLM-130B相同的prompts来测试。

​ 如上图6所示,在见过大约300B的tokens后,GLM-130B在MMLU上的few-shot(5-shot)性能接近GPT-3(43.9)。随着训练的进行其会继续的上升,当训练结束是实现准确率44.8。这与观察结果一致,大多数现有的LLM远远没有得到充分的训练。

3. BIG-bench

​ BIG-bench对涉及模型推理、知识和常识能力的挑战性任务上进行基准测试。对于LLM来说,在150个任务上进行评估是耗时的,因此我们报告了BIE-bench-list,一个官方包含24个任务的子集合。观察上图7和表4,GLM-130B在zero-shot上优于GPT-3 175B,甚至是PaLM 540B。这可能要归功于GLM-130B的双向上下文注意力和MIP,其被证明能够在未见过的任务上改善zero-shot结果。随着shot的数量增加,GLM-130B的效果持续增加,并依旧领先于GPT-3。

限制与讨论。在上面的实验中,我们观察到GLM-130B随着few-shot样本增加而改善的性能没有GPT-3显著。这里从直觉上尝试理解这个现象。

​ 首先,GLM-130B的双向本质能够带来很强的zero-shot效果,使其能够接近相同规模的few-shot上界。其次,这可以是因为现有的MI范式缺陷,其仅涉及在训练中的zero-shot预测并导致GLM-130B偏向于更强的zero-shot学习能力,但是相对较弱的in-context few-shot效果。为了纠正这个偏差,我们提出的潜在解决方案是,若我们有机会为GLM-130B继续预训练,那么MIP会使用不同in-context样本的各种shot,而不仅仅是zero-shot样本。

​ 最后,尽管采用了与GPT-3相同的GPT架构,PaLM 540B在in-context learning中的few-shot相对增长要比GPT-3显著的多。我们推测,这种性能增长的进一步加速是PaLM高质量且多样化的私有训练语料导致的。

4. 中文语言理解评估(CLUE)

在这里插入图片描述
​ 我们在中文NLP基准CLUE和FewCLUE上评估GLM-130B的中文zero-shot效果。注意,我们在MIP中没有包含任何的中文下游任务。到目前为止,我们已经完成了两个基准的部分测试,包括7个CLUE和5个FewCLUE数据集。我们将GLM-130B与现有最大的中文单语模型260B的ERNIE Titan 3.0进行了比较。我们准确其设置来报告开发集上的zero-shot结果。GLM-130B在12个任务上优于ERNIE Titan 3.0。有趣的是,GLM-130B在两个抽象MRC数据集上比ERNIE至少好260%,可能是由于GLM-130B的预训练目标天然与抽象MRC形式契合。

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

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

相关文章

ChatGLM-6B一键安装,马上使用(windows)!!

产品特点 双语&#xff1a; 同时支持中文和英文。 高精度&#xff08;英文&#xff09;&#xff1a; 在公开的英文自然语言榜单 LAMBADA、MMLU 和 Big-bench-lite 上优于 GPT-3 175B&#xff08;API: davinci&#xff0c;基座模型&#xff09;、OPT-175B 和 BLOOM-176B。 高…

chatgpt赋能Python-python_cnocr

Python CNOCR&#xff1a;基于Python的OCR库 随着数字化时代的到来&#xff0c;越来越多的文件需要被数字化转换。这些文件包括扫描版的文档、书籍、发票等。这时OCR&#xff08;Optical Character Recognition&#xff09;技术就被广泛应用。OCR可以通过识别出图片中的字符&a…

Android TensorFlowLite sdk接入详细记录

前言 最近在研究ML的相关内容&#xff0c;开始在Android应用中接入TensorFlowLite。花了不少时间&#xff0c;添了不少坑&#xff0c;如果是裸的空项目接入还好&#xff0c;如果是现有的线上产品的接入&#xff0c;还是会有不少问题需要处理的&#xff0c;而且过程中&#xff0…

阿里云ECS云服务器搭建Docker,nginx 环境服务

步骤一&#xff1a;安装Docker CE Docker有两个分支版本&#xff1a;Docker CE和Docker EE&#xff0c;即社区版和企业版&#xff0c;本教程基于CentOS 7安装Docker CE 1 首先安装Docker 的依赖库 yum install -y yum-utils device-mapper-persistent-data lvm22 添加Docker C…

typora+picgo+阿里云配置

typorapicgo阿里云配置 typorapicgo阿里云配置1.typora2.picgo阿里云(1)端口配置(与typora的一样)(2)阿里云配置1.配置后阿里云:2.密钥管理:3.查看密钥:4.picgo配置阿里云5.typora测试picgo连接 1.typora 用的破解版 2.picgo阿里云 不知道为什么,刚开始用的picgo是2.2.2一直…

Vue打包部署到阿里云服务器

来自 <https://blog.csdn.net/u014225032/article/details/125283332> 来自 <https://blog.csdn.net/w20101310/article/details/78835668?ops_request_misc%257B%2522request%255Fid%2522%253A%2522168296374616800222874174%2522%252C%2522scm%2522%253A%25222014…

阿里云服务器安装并配置nginx代理转发请求

阿里云服务器安装并配置nginx代理转发请求 下载nginx安装包&#xff0c;或者上传nginx安装包&#xff0c;此处我用的是Xmanager工具从本地上传了一个nginx安装包。 安装依赖库 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel yum -y install gcc …

阿里云ECS部署chat-web代理访问

1、ECS服务器申请 使用阿里云账号购买了一个美国&#xff08;弗吉尼亚&#xff09;的2C/2G的CentOS7.9 x64服务器。 2、系统版本升级 CentOS7.9默认的python和pip版本都是3.6的&#xff0c;需要升级到3.9以上&#xff0c;升级步骤百度&#xff0c;大致如下&#xff1a; wget…

2022年互联网直播行业研究报告

第一章 行业概况 自2000年后&#xff0c;随着网络时代到来&#xff0c;普及的电视直播逐渐被互联网直播取代&#xff0c;成为“直播”的代名词。近年来&#xff0c;随着互联网的高速发展与网民规模的持续增加&#xff0c;网络直播产业不断发展&#xff0c;进入更多人的视野&am…

直播软件技术介绍,能帮到你

我们公司开发的一套直播系统&#xff0c;完全自主开发的&#xff0c;是给其他公司开发的&#xff0c;外包项目。没有使用第三方的SDK。公司不做了&#xff0c;就想着把这个项目源码分享给爱技术的人。源码分为3个部分&#xff1a;服务端源码&#xff08;完整、可以成功部署&…

行业分析| 为什么互动直播可以发展如此迅速?

我国网络直播行业始于2005年&#xff0c;在2015-2016年进入爆发期。期间&#xff0c;受到政策和资本双重压力&#xff0c;直播行业迎来洗牌&#xff0c;期间&#xff0c;直播战场由PC端转向移动端&#xff0c;同时&#xff0c;各行业开始青睐直播形式&#xff0c;直播行业也由单…

直播行业迎来多元化发展

随着直播的内容表达形式逐渐被更多人所接受&#xff0c;直播渗透率不断加深&#xff0c;已经与娱乐、学习、购物、工作等越来越多场景融合在一起。 在互联网发展的下半场&#xff0c;随着头部互联网平台的布局与垂直领域应用的发展&#xff0c;直播行业将迎来更多元化的应用场…

百度内容审核实现

百度内容审核平台 Baidu-AIP的java-sdk的guithub 流程 打开百度内容审核平台 一、创建AppID、API Key及Secret Key 接入指南&#xff08;获取百度内容审核需要用到的AppID、API Key及Secret Key&#xff09; 创建后就可以得到AppID、API Key及Secret Key 二、构建百度…

【微信小程序】如何上传、提交审核、发布操作

【地址】https://jingyan.baidu.com/article/456c463b3bcd950a5831449f.html 微信小程序对个人开发者也提供无认证发布上传、提交审核、提交发布等&#xff0c;个人可以开发一些小程序发布&#xff0c;发布成功后&#xff0c;微信中也可以搜索到&#xff0c;下面小编教教大家如…

2020年5月-苹果审核新规则

自本年五月&#xff08;2020年&#xff09;起&#xff0c;很多开发者陆续收到一种全新的邮件&#xff0c;邮件内容如下&#xff0c;虽说这是APP被拒了&#xff0c;但是又没说明确的违规条款&#xff0c;这也是继2019年账号审查之后的又一大幺蛾子&#xff01;苹果只说需要更多的…

JAVA深度学习文本审核_内容审核-文本

内容审核-文本Moderation(Text)&#xff0c;基于华为自研的深度学习和内容审核模型&#xff0c;可自动识别出文本中出现的涉政、色情、广告、辱骂、灌水等内容&#xff0c;帮助客户降低业务违规风险&#xff0c;净化网络环境&#xff0c;提升用户体验 应用场景 电商评论筛查 检…

twitter推文采集案例

案例内容:twitter的推文采集。 通过游客身份获取twitter中用户的推文。 用户推文:只能翻22页,1页45条左右。 每个用户最多获取最近900条推文 (登录后),不登录区别也不大。 UserByScreenName 一般只有用户名的时候,需要先通过UserByScreenName接口获取 rest_id 用于后…

微信小程序发布审核基本步骤(带图)

本文作为烂笔头记录或小白感性认识或为客户做基础说明&#xff08;复杂性时间等&#xff09;大佬请勿费神。 微信小程序源码编辑与调试略、微信小程序注册略。 一、安装微信开发者工具 微信开发者工具下载地址与更新日志 | 微信开放文档 二、绑定微信小程序开发者 1、登录…

AI助力多文档审查丨合同风险审查、招投标文件、合同和中标通知书一致性审查

当下&#xff0c;企业管理的数据和文档管理中充斥着大量有复用价值的数据、资料和内容性信息。每一家企业都有许多商业文档和法律文档需要使用和维护&#xff0c;其中包含了不同语言文字、手写体、数字、公式等。 然而&#xff0c;目前企业的各种文档资料仍主要依靠人工手段进行…

身边的那些信审人员都去哪了?

最近几天看到朋友圈很多信用卡审核中心的老同事&#xff08;老同学&#xff09;在秀到深圳9周年&#xff0c;在2013年的时候&#xff0c;大家都是一起通过校招来到了XX银行信用卡中心的信贷审批部&#xff0c;成为了信用卡人工审核员&#xff0c;那时候入职信贷审批部近百人&am…