当前位置:

首页 > 硬件相关 > 在Colab运行Mamba模型全攻略

在Colab运行Mamba模型全攻略

在我们之前的文章中,我们介绍了研究人员提出了一种挑战Transformer的新架构Mamba。他们的研究表明,Mamba是一种状态空间模型(SSM),在多种模式(如语言、音频和时间序列)中展现出了卓越的性能。为了证明这一点,研究人员使用Mamba-3B模型进行了语言建模实验。该模型超越了同等大小的Transformer模型,并且在预训练和下游评估期间,其表现与大小为其两倍的Transformer模型相当。Mamba的独特之处在于其快速处理能力、选择性SSM层以及受FlashAttention启发的硬件友好

本文目录

    在我们之前的文章中,我们介绍了研究人员提出了一种挑战Transformer的新架构Mamba。

    他们的研究表明,Mamba是一种状态空间模型(SSM),在多种模式(如语言、音频和时间序列)中展现出了卓越的性能。为了证明这一点,研究人员使用Mamba-3B模型进行了语言建模实验。该模型超越了同等大小的Transformer模型,并且在预训练和下游评估期间,其表现与大小为其两倍的Transformer模型相当。

    Mamba的独特之处在于其快速处理能力、选择性SSM层以及受FlashAttention启发的硬件友好设计。这些特点使Mamba超越了Transformer(Transformer没有传统的注意力和MLP块)。

    许多人希望亲自测试Mamba的效果,因此本文整理了一个可以在Colab上完整运行的Mamba代码示例,并使用了Mamba官方的3B模型进行实际运行测试。

    首先,我们需要安装依赖,这是官网推荐的:

    !pip install causal-conv1d==1.0.0
    !pip install mamba-ssm==1.0.1

    接下来,直接使用transformers库读取预训练的Mamba-3B模型:

    import torch
    import os
    from transformers import AutoTokenizer
    from mamba_ssm.models.mixer_seq_simple import MambaLMHeadModel
    
    tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neox-20b")
    model = MambaLMHeadModel.from_pretrained(os.path.expanduser("state-spaces/mamba-2.8b"), device="cuda", dtype=torch.bfloat16)

    可以看到,3B的模型大小为11G。

    在Colab上测试Mamba

    然后进行内容生成测试:

    tokens = tokenizer("What is the meaning of life", return_tensors="pt")
    input_ids = tokens.input_ids.to(device="cuda")
    max_length = input_ids.shape[1] + 80
    
    fn = lambda: model.generate(
        input_ids=input_ids, max_length=max_length, cg=True,
        return_dict_in_generate=True, output_scores=True,
        enable_timing=False, temperature=0.1, top_k=10, top_p=0.1,
    )
    
    out = fn()
    print(tokenizer.decode(out[0][0]))

    这里还有一个聊天示例:

    import torch
    from transformers import AutoTokenizer
    from mamba_ssm.models.mixer_seq_simple import MambaLMHeadModel
    
    device = "cuda"
    tokenizer = AutoTokenizer.from_pretrained("havenhq/mamba-chat")
    tokenizer.eos_token = ""
    tokenizer.pad_token = tokenizer.eos_token
    tokenizer.chat_template = AutoTokenizer.from_pretrained("HuggingFaceH4/zephyr-7b-beta").chat_template
    
    model = MambaLMHeadModel.from_pretrained("havenhq/mamba-chat", device="cuda", dtype=torch.float16)
    
    messages = []
    user_message = """What is the date for announcement On August 10 said that its arm JSW Neo Energy has agreed to buy a portfolio of 1753 mega watt renewable energy generation capacity from Mytrah Energy India Pvt Ltd for Rs 10,530 crore."""
    
    messages.append(dict(role="user", content=user_message))
    input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to("cuda")
    
    out = model.generate(input_ids=input_ids, max_length=2000, temperature=0.9, top_p=0.7, eos_token_id=tokenizer.eos_token_id)
    decoded = tokenizer.batch_decode(out)
    messages.append(dict(role="assistant", content=decoded[0].split("\n")[-1]))
    print("Model:", decoded[0].split("\n")[-1])

    我已经将所有代码整理成Colab Notebook,有兴趣的可以直接使用:

    https://colab.research.google.com/drive/1JyZpvncfSvtFZNOr3TU17Ff0BW5Nd_my?usp=sharing

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    硬件相关
    相关文章 更多
    鸿蒙微信新版本开启测试,修复问题更新上线
    鸿蒙微信新版本开启测试,修复问题更新上线

    近日,华为鸿蒙原生版微信启动了新一轮邀请测试,意味着这款国民级社交应用在鸿蒙生态中的适配与升级正持续深化。据CNMO报道,本次测试聚焦于问题修复与体验优化,为后续面向更广泛用户的正式版本发布铺路。鸿蒙微信数码博主“超维界”透露,微信鸿蒙版App近期已开启新版本的定向内测。其中,版本号为8.0.15.32的测试包说明中明确指出:“修复了若干已知问题”。此外,微信内部员工“客村小蒋”也在社交平台确认,该版本已进入内测阶段;开发团队在攻克多个用户反馈集中的复杂功能后,现阶段正集中精力打磨细节体验,并

    虚环是什么游戏 类型及前瞻解析
    虚环是什么游戏 类型及前瞻解析

    虚环究竟是一款怎样的作品?不少玩家对它的定位尚不明确。实际上,这是一款以虚拟偶像圈层(V圈)为背景,融合高强度战斗演出、策略布阵与角色养成元素的创新手游。接下来,让我们一同了解虚环的游戏类型与核心玩法前瞻。游戏以V圈为核心主题,巧妙地将虚拟主播的世界观与动作策略机制结合。在虚环构建的设定中,人气V圈主播将化身战斗偶像,踏入被称为“虚环”的异次元空间展开激烈对决。玩家则扮演指挥官,组建并培养专属战队,通过策略搭配阵容,与来自各方的传奇偶像展开较量。这种将虚拟主播文化与战斗策略深度结合的设计,不仅新颖独特,也

    Golang表驱动与基准测试技巧
    Golang表驱动与基准测试技巧

    表驱动测试结合基准测试可同时验证代码正确性与性能。通过定义测试用例结构体,TestAdd函数覆盖多种输入场景,确保逻辑正确;BenchmarkConcatStrings则对不同规模字符串拼接进行性能测量,利用b.Run为每组数据单独计时,实现精细化性能监控,提升测试可维护性与执行效率。

    小米汽车新版本开发中,预计4-8周完成
    小米汽车新版本开发中,预计4-8周完成

    近日,小米汽车对网友关注的问题做出了回应,表示小米SU7Ultra的「排位模式」功能增加了解锁条件,引起了部分用户的不满,对此表示诚挚的歉意。在收到用户反馈后,小米高度重视,已暂停了此次更新。已升级的少数用户,官方将在下一个版本更新中解决问题。小米已启动新版本的开发和测试,预计需要4-8周,具体时间将以小米官方通知为准。小米表示,设计该功能的初衷是为了提升驾驶安全性,但未能充分征求用户意见,也未做好相关功能的沟通说明。此次事件使小米深刻认识到:任何涉及用户体验的重大更新,都必须建立在充分沟通的基

    PHP 函数的调试和测试
    PHP 函数的调试和测试

    PHP函数调试和测试指南:配置Xdebug以获得高级调试功能。使用var_dump()和print_r()检查变量值。使用条件断点和断点来控制执行流程。编写单元测试以自动化功能检查。

    Golang函数的测试和调试
    Golang函数的测试和调试

    在Golang中测试函数:创建以_test.go结尾的测试文件。声明一个以TestXXX命名的测试函数,其中XXX是被测函数的名称。使用断言来验证预期结果与实际结果是否一致。设置断点并使用调试器来调试测试失败的情况。使用表驱动测试和覆盖率工具来增强测试效率。

    golang函数的测试代码如何组织?
    golang函数的测试代码如何组织?

    组织GoLang测试代码的最佳实践:文件结构:每个包的测试代码应放置在以_test.go后缀结尾的独立文件中。测试函数命名:使用funcTest<FunctionName>_<TestType>()命名测试函数,描述其测试的内容。测试表:使用测试表组织涉及多个输入/输出值的情况。基准测试:使用基准测试功能评估函数的性能。模拟:使用模拟框架模拟函数依赖关系。

    golang函数闭包在测试中的作用
    golang函数闭包在测试中的作用

    Go语言函数闭包在单元测试中发挥着至关重要的作用:捕获值:闭包可以访问外部作用域的变量,允许在嵌套函数中捕获和重用测试参数。简化测试代码:通过捕获值,闭包消除了对每个循环重复设置参数的需求,从而简化了测试代码。提高可读性:使用闭包可以组织测试逻辑,使测试代码更清晰、更易于阅读。

    微信电脑端可发朋友圈,查看他人动态
    微信电脑端可发朋友圈,查看他人动态

    今日,微信官网上架了Windows最新4.0.3测试版,同时还提供了macOS测试版的dmg安装包,支持英特尔和AppleSilicon平台。全新版本的更新内容主要包括:体验更新,Windows、Mac等多端统一;可发表朋友圈:可查看朋友的朋友圈相册;朋友圈可设置置顶内容:可设置深色模式和浅色模式:可设置字号大小。据悉,4.0以后的微信内测版不会覆盖电脑上已安装的微信正式版,而且用户也可以将已有微信上的聊天记录快速导入到内测版中。感兴趣的小伙伴可以去下载试一下~与此同时,微信也

    SpaceX星舰助推器重复使用测试开启
    SpaceX星舰助推器重复使用测试开启

    SpaceX在德州博卡奇卡的星舰发射场,首次重新安装了一枚曾执行过任务的“超重型”助推器,为星舰项目的可重复利用性迈出了关键一步。据当地媒体报道和政府发布的通知显示,这枚参与了星舰第七次试飞(Flight7)的助推器已竖立在发射台上,并计划进行地面测试,评估其再次飞行能力。今年1月,星舰第七次试飞成功发射,超重型助推器成功分离并被发射塔捕获。虽然助推器表现优异,但上级火箭却在分离后失联。值得注意的是,此次试飞中,SpaceX首次在助推器上使用了经过复用的猛禽(Raptor)发动机,这对于实现火箭整体

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。