- 博客(207)
- 收藏
- 关注
原创 【大模型】使用AutoAWQ量化大模型
AutoAWQ是一个易于使用的4位量化模型包。与FP16相比,AutoAWQ将模型速度提高了3倍,内存需求降低了3倍。AutoAWQ实现了用于量化LLM的激活感知权重量化(AWQ)算法。AutoAWQ是在麻省理工学院的原始工作基础上创建和改进的。以下是使用AutoAWQ的三种量化方法对大模型进行量化的代码。更详细的教程可以参照github地址。1.2.
2025-02-27 16:18:58
921
原创 【大模型】使用open-webui管理本地大模型
Open WebUI 是一个开源的工具,用于运行和管理大语言模型 (LLM) 及其他人工智能功能。它的主要目的是简化的本地部署和操作,让用户能够方便地通过浏览器界面与各种 AI 模型进行交互。
2025-02-27 11:17:36
306
原创 【大模型】使用vllm启动DeepSeek-R1-Distill-Qwen-1.5B
使用vllm启动DeepSeek-R1-Distill-Qwen-1.5B。
2025-02-26 15:39:38
150
原创 【大模型】大模型量化
最后,在知道了这么多量化方法后,对于如何选择量化,关于LLAMA-3 量化相关的论文中的相关结论。1. 8bit 量化是免费午餐,无损失。2. AWQ 4bit量化对8B模型来说有2%性能损失,对70B模型只有0.05%性能损失。可以说也是免费午餐了。3. 参数越大的模型,低bit量化损失越低。AWQ 3bit 70B 也只有2.7%性能损失,完全可接受。4. 综合来说,如果追求无任何性能损失,8B模型用8bit量化,70B模型用4bit量化;
2025-02-25 17:41:37
976
原创 【大模型】DeepSeek-R1技术解读
对于同个问题,产生N个回答,计算群组内的相对奖励来估计基线,相对奖励是平均值。奖励模型本身也是基于同一个问题的输出进行一个preference的比较训练。GRPO是在计算组内优势值的时候,进行一个相对值的计算,提升组内好回答的比例,降低组内坏回答的比例,具有天然的相对优势。GRPO分为两种,第一种是基于结果监督的GRPO。
2025-02-25 11:56:22
677
原创 【大模型】基于规则奖励模型复现deepseek-r1-Zero
根据qwen2.5-0.5b和基于规则设计的奖励模型,使用GRPO强化学习复现deepseek-r1-Zero。
2025-02-21 17:37:07
331
原创 【大模型】从DeepSeek-R1看对齐技术的革新之路
在以往大模型的训练过程中,"Pretrain → SFT → RL"的三步训练范式统治着大语言模型(LLM)的开发流程。但是当模型参数量突破千亿级别后,单纯增加训练数据量和计算资源带来的边际效益急剧下降。DeepSeek在R1系列模型中提出的“分阶段交替增强训练框”架设计打破了传统的"预训练-SFT-RL"三阶段范式。
2025-02-21 16:11:00
527
原创 【工程实践】Milvus实现问答
智能问答系统已经成为了许多应用场景中不可或缺的一部分,无论是在线客服、智能助手还是知识检索平台,高效准确的问答功能都能极大地提升用户体验和服务效率。而向量数据库 Milvus 的出现,为实现这一目标提供了强大的支持。它能够高效地处理大规模向量数据的存储和检索,使得问答系统在面对海量知识时也能快速找到最相关的答案。
2025-02-21 13:36:42
241
原创 【工程实践】Milvus服务(搭建与使用)
使用 Docker 镜像搭建 Milvus 服务的过程。从 Docker Hub 上拉取了官方提供的 Milvus 镜像,这些镜像已经预先配置好了 Milvus 及其依赖组件;下载必要的启动文件;在启动容器时,通过 Docker 的网络模式设置,为 Milvus 容器分配了独立的网络空间,确保其与外部环境的通信安全且稳定。同时,利用 Docker 的数据卷功能,将 Milvus 的数据存储目录挂载到宿主机上,方便数据的管理和备份。
2025-02-21 10:35:17
266
原创 【大模型】大模型的蒸馏实践:从理论到代码实践
使用qwen2.5系列模型在特定任务上进行知识蒸馏,教师模型为qwen2.5-3b(qwen2.5-7b),学生模型为qwen2.5-0.5b,尝试只使用KL散度、微调学生模型加KL散度和不微调学生模型加交叉熵加KL散度等不同思路,并且使用了KL散度不同变种(反向KL散度,偏向前向KL散度,偏向反向KL散度)。在模型蒸馏的方法中,白盒蒸馏能够利用教师模型的内部信息,如中间层的特征表示、概率分布等,从而更有效地将知识传递给学生模型。而KL散度作为一种衡量两个概率分布差异的指标,在白盒蒸馏中发挥着重要作用。
2025-02-11 18:15:26
687
原创 【大模型】大模型的黑盒蒸馏与白盒蒸馏
在模型压缩的过程中,我们将待压缩的模型设定为教师模型,选取体积更为小巧的模型作为学生模型。在训练阶段,学生模型处于教师模型的监督之下逐步优化。教师模型对输入数据进行处理后,会产生特定的概率分布,学生模型则致力于学习并逼近这一概率分布。而二者概率分布之间的差异,通过KL散度这一指标进行精准度量与有效控制,以此确保学生模型在学习过程中能够最大程度地汲取教师模型的知识,同时维持自身简洁高效的特性。对于大模型的知识蒸馏,主要分为黑盒蒸馏与白盒蒸馏两种。
2025-02-11 16:51:02
805
原创 【大模型】大模型的量化与蒸馏
量化与蒸馏技术作为大模型的“专属瘦身秘籍”,为解决大模型在计算成本、存储需求和推理速度等方面的挑战,提供了切实有效的解决方案。量化技术通过降低数据精度,大幅减少了模型的计算和存储成本;蒸馏技术则通过知识转移,让小模型能够充分学习到大模型的知识,从而在保持高性能的同时,成功实现模型的小型化和高效化。随着人工智能技术的持续飞速发展,量化与蒸馏技术也在不断地演进和完善。未来,它们将在更多领域得到广泛应用,有力推动大模型技术的普及和发展,让人工智能更好地服务于人类社会。
2025-02-11 15:48:32
421
原创 【大模型】从0到1训练一个大模型(六):MOE
混合专家模型(Mixture of Experts,MOE)是一种集成学习模型,它由多个专家网络(Expert Networks)和一个门控网络(Gating Network)组成。每个专家网络是一个独立的神经网络,专门用于处理特定类型的数据或任务。门控网络的作用是根据输入数据,动态地决定每个专家网络的权重,即哪些专家网络应该参与当前输入的处理,以及每个专家网络的贡献程度。
2025-02-10 12:34:48
975
原创 【大模型】从0到1训练一个大模型(五):DPO
DPO 的核心思想是通过优化模型生成的选择和拒绝样本的概率比,使其更接近人类的偏好。DPO 的损失函数如下。本文详细介绍了直接偏好优化(DPO)在大模型训练中的应用。通过引入人类标注的偏好数据,DPO 能够直接优化模型,使其生成的内容更符合人类的偏好和期望,减少了对奖励模型的依赖,提升了模型的泛化能力和稳定性。通过对代码的详细解读,我们可以看到 DPO 的实现主要包括将 logits 转换为概率、计算 DPO 损失以及自定义训练器等步骤。
2025-02-10 11:27:02
867
原创 【大模型】从0到1训练一个大模型(四):SFT
本文围绕监督微调(SFT)展开,通过对代码的详细解析,介绍了如何基于预训练模型进行 SFT,涵盖模型注册与加载、数据处理组件初始化、训练参数设置以及数据集加载与训练等关键步骤。通过 SFT,能够将通用的预训练模型转化为更适合特定任务和领域的模型,为实际应用提供更强大的支持。在未来的研究和实践中,可以进一步探索不同的微调策略、数据集增强方法以及模型评估指标,以不断提升模型在特定场景下的性能和效果。
2025-02-08 17:45:28
424
原创 【大模型】从0到1训练一个大模型(四):Pretrain
在大模型的训练过程中,预训练(Pretrain)是极为关键的一步。通过在大规模无监督数据上进行预训练,模型能够学习到通用的语言模式、语义表示和语法规则等,为后续针对特定任务的微调奠定坚实基础。这篇博客将深入探讨如何从模型搭建开始,逐步完成一个模型的预训练过程,代码基于transformers库,并结合自定义的模块和配置,实现一个完整的预训练模型训练流程。
2025-02-08 17:11:20
936
原创 【大模型】从0到1训练一个大模型(二):训练tokenizer
从数据读取、tokenizer 初始化、训练器设置、模型训练到最终的保存和评估,每一个步骤都紧密相连,共同构成了一个完整的 tokenizer 训练流程。
2025-02-08 14:29:56
801
原创 【大模型】从0到1训练一个大模型(一):简介
整个项目的开发目录命名为Train_LLM,清晰的结构划分使得项目管理和代码维护变得更加高效。它主要包含四个核心模块:1.Codes该模块是存放所有开发代码的核心区域,涵盖了从数据处理到模型训练、预测以及部署等各个环节的脚本和程序,是项目逻辑实现的关键所在。文件主要包括:train_tokenizer.py、pretrain_model.py、train_sft.py、train_dpo.py、train_moe.py。2.Datasets。
2025-02-08 14:12:03
743
原创 【大模型】RAG-BM25
BM25是信息检索中的一种排序函数,用于估计文档与给定搜索查询的相关性。它结合了文档长度归一化和术语频率饱和,从而增强了基本术语频率方法。BM25 可以通过将文档表示为术语重要性得分向量来生成稀疏嵌入,从而在稀疏向量空间中实现高效检索和排序。Score(D,Q) 是文档 D 与查询 Q 的相关性得分。qi 是查询中的第 i 个词。f(qi, D)是词 qi 在文档 D 中的频率。IDF(qi) 是词qi 的逆文档频率。|D| 是文档 D的长度。avgdl是所有文档的平均长度。
2025-02-06 17:30:30
938
原创 【大模型】RAG-HyDE
HyDE,全称为Hypothetical Document Embeddings,是一种近来流行且广受欢迎的文档检索技术。它通过生成可用于回答用户输入问题的假设文档,来对齐查询和文档的语义空间。这些文档是由大型语言模型(LLM)根据它们自身学习到的知识生成的,然后这些文档被向量化,用于从索引中检索文档。HyDe的工作过程是从使用LLM基于查询生成假设文档开始的,在完成了假设文档的生成后将生成的假设文档输入编码器,将其映射到密集向量空间中。
2025-02-06 16:12:38
655
原创 【大模型】大模型检索增强生成(RAG)
RAG的本质是让模型获取正确的Context(上下文),利用ICL (In Context Learning)的能力,输出正确的响应。它综合利用了固化在模型权重中的参数化知识和存在外部存储中的非参数化知识(知识库、数据库等)。RAG可从外部知识库检索事实,以最准确、最新的信息提供给大语言模型(LLM),并让用户深入了解 LLM 的生成过程。它确保模型能够访问最新、可靠的事实,并且用户能够访问模型的来源,确保可以检查其声明的准确性和准确性。
2025-02-06 11:03:09
972
原创 【大模型】使用LLaMA-Factory
使用LLaMA-Factory进行模型微调。微调之前,首先需要按照步骤做镜像,做好镜像之后,按照微调数据格式、数据集注册、微调方法进行微调。
2024-10-28 11:34:04
973
原创 【大模型】RAG实践
为了便捷构建 LLM 应用,需要基于本地部署的LLM模型,自定义一个 LLM 类,将LLM接入到 LangChain 框架中。完成自定义 LLM 类之后,可以以完全一致的方式调用 LangChain 的接口,而无需考虑底层模型调用的不一致。已经使用OpenAI的接口标准部署了大模型,通过以下方式注册模型,接入LangChain。api_url: str = Field(..., description="远程API的URL")@property。
2024-10-22 11:02:13
342
原创 【大模型】GLM
如果GPT是ChatGPT的基础模型,ChatGLM的基础模型是GLM。GLM的核心创新点是提出了自回归空白填充(Autoregressive Blank Infilling)的自监督训练方式,通过调整空白块的大小,GLM即可以像encoder-only的模型那样进行NLU任务(文本分类等),也可以像decoder-only模型那样进行NLG任务(文本生成等),还可以像seq-to-seq模型那样进行条件NLG任务(对话,机器翻译等)。可谓是通过一个预训练任务,便实现了预训练模型三个结构的统一。
2024-08-23 11:07:19
1142
原创 【大模型】llama
RoPE 代表了一种编码位置信息的新方法。由于它是序列化数据,对于当前位置的 q_states, k_states 我们计算后,可以把它存储到 past_key_value=tuple( list[k_states], list[v_states]) 里面,方便后续直接调用。里面包含了 last_hidden_state(最后隐藏状态),past_key_values(缓存机制,保存最后层的一些输出),hidden_states(全部的隐藏状态),attentions (全部的注意力状态)
2024-08-19 14:04:02
828
原创 【深度学习】旋转位置编码
Transformer中提出得Sinusoidal位置编码是一种“想要成为相对位置编码的绝对位置编码”。一般来说,绝对位置编码具有实现简单、计算速度快等优点,而相对位置编码则直接地体现了相对位置信号,跟我们的直观理解吻合,实际性能往往也更好。由此可见,如果可以通过绝对位置编码的方式实现相对位置编码,那么就是“集各家之所长”、“鱼与熊掌兼得”了。Sinusoidal位置编码隐约做到了这一点,但并不够好。
2024-08-16 10:18:10
690
原创 【大模型】SFT和RLHF
方法优点缺点SFT1. 启动简单,仅需要问答对数据就可以进行训练;2. 训练简单,直接对LLM进行调参,大部分情况下,训练几个epoch就可达到预期;3. 显存资源相比于RLHF来说耗费低。1. 模型的效果非常依赖于SFT数据的质量,天花板取决于SFT数据标注的质量;2. 对标注要求高,对一条指令来说,要标注很高质的回答其实是一件非常困难的事情,既耗时又耗力。RLHF1. 直接利用人类偏好来进行指导大模型的训练,使大模型的输出更能满足人们的要求;
2024-08-14 20:40:55
1442
原创 【工程实践】向量数据库-Weaviate
Weaviate 是一种开源的类型向量搜索引擎数据库。Weaviate 允许您以类属性的方式存储 JSON 文档,同时将机器学习向量附加到这些文档上,以在向量空间中表示它们。Weaviate 可以独立使用,也可以与各种模块一起使用,这些模块可以为您进行向量化并扩展核心功能。Weaviate 具有 GraphQL-API,以便轻松访问您的数据。使用。
2024-08-13 15:14:18
276
原创 【工程实践】向量数据库-Milvus
前言向量数据库是一种专用系统,旨在通过向量嵌入和数值表示来管理和检索非结构化数据,这些数据项捕获图像、音频、视频和文本内容等数据项的本质。Milvus 支持对大量非结构化数据进行基于内容的搜索,超越了人工生成标签的限制。
2024-08-13 15:01:26
222
原创 【工程实践】向量检索
我们知道,计算机只是一个电子设备的集合体,它没法像人一样感知这个世界。怎样使得计算机也能认识这个世界呢?计算机只认识数字,它只能通过数字来量化这个世界,用一组数字来表示一个事物,这样的一组数字就是一个向量(Vector)。如果一个向量由n个数字组成,它就是一个n维向量。拿目前广泛使用的人脸识别技术来说,计算机从照片或视频中提取出人脸的图像,然后将人脸图像转换为128维或者更高维度的向量。那向量检索又是什么意思?
2024-08-13 14:57:47
555
原创 【大模型】GLM4-9B本地化部署
部署GLM4-9B需要的文件:1.Dockerfile、2.open_ai_service.py、3.requirements.txt、
2024-07-23 17:24:36
193
原创 【大模型】大模型微调方法总结(四)
在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。2.缺少深度提示优化,在Prompt Tuning和P-tuning中,连续提示只被插入transformer第一层的输入embedding序列中,在接下来的transformer层中,插入连续提示的位置的embedding是由之前的transformer层计算出来的,这可能导致两个可能的优化挑战。大模型的Prompt构造方式严重影响下游任务的效果。
2024-06-28 14:00:59
910
原创 【大模型】大模型微调方法总结(三)
因为之前的人工构建的template是离散的,且针对不同的下游任务,需要构建不同的模版。手动尝试最优的提示无异于大海捞针,于是便有了自动离散提示搜索的方法,但提示是离散的,神经网络是连续的,所以寻找的最优提示可能是次优的。Prompt token 的长度在20左右时的表现已经不错(超过20之后,提升Prompt token长度,对模型的性能提升不明显了),同样的,这个gap也会随着模型参数规模的提升而减小(即对于超大规模模型而言,即使 Prompt token 长度很短,对性能也不会有太大的影响)。
2024-06-26 10:29:57
845
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人