@BangBang
这个作者很懒,什么都没留下…
展开
-
通义Qwen实战(2): vllm框架部署实战
通义千问推荐我们使用vllm推理框架,这是国外开源的针对大模型的推理框架。它区别于直接使用huggingface 或者modescope 调用大模型的代码,使用vllm推理时它的速度会更快,并且显存的时候会下降。它会对模型进行结构化的优化,使得推理时耗费更低的显存和算力。因此,通常大模型的在线服务,不会直接使用huggingface 或modescope提供的api, 而是把底层的transformer模型交给专业的推理框架。vllm 推理框架的官网地址:(1) 通过使用。原创 2025-03-27 21:41:25 · 77 阅读 · 0 评论 -
通义Qwen实战(1): 环境安装及微调实战
在github上的代码,下载到本地。案例1(1)加载model 和分词器Tokenizegithub 上的qwen源码,它默认是支持下载的模型,虽然它把训练好的模型同时支持huggingface和modescope。如果使用的是transformers 这个库导入模型加载器和分词器,那么它是从huggingface下载的,它会很卡甚至超时。原创 2025-03-16 18:26:36 · 60 阅读 · 0 评论 -
VLM-E2E(1): Senna论文解读
端到端自动驾驶在大规模数据的支持下展现了强大的规划能力,但在复杂和罕见场景中仍因常识有限而表现不佳。相比之下,大规模视觉-语言模型(LVLMs)在场景理解和推理方面表现出色。未来的发展方向在于结合这两种方法的优势。以往使用 LVLMs 预测轨迹或控制信号的方法效果欠佳,因为 LVLMs 并不擅长精确的数值预测。本文提出了Senna,一种将 LVLM(Senna-VLM)与端到端模型(Senna-E2E)结合的自动驾驶系统。。Senna-VLM 采用多图像编码方法和多视角提示,以实现高效的场景理解。原创 2025-03-12 18:36:29 · 54 阅读 · 0 评论 -
Lora模型微调(2):代码实战
其中lora_layer 对象是LoraLayer实例化得到,它需要传入原先的layer,以及该layer对应的输入和输出的channel,以及秩数r 和加权因子alpha。在推理的时候,如果继续保留这样的Lora层,会发现推理的算力是增加的。通过以上代码,就完成了将模型中w_k,w_q,w_v层的Linear层实现替换为经过Lora封装的lora_layer的实现。,可以封装任意需要Lora作用的层,只需要传入原来的层raw_linear即可,可以即插即用,使用非常方便。原创 2025-03-09 17:37:33 · 72 阅读 · 0 评论 -
OmniDrive(2):环境搭建
项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。原创 2025-03-08 17:10:42 · 62 阅读 · 0 评论 -
OmniDrive(1): 论文解读
papers: OmniDrive: LLM-Agent for Autonomous Driving with 3D Perception, Reasoning and Planninggithub: https://github.com/NVlabs/OmniDrive近年来,多模态大语言模型(MLLMs)[1,24,31] 的快速发展及其卓越的推理能力,推动了端到端自动驾驶 [6,39,46,52,58] 领域的一系列应用。然而,将其能力从二维理解扩展到复杂的三维空间是一个关键挑战,只有克服这原创 2025-03-08 17:09:12 · 75 阅读 · 0 评论 -
手写LLM(2): 模型训练及代码详解
比如左边输入的是问题,右边对应生成答案。给出标题,在输入的时候,会将输入拼接为< <|im_start|>user>虞美人·曲阑深处重相见虞美人·曲阑深处重相见<|im_end|><|im_start|>assistant, 然后模型就会输出对应标题的诗词,直到遇到停止的token就会结束。openai在发明chatgpt的时候,它将encoder层去掉了,只保留了右边decoder部分, 它是一个decoder-only的模型,它不依赖于标注数据,是一个自回归的模型,利用网上的海量数据进行训练。原创 2025-03-08 16:35:48 · 342 阅读 · 0 评论 -
手写llm(1):实现BPE Tokenizer
以通义千问为例说明,来介绍LLM大模型中Tokenizer的使用。messages,在通义千问实现问答的时候,可以看到会使用tokenizer,通过加载预训练好的tokernizer权重来创建tokenizer对象,通常tokenizer是跟模型配对的,不同模型对应不同的分词器。通过向tokenizer 中传入一段文本text, 然后会返回一段分词后的id, 这些数字id对应这段text中的一个个单词。接着这些id对应为。原创 2025-03-08 16:34:52 · 45 阅读 · 0 评论 -
Lora模型微调(1): 原理讲解
参数高效微调(Parameter-Efficient Fine-Tuning,PEFT) 是一种在深度学习模型微调过程中,通过仅更新少量参数来适应新任务的技术。这种方法在保持模型性能的同时,显著减少了计算资源和存储需求,特别适用于大模型(如 GPT、BERT 等)的微调场景。Lora技术是为了规避大模型在反向传播时,显存资源及算力的消耗。它通过将一个大矩阵WWW, 分解为两个小矩阵WAW_AWA和WBW_BWB表示,通过定义秩数rrr来控制参数量,并且满足WA×W。原创 2025-03-08 16:24:05 · 291 阅读 · 0 评论 -
pytorch实现transformer(1): 模型介绍
Transformer 模型是由谷歌在 2017 年提出并首先应用于机器翻译的神经网络模型结构。机器翻译的目标是从源语言(Source Language)转换到目标语言(Target Language)。Transformer 结构完全通过注意力机制完成对源语言序列和目标语言序列全局依赖的建模。当前几乎全部大语言模型都是基于Transformer 结构,本节以应用于机器翻译的基于 Transformer 的编码器和解码器介绍该模型。Transformer它的提出最开始是针对NLP领域。原创 2024-05-08 12:48:38 · 1161 阅读 · 0 评论 -
多模态视觉大模型(2): 常用模型介绍(CLIP和LLAVA)
Loss使用的是交叉熵来定义,通过Loss来约束使得相同图像和文本对,他们的距离要足够近;其他不匹配的要尽可能远。我们可以换个视角来解决该问题,将它看做两个任务。第一个任务是针对每张图像我需要分类对,需要将它正确分类为对应的类别id;针对每个文本,我们也希望它也能够正确的分类到对应的类别id。所以可以通过两个交叉熵来实现,一个是文本分类的交叉熵,一个是图像分类的交叉熵,通过转置来实现。然后将两个交叉熵的损失加在一起就可以了,# 主函数# 加载数据集# 获取一个小批量的图像和标签。原创 2024-04-28 20:00:09 · 2526 阅读 · 0 评论 -
多模态视觉大模型(1):大模型的架构
多模态指的是输入数据的类型,它可以是文本、视频、音频等不同的模态形式,包括各种表格,json,图像以及各种传感器采的数据在深度学习传统模式一般都是采用单模态训练范式,我们针对每一个模态甚至是每个任务,需要用单独的一个模型训练得到,但作为我们人类,对外面世界的感官,其实一直都是使用多个模态的信息,比如我们看视频的时候,我们会看图像,听声音,同时也会经常看字幕,这就包含了图像、音频、文字这三种模态的信息,而且三种模态信息之间互补,比如声音没听明白的地方,结合字幕就能看懂。原创 2024-04-28 18:08:44 · 1194 阅读 · 0 评论 -
huggingface 中模型下载及部署演示
huggingface 可以理解为对于,提供了模型、数据集、类库(比如transformers|peft|accelerate)、教程等。官方地址:ModelsDatasetsCVNLP多模态音频60多万。原创 2024-04-27 23:39:19 · 3686 阅读 · 0 评论