小白也能懂!通义千问v2.5大模型微调全攻略

【AIGC调研系列】通义千问、文心一言、抖音云雀、智谱清言、讯飞星火的特点分析 通义千问、文心一言、抖音云雀、智谱清言、讯飞星火这五款AI大模型各有特色,它们在市场上的定位和竞争策略也有所不同。这些AI大模型各有侧重,通义千问在长文档处理和市场分析方面表现出色[18];文心一言在多平台上提供服务,但在某些评测中回答质量有待提高[2][13];抖音云雀可能在内容创作和社交媒体应用方面有优势;智谱清言在数据分析和知识推理方面可能有较强能力;讯飞星火则在技术创新和商业落地方面展现了强大的竞争力[4][6][14]。 阅读详情
AI摘要

本文详细介绍了通义千问v2.5大模型微调的全过程,包括微调的必要性、定义、步骤以及如何使用Llama Factory进行无代码微调。文章还提供了数据准备、环境配置和模型训练的详细指导,旨在帮助读者快速掌握大模型微调技术。

春节这几天Deepseek的新闻铺天盖地,随着大模型技术指数级发展,越来越多的人从刚开始尝试着在自己的工作和生活中使用某个大模型工具,到现在很多人已经无法在工作和生活中离开它们,且经常是多个大模型工具一起使用,覆盖对话、图片生成、视频生成、文档生成等等,这也更进一步推进了大模型在不同领域朝着应用落地快速发展,同时我们也对大模型有了更多的期待和更高的要求,但其实这些通用大模型就像是一个个知识渊博但还稍显 “泛用” 的智者,它通过在海量数据上进行无特定任务指向的训练,积累了极其丰富的语言知识和语义理解能力,但在面对特定领域、特定任务时,这种通用性无法满足我们更多的、更专业技能的准确支持。

为什么需要做微调

为了能让大模型更好的理解我们的工作内容,提供更针对自己工作领域更专业的帮助,就需要对大模型进行微调了,以便训练出在某个领域、某个行业更专业的大模型,一般我们管这样的大模型叫行业大模型或者领域大模型等。

什么是大模型微调

简单来说,就是在预训练大模型的基础上,利用特定领域或特定任务的数据,对模型进行进一步训练。

微调的过程主要涉及调整模型的部分参数**。**模型参数就像是控制模型行为和决策的 “旋钮”,预训练时,这些旋钮被大致调整到了适应通用任务的位置。而微调时,通过让模型学习特定数据,就可以对这些旋钮进行更加精细的调校,使模型的输出更贴合特定任务的需求。

如何微调

先确认要微调的模型

目前市面上的大模型可以分为开源大模型和闭源大模型两种,我倾向于用开源大模型做微调,个人认为有这三点独特的优势:

  • 成本低:

    • 模型代码和权重易于获取无需授权。
  • 易定制化:

    • 允许用户深入了解模型的内部结构和算法逻辑,并根据自己的特定需求,对模型的架构、参数等进行自由修改和调整,实现高度定制化。
  • 知识共享:开源大模型拥有活跃的社区,开发者和研究人员可以在社区中分享自己的微调经验、技巧和代码。

我平时用的比较多的开源大模型是阿里的通义千问v2.5和Deepseek R1,它们微调所使用的工具有些差异,所以,我打算通过两篇文章分别聊一下针对它们的微调过程,这篇就先来讲讲通义千问v2.5的微调。

微调过程(0代码)

其实网上介绍微调通义千问v2.5的文章挺多的,方法也不止一个。这里我推荐官方的方法。

1. 打开官方文档。

可以从Qwen2.5在Github上的入口进入官方文档。在README页面中,官方文档介绍了如何做后训练,目前只支持SFT,后续会支持RLHF。

img

2. 点击Documentation,进到文档页面后,从左边的目录中找到TRAINING及SFT,就可以看到官方推荐的Llama Factory训练框架了。

img

Llama Factory简单介绍:

它是由零隙智能(SeamlessAI)开发的低代码大模型训练开源框架,支持100 多种主流开源大语言模型,集成 Lora、QLora 等技术,在不改变预训练模型原始权重参数的情况下,引入小的可训练矩阵实现微调,缓解内存和计算资源限制。重要的是,它提供在 Web UI方式,可以通过前端页面快速进行训练参数选择,无需手写代码就可以进行训练。

回到Qwen的微调训练页面,整体微调内容分5个章节,主要流程集中在1~4章节,那我们就按照文档的顺序一步一步的进行微调吧。

3. “工欲善其事,必先利其器”

3.1 安装python环境,搞大模型怎么离得开python。安装方法非常简单,百度搜索python官网,根据自己的操作系统版本下载最新的安装包,并进行安装即可,注意要把python设置到系统环境中,方便随时可以调用。

3.2 安装Llama factory及配置,Llama factory安装过程可以参考Llama Factory官网教程,教程通过图文非常详细的介绍了安装步骤。官网安装说明链接如下(点击打开):

安装 - LLaMA Factory

3.2.1. 安装Cuda

img

3.2.2 安装Llama Factory

分别执行下面的指令,将Llama Factory从github上面下载下来,并安装相应的依赖。

img

针对官方说的第三步的依赖安装,我还安装了swanlab工具,SwanLab 是一款开源、轻量的 AI 模型训练跟踪与可视化工具,提供了一个跟踪、记录、比较、和协作实验的平台。具体命令如下

img

swanlab不是必须的,仅供参考。

img

Llama Factory代码下载

3.3 Deepspeed和Flash Attention安装

  • DeepSpeed 是微软开源的一个用于深度学习训练的优化库,专为大规模模型和数据集设计,可显著提升训练效率和可扩展性。

  • FlashAttention 是由斯坦福大学和谷歌大脑的研究人员开发的一种高效注意力机制算法,旨在解决传统注意力机制在处理长序列数据时存在的计算和内存效率问题。

这两项安装属于可选安装,所以,大家根据自己情况选择是否安装即可,具体安装命令如下:

img

以上就完成了所有需要工具的安装和环境的配置。

4. 微调训练的数据准备

这步我认为是整个微调过程中最需要我们关注和重点投入的步骤,前面说了我们进行微调的一个主要目标是可以根据自己的特定需求,对模型进行高度定制化的训练,实现在特定领域提供更专业更准确支持的要求。

4.1 准备数据文件

创建一个Json形式的文档,例如:

{
"instruction":"计算这些物品的总费用。",
"input":"输入:汽车 - $3000,衣服 - $100,书 - $20。",
"output":"汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
},

由于Llama Factory当前支持 Alpaca 格式和 ShareGPT 格式的数据。所以,我们也可以根据自己的需求提供符合这两种格式的数据来微调Qwen。
4.2 Alpaca格式
Alpaca格式支持以下5类任务,不同任务的格式是有差异的,这里我们的微调工作主要是指令监督微调任务,所以,此处我只介绍一下这个任务的格式。

  • 指令监督微调
  • 预训练
  • 偏好训练
  • KTO
  • 多模态
[
    {
        "instruction":"user instruction (required)",
        "input":"user input (optional)",
        "output":"model response (required)",
        "system":"system prompt (optional)",
        "history":[
                ["user instruction in the first round (optional)","model response in the first round (optional)"],
                ["user instruction in the second round (optional)","model response in the second round (optional)"]
        ]
    }
]

其中,instruction、input、output3项是必填内容。另外,system 列对应的内容将被作为系统提示词。history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。

4.3 ShareGPT 格式

ShareGPT 格式支持以下3类任务,和Alpaca格式一样,这3类任务的格式也是有差异的,针对我们的微调工作,我们仍然只会用到指令监督微调任务,所以,此处我也只介绍这个任务的格式。区别于Alpaca格式,sharegpt 格式支持更多的角色种类,例如 human、gpt、observation、function 等等。

  • 指令监督微调
  • 偏好训练
  • OpenAI格式
[
    {
        "conversations":[
            {
                "from":"human",
                "value":"user instruction"
            },
            {
                "from":"gpt",
                "value":"model response"
            }
        ],
        "system":"system prompt (optional)",
        "tools":"tool description (optional)"
    }
]

注意其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置。

大家基于自己的情况,选择其中一种格式,按照每个字段内容的介绍,输入想要微调的领域知识和内容就好了,当然数据量越多越好呀。

4.4 数据存储和配置

  • 将以上Json形式的数据文档保存在Llama Factory安装路径下的data子文件夹内。

  • 将数据的定义输入到data子目录下的dataset_info.json文件中

    • Alpaca格式:
"dataset_name":{
    "file_name":"dataset_name.json",
    "columns":{
        "prompt":"instruction",
        "query":"input",
        "response":"output",
        "system":"system",
        "history":"history"
    }
}
  • ShareGPT格式
"dataset_name":{
    "file_name":"dataset_name.json",
    "formatting":"sharegpt",
    "columns":{
        "messages":"conversations",
        "system":"system",
        "tools":"tools"
    },
    "tags":{
        "role_tag":"from",
        "content_tag":"value",
        "user_tag":"user",
        "assistant_tag":"assistant"
    }
}

5. 使用Llama Factory进行微调

这里我们使用Llama Factory的Web UI来进行微调,直观且0代码。

在命令行终端输入如下命令即可打开页面:

img

img

5.1 在最上面的模型选择下拉框中选择想要微调的模型,这里我选择的参数量3B的Qwen2.5模型,右边的路径输入模型在本地的位置。

小建议:建议大家将被微调的模型下载到本地来进行,我是从魔塔网站下载的,另外,魔塔网站上面也有很多不同领域的数据集可以下载使用。

5.2 微调选项可以选择Lora,第一次微调不需要输入Checkpoint path,这个是输入将微调后的新模型路径的。*
*

5.3 Stage下拉框选择"supervised fine tuning"。Dataset输入框输入上一步的数据文档。(这里为了Demo目的,我选择工具自带的alpaca_zh_demo.json)

5.4 其它的选项大家根据自己电脑的配置来适当选择就可以了。需要注意的一个参数是"Cutoff Length",它是训练数据的最大长度,控制此参数以避免 OOM 错误。

这里我还打开了前面安装的swanlab,别忘了输入swanlab的apikey。

5.5 点击"Start"按钮就可以开始训练了。在命令行终端可以看到随着训练的进行,模型的loss在下降。在工具界面也有对应的图形方便查看训练的趋势。

img

img

这里swanlab的优势就显示出来了,提供了更多更全面的图形来帮助我们判断本次训练的效果。

img

5.6 通过在工具中选择"Chat"标签来快速验证微调的效果。在输入框输入相关问题看模型的回答内容。别忘了在"Checkpoint path"输入微调版本的路径,然后再到"Chat"标签来看效果。

6. 合并 LoRA

官方文档特别提到了,如果使用 LoRA 训练模型,则可能需要合并适配器参数添加到 main 分支上。需要执行如下命令来合并。

img

以上就是基于官方推荐的方案进行通义千问v2.5模型微调的步骤。微调次数很大程度上取决于数据的质量和数量,以及个人制定的衡量指标的标准。另外,对于显存不大的机器,建议直接下载参数量较小的原始模型。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

通义千问:开启大语言模型的无限可能 通义千问是阿里云自主研发的大语言模型,自诞生起便备受瞩目,在大语言模型领域迅速崭露头角 ,成为人工智能发展进程中的关键力量。它承载着阿里巴巴在人工智能领域多年的技术积累与创新探索,以强大的语言理解、生成和交互能力,为用户带来了全新的智能体验。在当今数字化时代,大语言模型已成为推动各行业变革的重要引擎。通义千问凭借其卓越的性能,能够深入理解自然语言的语义和语境,精准捕捉用户需求,无论是日常的信息查询、创意写作,还是专业领域的知识问答、代码编写,它都能提供高质量的回答和解决方案,展现出强大的通用性和适应性。通义 阅读详情

相关推荐

大模型实战—通义千问大模型微调

在之前的文章中,我分享了一些使用大语言模型开发应用的方法,也介绍了几个开源大语言模型的部署方式,有同学给我留言说想知道怎么训练自己的大语言模型,让它更贴合自己的业务场景。完整的大语言模型训练成本比较高昂,不是我们业余玩家能搞的,如果我们只是想在某个业务场景或者垂直的方面加强大模型的能力,可以进行微调训练。本文就来介绍一种大语言模型微调的方法,使用的工具是我最近在用的 Text Generation WebUI,它提供了一个训练LoRA的功能。

2401_84052244的博客 4387

LLM系列 | 26:阿里千问Qwen模型解读、本地部署

Qwen 是一个全能的语言模型系列,包含各种参数量的模型,如 Qwen(基础预训练语言模型,即基座模型)和 Qwen-Chat(聊天模型,该模型采用人类对齐技术进行微调)。基座模型在众多下游任务中始终表现出卓越的性能,而聊天模型,尤其是使用人类反馈强化学习(RLHF)训练的模型,具有很强的竞争力。聊天模型Qwen-Chat拥有先进的工具使用和规划能力,可用于创建agent应用程序。即使在使用代码解释器等复杂任务上,Qwen-Chat与更大的模型相比也能表现出极具竞争力的性能。

ljp1919的专栏 2万+

Quartus的Signal Tap II的使用技巧

Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制引脚,将内部引号引出至引脚I/O上,接着进行板级调试。

qq_37624854的博客 5899

阿里杀疯了,快来看!千问大模型部署、微调和评估指南

阿里云通义千问2.5模型支持两种微调算法:SFT(Supervised Fine-Tuning)和DPO(Dialogue Policy Optimization)。这两种算法允许用户根据特定的应用场景和数据集对预训练模型进行微调,以提高模型在特定任务上的表现。SFT算法:SFT是一种监督学习微调方法,适用于有标注数据的场景。它通过最小化预测输出和真实标签之间的差异来调整模型参数,以提高模型在特定任务上的准确性。SFT训练算法支持使用JSON格式输入,每条数据由问题和答案组成,分别用和"output"

2401_84495872的博客 7313

网易 广州 梦幻西游端游 客户端社招笔试题 2024

4道算法题,时间2小时,牛客网笔试注:采用OJ模式,需要自己处理输入、输出。

z2014z的博客 1813

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1413

性能提升3倍!通义千问2.5+vLLM优化全攻略

本文介绍了基于星图GPU平台自动化部署通义千问2.5-7B-Instruct镜像的完整方案,结合vLLM推理加速与OpenResty负载均衡,显著提升大模型服务吞吐性能。该配置适用于智能客服、内容生成等高并发AI应用场景,实现低延迟、高可用的生产级部署,助力开发者高效构建本地化大语言模型服务。

weixin_36074800的博客 1113

Android15音频进阶之4种调试线程死锁利器(八十九)

本篇目的:Android15音频进阶之4种调试线程死锁利器对于开发者来说,最令人头疼的,莫过于多线程交互出问题的时候,我们应该从哪里找突破口呢?下面来介绍一下调试Android音频中线程死锁的四种方案线程死锁是并发编程中常见的问题之一,它指的是在多个线程竞争资源的过程中,由于相互等待对方持有的资源而无法继续执行,从而导致所有线程都无法向前推进的现象。死锁不仅会导致系统性能严重下降,甚至可能导致整个系统崩溃。线程死锁的产生有四个必要条件:互斥条件:资源不能被多个线程共同使用,只能由一个线程独占。

Android系统攻城狮 1997

大模型LLM Qwen2.5全攻略:全链路体验、下载、推理、微调、部署实战,非常详细收藏这一篇!

在数学专用语言模型方面,通义千问上个月发布了首批模型 Qwen2-Math,而这一次,相比于 Qwen2-Math,Qwen2.5-Math 在更大规模的数学相关数据上进行了预训练,包括由 Qwen2-Math 生成的合成数据。Qwen2.5-Math-72B-Instruct 的整体性能超越了 Qwen2-Math-72B-Instruct 和 GPT4-o,甚至是非常小的专业模型如 Qwen2.5-Math-1.5B-Instruct 也能在与大型语言模型的竞争中取得高度竞争力的表现。

2401_84495872的博客 1761

MySQL数据库面试题(2022版)

序列号 内容 链接 1 Java基础知识面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124023797 2 Java集合容器面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124043363 3 Java异常面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124....

拉格朗日的学习笔记 1万+

YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破

目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。

FJN110的博客 148

开箱即用:通义千问2.5-7B的Docker镜像使用全攻略

本文介绍了基于星图GPU平台自动化部署通义千问2.5-7B-Instruct镜像的完整流程,结合vLLM与Open WebUI实现高性能推理与可视化交互,适用于模型微调、AI应用开发等场景,助力开发者快速构建本地化大语言模型服务。

weixin_35829279的博客 191

如何学习总线技术

如何学习总线技术 以形象生动的比喻来描绘了总线技术的基本思想,指出了总线的基本分类和总线传输的基本原理,以及在学习过程中应当掌握的最基本的知识,对初学者有起到抛砖引入的作用。 0引言   如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年

ce123的技术博客 8528

通义千问2.5-7B-Instruct多框架支持:GPU/CPU/NPU部署全攻略

本文介绍了基于星图GPU平台自动化部署通义千问2.5-7B-Instruct镜像的全流程,支持GPU、CPU及NPU多架构适配。该镜像可高效应用于模型微调、AI应用开发等场景,结合vLLM、llama.cpp等框架实现高性能推理,满足本地部署与商业化需求。

weixin_35755823的博客 431

基于深度学习的番茄成熟度检测系统——YOLOv5、YOLOv8、YOLOv10及UI界面的实现

YOLO是一种快速且准确的目标检测模型,近年来,YOLOv5、YOLOv8和YOLOv10作为YOLO系列的重要版本,分别在速度、精度和效率上进行了优化。下面我们简要介绍这些模型。本文介绍了如何基于YOLOv5、YOLOv8和YOLOv10等深度学习模型,结合PyQt5设计一个番茄成熟度检测系统。通过训练模型、优化算法和设计用户友好的界面,我们能够构建一个高效且准确的番茄成熟度检测系统,广泛应用于农业自动化和智能化管理中。

YOLO 1002

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

手机跑AI不是梦:通义千问2.5-0.5B边缘计算全攻略

本文介绍了基于星图GPU平台,如何自动化部署通义千问2.5-0.5B-Instruct镜像,实现轻量级大模型在边缘设备的高效运行。该镜像适用于手机端AI助手、离线对话系统等场景,支持本地化模型微调与私有数据处理,兼顾低延迟与隐私安全,助力开发者快速构建移动端AI应用。

weixin_32311823的博客 533

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

阿里通义千问进阶版:Qwen2.5-7B-Instruct部署全攻略

本文介绍了如何在星图GPU平台上一键自动化部署🔥Qwen2.5-7B-Instruct镜像,实现高效AI对话与内容生成。该70亿参数大模型支持复杂代码编写、长文创作和技术解答,通过优化的Streamlit宽屏界面提供专业级交互体验,适用于开发辅助、技术文档生成等场景。

weixin_42579969的博客 322

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

通义千问2.5-0.5B-Instruct入门必看:手机端AI模型部署全攻略

本文介绍了基于星图GPU平台自动化部署通义千问2.5-0.5B-Instruct镜像的完整流程,重点实现该轻量级大模型在手机端的本地化推理。通过Ollama与Termux等工具,可在安卓设备上高效运行模型,适用于离线AI助手、结构化数据生成及多语言任务处理等场景,助力开发者快速构建隐私安全、响应迅速的移动端AI应用。

weixin_35755434的博客 405

RTX3060也能跑!通义千问2.5-7B-Instruct本地部署全攻略

本文介绍了如何在星图GPU平台上自动化部署通义千问2.5-7B-Instruct镜像,实现高效本地大模型推理。该镜像经过优化后仅需4GB显存,可在RTX3060等消费级显卡上流畅运行,适用于代码生成、长文本理解等AI应用场景,为开发者提供便捷的商用级大模型体验。

weixin_42603332的博客 482

爆肝整理 | 阿里Qwen3大模型编程开发全攻略:代码生成效率飙升300%,小白秒变大神!

阿里通义千问大模型以Qwen3系列为核心,涵盖多模态和代码专项模型。Qwen3-Coder-Plus提升代码生成效率,强化终端任务功能和安全性。阿里通过开源策略构建繁荣生态,全球下载量超6亿次,衍生模型超17万个。未来将聚焦技术迭代、C端超级应用和B端行业渗透,向超级人工智能迈进,为开发者提供强大AI编程支持。

m0_56255097的博客 2243

大模型微调全攻略:11种微调方法详解,从入门到精通!

本文系统介绍了11种大模型参数高效微调方法,包括前缀调优、提示调优、P-Tuning v2、LORA及其优化版本DyLORA、AdaLORA、QLORA、OA-LORA、LongLORA、VeRA和S-LORA。这些方法通过冻结预训练模型参数,优化少量特定向量或矩阵,显著减少训练参数和计算资源,同时保持或提升模型性能,为不同规模和场景的LLM微调提供了高效解决方案。

WANGJUNAIJIAO的博客 1130

零基础玩转通义千问2.5:Docker+vLLM推理加速全攻略

本文介绍了如何在星图GPU平台上自动化部署通义千问2.5-7B-Instruct镜像,实现高效大语言模型推理。依托vLLM加速与Docker封装,用户可快速启用指令遵循、工具调用与结构化输出能力,典型应用于智能客服对话、自动化工单处理等企业级AI场景。

weixin_34620658的博客 129
上一篇: 逆天了!《大模型白盒子构建指南》毕业,仅需2G显存,手搓关于LLM的一切!
下一篇: AI产品经理火了!吴恩达说AI产品经理未来缺口巨大,你准备好了吗?
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值