LLM之makeMoE:makeMoE的简介、安装和使用方法、案例应用之详细攻略

LLM之makeMoE:makeMoE的简介、安装和使用方法、案例应用之详细攻略

目录

makeMoE的简介

1、对比makemore

2、相关代码文件

makMoE_from_Scratch.ipynb文件

makeMoE_Concise.ipynb文件

makeMoE的安装和使用方法

1、基于Databricks使用单个A100进行开发

makeMoE的案例应用


makeMoE的简介

2024年1月23日,AviSoori1x发布了makeMoE。makeMoE是一个从头开始实现的稀疏专家混合语言模型,灵感主要来自(并且在很大程度上基于)Andrej Karpathy的https://github.com/karpathy/makemore

GitHub地址:https://github.com/AviSoori1x/makeMoE/tree/main

HuggingFace社区博客地址:https://huggingface.co/blog/AviSoori1x/makemoe-from-scratch

1、对比makemore

简介

这是一个从头开始实现的稀疏专家混合语言模型。灵感主要来自Andrej Karpathy的项目'makemore',并借用了该实现的可重用组件。与makemore一样,makeMoE也是一个自回归的字符级语言模型,但使用了前述的稀疏专家混合架构

对比

与makemore一样,pytorch是唯一的要求(所以希望从头开始的说法是合理的)。

与makemore架构相比的重要变化:

>> 稀疏专家混合代替独立的前馈神经网络。

>> Top-k门控和有噪声的Top-k门控实现。

>> 初始化 - 这里使用了Kaiming He初始化,但这个笔记本的目的是可黑客化的,所以你可以替换为Xavier Glorot等,并试试效果。

与makemore相同的部分:

>> 数据集、预处理(标记化)和Andrej最初选择的语言建模任务 - 生成类似莎士比亚的文本。

>> 因果自注意力实现

>> 训练循环

>> 推理逻辑

引用

>> "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-Of-Experts layer":https://arxiv.org/pdf/1701.06538.pdf

>> "Mixture of Experts":https://arxiv.org/pdf/2401.04088.pdf

2、相关代码文件

makMoE_from_Scratch.ipynb文件

makMoE_from_Scratch.ipynb详细介绍了整个模型架构的直觉以及所有组件如何配合。建议从这里开始。

makeMoE_Concise.ipynb文件

makeMoE_Concise.ipynb是一个简洁的、可修改性的实现,我鼓励你去修改,理解,改进并使其成为你自己的。

makeMoE的安装和使用方法

1、基于Databricks使用单个A100进行开发

该代码完全在Databricks上使用单个A100进行开发。如果你在Databricks上运行这个代码,可以在你选择的云提供商上轻松地将其扩展到任意大的GPU集群上。

我选择使用MLFlow(在Databricks中预先安装)。这是完全开源的,你也可以在其他地方轻松pip install。我发现使用它来跟踪和记录所有必要的指标非常有帮助。这是完全可选的。

请注意,该实现强调可读性和可修改性而不是性能,因此有许多方法可以改进。请尝试并告诉我!

makeMoE的案例应用

更新中……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/439109.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:如何为 Elastic Stack 配置 AI Assistant

了解并安装 Elastic AI Assistant Elastic 推出了 Observability AI Assistant,这是一款利用生成式 AI 来增强你的 Observability 体验的强大工具。 该 AI 助手由 OpenAI 或 Azure OpenAI 服务的连接器提供支持,可带来上下文洞察和聊天功能,…

vue中的vuex

在Windows的应用程序开发中,我们习惯了变量(对象)声明和使用方式,就是有全局和局部之分,定义好了全局变量(对象)以后在其他窗体中就可以使用,但是窗体之间的变量(对象&am…

python-自动化篇-运维-语音识别

文章目录 理论文本转换为语音使用 pyttsx使用 SAPI使用 SpeechLib 语音转换为文本 代码和效果01使用pyttsx实现文本_语音02使用SAPI实现文本_语音03使用SpeechLib实现文本_语音04使用PocketSphinx实现语音转换文本 理论 语音识别技术,也被称为自动语音识别&#xf…

TensorFlow2实战-系列教程6:迁移学习实战

🧡💛💚TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、迁移学习 用已经训练好模型的权重参数当做自己任务的模型权重初始化一般全连接层需…

【Time Series】LSTM代码实战

一、简介 还是那句话,"时间序列金融"是一个很有"钱"景的话题,还是想尝试采用Stock时间序列预测任务DeepLearning。本文提供了LSTM预测股票的源代码。 二、代码 运行代码时的注意事项:按照配置项创建好对应的文件夹&#…

Android SystemUI 介绍

目录 一、什么是SystemUI 二、SystemUI应用源码 三、学习 SystemUI 的核心组件 四、修改状态与导航栏测试 本篇文章,主要科普的是Android SystemUI , 下一篇文章我们将介绍如何把Android SystemUI 应用转成Android Studio 工程项目。 一、什么是Syst…

Hadoop3.x基础(1)

来源:B站尚硅谷 这里写目录标题 大数据概论大数据概念大数据特点(4V)大数据应用场景 Hadoop概述Hadoop是什么Hadoop发展历史(了解)Hadoop三大发行版本(了解)Hadoop优势(4高)Hadoop组成&#xf…

349. 两个数组的交集(力扣LeetCode)

文章目录 349. 两个数组的交集题目描述数组解题set容器解题该思路数组版解题 349. 两个数组的交集 题目描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入&a…

C#,贝尔数(Bell Number)的计算方法与源程序

1 埃里克坦普尔贝尔 贝尔数是组合数学中的一组整数数列,以埃里克坦普尔贝尔(Eric Temple Bell)命名, 埃里克坦普尔贝尔(生于1883年2月7日,苏格兰阿伯丁郡阿伯丁,于1960年12月21日在美国加利福尼…

RK3568平台开发系列讲解(Linux系统篇)device 资源的获取

🚀返回专栏总目录 文章目录 一、platform_device 结构体二、platform_get_resource() 获取沉淀、分享、成长,让自己和他人都能有所收获!😄 一、platform_device 结构体 struct platform_driver 结构体继承了 struct device_driver 结构体, 因此可以直接访问 struct devi…

SeaTunnel集群安装

环境准备 服务器节点 节点名称 IP bigdata1 192.168.1.250 bigdata4 192.168.1.251 bigdata5 192.168.1.252 Java环境(三个节点都需要) java1.8 注意:在安装SeaTunnel集群时,最好是现在一个节点上将所有配置都修改完&a…

jenkins pipeline配置maven可选参数

1、在Manage Jenkins下的Global Tool Configuration下对应的maven项添加我们要用得到的不同版本的maven安装项 2、pipeline文件内容具体如下 我们maven是单一的,所以我们都是配置单选参数 pipeline {agent anyparameters {gitParameter(name: BRANCH_TAG, type: …