大模型应用与实战
文章平均质量分 97
掌握大模型前沿技术,探索实战应用的无限可能:《大模型应用与实战》专栏专注于大语言模型的技术探索与实际应用,文章内容均分96以上。从推理、微调、RAG(检索增强生成)到Agent系统,涵盖前沿框架的实战经验与技巧分享。通过详细的实战记录与框架使用指南,帮助开发者和研究者掌握大模型的核心
羊城迷鹿
你相信魔法吗?(广东某魔法学院毕业生,欢迎私信交流最新咒语、魔药配方和炼丹秘笈)有大量大模型相关项目经验,接咨询。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大模型应用与实战:专栏概要与内容目录
掌握大模型前沿技术,探索实战应用的无限可能。原创 2025-02-09 10:33:35 · 1081 阅读 · 12 评论
-
Qwen2.5-VL多模态微调超参数深度解析(下):LoRA/Oft的精细化调优与性能边界探索
基于以上30+组实验的系统性分析,我们总结出以下LoRA调优最佳实践指南。原创 2026-01-30 16:03:29 · 635 阅读 · 0 评论 -
Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析
上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对原创 2026-01-29 23:11:38 · 695 阅读 · 0 评论 -
基于SSH的远程模型微调系统设计与实现
为了规范训练参数的输入,我们使用Pydantic定义了配置模型。这个模型包含了SSH连接配置、远程环境配置和训练超参数三个主要部分。"""微调配置模型"""# SSH连接配置# 远程环境配置# 训练配置这个配置模型不仅提供了参数验证功能,还为每个参数设置了合理的默认值。在实际使用中,调用者只需要提供必须修改的参数,其他参数会自动使用默认配置,大大简化了API调用的复杂度。通过SSH协议实现远程模型训练管理系统,我们解决了本地训练向生产环境迁移过程中的关键技术问题。原创 2026-01-30 23:19:19 · 315 阅读 · 0 评论 -
从LoRA到OFT:Qwen2.5-VL在昇腾910B与4090上的多模态微调实践与踩坑记录
原理: 在预训练权重旁注入低秩分解矩阵,仅训练轻量级适配器优势: 参数效率高(典型适配器仅58MB),显存占用低,训练快速适用场景: 资源受限环境下的快速迭代2. Full Fine-tuning (全量微调)原理: 更新模型全部参数优势: 理论性能上限最高,适合大规模数据场景劣势: 需要DeepSpeed ZeRO-3等分布式策略,显存需求大(22GB+)(约7GB模型文件)3. Freeze Fine-tuning (冻结微调)原创 2026-01-29 23:04:57 · 941 阅读 · 2 评论 -
华为昇腾NPU驱动问题排查与vLLM部署踩坑记录
本文记录了华为NPU服务器驱动失效问题的完整排查与解决过程。服务器重启后npu-smi info命令失效,经诊断发现是内核自动升级导致当前运行的5.15.0-153版本缺少Ascend驱动模块。通过对比/lib/modules目录下各内核版本的驱动文件,确认5.15.0-144-generic版本包含完整的24个驱动模块。随后修改GRUB配置回退至该内核版本,并通过锁定内核包和禁用自动升级机制防止问题再次发生。原创 2025-10-20 11:25:10 · 1486 阅读 · 0 评论 -
vLLM显存逆向计算:如何得到最优gpu-memory-utilization参数
本文提出了一种**逆向工程**的思路:基于vLLM显存占用的底层机制,通过精确计算模型权重、KV缓存、激活内存等各组件的显存需求,**倒推出最优的gpu-memory-utilization参数**。这种方法让我们能够在部署前就准确预估资源需求,实现一次配置、稳定运行。本文我们将从vLLM显存计算的核心原理出发,构建完整的倒推计算框架和源码,并通过大量实验验证其准确性(会有误差,但基本可以直接使用)。原创 2025-09-04 22:33:23 · 1497 阅读 · 0 评论 -
从KV Cache竞争到多卡优化:vLLM加载AWQ模型的显存优化全攻略
本文基于Qwen3-14B-AWQ和Qwen3-32B-AWQ模型的详细实验,通过50+组精确控制的对比测试,系统性地分析了vLLM中各个关键参数对显存使用的真实影响规律。我们不仅展示实验结果,更重要的是深入揭示了vLLM显存分配的底层机制——包括激活值显存与KV Cache之间的竞争博弈、多卡环境下的非线性分配规律,以及参数间复杂的相互作用关系。通过对这些机制的深度解析,我们构建了完整的显存优化方法论,成功实现了在RTX 4090服务器上单卡和多卡环境下的稳定部署,并提供了基于机制理解的科学调参策略。原创 2025-09-04 22:29:48 · 1170 阅读 · 1 评论 -
Dify知识库文档批量下载神器:一键导出所有文件到本地
在使用Dify进行知识库管理的过程中,我们经常遇到一个实际问题:如何将已上传到知识库中的文档批量下载到本地?目前Dify的管理界面虽然功能强大,但暂时没有提供直接的UI界面来批量导出或下载知识库内的文档。这意味着如果我们需要将知识库中的文件备份到本地或进行离线处理,只能通过API接口来实现。本文将详细介绍如何利用Dify的REST API构建一个完整的知识库文档下载解决方案,这也是目前实现知识库文件批量下载到本地的唯一可行路径。🎉进入大模型应用与实战专栏 | 🚀查看更多专栏内容首先,我们需要在Dify的原创 2025-07-07 09:18:52 · 2716 阅读 · 1 评论 -
将LLamaFactory微调功能包装为API:基于FastAPI的服务化改造
指定使用的GPU设备:基础模型路径template:模板类型,需与模型匹配cutoff_len:最大序列长度:训练轮数:每设备批次大小output_dir:模型保存路径dataset:训练数据集名称@app.post("/finetune/start", summary="启动微调服务")@app.post("/finetune/stop", summary="停止微调服务")@app.get("/finetune/status", summary="获取微调服务状态")原创 2025-07-07 09:18:05 · 1200 阅读 · 6 评论 -
大模型生成的代码如何安全执行?一文搞定Docker沙盒全流程
随着大语言模型(LLM)如ChatGPT、Claude等的快速发展,代码生成和自动化编程已成为AI应用的重要场景。然而,如何安全地执行AI生成的代码一直是一个关键挑战。本文将详细介绍如何从零开始搭建一个基于Docker沙盒和FastAPI的在线Python代码执行平台,为大模型应用提供安全、隔离的代码执行环境。原创 2025-07-01 08:59:42 · 1139 阅读 · 0 评论 -
大模型显存占用评估完整指南
大模型的显存大小,与大模型本身的参数量有关,与是训练还是推理过程有关,而训练过程采用的训练参数以及推理过程采用的推理参数也会影响。模型参数量:决定了模型权重的基础存储需求运行模式:训练过程需要存储梯度和优化器状态,显存需求远高于推理训练方法:全参数微调、LoRA、QLoRA等不同方法的显存需求差异巨大量化精度:FP32、FP16、INT8、INT4等不同精度直接影响显存占用推理参数:批次大小、序列长度、KV缓存等都会显著影响推理时的显存需求。原创 2025-07-01 09:02:48 · 852 阅读 · 0 评论 -
高并发场景下该选择哪个LLM推理框架?Ollama与vLLM实测对比
支持多种LLM推理框架的性能测试提供可视化的测试结果展示支持自定义并发数和数据集配置实时监控GPU资源使用状况。原创 2025-06-09 11:15:59 · 1087 阅读 · 0 评论 -
LLM推理后台极速搭建:FastAPI + 异步架构 + 动态路由实战
随着DeepSeek、Qwen等大语言模型的快速发展,越来越多的企业和开发者开始将大模型集成到自己的应用中。然而,在实际生产环境中,我们往往需要同时管理多个不同的模型和不同后台框架如ollama和vllm,处理高并发请求,实现流式响应,并且要求系统具备良好的可扩展性和稳定性。本文将详细介绍如何使用FastAPI构建一个功能完善的大模型管理后台系统。该系统不仅支持多模型统一管理,还具备异步处理、并发控制、流式响应、动态路由、请求统计等特性,能够满足从原型开发到生产部署的各种需求。🎉进入大模型应用与实战专栏原创 2025-06-09 11:17:09 · 457 阅读 · 0 评论 -
基于QwenAgent解锁Qwen3无思考高效模式:vLLM部署实战与Ollama模板定制
本文探索了Qwen3混合推理模型在不同部署方式下的表现优化方案。测试发现:Qwen3相比Qwen2.5在推理能力上显著提升,但默认会输出冗长的思考过程,影响响应效率。通过对比Ollama和vLLM两种部署方式,最终采用修改Ollama模板的方法,创建了自定义模型qwen3nt(no think),成功实现了推理能力与响应简洁性的最佳平衡。原创 2025-06-03 16:15:00 · 1258 阅读 · 1 评论 -
超越Dify工作流:如何通过修改QwenAgent的Function Call及ReAct方法实现对日期时间的高效意图识别
本文将介绍如何通过修改QwenAgent框架中的`FnCallAgent`和`ReActChat`类,实现一种更高效的意图识别流程。这种方法能够减少不必要的计算开销,更快速地识别用户意图并提取必要参数。这里以时间识别为例,介绍如何通过工具定义、意图识别、后处理实现对复杂时间问题中时间参数的准确提取。原创 2025-04-22 18:07:56 · 1277 阅读 · 3 评论 -
Agent系统工程实践:Langchain-Chatchat框架定制与优化
在路径下,我们可以定义自己的工具。一个优秀的工具定义不仅仅是功能的实现,更重要的是要使用异常检测语句为Agent提供明确的反馈,使其具备自我纠错的能力。"""导出plzg近XX个月汇总excel表格"""try:passexcept:return (f"开始时间戳格式错误:"""导出plzg近XX个月汇总excel表格。原创 2025-04-22 18:05:48 · 637 阅读 · 2 评论 -
如何通过微调Qwen/DeepSeek模型实现以思维链生成方式完成文本分类任务
目标:让大模型总结出每个分类类别的典型特征和识别规律工作原理:将同一类别的所有样本聚合,提供给大模型,让它分析这些样本的共性输出:每个类别的判别规则和特征描述这个阶段实际上是利用大模型来执行知识归纳任务,让它从大量同类数据中总结规律,相当于让大模型自己提炼出区分不同类别的关键特征。第一阶段的目标是利用大模型对每一类别的原始数据进行分析,总结出这个类别的规律特征。数据准备加载原始分类数据及标签基于原始数据生成SFT(监督微调)数据第一阶段:类别规律总结对每个类别的所有样本进行合并。原创 2025-04-14 09:26:18 · 1685 阅读 · 0 评论 -
如何解决使用transformer推理微调后的Qwen/DeepSeek生成式模型时出现的输出无限重复类问题
Qwen2.5是阿里巴巴推出的一系列大语言模型,提供基础版本(base)和instruct版本(用于指令微调)。经过指令微调,能够更好地理解和响应自然语言指令,通常用于对话和任务执行。Qwen2.5(基础版本)则是未经指令微调的模型,适用于更灵活的生成任务,但也可能由于缺乏微调导致某些行为异常,比如本文探讨的无限循环问题。问题本质:微调后的Qwen2.5模型配置文件中设置错误,导致生成无法正常终止排查方法:检查原始token输出和比较模型配置文件解决方案:修改配置文件或在代码中动态设置正确的。原创 2025-04-14 09:23:55 · 1429 阅读 · 0 评论 -
针对Qwen-Agent框架的源码阅读与解析:FnCallAgent与ReActChat篇
在中,我们已经了解了Agent基类的大体实现。这里我们就再详细学习一下类和ReActChat的实现思路,从而对Agent的两条主流技术路径有更深刻的了解。同时,在前面的文章中我们尝试了中英文提示词和并行调用工具,这里我们将追溯源码,看看它们的深层次实现以及失效的原因。原创 2025-04-06 18:50:22 · 1079 阅读 · 0 评论 -
Qwen-Agent框架的文件相关操作:从Assistant到BasicDocQA
Assistant类是Qwen-Agent框架中的一个核心类,它继承自,集成了RAG能力和函数调用能力。llm=llm,name=name,:可调用的函数列表llm:语言模型实例:系统消息name和:Agent的名称和描述files:文件列表rag_cfg:RAG配置BasicDocQA类继承自Assistantllm=llm,name=name,DEFAULT_DESC = '可以根据问题,检索出知识库中的某个相关细节来回答。原创 2025-04-06 20:37:46 · 842 阅读 · 0 评论 -
基于Transformer框架实现微调后Qwen/DeepSeek模型的流式推理并封装成接口
在大语言模型(LLM)应用的实际落地过程中,流式推理(Streaming Inference)是提升用户体验的关键技术。与[《基于Transformer框架实现微调后Qwen/DeepSeek模型的非流式批量推理》](https://wangjn.blog.csdn.net/article/details/146283684)中使用的传统的批量推理不同,流式推理允许模型在生成过程中实时返回部分结果,从而实现类似于人类对话的交互体验。本文将详细介绍如何基于Transformer框架对微调后的Qwen2和Dee原创 2025-04-05 10:25:35 · 1215 阅读 · 0 评论 -
基于Xinference框架实现微调后Qwen/DeepSeek模型的流式与非流式批量推理
Xinference是一个强大的分布式推理框架,支持多种大语言模型的部署和推理。而DeepSeek作为中文开源大模型的佼佼者,具有卓越的推理能力和知识储备。将两者结合,可以构建高效且灵活的LLM推理服务。流式推理:适用于需要实时交互的场景,如聊天机器人非流式推理:适用于批量处理或需要一次性获取完整结果的场景非常重要的一点是修改模板。由于我们使用思维链微调了DeepSeek模型(详见《深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题》原创 2025-04-05 10:27:05 · 1480 阅读 · 1 评论 -
基于Transformer框架实现微调后Qwen/DeepSeek模型的非流式批量推理
在基于LLamaFactory微调完具备思维链的DeepSeek模型之后(详见《深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题》),接下来就需要针对微调好的模型(注意需要有一个本地的模型文件,全量微调就是saves下面的文件夹,如果是LoRA,还需要进行一步导出模型的操作),实现快速高效的模型推理。本文将详细分享如何基于Transformer框架,通过多GPU并行实现DeepSeek模型的非流式批量推理,并解决在实践中遇到的关键技术挑战如输出结果错乱、to原创 2025-04-03 18:59:47 · 1652 阅读 · 11 评论 -
微调这件小事:模板是什么?一文从LLaMA-Factory源码看穿Template的面纱
我们已经得知了instruction所真正扮演的角色,下面我们就在保持调试方法不变的情况下,沿着数据集处理的逻辑往前一步,继续探索关于Template的一些细节,搞懂模板这个总是碰到又说不太清的关键概念。模板从复杂的格式(支持工具调用、思考过程等)转换为简化的Jinja2格式,便于与tokenizer集成。原创 2025-03-29 17:24:39 · 1538 阅读 · 0 评论 -
微调这件小事:训练集中的输入数据该作为instruction还是input?从LLaMA-Factory的源码中寻找答案吧~
在之前的博文中,我们已经了解了LLaMA-Factory框架执行各类任务的流程。这两个问题其实在处理流程上是一体的,由于篇幅限制,我们这里先聚焦于第一个问题。原创 2025-03-23 21:52:41 · 1249 阅读 · 6 评论 -
深入探究并解决LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题
在Deepseek模型的落地应用中,我们期望它不仅能够给出准确答案,还能展示其推理过程。本文记录了我在LLamaFactory微调和测试DeepSeek蒸馏模型时遇到的思维过程展示问题,以及从问题发现到最终解决的全过程。通过对模型配置、提示模板和界面渲染的系统性优化,成功实现了蒸馏模型思考过程的直观可视化展示。原创 2025-03-06 14:28:21 · 1680 阅读 · 12 评论 -
多示例演绎基于DeepSeek和Dify工作流实现大模型应用的快速搭建
从实际业务需求出发,详细展示如何利用DeepSeek模型与工作流的强大组合,快速构建四个实用有趣的AI应用工具:对话主题提取、多轮文件问答、PPT助手和图表自动生成。原创 2025-02-26 19:02:59 · 1700 阅读 · 0 评论 -
如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务
DeepSeek开源的其他模型都太大了,只有基于Qwen蒸馏得到的模型较小可以用来训练。特别说明:当输入的是嵌入向量(inputs_embeds)而不是输入ID(input_ids)时,系统无法判断填充令牌,因此会直接取每一行的最后一个值。注意虽然这些模型都是生成式模型,但是由于它们都是基于transformer架构,所以本质上和Bert等模型一样,是可以训练它们用来做传统的文本分类的。但是注意,这只是数据并行而不是模型并行,如果要实现一个显卡无法加载的大模型的多卡训练,请使用deepspeed。原创 2025-02-21 17:25:30 · 1409 阅读 · 6 评论 -
微调这件小事:深入修改源码,实现LLaMA-Factory同时测试多个数据集并汇总结果
在使用LLaMA-Factory进行微调的时候,我们常常需要同时微调多个任务,并且希望能查看微调后的模型在不同任务上的表现,从而有针对性地对数据集进行调整,提升其整体效果。然而LLaMA-Factory的训练和测试默认是将所有数据集合并后打包在一起的,这无疑增大了测试的麻烦程度。本文以微调text2sql任务为例,探索了手动测试多数据集的方式,并在研究项目源码之后对其进行了修改,完成了对多文件的自动化测试并自动生成总结文件。原创 2025-02-11 12:14:48 · 994 阅读 · 0 评论 -
微调这件小事:当我们执行LLaMA-Factory,我们到底在执行什么
其实LLaMA-Factory的执行路径很简单,本质上就是靠webui收集微调参数,靠launcher执行微调算法。只是中间多了两步命令行执行以实现分布式微调,结果增大了调试的难度。如果想深入探索LLaMA-Factory的算法实现,那就先设法生成文件,再根据这个文件去调试。原创 2025-02-11 12:13:59 · 4058 阅读 · 0 评论 -
针对Qwen-Agent框架的Function Call及ReAct的源码阅读与解析:Agent基类篇
的基础上,进一步阅读Qwen-Agent框架涉及到的相关源码,深入解析不同参数对于工具调用效果的作用方式。的写法取出了迭代器的最后一个值,也就是完整的返回结果。这是一个抽象基类,定义了Agent的基本接口和功能。7. 允许不同的 Agent 实现不同的处理逻辑。自动检测消息是中文还是英文,设置相应的语言参数。类,因此我们也按照自底向上的顺序,缕清从。方法本质上是返回了一个流式的迭代器,而。这是一个抽象方法,代表了具体的执行逻辑。8. 确保了输入输出的一致性。6. 提供了统一的接口。这是一个公共接口方法。原创 2024-11-28 23:03:02 · 1463 阅读 · 0 评论 -
LLaMA-Factory如何解决数据集加载时json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 214)的错误
可以看出对于JSON类文件有两种处理方式,一种是整体读取,一种是按行读取,这里显然属于后者。下载了一个物理学相关指令微调数据集,但是尝试预览数据集时,发生了如下错误。手动查看JSON文件内容,发现确实跟常规的JSON文件不太一样。输入内容,果然报错了,错误原因是两个JSON块之间没有分隔符。将文件后缀改成jsonl,并且修改。重新尝试预览数据集,成功~原创 2024-11-28 14:38:24 · 948 阅读 · 0 评论 -
使用LLaMA-Factory微调时的数据集选择
LLamaFactory 提供了丰富的默认数据集,涵盖了自然语言处理(NLP)领域的多种任务。这些数据集广泛应用于各类研究和实际应用中,帮助训练更强大的模型。接下来,我将详细介绍这些数据集的种类、特点、使用方法以及如何选择适合您的任务的数据集。数据集名称主要特点适合任务语言来源高质量指令-响应对指令跟随、文本生成英文人工生成GLaIVE工具使用、API调用工具使用、多任务英文人工生成LLaMA多模态(文本+图像)、指令跟随指令跟随、文本生成、图像生成多语言人工生成。原创 2024-11-25 21:07:29 · 1497 阅读 · 0 评论 -
使用LLaMA-Factory微调时的问题与解决方案记录
启动网页时使用这种执行命令。启动网页时使用这种执行命令。训练时碰到了这种错误。原创 2024-11-21 09:04:54 · 1934 阅读 · 0 评论 -
基于Qwen-Agent框架的Function Call及ReAct方式调用自定义工具
自定义工具比较麻烦,要严格按照下面的格式才可以,否则会提示工具没有注册的错误。description = "两个整数相乘"'description': '第一个整数','description': '第二个整数',],"""两个整数相乘"""description = "两个整数相加"'description': '第一个整数','description': '第二个整数',],"""两个整数相加"""按照以下方式接入Ollama模型的参数设置。原创 2024-11-19 16:12:06 · 1740 阅读 · 0 评论 -
基于Qwen2.5在多框架下的Function Call尝试及总结
本文主要基于ollama加载的qwen2.5模型以及一套简单通用的工具定义方式,探索如何将其适配不同的框架,实现对工具的准确调用。从结果来看,Langchain-chatchat可以正常调用GPT3.5,但是无法完成qwen2.5的工具调用,Langchain-ollama可以完成qwen2.5的工具调用,但是只调用了两个工具中的一个,而Ollama和Qwen-Agent都可以满分完成工具调用任务。原创 2024-11-13 17:17:27 · 2538 阅读 · 0 评论 -
langchain-ChatGLM源码阅读:前端样式
监听到前端的事件后调用的回调函数,负责实现前后端交互。需要注意的一点是,chatbot中显示新的聊天内容并不是在原来的基础上添加,而是从头到尾的重新打印,所以基本上每个函数都要传旧的history和返回新的history。使用gradio设置页面的视觉组件和交互逻辑。原创 2023-08-01 08:23:23 · 3478 阅读 · 0 评论 -
langchain-ChatGLM源码阅读:参数设置
虽然放在了模型配置那一页,但实际上还是用来控制上下文关联里面的内容条数k的,不知道为什么写了两遍。其实就是要存多少历史记录,如果为0的话就是在执行当前对话时不考虑历史问答。这些参数没有在前端显式地给出,而是写死在了模型定义里。原创 2023-08-06 00:36:10 · 3098 阅读 · 0 评论 -
langchain-ChatGLM源码阅读:模型加载
:在这一部分代码中,通过调用 get_balanced_memory 函数来获取一个适当的内存分配方案,执行完后每个卡都会产生少量的显存占用。作用:将配置对象的类与模型类或对象建立关联,以便根据配置来获取相应的模型类或对象。作用:遍历权重文件分片,逐一加载这些分片,但会跳过那些只包含磁盘上载权重的分片文件,显示加载的进度条,也就是下面这个东西,但此时模型权重还没有加载到显存中。包路径:site-packages/transformers/models/auto/auto_factory.py。原创 2023-08-19 12:55:25 · 1910 阅读 · 0 评论
分享