[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Haiyang-W--TokenFormer":3,"tool-Haiyang-W--TokenFormer":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":115,"forks":116,"last_commit_at":117,"license":118,"difficulty_score":10,"env_os":119,"env_gpu":120,"env_ram":121,"env_deps":122,"category_tags":131,"github_topics":132,"view_count":139,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":140,"updated_at":141,"faqs":142,"releases":178},898,"Haiyang-W\u002FTokenFormer","TokenFormer","[ICLR2025 Spotlight🔥] Official Implementation of TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters","TokenFormer 是一个基于注意力机制的开源神经网络架构，其核心创新在于将模型参数本身也转化为可交互的“令牌”。传统 Transformer 主要处理输入数据之间的关联，而 TokenFormer 进一步允许模型参数以令牌形式参与注意力计算，从而在输入、参数乃至外部记忆之间建立灵活的交互。这种设计旨在从根本上重新思考 Transformer 的扩展方式，提升架构的灵活性与表达能力。\n\n它主要试图解决传统模型在扩展性和结构灵活性上的限制。通过“参数令牌化”，模型能够更统一、高效地处理不同规模和类型的任务，为构建动态、数据依赖或具有记忆功能的网络提供了新的基础范式。\n\nTokenFormer 非常适合人工智能领域的研究人员和算法工程师，特别是那些关注模型架构创新、Transformer 改进、大模型缩放律以及动态神经网络设计的专业人士。对于希望探索下一代基础模型可能性的开发者而言，它也提供了极具启发性的代码实现和实验基准。\n\n其技术亮点在于提出了一个“万物皆可令牌化”的统一视角，仅通过数据令牌、参数令牌和记忆令牌之间的点积交互，理论上就能灵活构建多种类型的网络（如类似 RNN、Mam","TokenFormer 是一个基于注意力机制的开源神经网络架构，其核心创新在于将模型参数本身也转化为可交互的“令牌”。传统 Transformer 主要处理输入数据之间的关联，而 TokenFormer 进一步允许模型参数以令牌形式参与注意力计算，从而在输入、参数乃至外部记忆之间建立灵活的交互。这种设计旨在从根本上重新思考 Transformer 的扩展方式，提升架构的灵活性与表达能力。\n\n它主要试图解决传统模型在扩展性和结构灵活性上的限制。通过“参数令牌化”，模型能够更统一、高效地处理不同规模和类型的任务，为构建动态、数据依赖或具有记忆功能的网络提供了新的基础范式。\n\nTokenFormer 非常适合人工智能领域的研究人员和算法工程师，特别是那些关注模型架构创新、Transformer 改进、大模型缩放律以及动态神经网络设计的专业人士。对于希望探索下一代基础模型可能性的开发者而言，它也提供了极具启发性的代码实现和实验基准。\n\n其技术亮点在于提出了一个“万物皆可令牌化”的统一视角，仅通过数据令牌、参数令牌和记忆令牌之间的点积交互，理论上就能灵活构建多种类型的网络（如类似 RNN、Mamba 或测试时训练 TTT 的网络）。该项目代码简洁、依赖最小，并已在 ICLR 2025 上被接收为 Spotlight 论文，提供了 PyTorch 和 Jax 的完整实现。","\n# TokenFormer: a fully attention-based neural network with tokenized model parameters. Maximizing the flexibility of Transformer by Tokenizing Anything.\n\u003Ch5 align=\"center\">\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FArxiv-2410.23168-b31b1b.svg?logo=arXiv)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168)\n[![project page](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20ProjectPages-TokenFormer-red)](https:\u002F\u002Fhaiyang-w.github.io\u002Ftokenformer.github.io\u002F)\n[![huggingface weights](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Weights-TokenFormer-yellow)](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W)\n[![Hits](https:\u002F\u002Fhits.seeyoufarm.com\u002Fapi\u002Fcount\u002Fincr\u002Fbadge.svg?url=https%3A%2F%2Fgithub.com%2FHaiyang-W%2FTokenFormer%2Ftree%2Fmain&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https:\u002F\u002Fhits.seeyoufarm.com)\n\u003C\u002Fh5>\n\nThis repo is the official implementation of our paper: [TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168) as well as the follow-ups. Our TokenFormer is a natively scalable architecture that leverages the attention mechanism not only for computations among input tokens but also for interactions between tokens and model parameters, thereby enhancing architectural flexibility. We have made every effort to ensure that the codebase is clean, concise, easily readable, state-of-the-art, and relies only on minimal dependencies.\n\n> TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters\n>\n> [Haiyang Wang*](https:\u002F\u002Fhaiyang-w.github.io\u002F), [Yue Fan*](https:\u002F\u002Fyue-fan.github.io\u002F), [Muhammad Ferjad Naeem](https:\u002F\u002Fferjad.github.io\u002F), [Yongqin Xian](https:\u002F\u002Fxianyongqin.github.io\u002F), [Jan Eric Lenssen](https:\u002F\u002Fjanericlenssen.github.io\u002F), [Liwei Wang](http:\u002F\u002Fwww.liweiwang-pku.com\u002F), [Federico Tombari](https:\u002F\u002Ffedericotombari.github.io\u002F), [Bernt Schiele](https:\u002F\u002Fwww.mpi-inf.mpg.de\u002Fdepartments\u002Fcomputer-vision-and-machine-learning\u002Fpeople\u002Fbernt-schiele)\n> - Primary contact: Haiyang Wang ~~(haiwang@mpi-inf.mpg.de)~~(wanghaiyang6@stu.pku.edu.cn), Bernt Schiele (schiele@mpi-inf.mpg.de)\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_1cedad7d98c4.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\n## 📣 News\n- [25-02-11] 🔥 TokenFormer is accepted as **[spotlight](https:\u002F\u002Fopenreview.net\u002Fforum?id=oQ4igHyh3N)** presentation.\n- [25-01-22] 🔥 TokenFormer is accepted by **[ICLR2025](https:\u002F\u002Ficlr.cc\u002F)**.\n- [25-01-12] Jax code on TPU (GCP-Cloud) is released, please see [here](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Ftree\u002Fmain\u002Ftokenformer-tpu).\n- [24-11-08] 🚀 Training code with pytorch is released.\n- [24-11-02] Please feel free to email me if I've missed any relevant papers. I will do my best to include all related papers in future versions.\n- [24-10-31] 🚀 Inference code with pytorch is released.\n- [24-10-31] 👀 TokenFormer is released on [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168).\n\n## 🔥 Some Thoughts\n- We aim to offer a new perspective to models, applicable to any computation graph in the future. In theory, by using **data tokens**, **parameter tokens**, and **memory tokens**, and **through dot-product interactions**, it's possible to flexibly construct any network. There are many design possibilities here. For example, introducing memory tokens can build RNN-like networks similar to [Mamba](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.00752). Merging parameter tokens with memory tokens creates something akin to a [TTT network](https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.04620). Parameter tokens can also attend to input data in reverse, making the network parameters dynamically data-dependent, updating layer by layer.\n## Overview\n- [💫 What we want to do](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#what-we-want-to-do)\n- [🚀 Main Results](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#main-results)\n- [📘 Model Zoo](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#model-zoo)\n- [🛠️ Quick Start](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#quick-start)\n- [👀 Todo](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#todo)\n- [📘 Citation](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#citation)\n\n## 💫 What want to do?\nWe introduce Tokenformer, a \u003Cfont color=\"red\">**fully attention-based**\u003C\u002Ffont> architecture that unifies the computations of token-token and token-parameter interactions by entirely employing the attention mechanism,  \u003Cfont color=\"red\">**maximizes the flexibility of neural network**\u003C\u002Ffont>. The advantage makes it can handle a variable number of parameters, inherently enhances the model's scalability, facilitating progressively efficient scaling.\n\n\u003Cfont color=\"red\">**We not only tokenizes data but also model parameters, replacing the model concept with interaction flows between data and parameter tokens, further advancing the network architecture towards unification.**\u003C\u002Ffont>\n\nHope that this architecture can offer greater flexibility than traditional Transformers, will further contribute to the development of *foundation models*, *sparse inference (MoE)*, *parameter efficient tuning*, *device-cloud collaboration*, *vision-language*,  *model interpretability*, and so on.\n\n```\n# Pattention Implementations with given inputs\n\nquery, key, value = inputs, key_param_tokens, value_param_tokens\n\nattn_weight = query @ key.transpose(-2, -1) * scale_factor\n\nattn_weight *= attn_masks\n# modified softmax, softmax is equal to exp + L1 norm\nattn_weight = nonlinear_norm_func(attn_weight, self.norm_activation_type, dim=-1)\n\noutput = attn_weight @ value\n```\n\n## 🚀 Main results\n### Incremental model scaling\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_784dffa861f9.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\nTraditionally, large transformer architectures are trained from scratch without reusing previous smaller-scale models. In this paper, we propose a novel fully attention-based architecture that allows scaling model incrementally, thus greatly reducing the overall cost of training large transformer architectures.\n\n### Language modeling on Pile dataset with zero-shot evaluation\n\n(**Zero-shot Evaluations.**) The best performance for each model size is highlighted in bold. Our comparisons are made with publicly available transformer-based LMs with various tokenizers. Following Pythia, our model is trained for up to 300B tokens on pile dataset.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_4fed3d510f52.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\n\n### Visual modeling on ImageNet-1k classification\n\n(**Image Classification.**) Comparison of standard vision transformer on ImageNet-1K.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_278f14bf2fdd.png\" width=\"1000\"\u002F>\n\u003C\u002Fdiv>\n\n\n## 📘 Model Zoo\n### Language Modeling Benchmark (Pile)\n\nPretrained models are uploaded to [huggingface](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W) ``TokenFormer-150M``, ``TokenFormer-450M``, ``TokenFormer-900M`` and ``TokenFormer-1-5B``, trained on 300B tokens on the Pile.\n\nThese models were trained on the [Pile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FEleutherAI\u002Fpile), and follow the standard model dimensions of Transformer, and evaluated on standard zero-shot benchmark described by mamba:\n|  Model  |Params| Layers | Model dim. |ckpt|config|log|\n|---------|---------|---------|--------|--------|---------|---------|\n|  TokenFormer-150M | 150M | 12 | 768  |[ckpt](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-150M\u002Ftree\u002Fmain)| [config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F150M_eval.yml) |[log](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-150M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-450M | 450M | 24 | 1024 |[ckpt](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-450M\u002Ftree\u002Fmain)| [config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F450M_eval.yml) |[log](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-450M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-900M| 900M| 32 | 1280 |[ckpt](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-900M\u002Ftree\u002Fmain)| [config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F900M_eval.yml) |[log](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-900M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-1-5B| 1-5B| 40 | 1536 |[ckpt](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-1-5B\u002Ftree\u002Fmain)| [config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F1-5B_eval.yml) |[log](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-1-5B\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n\nNote: these are base models trained only for 300B tokens, without any form of downstream modification (instruction tuning, etc.). Performance is expected to be comparable or better than other architectures trained on similar data, but not to match larger or fine-tuned models.\n\n### Visual Modeling Benchmark (DataComp-1B on CLIP approach)\nWill be released later.\n\n## 🛠️ Quick Start\n### Installation\nFirst make sure you are in an environment with Python 3.8 and CUDA 12 with an appropriate version of PyTorch 1.8 or later installed. **Note:** our TokenFormer is based on the [GPT-NeoX](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Fgpt-neox), some of the libraries that GPT-NeoX depends on have not been updated to be compatible with Python 3.10+. Python 3.9 appears to work, but this codebase has been developed and tested for Python 3.8.\n\nTo install the remaining basic dependencies, run:\n```\nconda create -n TokenFormer python=3.8\n\ngit clone https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer.git\n\npip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu121\n\n### raven module load gcc\u002F10\n\n### If you face cargo problem when run pip install -r requirements\u002Frequirements.txt,  please follow the bellow command\n# curl https:\u002F\u002Fsh.rustup.rs -sSf | sh\n# export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"\n# source ~\u002F.profile\n# source ~\u002F.cargo\u002Fenv\n\n### if you face mpi4py problem when run pip install -r requirements\u002Frequirements.txt, please:\n# conda install -c conda-forge mpi4py=3.0.3\n\npip install -r requirements\u002Frequirements.txt\n\npip install -r requirements\u002Frequirements-flashattention.txt # need gcc > 9\npip install -r requirements\u002Frequirements-wandb.txt # optional, if logging using WandB\npip install -r requirements\u002Frequirements-tensorboard.txt # optional, if logging via tensorboard\npip install -r requirements\u002Frequirements-comet.txt # optional, if logging via Comet\n\n# install apex\npip install -r requirements\u002Frequirements-apex-pip.txt # pip > 23.1\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\ncd apex\npip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\n```\nfrom the repository root.\n\n### Evaluations\nTo run zero-shot evaluations of models (corresponding to Table 1 of the paper), we use the [lm-evaluation-harness](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Flm-evaluation-harness) library.\n\nFirst you should download the pre-trained weights from [huggingface](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W) to your local directory. For example, the relative path is ``.\u002FTokenFormer-150M\u002Fpytorch_model.bin`` from the repository root. \n```\n# single-gpu evaluation (currently only tested on single-gpu.)\n\ncd .\u002FTokenFormer\npython .\u002Fdeepy.py eval.py -d configs tokenformer\u002F150M_eval.yml --eval_tasks lambada_openai hellaswag piqa arc_challenge arc_easy winogrande\n```\n\n### Preconfigured Datasets for Training\nSeveral preconfigured datasets are available, including most components from [openwebtext](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fsegyges\u002FOpenWebText2) and [Pile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmonology\u002Fpile-uncopyrighted). \n\ne.g. to download and tokenize the openwebtext2 dataset with GPT-NeoX 20B Tokenizer. You can try this small dataset first.\n```\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json openwebtext2\n```\nThe preprocessed data will be located in `.\u002Fdata\u002Fopenwebtext2`.\n\nFor the Pile 300B (unofficial and uncopyied version):\n```\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json pile\n```\nThe preprocessed data will be located in `.\u002Fdata\u002Fpile`.\n\nThe tokenized data will be saved out to two files: `[data-dir]\u002F[dataset-name]\u002F[dataset-name]_text_document.bin` and `[data-dir]\u002F[dataset-name]\u002F[dataset-name]_text_document.idx`. You will need to add the prefix that both these files share to your training configuration file under the data-path field. E.G:\n```\n\"data-path\": \".\u002Fdata\u002Fpile\u002Fpile_0.87_deduped_text_document\",\n```\n\nIf you just want to get it running easily, you can try `enwik8`.\n\n### Training\n#### Single Node Launching\nNote that this is for single node. Applicable if you can already SSH into an 8-GPU machine and run programs directly.\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python deepy.py train.py configs\u002Ftokenformer\u002F150M_train_pile.yml\n```\n#### Multiple Nodes Launching\nPlease refer [multi-node-launching](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Fgpt-neox#multi-node-launching). I use slurm and give some guidance as follows.\n\nFirst, modify your training config\n```\n{\n  \"launcher\": \"slurm\",\n  \"deepspeed_slurm\": true,\n}\n```\nThen I provide my slurm script with 16 GPUs as an example.\n```\n#!\u002Fbin\u002Fbash\n#SBATCH --job-name=\"150M_16gpus\"\n#SBATCH --constraint=\"gpu\"\n#SBATCH --nodes=2\n#SBATCH --ntasks-per-node=8\n#SBATCH --gres=gpu:8\n#SBATCH --cpus-per-task=4   #   using 4 cores each. \n#SBATCH --time=24:00:00\n#SBATCH -o \u002Ftmp\u002F150M_%A_%a.out\n\nconda activate TokenFormer\n\n# Some potentially useful distributed environment variables\nexport HOSTNAMES=`scontrol show hostnames \"$SLURM_JOB_NODELIST\"`\nexport MASTER_ADDR=$(scontrol show hostnames \"$SLURM_JOB_NODELIST\" | head -n 1)\nexport MASTER_PORT=12856\nexport COUNT_NODE=`scontrol show hostnames \"$SLURM_JOB_NODELIST\" | wc -l`\n\n# Your hostfile creation script from above\nbash .\u002Fwrite_hostfile.sh\n# Tell DeepSpeed where to find our generated hostfile via DLTS_HOSTFILE, you can customize any path. \nexport DLTS_HOSTFILE=\u002Ftmp\u002Fhosts_$SLURM_JOBID\n\npython3 deepy.py train.py .\u002Fconfigs\u002Ftokenformer\u002F150M_train_pile.yml\n\n```\nAll paths here can be customized; you can replace `\u002Ftmp` in the above script and `write_hostfile.sh` with any path you want. Then run the scripts\n```\nsbatch scripts.sh\n```\n\n#### Zero-shot evaluation after your training\nGo to your checkpoint directory, E.G., 150M\n```\ncd .\u002Fwork_dirs\u002F150M_TokenFormer_Pile\u002Fcheckpoints\npython zero_to_fp32.py . pytorch_model.bin\n```\nThen use that path to replace the **[eval_ckpt](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002F79a02d8a2f847e8bbc627f7cb1632a2f24f3f826\u002Fconfigs\u002Ftokenformer\u002F150M_eval.yml#L98)** in `150M_eval.yml`.\n```\ncd .\u002FTokenFormer\npython .\u002Fdeepy.py eval.py -d configs tokenformer\u002F150M_eval.yml --eval_tasks lambada_openai hellaswag piqa arc_challenge arc_easy winogrande\n```\n\n`NOTE:` I’ve only run the training code for the first 1000 iterations to check the loss, and it looks fine, so I’m releasing it for everyone to use for now. I can’t guarantee there are no issues. If you’d prefer to wait, I can do a final check, but it might take some time.\n\n### Incremental Training\nPlease download the pretrained 354M TokenFormer on openwebtext2 dataset from [huggingface:354M_TokenFormer_Openwebtext2.zip](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-354M-Openwebtext2\u002Ftree\u002Fmain) and unzip it to your local directory. For example, the relative path is ``.\u002F354M_TokenFormer_Openwebtext2\u002F`` from the repository root. Then make the [language dataset](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fab93c3de1805a6a7a2733c462068d68e83c849b5\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml#L110) and [pretrained checkpoints](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fab93c3de1805a6a7a2733c462068d68e83c849b5\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml#L33) well with your local path. The pretrain checkpoints here are the results of training TokenFormer 354M on OpenWebText2 for 600k steps. And the corresponing config is [here](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_train_openwebtext2_basemodel.yml)\n\nPlease follow [here](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Ftree\u002Fmain?tab=readme-ov-file#preconfigured-datasets-for-training)  to prepare the openwebtext2 dataset.\n\n```\ncd .\u002FTokenFormer\npython deepy.py train.py configs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml\n```\n\nThe model's performance is as follows:\n|  Model  | strategy| Layers | Model dim. | iterations |val ppl|config|\n|---------|---------|---------|--------|--------|---------|---------|\n|  TokenFormer-354M | scratch | 24 | 1024  | 600k |11.9|[config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_train_openwebtext2_basemodel.yml) |\n|  TransFormer-757M | scratch | 24 | 1536  | 60k |12.0 | - |\n|  TransFormer-757M | scratch | 24 | 1536  | 120k |11.3 | - |\n|  TransFormer-757M | scratch | 24 | 1536  | 600k |10.5 | - |\n|  TokenFormer-757M | incremental | 24 | 1024 | 60k |10.9|[config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml) |\n|  TokenFormer-757M | incremental | 24 | 1024 | 120k |10.7|[config](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_120k.yml) |\n\n## 👀 TODO\n\n- [x] Release the [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168) version.\n- [x] Release inference code and model weights of LLM.\n- [x] Release training code of LLM.\n- [x] Release incremental scaling training code of LLM.\n\n## 📘 Citation\nPlease consider citing our work as follows if it is helpful.\n```\n@inproceedings{\nwang2025tokenformer,\ntitle={TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters},\nauthor={Haiyang Wang and Yue Fan and Muhammad Ferjad Naeem and Liwei Wang and Yongqin Xian and Jan Eric Lenssen and Federico Tombari and Bernt Schiele},\nbooktitle={The Thirteenth International Conference on Learning Representations},\nyear={2025},\nurl={https:\u002F\u002Fopenreview.net\u002Fforum?id=oQ4igHyh3N}\n}\n```\n","# TokenFormer：一个完全基于注意力机制的神经网络，具有令牌化的模型参数。通过令牌化一切来最大化 Transformer 的灵活性。\n\u003Ch5 align=\"center\">\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FArxiv-2410.23168-b31b1b.svg?logo=arXiv)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168)\n[![project page](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20ProjectPages-TokenFormer-red)](https:\u002F\u002Fhaiyang-w.github.io\u002Ftokenformer.github.io\u002F)\n[![huggingface weights](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Weights-TokenFormer-yellow)](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W)\n[![Hits](https:\u002F\u002Fhits.seeyoufarm.com\u002Fapi\u002Fcount\u002Fincr\u002Fbadge.svg?url=https%3A%2F%2Fgithub.com%2FHaiyang-W%2FTokenFormer%2Ftree%2Fmain&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https:\u002F\u002Fhits.seeyoufarm.com)\n\u003C\u002Fh5>\n\n本仓库是我们论文 [TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168) 及其后续工作的官方实现。我们的 TokenFormer 是一种原生可扩展的架构，它不仅利用注意力机制进行输入令牌（tokens）之间的计算，还用于令牌与模型参数之间的交互，从而增强了架构的灵活性。我们已尽最大努力确保代码库干净、简洁、易于阅读、保持最先进水平，并且仅依赖于最少的依赖项。\n\n> TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters\n>\n> [Haiyang Wang*](https:\u002F\u002Fhaiyang-w.github.io\u002F), [Yue Fan*](https:\u002F\u002Fyue-fan.github.io\u002F), [Muhammad Ferjad Naeem](https:\u002F\u002Fferjad.github.io\u002F), [Yongqin Xian](https:\u002F\u002Fxianyongqin.github.io\u002F), [Jan Eric Lenssen](https:\u002F\u002Fjanericlenssen.github.io\u002F), [Liwei Wang](http:\u002F\u002Fwww.liweiwang-pku.com\u002F), [Federico Tombari](https:\u002F\u002Ffedericotombari.github.io\u002F), [Bernt Schiele](https:\u002F\u002Fwww.mpi-inf.mpg.de\u002Fdepartments\u002Fcomputer-vision-and-machine-learning\u002Fpeople\u002Fbernt-schiele)\n> - 主要联系人：Haiyang Wang ~~(haiwang@mpi-inf.mpg.de)~~(wanghaiyang6@stu.pku.edu.cn), Bernt Schiele (schiele@mpi-inf.mpg.de)\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_1cedad7d98c4.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\n## 📣 新闻\n- [25-02-11] 🔥 TokenFormer 被接受为 **[亮点报告](https:\u002F\u002Fopenreview.net\u002Fforum?id=oQ4igHyh3N)**。\n- [25-01-22] 🔥 TokenFormer 被 **[ICLR2025](https:\u002F\u002Ficlr.cc\u002F)** 接收。\n- [25-01-12] 在 TPU (GCP-Cloud) 上的 Jax 代码已发布，请参见 [此处](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Ftree\u002Fmain\u002Ftokenformer-tpu)。\n- [24-11-08] 🚀 使用 PyTorch 的训练代码已发布。\n- [24-11-02] 如果我遗漏了任何相关论文，请随时通过电子邮件联系我。我将尽力在未来版本中包含所有相关论文。\n- [24-10-31] 🚀 使用 PyTorch 的推理代码已发布。\n- [24-10-31] 👀 TokenFormer 在 [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168) 上发布。\n\n## 🔥 一些思考\n- 我们旨在为模型提供一个新视角，适用于未来的任何计算图。理论上，通过使用**数据令牌**、**参数令牌**和**记忆令牌**，并**通过点积交互**，可以灵活地构建任何网络。这里有很多设计可能性。例如，引入记忆令牌可以构建类似于 [Mamba](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.00752) 的类 RNN 网络。将参数令牌与记忆令牌合并可以创建类似于 [TTT 网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.04620) 的东西。参数令牌也可以反向关注输入数据，使网络参数动态地依赖于数据，逐层更新。\n\n## 概述\n- [💫 我们的目标](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#what-we-want-to-do)\n- [🚀 主要结果](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#main-results)\n- [📘 模型库](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#model-zoo)\n- [🛠️ 快速开始](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#quick-start)\n- [👀 待办事项](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#todo)\n- [📘 引用](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer#citation)\n\n## 💫 我们的目标？\n我们介绍了 Tokenformer，一种 \u003Cfont color=\"red\">**完全基于注意力机制**\u003C\u002Ffont> 的架构，它通过完全采用注意力机制统一了令牌-令牌和令牌-参数交互的计算，\u003Cfont color=\"red\">**最大化神经网络的灵活性**\u003C\u002Ffont>。这一优势使其能够处理可变数量的参数，本质上增强了模型的可扩展性，促进了渐进式高效扩展。\n\n\u003Cfont color=\"red\">**我们不仅对数据进行令牌化，还对模型参数进行令牌化，用数据和参数令牌之间的交互流取代了模型的概念，进一步推动了网络架构的统一。**\u003C\u002Ffont>\n\n希望这种架构能够比传统 Transformer 提供更大的灵活性，并将进一步促进*基础模型*、*稀疏推理（MoE）*、*参数高效调优*、*设备-云协作*、*视觉-语言*、*模型可解释性*等领域的发展。\n\n```\n# 给定输入的 Pattention 实现\n\nquery, key, value = inputs, key_param_tokens, value_param_tokens\n\nattn_weight = query @ key.transpose(-2, -1) * scale_factor\n\nattn_weight *= attn_masks\n# 修改后的 softmax，softmax 等同于 exp + L1 范数\nattn_weight = nonlinear_norm_func(attn_weight, self.norm_activation_type, dim=-1)\n\noutput = attn_weight @ value\n```\n\n## 🚀 主要结果\n### 增量模型扩展\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_784dffa861f9.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\n传统上，大型 Transformer 架构是从头开始训练的，没有重用先前较小规模的模型。在本文中，我们提出了一种新颖的完全基于注意力机制的架构，允许增量扩展模型，从而大大降低了训练大型 Transformer 架构的总体成本。\n\n### 在 Pile 数据集上进行语言建模并进行零样本评估\n\n(**零样本评估。**) 每个模型大小的最佳性能以粗体突出显示。我们的比较是与使用各种分词器的公开可用的基于 Transformer 的语言模型进行的。遵循 Pythia，我们的模型在 Pile 数据集上训练了高达 300B 个令牌。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_4fed3d510f52.png\" width=\"800\"\u002F>\n\u003C\u002Fdiv>\n\n### 在 ImageNet-1k 分类上进行视觉建模\n\n(**图像分类。**) 在 ImageNet-1K 上标准视觉 Transformer 的比较。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_readme_278f14bf2fdd.png\" width=\"1000\"\u002F>\n\u003C\u002Fdiv>\n\n## 📘 模型库\n\n### 语言建模基准测试（Pile）\n\n预训练模型已上传至 [huggingface](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W)，包括 ``TokenFormer-150M``、``TokenFormer-450M``、``TokenFormer-900M`` 和 ``TokenFormer-1-5B``，这些模型在 Pile 数据集上训练了 300B 个 token。\n\n这些模型在 [Pile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FEleutherAI\u002Fpile) 数据集上训练，遵循 Transformer 的标准模型维度，并在 mamba 描述的零样本（zero-shot）基准测试上进行了评估：\n|  模型  |参数| 层数 | 模型维度 |检查点|配置|日志|\n|---------|---------|---------|--------|--------|---------|---------|\n|  TokenFormer-150M | 150M | 12 | 768  |[检查点](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-150M\u002Ftree\u002Fmain)| [配置](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F150M_eval.yml) |[日志](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-150M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-450M | 450M | 24 | 1024 |[检查点](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-450M\u002Ftree\u002Fmain)| [配置](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F450M_eval.yml) |[日志](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-450M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-900M| 900M| 32 | 1280 |[检查点](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-900M\u002Ftree\u002Fmain)| [配置](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F900M_eval.yml) |[日志](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-900M\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n|  TokenFormer-1-5B| 1-5B| 40 | 1536 |[检查点](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-1-5B\u002Ftree\u002Fmain)| [配置](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Ftokenformer\u002F1-5B_eval.yml) |[日志](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-1-5B\u002Fblob\u002Fmain\u002FPile_training_log.txt)|\n\n注意：这些是仅训练了 300B token 的基础模型，未经过任何形式的下游修改（如指令微调等）。预期性能与其他在相似数据上训练的架构相当或更优，但无法与更大规模或经过微调的模型相比。\n\n### 视觉建模基准测试（基于 CLIP 方法的 DataComp-1B）\n稍后发布。\n\n## 🛠️ 快速开始\n### 安装\n首先确保您处于 Python 3.8 和 CUDA 12 的环境中，并安装了适当版本的 PyTorch 1.8 或更高版本。**注意：** 我们的 TokenFormer 基于 [GPT-NeoX](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Fgpt-neox)，GPT-NeoX 依赖的一些库尚未更新以兼容 Python 3.10+。Python 3.9 似乎可以工作，但本代码库是在 Python 3.8 上开发和测试的。\n\n要安装其余的基本依赖项，请运行：\n```\nconda create -n TokenFormer python=3.8\n\ngit clone https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer.git\n\npip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu121\n\n### raven module load gcc\u002F10\n\n### 如果在运行 pip install -r requirements\u002Frequirements.txt 时遇到 cargo 问题，请执行以下命令\n# curl https:\u002F\u002Fsh.rustup.rs -sSf | sh\n# export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"\n# source ~\u002F.profile\n# source ~\u002F.cargo\u002Fenv\n\n### 如果在运行 pip install -r requirements\u002Frequirements.txt 时遇到 mpi4py 问题，请执行：\n# conda install -c conda-forge mpi4py=3.0.3\n\npip install -r requirements\u002Frequirements.txt\n\npip install -r requirements\u002Frequirements-flashattention.txt # 需要 gcc > 9\npip install -r requirements\u002Frequirements-wandb.txt # 可选，如果使用 WandB 记录日志\npip install -r requirements\u002Frequirements-tensorboard.txt # 可选，如果使用 tensorboard 记录日志\npip install -r requirements\u002Frequirements-comet.txt # 可选，如果使用 Comet 记录日志\n\n# 安装 apex\npip install -r requirements\u002Frequirements-apex-pip.txt # pip > 23.1\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\ncd apex\npip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\n```\n从仓库根目录执行。\n\n### 评估\n要运行模型的零样本评估（对应论文中的表 1），我们使用 [lm-evaluation-harness](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Flm-evaluation-harness) 库。\n\n首先，您需要从 [huggingface](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W) 下载预训练权重到本地目录。例如，相对于仓库根目录的路径是 ``.\u002FTokenFormer-150M\u002Fpytorch_model.bin``。\n```\n# 单 GPU 评估（目前仅在单 GPU 上测试过。）\n\ncd .\u002FTokenFormer\npython .\u002Fdeepy.py eval.py -d configs tokenformer\u002F150M_eval.yml --eval_tasks lambada_openai hellaswag piqa arc_challenge arc_easy winogrande\n```\n\n### 用于训练的预配置数据集\n提供了几个预配置的数据集，包括来自 [openwebtext](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fsegyges\u002FOpenWebText2) 和 [Pile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmonology\u002Fpile-uncopyrighted) 的大部分组件。\n\n例如，使用 GPT-NeoX 20B Tokenizer 下载并分词 openwebtext2 数据集。您可以先尝试这个小数据集。\n```\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json openwebtext2\n```\n预处理后的数据将位于 `.\u002Fdata\u002Fopenwebtext2`。\n\n对于 Pile 300B（非官方且未复制的版本）：\n```\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json pile\n```\n预处理后的数据将位于 `.\u002Fdata\u002Fpile`。\n\n分词后的数据将保存为两个文件：`[data-dir]\u002F[dataset-name]\u002F[dataset-name]_text_document.bin` 和 `[data-dir]\u002F[dataset-name]\u002F[dataset-name]_text_document.idx`。您需要在训练配置文件的 data-path 字段中添加这两个文件共享的前缀。例如：\n```\n\"data-path\": \".\u002Fdata\u002Fpile\u002Fpile_0.87_deduped_text_document\",\n```\n\n如果您想轻松上手，可以尝试 `enwik8`。\n\n### 训练\n#### 单节点启动\n注意，这是针对单节点的。适用于您可以直接 SSH 登录到一台 8-GPU 机器并直接运行程序的情况。\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python deepy.py train.py configs\u002Ftokenformer\u002F150M_train_pile.yml\n```\n#### 多节点启动\n请参考 [multi-node-launching](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Fgpt-neox#multi-node-launching)。我使用 slurm 并提供以下指导。\n\n首先，修改您的训练配置\n```\n{\n  \"launcher\": \"slurm\",\n  \"deepspeed_slurm\": true,\n}\n```\n然后，我提供一个使用 16 个 GPU 的 slurm 脚本作为示例。\n```\n#!\u002Fbin\u002Fbash\n#SBATCH --job-name=\"150M_16gpus\"\n#SBATCH --constraint=\"gpu\"\n#SBATCH --nodes=2\n#SBATCH --ntasks-per-node=8\n#SBATCH --gres=gpu:8\n#SBATCH --cpus-per-task=4   #   每个任务使用 4 个核心。\n#SBATCH --time=24:00:00\n#SBATCH -o \u002Ftmp\u002F150M_%A_%a.out\n\nconda activate TokenFormer\n```\n\n# 一些可能用到的分布式环境变量\nexport HOSTNAMES=`scontrol show hostnames \"$SLURM_JOB_NODELIST\"`\nexport MASTER_ADDR=$(scontrol show hostnames \"$SLURM_JOB_NODELIST\" | head -n 1)\nexport MASTER_PORT=12856\nexport COUNT_NODE=`scontrol show hostnames \"$SLURM_JOB_NODELIST\" | wc -l`\n\n# 运行之前编写的 hostfile 创建脚本\nbash .\u002Fwrite_hostfile.sh\n# 通过 DLTS_HOSTFILE 告诉 DeepSpeed 在哪里找到我们生成的 hostfile，你可以自定义任何路径。\nexport DLTS_HOSTFILE=\u002Ftmp\u002Fhosts_$SLURM_JOBID\n\npython3 deepy.py train.py .\u002Fconfigs\u002Ftokenformer\u002F150M_train_pile.yml\n\n```\n这里的所有路径都可以自定义；你可以将上述脚本和 `write_hostfile.sh` 中的 `\u002Ftmp` 替换为你想要的任何路径。然后运行脚本\n```\nsbatch scripts.sh\n```\n\n#### 训练后的零样本评估\n进入你的检查点目录，例如 150M\n```\ncd .\u002Fwork_dirs\u002F150M_TokenFormer_Pile\u002Fcheckpoints\npython zero_to_fp32.py . pytorch_model.bin\n```\n然后用该路径替换 `150M_eval.yml` 中的 **[eval_ckpt](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002F79a02d8a2f847e8bbc627f7cb1632a2f24f3f826\u002Fconfigs\u002Ftokenformer\u002F150M_eval.yml#L98)**。\n```\ncd .\u002FTokenFormer\npython .\u002Fdeepy.py eval.py -d configs tokenformer\u002F150M_eval.yml --eval_tasks lambada_openai hellaswag piqa arc_challenge arc_easy winogrande\n```\n\n`注意：` 我目前只运行了前 1000 次迭代的训练代码来检查损失，看起来没问题，所以先发布出来供大家使用。我不能保证完全没有问题。如果你愿意等待，我可以做最终检查，但这可能需要一些时间。\n\n### 增量训练\n请从 [huggingface:354M_TokenFormer_Openwebtext2.zip](https:\u002F\u002Fhuggingface.co\u002FHaiyang-W\u002FTokenFormer-354M-Openwebtext2\u002Ftree\u002Fmain) 下载在 openwebtext2 数据集上预训练的 354M TokenFormer，并将其解压到你的本地目录。例如，相对于仓库根目录的相对路径是 ``.\u002F354M_TokenFormer_Openwebtext2\u002F``。然后，将 [语言数据集](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fab93c3de1805a6a7a2733c462068d68e83c849b5\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml#L110) 和 [预训练检查点](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fab93c3de1805a6a7a2733c462068d68e83c849b5\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml#L33) 的路径正确配置为你的本地路径。这里的预训练检查点是在 OpenWebText2 上训练 TokenFormer 354M 模型 60 万步的结果。对应的配置文件在[这里](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_train_openwebtext2_basemodel.yml)。\n\n请按照[此处](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Ftree\u002Fmain?tab=readme-ov-file#preconfigured-datasets-for-training)的说明准备 openwebtext2 数据集。\n\n```\ncd .\u002FTokenFormer\npython deepy.py train.py configs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml\n```\n\n模型的性能如下：\n|  模型  | 训练策略 | 层数 | 模型维度 | 迭代次数 |验证集困惑度|配置文件|\n|---------|---------|---------|--------|--------|---------|---------|\n|  TokenFormer-354M | 从头训练 | 24 | 1024  | 600k |11.9|[配置文件](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_train_openwebtext2_basemodel.yml) |\n|  TransFormer-757M | 从头训练 | 24 | 1536  | 60k |12.0 | - |\n|  TransFormer-757M | 从头训练 | 24 | 1536  | 120k |11.3 | - |\n|  TransFormer-757M | 从头训练 | 24 | 1536  | 600k |10.5 | - |\n|  TokenFormer-757M | 增量训练 | 24 | 1024 | 60k |10.9|[配置文件](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_60k.yml) |\n|  TokenFormer-757M | 增量训练 | 24 | 1024 | 120k |10.7|[配置文件](https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fblob\u002Fmain\u002Fconfigs\u002Fincremental_scaling_openwebtext2\u002F354M_to_757M_train_openwebtext2_120k.yml) |\n\n## 👀 待办事项\n\n- [x] 发布 [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.23168) 版本。\n- [x] 发布大语言模型的推理代码和模型权重。\n- [x] 发布大语言模型的训练代码。\n- [x] 发布大语言模型的增量缩放训练代码。\n\n## 📘 引用\n如果我们的工作对你有帮助，请考虑按如下方式引用。\n```\n@inproceedings{\nwang2025tokenformer,\ntitle={TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters},\nauthor={Haiyang Wang and Yue Fan and Muhammad Ferjad Naeem and Liwei Wang and Yongqin Xian and Jan Eric Lenssen and Federico Tombari and Bernt Schiele},\nbooktitle={The Thirteenth International Conference on Learning Representations},\nyear={2025},\nurl={https:\u002F\u002Fopenreview.net\u002Fforum?id=oQ4igHyh3N}\n}\n```","# TokenFormer 快速上手指南\n\nTokenFormer 是一个完全基于注意力机制的神经网络，通过将模型参数也“令牌化”，最大化 Transformer 架构的灵活性。本指南将帮助您快速搭建环境并运行 TokenFormer。\n\n## 环境准备\n\n**系统要求：**\n- **Python 版本：** 3.8（首选）。代码主要基于 Python 3.8 开发和测试，Python 3.9 可能可用，但不保证兼容性。Python 3.10+ 因依赖库限制暂不支持。\n- **CUDA 版本：** 12.x\n- **PyTorch 版本：** 1.8 或更高版本（推荐 2.2.1）\n- **其他：** 需要安装 `gcc`（版本 > 9）以支持 FlashAttention。\n\n## 安装步骤\n\n1.  **创建并激活 Conda 环境：**\n    ```bash\n    conda create -n TokenFormer python=3.8\n    conda activate TokenFormer\n    ```\n\n2.  **克隆仓库并安装 PyTorch：**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer.git\n    cd TokenFormer\n    pip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu121\n    ```\n\n3.  **安装基础依赖：**\n    ```bash\n    pip install -r requirements\u002Frequirements.txt\n    ```\n\n4.  **安装 FlashAttention 等可选依赖：**\n    ```bash\n    # 安装 FlashAttention (需要 gcc > 9)\n    pip install -r requirements\u002Frequirements-flashattention.txt\n    # 以下为可选日志工具，按需安装\n    pip install -r requirements\u002Frequirements-wandb.txt\n    pip install -r requirements\u002Frequirements-tensorboard.txt\n    pip install -r requirements\u002Frequirements-comet.txt\n    ```\n\n5.  **安装 NVIDIA Apex（用于混合精度训练）：**\n    ```bash\n    pip install -r requirements\u002Frequirements-apex-pip.txt\n    git clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\n    cd apex\n    pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\n    cd ..\n    ```\n\n**安装问题提示：**\n- 若安装依赖时遇到 `cargo` 相关问题，请先安装 Rust：\n    ```bash\n    curl https:\u002F\u002Fsh.rustup.rs -sSf | sh\n    export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"\n    source ~\u002F.profile\n    source ~\u002F.cargo\u002Fenv\n    ```\n- 若遇到 `mpi4py` 安装问题，可尝试通过 Conda 安装：\n    ```bash\n    conda install -c conda-forge mpi4py=3.0.3\n    ```\n\n## 基本使用\n\n### 1. 模型推理与评估\n\n首先，从 Hugging Face 下载预训练模型权重（例如 TokenFormer-150M）到本地目录，例如 `.\u002FTokenFormer-150M\u002Fpytorch_model.bin`。\n\n然后，使用以下命令进行零样本评估（单 GPU）：\n```bash\ncd .\u002FTokenFormer\npython .\u002Fdeepy.py eval.py -d configs tokenformer\u002F150M_eval.yml --eval_tasks lambada_openai hellaswag piqa arc_challenge arc_easy winogrande\n```\n\n### 2. 数据准备（用于训练）\n\nTokenFormer 支持多个数据集。以下以准备 `openwebtext2` 数据集为例：\n\n```bash\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json openwebtext2\n```\n预处理后的数据将保存在 `.\u002Fdata\u002Fopenwebtext2` 目录下。\n\n若要准备用于 300B 令牌训练的 Pile 数据集（非官方无版权版本）：\n```bash\npython prepare_data.py -d .\u002Fdata -t HFTokenizer --vocab-file tokenizer.json pile\n```\n预处理后的数据将保存在 `.\u002Fdata\u002Fpile` 目录下。\n\n### 3. 模型训练\n\n准备好数据后，可以使用以下命令启动训练。以 `TokenFormer-150M` 模型配置为例：\n\n```bash\npython .\u002Fdeepy.py train.py -d configs tokenformer\u002F150M.yml\n```\n\n**注意：** 训练脚本支持多种配置，您可以根据需要修改对应的 YAML 配置文件（位于 `configs\u002Ftokenformer\u002F` 目录下）来调整模型规模、超参数和数据路径。","**场景背景**：某AI研发团队正在开发一个多模态智能客服系统，需要同时处理文本、语音和图像工单。团队希望用一个统一的模型架构来简化系统设计，但传统Transformer在处理不同类型数据和动态调整模型规模时存在局限。\n\n### 没有 TokenFormer 时\n- **架构僵化**：为文本、语音、图像分别设计并维护不同的模型分支，导致代码库复杂，模块间协同困难。\n- **扩展低效**：当需要针对新出现的“视频工单”增加处理能力时，必须重新设计并训练一个独立的视频模块，周期长、成本高。\n- **资源浪费**：为应对不同规模的并发请求（如白天文本多、夜间语音多），需预先部署多个不同大小的模型实例，计算资源利用率低。\n- **动态适应能力弱**：模型参数固定，无法根据当前输入数据的复杂程度（如简单查询 vs. 多步骤故障诊断）动态调整计算路径或“调用”不同的内部知识。\n\n### 使用 TokenFormer 后\n- **架构统一灵活**：将模型参数本身也视为可被注意力机制处理的“令牌”，从而能用一套注意力计算框架统一处理文本、语音、图像令牌和参数令牌，用一个简洁的模型结构代替多个分支。\n- **扩展便捷**：要增加视频处理能力，只需将视频特征作为新的令牌类型引入，并添加或调整对应的参数令牌，模型能通过注意力机制快速学习新旧模态间的关系，实现快速迭代。\n- **按需缩放**：通过激活或组合不同的参数令牌子集，可以实现在同一个模型框架下，动态地创建出适合处理当前任务规模（如简单回复用小型参数集，复杂分析用大型参数集）的模型，提升资源利用率。\n- **数据依赖推理**：参数令牌可以“关注”输入数据，使得模型的有效参数能够根据输入内容动态变化，为简单问题选择高效路径，为复杂问题激活更深入的分析能力，提升了响应的智能度和准确性。\n\nTokenFormer 通过将模型参数令牌化，并用注意力机制统一建模数据与参数的交互，为构建可动态扩展、多模态统一的AI系统提供了高度灵活的架构基础。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHaiyang-W_TokenFormer_784dffa8.png","Haiyang-W","Haiyang Wang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FHaiyang-W_813b11fe.jpg","AGI & Agentic Coding","Peking University","Beijing",null,"haiyang73756134","https:\u002F\u002Fhaiyang-w.github.io\u002F","https:\u002F\u002Fgithub.com\u002FHaiyang-W",[84,88,92,96,100,104,108,112],{"name":85,"color":86,"percentage":87},"Python","#3572A5",79.9,{"name":89,"color":90,"percentage":91},"Shell","#89e051",10.1,{"name":93,"color":94,"percentage":95},"C++","#f34b7d",7.6,{"name":97,"color":98,"percentage":99},"Cuda","#3A4E3A",1.3,{"name":101,"color":102,"percentage":103},"Jupyter Notebook","#DA5B0B",0.9,{"name":105,"color":106,"percentage":107},"Dockerfile","#384d54",0.2,{"name":109,"color":110,"percentage":111},"C","#555555",0,{"name":113,"color":114,"percentage":111},"Makefile","#427819",589,43,"2026-03-13T14:54:02","Apache-2.0","Linux","必需 NVIDIA GPU，CUDA 12，PyTorch 2.2.1+，需安装 apex","未说明",{"notes":123,"python":124,"dependencies":125},"基于 GPT-NeoX 框架，部分库与 Python 3.10+ 不兼容。需安装 Rust 工具链解决 cargo 问题。训练需准备 Pile 或 OpenWebText2 数据集。","3.8",[126,127,128,129,130],"torch==2.2.1","torchvision==0.17.1","torchaudio==2.2.1","mpi4py==3.0.3","flash-attention",[35,14],[133,134,135,136,137,138],"architecture","foundation-models","llm","scaling-methods","transformer","attention-mechanism",4,"2026-03-27T02:49:30.150509","2026-04-11T16:53:11.642373",[143,148,153,158,163,168,173],{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},3895,"Pattention 和 FFN 有什么区别？","1. 使用 softmax 或类似函数代替简单的非线性激活，能够检索与查询相似的键。\n2. 具备增长能力，可以添加更多空的 K\u002FV 参数。\n本质上，TokenFormer 架构的核心在于，该操作的权重是在推理时动态检索的，而不是一组始终分配给该位置的静态权重。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F13",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},3896,"是否可以使用 LLaMA2 或 LLaMA3 作为基线模型？","LLaMA X 的 FFN 层与 GPT-2 的 FFN 层计算量相同，但使用了三个权重矩阵而非两个（使用 swiglu 激活而非 gelu）。如果使用相同的 Pattention 尺寸，可能会重新平衡计算量，使被替换的 FFN 部分计算量相对更多，这会改变计算表的细节，但最终可能对你有利。RoPE、RMSNorm 和归一化顺序是通用修改，如果应用于 GPT-2 之上，效果应该不会有太大差异。\n作者补充：模型性能主要取决于参数规模和数据，具体模型设计影响很小。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F4",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},3897,"增量训练的学习率计划是怎样的？","将每次训练视为独立的（唯一的例外是使用先前模型的权重）。这意味着需要自己实验学习率（LR）。根据测试，使用相同的 LR 效果稍好，尽管开始时损失会增加。如果使用相同的数据集进行训练，并且原本使用了余弦 LR 计划，建议给旧参数添加一些噪声，这有助于稳定训练过程。\n还可以尝试对 K 和 V 进行不同的初始化。无论是部分初始化为零还是完全随机初始化，最终性能大致相同。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F11",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},3898,"如何应用环注意力（ring attention）来无限扩展 TokenFormer 的规模？","TokenFormer 本质上是 Transformer 的扩展，因此任何用于 Transformer 的技术都可以应用于 TokenFormer。环注意力可能是一个很好的方法。\n作者认为 TokenFormer 在边缘-云协作的产品级 FM 中具有巨大的应用潜力。可以想象一个由分布在多个主机上的大量键值参数对组成的大型知识库。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F1",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},3899,"代码库的许可证是什么？","所有代码和权重都可供所有人免费使用。作者已更新并添加了许可证文件。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F3",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},3900,"论文中的表 3 参数计算是否有误？","关于参数计算的详细说明，请参阅此链接：https:\u002F\u002Fopenreview.net\u002Fforum?id=oQ4igHyh3N。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F12",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},3901,"视觉建模（Visual Modeling）部分的代码何时发布？","作者已通过邮件（例如 QQ 邮箱）将相关代码发送给询问者。","https:\u002F\u002Fgithub.com\u002FHaiyang-W\u002FTokenFormer\u002Fissues\u002F18",[]]