[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-bearpelican--musicautobot":3,"tool-bearpelican--musicautobot":65},[4,17,27,35,48,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",148568,2,"2026-04-09T23:34:24",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85052,"2026-04-08T11:03:08",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":16},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[15,43,46],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":23,"last_commit_at":63,"category_tags":64,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[14,26,13,15,46],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":80,"owner_website":80,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":112,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":113,"updated_at":114,"faqs":115,"releases":149},6124,"bearpelican\u002Fmusicautobot","musicautobot","Using deep learning to generate music in MIDI format.","MusicAutobot 是一个基于深度学习技术的开源项目，旨在利用人工智能自动生成流行音乐，并输出标准的 MIDI 格式文件。它主要解决了音乐创作中灵感枯竭或编曲门槛较高的问题，让用户能够轻松探索和弦伴奏、旋律生成以及歌曲混音等创意场景。\n\n该项目适合对 AI 音乐生成感兴趣的研究人员、希望尝试自动化作曲的音乐开发者，以及想要通过网页端快速体验创作乐趣的普通用户。对于技术人员，项目提供了完整的训练与推理代码；对于大众用户，则可直接访问其网页版进行互动实验。\n\nMusicAutobot 的核心技术亮点在于巧妙地将自然语言处理（NLP）领域中成熟的 Transformer 架构迁移至音乐领域。它不仅包含了基于 Transformer-XL 的基础音符预测模型，更推出了创新的“多任务 Transformer\"。该模型能同时处理音符预测、掩码令牌建模以及和弦与旋律的双向转换任务。凭借这一架构，MusicAutobot 能够实现四大核心功能：为单旋律自动配和弦（和声化）、根据和弦进程创作新旋律、参考特定节奏重构歌曲，以及在保持原曲调的基础上变换节奏风格，展现了强大的音乐理解与生成能力。","# MusicAutobot\n\nUsing Deep Learning to generate pop music! \n\nYou can also experiment through the web app - [musicautobot.com](http:\u002F\u002Fmusicautobot.com)\n\n![Screenshot](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbearpelican_musicautobot_readme_3d3f50783250.png)\n\n## Overview\n\nRecent advances in NLP have produced amazing [results](https:\u002F\u002Ftransformer.huggingface.co\u002F) in generating text. \n[Transformer](http:\u002F\u002Fjalammar.github.io\u002Fillustrated-transformer\u002F) architecture is a big reason behind this.\n\nThis project aims to leverage these powerful language models and apply them to music. It's built on top of the fast.ai [library](https:\u002F\u002Fgithub.com\u002Ffastai\u002Ffastai)\n\n## Implementation\n\n**MusicTransformer** - This basic model uses [Transformer-XL](https:\u002F\u002Fgithub.com\u002Fkimiyoung\u002Ftransformer-xl) to take a sequence of music notes and predict the next note.  \n\n**MultitaskTransformer** - Built on top of MusicTransformer, this model is trained on multiple tasks.\n * Next Note Prediction (same as MusicTransformer)\n * [BERT](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert) Token Masking\n * Sequence To Sequence Translation - Using chords to predict melody and vice versa.\n\nTraining on multiple tasks means we can generate some really cool predictions (Check out this [Notebook](notebooks\u002Fmultitask_transformer\u002FGenerate.ipynb)):\n1. [Harmonization](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F2b4f5e6613f366bad7b4f39c61be32b9) - generate accompanying chords\n2. [Melody](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F3087b73963aaa2bae62424808a251628) - new melody from existing chord progression\n3. Remix [tune](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F1bbfcb942133414a5664a35a7e7b5612) - new song in the rhythm of a reference song\n4. Remix [beat](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F71d7ff59f67fffa98614c841101e1b6b) - same tune, different rhythm\n\n\n## How it works\n\nDetails are explained in this 4 part series:\n* [Part I](https:\u002F\u002Ftowardsdatascience.com\u002Fcreating-a-pop-music-generator-with-the-transformer-5867511b382a) - Creating a Pop Music Generator\n* [Part II](https:\u002F\u002Ftowardsdatascience.com\u002Fpractical-tips-for-training-a-music-model-755c62560ec2) - Implementation details\n* [Part III](https:\u002F\u002Ftowardsdatascience.com\u002Fa-multitask-music-model-with-bert-transformer-xl-and-seq2seq-3d80bd2ea08e) - Multitask Transformer\n* [Part IV](https:\u002F\u002Ftowardsdatascience.com\u002Fhow-to-remix-the-chainsmokers-with-a-music-bot-6b920359248c) - Composing a song with Multitask\n\n\n## Example Notebooks\n\n1. Play with predictions on Google Colab\n * [MusicTransformer Generate](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmusic_transformer\u002FGenerate_colab.ipynb) - Loads a pretrained model and shows how to generate\u002Fpredict new notes\n * [MultitaskTransformer Generate](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmultitask_transformer\u002FGenerate_colab.ipynb) - Loads a pretrained model and shows how to harmonize, generate new melodies, and remix existing songs.\n\n2. MusicTransformer\n * [Train](notebooks\u002Fmusic_transformer\u002FTrain.ipynb) - End to end example on how to create a dataset from midi files and train a model from scratch\n * [Generate](notebooks\u002Fmusic_tranformer\u002FGenerate.ipynb) - Loads a pretrained model and shows how to generate\u002Fpredict new notes\n \n3. MultitaskTransformer\n * [Train](notebooks\u002Fmultitask_transformer\u002FTrain.ipynb) - End to end example on creating a seq2seq and masked dataset for multitask training.\n * [Generate](notebooks\u002Fmultitask_tranformer\u002FGenerate.ipynb) - Loads a pretrained model and shows how to harmonize, generate new melodies, and remix existing songs.\n \n4. Data Encoding\n * [Midi2Tensor](notebooks\u002Fdata_encoding\u002FMidi2Tensor.ipynb) - Shows how the libary internally encodes midi files to tensors for training.\n * [MusicItem](notebooks\u002Fdata_encoding\u002FMusicItem-Transforms.ipynb) - MusicItem is a wrapper that makes it easy to manipulate midi data. Convert midi to tensor, apply data transformations, even play music or display the notes within browser.\n\n## Pretrained Models\n\nPretrained models are available as MusicTransformer and MultitaskTransformer (small and large).\n\nEach model has an additional `keyC` version. `keyC` means that the model has been trained solely on music transposed to the key of C (all white keys). These models produce better results, but expects the input to all be in the key of C.\n\n1. MusicTransformer (600 MB) - [AnyKey](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMusicTransformer.pth) | [KeyC](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMusicTransformerKeyC.pth)\n\n2. MultitaskTransformer\n * Small (700 MB) - [AnyKey](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskSmall.pth) | [KeyC](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskSmallKeyC.pth)\n * Large (2.1 GB) - [AnyKey](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskLarge.pth) | [KeyC](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskLargeKeyC.pth)\n\nFor details on how to load these models, follow the [Generate](notebooks\u002Fmusic_tranformer\u002FGenerate.ipynb) and [Multitask Generate](notebooks\u002Fmultitask_tranformer\u002FGenerate.ipynb) notebooks\n\n## Source Code\n\n* [musicautobot\u002F](musicautobot)\n * [numpy_encode.py](musicautobot\u002Fnumpy_encode.py) - submodule for encoding midi to tensor\n * [music_transformer.py](musicautobot\u002Fmusic_transformer) - Submodule structure similar to fastai's library.\n   * Learner, Model, Transform - MusicItem, Dataloader\n * [multitask_transformer.py](musicautobot\u002Fmultitask_transformer) - Submodule structure similar to fastai's library.\n   * Learner, Model, Transform - MusicItem, Dataloader\n\n## Scripts\n\nCLI scripts for training models:  \n**[run_multitask.py](scripts\u002Frun_multitask.py)** - multitask training\n```\npython run_multitask.py --epochs 14 --save multitask_model --batch_size=16 --bptt=512 --lamb --data_parallel --lr 1e-4\n```\n**[run_music_transformer.py](scripts\u002Frun_music_transformer.py)** - music model training\n```\npython run_music_transformer.py --epochs 14 --save music_model --batch_size=16 --bptt=512 --lr 1e-4\n```\n**[run_ddp.sh](scripts\u002Frun_ddp.sh)** - Helper method to train with mulitple GPUs (DistributedDataParallel). Only works with run_music_transformer.py  \n```\nSCRIPT=run_multitask.py bash run_ddp.sh --epochs 14 --save music_model --batch_size=16 --bptt=512 --lr 1e-4\n```\n\n**Commands must be run inside the `scripts\u002F` folder**\n\n## Installation\n\n1. Install anaconda: https:\u002F\u002Fwww.anaconda.com\u002Fdistribution\u002F  \n\n\n2. Run:  \n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot.git\n\ncd musicautobot\n\nconda env update -f environment.yml\n\nsource activate musicautobot\n```\n\n3. Install Musescore - to view sheet music within a jupyter notebook  \n\n    Ubuntu:  \n    ```bash\n    sudo apt-get install musescore\n    ```\n    \n    MacOS - [download](https:\u002F\u002Fmusescore.org\u002Fen\u002Fdownload)\n\n## Flask Server\n\nInstallation:  \n```bash\ncd serve\n\nconda env update -f environment.yml\n```\n\n#### S3 Bucket\nYou need to setup an s3 bucket to save your predictions.\nAfter you've created a bucket, update the config [api\u002Fapi.cfg](api\u002Fapi.cfg) with the new bucket name.\n\nDevelopment:\n```bash\npython run.py\n```\n\nProduction:\n```bash\ngunicorn -b 127.0.0.1:5000 run_guni:app  --timeout 180 --workers 8\n```\n\n## Data\n\nUnfortunately I cannot provide the dataset used for training the model.\n\nHere's some suggestions:\n\n* [Classical Archives](https:\u002F\u002Fwww.classicalarchives.com\u002F) - incredible catalog of high quality classical midi\n* [HookTheory](https:\u002F\u002Fwww.hooktheory.com\u002F) - great data for sequence to sequence predictions. Need to manually copy files into hookpad \n* [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fdatasets\u002Fcomments\u002F3akhxy\u002Fthe_largest_midi_collection_on_the_internet\u002F) - 130k files\n* [Lakh](https:\u002F\u002Fcolinraffel.com\u002Fprojects\u002Flmd\u002F) - great research dataset\n\n\n## Acknowledgements\n\nThis project is built on top of [fast.ai's](https:\u002F\u002Fgithub.com\u002Ffastai\u002Ffastai) deep learning library and music21's incredible musicology [library](https:\u002F\u002Fweb.mit.edu\u002Fmusic21\u002F).\n\nInspired by [bachbot](https:\u002F\u002Fgithub.com\u002Ffeynmanliang\u002Fbachbot) and [clara](http:\u002F\u002Fchristinemcleavey.com\u002Fclara-a-neural-net-music-generator\u002F)\n\nSpecial thanks to [SPC](https:\u002F\u002Fsouthparkcommons.com) and [PalapaVC](https:\u002F\u002Fwww.palapavc.com\u002F)\n","# MusicAutobot\n\n利用深度学习生成流行音乐！\n\n你也可以通过网页应用进行体验——[musicautobot.com](http:\u002F\u002Fmusicautobot.com)\n\n![截图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbearpelican_musicautobot_readme_3d3f50783250.png)\n\n## 概述\n\n自然语言处理领域的最新进展在文本生成方面取得了令人瞩目的成果。而Transformer架构正是这一切的重要推动力。\n\n本项目旨在利用这些强大的语言模型，并将其应用于音乐创作。它基于fast.ai的库构建而成。\n\n## 实现\n\n**MusicTransformer** - 这个基础模型使用了[Transformer-XL](https:\u002F\u002Fgithub.com\u002Fkimiyoung\u002Ftransformer-xl)，能够根据一段音乐音符序列预测下一个音符。\n\n**MultitaskTransformer** - 基于MusicTransformer构建，该模型经过多任务训练：\n * 下一个音符预测（与MusicTransformer相同）\n * [BERT](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert)标记掩码\n * 序列到序列翻译——用和弦预测旋律，反之亦然。\n\n通过多任务训练，我们可以生成非常酷的效果（请查看这个[Notebook](notebooks\u002Fmultitask_transformer\u002FGenerate.ipynb))：\n1. [和声编配](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F2b4f5e6613f366bad7b4f39c61be32b9)——生成伴奏和弦\n2. [旋律创作](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F3087b73963aaa2bae62424808a251628)——基于现有和弦进程创作新旋律\n3. 重混[曲调](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F1bbfcb942133414a5664a35a7e7b5612)——以参考歌曲的节奏创作新歌\n4. 重混[节拍](http:\u002F\u002Fmusicautobot.com\u002F#\u002Fpredict\u002F71d7ff59f67fffa98614c841101e1b6b)——同一旋律，不同节奏\n\n\n## 工作原理\n\n详细内容将在以下四部分系列文章中介绍：\n* [第一部分](https:\u002F\u002Ftowardsdatascience.com\u002Fcreating-a-pop-music-generator-with-the-transformer-5867511b382a)——创建流行音乐生成器\n* [第二部分](https:\u002F\u002Ftowardsdatascience.com\u002Fpractical-tips-for-training-a-music-model-755c62560ec2)——实现细节\n* [第三部分](https:\u002F\u002Ftowardsdatascience.com\u002Fa-multitask-music-model-with-bert-transformer-xl-and-seq2seq-3d80bd2ea08e)——多任务Transformer\n* [第四部分](https:\u002F\u002Ftowardsdatascience.com\u002Fhow-to-remix-the-chainsmokers-with-a-music-bot-6b920359248c)——用多任务模型创作歌曲\n\n\n## 示例Notebook\n\n1. 在Google Colab上玩转预测\n * [MusicTransformer Generate](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmusic_transformer\u002FGenerate_colab.ipynb)——加载预训练模型，展示如何生成或预测新音符\n * [MultitaskTransformer Generate](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmultitask_transformer\u002FGenerate_colab.ipynb)——加载预训练模型，展示如何进行和声编配、创作新旋律以及重混现有歌曲。\n\n2. MusicTransformer\n * [训练](notebooks\u002Fmusic_transformer\u002FTrain.ipynb)——从MIDI文件创建数据集并从头开始训练模型的完整示例\n * [生成](notebooks\u002Fmusic_tranformer\u002FGenerate.ipynb)——加载预训练模型，展示如何生成或预测新音符\n \n3. MultitaskTransformer\n * [训练](notebooks\u002Fmultitask_transformer\u002FTrain.ipynb)——端到端示例，讲解如何为多任务训练创建序列到序列及掩码数据集。\n * [生成](notebooks\u002Fmultitask_tranformer\u002FGenerate.ipynb)——加载预训练模型，展示如何进行和声编配、创作新旋律以及重混现有歌曲。\n \n4. 数据编码\n * [Midi2Tensor](notebooks\u002Fdata_encoding\u002FMidi2Tensor.ipynb)——展示库内部如何将MIDI文件编码为张量以用于训练。\n * [MusicItem](notebooks\u002Fdata_encoding\u002FMusicItem-Transforms.ipynb)——MusicItem是一个包装器，方便操作MIDI数据。它可以将MIDI转换为张量、应用数据变换，甚至在浏览器中播放音乐或显示音符。\n\n## 预训练模型\n\n预训练模型分为MusicTransformer和MultitaskTransformer两种，各有小型和大型版本。\n\n每种模型还有一个`keyC`版本。“keyC”表示该模型仅在C调（所有白键）上训练过。这类模型效果更好，但要求输入必须是C调。\n\n1. MusicTransformer（600 MB）——[任意调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMusicTransformer.pth) | [C调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMusicTransformerKeyC.pth)\n\n2. MultitaskTransformer\n * 小型（700 MB）——[任意调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskSmall.pth) | [C调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskSmallKeyC.pth)\n * 大型（2.1 GB）——[任意调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskLarge.pth) | [C调](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskLargeKeyC.pth)\n\n有关如何加载这些模型的详细信息，请参阅[Generate](notebooks\u002Fmusic_tranformer\u002FGenerate.ipynb)和[MultiTask Generate](notebooks\u002Fmultitask_tranformer\u002FGenerate.ipynb)笔记本。\n\n## 源代码\n\n* [musicautobot\u002F](musicautobot)\n * [numpy_encode.py](musicautobot\u002Fnumpy_encode.py)——用于将MIDI编码为张量的子模块\n * [music_transformer.py](musicautobot\u002Fmusic_transformer)——子模块结构类似于fastai的库。\n   * 学习者、模型、变换——MusicItem、数据加载器\n * [multitask_transformer.py](musicautobot\u002Fmultitask_transformer)——子模块结构同样参照fastai的库。\n   * 学习者、模型、变换——MusicItem、数据加载器\n\n## 脚本\n\n用于训练模型的命令行脚本：\n**[run_multitask.py](scripts\u002Frun_multitask.py)**——多任务训练\n```\npython run_multitask.py --epochs 14 --save multitask_model --batch_size=16 --bptt=512 --lamb --data_parallel --lr 1e-4\n```\n**[run_music_transformer.py](scripts\u002Frun_music_transformer.py)**——音乐模型训练\n```\npython run_music_transformer.py --epochs 14 --save music_model --batch_size=16 --bptt=512 --lr 1e-4\n```\n**[run_ddp.sh](scripts\u002Frun_ddp.sh)**——辅助方法，用于使用多个GPU进行训练（分布式数据并行）。仅适用于run_music_transformer.py  \n```\nSCRIPT=run_multitask.py bash run_ddp.sh --epochs 14 --save music_model --batch_size=16 --bptt=512 --lr 1e-4\n```\n\n**命令必须在`scripts\u002F`文件夹内运行**\n\n## 安装\n\n1. 安装Anaconda：https:\u002F\u002Fwww.anaconda.com\u002Fdistribution\u002F  \n\n\n2. 执行以下步骤：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot.git\n\ncd musicautobot\n\nconda env update -f environment.yml\n\nsource activate musicautobot\n```\n\n3. 安装Musescore——以便在Jupyter Notebook中查看乐谱  \n\n    Ubuntu：  \n    ```bash\n    sudo apt-get install musescore\n    ```\n    \n    MacOS——[下载](https:\u002F\u002Fmusescore.org\u002Fen\u002Fdownload)\n\n## Flask 服务器\n\n安装：\n```bash\ncd serve\n\nconda env update -f environment.yml\n```\n\n#### S3 存储桶\n你需要设置一个 S3 存储桶来保存你的预测结果。\n创建存储桶后，请在配置文件 [api\u002Fapi.cfg](api\u002Fapi.cfg) 中更新为新的存储桶名称。\n\n开发环境：\n```bash\npython run.py\n```\n\n生产环境：\n```bash\ngunicorn -b 127.0.0.1:5000 run_guni:app  --timeout 180 --workers 8\n```\n\n## 数据\n\n很遗憾，我无法提供用于训练模型的数据集。\n\n以下是一些建议：\n\n* [Classical Archives](https:\u002F\u002Fwww.classicalarchives.com\u002F) - 拥有海量高质量古典 MIDI 文件的优秀资源\n* [HookTheory](https:\u002F\u002Fwww.hooktheory.com\u002F) - 非常适合序列到序列预测的数据集。需要手动将文件导入 Hookpad\n* [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fdatasets\u002Fcomments\u002F3akhxy\u002Fthe_largest_midi_collection_on_the_internet\u002F) - 包含约 13 万个 MIDI 文件\n* [Lakh](https:\u002F\u002Fcolinraffel.com\u002Fprojects\u002Flmd\u002F) - 优秀的研究用数据集\n\n\n## 致谢\n\n本项目基于 [fast.ai](https:\u002F\u002Fgithub.com\u002Ffastai\u002Ffastai) 的深度学习库以及 music21 强大的音乐学库构建而成。\n\n灵感来源于 [bachbot](https:\u002F\u002Fgithub.com\u002Ffeynmanliang\u002Fbachbot) 和 [clara](http:\u002F\u002Fchristinemcleavey.com\u002Fclara-a-neural-net-music-generator\u002F)。\n\n特别感谢 [SPC](https:\u002F\u002Fsouthparkcommons.com) 和 [PalapaVC](https:\u002F\u002Fwww.palapavc.com\u002F)。","# MusicAutobot 快速上手指南\n\nMusicAutobot 是一个基于深度学习（Transformer 架构）的流行音乐生成开源项目。它利用 fast.ai 库，能够根据输入的音符序列预测下一个音符，或执行和声生成、旋律创作及歌曲混音等多任务操作。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux (推荐 Ubuntu) 或 macOS。\n*   **核心依赖**：\n    *   [Anaconda](https:\u002F\u002Fwww.anaconda.com\u002Fdistribution\u002F)：用于管理 Python 环境和依赖包。\n    *   [MuseScore](https:\u002F\u002Fmusescore.org\u002Fen\u002Fdownload)：用于在 Jupyter Notebook 中查看和播放生成的乐谱。\n        *   **Ubuntu**: `sudo apt-get install musescore`\n        *   **macOS**: 请访问官网下载安装包。\n*   **硬件建议**：如需从头训练模型，建议使用配备 NVIDIA GPU 的机器；若仅使用预训练模型进行推理，CPU 亦可运行（速度较慢）。\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot.git\n    cd musicautobot\n    ```\n\n2.  **创建并激活 Conda 环境**\n    项目提供了 `environment.yml` 文件以自动安装所有必要的 Python 依赖（包括 PyTorch, fastai, music21 等）。\n    ```bash\n    conda env update -f environment.yml\n    source activate musicautobot\n    ```\n    > **提示**：如果下载依赖速度较慢，可尝试配置国内镜像源（如清华源或阿里源）加速 `conda` 和 `pip` 的安装过程。\n\n3.  **验证安装**\n    确保激活了 `musicautobot` 环境后，即可进入下一步使用预训练模型。\n\n## 基本使用\n\n最快速的上手方式是使用 Google Colab 加载预训练模型进行音乐生成，无需本地配置复杂环境。如果您已在本地完成安装，也可参考以下逻辑运行。\n\n### 方式一：使用 Google Colab（推荐新手）\n\n项目提供了两个主要的 Notebooks，可直接在浏览器中运行：\n\n1.  **基础音符生成 (MusicTransformer)**\n    *   功能：加载预训练模型，根据种子音符预测后续音符。\n    *   链接：[MusicTransformer Generate Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmusic_transformer\u002FGenerate_colab.ipynb)\n\n2.  **多任务高级生成 (MultitaskTransformer)**\n    *   功能：支持和声生成 (Harmonization)、根据和弦生成旋律、以及歌曲混音 (Remix)。\n    *   链接：[MultitaskTransformer Generate Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fbearpelican\u002Fmusicautobot\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fmultitask_transformer\u002FGenerate_colab.ipynb)\n\n### 方式二：本地运行示例\n\n在激活 `musicautobot` 环境后，您可以运行本地的 Jupyter Notebook 示例。\n\n1.  **下载预训练模型**\n    根据需求从以下链接下载模型权重文件（例如 `MultitaskSmall.pth`），并放置在项目适当目录（参考 Notebook 中的路径设置）：\n    *   Multitask Small (AnyKey): [下载链接](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMultitaskSmall.pth)\n    *   MusicTransformer (AnyKey): [下载链接](https:\u002F\u002Fashaw-midi-web-server.s3-us-west-2.amazonaws.com\u002Fpretrained\u002FMusicTransformer.pth)\n    *   *注：`KeyC` 版本仅限 C 大调输入，通常 `AnyKey` 版本通用性更强。*\n\n2.  **运行生成脚本**\n    启动 Jupyter Lab 或 Notebook：\n    ```bash\n    jupyter lab\n    ```\n    打开 `notebooks\u002Fmultitask_transformer\u002FGenerate.ipynb`。该笔记本展示了如何：\n    *   加载预训练模型。\n    *   输入一段 MIDI 旋律或和弦。\n    *   调用模型生成伴奏、新旋律或混音版本。\n    *   将结果导出为 MIDI 文件或直接在浏览器中播放。\n\n### 进阶：训练自己的模型\n\n如果您拥有自己的 MIDI 数据集并希望训练模型，可以使用提供的训练脚本。需在 `scripts\u002F` 目录下运行：\n\n*   **训练多任务模型**：\n    ```bash\n    python run_multitask.py --epochs 14 --save multitask_model --batch_size=16 --bptt=512 --lamb --data_parallel --lr 1e-4\n    ```\n*   **训练基础音乐模型**：\n    ```bash\n    python run_music_transformer.py --epochs 14 --save music_model --batch_size=16 --bptt=512 --lr 1e-4\n    ```\n\n更多数据编码细节和自定义数据处理流程，请参考 `notebooks\u002Fdata_encoding\u002F` 目录下的示例。","一位独立游戏开发者正在为一款复古风格的横版过关游戏创作背景音乐，他手头只有一段简单的单旋律 MIDI 文件，急需将其丰富为完整的流行乐曲以匹配游戏节奏。\n\n### 没有 musicautobot 时\n- **编曲门槛高**：开发者虽懂基础乐理，但缺乏专业和声知识，难以手动为单旋律配置协调的伴奏和弦。\n- **创作效率低**：若要尝试不同风格（如将舒缓旋律改为快节奏），需重新编写整首曲子，耗时数天甚至数周。\n- **灵感易枯竭**：在反复修改中容易陷入思维定式，难以跳出原有框架生成具有新鲜感的变奏或副歌旋律。\n- **依赖外部协作**：被迫寻找专业作曲家合作或购买版权音乐，导致项目预算超支且沟通成本高昂。\n\n### 使用 musicautobot 后\n- **智能自动和声**：利用 MultitaskTransformer 的“和声化”功能，一键基于现有旋律生成风格匹配的和弦伴奏，瞬间完成编曲。\n- **高效风格重塑**：通过\"Remix beat\"功能，保持原旋律不变仅调整节奏型，几分钟内即可产出适合不同游戏关卡的快慢版本。\n- **无限灵感扩展**：借助“旋律生成”与序列预测能力，根据已有乐段自动续写新的副歌或变奏，提供多种创意方案供选择。\n- **低成本自主创作**：直接在 Google Colab 加载预训练模型进行本地生成，无需额外人力投入，大幅降低音乐制作成本。\n\nmusicautobot 将深度学习转化为音乐创造力，让非专业音乐人也能像搭积木一样高效构建高质量的原创流行乐曲。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbearpelican_musicautobot_3d3f5078.png","bearpelican","Andrew Shaw","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbearpelican_d6e7336e.jpg","Building tools to democratize deep learning",null,"andrew.t.shaw@gmail.com","https:\u002F\u002Fgithub.com\u002Fbearpelican",[84,88,92],{"name":85,"color":86,"percentage":87},"Jupyter Notebook","#DA5B0B",92.7,{"name":89,"color":90,"percentage":91},"Python","#3572A5",7.3,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0,552,107,"2026-04-07T05:40:00","MIT",4,"Linux, macOS","非必需，但训练脚本支持多 GPU (DistributedDataParallel)，具体型号和显存未说明","未说明 (模型文件大小为 600MB - 2.1GB，建议较大内存)",{"notes":105,"python":106,"dependencies":107},"需安装 Anaconda 并通过 environment.yml 创建环境。若要查看乐谱需安装 MuseScore。预训练模型文件大小在 600MB 至 2.1GB 之间。官方未提供训练数据集，需自行准备 MIDI 文件。Web 服务端部署需配置 AWS S3 存储桶。","通过 conda environment.yml 管理，具体版本未说明",[108,109,110,111],"fastai","music21","torch (隐含)","numpy (隐含)",[47,15],"2026-03-27T02:49:30.150509","2026-04-10T16:00:06.448042",[116,121,126,130,135,140,145],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},27718,"运行训练笔记本时遇到 'CUDA error: device-side assert triggered' 或嵌入层索引越界错误怎么办？","这通常是因为某些 MIDI 文件的音符持续时间（duration）过长，超出了默认的嵌入大小限制。解决方案有两种：\n1. **数据清洗**：在预处理阶段移除那些具有异常长嵌入长度的 MIDI 文件。\n2. **调整代码配置**：增加默认的持续时间嵌入大小。默认情况下，令牌应按持续时间进行裁剪，但如果需要处理更长的音符，可以修改代码中的 `DUR_SIZE` 参数。此外，确保数据编码正确，可以通过 `data.train_ds[idx][0].play()` 播放特定索引的文件来检查声音是否正常。如果播放异常，说明编码有问题。","https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot\u002Fissues\u002F21",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},27719,"遇到 'RuntimeError: Expected tensor for argument #1 indices to have scalar type Long; but got torch.cuda.IntTensor' 错误如何解决？","这是因为输入张量的数据类型不正确，模型期望的是 `Long` 类型但收到了 `Int` 类型。解决方法是在返回张量前将其转换为长整型。具体代码修改为：将 `return t` 改为 `return t.long()`。这通常发生在数据加载或预处理返回张量的地方。","https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot\u002Fissues\u002F17",{"id":127,"question_zh":128,"answer_zh":129,"source_url":125},27720,"运行 'Train-Simple.ipynb' 时出现 'ValueError: too many values to unpack (expected 2)' 错误怎么办？","这是一个已知的代码兼容性问题，特别是在 Windows 系统上可能更容易出现。维护者已经通过提交修复了此问题。请尝试拉取仓库的最新主分支（master branch）代码并重新运行。相关的修复提交包括 `8ad147115a57ffcdbe539ddef62854593e87d913` 和 `135807373ec6a750faac56bd513fd79b9f74d119`。",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},27721,"训练过程中准确率（accuracy）一直不变（例如停留在 0.397959）是什么原因？","如果训练时准确率完全不变化，建议检查以下几个方面：\n1. **批次大小（Batch Size）**：确认设置的 batch size 是否合理。\n2. **模型配置与代码**：检查模型架构定义和损失函数是否正确。\n3. **训练数据**：确认数据加载是否正确，数据是否已被正确编码和洗牌。\n此外，可以参考社区成员维护的 Fork 版本笔记本，那里可能有修正后的配置能正常工作。","https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot\u002Fissues\u002F22",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},27722,"词汇表（Vocab）中的特殊令牌如 CSEQ, MSEQ, NSCLS 代表什么意思？为什么使用文本令牌而不是纯数字索引？","这些令牌用于结构化音乐数据的表示：\n- **CSEQ**: Chord Sequence（和弦序列）\n- **MSEQ**: Melody Sequence（旋律序列）\n- **NSCLS**: Note Start\u002FClass（音符开始\u002F类别）\n使用这些文本令牌（随后被映射为数字索引）而不是直接喂入原始数字，是为了让模型能够理解音乐的结构层次（如区分和弦部分和旋律部分）。模型实际接收的是经过 `item.to_tensor()` 转换后的数字索引张量（例如 `[0, 1, 81, 139...]`），这些数字对应于词汇表中的特定音乐事件，从而让 Transformer 模型能有效学习音乐语法。","https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot\u002Fissues\u002F18",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},27723,"如何获得更好的掩码（mask）或混音（remix）生成效果？预训练模型有什么更新？","维护者已更新了预训练模型以获得更好的结果。新模型专门针对“掩码音高”或“掩码持续时间”任务进行了训练，并使用了数据增强技术。建议在训练时监控每个 epoch 的损失，如果发现验证损失远高于训练损失，可能是过拟合（特别是训练 200 epochs 时）。可以使用 `SaveModelCallback` 来保存验证集表现最佳的模型。通常该模型能达到 75% 到 85% 的准确率。","https:\u002F\u002Fgithub.com\u002Fbearpelican\u002Fmusicautobot\u002Fissues\u002F4",{"id":146,"question_zh":147,"answer_zh":148,"source_url":144},27724,"使用自定义数据集训练时，对 MIDI 文件格式有什么限制？预测结果为空怎么办？","训练自定义数据集时，虽然没有严格的轨道数量限制（不一定非要 2 个轨道），但数据的质量和格式至关重要。如果预测结果为空，可能是因为：\n1. 输入种子（seed）太短或不符合模型训练的数据分布。\n2. 数据预处理过程中出现了编码错误。\n3. 模型过拟合或欠拟合。建议先使用官方提供的示例 MIDI 文件测试流程，确保环境无误后，再逐步替换为自己的数据，并检查数据预处理后的张量形状和内容是否符合预期。",[]]