随着2022年底 ChatGPT 刷新 NLP 的能力上限,大语言模型开始接替传统的预训练语言模型(Pre-trained Language Model,PLM) 成为 NLP 的主流方向,基于 LLM 的全新研究范式正刷新被 BERT 发扬光大的预训练-微调范式,NLP 迎来又一次翻天覆地的变化。 究竟什么是 LLM,LLM 和传统的 PLM 的核心差异在哪里,又是什么令研究者对 LLM 抱有如此高的热情与期待呢? 在本文中,将深入分析 LLM 的定义、特点及其能力,揭示 LLM 与传统深度学习模型的核心差异,展示LLM 的实际三阶段训练过程。 LLM的定义 LLM(Large Language Model,大语言模型),是一种相较传统语言模型参数量更多、在更大规模语料上进行预训练的语言模型。 LLM 使用与传统预训练语言模型相似的架构与预训练任务(如 Decoder-Only 架构与 CLM 预训练任务),但拥有更庞大的参数、在更海量的语料上进行预训练,从而展现出与传统预训练语言模型截然不同的能力。 随着 LLM 研究的不断深入,多参数尺寸的 LLM 逐渐丰富,广义 LLM 一 ...
大模型研习
未读预训练语言模型 Encoder-only PLM Transformer 结构主要由 Encoder、Decoder 两个部分组成,两个部分分别有不一样的结构和输入输出。 针对 Encoder、Decoder 的特点,引入 ELMo 的预训练思路,开始出现不同的、对 Transformer 进行优化的思路。例如: Google 选择了 Encoder 层,通过将 Encoder 层进行堆叠,提出不同的预训练任务-掩码语言模型(Masked Language Model,MLM),打造了自然语言理解(Natural Language Understanding,NLU)任务的代表模型——BERT。 OpenAI 则选择了 Decoder 层,使用原有的语言模型(Language Model,LM)任务,通过不断增加模型参数和预训练语料,打造了在自然语言生成(Natural Language Generation,NLG)任务上的 GPT 系列模型。 Google 发布的 T5 模型同时保留 Encoder 与 Decoder,打造预训练的 Transformer 模型。 在本小节 ...
算法学习
未读哈希表 242. 有效的字母异位词 问题描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。 示例 1: 12输入: s = "anagram", t = "nagaram"输出: true 示例 2: 12输入: s = "rat", t = "car"输出: false 提示: 1 <= s.length, t.length <= 5 * 104 s 和 t 仅包含小写字母 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 思路 数组其实就是一个简单哈希表,且这道题目中字符串只有小写字符,那么就可以定义一个大小为 26 的数组(字符a到字符z的ASCII是26个连续的数值),记录字符串s里字符出现的次数。 遍历字符串 s 时,将 s[i] - ‘a’ 所在的元素做+1 操作即可; 同样遍历字符串 t 时,将 t[i] - ‘a’ 所在的元素做-1 操作即可; 数组若存在元素不为0,说明字符串s和 ...
解决 vscode 连接服务器无法正常使用代理(codex插件) 起因:在服务器配置了代理,但是无法正常使用codex,一致显示连接超时 本地终端配置 在本地终端中输入 1ssh -R 9999:localhost:7890 用户名@主机IP 输入密码后实现与服务器的连接 服务器端配置 vscode 连接服务器后,在 /home/username/.bashrc 最后添加: 12345678910111213cat >> ~/.bashrc <<'EOF'vpn() { export http_proxy=http://192.168.1.23:9999 export https_proxy=http://192.168.1.23:9999 echo "Proxy has been set to 192.168.1.23:9999"}unvpn() { unset http_proxy https_proxy echo "Proxy has been disabled& ...
Encoder-Decoder Seq2Seq模型 Seq2Seq 模型输入的是一个自然语言序列 input=(x1,x2,x3...xn)input = (x_1, x_2, x_3...x_n)input=(x1,x2,x3...xn) ,输出的是一个可能不等长的自然语言序列 output=(y1,y2,y3...ym)output = (y_1, y_2, y_3...y_m)output=(y1,y2,y3...ym), Transformer 是一个典型的 Seq2Seq 模型,序列进入 Encoder 进行编码,到 Encoder Layer 的最顶层再将编码结果输出给 Decoder Layer 的每一层,通过 Decoder 解码后就可以得到输出目标序列了。 编码:将输入的自然语言序列通过隐藏层编码成复杂的词向量表示。 解码:对输入的自然语言序列编码得到的向量通过隐藏层输出,再解码成对应的自然语言目标序列。 几乎所有的 NLP 任务都可以视为 Seq2Seq 任务。例如文本分类任务,可以视为输出长度为 1 的目标序列(如在上式中 mmm ...
生活札记
未读“export http_proxy=http://127.0.0.1:xxx” 是什么意思? **事情起因:**今天给学校集群服务器配置代理的时候,发现总是要输入这些命令,但是平时都是只知道敲命令而不懂原理,就很好奇这些究竟是什么意思❓ export 是什么? 在 Linux 系统里,export 的意思是**“声明/导出环境变量”**。 可以把它想象成在当前的终端里贴了一张 “全局通告”。只要是在这个终端里运行的任何程序(不管是 curl、pip、git 还是 Python 脚本),在启动时都会先抬头看一眼这些通告。 http_proxy 和 https_proxy 是什么? 这两个是 Linux 软件世界里约定俗成的两个**“路标变量名”**。 http_proxy 管的是普通的、不加密的网页请求。 当你访问一个以 http:// 开头的网址时,你发出的请求和收到的数据都是明文的。 举例:这就好比你写了一张没有任何遮挡的明信片寄出去。邮递员、转运中心的大爷、甚至是你学校机房的网络管理员,只要他们愿意,低头就能把你明信片上写的字(比如你的账号、密码、你在看什么网页)看得一清 ...
Deep Multimodal Learning with Missing Modality: A Survey 来源:https://openreview.net/forum?id=tc7RFcx4hT 方法论概述 数据处理 根据缺失模态的层级划分为“模态填充”和“基于表示的模型”,分别对应在模态数据层级或数据表示层级进行缺失模态处理。 模态填充: 操作在模态数据层级,通过模态合成或模态生成方法来填补缺失模态的信息。 核心思想:若能准确填补缺失模态,则下游任务可继续进行,像“完整”模态可用一样。 基于表示的模型: 在表示层级上解决缺失模态的问题。 通过协调表示方法对不同模态的表示施加特定约束,使不同模态在语义空间中的表示进行对齐,从而使得即使面对缺失的模态,模型仍然能够有效训练。 通过使用现有数据生成缺失模态的表示,或结合现有模态的表示填补空缺。 策略设计方面 基于模型内部架构调整和多模型组合,在训练和测试过程中动态适应不同缺失模态情况。 架构聚焦模型: 设计灵活的模型架构来处理缺失模态,从而适应训练或推理过程中可用模态的数量变化; 基于注意力机制:动态调整模态的融合和处 ...
大模型研习
未读注意力机制 传统神经网络 从 计算机视觉(Computer Vision,CV)为起源发展起来的神经网络,其核心架构有三种: 全连接神经网络(Feedforward Neural Network,FNN): 即每一层的神经元都和上下两层的每一个神经元完全连接,如图所示: 卷积神经网络(Convolutional Neural Network,CNN):训练参数量远小于全连接神经网络的卷积层来进行特征提取和学习。 循环神经网络(Recurrent Neural Network,RNN): 使用历史信息作为输入、包含环和自重复的网络, RNN 及 LSTM 的局限性 RNN、 LSTM 具有捕捉时序信息、适合序列生成的优点,却有两个缺陷: ① 序列依序计算能很好模拟时序信息,但限制了计算机(GPU)并行计算的能力,导致模型参数量不算大,但计算时间成本高; ② 难以捕捉长序列依赖关系。在 RNN 中,距离越远的输入之间的关系越难捕捉,需要将整个序列读入内存依次计算,限制了序列的长度。虽然 LSTM 中通过门机制进行了优化,但对于较远距离依赖关系的捕捉,依旧不如人意。 注意力机制 来 ...
仓库链接:https://github.com/shibing624/MedicalGPT?tab=readme-ov-file 为什么选择 MedicalGPT 环境搭建成本低,上手速度快 按照 README 安装即可,整体过程相对顺畅。 MedicalGPT 的强化学习部分基于 TRL ,依赖更轻、安装更省心;对比某些更“工程化/更复杂”的训练框架,上手门槛更低。 覆盖大模型训练全链路,路径完整 一套仓库能把关键阶段串起来:PT / SFT / RL / RAG ; RL 侧支持的算法较丰富,便于在同一套工程框架下做对比实验与迭代; 第一阶段:跑通 MedicalGPT 准备工作:环境与底座模型 在开始跑全链路之前,需要准备好环境和一个 小参数量的底座模型(方便在单卡上快速跑通,不追求效果,只验证流程)。 1. 安装依赖 : 1234git clone --depth 1 https://github.com/shibing624/MedicalGPT.gitcd MedicalGPTlspip install -r requirements.txt 2. ...
大模型研习
未读NLP基础概念 什么是NLP? NLP 是一种让计算机理解、解释和生成人类语言的技术,其核心任务是通过计算机程序来模拟人类对语言的认知和使用过程,结合计算机科学、人工智能、语言学和心理学等多个学科的知识,旨在打破人类语言和计算机语言之间的障碍,实现无缝的交流与互动。 局限性: 处理歧义性、理解抽象概念、处理隐喻和讽刺等。 NLP任务 NLP技术使计算机能够执行各种复杂的语言处理任务,如中文分词、子词切分、词性标注、文本分类、实体识别、关系抽取、文本摘要、机器翻译、自动问答等。 中文分词(Chinese Word Segmentation, CWS): 将连续的中文文本切分成有意义的词汇序列。正如中文语言的词与词之间没有像英文那样的明显分隔(如空格),所以无法直接通过空格来确定词的边界。 1234英文输入:The cat sits on the mat.英文切割输出:[The | cat | sits | on | the | mat]中文输入:今天天气真好,适合出去游玩.中文切割输出:["今天", "天气", "真", &qu ...










