LLM
文章平均质量分 91
大语言模型
舒克与贝克
AI 学习与生活
展开
-
[LLM]从GPT-4o原理到下一代人机交互技术
GPT-4o的API定价比前代产品便宜,速度更快,调用频率上限更高,这使得开发者和企业能够更容易地将GPT-4o集成到他们的应用程序中4。:GPT-4o可能采用了特殊的token来标记不同的任务,以便模型能够生成对应的内容,这有助于提高模型在特定任务上的表现4。:GPT-4o在设计时考虑了安全性,虽然语音模态带来了新的安全挑战,但OpenAI表示已将风险控制在中等水平以下4。:GPT-4o能够检测和响应用户的情绪状态,调整其语气和响应方式,使得交互更加自然和有同理心3。原创 2024-05-23 13:19:11 · 1497 阅读 · 1 评论 -
[NLP] LLM---<训练中文LLama2(二)>扩充LLama2词表构建中文tokenization
目前,大语言模型呈爆发式的增长,其中,基于llama家族的模型占据了半壁江山。而原始的llama模型对中文的支持不太友好,接下来本文将讲解如何去扩充vocab里面的词以对中文进行token化。一般的,目前比较主流的是使用sentencepiece训练中文词库。除了一些特殊符号外,还有我们自定义的foo和bar,其余的一些词是BPE训练得到,具体什么是BPE算法这里不作展开了。然后,我们准备好语料,这里我们使用的语料是斗破苍穹小说。加入了我们定义的词表后确实能够正确的对中文进行分词了。原创 2023-09-13 15:42:28 · 6499 阅读 · 0 评论 -
[NLP]TRL 正式推出,来训练你的首个 RLHF 模型
PEFT(Parameter Efficient Fine-Tuning)是一种用于微调神经网络模型的技术,旨在在保持模型性能的同时,显著减少微调所需的计算资源和时间。PEFT 的主要思想是通过使用较小的学习率来微调模型的一部分参数,而不是对整个模型的所有参数进行微调。这样可以将微调的计算开销分布到多个小批次中,从而减少了每个小批次的计算负担,使得模型可以在较小的设备上进行高效微调。4-bit 在这里指的是四位量化(4-bit quantization),是一种将模型的权重量化为更低比特数的技术。原创 2023-09-11 13:27:54 · 640 阅读 · 0 评论 -
[LLM]nanoGPT---训练一个写唐诗的GPT
原有模型使用的莎士比亚的戏剧数据集, 如果需要一个写唐诗机器人,需要使用唐诗的文本数据,这个数据集里面包含搜集到的唐诗,宋词,元曲小说文本数据。原创 2023-12-13 14:32:41 · 1532 阅读 · 2 评论 -
[GPT]Andrej Karpathy微软Build大会GPT演讲(下)--该如何使用GPT助手
Andrej通过将提示工程中的技术和模型学习了什么结合起来,我觉得很好的解释了为什么那些提示工程是有效的。我印象最深刻的就是说模型只是一个标记模拟器,为了让他模拟的结果是我们想要的东西,得需要通过你的前文来限制一些内容使得他如果要完成这个文档补全,就需要按照你的说明来。我觉得这个甚至可以作为提示工程的核心guideline。原创 2023-12-10 08:57:19 · 1268 阅读 · 0 评论 -
[NLP] LLM---<训练中文LLama2(四)方式二>对LLama2进行SFT微调
Let’s talk a bit about the parameters we can tune here. First, we want to load a model and train it on the (1,000 samples), which will produce our fine-tuned model . If you’re interested in how this dataset was created, you can check this notebook. Feel原创 2023-09-08 18:35:31 · 1955 阅读 · 1 评论 -
[LLM]Streamlit+LLM(大型语言模型)创建实用且强大的Web聊天机器人
Streamlit 是一个开源框架,使开发人员能够快速构建和共享用于机器学习和数据科学项目的交互式 Web 应用程序。它还提供了一系列小部件,只需要一行 Python 代码即可创建,例如。对于我们创建一个简单的用于私人使用的聊天机器人网站来说,Streamlit 是一个非常合适的库,它还提供了第三方 Streamlit_chat 库,进一步方便我们生成“聊天式” Web 应用程序,因为我们不需要写大量的 HTML 元素和 CSS 内容。原创 2023-12-20 11:19:41 · 2239 阅读 · 1 评论 -
[NLP] LLM---<训练中文LLama2(五)>对SFT后的LLama2进行DPO训练
大型语言模型(LLM)使 NLP 中微调模型的过程变得更加复杂。最初,当 ChatGPT 等模型首次出现时,最主要的方法是先训练奖励模型,然后优化 LLM 策略。从人类反馈中强化学习(RLHF)极大地推动了NLP的发展,并将NLP中许多长期面临的挑战抛在了一边。原创 2023-09-17 08:42:14 · 2947 阅读 · 0 评论 -
Google Gemini With LangChain RAG
本实验使用llama.cpp的README.md作为我们需要进行询问的文档。我们创建一个简单的向量数据库,并存储几条文本。原创 2023-12-22 14:26:07 · 845 阅读 · 0 评论 -
[NLP] 使用Llama.cpp和LangChain在CPU上使用大模型-RAG
下载llama-cpp, llama-cpp-pythonLangChain是一个提供了一组广泛的集成和数据连接器,允许我们链接和编排不同的模块。可以常见聊天机器人、数据分析和文档问答等应用。sentence-transformer提供了简单的方法来计算句子、文本和图像的嵌入。它能够计算100多种语言的嵌入。我们将在这个项目中使用开源的all-MiniLM-L6-v2模型。Facebook AI相似度搜索(FAISS)是一个为高效相似度搜索和密集向量聚类而设计的库。原创 2023-11-07 21:52:39 · 5420 阅读 · 1 评论 -
[NLP] LLM---<训练中文LLama2(六)>对LLama2离线推理
项目之后,基于GPU的部署非常简单。可以看出原生的LLAMA2模型对中文支持不好,回答的答案基本都是英文。提供了一些使用脚本,可以很方便的体验模型推理的过程。项目代码介绍,使用原生的llama2-hf。简单说明一下各个文件的作用。原创 2023-09-08 11:54:45 · 1072 阅读 · 0 评论 -
[NLP] LLM---<训练中文LLama2(一)>训练一个中文LLama2的步骤
然而,这将需要我们给人类发送一些样本,在每轮优化后计分,这个流程需要耗费大量人工,且需要大量数据集,而人类阅读和标注的速度有限。等),但是坦白讲,质量都不高,大家可自行下载并需要进行清洗,清洗SFT数据是个耗时耗力的工作,但根据作者微调经验,一份高质量的SFT数据是相当重要的‼️(如果不清洗SFT数据,可能无法获得满意的SFT效果,建议大家在这块多花些时间) 中文SFT语料网上最近很多,大家自行下载。因为在llama官方所提供的词表中,中文的部分只有700个,这也是llama中文能力聊胜于无的原因。原创 2023-09-13 13:34:11 · 2868 阅读 · 0 评论 -
[NLP] LLM---<训练中文LLama2(三)>对LLama2进行中文预料预训练
由于第一阶段预训练会冻结transformer参数,仅训练embedding模型,因此,收敛速度较慢,如果不是有特别充裕的时间和计算资源,建议跳过该阶段。第二阶段预训练使用LoRA技术,为模型添加LoRA权重(adapter),训练embedding的同时也更新LoRA参数。,需预先执行下载其中一部分数据用于预训练或者使用其进行词表扩充训练。下载完之后,对其中的数据进行数据清洗,去除一些空行等。是如何从0到1进行中文词表扩充、模型预训练和微调的整个过程。本文预训练数据集使用一些。原创 2023-09-16 12:06:25 · 2234 阅读 · 0 评论 -
[NLP] LLM---<训练中文LLama2(四)方式一>对LLama2进行SFT微调
其他参数(如:per_device_train_batch_size、training_steps等)是否修改视自身情况而定。训练方案也采用了LoRA进行高效精调,并进一步增加了可训练参数数量。在prompt设计上,精调以及预测时采用的都是原版。不带input的模版。对于包含input字段的数据,采用。为了测试,对数据进行了sample。指令精调阶段的任务形式基本与。首先,修改模型精调脚本。原创 2023-09-16 17:00:20 · 1864 阅读 · 0 评论 -
[NLP]LLM---大模型指令微调中的“Prompt”
之前推理的时候,发现不加训练的时候prompt,直接输入模型性能会变差的,这个倒是可以理解。(3)另外通过实验发现,如果模型微调的时候使用模板,那么推理的时候应该也使用模板,否则效果会影响,直观上就是生成效果不理想,生成比较短,甚至“驴唇不对马嘴”;或者有继续微调比较合适的方案也可以,不损失之前模型的效果(或者损失比较小),目前可以尝试Lora或者Qlora的方式微调底座模型,然后将训练好的Lora权重合并到原始模型,这样可以减轻多次微调对模型的影响。那高质量如何定义呢?和alpaca模板差不多。原创 2023-09-09 06:41:59 · 4861 阅读 · 0 评论 -
[GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
OpenAI的创始人之一,大神Andrej Karpthy刚在微软Build 2023开发者大会上做了专题演讲:State of GPT(GPT的现状)。他详细介绍了如何从GPT基础模型一直训练出ChatGPT这样的助手模型(assistant model)。作者不曾在其他公开视频里看过类似的内容,这或许是OpenAI官方第一次详细阐述其大模型内部原理和RLHF训练细节。难能可贵的是,Andrej不仅深入了细节, 还高屋建瓴的抽象了大模型实现中的诸多概念,牛人的洞察就是不一样。原创 2023-12-08 16:38:36 · 1330 阅读 · 0 评论 -
Google Gemini API快速上手(附申请步骤)
12月6日,谷歌发布新一代大模型Gemini的demo, 同时,Bard已将模型更新为Gemini Pro是谷歌目前最新最强的大语言模型,支持多模态(文字,图片,音频,视频等等)处理美国时间12月13日,Gemini API对公众开放,本文将教学Google Generative AI的简易使用流程。根据谷歌提供的价格信息,将会有两个收费方式,现阶段的免费版本可以每分钟60次请求,足够满足个人用户的需求了。至于收费版本,目前还不能用,但是收费标准已经公布了。原创 2023-12-18 11:49:19 · 24847 阅读 · 5 评论 -
LLM分布式训练---混合并行(2D 3D)
近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。而利用AI集群,使深度学习算法更好地从大量数据中高效地训练出性能优良的大模型是分布式机器学习的首要目标。为了实现该目标,一般需要根据硬件资源与数据/模型规模的匹配情况,考虑对计算任务、训练数据和模型进行划分,从而进行分布式存储和分布式训练。原创 2024-05-08 09:47:03 · 1387 阅读 · 0 评论 -
[LLM]大模型训练DeepSpeed(二)
在单节点情况下,DeepSpeed的配置更多地集中在指定的节点内,因此不需要显式指定hostfile,而可以通过命令行参数更灵活地控制使用的GPU资源。DeepSpeed模型训练的核心在于DeepSpeed引擎,它能够包装任意类型为torch.nn.module的模型,并提供了一组最小的API用于训练和模型检查点。在这些设置步骤中,DeepSpeed的启动脚本提供了多种命令行选项,使用户能够根据需求有效地控制分布式训练作业在多节点或单节点上使用的节点和GPU数量。原创 2023-12-31 11:34:24 · 7583 阅读 · 0 评论 -
[LLM]大模型训练DeepSpeed(一)-原理介绍
DeepSpeed是由Microsoft提供的分布式训练工具,旨在支持更大规模的模型和提供更多的优化策略和工具。与其他框架相比,DeepSpeed支持更大规模的模型和提供更多的优化策略和工具。其中,主要优势在于支持更大规模的模型、提供了更多的优化策略和工具(例如 ZeRO 和 Offload 等)原创 2023-05-17 18:51:10 · 36071 阅读 · 3 评论 -
LLM分布式训练---流水线并行
所谓流水线并行,就是由于模型太大,无法将整个模型放置到单张GPU卡中;因此,将模型的不同层放置到不同的计算设备,降低单个计算设备的显存消耗,从而实现超大规模模型训练。流水线并行PP(Pipeline Parallelism),是一种最常用的并行方式,也是最初Deepspeed和Megatron等大模型训练框架都支持的一种并行方式。如下图所示,模型共包含四个模型层(如:Transformer层),被切分为三个部分,分别放置到三个不同的计算设备。原创 2024-05-06 14:00:53 · 2129 阅读 · 0 评论 -
[LLM]大模型训练DeepSpeed(三)
在训练脚本中导入 DeepSpeed 模块:在训练脚本中导入 Trainer 模块:创建 Trainer 对象,将模型、训练数据集、优化器等参数传入:args=args,使用 DeepSpeed 命令行工具运行训练脚本(单机):其中,--num_gpus表示使用的 GPU 数量。hostfile增加hostfile文件,填写host的相应的gpu数量(slots=4代表有4个gpu)include参数,指定机器和gpu,如下代表使用host1机器的3号和host2的2、3号gpu。原创 2024-04-28 12:59:26 · 2123 阅读 · 0 评论 -
[LLM]大模型基础知识点--大模型与LLM
定义:LLM是一种特定类型的大模型,专门用于处理和理解自然语言。大型语言模型(LLM)是基于人工智能的先进模型,经过训练,它可以密切反映人类自然交流的方式处理和生成人类语言。这些模型利用深度学习技术和大量训练数据来全面理解语言结构、语法、上下文和语义。特点:LLM通过学习庞大的文本数据集,能够执行多种语言任务,如文本生成、翻译、摘要、问答等。示例:ChatGPT的GPT-3是一个典型的LLM,它拥有1750亿个参数,能够处理各种复杂的语言任务。原创 2024-03-20 14:22:35 · 1409 阅读 · 0 评论 -
[LLM]大模型八股知识点(六)
💡提示学习(Prompting)是一种在机器学习中使用人类编写的提示或示例来辅助模型进行学习和推理的技术。在自然语言处理任务中,提示通常是一段文字或问题,用于指导模型生成或理解特定的输出。提示学习可以用于各种自然语言处理任务,包括文本分类、命名实体识别、情感分析、机器翻译等。在这些任务中,模型需要根据输入的文本来进行预测或生成输出。通过提供明确的提示,可以引导模型关注特定的信息或完成特定的任务。提示可以采用不同的形式,例如:通过提示学习,可以改善模型的性能,提高其准确性和鲁棒性。原创 2024-03-20 14:09:36 · 919 阅读 · 0 评论 -
[LLM]大模型八股知识点(五)
位置编码是一种用于在序列数据中为每个位置添加位置信息的技术。在自然语言处理中,位置编码通常用于处理文本序列。由于传统的神经网络无法直接捕捉输入序列中的位置信息,位置编码的引入可以帮助模型更好地理解和处理序列数据。在Transformer模型中,位置编码通过为输入序列中的每个位置分配一个固定的向量来实现。这些向量会与输入序列中的词向量相加,以融合位置信息。位置编码的设计目的是使模型能够区分不同位置的输入。在Transformer模型中,使用了一种特殊的位置编码方式,即正弦和余弦函数的组合。原创 2024-03-20 14:06:02 · 1125 阅读 · 0 评论 -
[LLM]大模型八股知识点(四)
大语言模型进行推理时,显存涨得很多且一直占着显存不释放的原因主要有以下几点:模型参数占用显存:大语言模型通常具有巨大的参数量,这些参数需要存储在显存中以供推理使用。因此,在推理过程中,模型参数会占用相当大的显存空间。输入数据占用显存:进行推理时,需要将输入数据加载到显存中。对于大语言模型而言,输入数据通常也会占用较大的显存空间,尤其是对于较长的文本输入。中间计算结果占用显存:在推理过程中,模型会进行一系列的计算操作,生成中间结果。这些中间结果也需要存储在显存中,以便后续计算使用。原创 2024-03-20 14:03:04 · 1678 阅读 · 0 评论 -
[LLM]大模型八股知识点(三)
PEFT(Performance Estimation and Modeling for Fine-Tuning)是一种用于微调任务的性能估计和建模方法。它的目的是帮助研究人员和从业者在微调过程中更好地理解和预测模型的性能,并进行更有效的模型选择和调优。PEFT的主要思想是通过预测模型在微调任务上的性能,提供对不同模型和参数设置的性能估计。这样可以避免在大规模数据集上进行昂贵的微调实验,从而节省时间和计算资源。原创 2024-03-20 13:59:54 · 1288 阅读 · 0 评论 -
[LLM]大模型八股知识点(二)
查询内容:根据文档的特点和领域知识,确定用户可能会查询的内容。总之,通过领域特定训练、增加领域知识、优化检索算法、数据增强和样本平衡、引入外部知识库以及收集用户反馈和迭代优化等方法,可以改进基于LLM和向量库的文档对话在垂直领域中的表现。微调和优化:使用预训练的模型作为起点,通过在特定任务上进行微调和优化,使模型能够更好地理解query和context,并生成更准确、连贯的response。评估和反馈:定期评估模型的性能,使用一些评估指标,如BLEU、ROUGE等,来衡量生成的response的质量。原创 2024-03-20 09:59:03 · 872 阅读 · 0 评论 -
[LLM]大模型八股知识点(一)
LLM(Large Language Model,大型语言模型)是指基于大规模数据和参数量的语言模型。具体的架构可以有多种选择,以下是一种常见的大模型LLM的架构介绍:Transformer架构:大模型LLM常使用Transformer架构,它是一种基于自注意力机制的序列模型。Transformer架构由多个编码器层和解码器层组成,每个层都包含多头自注意力机制和前馈神经网络。这种架构可以捕捉长距离的依赖关系和语言结构,适用于处理大规模语言数据。原创 2024-03-19 20:55:45 · 3817 阅读 · 0 评论 -
[LLM] 大模型基础|预训练|有监督微调SFT | 推理
向量来屏蔽不希望计算loss的部分,下面就是数据构造的一个示意:做的事情就是拼接prompt和answer,并在answer两侧添加一个开始和结束的符号,算一下prompt/instruction的长度,以及后面需要pad的长度,然后生成一个mask向量,answer部分为1,其他部分为0。,也就是transformer(X)的维度还是(1,10,768),接下来就是基于它来进行预测了,因为要预测哪个词,词的可能情况就是词表的大小,所以做的就是一个。通常LLM的预训练是无监督的,但微调过程往往是有监督的。原创 2024-03-18 16:45:22 · 5411 阅读 · 3 评论 -
[LLM]大语言模型文本生成—解码策略(Top-k & Top-p & Temperature)
在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。在自然语言任务中,我们通常使用一个预训练的大模型(比如GPT)来根据给定的输入文本(比如一个开头或一个问题)生成输出文本(比如一个答案或一个结尾)。为了生成输出文本,我们需要让模型逐个预测每个 token ,直到达到一个终止条件(如一个标点符号或一个最大长度)。在每一步,模型会给出一个概率分布,表示它对下一个单词的预测。原创 2024-03-18 12:59:03 · 4780 阅读 · 0 评论 -
[NLP] Llama2模型运行在Mac机器
下载Llama2 7B Chat的4位优化权重,将其放入llama.cpp的模型目录中,然后使用Apple的Metal优化器来构建llama.cpp项目。7B的权重应该可以在拥有8GB RAM的机器上运行(但如果你有16GB的RAM会更好)。像13B或70B这样的更大模型将需要更多的RAM。LLaMa2本身的模型不支持直接在Window或者Mac机器上调用,只能在Linux系统,支持N卡。直接把模型下载下来放到 刚刚Clone的 llama.cpp 目录下的models目录里面。原创 2023-11-05 19:44:41 · 2613 阅读 · 0 评论 -
[LLM]大型语言模型高效微调---PEFT
Adapters。原创 2023-05-05 17:01:30 · 1147 阅读 · 0 评论 -
[LLM] 自然语言处理---Transformer原理(一)
《Attention Is All You Need》是Google在2017年提出的一篇将Attention思想发挥到极致的论文。该论文提出的Transformer模型,基于encoder-decoder架构,抛弃了传统的RNN、CNN模型,仅由Attention机制实现,并且由于encoder端是并行计算的,训练时间大大缩短。Transformer模型广泛应用于NLP领域,机器翻译、文本摘要、问答系统等等,目前火热的Bert模型就是基于Transformer模型构建的。Transformer优点:原创 2021-12-03 18:07:06 · 4908 阅读 · 2 评论 -
[LLM] 自然语言处理---Transformer 位置编码介绍
2017年来自谷歌的Vaswani等人提出了Transformer模型,一种新颖的纯粹采用注意力机制实现的Seq2Seq架构,它具备并行化训练的能力,拥有非凡的性能表现,这些特点使它深受NLP研究人员们的喜欢,成为NLP领域的标志性模型之一。因此,当人们提到Transformer模型时,多头注意力机制(Multi-Head Attention)成为人们讨论最多的创新点,正如前面所说,这种机制让Transformer变得非常强大。其实,原文使用到了一种非常有意思的技巧——Positional Encodi原创 2021-09-14 19:50:56 · 3031 阅读 · 1 评论 -
[LLM] 自然语言处理 ----- Attention机制中的Q,K,V介绍
注意力机制就是要通过训练得到一个加权,自注意力机制就是要通过权重矩阵来自发地找到词与词之间的关系。Q就是词的查询向量,K是“被查”向量,V是内容向量。简单来说一句话:Q是最适合查找目标的,K是最适合接收查找的,V就是内容,这三者不一定要一致,所以网络这么设置了三个向量,然后学习出最适合的Q, K, V,以此增强网络的能力。因此肯定需要给每个input定义tensor,然后通过tensor间的乘法来得到input之间的关系。那这么说是不是给每个input定义...原创 2021-09-14 13:38:32 · 15122 阅读 · 6 评论 -
[LLM] 自然语言处理 --- Self-Attention(三) 知识点与源码解析
在当前的 NLP 领域,Transformer / BERT 已然成为基础应用,而 Self-Attention 则是两者的核心部分,下面尝试用 Q&A 和源码的形式深入 Self-Attention 的细节。一 Q&A1. Self-Attention 的核心是什么?Self-Attention 的核心是用文本中的其它词来增强目标词的语义表示,从而更好的利用上下文的信息。2. Self-Attention 的时间复杂度是怎么计算的?Self-Attention ..原创 2021-04-20 20:09:59 · 2391 阅读 · 2 评论 -
[LLM] 自然语言处理 --- Self-Attention(二) 动画与代码演示
一 Self AttentionSelf Attention也经常被称为intra Attention(内部Attention),最近一年也获得了比较广泛的使用,比如Google最新的机器翻译模型内部大量采用了Self Attention模型。在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source原创 2021-04-20 14:35:38 · 889 阅读 · 1 评论 -
[LLM] 自然语言处理 --- 从BERT, XLNet, RoBERTa, ERNIE2到ALBERT2
谷歌Lab发布了一个新的预训练模型"ALBERT"全面在SQuAD 2.0、GLUE、RACE等任务上超越了BERT、XLNet、RoBERTa再次刷新了排行榜!ALBERT是一种轻量版本的BERT,利用更好的参数来训练模型,但是效果却反而得到了很大提升!ALBERT的核心思想是采用了两种减少模型参数的方法,比BERT占用的内存空间小很多,同时极大提升了训练速度,更重要的是效果上也有很大的提升!...原创 2020-01-11 10:13:47 · 4328 阅读 · 1 评论 -
[LLM] 自然语言处理 --- ALBERT 介绍
一、简介随着Transfomer结构的普及,一时间大语料、大参数量的预训练模型成为主流。当在实际部署BERT等模型时,往往需要使用蒸馏、压缩或其他优化技术对模型进行处理。ALBERT模型来自论文 Google 最近公布的论文 《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》从名字就可...原创 2020-01-06 18:28:22 · 7760 阅读 · 1 评论