<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blogs on moyutianzun 的博客</title><link>https://moyutianzun.com/blog/</link><description>Recent content in Blogs on moyutianzun 的博客</description><generator>Hugo</generator><language>zh-cn</language><copyright>moyutianzun</copyright><lastBuildDate>Mon, 29 Jun 2026 07:59:28 +0800</lastBuildDate><atom:link href="https://moyutianzun.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>垂类系统的agent如何设计</title><link>https://moyutianzun.com/blog/chui-lei-xi-tong-de-agentru-he-she-ji/</link><pubDate>Mon, 29 Jun 2026 07:59:28 +0800</pubDate><guid>https://moyutianzun.com/blog/chui-lei-xi-tong-de-agentru-he-she-ji/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E6%A0%B8%E5%BF%83%E7%9F%9B%E7%9B%BE1%EF%BC%9A%E5%9E%82%E7%9B%B4%E6%B7%B1%E5%BA%A6-vs-%E6%B0%B4%E5%B9%B3%E8%A6%86%E7%9B%96"&gt;核心矛盾1：垂直深度 vs 水平覆盖&lt;/h2&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;一个「霸总甜宠」skill 要写到能指导 LLM 生成高质量脚本，需要非常具体的规则——比如「第一集前两分钟必须完成阶级落差建立」「打脸节奏三集一小五集一大」。但这些规则对一个 30 秒广告完全没意义，对 80 集长剧又太稀疏。&lt;/p&gt;</description></item><item><title>github开源项目：Weft系统设计</title><link>https://moyutianzun.com/blog/githubkai-yuan-xiang-mu-weftxi-tong-she-ji/</link><pubDate>Mon, 15 Jun 2026 03:24:41 +0800</pubDate><guid>https://moyutianzun.com/blog/githubkai-yuan-xiang-mu-weftxi-tong-she-ji/</guid><description>&lt;p style=""&gt;首先我们要分析清楚cc现有的几个处理信息的模式：&lt;/p&gt;&lt;div style="overflow-x: auto; overflow-y: hidden;"&gt;&lt;table style="width: 968px"&gt;&lt;colgroup&gt;&lt;col style="width: 118px"&gt;&lt;col style="width: 187px"&gt;&lt;col style="width: 207px"&gt;&lt;col style="width: 164px"&gt;&lt;col style="width: 138px"&gt;&lt;col style="width: 154px"&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 60px;"&gt;&lt;th colspan="1" rowspan="1" colwidth="118"&gt;&lt;p style=""&gt;&lt;strong&gt;核心维度&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;th colspan="1" rowspan="1" colwidth="187"&gt;&lt;p style=""&gt;ReAct 隐式 plan&lt;/p&gt;&lt;/th&gt;&lt;th colspan="1" rowspan="1" colwidth="207"&gt;&lt;p style=""&gt;Plan → Do 显式 plan&lt;/p&gt;&lt;/th&gt;&lt;th colspan="1" rowspan="1" colwidth="164"&gt;&lt;p style=""&gt;Workflow 编排脚本&lt;/p&gt;&lt;/th&gt;&lt;th colspan="1" rowspan="1" colwidth="138"&gt;&lt;p style=""&gt;/loop 定时轮询&lt;/p&gt;&lt;/th&gt;&lt;th colspan="1" rowspan="1" colwidth="154"&gt;&lt;p style=""&gt;/goal 目标驱动&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr style="height: 60px;"&gt;&lt;td colspan="1" rowspan="1" colwidth="118"&gt;&lt;p style=""&gt;&lt;strong&gt;一句话理解&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="187"&gt;&lt;p style=""&gt;边想边做&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="207"&gt;&lt;p style=""&gt;先计划，再执行&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="164"&gt;&lt;p style=""&gt;用脚本编排多个 agent&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="138"&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;定时重复跑任务&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="154"&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;给目标，自动跑到收敛&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 60px;"&gt;&lt;td colspan="1" rowspan="1" colwidth="118"&gt;&lt;p style=""&gt;&lt;strong&gt;计划可见性&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="187"&gt;&lt;p style=""&gt;低，计划藏在模型内部&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="207"&gt;&lt;p style=""&gt;高，plan 可审查&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="164"&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;最高，控制流写在脚本里&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="138"&gt;&lt;p style=""&gt;基本无计划&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="154"&gt;&lt;p style=""&gt;中低，目标明确但路径隐式&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 60px;"&gt;&lt;td colspan="1" rowspan="1" colwidth="118"&gt;&lt;p style=""&gt;&lt;strong&gt;执行方式&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="187"&gt;&lt;p style=""&gt;单 agent 串行&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="207"&gt;&lt;p style=""&gt;单 agent 串行&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="164"&gt;&lt;p style=""&gt;多 agent 并行 / pipeline&lt;/p&gt;&lt;/td&gt;&lt;td colspan="1" rowspan="1" colwidth="138"&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;单 agent 周期执行&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>每日github项目解析：（二）20260605 github robot和agent soul</title><link>https://moyutianzun.com/blog/mei-ri-githubxiang-mu-jie-xi-er-20260605/</link><pubDate>Fri, 05 Jun 2026 09:47:40 +0800</pubDate><guid>https://moyutianzun.com/blog/mei-ri-githubxiang-mu-jie-xi-er-20260605/</guid><description>&lt;h1 style="" id="github-robot"&gt;github robot&lt;/h1&gt;&lt;p style=""&gt;https://github.com/pbakaus/agent-reviews&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark data-color="#fed7aa" style="background-color: #fed7aa; color: inherit"&gt;&lt;u&gt;这个项目让我想到一个有意思的场景：一个让人血压升高的下午&lt;/u&gt;&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;你提了一个 PR，信心满满。几秒钟后，Copilot 来了，CodeRabbit 来了，Cursor Bugbot 也来了。它们在你的代码行上密密麻麻留下几十条评论：这里可能空指针，那里命名不规范，这个函数复杂度超标。你认认真真改了一轮，git push。&lt;/p&gt;</description></item><item><title>每日github项目解析：（一）20260604</title><link>https://moyutianzun.com/blog/mei-ri-githubxiang-mu-jie-xi-yi-20260604/</link><pubDate>Thu, 04 Jun 2026 10:00:30 +0800</pubDate><guid>https://moyutianzun.com/blog/mei-ri-githubxiang-mu-jie-xi-yi-20260604/</guid><description>&lt;h1 style="" id="headroom"&gt;headroom&lt;/h1&gt;&lt;p style=""&gt;https://github.com/chopratejas/headroom&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark data-color="#fed7aa" style="background-color: #fed7aa; color: inherit"&gt;&lt;u&gt;官方的说法是它是个给 AI agent 省 token 的"压缩中间层"。&lt;/u&gt;&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;AI agent(比如 Claude Code)干活时,要把一大堆东西塞给大模型读——工具输出、日志、报错、检索结果、文件内容、聊天历史。&lt;/p&gt;</description></item><item><title>agent eval：（一）deepeval</title><link>https://moyutianzun.com/blog/agent-eval-yi-deepeval/</link><pubDate>Tue, 19 May 2026 03:07:56 +0800</pubDate><guid>https://moyutianzun.com/blog/agent-eval-yi-deepeval/</guid><description>&lt;h1 style="" id="%E7%89%B9%E6%80%A7%E5%88%86%E6%9E%90"&gt;特性分析&lt;/h1&gt;&lt;h2 style="" id="%E9%9B%86%E6%88%90%E6%94%AF%E6%8C%81"&gt;集成支持&lt;/h2&gt;&lt;p style=""&gt;deepeval 通过一个统一的 Tracing 核心层来兼容所有框架。无论外部框架的形式如何不同，最终都汇聚到同一套数据模型和 trace 管理器。&lt;/p&gt;&lt;figure style="align-items: center; display: flex; flex-direction: column" data-content-type="image"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20260518201906340.png" width="1041px"&gt;&lt;/figure&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;Monkey-Patch 直接替换 SDK 类方法&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;mark&gt;Callback Handler 实现框架原生回调接口&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>vibe coding系列：（三）一边vibe一边read</title><link>https://moyutianzun.com/blog/yi-bian-vibeyi-bian-read/</link><pubDate>Mon, 04 May 2026 09:33:24 +0800</pubDate><guid>https://moyutianzun.com/blog/yi-bian-vibeyi-bian-read/</guid><description>&lt;h1 style="" id="%E5%AE%89%E8%A3%85"&gt;安装&lt;/h1&gt;&lt;p style=""&gt;powershell安装&lt;/p&gt;&lt;pre&gt;&lt;code&gt;scoop bucket add extras
scoop install extras/wezterm
scoop install pwsh
scoop install yazi&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;这里的pwsh是powershell 7，现在更多都是用pwsh了，后面主题出现的inner liner错误，基本上都是没用pwsh的原因。&lt;/p&gt;&lt;h1 style="" id="%E5%90%AF%E5%8A%A8"&gt;启动&lt;/h1&gt;&lt;p style=""&gt;WezTerm是独立的应用，你可以直接搜索打开，也可以在pwsh直接输入WezTerm打开，都可以&lt;/p&gt;&lt;p style=""&gt;打开你会发现默认是C盘system32的cmd.exe，这显然不是很好，我们可以配置一下，打开pwsh：&lt;/p&gt;&lt;pre&gt;&lt;code&gt;notepad $env:USERPROFILE\.wezterm.lua&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;没有就新建一个，然后给出最小配置：&lt;/p&gt;&lt;pre&gt;&lt;code&gt;local wezterm = require 'wezterm'
&lt;p&gt;return {
config.default_prog = { &amp;lsquo;pwsh.exe&amp;rsquo;, &amp;lsquo;-NoLogo&amp;rsquo; }
default_cwd = &amp;lsquo;D:/OS&amp;rsquo;,
}&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;默认打开powershell，然后给出默认路径（嘿，这图还是powershell的，就是因为我后面主题错了，所以前面才换成pwsh）：&lt;/p&gt;</description></item><item><title>agent系列（五）：agent架构的落地思考</title><link>https://moyutianzun.com/blog/agentxi-lie-wu-ru-he-gou-jian-hao-yi-ge-qaxi-tong/</link><pubDate>Wed, 22 Apr 2026 07:43:23 +0800</pubDate><guid>https://moyutianzun.com/blog/agentxi-lie-wu-ru-he-gou-jian-hao-yi-ge-qaxi-tong/</guid><description>&lt;p style=""&gt;最近在楼下停车场散步，反思了一下最近遇到的bug，觉得蛮有意思的，写篇blog分享一下。&lt;/p&gt;&lt;h1 style="" id="prompt-engineering%E7%9A%84useful%E5%92%8Cuseless"&gt;prompt engineering的useful和useless&lt;/h1&gt;&lt;p style=""&gt;上文我们已经从架构的方面去讨论过多种的agent架构，主要还是分为隐式plan、半显式plan和显式plan的三种不同的agent风格，&lt;/p&gt;&lt;p style=""&gt;那么在前年的prompt engineering的时代，RAG是那时候的热门话题，为什么要RAG呢，是因为LLM落地的第一大问题：大模型训练的语料是公开语料和通用规律，它是不知道公司内部文档、你自己的笔记和古早之前的上下文的，那时候连web search的清洗都是非常困难的，所以大模型的幻觉非常强。&lt;/p&gt;</description></item><item><title>vibe coding系列：（二）GET SHIT DONE</title><link>https://moyutianzun.com/blog/vibe-codingxi-lie-er-get-shit-done/</link><pubDate>Tue, 14 Apr 2026 06:31:13 +0800</pubDate><guid>https://moyutianzun.com/blog/vibe-codingxi-lie-er-get-shit-done/</guid><description>&lt;blockquote&gt;&lt;p style=""&gt;github link：https://github.com/gsd-build/get-shit-done/blob/main/README.zh-CN.md&lt;/p&gt;</description></item><item><title>agent系列：（四）session管理和agent架构</title><link>https://moyutianzun.com/blog/agentxi-lie-si-agentjia-gou/</link><pubDate>Sat, 14 Mar 2026 16:24:52 +0800</pubDate><guid>https://moyutianzun.com/blog/agentxi-lie-si-agentjia-gou/</guid><description>&lt;p style=""&gt;如果要去design一个agent架构，避免不了的就是涉及到对session的管理和agent的架构，一个是表面的，一个是深层的&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="session%E7%AE%A1%E7%90%86"&gt;session管理&lt;/h1&gt;&lt;p style=""&gt;常见可以分成以下几类：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;一类是 &lt;strong&gt;thread/checkpoint 型&lt;/strong&gt;（LangGraph、Dify、Flowise）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;一类是 &lt;strong&gt;runtime snapshot/controller 型&lt;/strong&gt;（AutoGen、OpenHands）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;一类是 &lt;strong&gt;workspace/project 型&lt;/strong&gt;（Open WebUI、AnythingLLM、FastGPT、LobeHub）&lt;/p&gt;</description></item><item><title>agent系列：（三）context and memory</title><link>https://moyutianzun.com/blog/agentxi-lie-san-context/</link><pubDate>Thu, 05 Mar 2026 17:06:39 +0800</pubDate><guid>https://moyutianzun.com/blog/agentxi-lie-san-context/</guid><description>&lt;p style=""&gt;context其实跟infra息息相关，好的infra能支持非常多的idea并发的去实现，而pipeline的高度耦合使得infra变得屎山中的屎山，所以模块化的context infra势在必行。我们想构建一个context playload，一个&lt;strong&gt;有序、分层、可度量&lt;/strong&gt;的 typed blocks 集合，是模型单次推理的&lt;strong&gt;输入态。&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;Context Engineering&lt;/strong&gt;：围绕 payload 的三类能力：&lt;/p&gt;</description></item><item><title>vibe coding系列：（一）我自用的配置（包括claude不封号稳健玩法）</title><link>https://moyutianzun.com/blog/vibe-codingxi-lie-yi-wo-zi-yong-de-pei-zhi/</link><pubDate>Tue, 03 Mar 2026 04:34:13 +0800</pubDate><guid>https://moyutianzun.com/blog/vibe-codingxi-lie-yi-wo-zi-yong-de-pei-zhi/</guid><description>&lt;h1 style="" id="%E4%B8%80%E3%80%81workflow"&gt;一、workflow&lt;/h1&gt;&lt;p style=""&gt;我习惯的方式是opencode + gpt5.2 xhigh来吵方案，然后claude code + opus + sonnet来写代码，他们有以下几个区别：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;gpt通常有包月的套餐，一天能用60~120刀不等，中转站包月通常一个月不会超过80 rmb，是非常实用的大模型套餐&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;gpt 5.2 不带codex对标的是opus4.5，gpt 5.3 codex对标的是sonnet 4.5，所以推荐gpt 5.2不带codex进行方案的讨论&lt;/p&gt;</description></item><item><title>agent系列：（二）agent plan</title><link>https://moyutianzun.com/blog/agentxi-lie-er-agent-planhe-duo-agent/</link><pubDate>Wed, 04 Feb 2026 07:12:09 +0800</pubDate><guid>https://moyutianzun.com/blog/agentxi-lie-er-agent-planhe-duo-agent/</guid><description>&lt;p style=""&gt;agent最基本的就是ReAct范式，其中最关键的就是agent plan，我们主要探讨的是单agent的plan和多agent不同范式如何plan的更好。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%8D%95agent"&gt;单agent&lt;/h1&gt;&lt;p style=""&gt;单agent plan指的是&lt;strong&gt;同一个agent&lt;/strong&gt;在一个 loop 里：规划 → 执行（工具调用）→ 观察 → 反思/重规划 → … → 完成。&lt;/p&gt;</description></item><item><title>skills系列（二）：skills团队和opencode-omo</title><link>https://moyutianzun.com/blog/skillsxi-lie-er-ru-he-gou-jian-ge-ren-de-kai-fa-skillstuan-dui/</link><pubDate>Thu, 22 Jan 2026 03:54:11 +0800</pubDate><guid>https://moyutianzun.com/blog/skillsxi-lie-er-ru-he-gou-jian-ge-ren-de-kai-fa-skillstuan-dui/</guid><description>&lt;p style=""&gt;由于codex至今不支持subagent，我实在等不及了，用codex开发确实没那么灵光，先用claude code组建团队，反正逻辑是一致的。这里附上一条codex不询问命令的指令：&lt;/p&gt;&lt;pre&gt;&lt;code class="language-shell"&gt;# 尽量别问我（读写不问，删除之类的问）
codex -s workspace-write -a never
claude --allowedTools "Read" "Edit"
&lt;h1 id="什么都不问"&gt;什么都不问&lt;/h1&gt;
&lt;p&gt;codex &amp;ndash;yolo
claude &amp;ndash;dangerously-skip-permissions&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>agent系列（一）：实用的agent架构、应用、评估和未来</title><link>https://moyutianzun.com/blog/agentzong-shu-jia-gou-ying-yong-ping-gu-he-wei-lai/</link><pubDate>Sun, 18 Jan 2026 16:41:53 +0800</pubDate><guid>https://moyutianzun.com/blog/agentzong-shu-jia-gou-ying-yong-ping-gu-he-wei-lai/</guid><description>&lt;h1 style="" id="0.-%E6%95%B0%E6%A8%A1"&gt;0. 数模&lt;/h1&gt;&lt;p style=""&gt;最基础的抽象是：环境有状态&lt;span content="s_{t}" math-inline=""&gt;s_{t}&lt;/span&gt;​，你能看到的是观测&lt;span content="o_{t}" math-inline=""&gt;o_{t}&lt;/span&gt;，你做动作&lt;span content="a_{t}" math-inline=""&gt;a_{t}&lt;/span&gt;​，环境给反馈（比如奖励/成功信号）并转移到新状态。用 &lt;strong&gt;(PO)MDP&lt;/strong&gt; 写就是：&lt;/p&gt;</description></item><item><title>paper2proj：DeepCode在模态转换之间的编排</title><link>https://moyutianzun.com/blog/paper2proj-deepcodezai-mo-tai-zhuan-huan-zhi-jian-de-bian-pai/</link><pubDate>Thu, 15 Jan 2026 08:23:05 +0800</pubDate><guid>https://moyutianzun.com/blog/paper2proj-deepcodezai-mo-tai-zhuan-huan-zhi-jian-de-bian-pai/</guid><description>&lt;h1 style="" id="1.-%E6%A6%82%E8%BF%B0"&gt;1. 概述&lt;/h1&gt;&lt;p style=""&gt;DeepCode的工作是将科学论文转化为可执行代码，它提炼出来的问题包括：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;Specification Preservation（规范保留）:&lt;/strong&gt;&amp;nbsp;论文中的信息分散且多模态，难以忠实地将这些片段化的规范映射到实现中。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;Global Consistency under Partial Views（局部视角下的全局一致性）:&lt;/strong&gt;&amp;nbsp;代码库由相互依赖的模块组成，但生成通常是逐文件进行的，在有限上下文下难以维护接口、类型和不变量的全局一致性。&lt;/p&gt;</description></item><item><title>skills系列：（一）coding未来的管中窥豹</title><link>https://moyutianzun.com/blog/claude-code-skills------codingwei-lai-de-guan-zhong-kui-bao/</link><pubDate>Fri, 09 Jan 2026 10:03:10 +0800</pubDate><guid>https://moyutianzun.com/blog/claude-code-skills------codingwei-lai-de-guan-zhong-kui-bao/</guid><description>&lt;h1 style="" id="0.-%E7%8E%B0%E6%9C%89%E7%9A%84%E5%B0%B1%E6%98%AF%E6%9C%80%E5%A5%BD%E7%9A%84"&gt;0. 现有的就是最好的&lt;/h1&gt;&lt;p style=""&gt;由于claude code的Opus和sonnet过于昂贵，其实codex也能用skills，这里推荐用codex的skills，只需要把&lt;code&gt;https://github.com/obra/superpowers/tree/main/skills&lt;/code&gt; 里所有的文件夹搬到&lt;code&gt;.codex&lt;/code&gt;的&lt;code&gt;skills&lt;/code&gt;文件夹里即可。很多人吹嘘skills是什么黑科技，在我看来其实就是两个思路交错产生的结果：&lt;/p&gt;</description></item><item><title>github源码阅读：（二）OpenCode Code agent</title><link>https://moyutianzun.com/blog/githubyuan-ma-yue-du------opencode-xiang-mu-jia-gou-wen-dang/</link><pubDate>Fri, 02 Jan 2026 14:59:30 +0800</pubDate><guid>https://moyutianzun.com/blog/githubyuan-ma-yue-du------opencode-xiang-mu-jia-gou-wen-dang/</guid><description>&lt;h1 style="" id="%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D"&gt;&lt;strong&gt;项目介绍&lt;/strong&gt;&lt;/h1&gt;&lt;h2 style="" id="%E4%BB%80%E4%B9%88%E6%98%AF-opencode"&gt;&lt;strong&gt;什么是 OpenCode&lt;/strong&gt;&lt;/h2&gt;&lt;p style=""&gt;&lt;a href="https://github.com/sst/opencode" target="_self" rel=""&gt;&lt;strong&gt;OpenCode&lt;/strong&gt;&lt;/a&gt; 是一个 100% 开源的code agent，专注于为开发者提供强大、灵活且可扩展的 AI 编程体验。与 Cursor、Copilot 等商业工具不同，OpenCode 不绑定任何特定的 LLM 提供商，支持 Claude、OpenAI、Google、本地模型等多种提供商。&lt;/p&gt;</description></item><item><title>github源码阅读：（一）LlamaIndex 上下文数据规范</title><link>https://moyutianzun.com/blog/githubyuan-ma------llamaindex-shang-xia-wen-shu-ju-gui-fan/</link><pubDate>Wed, 31 Dec 2025 06:09:51 +0800</pubDate><guid>https://moyutianzun.com/blog/githubyuan-ma------llamaindex-shang-xia-wen-shu-ju-gui-fan/</guid><description>&lt;h1 style="" id="%E6%A6%82%E8%BF%B0"&gt;概述&lt;/h1&gt;&lt;p style=""&gt;&lt;a href="https://github.com/run-llama/llama_index" target="_self" rel=""&gt;LlamaIndex&lt;/a&gt;（原名 GPT Index）是一个开源的数据框架，专门用于构建大语言模型（LLM）应用。它解决了 LLM 的一个核心局限性：&lt;strong&gt;LLM 在训练后就无法访问私有数据&lt;/strong&gt;。LlamaIndex 通过&lt;strong&gt;检索增强生成（RAG）&lt;/strong&gt;技术，将用户的私有数据与 LLM 的生成能力无缝连接。与langchain相比，langchian是编排工具流工作流等，&lt;strong&gt;而llamaindex专注于数据格式和数据索引&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>算法 —— 基础篇：DP</title><link>https://moyutianzun.com/blog/suan-fa------ji-chu-pian-dp/</link><pubDate>Mon, 29 Dec 2025 09:36:52 +0800</pubDate><guid>https://moyutianzun.com/blog/suan-fa------ji-chu-pian-dp/</guid><description>&lt;p style=""&gt;题单来自于：&lt;a href="https://ac.nowcoder.com/discuss/828697?type=101&amp;amp;order=0&amp;amp;pos=2&amp;amp;page=1&amp;amp;channel=-1&amp;amp;source_id=1" target="_self" rel=""&gt;【算法进阶题单】动态规划、数据结构、图论、数学、字符串、计算几何、博弈&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E7%8A%B6%E6%80%81%E6%9C%BAdp"&gt;状态机DP&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97"&gt;时间序列&lt;/h2&gt;&lt;figure style="align-items: center; display: flex; flex-direction: column" data-content-type="image"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20260429163652697.png" width="1020px"&gt;&lt;/figure&gt;&lt;p style=""&gt;max和mini的&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/" class="no-underline hover:text-blue-s dark:hover:text-dark-blue-s truncate cursor-text whitespace-normal hover:!text-[inherit]"&gt;&lt;strong&gt;121. 买卖股票的最佳时机&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/" class="no-underline hover:text-blue-s dark:hover:text-dark-blue-s truncate cursor-text whitespace-normal hover:!text-[inherit]"&gt;&lt;strong&gt;122. 买卖股票的最佳时机 II&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;（有神中神dp）&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;PD就要看&lt;a href="https://www.bilibili.com/video/BV1ho4y1W7QK" target="_self" rel=""&gt;&lt;strong&gt;买卖股票的最佳时机【基础算法精讲 21】&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;既然有次数限制，就要在遍历的过程中记录次数&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>基本操作：（一）github is all you need</title><link>https://moyutianzun.com/blog/github-dai-ma-guan-li------sourcetree/</link><pubDate>Mon, 22 Dec 2025 16:56:26 +0800</pubDate><guid>https://moyutianzun.com/blog/github-dai-ma-guan-li------sourcetree/</guid><description>&lt;h1 style="" id="%E7%A0%81%E5%86%9C%E5%9C%A3%E5%9C%B0-github"&gt;码农圣地 github&lt;/h1&gt;&lt;p style=""&gt;github众所周知，是最大的&lt;s&gt;同性交友网站&lt;/s&gt;开源项目公布网站，每个人都可以在这里share自己的项目。&lt;/p&gt;&lt;p style=""&gt;由于open-source往往由一个团队进行开发，所有有很多开发版本，为了管理不同的开发版本之间的异同，远古linux大神linus写了git的原型来管理不同的fork。每个opensource都有一条master主线，然后有不同的分支合并到master分支上。由此也看出，git最主要的功能就是派生（fork）、合并（merge）。&lt;/p&gt;&lt;p style=""&gt;这里我不想重复造轮子，请直接观看我觉得&lt;a href="https://www.bilibili.com/video/BV1iu4y157Cz" target="_self" rel=""&gt;非常棒的讲解&lt;/a&gt;。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="issues%E5%92%8Cpr"&gt;issues和PR&lt;/h1&gt;&lt;p style=""&gt;把 GitHub 想成一个研发团队的工单系统：&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;Issue 像工单 / 任务卡，&lt;/strong&gt;比如：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;这个 bug 要修&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;这个功能要加&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;这个文档要补&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;这个体验要优化&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;strong&gt;PR 像交付单 / 审核单，&lt;/strong&gt;比如：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;我已经写完了&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;请大家 review 一下&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;没问题就把代码合进去&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;常见的过程就是&lt;strong&gt;Issue 提出问题 → 开分支开发 → 提交代码 → 创建 PR → PR 合并后，Issue 关闭&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Codex 和 CC —— terminal vibe coding tutorial</title><link>https://moyutianzun.com/blog/codex-he-cc------terminal-vibe-coding-tutorial/</link><pubDate>Thu, 18 Dec 2025 07:15:59 +0800</pubDate><guid>https://moyutianzun.com/blog/codex-he-cc------terminal-vibe-coding-tutorial/</guid><description>&lt;p style=""&gt;这篇文章记录我熟悉的codex和claude code的常用方式，若有更好的方法欢迎联系我。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%AE%89%E8%A3%85"&gt;安装&lt;/h1&gt;&lt;p style=""&gt;其实无论是在哪个终端安装都可以，无非是权限的问题，在wsl或者git bash中是最好的，但是我习惯在Window的terminal安装了，直接安装即可，问题不大。&lt;/p&gt;</description></item><item><title>大佬博客 —— Orz</title><link>https://moyutianzun.com/blog/da-lao-bo-ke------orz/</link><pubDate>Thu, 11 Dec 2025 07:02:09 +0800</pubDate><guid>https://moyutianzun.com/blog/da-lao-bo-ke------orz/</guid><description>&lt;p style=""&gt;旨在排列出看过或者没看过收集的高质量博客&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E8%8B%8F%E7%A5%9E"&gt;苏神&lt;/h1&gt;&lt;p style=""&gt;地址：&lt;a href="https://kexue.fm/" target="_self" rel=""&gt;科学空间&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E9%AB%98%E4%BB%A3"&gt;高代&lt;/h2&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8453"&gt;&lt;strong&gt;从一个单位向量变换到另一个单位向量的正交矩阵&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/11072"&gt;&lt;strong&gt;“对角+低秩”三角阵的高效求逆方法&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10847"&gt;&lt;strong&gt;矩阵的有效秩（Effective Rank）&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10366"&gt;&lt;strong&gt;低秩近似之路（一）：伪逆&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10407"&gt;&lt;strong&gt;低秩近似之路（二）：SVD&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10427"&gt;&lt;strong&gt;低秩近似之路（三）：CR&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10501"&gt;&lt;strong&gt;低秩近似之路（四）：ID&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10662"&gt;&lt;strong&gt;低秩近似之路（五）：CUR&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10249"&gt;&lt;strong&gt;Monarch矩阵：计算高效的稀疏型矩阵分解&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/11335"&gt;&lt;strong&gt;随机矩阵的谱范数的快速估计&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E6%A6%82%E7%8E%87%E4%B8%8E%E7%BB%9F%E8%AE%A1"&gt;概率与统计&lt;/h2&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9085"&gt;&lt;strong&gt;从重参数的角度看离散概率分布的构建&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/10145"&gt;&lt;strong&gt;通向概率分布之路：盘点Softmax及其替代品&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8578"&gt;&lt;strong&gt;概率视角下的线性模型：逻辑回归有解析解吗？&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8512"&gt;&lt;strong&gt;两个多元正态分布的KL散度、巴氏距离和W距离&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9595"&gt;&lt;strong&gt;如何度量数据的稀疏程度？&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9368"&gt;&lt;strong&gt;从局部到全局：语义相似度的测地线距离&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8679"&gt;&lt;strong&gt;让人惊叹的Johnson-Lindenstrauss引理：理论篇&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8706"&gt;&lt;strong&gt;让人惊叹的Johnson-Lindenstrauss引理：应用篇&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9588"&gt;&lt;strong&gt;从JL引理看熵不变性Attention&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/8823"&gt;&lt;strong&gt;从熵不变性看Attention的Scale操作&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9034"&gt;&lt;strong&gt;熵不变性Softmax的一个快速推导&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9812"&gt;&lt;strong&gt;从梯度最大化看Attention的Scale操作&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9768"&gt;&lt;strong&gt;随机分词浅探：从Viterbi Decoding到Viterbi Sampling&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://kexue.fm/archives/9811"&gt;&lt;strong&gt;随机分词再探：从Viterbi Sampling到完美采样算法&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>context engine note</title><link>https://moyutianzun.com/blog/context-engine-note/</link><pubDate>Tue, 02 Dec 2025 09:28:32 +0800</pubDate><guid>https://moyutianzun.com/blog/context-engine-note/</guid><description>&lt;h1 style="" id="context-manager"&gt;Context Manager&lt;/h1&gt;&lt;h2 style="" id="%E5%A4%9A%E6%A8%A1%E6%80%81%E6%95%B0%E6%8D%AE%E7%9A%84%E5%A4%84%E7%90%86"&gt;多模态数据的处理&lt;/h2&gt;&lt;p style=""&gt;现在大模型系统的对话窗口和处理数据会产生大量的上下文，后续的qa往往会用到其中一部分上下文，所以建立有效的context engine是十分必要的。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h3 style="" id="nlp"&gt;NLP&lt;/h3&gt;&lt;p style=""&gt;&lt;strong&gt;用时问戳标记上下文&lt;/strong&gt; &lt;u&gt;一种常见的设计是在每条信息上附加时间戳，以保留其生成的顺序&lt;/u&gt;。这种方法由于简单且维护成本低，在聊天机器人和用户活动监控中广受欢迎。然而，该方法存在若干局限性。尽管时间戳能够保持时间顺序，但它们&lt;u&gt;不提供语义结构&lt;/u&gt;，使得捕捉长程依赖关系或高效检索相关信息变得困难。随着交互数据的累积，序列呈线性增长，导致在存储和推理方面均面临可扩展性问题&lt;/p&gt;</description></item><item><title> LLM 系统架构 note</title><link>https://moyutianzun.com/blog/llm-jia-gou-note/</link><pubDate>Mon, 01 Dec 2025 16:11:21 +0800</pubDate><guid>https://moyutianzun.com/blog/llm-jia-gou-note/</guid><description>&lt;p style=""&gt;LLM目前最大的困难来自于&lt;u&gt;预训练使用的语料是足够多的且推理能力是足够强的&lt;/u&gt;，但是如何&lt;u&gt;在问答中交互使其自回归输出得到一个很好的结果&lt;/u&gt;是很困难的，这就是agent出现的原因&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E6%A0%B8%E5%BF%83%E7%9F%9B%E7%9B%BE%E7%82%B9"&gt;核心矛盾点&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;&lt;p style=""&gt;训练的时候往往在一个静态的环境，但是推理环境往往是动态的，&lt;u&gt;动态和静态&lt;/u&gt;会让系统产生意料之外的输出&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;在CoT中，一旦传入一个&lt;u&gt;错误事实，就会层层放大&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;Scaling Law，但&lt;u&gt;模型上下文还是不够长&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;模型参数是固定的，&lt;u&gt;无法进步&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;大模型的&lt;u&gt;开销太贵&lt;/u&gt;了&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E6%8E%A8%E7%90%86%E7%9A%84%E7%BB%93%E6%9E%84"&gt;推理的结构&lt;/h1&gt;&lt;p style=""&gt;从静态链演变到动态链：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;AdaPlanner&lt;/strong&gt;：允许大模型在计划外执行的时候进行停止，然后重新规划&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;ADaPT&lt;/strong&gt;：connect让executor LLM直接执行任务，若不能执行就调用planner LLM进行任务分解再进行executor LLM&lt;/p&gt;</description></item><item><title>deep research design —— note</title><link>https://moyutianzun.com/blog/deep-research-design------note/</link><pubDate>Mon, 01 Dec 2025 16:09:53 +0800</pubDate><guid>https://moyutianzun.com/blog/deep-research-design------note/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%8F%82%E8%80%83link%EF%BC%9A"&gt;参考link：&lt;/h1&gt;&lt;p style=""&gt;&lt;a href="https://github.com/mangopy/Deep-Research-Survey/tree/main" target="_self" rel=""&gt;A Systematic Survey of Deep Research —— github&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://github.com/scienceaix/deepresearch" target="_self" rel=""&gt;Awesome Deep Research Projects&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>强化学习：从模态对齐到策略优化 —— 2、从GSPO、FSPO、GEPO</title><link>https://moyutianzun.com/blog/qiang-hua-xue-xi-cong-mo-tai-dui-qi-dao-ce-lue-you-hua------2-cong-gspodao-gepo/</link><pubDate>Mon, 24 Nov 2025 09:54:25 +0800</pubDate><guid>https://moyutianzun.com/blog/qiang-hua-xue-xi-cong-mo-tai-dui-qi-dao-ce-lue-you-hua------2-cong-gspodao-gepo/</guid><description>&lt;h1 style="" id="%E4%B8%8A%E4%B8%8B%E6%96%87%E5%BD%92%E7%BA%B3"&gt;上下文归纳&lt;/h1&gt;&lt;p style=""&gt;正如上文所说，qwen团队发现了其存在的缺陷是优势函数&lt;span content="\hat{A}_i" math-inline=""&gt;\hat{A}_i&lt;/span&gt;stoken-level，但是奖励函数是序列级别的，这会导致训练大型、复杂的模型（如混合专家模型MoE）和处理长序列任务时尤为突出，常常导致训练过程不稳定甚至模型崩溃。接下来几篇文章分别从不同的角度去对整体流程进行优化，首先我们先确立一下流程：&lt;/p&gt;</description></item><item><title>强化学习：从模态对齐到策略优化 —— 1、从PPO 到 GPRO</title><link>https://moyutianzun.com/blog/llmce-lue-you-hua-note/</link><pubDate>Thu, 20 Nov 2025 15:35:45 +0800</pubDate><guid>https://moyutianzun.com/blog/llmce-lue-you-hua-note/</guid><description>&lt;h1 style="" id="%E5%AF%B9%E9%BD%90%E5%88%B0rl"&gt;对齐到RL&lt;/h1&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;u&gt;一个未经对齐的 LLM 可能会产生无益、有害甚至有毒的内容，或者无法理解和遵循复杂、微妙的人类指令。&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;u&gt;这一根本性问题被称为对齐（Alignment），即确保 AI 系统的目标和行为与人类的价值观和意图保持一致。&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="sft%EF%BC%88%E9%9D%99%E6%80%81%EF%BC%89"&gt;SFT（静态）&lt;/h2&gt;&lt;p style=""&gt;解决对齐问题的初步尝试是监督微调（Supervised Fine-Tuning, SFT）。&lt;strong&gt;&lt;u&gt;SFT 使用高质量的人工标注数据集，其中包含期望的输入-输出对（例如，问题和理想答案），通过模仿学习的方式来调整模型行为。&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Antigravity卡在谷歌登录环节解决方案</title><link>https://moyutianzun.com/blog/antigravityqia-zai-gu-ge-deng-lu-huan-jie/</link><pubDate>Thu, 20 Nov 2025 01:33:08 +0800</pubDate><guid>https://moyutianzun.com/blog/antigravityqia-zai-gu-ge-deng-lu-huan-jie/</guid><description>&lt;p style=""&gt;首先要保证自己的IP是足够纯净的IP，开了&lt;code&gt;v2ray/clash&lt;/code&gt; 之后，点开&lt;a href="https://iplark.com/" target="_self" rel=""&gt;此网站&lt;/a&gt;，就能看到IP是否是原生&lt;code&gt;IP&lt;/code&gt;且评分如何。&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20251120093504766.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;由于&lt;code&gt;gemini&lt;/code&gt;和&lt;code&gt;claude&lt;/code&gt;对&lt;code&gt;IP&lt;/code&gt;的要求高，建议使用原生&lt;code&gt;IP&lt;/code&gt;和高评分的节点，且长期只使用这个节点，不然可能会触发斩杀，&lt;a href="https://xn--mes358aby2apfg.com/register?code=rLYZRl11" target="_self" rel=""&gt;赔钱&lt;/a&gt;有原生IP，但是知道的人太多了，用的人也太多了，上面这个IP是赔钱的。&lt;a href="https://www.v2ny.me?path=register&amp;amp;code=Ae2Z9jRW" target="_self" rel=""&gt;奈云&lt;/a&gt;不知道为啥没有，但是我日常用着很舒服，网速很快。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;卡在谷歌登录究其原因应该是&lt;code&gt;Antigravity&lt;/code&gt;的验证信息不会通过&lt;code&gt;v2ray/clash&lt;/code&gt;传入传出，所以只需要把&lt;code&gt;tun&lt;/code&gt;模式开了，然后重新打开软件，再登录即可。&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20251120093045359.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;需要注意的是个别软件开&lt;code&gt;tun&lt;/code&gt;可能要管理员权限，自动重启之后&lt;code&gt;tun&lt;/code&gt;其实是没开的，需要再点一次。&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20251120093200804.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-align: left"&gt;然后就能愉快的使用了。如果没有&lt;code&gt;gemini pro&lt;/code&gt;，可以去&lt;code&gt;taobao&lt;/code&gt;自行购买学生账号，一年估计&lt;code&gt;50-80&lt;/code&gt;不等，挺便宜的。&lt;/p&gt;</description></item><item><title>生理信号大模型</title><link>https://moyutianzun.com/blog/sheng-li-xin-hao-da-mo-xing/</link><pubDate>Wed, 19 Nov 2025 07:48:13 +0800</pubDate><guid>https://moyutianzun.com/blog/sheng-li-xin-hao-da-mo-xing/</guid><description>&lt;p style=""&gt;2023年至2025年的研究格局显示，通过将异构生理信号（EEG、fMRI、EMG、EOG、Gaze）与文本、视觉等高层语义模态进行深度融合，领域正在向大脑模型（Large Brain Models, LBMs）和多模态大模型（Large Multimodal Models, LMMs）迁移。&lt;/p&gt;&lt;p style=""&gt;这种范式转移的核心挑战在于&lt;strong&gt;&lt;u&gt;对齐问题（Alignment Problem）：如何在数学和语义层面统一具有不同时空分辨率、不同拓扑结构以及不同噪声特性的多模态信号。&lt;/u&gt;&lt;/strong&gt;例如，E&lt;u&gt;EG具有毫秒级的时间分辨率但空间分辨率极低，而功能性磁共振成像（fMRI）则相反&lt;/u&gt;；视觉和文本数据则处于高度抽象的语义空间。要实现真正的多模态智能，必须解决子空间学习中的流形差异、连续信号的离散化（Tokenization）以及在大模型架构下的深度融合机制。&lt;/p&gt;</description></item><item><title>算法 —— 基础篇：树图、高精度、二分</title><link>https://moyutianzun.com/blog/suan-fa------ji-chu-pian-di-gui-di-tui-shu-tu-gao-jing-du-er-fen-he-dp/</link><pubDate>Sat, 08 Nov 2025 17:12:49 +0800</pubDate><guid>https://moyutianzun.com/blog/suan-fa------ji-chu-pian-di-gui-di-tui-shu-tu-gao-jing-du-er-fen-he-dp/</guid><description>&lt;h1 style="" id="%E9%80%92%E5%BD%92%E9%80%92%E6%8E%A8"&gt;递归递推&lt;/h1&gt;&lt;p style=""&gt;&lt;strong&gt;时间复杂度&lt;/strong&gt;：看for的n，取最大&lt;/p&gt;&lt;p style=""&gt;&lt;strong&gt;空间复杂度&lt;/strong&gt;：看实际运行的时候用到了多少内存。&lt;/p&gt;&lt;blockquote&gt;&lt;p style=""&gt;在递归算法中，每次递推都需要一个栈空间来保存调用记彔，因此在计算空间复杂度时需要计算递归栈的辅助空间。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;对于递推和递归来说，其实是完全不同的两个思路&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20251108171102541.png" width="989px" height="528px" style="display: inline-block"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;u&gt;递归是“一个实体调用自身”&lt;/u&gt;&lt;/strong&gt; 。这具体表现为一个函数直接或间接调用自身，以解决一个给定问题的更小实例 。递归的本质在于&lt;strong&gt;&lt;u&gt;“自我参照”&lt;/u&gt;&lt;/strong&gt;。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;u&gt;递推&lt;/u&gt;&lt;/strong&gt;在此上下文中被理解为&lt;strong&gt;&lt;u&gt;迭代计算过程&lt;/u&gt;&lt;/strong&gt;。迭代的定义是“重复执行一组指令” ，通常通过循环结构（如 for, while 或 do-while）来实现 。递推的本质在于&lt;strong&gt;&lt;u&gt;“重复” &lt;/u&gt;&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>迈向具有深度推理的代理RAG：LLM RAG推理系统综述</title><link>https://moyutianzun.com/blog/rag-note/</link><pubDate>Thu, 06 Nov 2025 08:22:20 +0800</pubDate><guid>https://moyutianzun.com/blog/rag-note/</guid><description>&lt;p style=""&gt;rag 的三个过程：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;检索阶段&lt;/strong&gt;：从外部知识库中提取任务相关的内容&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;整合阶段&lt;/strong&gt;：对检索内容进行去重、冲突解决和重新排序&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;生成阶段&lt;/strong&gt;：基于精选上下文进行推理以得出最终答案。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="paper-note"&gt;Paper note&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="towards-agentic-rag-with-deep-reasoning%3A-a-survey-of-rag-reasoning-systems-in-llms"&gt;Towards Agentic RAG with Deep Reasoning: A Survey of RAG-Reasoning Systems in LLMs&lt;/h2&gt;&lt;p style=""&gt;综述围绕两个过程来讲（&lt;strong&gt;RAG ⇔ Reasoning&lt;/strong&gt;）：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;Reasoning-Enhanced RAG&lt;/strong&gt;：映射高级推理如何优化RAG的每个阶段&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;RAG-Enhanced Reasoning&lt;/strong&gt;：展示不同类型检索知识如何为复杂推理提供缺失前提并扩展上下文&lt;/p&gt;</description></item><item><title>langchain note</title><link>https://moyutianzun.com/blog/agent-note/</link><pubDate>Fri, 31 Oct 2025 10:00:19 +0800</pubDate><guid>https://moyutianzun.com/blog/agent-note/</guid><description>&lt;h1 style="" id="agent%E8%8C%83%E5%BC%8F"&gt;agent范式&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;为了更好地组织智能体的“思考”与“行动”过程，业界涌现出了多种经典的架构范式。在本章中，我们将聚焦于其中最具代表性的三种，并一步步从零实现它们：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;ReAct (Reasoning and Acting):&lt;/strong&gt; 一种将“思考”和“行动”紧密结合的范式，让智能体边想边做，动态调整。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;Plan-and-Solve:&lt;/strong&gt; 一种“三思而后行”的范式，智能体首先生成一个完整的行动计划，然后严格执行。&lt;/p&gt;</description></item><item><title>未归档偶然发现的好东西</title><link>https://moyutianzun.com/blog/wei-gui-dang-ou-ran-fa-xian-de-hao-dong-xi/</link><pubDate>Tue, 28 Oct 2025 01:42:56 +0800</pubDate><guid>https://moyutianzun.com/blog/wei-gui-dang-ou-ran-fa-xian-de-hao-dong-xi/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E7%BF%BB%E8%AF%91"&gt;翻译&lt;/h1&gt;&lt;p style=""&gt;&lt;a href="https://pot-app.com/" target="_self" rel=""&gt;pot翻译&lt;/a&gt; + &lt;a href="https://fanyi-api.baidu.com/" target="_self" rel=""&gt;百度翻译api&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://hjfy.top/" target="_self" rel=""&gt;幻觉翻译&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="dataset"&gt;dataset&lt;/h1&gt;&lt;p style=""&gt;&lt;a href="https://tianchi.aliyun.com/dataset/210595" target="_self" rel=""&gt;阿里开放式多模态AI安全评测基准 OpenMMSec&lt;/a&gt;：百万开源多模态数据集&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>Triton is all you need —— Matrix Multiplication &amp; Matrix Transpose &amp; Matrix Copy</title><link>https://moyutianzun.com/blog/triton-is-all-you-need------matrix-multiplication-matrix-transpose-matrix-copy/</link><pubDate>Fri, 24 Oct 2025 09:53:04 +0800</pubDate><guid>https://moyutianzun.com/blog/triton-is-all-you-need------matrix-multiplication-matrix-transpose-matrix-copy/</guid><description>&lt;p style=""&gt;在矩阵的运算中，由于现在LLM Scaling Law，现在模型的矩阵相当的巨大。而计算单元的访存和算力有限，故此通常采用分治的思想进行并行计算，即采用分块的方式进行分块运算，这称之为tile，这里涉及到大量的程序编写的架构和编译器优化，后续我们会展开来这个说。&lt;/p&gt;</description></item><item><title>deepseek OCR —— 源码解析</title><link>https://moyutianzun.com/blog/deepseek-ocr------yuan-ma-jie-xi/</link><pubDate>Tue, 21 Oct 2025 16:07:59 +0800</pubDate><guid>https://moyutianzun.com/blog/deepseek-ocr------yuan-ma-jie-xi/</guid><description>&lt;p style=""&gt;先说说我的看法，现在各种评价满天飞，我看了看README，其实很好说理解，首先肯定是OCR。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;在README中提到两个文件，一个是对image进行OCR，一个是对PDF进行OCR。其最主要的功能就是将其文字和图片进行提取，然后改变为可执行对象。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;其次就是对image进行理解，将其转为文字的描述，详细的可以看下图：&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20251021230644980.jpg" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;我说一下我的思考，受限于我的认知，仅供参考，如果你有更好的想法，欢迎联系我，很乐意跟您进一步讨论。首先是OCR，这个功能的思考肯定源自于多模态大模型的实际业务，对PDF和image的tokenlization是多模态的基础，特别是tob中台的各种文档的token化，这是对agent inference体系中的context engine的PDF给出了一个解法，只要是实际思考过中台文档类的业务，这个是必然要做的工作。&lt;/p&gt;</description></item><item><title>CUDA profile 大全 —— nsight computer &amp; nsys &amp; pytorch</title><link>https://moyutianzun.com/blog/cuda-profile/</link><pubDate>Mon, 20 Oct 2025 15:18:01 +0800</pubDate><guid>https://moyutianzun.com/blog/cuda-profile/</guid><description>&lt;h1 style="" id="cuda-api"&gt;Cuda API&lt;/h1&gt;&lt;p style=""&gt;创建对象：&lt;/p&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;cuda_runtime.h&amp;gt;
#include &amp;lt;cuda.h&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
&lt;p&gt;// 获取当前机器的GPU数量
cudaError_t error_id = cudaGetDeviceCount(&amp;amp;deviceCount);&lt;/p&gt;
&lt;p&gt;for (int dev = 0; dev &amp;lt; deviceCount; ++dev) {
cudaSetDevice(dev);
// 初始化当前device的属性获取对象
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&amp;amp;deviceProp, dev);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;printf(&amp;quot;\nDevice %d: \&amp;quot;%s\&amp;quot;\n&amp;quot;, dev, deviceProp.name);&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;&amp;quot;&amp;gt;拿到数据后可以查看对应feature&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;printf(&amp;quot; Total amount of shared memory per block: %zu bytes\n&amp;quot;, deviceProp.sharedMemPerBlock);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;printf(&amp;quot; Total shared memory per multiprocessor: %zu bytes\n&amp;quot;, deviceProp.sharedMemPerMultiprocessor);
printf(&amp;quot; Total number of registers available per block: %d\n&amp;quot;, deviceProp.regsPerBlock);
printf(&amp;quot; Warp size: %d\n&amp;quot;, deviceProp.warpSize);
printf(&amp;quot; Maximum number of threads per multiprocessor: %d\n&amp;quot;, deviceProp.maxThreadsPerMultiProcessor);
printf(&amp;quot; Maximum number of threads per block: %d\n&amp;quot;, deviceProp.maxThreadsPerBlock);
printf(&amp;quot; Max dimension size of a block size (x,y,z): (%d, %d, %d)\n&amp;quot;, deviceProp.maxThreadsDim[0], deviceProp.maxThreadsDim[1],
deviceProp.maxThreadsDim[2]);
printf(&amp;quot; Max dimension size of a grid size (x,y,z): (%d, %d, %d)\n&amp;quot;, deviceProp.maxGridSize[0], deviceProp.maxGridSize[1],
deviceProp.maxGridSize[2]);&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>Triton is all you need —— Vector Addition &amp; Reverse Array</title><link>https://moyutianzun.com/blog/triton-is-all-you-need------triton/</link><pubDate>Fri, 17 Oct 2025 08:12:03 +0800</pubDate><guid>https://moyutianzun.com/blog/triton-is-all-you-need------triton/</guid><description>&lt;h1 style="" id="vector-addition"&gt;Vector addition&lt;/h1&gt;&lt;p style=""&gt;&lt;strong&gt;&lt;u&gt;原题&lt;/u&gt;&lt;/strong&gt;：编写一个在 GPU 上执行 32 位浮点数&lt;u&gt;向量逐元素相加&lt;/u&gt;的程序。该程序应接受两个等长输入向量，并产生一个包含它们和的输出向量。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;exp1：&lt;/p&gt;&lt;pre&gt;&lt;code class="language-auto"&gt;Input: A = [1.0, 2.0, 3.0, 4.0]
B = [5.0, 6.0, 7.0, 8.0]
Output: C = [6.0, 8.0, 10.0, 12.0]&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>LLM —— attention、MHA、MQA、GQA、MLA</title><link>https://moyutianzun.com/blog/llm------attention/</link><pubDate>Mon, 13 Oct 2025 03:28:44 +0800</pubDate><guid>https://moyutianzun.com/blog/llm------attention/</guid><description>&lt;p style=""&gt;文章启蒙来自苏神的&lt;a href="https://zhuanlan.zhihu.com/p/700588653" target="_self" rel=""&gt;缓存与效果的极限拉扯：从MHA、MQA、GQA到MLA&lt;/a&gt;，拜谢Orz。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="attention"&gt;attention&lt;/h1&gt;&lt;p style=""&gt;首先attention的公式我们都知道如下：&lt;/p&gt;&lt;div content="\mathrm{Attention}(K,Q,V)=\mathrm{softmax}(\frac{QK^{\top}}{\sqrt{d_{k}}})V" math-display=""&gt;\mathrm{Attention}(K,Q,V)=\mathrm{softmax}(\frac{QK^{\top}}{\sqrt{d_{k}}})V&lt;/div&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;我们尝试用数学来表述清楚这个问题，首先假设输入为一条token的&lt;span content="x" math-inline=""&gt;x&lt;/span&gt;，输出为一条token的&lt;span content="o" math-inline=""&gt;o&lt;/span&gt;，结合上面的公式得到QKV矩阵：&lt;/p&gt;&lt;div content="q=x W_q\in\mathbb{R}^{d_k},W_q\in\mathbb{R}^{d\times d_k}" math-display=""&gt;q=x W_q\in\mathbb{R}^{d_k},W_q\in\mathbb{R}^{d\times d_k}&lt;/div&gt;&lt;div content="k=x W_{k}\in\mathbb R^{d_k},W_{k}\in\mathbb R^{d\times d_k}" math-display=""&gt;k=x W_{k}\in\mathbb R^{d_k},W_{k}\in\mathbb R^{d\times d_k}&lt;/div&gt;&lt;div content="v=xW_{v}\in\mathbb{R}^{d_k},W_{v}\in\mathbb{R}^{d\times d_v}" math-display=""&gt;v=xW_{v}\in\mathbb{R}^{d_k},W_{v}\in\mathbb{R}^{d\times d_v}&lt;/div&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>算法 —— 基础篇：数组、双指针、滑动窗口、区间</title><link>https://moyutianzun.com/blog/suan-fa------shu-zu-shuang-zhi-zhen-hua-dong-chuang-kou/</link><pubDate>Fri, 03 Oct 2025 08:49:53 +0800</pubDate><guid>https://moyutianzun.com/blog/suan-fa------shu-zu-shuang-zhi-zhen-hua-dong-chuang-kou/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%8F%8C%E5%90%91%E5%AD%90%E5%BA%8F%E5%88%97%E4%B9%9F%E6%98%AF%E5%8F%8C%E6%8C%87%E9%92%88"&gt;双向子序列也是双指针&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://leetcode.cn/problems/trapping-rain-water/description/" target="_self" rel=""&gt;接雨水&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://leetcode.cn/problems/container-with-most-water/description" target="_self" rel=""&gt;接水最多的容器&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E5%8F%8C%E6%8C%87%E9%92%88%E7%9A%84%E6%90%9C%E7%B4%A2%E8%8C%83%E5%9B%B4"&gt;双指针的搜索范围&lt;/h2&gt;&lt;p style=""&gt;&lt;a href="https://leetcode.cn/problems/3sum/description" target="_self" rel=""&gt;三数之和&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>PD分离 —— Prefix Cache和Chunk Prefills</title><link>https://moyutianzun.com/blog/pdfen-chi------prefix-cachehe-chunk-prefills/</link><pubDate>Mon, 29 Sep 2025 09:53:22 +0800</pubDate><guid>https://moyutianzun.com/blog/pdfen-chi------prefix-cachehe-chunk-prefills/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;目前推理框架基本上都需要用到多轮对话的场景，自然产生了&lt;code&gt;kv cache&lt;/code&gt;的存储和索引算法。如果能把&lt;code&gt;prompt&lt;/code&gt;和后续产生的&lt;code&gt;KV Cache&lt;/code&gt;保存下来，会极大地降低首&lt;code&gt;Token&lt;/code&gt;的耗时。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;目前使用最多的就是两个技术方案，一个是&lt;code&gt;SGLang&lt;/code&gt;推出的&lt;code&gt;RadixAttention&lt;/code&gt;&lt;span style="font-size: mediumpx; color: rgb(25, 27, 31)"&gt;的&lt;/span&gt;&lt;code&gt;Prefix Cache&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;，另一个是&lt;/span&gt;&lt;code&gt;vllm&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;原生的&lt;/span&gt;&lt;code&gt;Chunk Prefills&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;。当然&lt;/span&gt;&lt;code&gt;vllm&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;也兼容了&lt;/span&gt;&lt;code&gt;Prefix Cache&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;，这两个技术只能用一个，vllm默认是Chunk Prefills，可以通过加入参数&lt;/span&gt;&lt;code&gt;--enable-prefix-caching&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;来开启，这里不谈&lt;/span&gt;&lt;code&gt;TensorRT-LLM&lt;/code&gt;&lt;span fontsize="" color="rgb(25, 27, 31)" style="color: rgb(25, 27, 31)"&gt;是因为其不完全开源。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>vllm v1 源码解析 —— 单机八卡推理</title><link>https://moyutianzun.com/blog/vllm-v1-yuan-ma-jie-xi------dan-ji-ba-qia/</link><pubDate>Fri, 26 Sep 2025 09:10:35 +0800</pubDate><guid>https://moyutianzun.com/blog/vllm-v1-yuan-ma-jie-xi------dan-ji-ba-qia/</guid><description>&lt;p style=""&gt;单机八卡，我们按照PP + TP的方式来进行方案说明，使用的是vllm框架，主要命令和函数如下：&lt;/p&gt;&lt;pre&gt;&lt;code&gt;python single_node_multi_gpu_demo.py --mode pipeline_parallel --tensor-parallel 4 --pipeline-parallel 2 --model facebook/opt-13b
&lt;p&gt;def pipeline_parallel_inference(self, model_name: str, tensor_parallel_size: int, pipeline_parallel_size: int):
&amp;ldquo;&amp;ldquo;&amp;ldquo;流水线并行推理 - 将模型层分布到多个GPU上&amp;rdquo;&amp;rdquo;&amp;rdquo;
print(f&amp;quot;🚀 启动流水线并行推理 - 模型: {model_name}&amp;quot;)
print(f&amp;quot; 张量并行: {tensor_parallel_size}, 流水线并行: {pipeline_parallel_size}&amp;quot;)&lt;/p&gt;</description></item><item><title>vllm v1 源码解析 —— Core</title><link>https://moyutianzun.com/blog/vllm-v1-yuan-ma-jie-xi------core/</link><pubDate>Tue, 23 Sep 2025 03:56:10 +0800</pubDate><guid>https://moyutianzun.com/blog/vllm-v1-yuan-ma-jie-xi------core/</guid><description>&lt;p style=""&gt;一个client建立之后就会建立一个core engine，这些配置会通过QMZ IPC发送给core engine。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="core-engine-architecture"&gt;Core engine Architecture&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="worker-and-executor"&gt;Worker and Executor&lt;/h2&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="multiprocexecutor"&gt;MultiprocExecutor&lt;/h2&gt;&lt;p style=""&gt;在MultiprocExecutor类中，可以清晰的找到三部曲：&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;1、创建RPC消息队列&lt;/p&gt;&lt;pre&gt;&lt;code class="language-python"&gt;# Initialize worker and set up message queues for SchedulerOutputs
# and ModelRunnerOutputs
max_chunk_bytes = envs.VLLM_MQ_MAX_CHUNK_BYTES_MB * 1024 * 1024
self.rpc_broadcast_mq = MessageQueue(self.world_size,
self.world_size,
max_chunk_bytes=max_chunk_bytes)
scheduler_output_handle = self.rpc_broadcast_mq.export_handle()&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>NCCL —— 标杆</title><link>https://moyutianzun.com/blog/nccl------biao-gan/</link><pubDate>Mon, 22 Sep 2025 09:58:52 +0800</pubDate><guid>https://moyutianzun.com/blog/nccl------biao-gan/</guid><description>&lt;p style=""&gt;首先，需要说一些特性在前面：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;NCCL是&lt;span style="font-size: 16px; color: rgb(0, 0, 0)"&gt;NVIDIA 集体通信库（&lt;/span&gt;NVIDIA Collective Communication Library），专注于 GPU 间交互，利用 NVLink、PCIe 和 InfiniBand (IB) 等互连技术实现高带宽和低延迟。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;NCCL并不是完全开源&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>算子进阶 —— 通信算子</title><link>https://moyutianzun.com/blog/suan-zi-jin-jie------tong-xin-suan-zi/</link><pubDate>Mon, 22 Sep 2025 09:00:54 +0800</pubDate><guid>https://moyutianzun.com/blog/suan-zi-jin-jie------tong-xin-suan-zi/</guid><description>&lt;p style=""&gt;随着LLM业务的不断发展，我们发现单机单卡无法承载一个模型的训练和推理，故此出现了单机多卡和多机多卡的训练推理算子，这时候每个机和卡之间都需要通信，所以通信算子十分的重要。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%88%86%E5%B8%83%E5%BC%8F%E5%B9%B6%E8%A1%8C"&gt;分布式并行&lt;/h1&gt;&lt;p style="text-indent: 2em"&gt;下面是传统的四种并行处理架构，常用于大模型训练。&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250921122900313.png" width="991px" height="415px" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="dp"&gt;DP&lt;/h2&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250921142712073.png" width="70%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-indent: 2em"&gt;每张卡拷贝相同的模型结构，仅对数据做切分。每张卡计算完的梯度也是针对各自数据的，需要做一次allreduce，然后使用优化器更新模型，进入下一次迭代。&lt;/p&gt;</description></item><item><title>算子进阶 —— 通算融合</title><link>https://moyutianzun.com/blog/suan-zi-jin-jie------tong-suan-rong-he/</link><pubDate>Fri, 19 Sep 2025 08:16:51 +0800</pubDate><guid>https://moyutianzun.com/blog/suan-zi-jin-jie------tong-suan-rong-he/</guid><description>&lt;p style=""&gt;（施工ing）&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E6%A6%82%E8%BF%B0"&gt;概述&lt;/h1&gt;&lt;p style=""&gt;我们知道，算子的作用是计算，那在整个体系中，我们的核心目标是拉满GPU的利用率。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;在现代分布式体系中，多GPU之间同时存在着计算、内存访问和通信这三种基本活动，为了服务于我们的核心目标，我们需要尽可能的将通信时间和访存时间放在计算时间内，使得GPU不存在运算时间的泡泡。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;大模型分布式系统执行的核心组件是并行的GPU。提升GPU运算的最佳方法，是通过计算与通信的重叠来实现。这种重叠可以通过两种方式达成：算子分解或通信内核融合。虽然算子分解实现起来简单，但往往导致性能欠佳。而将通信内核与计算内核融合，则需要更多的思考和计算。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;故此最原始的想法就是用计算时间掩盖通信时间，通过大批量的数据直接发送到GPU，减少kernel开启和关闭、通信的开销。&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250917234340532.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="triton-distributed"&gt;Triton-distributed&lt;/h1&gt;&lt;p style="text-indent: 2em"&gt;Triton-distributed是字节seed团队开发的Triton 编译器的扩展。对于 LLM 来说，分布式优化的关键要求是计算通信重叠。以前，在小规模分布式训练/推理中，通信开销并不是一个关键的成本问题。然而，随着集群数量呈指数级增长，计算与通信重叠变得至关重要。&lt;/p&gt;</description></item><item><title>AMD 2025 分布式推理算子优化挑战赛 —— lect 9/16 note</title><link>https://moyutianzun.com/blog/amd-2025-fen-bu-shi-tui-li-suan-zi-you-hua-tiao-zhan-sai------lect-9-16-note/</link><pubDate>Fri, 19 Sep 2025 02:57:25 +0800</pubDate><guid>https://moyutianzun.com/blog/amd-2025-fen-bu-shi-tui-li-suan-zi-you-hua-tiao-zhan-sai------lect-9-16-note/</guid><description>&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="rocm-%E5%85%A5%E9%97%A8"&gt;ROCm 入门&lt;/h1&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250916190914403.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-indent: 2em"&gt;首先就是amd官方的命名跟nv的区别，其实区别并不大，只是AMD在cuda的基础上做了更多的优化，比如说一个wavefront有64个work-item，相当于一个warp有64个threads。其次就是有两种register，在&lt;/p&gt;</description></item><item><title>Triton is all you need —— Triton 源码、编译和调试</title><link>https://moyutianzun.com/blog/triton-is-all-you-need------triton-yuan-ma-bian-yi-he-diao-shi/</link><pubDate>Thu, 18 Sep 2025 07:35:21 +0800</pubDate><guid>https://moyutianzun.com/blog/triton-is-all-you-need------triton-yuan-ma-bian-yi-he-diao-shi/</guid><description>&lt;p style="text-align: left"&gt;（施工ing）&lt;/p&gt;&lt;p style="text-align: left"&gt;&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;a href="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250918010843097.png"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250918010843097.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: left"&gt;&lt;/p&gt;&lt;p style="text-align: left"&gt;&lt;img src="https://moyutianzun.com/upload/image.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-align: left"&gt;include日录主要存放了编译器核心功能的.h头文件，提供约定和规范&lt;/p&gt;&lt;p style="text-align: left"&gt;lib是.c和.cpp，主要是功能的实现，和include一一对应&lt;/p&gt;</description></item><item><title>AI编译器 —— 笔记</title><link>https://moyutianzun.com/blog/aibian-yi-qi------bi-ji/</link><pubDate>Thu, 11 Sep 2025 09:00:18 +0800</pubDate><guid>https://moyutianzun.com/blog/aibian-yi-qi------bi-ji/</guid><description>&lt;h1 style="" id="challenge"&gt;challenge&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;新模型&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;新module出现，需要对应算子进行计算，还需要结合硬件进行特性优化和测试，尽量充分发挥硬件性能&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;硬件厂商还会发布新技术的加速计算库&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;专用加速芯片爆发导致性能可移植性成为一种刚需&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;不同厂商的ISA不尽相同&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;一般缺乏如GCC、LLVM等编译工具链，使得针对CPU和GPU已有的优化算子库和针对语言的优化Pass很难短期移植到NPU上&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E6%9E%B6%E6%9E%84"&gt;架构&lt;/h1&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250911160213415.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="%E5%92%8C%E4%BC%A0%E7%BB%9F%E7%BC%96%E8%AF%91%E5%99%A8%E5%AF%B9%E6%AF%94"&gt;和传统编译器对比&lt;/h2&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250911150445999.png" width="50%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;在编译优化层通过统一IR执行不同的Pass进行优化，从而提高执行性能&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;软件结构栈：分成前端、优化、后端三段式，IR解耦前端和后端使得模块化表示&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;AI编译器对Graph IR进行优化后，将优化后的IR转换成传统编译器IR，最后依赖传统编译器进行机器码生成&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250911152322879.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;strong&gt;左边是旧编译器架构，右边是ai编译器架构&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>AMD 2025 分布式推理算子优化挑战赛——笔记</title><link>https://moyutianzun.com/blog/amd-2025-fen-bu-shi-tui-li-suan-zi-you-hua-tiao-zhan-sai----bi-ji/</link><pubDate>Tue, 09 Sep 2025 05:48:15 +0800</pubDate><guid>https://moyutianzun.com/blog/amd-2025-fen-bu-shi-tui-li-suan-zi-you-hua-tiao-zhan-sai----bi-ji/</guid><description>&lt;p style=""&gt;比赛提供的link：&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://modelscope.cn/competition/117/%E6%AF%94%E8%B5%9B%E7%AE%80%E4%BB%8B" target="_self" rel=""&gt;魔搭社区比赛首页&lt;/a&gt; &lt;a href="https://www.datamonsters.com/amd-developer-challenge-2025" target="_self" rel=""&gt;AMD比赛首页&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://www.gpumode.com/v2/leaderboard/563?tab=rankings" target="_self" rel=""&gt;amd-all2all kernel Leaderboard&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://github.com/gpu-mode/reference-kernels/tree/main/problems/amd_distributed" target="_self" rel=""&gt;reference-kernels&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://discord.com/channels/" target="_self" rel=""&gt;discord link&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://github.com/gpu-mode/popcorn-cli?tab=readme-ov-file" target="_self" rel=""&gt;Popcorn CLI&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;lect：&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://www.youtube.com/watch?v=dNWv3qYU60E" target="_self" rel=""&gt;ytb Bonus Lecture: AMD Developer Challenge&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://stormy-sailor-96a.notion.site/Mixture-of-Experts-AMD-Problem-1d7221cc2ffa80f9b171c332aed16093" target="_self" rel=""&gt;Mixture of Experts AMD Problem&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://moyutianzun.cn/archives/amd-2025-fen-bu-shi-tui-li-suan-zi-you-hua-tiao-zhan-sai------lect-9-16-note" target="_self" rel=""&gt;9/16 lect note&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>triton is all you need 之 GEMM</title><link>https://moyutianzun.com/blog/triton-is-all-you-need/</link><pubDate>Sun, 07 Sep 2025 08:10:38 +0800</pubDate><guid>https://moyutianzun.com/blog/triton-is-all-you-need/</guid><description>&lt;blockquote&gt;&lt;p style=""&gt;代码参考了傅哥，请b站关注我是傅傅猪喵，谢谢喵！&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="text-indent: 2em"&gt;Triton DSL是以BLOCK tile为中心的Python DSL。与CUDA相比，Triton的使用者无法控制所有细节，因为某些优化是自动完成的，但是在Triton编译器的逐层编译优化之下也可以获得与Cuda相近甚至超过的性能。另外，Triton的编写和调试更加简单，而且学习成本更低。&lt;/p&gt;</description></item><item><title>八股系列：inference infra</title><link>https://moyutianzun.com/blog/llm-infra-ba-gu-quan-ji/</link><pubDate>Wed, 03 Sep 2025 15:16:40 +0800</pubDate><guid>https://moyutianzun.com/blog/llm-infra-ba-gu-quan-ji/</guid><description>&lt;p style="text-indent: 2em"&gt;收集我和我小伙伴互相问的八股问题，里面有&lt;code&gt;gemini deep search&lt;/code&gt;的回答，望周知。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="llm-model"&gt;LLM model&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="rmsnorm%E5%92%8Clayernorm%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E4%BC%98%E7%82%B9"&gt;rmsnorm和layernorm相比有什么优点&lt;/h2&gt;&lt;p style=""&gt;参考&lt;a href="https://zhuanlan.zhihu.com/p/1906310832922531627" target="_self" rel=""&gt;为什么最新的大模型普遍用RMSNorm？&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="swiglu%E5%92%8Crelu%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E4%BF%AE%E6%94%B9"&gt;swiglu和relu相比有什么修改&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;GELU&lt;/strong&gt;: 高斯误差线性单元&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;ReLU&lt;/strong&gt;: 修正线性单元&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;&lt;strong&gt;Swish (β=1.0)&lt;/strong&gt;: 标准Swish函数&lt;/p&gt;</description></item><item><title>【CUDA从入门到入土】四、矩阵乘法</title><link>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-si-ju-zhen-cheng-fa/</link><pubDate>Wed, 03 Sep 2025 14:50:37 +0800</pubDate><guid>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-si-ju-zhen-cheng-fa/</guid><description>&lt;p style="text-indent: 2em"&gt;矩阵乘法跟之前不同，之前一维可以直接写一个kernel，或者多个kernel线性的排布来并行计算，那么矩阵乘法就是由一维向二维转变的关键。这时候一维的kernel排布也变成了二维排布。&lt;/p&gt;</description></item><item><title>【LLM 必读综述】Speed Always Wins：LLM高效架构调查</title><link>https://moyutianzun.com/blog/llm-bi-du-zong-shu-speed-always-wins-llmgao-xiao-jia-gou-diao-cha/</link><pubDate>Wed, 27 Aug 2025 08:06:02 +0800</pubDate><guid>https://moyutianzun.com/blog/llm-bi-du-zong-shu-speed-always-wins-llmgao-xiao-jia-gou-diao-cha/</guid><description>&lt;p style=""&gt;题目：Speed Always Wins: A Survey on Efficient Architectures for Large Language Models&lt;/p&gt;&lt;p style=""&gt;作者：孙伟高 上海人工智能实验室&lt;/p&gt;&lt;p style=""&gt;github：https://github.com/weigao266/Awesome-Efficient-Arch&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E6%96%87%E7%AB%A0%E7%9A%84%E4%B8%BB%E8%A6%81%E7%9B%AE%E7%9A%84"&gt;&lt;span style="font-size: 36px"&gt;&lt;strong&gt;文章的主要目的&lt;/strong&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p style="text-indent: 2em"&gt;通过分析449篇大模型的论文，汇总得到了以下能让大模型速度提升的方向：&lt;/p&gt;</description></item><item><title>如何最快速的找到最核心的几篇文章</title><link>https://moyutianzun.com/blog/arxiv/</link><pubDate>Sun, 24 Aug 2025 16:12:48 +0800</pubDate><guid>https://moyutianzun.com/blog/arxiv/</guid><description>&lt;p style=""&gt;做这期blog的动机很简单，分享一下自己如何快速的上手某个领域的论文。最核心的三个步骤我觉得分别是：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;确定自己&lt;strong&gt;研究领域的key words&lt;/strong&gt;，这里是要从上到下的，如LLM -&amp;gt; 微调 和 CoT&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;确定自己需要&lt;strong&gt;研究的题目&lt;/strong&gt;，如 如何确定CoT的某个环节有益于微调中得到高的得分&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;根据“and”的检索思想，从小到大的进行检索&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;先检索key words，确定论文的范围&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;在页面内只看研究的问题是否符合自己的要求&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%BF%AB%E9%80%9F%E7%A1%AE%E5%AE%9A%E8%87%AA%E5%B7%B1%E9%9C%80%E8%A6%81%E7%9A%84%E8%AE%BA%E6%96%87"&gt;快速确定自己需要的论文&lt;/h1&gt;&lt;p style="text-indent: 2em"&gt;想要快速了解某个领域的论文，一个是问，问从业者，这是最快的，有人脉，直接问最核心的开发者，受益无穷，少走很多弯路。&lt;/p&gt;</description></item><item><title>【CUDA从入门到入土】三、reduce算子及其优化</title><link>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-san-reducesuan-zi-ji-qi-you-hua/</link><pubDate>Sat, 23 Aug 2025 08:46:59 +0800</pubDate><guid>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-san-reducesuan-zi-ji-qi-you-hua/</guid><description>&lt;p style="text-indent: 2em"&gt;该项目代码参考&lt;a href="https://space.bilibili.com/1822828582" target="_self" rel=""&gt;傅哥的课程&lt;/a&gt;，很有用的课程，请多多支持他。&lt;/p&gt;&lt;hr&gt;&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&lt;p style="text-indent: 2em"&gt;reduce 规约求和是cuda中一个经典的问题，其本质是将输入的序列进行求和。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style="text-indent: 2em"&gt;在CUDA的多线程中，我们清楚数据被分为一个一个的block中进行运行，每个block通过warp来并发32个线程进行运算。&lt;/p&gt;</description></item><item><title>cursor trae解决插件问题</title><link>https://moyutianzun.com/blog/cursor-traejie-jue-cha-jian-wen-ti/</link><pubDate>Wed, 20 Aug 2025 12:27:24 +0800</pubDate><guid>https://moyutianzun.com/blog/cursor-traejie-jue-cha-jian-wen-ti/</guid><description>&lt;h1 style="" id="%E4%BD%BF%E7%94%A8%E4%BB%A3%E7%90%86%E7%BD%91%E7%AB%99"&gt;使用代理网站&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;使用&lt;a href="https://www.vsixhub.com/"&gt;vsixhub&lt;/a&gt;进行&lt;code&gt;vsix&lt;/code&gt;下载，记得在&lt;a href="https://marketplace.visualstudio.com/vscode" target="_self" rel=""&gt;marketplace&lt;/a&gt;里对比两者的版本，下载之后直接拖拽文件到&lt;code&gt;cursor&lt;/code&gt;的插件栏里就行。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250820201615828.png" width="70%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250820201731865.png" width="70%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E4%BB%8Evscode%E4%B8%8B%E8%BD%BD"&gt;从vscode下载&lt;/h1&gt;&lt;p style=""&gt;从&lt;code&gt;vscode&lt;/code&gt;下载之后点击小齿轮进行下载&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250820202459681.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E4%BD%BF%E7%94%A8%E9%93%BE%E6%8E%A5%E8%A1%A5%E5%85%85%E4%B8%8B%E8%BD%BD"&gt;使用链接补充下载&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;在下面的链接的基础上补上一部分&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;https://marketplace.visualstudio.com/_apis/public/gallery/publishers/&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;在后续补上&lt;code&gt;{发布者}/vsextensions/{插件名}/{版本号}/vspackage&lt;/code&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;比如说上面的Nsight，组合起来就是：&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;https://marketplace.visualstudio.com/_apis/public/gallery/publishers/NVIDIA/vsextensions/nsight-vscode-edition/2025.1.36067579/vspackage&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;注意，插件名有空格的地方要加短横线&lt;code&gt;-&lt;/code&gt; 。这样能直接通过网页下载插件，不需要&lt;code&gt;vscode&lt;/code&gt;代为下载。&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;</description></item><item><title>【CUDA从入门到入土】二、CUDA调试和必知必会 &amp; Nsight Computer 入门</title><link>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-er-cudabi-zhi-bi-hui/</link><pubDate>Sun, 17 Aug 2025 17:09:02 +0800</pubDate><guid>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-er-cudabi-zhi-bi-hui/</guid><description>&lt;p style="text-indent: 2em"&gt;上文中，我们运行了一个简单的cuda函数，并且一次过的将其运行了起来，这次，我们需要补充一些基础的概念，通过概念和框架的建立，我们才能走的更远，高屋建瓴的认识更多。&lt;/p&gt;</description></item><item><title>【CUDA从入门到入土】五、cuda_kernel_和_cuda_attention详解</title><link>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-er-cuda_kernel_he_cuda_attentionxiang-jie/</link><pubDate>Sun, 17 Aug 2025 15:14:21 +0800</pubDate><guid>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-er-cuda_kernel_he_cuda_attentionxiang-jie/</guid><description>&lt;p style=""&gt;从cuda kernel出发，看懂人生第一个cuda attention&lt;/p&gt;</description></item><item><title>【CUDA从入门到入土】一、丝滑的CUDA入门</title><link>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-yi-si-hua-de-cudaru-men/</link><pubDate>Thu, 14 Aug 2025 16:27:54 +0800</pubDate><guid>https://moyutianzun.com/blog/cudacong-ru-men-dao-ru-tu-yi-si-hua-de-cudaru-men/</guid><description>&lt;p style=""&gt;&lt;strong&gt;CUDA是什么&lt;/strong&gt;&lt;/p&gt;&lt;p style=""&gt;cuda是一种gpu编程组件，是一种原生支持GPU软硬件的架构，使得开发者可以直接在 GPU 上编写和执行通用计算程序。&lt;/p&gt;&lt;h2 style="" id="gpu%E6%9E%B6%E6%9E%84"&gt;&lt;strong&gt;GPU架构&lt;/strong&gt;&lt;/h2&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250807194901764.png" alt="" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;上图是H100白皮书中，H100 GPU带满了144个SM的架构图&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250807195051758.png" alt="" width="991px" height="1379px" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;上图是H100中，1个SM的架构图&lt;/p&gt;&lt;h3 style="" id="sm%E6%9E%B6%E6%9E%84%E8%AF%A6%E8%A7%A3"&gt;&lt;strong&gt;SM架构详解&lt;/strong&gt;&lt;/h3&gt;&lt;p style=""&gt;由此，我们可以高屋建瓴的看懂GPU，这里不雕琢细节，只直白的说明白GPU怎么工作的：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;PCIE 就是负责数据从显卡和主板之间进出的数据传输协议，理解为传递数据的就对了&lt;/p&gt;</description></item><item><title>WSL2搭建cuda-triton开发环境</title><link>https://moyutianzun.com/blog/wsl2%E6%90%AD%E5%BB%BAcuda-triton%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/</link><pubDate>Thu, 14 Aug 2025 16:21:13 +0800</pubDate><guid>https://moyutianzun.com/blog/wsl2%E6%90%AD%E5%BB%BAcuda-triton%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/</guid><description>&lt;p style=""&gt;先用了vmware + ubuntu的方法，结果发现现在gpu无法透传到vmware的虚拟机里&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;故此使用wsl2的开发环境，后续会更新许多更舒服丝滑的操作&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="wsl2"&gt;&lt;strong&gt;WSL2&lt;/strong&gt;&lt;/h1&gt;&lt;p style=""&gt;查看所有发行版本&lt;/p&gt;&lt;pre&gt;&lt;code&gt;wsl --list --online
&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;安装指定版本&lt;/p&gt;&lt;pre&gt;&lt;code&gt;wsl --install Ubuntu-22.04
&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;安装成功之后设置一下账户密码就行&lt;/p&gt;&lt;h2 style="" id="%E5%AE%89%E8%A3%85miniconda"&gt;&lt;strong&gt;安装miniconda&lt;/strong&gt;&lt;/h2&gt;&lt;p style=""&gt;用脚本安装&lt;/p&gt;&lt;pre&gt;&lt;code&gt;wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
&lt;p&gt;chmod +x Miniconda3-latest-Linux-x86_64.sh&lt;/p&gt;
&lt;p&gt;./Miniconda3-latest-Linux-x86_64.sh&lt;/p&gt;
&lt;p&gt;source ~/.bashrc&lt;/p&gt;
&lt;p&gt;conda list
&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;用脚本安装就一直yes就行&lt;/p&gt;&lt;h2 style="" id="%E5%AE%89%E8%A3%85cuda-toolkit-%E5%92%8C-cudnn"&gt;&lt;strong&gt;安装CUDA Toolkit 和 cudnn&lt;/strong&gt;&lt;/h2&gt;&lt;p style=""&gt;使用 nvidia-smi查看cuda版本，在下面链接选择相应的版本&lt;/p&gt;</description></item><item><title>【MLsys 24】keyformer阅读笔记</title><link>https://moyutianzun.com/blog/wei-ming-ming-wen-zhang/</link><pubDate>Thu, 14 Aug 2025 15:54:06 +0800</pubDate><guid>https://moyutianzun.com/blog/wei-ming-ming-wen-zhang/</guid><description>&lt;p style=""&gt;文章名：Keyformer: KV Cache reduction through key tokens selection for Efficient Generative Inference&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E8%AE%BA%E6%96%87%E7%9A%84%E5%85%B3%E9%94%AE%EF%BC%9A"&gt;&lt;strong&gt;论文的关键：&lt;/strong&gt;&lt;/h1&gt;&lt;ol&gt;&lt;li&gt;&lt;p style=""&gt;在vllm中，Decode的时候由于矩阵乘法和KV cache的存取，该阶段受限于memory bound&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;研究发现，在推理过程中，90%的attention权重关注于特定的token&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;这篇文章的工作就是&lt;strong&gt;通过一个新颖的评分函数来找到这些特定的token&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;在KV cache中就只保存这些特定的token&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=""&gt;对于多embedding和多任务上，keyfromer能降低延迟，提高吞吐量，不丢失准确率&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=""&gt;&lt;br&gt;&lt;/p&gt;&lt;h1 style="" id="%E8%83%8C%E6%99%AF"&gt;&lt;strong&gt;背景&lt;/strong&gt;&lt;/h1&gt;&lt;p style="text-indent: 2em"&gt;生成的新token会带来额外的KV cache，如MPT-7B 模型中，序列长度增加 16 倍（从 512 到 8K）会导致推理延迟增加 50 倍以上。推理总时间的约 40%（绿色突出显示）被 KV 缓存数据移动所消耗，还会延长其他操作所需的时间（蓝色显示）。当序列长度超过 8K 时，KV 缓存大小超过了模型大小。&lt;/p&gt;</description></item><item><title>MLsys24 分类汇总</title><link>https://moyutianzun.com/blog/mlsys24-fen-lei-hui-zong/</link><pubDate>Thu, 14 Aug 2025 15:51:24 +0800</pubDate><guid>https://moyutianzun.com/blog/mlsys24-fen-lei-hui-zong/</guid><description>&lt;h1 style="" id="llm-%E6%8E%A8%E7%90%86%E4%B8%8E%E6%9C%8D%E5%8A%A1%E4%BC%98%E5%8C%96-(llm-inference-and-serving-optimization)"&gt;&lt;strong&gt;LLM 推理与服务优化 (LLM Inference and Serving Optimization)&lt;/strong&gt;&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="kv-%E7%BC%93%E5%AD%98%E7%AE%A1%E7%90%86%E5%92%8C%E4%BC%98%E5%8C%96-(kv-cache-management-and-optimization)"&gt;&lt;strong&gt;KV 缓存管理和优化 (KV Cache Management and Optimization)&lt;/strong&gt;&lt;/h2&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;这些论文聚焦于 KV 缓存的减少、量化或重用，以提升生成推理效率和降低内存消耗。&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt;&lt;a href="http://www.moyutianzun.cn/2025/07/30/keyformer%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/"&gt;Keyformer: KV Cache reduction through key tokens selection for Efficient Generative Inference&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=""&gt; (Keyformer：通过高效生成推理的关键令牌选择来减少 KV 缓存) - Muhammad Adnan 等&lt;/p&gt;</description></item><item><title>Hello Halo</title><link>https://moyutianzun.com/blog/hello-halo/</link><pubDate>Thu, 14 Aug 2025 15:15:16 +0800</pubDate><guid>https://moyutianzun.com/blog/hello-halo/</guid><description>&lt;h2 id="hello-halo"&gt;&lt;strong&gt;Hello Halo&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;如果你看到了这一篇文章，那么证明你已经安装成功了，感谢使用 &lt;a target="_blank" rel="noopener noreferrer nofollow" href="https://www.halo.run/"&gt;Halo&lt;/a&gt; 进行创作，希望能够使用愉快。&lt;/p&gt;&lt;h2 id="%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5"&gt;&lt;strong&gt;相关链接&lt;/strong&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;官网：&lt;a target="_blank" rel="noopener noreferrer nofollow" href="https://www.halo.run"&gt;https://www.halo.run&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;文档：&lt;a target="_blank" rel="noopener noreferrer nofollow" href="https://docs.halo.run"&gt;https://docs.halo.run&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;社区：&lt;a target="_blank" rel="noopener noreferrer nofollow" href="https://bbs.halo.run"&gt;https://bbs.halo.run&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;应用市场：&lt;a target="_blank" rel="noopener noreferrer nofollow" href="https://www.halo.run/store/apps"&gt;https://www.halo.run/store/apps&lt;/a&gt;&lt;/p&gt;</description></item><item><title>aliyun ubuntu halo AirCloud最速传说</title><link>https://moyutianzun.com/blog/aliyun-ubuntu-hexo-nextzui-su-chuan-shuo/</link><pubDate>Fri, 14 Feb 2025 15:32:00 +0800</pubDate><guid>https://moyutianzun.com/blog/aliyun-ubuntu-hexo-nextzui-su-chuan-shuo/</guid><description>&lt;h1 style="" id="%E8%B4%AD%E4%B9%B0%E5%9F%9F%E5%90%8D"&gt;购买域名&lt;/h1&gt;&lt;p style=""&gt;搜索点击阿里云域名注册服务&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011222815.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;在此处搜索域名&lt;/p&gt;&lt;p style=""&gt;&lt;a href="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011235979.png"&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011235979.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;英文中文都可以，然后选择购买，实名认证之后下单即可&lt;/p&gt;&lt;p style=""&gt;下单后需要提交实名认证的模板，在域名列表-&amp;gt;解析，会被要求去实名，上传身份证，大概要几个小时，认证后即可&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011240381.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;需要对解析和管理分别进行配置&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011305282.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;解析中配置好域名对着IP&lt;/p&gt;&lt;p style=""&gt;&lt;img src="https://moyublog-picture.oss-cn-guangzhou.aliyuncs.com/images/20250729011309784.png" width="100%" height="100%" style="display: inline-block"&gt;&lt;/p&gt;&lt;p style=""&gt;管理中自定义DNS，然后在www中添加DNS对着IP&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="%E5%8D%9A%E5%AE%A2%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%8C%BA%E5%88%AB"&gt;博客服务的区别&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;Hexo没有后端&lt;/p&gt;&lt;p style=""&gt;Hego社区不太活跃&lt;/p&gt;&lt;p style=""&gt;Typecho轻量级但是已经很老的框架了&lt;/p&gt;&lt;p style=""&gt;Halo是java写的，很方便&lt;/p&gt;&lt;p style=""&gt;Halo找了一圈，好像对latex不太支持&lt;/p&gt;&lt;p style=""&gt;Hexo的stellar没找到加备案的地方，找了一圈，还是next把，简简单单的也挺好&lt;/p&gt;&lt;p style=""&gt;更新，next渲染依托答辩，受不鸟了，toc渲染都不正确，fu'le&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h1 style="" id="halo%E5%AE%89%E8%A3%85"&gt;Halo安装&lt;/h1&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;h2 style="" id="1panle-%E5%AE%89%E8%A3%85"&gt;1panle 安装&lt;/h2&gt;&lt;p style=""&gt;先执行如下脚本安装docker：&lt;/p&gt;&lt;pre&gt;&lt;code class="language-bash"&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/docker.sh)&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;然后执行脚本安装1panel：&lt;/p&gt;&lt;pre&gt;&lt;code class="language-bash"&gt;bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"r&lt;/code&gt;&lt;/pre&gt;&lt;p style=""&gt;&lt;/p&gt;&lt;p style=""&gt;然后输入 IP+你设置的端口 就可以进入1panel的控制台了&lt;/p&gt;</description></item></channel></rss>