1.软件配置管理相关优势
2.Linux内核中Makefile、码管Kconfig和.config的码管关系
3.3D月光宝盒游戏机模拟器方案源码项目解析(1)
4.管ç代ç çå·¥å
·
5.手把手教你微调百亿大模型:基于Firefly微调Qwen1.5-14b
软件配置管理相关优势
国内软件企业日益认识到配置管理在提升软件开发管理效率和竞争力中的关键作用。为满足市场的码管需求,Hansky公司在中国推出了领先行业的码管软件配置管理解决方案——包括配置管理工具Firefly和变更管理工具Butterfly。 Firefly作为Hansky的码管软件配置管理系统,它是码管扫码取餐小程序源码一款高效、快速的码管工具,支持多平台应用,码管适用于企业内部各团队和项目。码管Firefly的码管强大功能体现在对软件发布时间、版本构成、码管Bug修改记录以及版本构建等的码管精确管理,极大地支持了开发团队的码管工作,使得他们能够清晰定义并跟踪软件开发的码管各个环节。 Butterfly作为新一代的码管变更请求管理软件,以软件项目为中心,优化了开发过程,提供缺陷追踪、源代码管理和丰富的报表,帮助团队高效完成项目。它的特点包括缺陷管理、代码重用、工作流程优化、进度控制和工作分配管理等,有助于提高软件开发的效率和质量。 Hansky的配置管理解决方案为公司带来的益处包括:管理者能够有效控制产品进度和质量,开发人员专注于创新,测试人员执行标准化流程,产品发布人员确保产品质量。具体来说,swift 源码 chat用户在资金投入、项目周期缩短和知识财富保护上都能看到实实在在的收益。 通过使用Hansky的解决方案,用户可以降低成本,如低硬件要求、易安装维护、简化学习曲线和灵活的许可证管理。系统采用最新的技术,确保长期的适用性和稳定性。同时,通过配置管理,企业可以缩短产品开发周期,提高代码复用,改善工作模式,增强项目管理,并实现工作量的量化考核。 保护企业知识财富是Hansky解决方案的重要目标,通过代码对象库、业务经验库的建立,以及严格的安全性和可靠性保障,公司的知识库得以安全保存和传播,从而增强团队协作和整体竞争力。扩展资料
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的负数源码相加混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。Linux内核中Makefile、Kconfig和.config的关系
Linux内核编译过程中的Makefile、Kconfig和.config文件之间存在着紧密的关系,它们共同确保了庞大且分层的源码结构能够有序地编译。以下是这些问题的解答:
首先,Linux内核的庞大文件结构通过模块化管理实现关联。顶层目录下,如arch、include、drivers等子目录代表了功能和属性的集群,形成了树形结构。Kconfig文件在树中建立各层子目录间的连接,而Makefile则根据.config文件的配置选择编译哪些文件。config文件就像总控制台,指示Makefile如何操作。
当使用特定架构的芯片如RK时,编译仅限于该架构的代码。这得益于make命令生成的.config文件,它基于特定平台的配置,如firefly-rk-linux_defconfig,只编译与所选架构相关的代码。
make menuconfig的ddos教学源码作用是生成或修改.config文件,允许用户配置和选择要编译的模块。它提供了多种配置界面,如text-based config、graphical xconfig和oldconfig,以满足不同需求。
执行make zImage命令的目的是生成内核镜像,如zImage或uImage,而firefly-rk.img是Firefly平台的特定版本。
最后,Makefile和Kconfig文件的编写遵循了Linux内核的结构。每个目录下的Makefile和Kconfig文件都负责指引编译过程,如hello目录的Makefile根据CONFIG_HELLO配置编译代码,my_dr目录的Kconfig则用于驱动程序菜单的构建。
理解了这些关系,你就掌握了Linux内核编译过程中的核心机制。通过模仿内核源码中的Kconfig和Makefile格式,可以自定义和扩展驱动程序的编译。定期关注嵌入式知识,持续学习和提升。
3D月光宝盒游戏机模拟器方案源码项目解析(1)
月光宝盒游戏机项目历史悠久,源起于广州的硬件方案,市场反响极佳,吸引了众多开发者加入。经典的“小霸王”游戏机品牌也在此项目中出现了踪影。在京东等电商平台上,月光宝盒游戏机的销售情况表明,其成本相对较低,利润率高,显示出项目的webkit源码详解良好前景。
解析月光宝盒项目的技术构成主要包括硬件与软件两个方面。硬件部分通常采用成熟方案,如HDMI输出设备,并配备手柄,实现游戏设备的基本功能。软件部分则涉及更为复杂的定制与集成。硬件方案通常提供基于Android的操作系统,开发者需要在此基础上构建独特的月光宝盒界面,以此作为用户启动游戏的交互平台。桌面launcher设计即是游戏菜单主界面,负责用户界面的呈现与交互。简化版的月光宝盒界面通常采用极简与metro风格,提供直观且简洁的视觉体验。
界面的直观性与美观性是设计中的关键要素,通过精心的设计,能够提升用户体验,促进项目的成功。线上项目支持在ricegame.cn等网站上下载,用户可以便捷地获取相关资源。
对于软件部分,开发团队需要聚焦于游戏模拟器的核心功能,以实现广泛的游戏支持。米饭模拟器方案是一个较为全面的选择,能涵盖街机、GBA、NES(FC)、SNES(SFC)、PS1/PSP、NDS、N、3DS、MD等多个游戏格式。这使得项目能够支持数量巨大的游戏库,提供丰富的游戏体验。如经典的游戏如“三国战记”等,支持数万游戏的模拟器成为用户游戏体验的基石。
自制模拟器或尝试不同的开源方案虽能带来一定的自定义能力,但往往需要较高的时间投入与资源成本。米饭模拟器方案则提供了一站式的解决方案,提前预见风险与成本,确保项目的稳定性和高可用性。此外,米饭模拟器还提供了全面的技术支持,从产品开发到维护阶段都能得到充分的保障。使用此类方案可以有效降低软件开发的风险与成本,同时确保项目在硬件成本方面也能达到优化。
硬件选择也是项目成本控制的重要环节。Firefly RK是一种性能与成本兼优的硬件方案,其性价比极高,支持大多数模拟器功能。使用性能优秀的硬件,能够进一步提升用户体验,但成本投入也会相应增加。
综上所述,月光宝盒游戏机项目通过集硬件与软件设计的创新,实现了成本效益的优化与用户体验的提升。无论是面向经典游戏的重现,还是追求更广泛的游戏平台支持,都能在米饭模拟器方案的加持下,实现项目的全面发展。项目团队可依据自身资源与市场需求,选择合适的硬件与软件解决方案,为用户提供丰富且优质的娱乐体验。
管ç代ç çå·¥å ·
Rational ClearCase:
Rational å ¬å¸æ¯å ¨çæ大ç软件CASE å·¥å ·æä¾åï¼ç°å·²è¢«IBMæ¶è´ãä¹è®¸æ¯åå°å ¶æ³å¤´äº§åãå¯è§å建模第ä¸å·¥å ·Rose çå½±åï¼å®å¼åçé 置管çå·¥å ·ClearCase ä¹æ¯æ·±åç¨æ·çåç±ï¼æ¯ç°å¨åºç¨é¢æ广çä¼ä¸çº§ã跨平å°çé 置管çå·¥å ·ä¹ä¸ã
ClearCaseæä¾äºæ¯è¾å ¨é¢çé 置管çæ¯æï¼å ¶ä¸å æ¬çæ¬æ§å¶ãå·¥ä½ç©ºé´ç®¡çãBuild管ççï¼èä¸å¼å人åæ ééå¯¹å ¶æ¹åç°æçç¯å¢ãå·¥å ·åå·¥ä½æ¹å¼ã
å ¶æ大ç缺ç¹å°±å¨äºå ¶ä»·æ ¼ä¸è²ï¼æ¯ä¸ªå®¢æ·ç«¯ç¨æ·è®¸å¯è¯å¤§çº¦éè¦å åç¾éï¼æ以å¨å½å åºç¨ç¾¤ä½æéã
1ï¼ çæ¬æ§å¶
ClearCaseä¸ä» å¯ä»¥å¯¹æ件ãç®å½ãé¾æ¥è¿è¡çæ¬æ§å¶ï¼åæ¶è¿æä¾äºå è¿ççæ¬åæ¯åå½æ¬åè½ç¨äºæ¯æ并è¡å¼åãå¦å¤ï¼å®è¿æ¯æ广æ³çæ件类åã
2ï¼å·¥ä½ç©ºé´ç®¡ç
å¯ä»¥ä¸ºå¼å人åæä¾ç§äººåå¨åºï¼åæ¶å¯ä»¥å®ç°æåä¹é´çä¿¡æ¯å ±äº«ï¼ä»è为æ¯ä¸ä½å¼å人åæä¾ä¸è´ãçµæ´»ãå¯éç¨çå·¥ä½ç©ºé´åã
3ï¼ Build管ç
对ClearCase æ§å¶çæ°æ®ï¼æ¢å¯ä»¥ä½¿ç¨å®å¶èæ¬ï¼ä¹å¯ä½¿ç¨æ¬æºæä¾çmake ç¨åºã
å ¶æ大ç缺ç¹å°±å¨äºå ¶ä»·æ ¼ä¸è²ï¼æ¯ä¸ªå®¢æ·ç«¯ç¨æ·è®¸å¯è¯å¤§çº¦éè¦å åç¾éï¼æ以å¨å½å åºç¨ç¾¤ä½æéã
Hansky Firefly:
å为Hanskyå ¬å¸è½¯ä»¶å¼å管çå¥ä»¶ä¸éè¦ä¸åçFireflyï¼å¯ä»¥è½»æ¾ç®¡çãç»´æ¤æ´ä¸ªä¼ä¸ç软件èµäº§ï¼å æ¬ç¨åºä»£ç åç¸å ³ææ¡£ãFireflyæ¯ä¸ä¸ªåè½å®åãè¿è¡é度æå¿«ç软件é 置管çç³»ç»ï¼å¯ä»¥æ¯æä¸åçæä½ç³»ç»åå¤ç§éæå¼åç¯å¢ï¼å æ¤å®è½å¨æ´ä¸ªä¼ä¸ä¸çä¸åå¢éï¼ä¸å项ç®ä¸å¾ä»¥åºç¨ã
Fireflyåºäºçæ£ç客æ·æº/æå¡å¨ä½ç³»ç»æï¼ä¸ä¾èµäºä»»ä½ç¹æ®çç½ç»æ件系ç»ï¼å¯ä»¥å¹³æ»å°è¿è¡å¨ä¸åçLANãWAN ç¯å¢ä¸ãå®çå®è£ é ç½®è¿ç¨ç®åæç¨ï¼Firefly å¯ä»¥èªå¨ãå®å ¨å°ä¿å代ç çæ¯ä¸æ¬¡ååå 容ï¼é¿å 代ç 被æ æä¸è¦çãä¿®æ¹ã项ç®ç®¡ç人å使ç¨Fireflyå¯ä»¥ææå°ç»ç»å¼ååéè¿è¡å¹¶è¡å¼åå管ç项ç®ä¸åé¶æ®µç¹çåç§èµæºï¼ä½¿å¾äº§ååå¸æäºç®¡çï¼å¹¶å¯ä»¥å¿«éå°å溯å°ä»»ä¸åå²çæ¬ãç³»ç»ç®¡çå使ç¨Fireflyçå ç½®å·¥å ·å¯ä»¥æ¹ä¾¿çè¿è¡åå¨åºçå¤ä»½åæ¢å¤ï¼èä¸ä¾èµäºä»»ä½ç¬¬ä¸æ¹å·¥å ·ã
WinCVS:
CVS æ¯Concurrent Versions System ç缩åï¼å®æ¯å¼æ¾æºä»£ç 软件ä¸ççä¸ä¸ªä¼å¤§æ°ä½ï¼ç±äºå ¶ç®åæç¨ãåè½å¼ºå¤§ï¼è·¨å¹³å°ï¼æ¯æ并åçæ¬æ§å¶ï¼èä¸å è´¹ï¼å®å¨å ¨çä¸å°å软件ä¼ä¸ä¸å¾å°äºå¹¿æ³ä½¿ç¨ã
å ¶æ大çéæ¾å°±æ¯ç¼ºå°ç¸åºçææ¯æ¯æï¼è®¸å¤é®é¢ç解å³éè¦èªå·²å¯»æ¾èµæï¼çè³æ¯è¯»æºä»£ç ã
Merant PVCS:
MERANT å ¬å¸çPVCS è½å¤æä¾å¯¹è½¯ä»¶é 置管ççåºæ¬æ¯æï¼éè¿ä½¿ç¨å ¶å¾å½¢çé¢æ类似SCCS çå½ä»¤ï¼è½å¤åºæ¬æ»¡è¶³å°å项ç®å¼åçé 置管çéæ±ãPVCS è½ç¶åè½ä¸ä¹åºæ¬è½å¤æ»¡è¶³éæ±ï¼ä½æ¯å ¶æ§è½è¡¨ç°ä¸ç´è¾å·®ï¼éæ¸å°è¢«å¸åºæå·è½ã
Microsoft Visual Source Safe:
Visual Source Safeï¼å³VSSï¼æ¯å¾®è½¯å ¬å¸ä¸ºVisual Studioé å¥å¼åçä¸ä¸ªå°åçé 置管çå·¥å ·ï¼åç¡®æ¥è¯´ï¼å®ä» è½å¤ç§°å¾ä¸æ¯ä¸ä¸ªå°åççæ¬æ§å¶è½¯ä»¶ãVSSçä¼ç¹å¨äºå ¶ä¸Visual Studioå®ç°äºæ ç¼éæï¼ä½¿ç¨ç®åãæä¾äºåå²çæ¬è®°å½ãä¿®æ¹æ§å¶ãæ件æ¯è¾ãæ¥å¿çåºæ¬åè½ã
ä½å ¶ç¼ºç¹ä¹æ¯ååææ¾çï¼åªæ¯æWindowså¹³å°ï¼ä¸æ¯æ并è¡å¼åï¼éè¿Check out - Modify - Check inç管çæ¹å¼ï¼ä¸ä¸ªæ¶é´åªå 许ä¸ä¸ªäººä¿®æ¹ä»£ç ï¼èä¸éåº¦æ ¢ã伸缩æ§å·®ï¼ä¸æ¯æå¼å°å¼åãçè³äºå¾®è½¯æ¬èº«ä¹ä¸éç¨å ¶å为é 置管çå·¥å ·ï¼èæ¯ä½¿ç¨ä¸ä¸ªå为SLM çå é¨å·¥å ·ã
手把手教你微调百亿大模型:基于Firefly微调Qwen1.5-b
本文旨在引导新手通过使用Firefly项目微调Qwen1.5-b模型,学习大模型的微调流程。此教程不仅适用于微调llama、ziya、bloom等模型,同时Firefly项目正在逐步兼容更多开源大模型,如InternLM、CPM-bee、ChatGLM2等。此教程是大模型训练的步步指引,即使你是训练大模型的新手,也能通过本文快速在单显卡上训练出自己的大模型。 访问Firefly项目链接:/yangjianxin1/Firefly 1. 安装环境 假定读者具备一定的python编程基础,直接跳过python、cuda、git等编程环境和工具的安装教程。 首先,将Firefly项目代码库clone至本地: 1. 进入项目目录 2. 创建相应的虚拟环境 3. 安装相应的python包 确保使用源码安装所有包,避免不必要的麻烦。推荐torch版本为1.3,避免使用2.0。 2. 准备训练集 Firefly项目提供多个高质量指令数据集,推荐使用moss数据集,数据集下载地址在Github项目地址中。 训练数据为jsonl格式,每行为一个多轮对话,conversation字段是必需的,可根据实际需求添加或删除其他字段。 也可使用自定义数据,只需整理成指定格式即可。在项目的data/dummy_data.jsonl文件中存放了调试数据,可用于代码调试。 3. 配置训练参数 所有训练参数配置存储在train_args目录,便于统一管理。以微调Qwen1.5-b为例,参数配置文件路径为train_args/qlora/qwen1.5-b-sft-qlora.json,可根据硬件条件调整文件中的训练参数。 训练参数详细说明如下: 在微调Qwen1.5-b时,训练配置如下,需根据实际情况调整: model_name_or_path:可指定huggingface模型仓库名称或本地模型路径。使用huggingface仓库名称时,训练脚本会自动下载权重、tokenizer和代码等。本地访问较慢时,建议先下载模型至本地,使用本地路径。 如遇到OOM问题,可调整max_seq_length、per_device_train_batch_size等参数缓解。开启gradient_checkpointing参数可大幅降低显存占用,但会减慢训练速度。 4. 启动训练 执行以下脚本启动训练,num_gpus表示训练使用的显卡数量。全球批大小为per_device_train_batch_size * gradient_accumulation_steps * num_gpus。 在RTX上训练7B模型,每个step大约秒,B模型每个step大约秒。 5. 合并权重 训练中仅保存adapter的权重,不保存合并后的模型权重。训练结束后,手动将adapter与base model的权重合并。adapter权重保存至output_dir指定目录,执行script目录下的merge_lora.py脚本获取合并后的模型权重。 注意:Qwen1.5-b等模型自定义了结构和tokenizer,代码未合并至transformers库中。合并权重后,需复制huggingface模型仓库中的python文件至合并权重目录,否则加载合并模型进行推理时会出错。 权重合并脚本如下,请根据实际的base model和adapter保存路径,调整save_path、adapter_name_or_path、model_name_or_path等参数。 6. 模型推理 完成权重合并后,即可使用模型进行推理。项目提供单轮对话和多轮对话脚本,详情参见script/chat目录。该脚本兼容本项目训练的所有模型。 生成脚本中的top_p、repetition_penalty、temperature、do_sample等参数对生成效果影响显著,根据使用场景进行调整。 推理阶段,模型的解码方式对生成效果影响巨大,常用解码方式包括Greedy Search、Beam Search、Top-K Sampling、Top-P Sampling、Contrastive Search等。 目前主流模型多采用Top-P Sampling,具有随机性,能提高丰富度,降低重复输出,本项目也使用此方式。Contrastive Search也值得尝试,是一种确定性解码算法。 解码方式值得深入探讨,有兴趣的读者后续可关注。 单轮对话: 多轮对话: 7. 结语 本文详细介绍了使用Firefly项目微调Qwen1.5-b模型的步骤,希望读者按照本教程逐步操作,顺利完成大模型的训练。