[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"news-detail-a0d320d8-61f0-48b1-b3c8-9454d19751c2":104},{"enabled":4,"title":5,"statusText":5,"buttonText":5,"campSlug":5,"stage":6,"classroomId":7,"hasClassroom":4},false,"",0,null,{"total":9,"list":10,"pageNum":44,"pageSize":45,"size":9,"startRow":44,"endRow":9,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":48,"navigateFirstPage":44,"navigateLastPage":44},3,[11,25,35],{"slug":12,"title":13,"logo":7,"liveUrl":14,"prize":15,"sponsor":16,"description":17,"organizer":18,"startTime":19,"endTime":20,"registrationDeadline":21,"status":22,"dashboardVisibility":23,"createdAt":24},"spring2026","2026春季启元人工智能大赛","https:\u002F\u002Fwww.bilibili.com\u002Fblackboard\u002Flive\u002Flive-activity-player.html?cid=1822703816&quality=0","200,000","麒麟软件有限公司","“2026春季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。\n各参赛选手需在规定的比赛周期内，依据赛事规则选定赛题并完成相应挑战，优胜者将共同角逐总额20万元的赛事奖金池，并且还将有机会获得实习和知名企业优质岗位内推资格。","启元实验室","2026-04-19 16:00:00","2026-07-13 16:00:00","2026-06-16 16:00:00","ongoing","private","2026-04-16 08:00:00",{"slug":26,"title":27,"logo":7,"liveUrl":14,"prize":28,"sponsor":7,"description":29,"organizer":18,"startTime":30,"endTime":31,"registrationDeadline":32,"status":33,"dashboardVisibility":23,"createdAt":34},"autumn2025","2025秋季启元人工智能大赛","150,000","“2025秋季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。","2025-11-08 08:00:00","2026-01-13 08:00:00","2025-12-30 08:00:00","ended","2025-11-03 08:00:00",{"slug":36,"title":37,"logo":7,"liveUrl":14,"prize":38,"sponsor":7,"description":39,"organizer":18,"startTime":40,"endTime":41,"registrationDeadline":42,"status":33,"dashboardVisibility":23,"createdAt":43},"summer2025","启元人工智能大赛(系统方向)","80,000","启元人工智能大赛由启元实验室主办，其中系统赛道基于启元实验室九源软件栈的相关开源项目，通过拉动开源社区力量，一方面促进国产智能计算生态的发展，另一方面也为人工智能系统方向的学生及从业者提供一个实践平台。","2025-07-08 08:00:00","2025-08-25 08:00:00","2025-07-22 08:00:00","2025-06-22 08:00:00",1,5,true,8,[44],{"total":45,"list":50,"pageNum":44,"pageSize":45,"size":45,"startRow":44,"endRow":45,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":103,"navigateFirstPage":44,"navigateLastPage":44},[51,62,73,84,94],{"id":52,"slug":53,"title":54,"logo":55,"publicLiveEmbedUrl":14,"description":56,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":58,"endTime":59,"status":22,"dashboardVisibility":60,"createdAt":58,"updatedAt":61},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=CQwSSaD7zDKmRRLunfBj%2Fb%2BuWQo%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":63,"slug":64,"title":65,"logo":66,"publicLiveEmbedUrl":7,"description":67,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":68,"startTime":69,"endTime":70,"status":33,"dashboardVisibility":23,"createdAt":71,"updatedAt":72},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=p6RpFyiI94BuXAkZlUjtUKe05u0%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。 \n","新华三技术有限公司","2025-12-25 08:00:00","2026-03-27 08:00:00","2025-12-06 08:00:00","2026-10-22 20:24:30",{"id":74,"slug":36,"title":75,"logo":76,"publicLiveEmbedUrl":7,"description":77,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":78,"startTime":79,"endTime":80,"status":81,"dashboardVisibility":23,"createdAt":82,"updatedAt":83},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=kPSLCxZqTyGThfXb45bzFg%2ByeVY%3D","InfiniTensor大模型与人工智能系统训练营由启元实验室及清华大学 AI 系统方向团队发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营联合开源项目开发者、学术界大牛、工业界资深工程师参与授课与项目指导。课程采用「线上直播授课 + 在线答疑 + 项目实践辅导 」的方式进行，确保每位同学都能获得充分成长。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","北京积算科技有限公司","2025-07-14 08:00:00","2025-09-30 08:00:00","upcoming","2025-07-13 08:00:00","2026-10-22 20:24:58",{"id":85,"slug":86,"title":87,"logo":88,"publicLiveEmbedUrl":7,"description":89,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":90,"endTime":91,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":93},"01980cf9-a7d8-7796-ae86-0bbe05334add","winter2024","2024年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-ce23-7624-a287-9f07dd0d85f6.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。报名学员请阅读“导学”课程页的训练营介绍。","2025-01-05 08:00:00","2025-03-22 08:00:00","2025-07-15 08:00:00","2026-10-22 20:24:39",{"id":95,"slug":96,"title":97,"logo":98,"publicLiveEmbedUrl":7,"description":99,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":100,"endTime":101,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":102},"01980c20-363a-7dc3-8f5a-58a68e08dcc4","summer2024","2024年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-fbfa-788a-afcd-17fa9be74ff9.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区和高校，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过课程、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","2024-07-20 08:00:00","2024-09-29 08:00:00","2026-10-22 20:24:49",[44],{"newsDetail":105,"processedData":123},{"publishTime":106,"img":107,"keywords":108,"treeType":44,"description":109,"showStatus":44,"updateTime":110,"type":44,"title":111,"content":112,"nextArticle":113,"createTime":119,"sortOrder":6,"canonicalPath":120,"id":121,"contentType":122,"prevArticle":7},"2026-10-29 00:00:00","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fdata\u002Fqy-test\u002Fuploads\u002F2026-10\u002Fe001e56d-9084-4383-8d3d-ffaf8c7cff84.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Z0RXSA6qWUZt8l%2B1g1oS%2BKUxLB4%3D","InfiniLoader,模型加载,内存缓存,大模型推理,九源开源技术周","InfiniLoader 是内存缓存模型加载工具，通过后台进程在主机内存缓存模型文件，支持 vLLM、InfiniLM 等框架，缓解调试时重复加载耗时问题，文中附带实验数据与开源地址","2026-10-30 15:29:25","九源开源技术周 01 | InfiniLoader：用内存缓存加速模型加载","# 九源开源技术周 01| InfiniLoader：用内存缓存加速模型加载\n\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fdata\u002Fqy-test\u002Fuploads\u002F2026-10\u002Fb2eee310-e6d6-4658-b57a-53fa3a99aa45.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=g1R17N3t%2BPbGfhAA729CR7fi7a0%3D)\n\n\n\n\u003Cspan style=\"font-size:14px;color:#777;\">在调试推理引擎时，我们经常会碰到这样的情况：刚改了几行代码，花十来秒跑一次验证就能知道结果，却得先等几分钟，甚至更久，模型才能加载到 GPU 上。查精度问题、调整算子实现，都要这样来回启动好几遍。\u003C\u002Fspan>\n\n### 为什么需要 InfiniLoader？\n\n连续使用同一个模型时，Linux 的 page cache 通常能加快后续读取。但实际调试中，两次运行之间还要改代码、重新编译，有时忙了半小时甚至一小时才回头验证。如果这期间编译或其他任务带来内存压力，之前模型文件的缓存就可能已经被回收了一部分。\n\n轮流测试几个大模型时也一样。主机内存不够宽裕时，加载下一个模型就可能挤掉上一个模型的缓存。等切回来，又得从存储补读。\n\n**InfiniLoader** 就是我们为此做的一个小工具：先把模型文件缓存到主机内存，由独立的后台进程保留。后续启动直接使用这份缓存，要提前准备哪些模型、保留多久，都可以自己决定。\n\n### 一条命令先把模型文件准备好\n\n比如，已经下载到本地的 Qwen3-8B，用这一条命令就能建立内存缓存：\n\n```bash\niloader start \u002Fmodels\u002FQwen3-8B --name qwen8b\n```\n\n`qwen8b` 是这份缓存的名字。准备好后，执行 `iloader view qwen8b`，就能拿到一个可以直接访问的模型目录。这个目录入口叫作 **view**，里面仍按原来的结构组织权重、配置和 tokenizer 文件，推理引擎可以像读取普通模型目录一样使用它。\n\n如果还要切到 Qwen3-14B，可以再执行：\n\n```bash\niloader start \u002Fmodels\u002FQwen3-14B --name qwen14b\n```\n\n这样两份缓存就能同时保留，需要哪个模型，就分别用 `iloader view qwen` 或 `iloader view qwen14b` 取路径。\n\n> ⚠️ 同时放几个模型，就得有装得下这些文件的主机内存，同时也要给推理框架留出一定空间。\n\n###  给 InfiniLM 换一个模型路径\n\n先看九源的推理引擎 **InfiniLM**。下面是一组在 InfiniLM 仓库目录中运行的完整启动命令（以 NVIDIA GPU 为例）。使用缓存时，只需要换掉模型路径，其他参数照旧：\n\n```bash\n# 原来从模型目录加载\npython3 python\u002Finfinilm\u002Fserver\u002Finference_server.py \\\n  --model \u002Fmodels\u002FQwen3-8B --device nvidia --tp 1 \\\n  --host 127.0.0.1 --port 8000\n\n# 改为读取 InfiniLoader 的缓存\npython3 python\u002Finfinilm\u002Fserver\u002Finference_server.py \\\n  --model \"$(iloader view qwen)\" --device nvidia --tp 1 \\\n  --host 127.0.0.1 --port 8000\n```\n\n后面仍由 InfiniLM 按原来的流程读取权重、运行模型。示例沿用默认关闭空闲回收的设置。调试时可以只重启引擎，让缓存进程继续保留文件，等读取任务结束后再释放。\n\nvLLM、SGLang 也可以按同样方式接入，具体兼容性取决于所用版本的加载器是否支持这一文件接口。以 vLLM 为例，只需把模型路径换掉：\n\n```bash\n# 原来从模型目录加载\nvllm serve \u002Fmodels\u002FQwen3-8B --tensor-parallel-size 1\n\n# 改为读取 InfiniLoader 的缓存\nvllm serve \"$(iloader view qwen)\" --tensor-parallel-size 1\n```\n\nSGLang 和其他兼容普通文件接口的开源框架、评测脚本，也可以使用这份缓存。做不同框架或代码版本的对比时，模型文件没变，各组实验就能继续读取已经准备好的文件。\n\n### 改代码的时候就可以开始加载\n\n有了独立的缓存进程，加载模型也不用非得等到代码改完再开始。\n\n准备调试某个模型时，先在终端执行 `iloader start \u002Fmodels\u002FQwen3-8B --name qwen`，让文件开始读取，你照常改代码。等代码改好、缓存也准备好了，再启动验证，**从原始存储读文件这一步就已经提前完成了**。\n\n这里预载的是主机内存中的模型文件，**不占用 GPU 显存**。所以连续评测多个模型时，也可以趁模型 A 还在 GPU 上计算，先把下一轮要用的模型 B 预载起来。只要主机内存和 I\u002FO 还有余量，两件事就可以同时进行，等 GPU 空出来再启动 B。\n\n### 省下的是哪段等待？\n\n拿 100 GB 的模型权重举个例子：按 1 GB\u002Fs 的有效读取带宽估算，仅把文件读出来就要 100 秒左右。\n\nInfiniLoader 处理的是这部分**原始存储读取**，可以提前做，也可以在后续启动时复用缓存。权重解析、张量创建和传到 GPU 等工作，仍然由推理引擎完成。\n\n> ⚠️第一次准备缓存也要花时间，并且会占用主机内存。如果系统页缓存本来就很充分，额外收益可能不大；内存紧张到发生 swap 时，缓存读取也会受影响。这些成本都算进去，才能知道自己的调试和评测流程实际少等了多久。\n\n### 后续还可以做些什么\n\n文件能提前准备、跨进程复用以后，还有几件事值得继续做：\n\n#### 1. 多机只加载各自需要的权重\n多机运行一个大模型时，如果每台服务器都先缓存整份权重，主机内存会用得很快。更合适的做法是按张量并行和流水线并行（TP\u002FPP）的布局，让每台机器只准备本机要用的分片及必要副本。\n\nInfiniLoader 已经有实验性的显式 TP\u002FPP 分片导出能力，目前还需要自己给出切分规则、把文件分发到各节点，并配合相应的模型适配器读取。后续可以把布局准备、分片分发和节点缓存启动连起来，逐步做成自动流程。换一种并行布局时，也要考虑分片是否需要重新准备。\n\n#### 2. 让权重继续留在 GPU 里\n现在文件准备好以后，权重还要从主机内存搬到 GPU。后续可以探索让 GPU 权重独立于推理进程驻留，引擎重启后继续复用，进一步减少重复传输。\n\n仓库已有实验性的 GPU 专家池，可以在同一进程内保留选中的 MoE 专家；要扩展成跨推理进程的权重缓存，还需要引擎接入和显存生命周期管理。显存被缓存占住后，留给其他任务的空间也会减少，保留哪些权重需要有所取舍。\n\n#### 3. 让预加载跟上任务顺序\n前面说的“模型 A 还在跑，先准备模型 B”，现在可以手动安排。后续可以与评测脚本或任务队列对接，提前知道下一轮要用哪个模型，在内存和 I\u002FO 允许时自动预载。再结合已有的本地磁盘缓存，让近期要用的模型留在内存，暂时不用的模型先放在本地盘，减少每轮实验前手动准备的工作。\n\n### 一组小实验\n\n下面用 **Qwen3-8B** 做一组对比，GPU 为 L20，精度为 BF16，推理框架使用 Transformers。三种场景都计时到首个 token：\n\n| 场景 | 普通 NFS 加载（秒） | InfiniLoader（秒） |\n| :--- | :---: | :---: |\n| 冷启动 | 75.69 | 60.95 |\n| 热启动 | 6.56 | 6.38 |\n| 受控内存回收后启动 | 60.17 | 6.73 |\n\n- **冷启动：** InfiniLoader 的 60.95 秒已包含 54.53 秒首次预载，比普通 NFS 的 75.69 秒少了约 15 秒。\n- **热启动：** 两边分别是 6.56 秒和 6.38 秒，差别很小。连续使用同一个模型时，系统页缓存确实已经帮了不少忙。\n- **受控内存回收后启动（差异最大）：** 这一轮通过隔离的内存压力做受控回收，普通加载对应的模型文件页驻留率从 100% 降到 0%，InfiniLoader 的内存缓存保持 100%。随后，普通方式用了 60.17 秒，InfiniLoader 用了 **6.73 秒**，前者耗时约为后者的 **8.9 倍**。\n\n> 📊 **实验结论**\n> 从约一分钟缩短到约七秒，代价是为缓存保留约 16.4 GB 主机内存。\n\n\u003Cspan style=\"font-size:13px;color:#777;\">*注：这里测的是受控回收条件下的再次启动，还不能直接当成真实多模型自然轮换的结果。六次生成的输出一致。这次测试直接调用核心缓存 API，没有重新验证命令行守护进程的生命周期。后续可以再补上真实多模型轮测，以及从改代码、预载到启动验证的完整流程测试。\u003C\u002Fspan>\n\n\n\n## 🔗 相关链接\n\n-   **开源仓库：** https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\n-   **中文说明：** https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002FREADME.zh-CN.md\n-   **使用指南：** https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\n-   **分布式与 GPU 实验接口：** https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\n\n\n## 关注与交流\n\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fdata\u002Fqy-test\u002Fuploads\u002F2026-10\u002Feeca03b5-98d5-4d52-bc64-c4709626da04.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=A9s3whpz1t5gV2VaiLJ3zvbvRRA%3D)",{"publishTime":114,"createTime":115,"canonicalPath":116,"id":117,"title":118},"2026-10-28 00:00:00","2026-10-30 15:44:22","\u002Fnews\u002F7c16bd17-c54f-48a2-8591-baddb7ff6fc6","7c16bd17-c54f-48a2-8591-baddb7ff6fc6","2026 GAI+C 大会 | 智算新生态+开源技术周：10月31日共探国产智能计算创新之路","2026-10-30 15:25:24","\u002Fnews\u002Fa0d320d8-61f0-48b1-b3c8-9454d19751c2","a0d320d8-61f0-48b1-b3c8-9454d19751c2","markdown",{"htmlContent":124,"headings":125},"\u003Ch1 id=\"九源开源技术周-01-infiniloader-用内存缓存加速模型加载\">\u003Ca class=\"anchor\" href=\"#九源开源技术周-01-infiniloader-用内存缓存加速模型加载\" aria-label=\"跳转到标题：九源开源技术周 01| InfiniLoader：用内存缓存加速模型加载\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>九源开源技术周 01| InfiniLoader：用内存缓存加速模型加载\u003C\u002Fh1>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fdata\u002Fqy-test\u002Fuploads\u002F2026-10\u002Fb2eee310-e6d6-4658-b57a-53fa3a99aa45.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=g1R17N3t%2BPbGfhAA729CR7fi7a0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cspan style=\"font-size:14px;color:#777;\">在调试推理引擎时，我们经常会碰到这样的情况：刚改了几行代码，花十来秒跑一次验证就能知道结果，却得先等几分钟，甚至更久，模型才能加载到 GPU 上。查精度问题、调整算子实现，都要这样来回启动好几遍。\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3 id=\"为什么需要-infiniloader\">\u003Ca class=\"anchor\" href=\"#为什么需要-infiniloader\" aria-label=\"跳转到标题：为什么需要 InfiniLoader？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>为什么需要 InfiniLoader？\u003C\u002Fh3>\u003Cp>连续使用同一个模型时，Linux 的 page cache 通常能加快后续读取。但实际调试中，两次运行之间还要改代码、重新编译，有时忙了半小时甚至一小时才回头验证。如果这期间编译或其他任务带来内存压力，之前模型文件的缓存就可能已经被回收了一部分。\u003C\u002Fp>\n\u003Cp>轮流测试几个大模型时也一样。主机内存不够宽裕时，加载下一个模型就可能挤掉上一个模型的缓存。等切回来，又得从存储补读。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>InfiniLoader\u003C\u002Fstrong> 就是我们为此做的一个小工具：先把模型文件缓存到主机内存，由独立的后台进程保留。后续启动直接使用这份缓存，要提前准备哪些模型、保留多久，都可以自己决定。\u003C\u002Fp>\n\u003Ch3 id=\"一条命令先把模型文件准备好\">\u003Ca class=\"anchor\" href=\"#一条命令先把模型文件准备好\" aria-label=\"跳转到标题：一条命令先把模型文件准备好\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>一条命令先把模型文件准备好\u003C\u002Fh3>\u003Cp>比如，已经下载到本地的 Qwen3-8B，用这一条命令就能建立内存缓存：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">iloader start \u002Fmodels\u002FQwen3-8B --name qwen8b\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>qwen8b\u003C\u002Fcode> 是这份缓存的名字。准备好后，执行 \u003Ccode>iloader view qwen8b\u003C\u002Fcode>，就能拿到一个可以直接访问的模型目录。这个目录入口叫作 \u003Cstrong>view\u003C\u002Fstrong>，里面仍按原来的结构组织权重、配置和 tokenizer 文件，推理引擎可以像读取普通模型目录一样使用它。\u003C\u002Fp>\n\u003Cp>如果还要切到 Qwen3-14B，可以再执行：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">iloader start \u002Fmodels\u002FQwen3-14B --name qwen14b\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>这样两份缓存就能同时保留，需要哪个模型，就分别用 \u003Ccode>iloader view qwen\u003C\u002Fcode> 或 \u003Ccode>iloader view qwen14b\u003C\u002Fcode> 取路径。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>⚠️ 同时放几个模型，就得有装得下这些文件的主机内存，同时也要给推理框架留出一定空间。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"给-infinilm-换一个模型路径\">\u003Ca class=\"anchor\" href=\"#给-infinilm-换一个模型路径\" aria-label=\"跳转到标题：给 InfiniLM 换一个模型路径\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>给 InfiniLM 换一个模型路径\u003C\u002Fh3>\u003Cp>先看九源的推理引擎 \u003Cstrong>InfiniLM\u003C\u002Fstrong>。下面是一组在 InfiniLM 仓库目录中运行的完整启动命令（以 NVIDIA GPU 为例）。使用缓存时，只需要换掉模型路径，其他参数照旧：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 原来从模型目录加载\npython3 python\u002Finfinilm\u002Fserver\u002Finference_server.py \\\n  --model \u002Fmodels\u002FQwen3-8B --device nvidia --tp 1 \\\n  --host 127.0.0.1 --port 8000\n\n# 改为读取 InfiniLoader 的缓存\npython3 python\u002Finfinilm\u002Fserver\u002Finference_server.py \\\n  --model &quot;$(iloader view qwen)&quot; --device nvidia --tp 1 \\\n  --host 127.0.0.1 --port 8000\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>后面仍由 InfiniLM 按原来的流程读取权重、运行模型。示例沿用默认关闭空闲回收的设置。调试时可以只重启引擎，让缓存进程继续保留文件，等读取任务结束后再释放。\u003C\u002Fp>\n\u003Cp>vLLM、SGLang 也可以按同样方式接入，具体兼容性取决于所用版本的加载器是否支持这一文件接口。以 vLLM 为例，只需把模型路径换掉：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 原来从模型目录加载\nvllm serve \u002Fmodels\u002FQwen3-8B --tensor-parallel-size 1\n\n# 改为读取 InfiniLoader 的缓存\nvllm serve &quot;$(iloader view qwen)&quot; --tensor-parallel-size 1\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>SGLang 和其他兼容普通文件接口的开源框架、评测脚本，也可以使用这份缓存。做不同框架或代码版本的对比时，模型文件没变，各组实验就能继续读取已经准备好的文件。\u003C\u002Fp>\n\u003Ch3 id=\"改代码的时候就可以开始加载\">\u003Ca class=\"anchor\" href=\"#改代码的时候就可以开始加载\" aria-label=\"跳转到标题：改代码的时候就可以开始加载\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>改代码的时候就可以开始加载\u003C\u002Fh3>\u003Cp>有了独立的缓存进程，加载模型也不用非得等到代码改完再开始。\u003C\u002Fp>\n\u003Cp>准备调试某个模型时，先在终端执行 \u003Ccode>iloader start \u002Fmodels\u002FQwen3-8B --name qwen\u003C\u002Fcode>，让文件开始读取，你照常改代码。等代码改好、缓存也准备好了，再启动验证，\u003Cstrong>从原始存储读文件这一步就已经提前完成了\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>这里预载的是主机内存中的模型文件，\u003Cstrong>不占用 GPU 显存\u003C\u002Fstrong>。所以连续评测多个模型时，也可以趁模型 A 还在 GPU 上计算，先把下一轮要用的模型 B 预载起来。只要主机内存和 I\u002FO 还有余量，两件事就可以同时进行，等 GPU 空出来再启动 B。\u003C\u002Fp>\n\u003Ch3 id=\"省下的是哪段等待\">\u003Ca class=\"anchor\" href=\"#省下的是哪段等待\" aria-label=\"跳转到标题：省下的是哪段等待？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>省下的是哪段等待？\u003C\u002Fh3>\u003Cp>拿 100 GB 的模型权重举个例子：按 1 GB\u002Fs 的有效读取带宽估算，仅把文件读出来就要 100 秒左右。\u003C\u002Fp>\n\u003Cp>InfiniLoader 处理的是这部分\u003Cstrong>原始存储读取\u003C\u002Fstrong>，可以提前做，也可以在后续启动时复用缓存。权重解析、张量创建和传到 GPU 等工作，仍然由推理引擎完成。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>⚠️第一次准备缓存也要花时间，并且会占用主机内存。如果系统页缓存本来就很充分，额外收益可能不大；内存紧张到发生 swap 时，缓存读取也会受影响。这些成本都算进去，才能知道自己的调试和评测流程实际少等了多久。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"后续还可以做些什么\">\u003Ca class=\"anchor\" href=\"#后续还可以做些什么\" aria-label=\"跳转到标题：后续还可以做些什么\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>后续还可以做些什么\u003C\u002Fh3>\u003Cp>文件能提前准备、跨进程复用以后，还有几件事值得继续做：\u003C\u002Fp>\n\u003Ch4 id=\"1-多机只加载各自需要的权重\">\u003Ca class=\"anchor\" href=\"#1-多机只加载各自需要的权重\" aria-label=\"跳转到标题：1. 多机只加载各自需要的权重\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>1. 多机只加载各自需要的权重\u003C\u002Fh4>\u003Cp>多机运行一个大模型时，如果每台服务器都先缓存整份权重，主机内存会用得很快。更合适的做法是按张量并行和流水线并行（TP\u002FPP）的布局，让每台机器只准备本机要用的分片及必要副本。\u003C\u002Fp>\n\u003Cp>InfiniLoader 已经有实验性的显式 TP\u002FPP 分片导出能力，目前还需要自己给出切分规则、把文件分发到各节点，并配合相应的模型适配器读取。后续可以把布局准备、分片分发和节点缓存启动连起来，逐步做成自动流程。换一种并行布局时，也要考虑分片是否需要重新准备。\u003C\u002Fp>\n\u003Ch4 id=\"2-让权重继续留在-gpu-里\">\u003Ca class=\"anchor\" href=\"#2-让权重继续留在-gpu-里\" aria-label=\"跳转到标题：2. 让权重继续留在 GPU 里\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>2. 让权重继续留在 GPU 里\u003C\u002Fh4>\u003Cp>现在文件准备好以后，权重还要从主机内存搬到 GPU。后续可以探索让 GPU 权重独立于推理进程驻留，引擎重启后继续复用，进一步减少重复传输。\u003C\u002Fp>\n\u003Cp>仓库已有实验性的 GPU 专家池，可以在同一进程内保留选中的 MoE 专家；要扩展成跨推理进程的权重缓存，还需要引擎接入和显存生命周期管理。显存被缓存占住后，留给其他任务的空间也会减少，保留哪些权重需要有所取舍。\u003C\u002Fp>\n\u003Ch4 id=\"3-让预加载跟上任务顺序\">\u003Ca class=\"anchor\" href=\"#3-让预加载跟上任务顺序\" aria-label=\"跳转到标题：3. 让预加载跟上任务顺序\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>3. 让预加载跟上任务顺序\u003C\u002Fh4>\u003Cp>前面说的“模型 A 还在跑，先准备模型 B”，现在可以手动安排。后续可以与评测脚本或任务队列对接，提前知道下一轮要用哪个模型，在内存和 I\u002FO 允许时自动预载。再结合已有的本地磁盘缓存，让近期要用的模型留在内存，暂时不用的模型先放在本地盘，减少每轮实验前手动准备的工作。\u003C\u002Fp>\n\u003Ch3 id=\"一组小实验\">\u003Ca class=\"anchor\" href=\"#一组小实验\" aria-label=\"跳转到标题：一组小实验\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>一组小实验\u003C\u002Fh3>\u003Cp>下面用 \u003Cstrong>Qwen3-8B\u003C\u002Fstrong> 做一组对比，GPU 为 L20，精度为 BF16，推理框架使用 Transformers。三种场景都计时到首个 token：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"left\">场景\u003C\u002Fth>\n\u003Cth align=\"center\">普通 NFS 加载（秒）\u003C\u002Fth>\n\u003Cth align=\"center\">InfiniLoader（秒）\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd align=\"left\">冷启动\u003C\u002Ftd>\n\u003Ctd align=\"center\">75.69\u003C\u002Ftd>\n\u003Ctd align=\"center\">60.95\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"left\">热启动\u003C\u002Ftd>\n\u003Ctd align=\"center\">6.56\u003C\u002Ftd>\n\u003Ctd align=\"center\">6.38\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"left\">受控内存回收后启动\u003C\u002Ftd>\n\u003Ctd align=\"center\">60.17\u003C\u002Ftd>\n\u003Ctd align=\"center\">6.73\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cul>\n\u003Cli>\u003Cstrong>冷启动：\u003C\u002Fstrong> InfiniLoader 的 60.95 秒已包含 54.53 秒首次预载，比普通 NFS 的 75.69 秒少了约 15 秒。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>热启动：\u003C\u002Fstrong> 两边分别是 6.56 秒和 6.38 秒，差别很小。连续使用同一个模型时，系统页缓存确实已经帮了不少忙。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>受控内存回收后启动（差异最大）：\u003C\u002Fstrong> 这一轮通过隔离的内存压力做受控回收，普通加载对应的模型文件页驻留率从 100% 降到 0%，InfiniLoader 的内存缓存保持 100%。随后，普通方式用了 60.17 秒，InfiniLoader 用了 \u003Cstrong>6.73 秒\u003C\u002Fstrong>，前者耗时约为后者的 \u003Cstrong>8.9 倍\u003C\u002Fstrong>。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>📊 \u003Cstrong>实验结论\u003C\u002Fstrong>\u003Cbr>从约一分钟缩短到约七秒，代价是为缓存保留约 16.4 GB 主机内存。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cspan style=\"font-size:13px;color:#777;\">*注：这里测的是受控回收条件下的再次启动，还不能直接当成真实多模型自然轮换的结果。六次生成的输出一致。这次测试直接调用核心缓存 API，没有重新验证命令行守护进程的生命周期。后续可以再补上真实多模型轮测，以及从改代码、预载到启动验证的完整流程测试。\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2 id=\"相关链接\">\u003Ca class=\"anchor\" href=\"#相关链接\" aria-label=\"跳转到标题：🔗 相关链接\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>🔗 相关链接\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>开源仓库：\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\">https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>中文说明：\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002FREADME.zh-CN.md\">https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002FREADME.zh-CN.md\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>使用指南：\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\">https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>分布式与 GPU 实验接口：\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\">https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002FInfiniLoader\u002Fblob\u002Fmaster\u002Fdocs\u002Fusage.zh-CN.md\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"关注与交流\">\u003Ca class=\"anchor\" href=\"#关注与交流\" aria-label=\"跳转到标题：关注与交流\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>关注与交流\u003C\u002Fh2>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fdata\u002Fqy-test\u002Fuploads\u002F2026-10\u002Feeca03b5-98d5-4d52-bc64-c4709626da04.jpg?Expires=1793357477&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=A9s3whpz1t5gV2VaiLJ3zvbvRRA%3D\" alt=\"\">\u003C\u002Fp>\n",[126,129,132,134,137,139,142,144,148,151,154,156,160],{"id":127,"text":128,"level":44},"九源开源技术周-01-infiniloader-用内存缓存加速模型加载","九源开源技术周 01| InfiniLoader：用内存缓存加速模型加载",{"id":130,"text":131,"level":9},"为什么需要-infiniloader","为什么需要 InfiniLoader？",{"id":133,"text":133,"level":9},"一条命令先把模型文件准备好",{"id":135,"text":136,"level":9},"给-infinilm-换一个模型路径","给 InfiniLM 换一个模型路径",{"id":138,"text":138,"level":9},"改代码的时候就可以开始加载",{"id":140,"text":141,"level":9},"省下的是哪段等待","省下的是哪段等待？",{"id":143,"text":143,"level":9},"后续还可以做些什么",{"id":145,"text":146,"level":147},"1-多机只加载各自需要的权重","1. 多机只加载各自需要的权重",4,{"id":149,"text":150,"level":147},"2-让权重继续留在-gpu-里","2. 让权重继续留在 GPU 里",{"id":152,"text":153,"level":147},"3-让预加载跟上任务顺序","3. 让预加载跟上任务顺序",{"id":155,"text":155,"level":9},"一组小实验",{"id":157,"text":158,"level":159},"相关链接","🔗 相关链接",2,{"id":161,"text":161,"level":159},"关注与交流"]