AI

您将深入了解人工智能(AI)的核心技术与应用,包括机器学习、深度学习、自然语言处理、计算机视觉等热门领域。我们提供最新的AI教程、技术文章、行业案例与实践指南,帮助您掌握AI技术,提升编程与数据分析能力。无论您是AI初学者还是专业开发者,都可以在这里找到丰富的学习资源,助力您的职业发展与技术创新。关注我们的AI板块,了解AI最新趋势,抢占未来科技先机!

huggingface的self._maybe_log_save_evaluate、self.save_model、self._save源码解读(权重等内容保存)

huggingface的self._maybe_log_save_evaluate、self.save_model、self._save源码解读(权重等内容保存)

文章目录 * * * * * 前言 在 Hugging Face 中,self._maybe_log_save_evaluate是有关权重等内容相关保存函数。本文通过该函数探索huggingface内部源码对权重相关文件保存方法,以供读者了解huggingface保存权重文件原理。 一、self.state与self.control初始化 请参考huggingface专栏中的huggingface的self.state与self.control来源(TrainerState与TrainerControl)文章。 二、self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)源码解读 这个函数我们也在有解读,也可以作为补充参考。我这里按照源码流程逐渐解读器内容。 1、_maybe_log_save_evaluate完整源码 def _maybe_log_save_

huggingface的generate推理源码解读

huggingface的generate推理源码解读

文章目录 * * * * * * * * * * * * * * * * * * * * * * * 前言 大语言模型基本使用huggingface的generate方法进行推理。而我最近也在使用llama3代码,于是我写下一份huggingface的generate方法,帮助读者了解huggingface如何对大语言模型进行推理。同样,我和其它博客不太一样,我是按照源码来解读huggingface的generate方法。 一、huggingface的generate函数 比如llama3对huggingface的generate调用代码如下: inputs = tokenizer(input_text,return_tensors="pt") #add_special_tokens=False ? generation_output = model.generate( input_ids = inputs["input_ids"].to(device), attention

llama3源码解读之推理-infer

大模型

llama3源码解读之推理-infer

文章目录 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 前言 本项目是解读开源github的代码,该项目基于Meta最新发布的新一代开源大模型Llama-3开发,是Chinese-LLaMA-Alpaca开源大模型相关系列项目(一期、二期)的第三期。而本项目开源了中文Llama-3基座模型和中文Llama-3-Ins

MoE专家模块Demo

大模型

MoE专家模块Demo

文章目录 * 前言 随着MoE越来越火热,MoE本质就是将Transformer中的FFN层替换成了MoE-layer,其中每个MoE-Layer由一个gate和若干个experts组成。这里gate和每个expert都可以理解成是nn.linear形式的神经网络。既然如此,本篇文章将结合transformers结构构建一个MoE的demo供大家学习。该源码可直接使用。 一、MoE原理与设计原则 expert:术业有专攻。假设我的输入数据是“我爱吃炸鸡”,在原始的Transformer中,我们把这5个token送去一个FFN层做处理。但是现在我们发现这句话从结构上可以拆成“主语-我”,“谓语-爱吃”,“宾语-炸鸡”,秉持着术业有专攻的原则,我把原来的1个FFN拆分成若干个expert,分别用来单独解析“主语”,“谓语”,“宾语”,这样可能会达到更好的效果。 gate:那么我怎么知道要把哪个token送去哪个expert呢?很简单,我再训练一个gate神经网络,让它帮我判断就好了。 当然,这里并不是说expert就是用来解析主谓宾,只是举一个例子说明:不同token

使用Python将xml标注文件转换为coco json格式

AI

使用Python将xml标注文件转换为coco json格式

文章目录 * 前言 在计算机视觉领域,特别是目标检测任务中,不同的数据集采用了不同的标注格式。Pascal VOC数据集使用XML文件进行目标检测的标注,而Microsoft COCO数据集则采用JSON格式。为了方便模型训练,我们经常需要将XML格式的数据转换成JSON格式。本文将详细介绍如何用Python实现这一转换,并将代码分为几个模块进行讲解。 一、读取xml文件 XML文件读取模块,该模块负责解析XML文件,并从中提取有用的信息,如类别标签、边界框坐标以及图像尺寸等。 def read_xml(xml_root): ''' :param xml_root: .xml文件 :return: dict('cat':['cat1',...],'bboxes':[[x1,y1,x2,y2],...],'whd'

强化学习 - Deep RL开源项目总结

算法

强化学习 - Deep RL开源项目总结

一. Lua 语言的程序包(运用框架:Torch 7): 1. 相关论文:Human-level control through deep reinforcement learning 另外的链接(不需要翻墙): 实现的算法名称:Deep Q-Networks(DQN) 推荐指数(★★★★★) 推荐理由:谷歌公司开源的第一个深度强化学习软件包,重要价值不用我多说了吧。 2. 软件包名称:/ 实现算法:DQN 应用场景:玩超级马里奥游戏 推荐指数(★★★) 相关论文: 3. 软件包名称:/ 实现算法: DQN, persistent advantage learning, dueling network, double DQN, A3C 推荐指数(★★★★) 4. 软件包名称:/ 实现算法:Reinforced Inter-Agent

Latex和Markdown中的数字字体和数学符号

Latex和Markdown中的数字字体和数学符号

文章目录 * 1. 数学字体 在书籍和论文中,数学字体是必不可少的,但是很多同学并不清楚具体的内容,现在简单总结下,持续更新。 数学字体符号表示效果展示粗体(boldface)\mathbf{} R \mathbf{R} R黑板粗体(blackbold)\mathbb{} R \mathbb{R} R美术字(calligraphy)\mathcal{} L \mathcal{L} L 补充: ℜ \Re ℜ(real function) 可参考:https://latex.wikia.org/wiki/Main_page 2. 数学符号 其中 p ~ \tilde{p} p~ 中的~表示大约的意思。

大语言模型参数传递、model 构建与tokenizer构建(基于llama3模型)

大模型

大语言模型参数传递、model 构建与tokenizer构建(基于llama3模型)

文章目录 * * 前言 上一篇说到huggingface的参数传递理论方法,本篇文章应用与llama3参数构建实践代码开发。并在参数传递基础上构建模型model与tokenizer。 提示:使用huggingface方法传参与模型构建! 一、传递参数构建 参数还是很简单,一个模型参数、数据参数和trainer训练参数,我也不在解读,直接给出。 1、构建模型参数 模型参数一般都是载入模型、载入tokenizer等路径啥的,没啥说的,直接给出方法,如下: @dataclass class ModelArguments: """ Arguments pertaining to which model/config/tokenizer we are going to fine-tune, or train from scratch. """ model_name_or_path:

论文总结 -论文写作注意事项(持续更)

论文总结 -论文写作注意事项(持续更)

论文写作注意事项 * * * * 论文写作应具备的思维 1. 英语论文用词要地道 所谓的地道其实就是要多用地道的英文用词,这就要求我们在平时多搜集一些类似的国外高级刊物的英语论文,在这些论文中找到要表达相似意思的英文句子,使用它的句型。这样写出来的论文更适合外国人的思维方式。也能让外国人更容易理解。 1. 明确投稿期刊 和投稿中文期刊一样,在投稿前我们要根据自己论文的研究目的,研究的对象范围来选择适合自己论文研究范围的期刊。如果你写的论文是能源类的论文,就要投稿到相关的能源期刊上,而不是化工类的刊物上。 1. 注重论文文题和摘要 论文的文题之所以重要是它第一时间展现给审稿人,就如同我们给别人的第一印象一样。文题是否创新,是否有吸引力,是否简洁明了这些都直接影响审稿人对论文的第一印象。外国人更注重创新,只要你觉得自己的观点有创新点,就不要怕不会被外文收录。“做很少人做的研究领域,做难的研究领域"。这样的文章很容易被录用。 1. 阅读相关英文文献 在写英语论文之前,做大量的阅读是必要的。但最好应该去读那些英语是母语国家学者写的论文。但是

大模型lora训练、权重保存、训练方法与完整训练代码(基于llama模型)

大模型lora训练、权重保存、训练方法与完整训练代码(基于llama模型)

文章目录 * * 前言 本篇文章介绍lora训练与huggingface训练源码构建,以及权重保存、数据格式与完整训练代码内容! 一、构建lora训练模式 1、调用代码 这步较为简单,我们构建lora,只需调用peft库,可帮忙实现。我这里也给出了lm_head是否训练方法,具体代码如下: if training_args.use_lora: # 使用lora模型梯度即使是True也会会变成False,只有lora变量为True model = load_lora_mode(model,training_args,device_map) if training_args.tune_lm_head: for name,param in model.named_parameters(): if "lm_head"