自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

摩登都市天空---专栏

学习是为了远航,其历程要有内涵、有意义、有质量、有成效,还需要增进续航力。

  • 博客(339)
  • 资源 (6)
  • 收藏
  • 关注

原创 [LLM]大模型基础知识点--大模型与LLM

定义:LLM是一种特定类型的大模型,专门用于处理和理解自然语言。大型语言模型(LLM)是基于人工智能的先进模型,经过训练,它可以密切反映人类自然交流的方式处理和生成人类语言。这些模型利用深度学习技术和大量训练数据来全面理解语言结构、语法、上下文和语义。特点:LLM通过学习庞大的文本数据集,能够执行多种语言任务,如文本生成、翻译、摘要、问答等。示例:ChatGPT的GPT-3是一个典型的LLM,它拥有1750亿个参数,能够处理各种复杂的语言任务。

2024-03-20 14:22:35 875

原创 [LLM]大模型八股知识点(六)

💡提示学习(Prompting)是一种在机器学习中使用人类编写的提示或示例来辅助模型进行学习和推理的技术。在自然语言处理任务中,提示通常是一段文字或问题,用于指导模型生成或理解特定的输出。提示学习可以用于各种自然语言处理任务,包括文本分类、命名实体识别、情感分析、机器翻译等。在这些任务中,模型需要根据输入的文本来进行预测或生成输出。通过提供明确的提示,可以引导模型关注特定的信息或完成特定的任务。提示可以采用不同的形式,例如:通过提示学习,可以改善模型的性能,提高其准确性和鲁棒性。

2024-03-20 14:09:36 727

原创 [LLM]大模型八股知识点(五)

位置编码是一种用于在序列数据中为每个位置添加位置信息的技术。在自然语言处理中,位置编码通常用于处理文本序列。由于传统的神经网络无法直接捕捉输入序列中的位置信息,位置编码的引入可以帮助模型更好地理解和处理序列数据。在Transformer模型中,位置编码通过为输入序列中的每个位置分配一个固定的向量来实现。这些向量会与输入序列中的词向量相加,以融合位置信息。位置编码的设计目的是使模型能够区分不同位置的输入。在Transformer模型中,使用了一种特殊的位置编码方式,即正弦和余弦函数的组合。

2024-03-20 14:06:02 951

原创 [LLM]大模型八股知识点(四)

大语言模型进行推理时,显存涨得很多且一直占着显存不释放的原因主要有以下几点:模型参数占用显存:大语言模型通常具有巨大的参数量,这些参数需要存储在显存中以供推理使用。因此,在推理过程中,模型参数会占用相当大的显存空间。输入数据占用显存:进行推理时,需要将输入数据加载到显存中。对于大语言模型而言,输入数据通常也会占用较大的显存空间,尤其是对于较长的文本输入。中间计算结果占用显存:在推理过程中,模型会进行一系列的计算操作,生成中间结果。这些中间结果也需要存储在显存中,以便后续计算使用。

2024-03-20 14:03:04 701

原创 [LLM]大模型八股知识点(三)

PEFT(Performance Estimation and Modeling for Fine-Tuning)是一种用于微调任务的性能估计和建模方法。它的目的是帮助研究人员和从业者在微调过程中更好地理解和预测模型的性能,并进行更有效的模型选择和调优。PEFT的主要思想是通过预测模型在微调任务上的性能,提供对不同模型和参数设置的性能估计。这样可以避免在大规模数据集上进行昂贵的微调实验,从而节省时间和计算资源。

2024-03-20 13:59:54 727

原创 [LLM]大模型八股知识点(二)

查询内容:根据文档的特点和领域知识,确定用户可能会查询的内容。总之,通过领域特定训练、增加领域知识、优化检索算法、数据增强和样本平衡、引入外部知识库以及收集用户反馈和迭代优化等方法,可以改进基于LLM和向量库的文档对话在垂直领域中的表现。微调和优化:使用预训练的模型作为起点,通过在特定任务上进行微调和优化,使模型能够更好地理解query和context,并生成更准确、连贯的response。评估和反馈:定期评估模型的性能,使用一些评估指标,如BLEU、ROUGE等,来衡量生成的response的质量。

2024-03-20 09:59:03 587

原创 [LLM]大模型八股知识点(一)

LLM(Large Language Model,大型语言模型)是指基于大规模数据和参数量的语言模型。具体的架构可以有多种选择,以下是一种常见的大模型LLM的架构介绍:Transformer架构:大模型LLM常使用Transformer架构,它是一种基于自注意力机制的序列模型。Transformer架构由多个编码器层和解码器层组成,每个层都包含多头自注意力机制和前馈神经网络。这种架构可以捕捉长距离的依赖关系和语言结构,适用于处理大规模语言数据。

2024-03-19 20:55:45 1072

原创 [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 1255

原创 [LLM]大语言模型文本生成—解码策略(Top-k & Top-p & Temperature)

在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。在自然语言任务中,我们通常使用一个预训练的大模型(比如GPT)来根据给定的输入文本(比如一个开头或一个问题)生成输出文本(比如一个答案或一个结尾)。为了生成输出文本,我们需要让模型逐个预测每个 token ,直到达到一个终止条件(如一个标点符号或一个最大长度)。在每一步,模型会给出一个概率分布,表示它对下一个单词的预测。

2024-03-18 12:59:03 1471

原创 [LLM]大模型训练(二)--DeepSpeed使用

在单节点情况下,DeepSpeed的配置更多地集中在指定的节点内,因此不需要显式指定hostfile,而可以通过命令行参数更灵活地控制使用的GPU资源。DeepSpeed模型训练的核心在于DeepSpeed引擎,它能够包装任意类型为torch.nn.module的模型,并提供了一组最小的API用于训练和模型检查点。在这些设置步骤中,DeepSpeed的启动脚本提供了多种命令行选项,使用户能够根据需求有效地控制分布式训练作业在多节点或单节点上使用的节点和GPU数量。

2023-12-31 11:34:24 2986

原创 Google Gemini With LangChain RAG

本实验使用llama.cpp的README.md作为我们需要进行询问的文档。我们创建一个简单的向量数据库,并存储几条文本。

2023-12-22 14:26:07 684

原创 [LLM]Streamlit+LLM(大型语言模型)创建实用且强大的Web聊天机器人

Streamlit 是一个开源框架,使开发人员能够快速构建和共享用于机器学习和数据科学项目的交互式 Web 应用程序。它还提供了一系列小部件,只需要一行 Python 代码即可创建,例如。对于我们创建一个简单的用于私人使用的聊天机器人网站来说,Streamlit 是一个非常合适的库,它还提供了第三方 Streamlit_chat 库,进一步方便我们生成“聊天式” Web 应用程序,因为我们不需要写大量的 HTML 元素和 CSS 内容。

2023-12-20 11:19:41 1471

原创 Google Gemini API快速上手(附申请步骤)

12月6日,谷歌发布新一代大模型Gemini的demo, 同时,Bard已将模型更新为Gemini Pro是谷歌目前最新最强的大语言模型,支持多模态(文字,图片,音频,视频等等)处理美国时间12月13日,Gemini API对公众开放,本文将教学Google Generative AI的简易使用流程。根据谷歌提供的价格信息,将会有两个收费方式,现阶段的免费版本可以每分钟60次请求,足够满足个人用户的需求了。至于收费版本,目前还不能用,但是收费标准已经公布了。

2023-12-18 11:49:19 13258 1

原创 [LLM]nanoGPT---训练一个写唐诗的GPT

原有模型使用的莎士比亚的戏剧数据集, 如果需要一个写唐诗机器人,需要使用唐诗的文本数据,这个数据集里面包含搜集到的唐诗,宋词,元曲小说文本数据。

2023-12-13 14:32:41 1069 2

原创 [GPT]Andrej Karpathy微软Build大会GPT演讲(下)--该如何使用GPT助手

Andrej通过将提示工程中的技术和模型学习了什么结合起来,我觉得很好的解释了为什么那些提示工程是有效的。我印象最深刻的就是说模型只是一个标记模拟器,为了让他模拟的结果是我们想要的东西,得需要通过你的前文来限制一些内容使得他如果要完成这个文档补全,就需要按照你的说明来。我觉得这个甚至可以作为提示工程的核心guideline。

2023-12-10 08:57:19 1190

原创 [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 1196

原创 [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 3699 1

原创 [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 2117

原创 解决MySQL导入数据量大速度慢问题

如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.当sync_binlog =0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。

2023-10-11 13:55:41 2306

原创 [NLP] LLM---<训练中文LLama2(五)>对SFT后的LLama2进行DPO训练

大型语言模型(LLM)使 NLP 中微调模型的过程变得更加复杂。最初,当 ChatGPT 等模型首次出现时,最主要的方法是先训练奖励模型,然后优化 LLM 策略。从人类反馈中强化学习(RLHF)极大地推动了NLP的发展,并将NLP中许多长期面临的挑战抛在了一边。

2023-09-17 08:42:14 1591

原创 [NLP] LLM---<训练中文LLama2(四)方式一>对LLama2进行SFT微调

其他参数(如:per_device_train_batch_size、training_steps等)是否修改视自身情况而定。训练方案也采用了LoRA进行高效精调,并进一步增加了可训练参数数量。在prompt设计上,精调以及预测时采用的都是原版。不带input的模版。对于包含input字段的数据,采用。为了测试,对数据进行了sample。指令精调阶段的任务形式基本与。首先,修改模型精调脚本。

2023-09-16 17:00:20 1471

原创 [NLP] LLM---<训练中文LLama2(三)>对LLama2进行中文预料预训练

由于第一阶段预训练会冻结transformer参数,仅训练embedding模型,因此,收敛速度较慢,如果不是有特别充裕的时间和计算资源,建议跳过该阶段。第二阶段预训练使用LoRA技术,为模型添加LoRA权重(adapter),训练embedding的同时也更新LoRA参数。,需预先执行下载其中一部分数据用于预训练或者使用其进行词表扩充训练。下载完之后,对其中的数据进行数据清洗,去除一些空行等。是如何从0到1进行中文词表扩充、模型预训练和微调的整个过程。本文预训练数据集使用一些。

2023-09-16 12:06:25 1504

原创 [NLP] LLM---<训练中文LLama2(二)>扩充LLama2词表构建中文tokenization

目前,大语言模型呈爆发式的增长,其中,基于llama家族的模型占据了半壁江山。而原始的llama模型对中文的支持不太友好,接下来本文将讲解如何去扩充vocab里面的词以对中文进行token化。一般的,目前比较主流的是使用sentencepiece训练中文词库。除了一些特殊符号外,还有我们自定义的foo和bar,其余的一些词是BPE训练得到,具体什么是BPE算法这里不作展开了。然后,我们准备好语料,这里我们使用的语料是斗破苍穹小说。加入了我们定义的词表后确实能够正确的对中文进行分词了。

2023-09-13 15:42:28 3828

原创 [NLP] LLM---<训练中文LLama2(一)>训练一个中文LLama2的步骤

然而,这将需要我们给人类发送一些样本,在每轮优化后计分,这个流程需要耗费大量人工,且需要大量数据集,而人类阅读和标注的速度有限。等),但是坦白讲,质量都不高,大家可自行下载并需要进行清洗,清洗SFT数据是个耗时耗力的工作,但根据作者微调经验,一份高质量的SFT数据是相当重要的‼️(如果不清洗SFT数据,可能无法获得满意的SFT效果,建议大家在这块多花些时间) 中文SFT语料网上最近很多,大家自行下载。因为在llama官方所提供的词表中,中文的部分只有700个,这也是llama中文能力聊胜于无的原因。

2023-09-13 13:34:11 2239

原创 [NLP]TRL 正式推出,来训练你的首个 RLHF 模型

PEFT(Parameter Efficient Fine-Tuning)是一种用于微调神经网络模型的技术,旨在在保持模型性能的同时,显著减少微调所需的计算资源和时间。PEFT 的主要思想是通过使用较小的学习率来微调模型的一部分参数,而不是对整个模型的所有参数进行微调。这样可以将微调的计算开销分布到多个小批次中,从而减少了每个小批次的计算负担,使得模型可以在较小的设备上进行高效微调。4-bit 在这里指的是四位量化(4-bit quantization),是一种将模型的权重量化为更低比特数的技术。

2023-09-11 13:27:54 396

原创 [NLP]LLM---大模型指令微调中的“Prompt”

之前推理的时候,发现不加训练的时候prompt,直接输入模型性能会变差的,这个倒是可以理解。(3)另外通过实验发现,如果模型微调的时候使用模板,那么推理的时候应该也使用模板,否则效果会影响,直观上就是生成效果不理想,生成比较短,甚至“驴唇不对马嘴”;或者有继续微调比较合适的方案也可以,不损失之前模型的效果(或者损失比较小),目前可以尝试Lora或者Qlora的方式微调底座模型,然后将训练好的Lora权重合并到原始模型,这样可以减轻多次微调对模型的影响。那高质量如何定义呢?和alpaca模板差不多。

2023-09-09 06:41:59 2679

原创 [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 1534 1

原创 [NLP] LLM---<训练中文LLama2(六)>对LLama2离线推理

项目之后,基于GPU的部署非常简单。可以看出原生的LLAMA2模型对中文支持不好,回答的答案基本都是英文。提供了一些使用脚本,可以很方便的体验模型推理的过程。项目代码介绍,使用原生的llama2-hf。简单说明一下各个文件的作用。

2023-09-08 11:54:45 907

原创 [NLP]深入理解 Megatron-LM

数据并行模式会在每个worker之上复制一份模型,这样每个worker都有一个完整模型的副本。输入数据集是分片的,一个训练的小批量数据将在多个worker之间分割;worker定期汇总它们的梯度,以确保所有worker看到一个一致的权重版本。对于无法放进单个worker的大型模型,人们可以在模型之中较小的分片上使用数据并行。a)超过某一个点之后,每个GPU的batch size变得太小,这降低了GPU的利用率,增加了通信成本;

2023-08-26 09:52:33 3143

原创 [NLP]LLM--transformer模型的参数量

最近,OpenAI推出的ChatGPT展现出了卓越的性能,引发了大规模语言模型(Large Language Model, LLM)的研究热潮。大规模语言模型的“大”体现在两个方面:模型参数规模大,训练数据规模大。以GPT3为例,GPT3的参数量为1750亿,训练数据量达到了570GB。进而,训练大规模语言模型面临两个主要挑战:显存效率和计算效率。

2023-08-22 17:48:18 2024

原创 [NLP] BERT模型参数量

综上,BERT模型的参数总量为:

2023-08-20 14:18:08 705

原创 [NLP]LLM 训练时GPU显存耗用量估计

32位存储的意思就是1个参数用32个bit来存储。那么这个拥有1M参数量的模型所需要的存储空间的大小即为:1M * 32 bit = 32Mb = 1M * 4Byte = 4MB。现在的quantization技术就是减少参数量所占的位数:比如我用16位存储,那么:所需要的存储空间的大小即为:1M * 16 bit = 16Mb = 2MB。GPT-2含有1.5B个参数,如果用fp16格式,只需要1.5G*2Byte=3GB显存, 但是模型状态实际上需要耗费1.5B*16=24GB.

2023-08-12 09:56:07 6000 3

原创 [Kubernetes]Kubeflow Pipelines - 基本介绍与安装方法

答案是机器学习工作流。通过机器学习工作流,可以有效的将各个子系统串联起,每一个业务场景可以通过一个端到端的机器学习工作流来描述,同时通过工作流也可以追溯每一次模型产出或模型上线的元信息(例如数据、配置、base model等)。在工业界,比较成熟的机器学习工作流是Google 的Vertex AI Pipeline和Amazon的Sagemaker Pipeline,大家如果感兴趣可以自行去他们的官网体验。4.1 namespace范围资源卸载。4.2 cluster范围资源卸载。要下载对应image。

2023-08-10 11:23:24 844

原创 [深度学习] GPU处理能力(TFLOPS/TOPS)

TF32 采用了与半精度( FP16 )数学相同的10 位尾数位精度,这样的精度水平远高于AI 工作负载的精度要求,有足够的余量。同时, TF32 采用了与FP32 相同的8 位指数位,能够支持与其相同的数字范围。中的新数据类型,TF32 使用与半精度 (FP16) 数学相同的 10 位尾数,表明对于 AI 工作负载的精度要求有足够的余量。在某些情况下,还使用 TOPS/W 来作为评价处理器运算能力的一个性能指标,TOPS/W 用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。

2023-08-02 10:51:04 7009

原创 [NLP]LLM高效微调(PEFT)--LoRA

在下游任务训练时,固定模型的其他参数,只优化新增的两个矩阵的权重参数,将W跟新增的通路W1两部分的结果加起来作为最终的结果(两边通路的输入跟输出维度是一致的),即h=Wx+BAx。当针对特定任务进行微调后,模型中权重矩阵其实具有很低的本征秩(intrinsic rank),因此,论文的作者认为权重更新的那部分参数矩阵尽管随机投影到较小的子空间,仍然可以有效的学习,可以理解为针对特定的下游任务这些权重矩阵就不要求满秩。关于秩的选择,通常情况下,rank为4,8,16即可。

2023-07-29 15:30:59 1718

原创 [NLP]LLaMA与LLamMA2解读

LLaMA是一个系列模型,模型参数量从7B到65B。在大部分的任务上,LLaMA-13B强于GPT-3(175B)。LLaMA-65B的性能,可以和最好的LM相媲美,如Chinchilla-70B 和 PaLM-540B。

2023-07-26 17:16:22 4562 2

原创 [NLP]使用Alpaca-Lora基于llama模型进行微调教程

Stanford Alpaca 是在 LLaMA 整个模型上微调,即对预训练模型中的所有参数都进行微调(full fine-tuning)。但该方法对于硬件成本要求仍然偏高且训练低效。因此, Alpaca-Lora 则是利用 Lora 技术,在冻结原模型 LLaMA 参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。由于这些新增参数数量较少,这样不仅微调的成本显著下降,还能获得和全模型微调(full fine-tuning)类似的效果。

2023-07-25 16:35:05 4171 1

原创 [NLP]Huggingface模型/数据文件下载方法

作为一名自然语言处理算法人员,hugging face开源的transformers包在日常的使用十分频繁。在使用过程中,每次使用新模型的时候都需要进行下载。如果训练用的服务器有网,那么可以通过调用from_pretrained方法直接下载模型。

2023-07-24 18:36:00 4314

原创 [Kubernetes]k8s部署minio单机版

默认账号/密码:minioadmin/minioadmin。

2023-06-12 18:09:55 531

原创 [LLM]大模型训练(一)--DeepSpeed介绍

DeepSpeed是由Microsoft提供的分布式训练工具,旨在支持更大规模的模型和提供更多的优化策略和工具。与其他框架相比,DeepSpeed支持更大规模的模型和提供更多的优化策略和工具。其中,主要优势在于支持更大规模的模型、提供了更多的优化策略和工具(例如 ZeRO 和 Offload 等)

2023-05-17 18:51:10 16128 3

distributed-deep-learning-with-horovod.pdf

distributed-deep-learning-with-horovod Horovod是基于Ring-AllReduce方法的深度分布式学习插件,以支持多种流行架构包括TensorFlow、Keras、PyTorch等。这样平台开发者只需要为Horovod进行配置,而不是对每个架构有不同的配置方法。

2020-06-29

Neural Networks and Deep Learning - 神经网络与深度学习 中英双版本

Neural Networks and Deep Learning - 神经网络与深度学习 中英两个版本文件- 完美排版

2017-12-13

c++stack_和_queue用法

c++stack_和_queue用法,就是这两个函数的用法!

2011-05-01

数据结构的大量程序 相关面试题的源代码!

数据结构的大量程序代码,就是大学里面好多内容的程序代码! 数据结构的大量程序代码,就是大学里面好多内容的程序代码! 还有相关面试题的源代码!

2009-12-15

asp.net 网站

NET论坛 热点社区论坛系统 v5.0.1 是ASP写的

2008-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除