[{"data":1,"prerenderedAt":13853},["ShallowReactive",2],{"blog-posts":3},[4,88,4233,7338,7529,7567,7852,7884,8951,9251,9303,9367,9724,9930,9968,10476,10526,10614,10746],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":8,"date":10,"categories":11,"tags":12,"draft":7,"body":13,"_type":82,"_id":83,"_source":84,"_file":85,"_stem":86,"_extension":87},"\u002Fposts\u002Finteresting-music-rhythm","posts",false,"","有趣的音乐节奏","2026-07-16 12:47:24","音乐",null,{"type":14,"children":15,"toc":78},"root",[16,24,29,34,39,44,53,68,73],{"type":17,"tag":18,"props":19,"children":20},"element","p",{},[21],{"type":22,"value":23},"text","套拍子可以说是音乐中化腐朽为神奇的一种玩法，可以让简单的乐句也变得十分的丰富和有趣，我个人十分喜欢套拍的听感和玩法。但是对怎么玩套拍本身还是存在诸多疑惑。",{"type":17,"tag":18,"props":25,"children":26},{},[27],{"type":22,"value":28},"虽然自己一直有听过什么听四打三、听三打四，四套三、三套三、二对三等等之类的套拍说法，但其实对于它们本身指的是什么？以及具体的组成还是有些模糊。",{"type":17,"tag":18,"props":30,"children":31},{},[32],{"type":22,"value":33},"在音乐中，节奏(rhythm)一般指声音在时间上是如何排列组合的，其实算一个抽象的概念。具象一些的实践，就是节拍(meter)。可以说节拍(meter)是节奏(rhythm)在音乐中的形状。节拍指的是重复的节奏和拍子是如何有规律地被划分的，乐理上有小节、拍号、速度等等书面描述记法将之具像化。",{"type":17,"tag":18,"props":35,"children":36},{},[37],{"type":22,"value":38},"套拍子简单来说就是复合节奏(polyrhythm)、复合节拍(polymeter)。",{"type":17,"tag":18,"props":40,"children":41},{},[42],{"type":22,"value":43},"借用一张图直观的感受一下。",{"type":17,"tag":18,"props":45,"children":46},{},[47],{"type":17,"tag":48,"props":49,"children":52},"img",{"alt":50,"src":51},"复合节拍和复合节奏","https:\u002F\u002Fi0.wp.com\u002Fethanhein.com\u002Fwp\u002Fwp-content\u002Fuploads\u002F2024\u002F04\u002F3-to-4-polymeter-vs-3-to-4-polyrhythm.png",[],{"type":17,"tag":54,"props":55,"children":56},"ul",{},[57,63],{"type":17,"tag":58,"props":59,"children":60},"li",{},[61],{"type":22,"value":62},"复合节拍(Based on Beat)：每一拍是对齐的（或者说grid对齐），但是强拍（小节）不对齐。",{"type":17,"tag":58,"props":64,"children":65},{},[66],{"type":22,"value":67},"复合节奏(Based on Bar)：每一拍不对齐（或者说grid不对齐），但强拍（小节）是对齐的。",{"type":17,"tag":18,"props":69,"children":70},{},[71],{"type":22,"value":72},"两者显然有很大的区别。Polymeter的情况下，tempo（速度）是不变的，每一个 beat 也是对齐的。我想所谓听三打四、听四打三就是属于复合节拍。",{"type":17,"tag":18,"props":74,"children":75},{},[76],{"type":22,"value":77},"而复合节奏的话其实很常见，比如说三连音就是短时的复合节奏。而常说的四对三",{"title":8,"searchDepth":79,"depth":80,"links":81},2,3,[],"markdown","content:posts:interesting-music-rhythm.md","content","posts\u002Finteresting-music-rhythm.md","posts\u002Finteresting-music-rhythm","md",{"_path":89,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":90,"description":91,"date":92,"categories":93,"tags":94,"draft":7,"body":98,"_type":82,"_id":4230,"_source":84,"_file":4231,"_stem":4232,"_extension":87},"\u002Fposts\u002Ftowards-monosemanticity","LLM 可解释性（一）：SAE与单语义","读 Anthropic《Towards Monosemanticity》。从难以解释的神经元出发, 讲清superposition为什么让单个神经元混成一团, SAE怎么把多语义的激活分解成单语义特征。","2026-07-12 22:00:00","技术",[95,96,97],"LLMs","可解释性","SAE",{"type":14,"children":99,"toc":4223},[100,120,127,132,148,160,876,1035,1090,1241,1342,1347,1366,1378,1391,1396,1406,1412,2091,2748,2760,3502,3507,3924,3930,3942,4067,4079,4098,4104,4109,4121,4126,4167,4179,4185,4190,4202,4206,4217],{"type":17,"tag":18,"props":101,"children":102},{},[103,105,111,113,118],{"type":22,"value":104},"这就是 ",{"type":17,"tag":106,"props":107,"children":108},"strong",{},[109],{"type":22,"value":110},"polysemanticity(多义性)",{"type":22,"value":112},"。Anthropic 这篇的工作是:既然神经元本身不好直接解释,那我们就用稀疏自编码器(SAE)把激活\"解混\"成一组",{"type":17,"tag":106,"props":114,"children":115},{},[116],{"type":22,"value":117},"单语义特征(monosemantic features)",{"type":22,"value":119},",并给出证据说这些特征才是模型真正在用的计算单元。",{"type":17,"tag":121,"props":122,"children":124},"h2",{"id":123},"一",[125],{"type":22,"value":126},"一、",{"type":17,"tag":18,"props":128,"children":129},{},[130],{"type":22,"value":131},"机械可解释性(mechanistic interpretability)最早的想法很朴素:打开模型,逐个神经元看它对什么输入有反应,像生物学家找\"祖母细胞\"那样。但这条路撞墙了,因为绝大多数神经元是多义的,一个神经元可能同时对 DNA 序列、阿拉伯文、人名首字母大写都有反应。",{"type":17,"tag":18,"props":133,"children":134},{},[135,137,146],{"type":22,"value":136},"为什么? Anthropic 在更早的 ",{"type":17,"tag":138,"props":139,"children":143},"a",{"href":140,"rel":141},"https:\u002F\u002Ftransformer-circuits.pub\u002F2022\u002Ftoy_model\u002Findex.html#strategic-ways-out",[142],"nofollow",[144],{"type":22,"value":145},"Toy Models of Superposition",{"type":22,"value":147}," 里给了一个很干净的假设:",{"type":17,"tag":149,"props":150,"children":151},"blockquote",{},[152],{"type":17,"tag":18,"props":153,"children":154},{},[155],{"type":17,"tag":106,"props":156,"children":157},{},[158],{"type":22,"value":159},"模型要表达的概念(features)比它拥有的维度(neurons)多得多。",{"type":17,"tag":18,"props":161,"children":162},{},[163,165,170,172,177,179,239,241,283,285,292,294,339,341,495,497,559,561,566,568,610,612,790,792,874],{"type":22,"value":164},"于是模型把一堆概念\"挤\"进一个低维空间里——这就是 ",{"type":17,"tag":106,"props":166,"children":167},{},[168],{"type":22,"value":169},"superposition(叠加)",{"type":22,"value":171},"。直觉上,如果每个概念是高维空间里一个",{"type":17,"tag":106,"props":173,"children":174},{},[175],{"type":22,"value":176},"几乎正交",{"type":22,"value":178},"的方向,那么 ",{"type":17,"tag":180,"props":181,"children":184},"span",{"className":182},[183],"katex",[185,215],{"type":17,"tag":180,"props":186,"children":189},{"className":187},[188],"katex-mathml",[190],{"type":17,"tag":191,"props":192,"children":194},"math",{"xmlns":193},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[195],{"type":17,"tag":196,"props":197,"children":198},"semantics",{},[199,209],{"type":17,"tag":200,"props":201,"children":202},"mrow",{},[203],{"type":17,"tag":204,"props":205,"children":206},"mi",{},[207],{"type":22,"value":208},"d",{"type":17,"tag":210,"props":211,"children":213},"annotation",{"encoding":212},"application\u002Fx-tex",[214],{"type":22,"value":208},{"type":17,"tag":180,"props":216,"children":220},{"className":217,"ariaHidden":219},[218],"katex-html","true",[221],{"type":17,"tag":180,"props":222,"children":225},{"className":223},[224],"base",[226,232],{"type":17,"tag":180,"props":227,"children":231},{"className":228,"style":230},[229],"strut","height:0.6944em;",[],{"type":17,"tag":180,"props":233,"children":237},{"className":234},[235,236],"mord","mathnormal",[238],{"type":22,"value":208},{"type":22,"value":240}," 维空间可以塞下远多于 ",{"type":17,"tag":180,"props":242,"children":244},{"className":243},[183],[245,266],{"type":17,"tag":180,"props":246,"children":248},{"className":247},[188],[249],{"type":17,"tag":191,"props":250,"children":251},{"xmlns":193},[252],{"type":17,"tag":196,"props":253,"children":254},{},[255,262],{"type":17,"tag":200,"props":256,"children":257},{},[258],{"type":17,"tag":204,"props":259,"children":260},{},[261],{"type":22,"value":208},{"type":17,"tag":210,"props":263,"children":264},{"encoding":212},[265],{"type":22,"value":208},{"type":17,"tag":180,"props":267,"children":269},{"className":268,"ariaHidden":219},[218],[270],{"type":17,"tag":180,"props":271,"children":273},{"className":272},[224],[274,278],{"type":17,"tag":180,"props":275,"children":277},{"className":276,"style":230},[229],[],{"type":17,"tag":180,"props":279,"children":281},{"className":280},[235,236],[282],{"type":22,"value":208},{"type":22,"value":284}," 个几乎正交的方向(只要允许它们之间有一点干扰),代价是每个方向不再对齐到任何一根坐标轴(也就是不再等于某个神经元)。这件事不是拍脑袋--苏剑林在",{"type":17,"tag":138,"props":286,"children":289},{"href":287,"rel":288},"https:\u002F\u002Fkexue.fm\u002Farchives\u002F7076",[142],[290],{"type":22,"value":291},"《n维空间下两个随机向量的夹角分布》",{"type":22,"value":293},"里算过:两个随机单位向量的夹角 ",{"type":17,"tag":180,"props":295,"children":297},{"className":296},[183],[298,321],{"type":17,"tag":180,"props":299,"children":301},{"className":300},[188],[302],{"type":17,"tag":191,"props":303,"children":304},{"xmlns":193},[305],{"type":17,"tag":196,"props":306,"children":307},{},[308,316],{"type":17,"tag":200,"props":309,"children":310},{},[311],{"type":17,"tag":204,"props":312,"children":313},{},[314],{"type":22,"value":315},"θ",{"type":17,"tag":210,"props":317,"children":318},{"encoding":212},[319],{"type":22,"value":320},"\\theta",{"type":17,"tag":180,"props":322,"children":324},{"className":323,"ariaHidden":219},[218],[325],{"type":17,"tag":180,"props":326,"children":328},{"className":327},[224],[329,333],{"type":17,"tag":180,"props":330,"children":332},{"className":331,"style":230},[229],[],{"type":17,"tag":180,"props":334,"children":337},{"className":335,"style":336},[235,236],"margin-right:0.0278em;",[338],{"type":22,"value":315},{"type":22,"value":340}," 的密度正比于 ",{"type":17,"tag":180,"props":342,"children":344},{"className":343},[183],[345,403],{"type":17,"tag":180,"props":346,"children":348},{"className":347},[188],[349],{"type":17,"tag":191,"props":350,"children":351},{"xmlns":193},[352],{"type":17,"tag":196,"props":353,"children":354},{},[355,398],{"type":17,"tag":200,"props":356,"children":357},{},[358,394],{"type":17,"tag":359,"props":360,"children":361},"msup",{},[362,376],{"type":17,"tag":200,"props":363,"children":364},{},[365,370],{"type":17,"tag":204,"props":366,"children":367},{},[368],{"type":22,"value":369},"sin",{"type":17,"tag":371,"props":372,"children":373},"mo",{},[374],{"type":22,"value":375},"⁡",{"type":17,"tag":200,"props":377,"children":378},{},[379,383,388],{"type":17,"tag":204,"props":380,"children":381},{},[382],{"type":22,"value":208},{"type":17,"tag":371,"props":384,"children":385},{},[386],{"type":22,"value":387},"−",{"type":17,"tag":389,"props":390,"children":391},"mn",{},[392],{"type":22,"value":393},"2",{"type":17,"tag":204,"props":395,"children":396},{},[397],{"type":22,"value":315},{"type":17,"tag":210,"props":399,"children":400},{"encoding":212},[401],{"type":22,"value":402},"\\sin^{d-2}\\theta",{"type":17,"tag":180,"props":404,"children":406},{"className":405,"ariaHidden":219},[218],[407],{"type":17,"tag":180,"props":408,"children":410},{"className":409},[224],[411,416,484,490],{"type":17,"tag":180,"props":412,"children":415},{"className":413,"style":414},[229],"height:0.9069em;",[],{"type":17,"tag":180,"props":417,"children":420},{"className":418},[419],"mop",[421,426],{"type":17,"tag":180,"props":422,"children":424},{"className":423},[419],[425],{"type":22,"value":369},{"type":17,"tag":180,"props":427,"children":430},{"className":428},[429],"msupsub",[431],{"type":17,"tag":180,"props":432,"children":435},{"className":433},[434],"vlist-t",[436],{"type":17,"tag":180,"props":437,"children":440},{"className":438},[439],"vlist-r",[441],{"type":17,"tag":180,"props":442,"children":445},{"className":443,"style":414},[444],"vlist",[446],{"type":17,"tag":180,"props":447,"children":449},{"style":448},"top:-3.1208em;margin-right:0.05em;",[450,456],{"type":17,"tag":180,"props":451,"children":455},{"className":452,"style":454},[453],"pstrut","height:2.7em;",[],{"type":17,"tag":180,"props":457,"children":463},{"className":458},[459,460,461,462],"sizing","reset-size6","size3","mtight",[464],{"type":17,"tag":180,"props":465,"children":467},{"className":466},[235,462],[468,473,479],{"type":17,"tag":180,"props":469,"children":471},{"className":470},[235,236,462],[472],{"type":22,"value":208},{"type":17,"tag":180,"props":474,"children":477},{"className":475},[476,462],"mbin",[478],{"type":22,"value":387},{"type":17,"tag":180,"props":480,"children":482},{"className":481},[235,462],[483],{"type":22,"value":393},{"type":17,"tag":180,"props":485,"children":489},{"className":486,"style":488},[487],"mspace","margin-right:0.1667em;",[],{"type":17,"tag":180,"props":491,"children":493},{"className":492,"style":336},[235,236],[494],{"type":22,"value":315},{"type":22,"value":496},",关于 ",{"type":17,"tag":180,"props":498,"children":500},{"className":499},[183],[501,534],{"type":17,"tag":180,"props":502,"children":504},{"className":503},[188],[505],{"type":17,"tag":191,"props":506,"children":507},{"xmlns":193},[508],{"type":17,"tag":196,"props":509,"children":510},{},[511,529],{"type":17,"tag":200,"props":512,"children":513},{},[514,519,525],{"type":17,"tag":204,"props":515,"children":516},{},[517],{"type":22,"value":518},"π",{"type":17,"tag":204,"props":520,"children":522},{"mathvariant":521},"normal",[523],{"type":22,"value":524},"\u002F",{"type":17,"tag":389,"props":526,"children":527},{},[528],{"type":22,"value":393},{"type":17,"tag":210,"props":530,"children":531},{"encoding":212},[532],{"type":22,"value":533},"\\pi\u002F2",{"type":17,"tag":180,"props":535,"children":537},{"className":536,"ariaHidden":219},[218],[538],{"type":17,"tag":180,"props":539,"children":541},{"className":540},[224],[542,547,553],{"type":17,"tag":180,"props":543,"children":546},{"className":544,"style":545},[229],"height:1em;vertical-align:-0.25em;",[],{"type":17,"tag":180,"props":548,"children":551},{"className":549,"style":550},[235,236],"margin-right:0.0359em;",[552],{"type":22,"value":518},{"type":17,"tag":180,"props":554,"children":556},{"className":555},[235],[557],{"type":22,"value":558},"\u002F2",{"type":22,"value":560}," 对称,均值就是 90°。但光有均值不够--二维、三维的均值也是 90°。真正让结论成立的是",{"type":17,"tag":106,"props":562,"children":563},{},[564],{"type":22,"value":565},"方差",{"type":22,"value":567},":文章证明方差随维度 ",{"type":17,"tag":180,"props":569,"children":571},{"className":570},[183],[572,593],{"type":17,"tag":180,"props":573,"children":575},{"className":574},[188],[576],{"type":17,"tag":191,"props":577,"children":578},{"xmlns":193},[579],{"type":17,"tag":196,"props":580,"children":581},{},[582,589],{"type":17,"tag":200,"props":583,"children":584},{},[585],{"type":17,"tag":204,"props":586,"children":587},{},[588],{"type":22,"value":208},{"type":17,"tag":210,"props":590,"children":591},{"encoding":212},[592],{"type":22,"value":208},{"type":17,"tag":180,"props":594,"children":596},{"className":595,"ariaHidden":219},[218],[597],{"type":17,"tag":180,"props":598,"children":600},{"className":599},[224],[601,605],{"type":17,"tag":180,"props":602,"children":604},{"className":603,"style":230},[229],[],{"type":17,"tag":180,"props":606,"children":608},{"className":607},[235,236],[609],{"type":22,"value":208},{"type":22,"value":611}," 趋于 0,近似为 ",{"type":17,"tag":180,"props":613,"children":615},{"className":614},[183],[616,658],{"type":17,"tag":180,"props":617,"children":619},{"className":618},[188],[620],{"type":17,"tag":191,"props":621,"children":622},{"xmlns":193},[623],{"type":17,"tag":196,"props":624,"children":625},{},[626,653],{"type":17,"tag":200,"props":627,"children":628},{},[629],{"type":17,"tag":630,"props":631,"children":632},"mfrac",{},[633,638],{"type":17,"tag":389,"props":634,"children":635},{},[636],{"type":22,"value":637},"1",{"type":17,"tag":200,"props":639,"children":640},{},[641,645,649],{"type":17,"tag":204,"props":642,"children":643},{},[644],{"type":22,"value":208},{"type":17,"tag":371,"props":646,"children":647},{},[648],{"type":22,"value":387},{"type":17,"tag":389,"props":650,"children":651},{},[652],{"type":22,"value":393},{"type":17,"tag":210,"props":654,"children":655},{"encoding":212},[656],{"type":22,"value":657},"\\frac{1}{d-2}",{"type":17,"tag":180,"props":659,"children":661},{"className":660,"ariaHidden":219},[218],[662],{"type":17,"tag":180,"props":663,"children":665},{"className":664},[224],[666,671],{"type":17,"tag":180,"props":667,"children":670},{"className":668,"style":669},[229],"height:1.2484em;vertical-align:-0.4033em;",[],{"type":17,"tag":180,"props":672,"children":674},{"className":673},[235],[675,681,785],{"type":17,"tag":180,"props":676,"children":680},{"className":677},[678,679],"mopen","nulldelimiter",[],{"type":17,"tag":180,"props":682,"children":684},{"className":683},[630],[685],{"type":17,"tag":180,"props":686,"children":689},{"className":687},[434,688],"vlist-t2",[690,773],{"type":17,"tag":180,"props":691,"children":693},{"className":692},[439],[694,766],{"type":17,"tag":180,"props":695,"children":698},{"className":696,"style":697},[444],"height:0.8451em;",[699,731,745],{"type":17,"tag":180,"props":700,"children":702},{"style":701},"top:-2.655em;",[703,708],{"type":17,"tag":180,"props":704,"children":707},{"className":705,"style":706},[453],"height:3em;",[],{"type":17,"tag":180,"props":709,"children":711},{"className":710},[459,460,461,462],[712],{"type":17,"tag":180,"props":713,"children":715},{"className":714},[235,462],[716,721,726],{"type":17,"tag":180,"props":717,"children":719},{"className":718},[235,236,462],[720],{"type":22,"value":208},{"type":17,"tag":180,"props":722,"children":724},{"className":723},[476,462],[725],{"type":22,"value":387},{"type":17,"tag":180,"props":727,"children":729},{"className":728},[235,462],[730],{"type":22,"value":393},{"type":17,"tag":180,"props":732,"children":734},{"style":733},"top:-3.23em;",[735,739],{"type":17,"tag":180,"props":736,"children":738},{"className":737,"style":706},[453],[],{"type":17,"tag":180,"props":740,"children":744},{"className":741,"style":743},[742],"frac-line","border-bottom-width:0.04em;",[],{"type":17,"tag":180,"props":746,"children":748},{"style":747},"top:-3.394em;",[749,753],{"type":17,"tag":180,"props":750,"children":752},{"className":751,"style":706},[453],[],{"type":17,"tag":180,"props":754,"children":756},{"className":755},[459,460,461,462],[757],{"type":17,"tag":180,"props":758,"children":760},{"className":759},[235,462],[761],{"type":17,"tag":180,"props":762,"children":764},{"className":763},[235,462],[765],{"type":22,"value":637},{"type":17,"tag":180,"props":767,"children":770},{"className":768},[769],"vlist-s",[771],{"type":22,"value":772},"​",{"type":17,"tag":180,"props":774,"children":776},{"className":775},[439],[777],{"type":17,"tag":180,"props":778,"children":781},{"className":779,"style":780},[444],"height:0.4033em;",[782],{"type":17,"tag":180,"props":783,"children":784},{},[],{"type":17,"tag":180,"props":786,"children":789},{"className":787},[788,679],"mclose",[],{"type":22,"value":791},"(弧度²),",{"type":17,"tag":180,"props":793,"children":795},{"className":794},[183],[796,828],{"type":17,"tag":180,"props":797,"children":799},{"className":798},[188],[800],{"type":17,"tag":191,"props":801,"children":802},{"xmlns":193},[803],{"type":17,"tag":196,"props":804,"children":805},{},[806,823],{"type":17,"tag":200,"props":807,"children":808},{},[809,813,818],{"type":17,"tag":204,"props":810,"children":811},{},[812],{"type":22,"value":208},{"type":17,"tag":371,"props":814,"children":815},{},[816],{"type":22,"value":817},"=",{"type":17,"tag":389,"props":819,"children":820},{},[821],{"type":22,"value":822},"1000",{"type":17,"tag":210,"props":824,"children":825},{"encoding":212},[826],{"type":22,"value":827},"d=1000",{"type":17,"tag":180,"props":829,"children":831},{"className":830,"ariaHidden":219},[218],[832,860],{"type":17,"tag":180,"props":833,"children":835},{"className":834},[224],[836,840,845,850,856],{"type":17,"tag":180,"props":837,"children":839},{"className":838,"style":230},[229],[],{"type":17,"tag":180,"props":841,"children":843},{"className":842},[235,236],[844],{"type":22,"value":208},{"type":17,"tag":180,"props":846,"children":849},{"className":847,"style":848},[487],"margin-right:0.2778em;",[],{"type":17,"tag":180,"props":851,"children":854},{"className":852},[853],"mrel",[855],{"type":22,"value":817},{"type":17,"tag":180,"props":857,"children":859},{"className":858,"style":848},[487],[],{"type":17,"tag":180,"props":861,"children":863},{"className":862},[224],[864,869],{"type":17,"tag":180,"props":865,"children":868},{"className":866,"style":867},[229],"height:0.6444em;",[],{"type":17,"tag":180,"props":870,"children":872},{"className":871},[235],[873],{"type":22,"value":822},{"type":22,"value":875}," 时标准差只有约 1.8°,夹角几乎被钉死在 90°。",{"type":17,"tag":18,"props":877,"children":878},{},[879,881,926,928,1033],{"type":22,"value":880},"另外有JL引理：塞下 ",{"type":17,"tag":180,"props":882,"children":884},{"className":883},[183],[885,907],{"type":17,"tag":180,"props":886,"children":888},{"className":887},[188],[889],{"type":17,"tag":191,"props":890,"children":891},{"xmlns":193},[892],{"type":17,"tag":196,"props":893,"children":894},{},[895,903],{"type":17,"tag":200,"props":896,"children":897},{},[898],{"type":17,"tag":204,"props":899,"children":900},{},[901],{"type":22,"value":902},"N",{"type":17,"tag":210,"props":904,"children":905},{"encoding":212},[906],{"type":22,"value":902},{"type":17,"tag":180,"props":908,"children":910},{"className":909,"ariaHidden":219},[218],[911],{"type":17,"tag":180,"props":912,"children":914},{"className":913},[224],[915,920],{"type":17,"tag":180,"props":916,"children":919},{"className":917,"style":918},[229],"height:0.6833em;",[],{"type":17,"tag":180,"props":921,"children":924},{"className":922,"style":923},[235,236],"margin-right:0.109em;",[925],{"type":22,"value":902},{"type":22,"value":927}," 个向量只需要 ",{"type":17,"tag":180,"props":929,"children":931},{"className":930},[183],[932,985],{"type":17,"tag":180,"props":933,"children":935},{"className":934},[188],[936],{"type":17,"tag":191,"props":937,"children":938},{"xmlns":193},[939],{"type":17,"tag":196,"props":940,"children":941},{},[942,980],{"type":17,"tag":200,"props":943,"children":944},{},[945,950,956,961,966,971,975],{"type":17,"tag":204,"props":946,"children":947},{},[948],{"type":22,"value":949},"O",{"type":17,"tag":371,"props":951,"children":953},{"stretchy":952},"false",[954],{"type":22,"value":955},"(",{"type":17,"tag":204,"props":957,"children":958},{},[959],{"type":22,"value":960},"l",{"type":17,"tag":204,"props":962,"children":963},{},[964],{"type":22,"value":965},"o",{"type":17,"tag":204,"props":967,"children":968},{},[969],{"type":22,"value":970},"g",{"type":17,"tag":204,"props":972,"children":973},{},[974],{"type":22,"value":902},{"type":17,"tag":371,"props":976,"children":977},{"stretchy":952},[978],{"type":22,"value":979},")",{"type":17,"tag":210,"props":981,"children":982},{"encoding":212},[983],{"type":22,"value":984},"O(logN)",{"type":17,"tag":180,"props":986,"children":988},{"className":987,"ariaHidden":219},[218],[989],{"type":17,"tag":180,"props":990,"children":992},{"className":991},[224],[993,997,1002,1007,1013,1018,1023,1028],{"type":17,"tag":180,"props":994,"children":996},{"className":995,"style":545},[229],[],{"type":17,"tag":180,"props":998,"children":1000},{"className":999,"style":336},[235,236],[1001],{"type":22,"value":949},{"type":17,"tag":180,"props":1003,"children":1005},{"className":1004},[678],[1006],{"type":22,"value":955},{"type":17,"tag":180,"props":1008,"children":1011},{"className":1009,"style":1010},[235,236],"margin-right:0.0197em;",[1012],{"type":22,"value":960},{"type":17,"tag":180,"props":1014,"children":1016},{"className":1015},[235,236],[1017],{"type":22,"value":965},{"type":17,"tag":180,"props":1019,"children":1021},{"className":1020,"style":550},[235,236],[1022],{"type":22,"value":970},{"type":17,"tag":180,"props":1024,"children":1026},{"className":1025,"style":923},[235,236],[1027],{"type":22,"value":902},{"type":17,"tag":180,"props":1029,"children":1031},{"className":1030},[788],[1032],{"type":22,"value":979},{"type":22,"value":1034}," 维空间。",{"type":17,"tag":149,"props":1036,"children":1037},{},[1038],{"type":17,"tag":18,"props":1039,"children":1040},{},[1041],{"type":17,"tag":106,"props":1042,"children":1043},{},[1044,1046,1088],{"type":22,"value":1045},"高维空间里随便抓两个方向就几乎正交,所以能塞下远多于 ",{"type":17,"tag":180,"props":1047,"children":1049},{"className":1048},[183],[1050,1071],{"type":17,"tag":180,"props":1051,"children":1053},{"className":1052},[188],[1054],{"type":17,"tag":191,"props":1055,"children":1056},{"xmlns":193},[1057],{"type":17,"tag":196,"props":1058,"children":1059},{},[1060,1067],{"type":17,"tag":200,"props":1061,"children":1062},{},[1063],{"type":17,"tag":204,"props":1064,"children":1065},{},[1066],{"type":22,"value":208},{"type":17,"tag":210,"props":1068,"children":1069},{"encoding":212},[1070],{"type":22,"value":208},{"type":17,"tag":180,"props":1072,"children":1074},{"className":1073,"ariaHidden":219},[218],[1075],{"type":17,"tag":180,"props":1076,"children":1078},{"className":1077},[224],[1079,1083],{"type":17,"tag":180,"props":1080,"children":1082},{"className":1081,"style":230},[229],[],{"type":17,"tag":180,"props":1084,"children":1086},{"className":1085},[235,236],[1087],{"type":22,"value":208},{"type":22,"value":1089}," 个几乎正交的方向。",{"type":17,"tag":18,"props":1091,"children":1092},{},[1093,1095,1137,1139,1239],{"type":22,"value":1094},"随手模拟一下:在不同维度 ",{"type":17,"tag":180,"props":1096,"children":1098},{"className":1097},[183],[1099,1120],{"type":17,"tag":180,"props":1100,"children":1102},{"className":1101},[188],[1103],{"type":17,"tag":191,"props":1104,"children":1105},{"xmlns":193},[1106],{"type":17,"tag":196,"props":1107,"children":1108},{},[1109,1116],{"type":17,"tag":200,"props":1110,"children":1111},{},[1112],{"type":17,"tag":204,"props":1113,"children":1114},{},[1115],{"type":22,"value":208},{"type":17,"tag":210,"props":1117,"children":1118},{"encoding":212},[1119],{"type":22,"value":208},{"type":17,"tag":180,"props":1121,"children":1123},{"className":1122,"ariaHidden":219},[218],[1124],{"type":17,"tag":180,"props":1125,"children":1127},{"className":1126},[224],[1128,1132],{"type":17,"tag":180,"props":1129,"children":1131},{"className":1130,"style":230},[229],[],{"type":17,"tag":180,"props":1133,"children":1135},{"className":1134},[235,236],[1136],{"type":22,"value":208},{"type":22,"value":1138}," 里各取一万个随机向量,看随机一对的夹角落在 ",{"type":17,"tag":180,"props":1140,"children":1142},{"className":1141},[183],[1143,1195],{"type":17,"tag":180,"props":1144,"children":1146},{"className":1145},[188],[1147],{"type":17,"tag":191,"props":1148,"children":1149},{"xmlns":193},[1150],{"type":17,"tag":196,"props":1151,"children":1152},{},[1153,1190],{"type":17,"tag":200,"props":1154,"children":1155},{},[1156,1161,1166,1171,1176,1181,1185],{"type":17,"tag":371,"props":1157,"children":1158},{"stretchy":952},[1159],{"type":22,"value":1160},"[",{"type":17,"tag":389,"props":1162,"children":1163},{},[1164],{"type":22,"value":1165},"80",{"type":17,"tag":204,"props":1167,"children":1168},{"mathvariant":521},[1169],{"type":22,"value":1170},"°",{"type":17,"tag":371,"props":1172,"children":1173},{"separator":219},[1174],{"type":22,"value":1175},",",{"type":17,"tag":389,"props":1177,"children":1178},{},[1179],{"type":22,"value":1180},"100",{"type":17,"tag":204,"props":1182,"children":1183},{"mathvariant":521},[1184],{"type":22,"value":1170},{"type":17,"tag":371,"props":1186,"children":1187},{"stretchy":952},[1188],{"type":22,"value":1189},"]",{"type":17,"tag":210,"props":1191,"children":1192},{"encoding":212},[1193],{"type":22,"value":1194},"[80°,100°]",{"type":17,"tag":180,"props":1196,"children":1198},{"className":1197,"ariaHidden":219},[218],[1199],{"type":17,"tag":180,"props":1200,"children":1202},{"className":1201},[224],[1203,1207,1212,1218,1224,1228,1234],{"type":17,"tag":180,"props":1204,"children":1206},{"className":1205,"style":545},[229],[],{"type":17,"tag":180,"props":1208,"children":1210},{"className":1209},[678],[1211],{"type":22,"value":1160},{"type":17,"tag":180,"props":1213,"children":1215},{"className":1214},[235],[1216],{"type":22,"value":1217},"80°",{"type":17,"tag":180,"props":1219,"children":1222},{"className":1220},[1221],"mpunct",[1223],{"type":22,"value":1175},{"type":17,"tag":180,"props":1225,"children":1227},{"className":1226,"style":488},[487],[],{"type":17,"tag":180,"props":1229,"children":1231},{"className":1230},[235],[1232],{"type":22,"value":1233},"100°",{"type":17,"tag":180,"props":1235,"children":1237},{"className":1236},[788],[1238],{"type":22,"value":1189},{"type":22,"value":1240}," 的比例:",{"type":17,"tag":1242,"props":1243,"children":1247},"pre",{"className":1244,"code":1245,"language":1246,"meta":8,"style":8},"language-python shiki shiki-themes github-light github-dark","import numpy as np\n\nnp.random.seed(0)\nfor d in [2, 3, 10, 100, 1000]:\n    n = 10000\n    x = np.random.randn(n, d)\n    x \u002F= np.linalg.norm(x, axis=1, keepdims=True)\n    i, j = np.random.randint(n, size=100000), np.random.randint(n, size=100000)\n    ang = np.degrees(np.arccos(np.clip((x[i] * x[j]).sum(1), -1, 1)))\n    print(f\"d={d:5d}: 夹角落在 [80°, 100°] 的比例 = {(np.abs(ang - 90) \u003C= 10).mean():.4f}\")\n","python",[1248],{"type":17,"tag":1249,"props":1250,"children":1251},"code",{"__ignoreMap":8},[1252,1262,1271,1279,1288,1297,1306,1315,1324,1333],{"type":17,"tag":180,"props":1253,"children":1256},{"class":1254,"line":1255},"line",1,[1257],{"type":17,"tag":180,"props":1258,"children":1259},{},[1260],{"type":22,"value":1261},"import numpy as np\n",{"type":17,"tag":180,"props":1263,"children":1264},{"class":1254,"line":79},[1265],{"type":17,"tag":180,"props":1266,"children":1268},{"emptyLinePlaceholder":1267},true,[1269],{"type":22,"value":1270},"\n",{"type":17,"tag":180,"props":1272,"children":1273},{"class":1254,"line":80},[1274],{"type":17,"tag":180,"props":1275,"children":1276},{},[1277],{"type":22,"value":1278},"np.random.seed(0)\n",{"type":17,"tag":180,"props":1280,"children":1282},{"class":1254,"line":1281},4,[1283],{"type":17,"tag":180,"props":1284,"children":1285},{},[1286],{"type":22,"value":1287},"for d in [2, 3, 10, 100, 1000]:\n",{"type":17,"tag":180,"props":1289,"children":1291},{"class":1254,"line":1290},5,[1292],{"type":17,"tag":180,"props":1293,"children":1294},{},[1295],{"type":22,"value":1296},"    n = 10000\n",{"type":17,"tag":180,"props":1298,"children":1300},{"class":1254,"line":1299},6,[1301],{"type":17,"tag":180,"props":1302,"children":1303},{},[1304],{"type":22,"value":1305},"    x = np.random.randn(n, d)\n",{"type":17,"tag":180,"props":1307,"children":1309},{"class":1254,"line":1308},7,[1310],{"type":17,"tag":180,"props":1311,"children":1312},{},[1313],{"type":22,"value":1314},"    x \u002F= np.linalg.norm(x, axis=1, keepdims=True)\n",{"type":17,"tag":180,"props":1316,"children":1318},{"class":1254,"line":1317},8,[1319],{"type":17,"tag":180,"props":1320,"children":1321},{},[1322],{"type":22,"value":1323},"    i, j = np.random.randint(n, size=100000), np.random.randint(n, size=100000)\n",{"type":17,"tag":180,"props":1325,"children":1327},{"class":1254,"line":1326},9,[1328],{"type":17,"tag":180,"props":1329,"children":1330},{},[1331],{"type":22,"value":1332},"    ang = np.degrees(np.arccos(np.clip((x[i] * x[j]).sum(1), -1, 1)))\n",{"type":17,"tag":180,"props":1334,"children":1336},{"class":1254,"line":1335},10,[1337],{"type":17,"tag":180,"props":1338,"children":1339},{},[1340],{"type":22,"value":1341},"    print(f\"d={d:5d}: 夹角落在 [80°, 100°] 的比例 = {(np.abs(ang - 90) \u003C= 10).mean():.4f}\")\n",{"type":17,"tag":18,"props":1343,"children":1344},{},[1345],{"type":22,"value":1346},"输出大致是 d=2: 0.11、d=3: 0.17、d=10: 0.39、d=100: 0.92、d=1000: 1.00--维度一上来,几乎每一对都贴着 90°。",{"type":17,"tag":18,"props":1348,"children":1349},{},[1350,1352,1357,1359,1364],{"type":22,"value":1351},"方向挤在一起就不再严格正交,激活一个特征会顺带蹭到别的特征一点--这是叠加付出的",{"type":17,"tag":106,"props":1353,"children":1354},{},[1355],{"type":22,"value":1356},"干扰",{"type":22,"value":1358},"。几乎正交的条件不够,真正让 superposition 成立的是",{"type":17,"tag":106,"props":1360,"children":1361},{},[1362],{"type":22,"value":1363},"稀疏",{"type":22,"value":1365},":同时激活的特征很少,每对方向本来就接近 90°。",{"type":17,"tag":18,"props":1367,"children":1368},{},[1369,1371,1376],{"type":22,"value":1370},"所以 polysemanticity 是模型在有限容量下",{"type":17,"tag":106,"props":1372,"children":1373},{},[1374],{"type":22,"value":1375},"主动选择",{"type":22,"value":1377},"的压缩策略:",{"type":17,"tag":54,"props":1379,"children":1380},{},[1381,1386],{"type":17,"tag":58,"props":1382,"children":1383},{},[1384],{"type":22,"value":1385},"神经元 = 坐标轴方向 → 因为叠加,一个轴上叠了好几个概念 → 多义。",{"type":17,"tag":58,"props":1387,"children":1388},{},[1389],{"type":22,"value":1390},"特征 = 叠加后那个几乎正交的方向 → 才是\"一个概念\"的载体 → 单义。",{"type":17,"tag":18,"props":1392,"children":1393},{},[1394],{"type":22,"value":1395},"另外，LLM其实是对超大规模数据的压缩，superposition可以说是压缩过程中自然的行为；对应的，我们追求可解释性就需要进行解压缩。",{"type":17,"tag":18,"props":1397,"children":1398},{},[1399,1401],{"type":22,"value":1400},"结论很清楚:",{"type":17,"tag":106,"props":1402,"children":1403},{},[1404],{"type":22,"value":1405},"要看懂模型,得先把叠加解开,把坐标轴换成特征方向。",{"type":17,"tag":121,"props":1407,"children":1409},{"id":1408},"二稀疏自编码器把混合的激活解混",[1410],{"type":22,"value":1411},"二、稀疏自编码器:把混合的激活\"解混\"",{"type":17,"tag":18,"props":1413,"children":1414},{},[1415,1417,1511,1513,1667,1669,1748,1750,1792,1794,1956,1958,1963,1965,2089],{"type":22,"value":1416},"上面说模型把概念稀疏叠加进激活,写成式子就是 ",{"type":17,"tag":180,"props":1418,"children":1420},{"className":1419},[183],[1421,1459],{"type":17,"tag":180,"props":1422,"children":1424},{"className":1423},[188],[1425],{"type":17,"tag":191,"props":1426,"children":1427},{"xmlns":193},[1428],{"type":17,"tag":196,"props":1429,"children":1430},{},[1431,1454],{"type":17,"tag":200,"props":1432,"children":1433},{},[1434,1439,1444,1449],{"type":17,"tag":204,"props":1435,"children":1436},{},[1437],{"type":22,"value":1438},"x",{"type":17,"tag":371,"props":1440,"children":1441},{},[1442],{"type":22,"value":1443},"≈",{"type":17,"tag":204,"props":1445,"children":1446},{},[1447],{"type":22,"value":1448},"W",{"type":17,"tag":204,"props":1450,"children":1451},{},[1452],{"type":22,"value":1453},"f",{"type":17,"tag":210,"props":1455,"children":1456},{"encoding":212},[1457],{"type":22,"value":1458},"x \\approx Wf",{"type":17,"tag":180,"props":1460,"children":1462},{"className":1461,"ariaHidden":219},[218],[1463,1490],{"type":17,"tag":180,"props":1464,"children":1466},{"className":1465},[224],[1467,1472,1477,1481,1486],{"type":17,"tag":180,"props":1468,"children":1471},{"className":1469,"style":1470},[229],"height:0.4831em;",[],{"type":17,"tag":180,"props":1473,"children":1475},{"className":1474},[235,236],[1476],{"type":22,"value":1438},{"type":17,"tag":180,"props":1478,"children":1480},{"className":1479,"style":848},[487],[],{"type":17,"tag":180,"props":1482,"children":1484},{"className":1483},[853],[1485],{"type":22,"value":1443},{"type":17,"tag":180,"props":1487,"children":1489},{"className":1488,"style":848},[487],[],{"type":17,"tag":180,"props":1491,"children":1493},{"className":1492},[224],[1494,1499,1505],{"type":17,"tag":180,"props":1495,"children":1498},{"className":1496,"style":1497},[229],"height:0.8889em;vertical-align:-0.1944em;",[],{"type":17,"tag":180,"props":1500,"children":1503},{"className":1501,"style":1502},[235,236],"margin-right:0.1389em;",[1504],{"type":22,"value":1448},{"type":17,"tag":180,"props":1506,"children":1509},{"className":1507,"style":1508},[235,236],"margin-right:0.1076em;",[1510],{"type":22,"value":1453},{"type":22,"value":1512},":字典 ",{"type":17,"tag":180,"props":1514,"children":1516},{"className":1515},[183],[1517,1570],{"type":17,"tag":180,"props":1518,"children":1520},{"className":1519},[188],[1521],{"type":17,"tag":191,"props":1522,"children":1523},{"xmlns":193},[1524],{"type":17,"tag":196,"props":1525,"children":1526},{},[1527,1565],{"type":17,"tag":200,"props":1528,"children":1529},{},[1530,1534,1539],{"type":17,"tag":204,"props":1531,"children":1532},{},[1533],{"type":22,"value":1448},{"type":17,"tag":371,"props":1535,"children":1536},{},[1537],{"type":22,"value":1538},"∈",{"type":17,"tag":359,"props":1540,"children":1541},{},[1542,1548],{"type":17,"tag":204,"props":1543,"children":1545},{"mathvariant":1544},"double-struck",[1546],{"type":22,"value":1547},"R",{"type":17,"tag":200,"props":1549,"children":1550},{},[1551,1555,1560],{"type":17,"tag":204,"props":1552,"children":1553},{},[1554],{"type":22,"value":208},{"type":17,"tag":371,"props":1556,"children":1557},{},[1558],{"type":22,"value":1559},"×",{"type":17,"tag":204,"props":1561,"children":1562},{},[1563],{"type":22,"value":1564},"m",{"type":17,"tag":210,"props":1566,"children":1567},{"encoding":212},[1568],{"type":22,"value":1569},"W \\in \\mathbb{R}^{d\\times m}",{"type":17,"tag":180,"props":1571,"children":1573},{"className":1572,"ariaHidden":219},[218],[1574,1601],{"type":17,"tag":180,"props":1575,"children":1577},{"className":1576},[224],[1578,1583,1588,1592,1597],{"type":17,"tag":180,"props":1579,"children":1582},{"className":1580,"style":1581},[229],"height:0.7224em;vertical-align:-0.0391em;",[],{"type":17,"tag":180,"props":1584,"children":1586},{"className":1585,"style":1502},[235,236],[1587],{"type":22,"value":1448},{"type":17,"tag":180,"props":1589,"children":1591},{"className":1590,"style":848},[487],[],{"type":17,"tag":180,"props":1593,"children":1595},{"className":1594},[853],[1596],{"type":22,"value":1538},{"type":17,"tag":180,"props":1598,"children":1600},{"className":1599,"style":848},[487],[],{"type":17,"tag":180,"props":1602,"children":1604},{"className":1603},[224],[1605,1610],{"type":17,"tag":180,"props":1606,"children":1609},{"className":1607,"style":1608},[229],"height:0.8491em;",[],{"type":17,"tag":180,"props":1611,"children":1613},{"className":1612},[235],[1614,1620],{"type":17,"tag":180,"props":1615,"children":1618},{"className":1616},[235,1617],"mathbb",[1619],{"type":22,"value":1547},{"type":17,"tag":180,"props":1621,"children":1623},{"className":1622},[429],[1624],{"type":17,"tag":180,"props":1625,"children":1627},{"className":1626},[434],[1628],{"type":17,"tag":180,"props":1629,"children":1631},{"className":1630},[439],[1632],{"type":17,"tag":180,"props":1633,"children":1635},{"className":1634,"style":1608},[444],[1636],{"type":17,"tag":180,"props":1637,"children":1639},{"style":1638},"top:-3.063em;margin-right:0.05em;",[1640,1644],{"type":17,"tag":180,"props":1641,"children":1643},{"className":1642,"style":454},[453],[],{"type":17,"tag":180,"props":1645,"children":1647},{"className":1646},[459,460,461,462],[1648],{"type":17,"tag":180,"props":1649,"children":1651},{"className":1650},[235,462],[1652,1657,1662],{"type":17,"tag":180,"props":1653,"children":1655},{"className":1654},[235,236,462],[1656],{"type":22,"value":208},{"type":17,"tag":180,"props":1658,"children":1660},{"className":1659},[476,462],[1661],{"type":22,"value":1559},{"type":17,"tag":180,"props":1663,"children":1665},{"className":1664},[235,236,462],[1666],{"type":22,"value":1564},{"type":22,"value":1668}," 过完备(",{"type":17,"tag":180,"props":1670,"children":1672},{"className":1671},[183],[1673,1704],{"type":17,"tag":180,"props":1674,"children":1676},{"className":1675},[188],[1677],{"type":17,"tag":191,"props":1678,"children":1679},{"xmlns":193},[1680],{"type":17,"tag":196,"props":1681,"children":1682},{},[1683,1699],{"type":17,"tag":200,"props":1684,"children":1685},{},[1686,1690,1695],{"type":17,"tag":204,"props":1687,"children":1688},{},[1689],{"type":22,"value":1564},{"type":17,"tag":371,"props":1691,"children":1692},{},[1693],{"type":22,"value":1694},"≫",{"type":17,"tag":204,"props":1696,"children":1697},{},[1698],{"type":22,"value":208},{"type":17,"tag":210,"props":1700,"children":1701},{"encoding":212},[1702],{"type":22,"value":1703},"m \\gg d",{"type":17,"tag":180,"props":1705,"children":1707},{"className":1706,"ariaHidden":219},[218],[1708,1735],{"type":17,"tag":180,"props":1709,"children":1711},{"className":1710},[224],[1712,1717,1722,1726,1731],{"type":17,"tag":180,"props":1713,"children":1716},{"className":1714,"style":1715},[229],"height:0.5782em;vertical-align:-0.0391em;",[],{"type":17,"tag":180,"props":1718,"children":1720},{"className":1719},[235,236],[1721],{"type":22,"value":1564},{"type":17,"tag":180,"props":1723,"children":1725},{"className":1724,"style":848},[487],[],{"type":17,"tag":180,"props":1727,"children":1729},{"className":1728},[853],[1730],{"type":22,"value":1694},{"type":17,"tag":180,"props":1732,"children":1734},{"className":1733,"style":848},[487],[],{"type":17,"tag":180,"props":1736,"children":1738},{"className":1737},[224],[1739,1743],{"type":17,"tag":180,"props":1740,"children":1742},{"className":1741,"style":230},[229],[],{"type":17,"tag":180,"props":1744,"children":1746},{"className":1745},[235,236],[1747],{"type":22,"value":208},{"type":22,"value":1749},"),编码 ",{"type":17,"tag":180,"props":1751,"children":1753},{"className":1752},[183],[1754,1775],{"type":17,"tag":180,"props":1755,"children":1757},{"className":1756},[188],[1758],{"type":17,"tag":191,"props":1759,"children":1760},{"xmlns":193},[1761],{"type":17,"tag":196,"props":1762,"children":1763},{},[1764,1771],{"type":17,"tag":200,"props":1765,"children":1766},{},[1767],{"type":17,"tag":204,"props":1768,"children":1769},{},[1770],{"type":22,"value":1453},{"type":17,"tag":210,"props":1772,"children":1773},{"encoding":212},[1774],{"type":22,"value":1453},{"type":17,"tag":180,"props":1776,"children":1778},{"className":1777,"ariaHidden":219},[218],[1779],{"type":17,"tag":180,"props":1780,"children":1782},{"className":1781},[224],[1783,1787],{"type":17,"tag":180,"props":1784,"children":1786},{"className":1785,"style":1497},[229],[],{"type":17,"tag":180,"props":1788,"children":1790},{"className":1789,"style":1508},[235,236],[1791],{"type":22,"value":1453},{"type":22,"value":1793}," 稀疏(",{"type":17,"tag":180,"props":1795,"children":1797},{"className":1796},[183],[1798,1847],{"type":17,"tag":180,"props":1799,"children":1801},{"className":1800},[188],[1802],{"type":17,"tag":191,"props":1803,"children":1804},{"xmlns":193},[1805],{"type":17,"tag":196,"props":1806,"children":1807},{},[1808,1842],{"type":17,"tag":200,"props":1809,"children":1810},{},[1811,1816,1820,1833,1838],{"type":17,"tag":204,"props":1812,"children":1813},{"mathvariant":521},[1814],{"type":22,"value":1815},"∥",{"type":17,"tag":204,"props":1817,"children":1818},{},[1819],{"type":22,"value":1453},{"type":17,"tag":1821,"props":1822,"children":1823},"msub",{},[1824,1828],{"type":17,"tag":204,"props":1825,"children":1826},{"mathvariant":521},[1827],{"type":22,"value":1815},{"type":17,"tag":389,"props":1829,"children":1830},{},[1831],{"type":22,"value":1832},"0",{"type":17,"tag":371,"props":1834,"children":1835},{},[1836],{"type":22,"value":1837},"≪",{"type":17,"tag":204,"props":1839,"children":1840},{},[1841],{"type":22,"value":1564},{"type":17,"tag":210,"props":1843,"children":1844},{"encoding":212},[1845],{"type":22,"value":1846},"\\|f\\|_0 \\ll m",{"type":17,"tag":180,"props":1848,"children":1850},{"className":1849,"ariaHidden":219},[218],[1851,1942],{"type":17,"tag":180,"props":1852,"children":1854},{"className":1853},[224],[1855,1859,1864,1869,1929,1933,1938],{"type":17,"tag":180,"props":1856,"children":1858},{"className":1857,"style":545},[229],[],{"type":17,"tag":180,"props":1860,"children":1862},{"className":1861},[235],[1863],{"type":22,"value":1815},{"type":17,"tag":180,"props":1865,"children":1867},{"className":1866,"style":1508},[235,236],[1868],{"type":22,"value":1453},{"type":17,"tag":180,"props":1870,"children":1872},{"className":1871},[235],[1873,1878],{"type":17,"tag":180,"props":1874,"children":1876},{"className":1875},[235],[1877],{"type":22,"value":1815},{"type":17,"tag":180,"props":1879,"children":1881},{"className":1880},[429],[1882],{"type":17,"tag":180,"props":1883,"children":1885},{"className":1884},[434,688],[1886,1917],{"type":17,"tag":180,"props":1887,"children":1889},{"className":1888},[439],[1890,1912],{"type":17,"tag":180,"props":1891,"children":1894},{"className":1892,"style":1893},[444],"height:0.3011em;",[1895],{"type":17,"tag":180,"props":1896,"children":1898},{"style":1897},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[1899,1903],{"type":17,"tag":180,"props":1900,"children":1902},{"className":1901,"style":454},[453],[],{"type":17,"tag":180,"props":1904,"children":1906},{"className":1905},[459,460,461,462],[1907],{"type":17,"tag":180,"props":1908,"children":1910},{"className":1909},[235,462],[1911],{"type":22,"value":1832},{"type":17,"tag":180,"props":1913,"children":1915},{"className":1914},[769],[1916],{"type":22,"value":772},{"type":17,"tag":180,"props":1918,"children":1920},{"className":1919},[439],[1921],{"type":17,"tag":180,"props":1922,"children":1925},{"className":1923,"style":1924},[444],"height:0.15em;",[1926],{"type":17,"tag":180,"props":1927,"children":1928},{},[],{"type":17,"tag":180,"props":1930,"children":1932},{"className":1931,"style":848},[487],[],{"type":17,"tag":180,"props":1934,"children":1936},{"className":1935},[853],[1937],{"type":22,"value":1837},{"type":17,"tag":180,"props":1939,"children":1941},{"className":1940,"style":848},[487],[],{"type":17,"tag":180,"props":1943,"children":1945},{"className":1944},[224],[1946,1951],{"type":17,"tag":180,"props":1947,"children":1950},{"className":1948,"style":1949},[229],"height:0.4306em;",[],{"type":17,"tag":180,"props":1952,"children":1954},{"className":1953},[235,236],[1955],{"type":22,"value":1564},{"type":22,"value":1957},")。这正是经典**字典学习(dictionary learning)**的形式,而解混它就是把这个方程反过来解--顺手的工具是 ",{"type":17,"tag":106,"props":1959,"children":1960},{},[1961],{"type":22,"value":1962},"sparse autoencoder(SAE)",{"type":22,"value":1964},"。对模型某一层(这篇是小型 SoLU transformer 的 MLP 层)的激活向量 ",{"type":17,"tag":180,"props":1966,"children":1968},{"className":1967},[183],[1969,2006],{"type":17,"tag":180,"props":1970,"children":1972},{"className":1971},[188],[1973],{"type":17,"tag":191,"props":1974,"children":1975},{"xmlns":193},[1976],{"type":17,"tag":196,"props":1977,"children":1978},{},[1979,2001],{"type":17,"tag":200,"props":1980,"children":1981},{},[1982,1986,1990],{"type":17,"tag":204,"props":1983,"children":1984},{},[1985],{"type":22,"value":1438},{"type":17,"tag":371,"props":1987,"children":1988},{},[1989],{"type":22,"value":1538},{"type":17,"tag":359,"props":1991,"children":1992},{},[1993,1997],{"type":17,"tag":204,"props":1994,"children":1995},{"mathvariant":1544},[1996],{"type":22,"value":1547},{"type":17,"tag":204,"props":1998,"children":1999},{},[2000],{"type":22,"value":208},{"type":17,"tag":210,"props":2002,"children":2003},{"encoding":212},[2004],{"type":22,"value":2005},"x \\in \\mathbb{R}^{d}",{"type":17,"tag":180,"props":2007,"children":2009},{"className":2008,"ariaHidden":219},[218],[2010,2036],{"type":17,"tag":180,"props":2011,"children":2013},{"className":2012},[224],[2014,2018,2023,2027,2032],{"type":17,"tag":180,"props":2015,"children":2017},{"className":2016,"style":1715},[229],[],{"type":17,"tag":180,"props":2019,"children":2021},{"className":2020},[235,236],[2022],{"type":22,"value":1438},{"type":17,"tag":180,"props":2024,"children":2026},{"className":2025,"style":848},[487],[],{"type":17,"tag":180,"props":2028,"children":2030},{"className":2029},[853],[2031],{"type":22,"value":1538},{"type":17,"tag":180,"props":2033,"children":2035},{"className":2034,"style":848},[487],[],{"type":17,"tag":180,"props":2037,"children":2039},{"className":2038},[224],[2040,2044],{"type":17,"tag":180,"props":2041,"children":2043},{"className":2042,"style":1608},[229],[],{"type":17,"tag":180,"props":2045,"children":2047},{"className":2046},[235],[2048,2053],{"type":17,"tag":180,"props":2049,"children":2051},{"className":2050},[235,1617],[2052],{"type":22,"value":1547},{"type":17,"tag":180,"props":2054,"children":2056},{"className":2055},[429],[2057],{"type":17,"tag":180,"props":2058,"children":2060},{"className":2059},[434],[2061],{"type":17,"tag":180,"props":2062,"children":2064},{"className":2063},[439],[2065],{"type":17,"tag":180,"props":2066,"children":2068},{"className":2067,"style":1608},[444],[2069],{"type":17,"tag":180,"props":2070,"children":2071},{"style":1638},[2072,2076],{"type":17,"tag":180,"props":2073,"children":2075},{"className":2074,"style":454},[453],[],{"type":17,"tag":180,"props":2077,"children":2079},{"className":2078},[459,460,461,462],[2080],{"type":17,"tag":180,"props":2081,"children":2083},{"className":2082},[235,462],[2084],{"type":17,"tag":180,"props":2085,"children":2087},{"className":2086},[235,236,462],[2088],{"type":22,"value":208},{"type":22,"value":2090},", 训练一个 autoencoder:",{"type":17,"tag":18,"props":2092,"children":2093},{},[2094],{"type":17,"tag":180,"props":2095,"children":2097},{"className":2096},[183],[2098,2263],{"type":17,"tag":180,"props":2099,"children":2101},{"className":2100},[188],[2102],{"type":17,"tag":191,"props":2103,"children":2104},{"xmlns":193},[2105],{"type":17,"tag":196,"props":2106,"children":2107},{},[2108,2258],{"type":17,"tag":200,"props":2109,"children":2110},{},[2111,2117,2121,2125,2147,2151,2163,2168,2172,2177,2189,2193,2197,2201,2206,2219,2223,2235,2239,2243,2247],{"type":17,"tag":2112,"props":2113,"children":2114},"mtext",{},[2115],{"type":22,"value":2116},"encode: ",{"type":17,"tag":204,"props":2118,"children":2119},{},[2120],{"type":22,"value":1453},{"type":17,"tag":371,"props":2122,"children":2123},{},[2124],{"type":22,"value":817},{"type":17,"tag":200,"props":2126,"children":2127},{},[2128,2132,2137,2142],{"type":17,"tag":204,"props":2129,"children":2130},{"mathvariant":521},[2131],{"type":22,"value":1547},{"type":17,"tag":204,"props":2133,"children":2134},{"mathvariant":521},[2135],{"type":22,"value":2136},"e",{"type":17,"tag":204,"props":2138,"children":2139},{"mathvariant":521},[2140],{"type":22,"value":2141},"L",{"type":17,"tag":204,"props":2143,"children":2144},{"mathvariant":521},[2145],{"type":22,"value":2146},"U",{"type":17,"tag":371,"props":2148,"children":2149},{"stretchy":952},[2150],{"type":22,"value":955},{"type":17,"tag":1821,"props":2152,"children":2153},{},[2154,2158],{"type":17,"tag":204,"props":2155,"children":2156},{},[2157],{"type":22,"value":1448},{"type":17,"tag":2112,"props":2159,"children":2160},{},[2161],{"type":22,"value":2162},"enc",{"type":17,"tag":2112,"props":2164,"children":2165},{},[2166],{"type":22,"value":2167}," ",{"type":17,"tag":204,"props":2169,"children":2170},{},[2171],{"type":22,"value":1438},{"type":17,"tag":371,"props":2173,"children":2174},{},[2175],{"type":22,"value":2176},"+",{"type":17,"tag":1821,"props":2178,"children":2179},{},[2180,2185],{"type":17,"tag":204,"props":2181,"children":2182},{},[2183],{"type":22,"value":2184},"b",{"type":17,"tag":2112,"props":2186,"children":2187},{},[2188],{"type":22,"value":2162},{"type":17,"tag":371,"props":2190,"children":2191},{"stretchy":952},[2192],{"type":22,"value":979},{"type":17,"tag":371,"props":2194,"children":2195},{"separator":219},[2196],{"type":22,"value":1175},{"type":17,"tag":487,"props":2198,"children":2200},{"width":2199},"2em",[],{"type":17,"tag":2112,"props":2202,"children":2203},{},[2204],{"type":22,"value":2205},"decode: ",{"type":17,"tag":2207,"props":2208,"children":2209},"mover",{"accent":219},[2210,2214],{"type":17,"tag":204,"props":2211,"children":2212},{},[2213],{"type":22,"value":1438},{"type":17,"tag":371,"props":2215,"children":2216},{},[2217],{"type":22,"value":2218},"^",{"type":17,"tag":371,"props":2220,"children":2221},{},[2222],{"type":22,"value":817},{"type":17,"tag":1821,"props":2224,"children":2225},{},[2226,2230],{"type":17,"tag":204,"props":2227,"children":2228},{},[2229],{"type":22,"value":1448},{"type":17,"tag":2112,"props":2231,"children":2232},{},[2233],{"type":22,"value":2234},"dec",{"type":17,"tag":2112,"props":2236,"children":2237},{},[2238],{"type":22,"value":2167},{"type":17,"tag":204,"props":2240,"children":2241},{},[2242],{"type":22,"value":1453},{"type":17,"tag":371,"props":2244,"children":2245},{},[2246],{"type":22,"value":2176},{"type":17,"tag":1821,"props":2248,"children":2249},{},[2250,2254],{"type":17,"tag":204,"props":2251,"children":2252},{},[2253],{"type":22,"value":2184},{"type":17,"tag":2112,"props":2255,"children":2256},{},[2257],{"type":22,"value":2234},{"type":17,"tag":210,"props":2259,"children":2260},{"encoding":212},[2261],{"type":22,"value":2262},"\\text{encode: } f = \\mathrm{ReLU}(W_{\\text{enc}}\\, x + b_{\\text{enc}}), \\qquad \\text{decode: } \\hat{x} = W_{\\text{dec}}\\, f + b_{\\text{dec}}",{"type":17,"tag":180,"props":2264,"children":2266},{"className":2265,"ariaHidden":219},[218],[2267,2302,2416,2578,2674],{"type":17,"tag":180,"props":2268,"children":2270},{"className":2269},[224],[2271,2275,2284,2289,2293,2298],{"type":17,"tag":180,"props":2272,"children":2274},{"className":2273,"style":1497},[229],[],{"type":17,"tag":180,"props":2276,"children":2278},{"className":2277},[235,22],[2279],{"type":17,"tag":180,"props":2280,"children":2282},{"className":2281},[235],[2283],{"type":22,"value":2116},{"type":17,"tag":180,"props":2285,"children":2287},{"className":2286,"style":1508},[235,236],[2288],{"type":22,"value":1453},{"type":17,"tag":180,"props":2290,"children":2292},{"className":2291,"style":848},[487],[],{"type":17,"tag":180,"props":2294,"children":2296},{"className":2295},[853],[2297],{"type":22,"value":817},{"type":17,"tag":180,"props":2299,"children":2301},{"className":2300,"style":848},[487],[],{"type":17,"tag":180,"props":2303,"children":2305},{"className":2304},[224],[2306,2310,2321,2326,2393,2397,2402,2407,2412],{"type":17,"tag":180,"props":2307,"children":2309},{"className":2308,"style":545},[229],[],{"type":17,"tag":180,"props":2311,"children":2313},{"className":2312},[235],[2314],{"type":17,"tag":180,"props":2315,"children":2318},{"className":2316},[235,2317],"mathrm",[2319],{"type":22,"value":2320},"ReLU",{"type":17,"tag":180,"props":2322,"children":2324},{"className":2323},[678],[2325],{"type":22,"value":955},{"type":17,"tag":180,"props":2327,"children":2329},{"className":2328},[235],[2330,2335],{"type":17,"tag":180,"props":2331,"children":2333},{"className":2332,"style":1502},[235,236],[2334],{"type":22,"value":1448},{"type":17,"tag":180,"props":2336,"children":2338},{"className":2337},[429],[2339],{"type":17,"tag":180,"props":2340,"children":2342},{"className":2341},[434,688],[2343,2382],{"type":17,"tag":180,"props":2344,"children":2346},{"className":2345},[439],[2347,2377],{"type":17,"tag":180,"props":2348,"children":2351},{"className":2349,"style":2350},[444],"height:0.1514em;",[2352],{"type":17,"tag":180,"props":2353,"children":2355},{"style":2354},"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;",[2356,2360],{"type":17,"tag":180,"props":2357,"children":2359},{"className":2358,"style":454},[453],[],{"type":17,"tag":180,"props":2361,"children":2363},{"className":2362},[459,460,461,462],[2364],{"type":17,"tag":180,"props":2365,"children":2367},{"className":2366},[235,462],[2368],{"type":17,"tag":180,"props":2369,"children":2371},{"className":2370},[235,22,462],[2372],{"type":17,"tag":180,"props":2373,"children":2375},{"className":2374},[235,462],[2376],{"type":22,"value":2162},{"type":17,"tag":180,"props":2378,"children":2380},{"className":2379},[769],[2381],{"type":22,"value":772},{"type":17,"tag":180,"props":2383,"children":2385},{"className":2384},[439],[2386],{"type":17,"tag":180,"props":2387,"children":2389},{"className":2388,"style":1924},[444],[2390],{"type":17,"tag":180,"props":2391,"children":2392},{},[],{"type":17,"tag":180,"props":2394,"children":2396},{"className":2395,"style":488},[487],[],{"type":17,"tag":180,"props":2398,"children":2400},{"className":2399},[235,236],[2401],{"type":22,"value":1438},{"type":17,"tag":180,"props":2403,"children":2406},{"className":2404,"style":2405},[487],"margin-right:0.2222em;",[],{"type":17,"tag":180,"props":2408,"children":2410},{"className":2409},[476],[2411],{"type":22,"value":2176},{"type":17,"tag":180,"props":2413,"children":2415},{"className":2414,"style":2405},[487],[],{"type":17,"tag":180,"props":2417,"children":2419},{"className":2418},[224],[2420,2424,2489,2494,2499,2504,2508,2517,2565,2569,2574],{"type":17,"tag":180,"props":2421,"children":2423},{"className":2422,"style":545},[229],[],{"type":17,"tag":180,"props":2425,"children":2427},{"className":2426},[235],[2428,2433],{"type":17,"tag":180,"props":2429,"children":2431},{"className":2430},[235,236],[2432],{"type":22,"value":2184},{"type":17,"tag":180,"props":2434,"children":2436},{"className":2435},[429],[2437],{"type":17,"tag":180,"props":2438,"children":2440},{"className":2439},[434,688],[2441,2478],{"type":17,"tag":180,"props":2442,"children":2444},{"className":2443},[439],[2445,2473],{"type":17,"tag":180,"props":2446,"children":2448},{"className":2447,"style":2350},[444],[2449],{"type":17,"tag":180,"props":2450,"children":2451},{"style":1897},[2452,2456],{"type":17,"tag":180,"props":2453,"children":2455},{"className":2454,"style":454},[453],[],{"type":17,"tag":180,"props":2457,"children":2459},{"className":2458},[459,460,461,462],[2460],{"type":17,"tag":180,"props":2461,"children":2463},{"className":2462},[235,462],[2464],{"type":17,"tag":180,"props":2465,"children":2467},{"className":2466},[235,22,462],[2468],{"type":17,"tag":180,"props":2469,"children":2471},{"className":2470},[235,462],[2472],{"type":22,"value":2162},{"type":17,"tag":180,"props":2474,"children":2476},{"className":2475},[769],[2477],{"type":22,"value":772},{"type":17,"tag":180,"props":2479,"children":2481},{"className":2480},[439],[2482],{"type":17,"tag":180,"props":2483,"children":2485},{"className":2484,"style":1924},[444],[2486],{"type":17,"tag":180,"props":2487,"children":2488},{},[],{"type":17,"tag":180,"props":2490,"children":2492},{"className":2491},[788],[2493],{"type":22,"value":979},{"type":17,"tag":180,"props":2495,"children":2497},{"className":2496},[1221],[2498],{"type":22,"value":1175},{"type":17,"tag":180,"props":2500,"children":2503},{"className":2501,"style":2502},[487],"margin-right:2em;",[],{"type":17,"tag":180,"props":2505,"children":2507},{"className":2506,"style":488},[487],[],{"type":17,"tag":180,"props":2509,"children":2511},{"className":2510},[235,22],[2512],{"type":17,"tag":180,"props":2513,"children":2515},{"className":2514},[235],[2516],{"type":22,"value":2205},{"type":17,"tag":180,"props":2518,"children":2521},{"className":2519},[235,2520],"accent",[2522],{"type":17,"tag":180,"props":2523,"children":2525},{"className":2524},[434],[2526],{"type":17,"tag":180,"props":2527,"children":2529},{"className":2528},[439],[2530],{"type":17,"tag":180,"props":2531,"children":2533},{"className":2532,"style":230},[444],[2534,2547],{"type":17,"tag":180,"props":2535,"children":2537},{"style":2536},"top:-3em;",[2538,2542],{"type":17,"tag":180,"props":2539,"children":2541},{"className":2540,"style":706},[453],[],{"type":17,"tag":180,"props":2543,"children":2545},{"className":2544},[235,236],[2546],{"type":22,"value":1438},{"type":17,"tag":180,"props":2548,"children":2549},{"style":2536},[2550,2554],{"type":17,"tag":180,"props":2551,"children":2553},{"className":2552,"style":706},[453],[],{"type":17,"tag":180,"props":2555,"children":2559},{"className":2556,"style":2558},[2557],"accent-body","left:-0.2222em;",[2560],{"type":17,"tag":180,"props":2561,"children":2563},{"className":2562},[235],[2564],{"type":22,"value":2218},{"type":17,"tag":180,"props":2566,"children":2568},{"className":2567,"style":848},[487],[],{"type":17,"tag":180,"props":2570,"children":2572},{"className":2571},[853],[2573],{"type":22,"value":817},{"type":17,"tag":180,"props":2575,"children":2577},{"className":2576,"style":848},[487],[],{"type":17,"tag":180,"props":2579,"children":2581},{"className":2580},[224],[2582,2586,2652,2656,2661,2665,2670],{"type":17,"tag":180,"props":2583,"children":2585},{"className":2584,"style":1497},[229],[],{"type":17,"tag":180,"props":2587,"children":2589},{"className":2588},[235],[2590,2595],{"type":17,"tag":180,"props":2591,"children":2593},{"className":2592,"style":1502},[235,236],[2594],{"type":22,"value":1448},{"type":17,"tag":180,"props":2596,"children":2598},{"className":2597},[429],[2599],{"type":17,"tag":180,"props":2600,"children":2602},{"className":2601},[434,688],[2603,2641],{"type":17,"tag":180,"props":2604,"children":2606},{"className":2605},[439],[2607,2636],{"type":17,"tag":180,"props":2608,"children":2611},{"className":2609,"style":2610},[444],"height:0.3361em;",[2612],{"type":17,"tag":180,"props":2613,"children":2614},{"style":2354},[2615,2619],{"type":17,"tag":180,"props":2616,"children":2618},{"className":2617,"style":454},[453],[],{"type":17,"tag":180,"props":2620,"children":2622},{"className":2621},[459,460,461,462],[2623],{"type":17,"tag":180,"props":2624,"children":2626},{"className":2625},[235,462],[2627],{"type":17,"tag":180,"props":2628,"children":2630},{"className":2629},[235,22,462],[2631],{"type":17,"tag":180,"props":2632,"children":2634},{"className":2633},[235,462],[2635],{"type":22,"value":2234},{"type":17,"tag":180,"props":2637,"children":2639},{"className":2638},[769],[2640],{"type":22,"value":772},{"type":17,"tag":180,"props":2642,"children":2644},{"className":2643},[439],[2645],{"type":17,"tag":180,"props":2646,"children":2648},{"className":2647,"style":1924},[444],[2649],{"type":17,"tag":180,"props":2650,"children":2651},{},[],{"type":17,"tag":180,"props":2653,"children":2655},{"className":2654,"style":488},[487],[],{"type":17,"tag":180,"props":2657,"children":2659},{"className":2658,"style":1508},[235,236],[2660],{"type":22,"value":1453},{"type":17,"tag":180,"props":2662,"children":2664},{"className":2663,"style":2405},[487],[],{"type":17,"tag":180,"props":2666,"children":2668},{"className":2667},[476],[2669],{"type":22,"value":2176},{"type":17,"tag":180,"props":2671,"children":2673},{"className":2672,"style":2405},[487],[],{"type":17,"tag":180,"props":2675,"children":2677},{"className":2676},[224],[2678,2683],{"type":17,"tag":180,"props":2679,"children":2682},{"className":2680,"style":2681},[229],"height:0.8444em;vertical-align:-0.15em;",[],{"type":17,"tag":180,"props":2684,"children":2686},{"className":2685},[235],[2687,2692],{"type":17,"tag":180,"props":2688,"children":2690},{"className":2689},[235,236],[2691],{"type":22,"value":2184},{"type":17,"tag":180,"props":2693,"children":2695},{"className":2694},[429],[2696],{"type":17,"tag":180,"props":2697,"children":2699},{"className":2698},[434,688],[2700,2737],{"type":17,"tag":180,"props":2701,"children":2703},{"className":2702},[439],[2704,2732],{"type":17,"tag":180,"props":2705,"children":2707},{"className":2706,"style":2610},[444],[2708],{"type":17,"tag":180,"props":2709,"children":2710},{"style":1897},[2711,2715],{"type":17,"tag":180,"props":2712,"children":2714},{"className":2713,"style":454},[453],[],{"type":17,"tag":180,"props":2716,"children":2718},{"className":2717},[459,460,461,462],[2719],{"type":17,"tag":180,"props":2720,"children":2722},{"className":2721},[235,462],[2723],{"type":17,"tag":180,"props":2724,"children":2726},{"className":2725},[235,22,462],[2727],{"type":17,"tag":180,"props":2728,"children":2730},{"className":2729},[235,462],[2731],{"type":22,"value":2234},{"type":17,"tag":180,"props":2733,"children":2735},{"className":2734},[769],[2736],{"type":22,"value":772},{"type":17,"tag":180,"props":2738,"children":2740},{"className":2739},[439],[2741],{"type":17,"tag":180,"props":2742,"children":2744},{"className":2743,"style":1924},[444],[2745],{"type":17,"tag":180,"props":2746,"children":2747},{},[],{"type":17,"tag":18,"props":2749,"children":2750},{},[2751,2753,2758],{"type":22,"value":2752},"目标函数是",{"type":17,"tag":106,"props":2754,"children":2755},{},[2756],{"type":22,"value":2757},"重建误差 + 稀疏惩罚",{"type":22,"value":2759},":",{"type":17,"tag":18,"props":2761,"children":2762},{},[2763],{"type":17,"tag":180,"props":2764,"children":2766},{"className":2765},[183],[2767,2898],{"type":17,"tag":180,"props":2768,"children":2770},{"className":2769},[188],[2771],{"type":17,"tag":191,"props":2772,"children":2773},{"xmlns":193},[2774],{"type":17,"tag":196,"props":2775,"children":2776},{},[2777,2893],{"type":17,"tag":200,"props":2778,"children":2779},{},[2780,2785,2789,2848,2852,2857],{"type":17,"tag":204,"props":2781,"children":2783},{"mathvariant":2782},"script",[2784],{"type":22,"value":2141},{"type":17,"tag":371,"props":2786,"children":2787},{},[2788],{"type":22,"value":817},{"type":17,"tag":2790,"props":2791,"children":2792},"munder",{},[2793,2843],{"type":17,"tag":2790,"props":2794,"children":2795},{},[2796,2838],{"type":17,"tag":200,"props":2797,"children":2798},{},[2799,2803,2807,2811,2822],{"type":17,"tag":204,"props":2800,"children":2801},{"mathvariant":521},[2802],{"type":22,"value":1815},{"type":17,"tag":204,"props":2804,"children":2805},{},[2806],{"type":22,"value":1438},{"type":17,"tag":371,"props":2808,"children":2809},{},[2810],{"type":22,"value":387},{"type":17,"tag":2207,"props":2812,"children":2813},{"accent":219},[2814,2818],{"type":17,"tag":204,"props":2815,"children":2816},{},[2817],{"type":22,"value":1438},{"type":17,"tag":371,"props":2819,"children":2820},{},[2821],{"type":22,"value":2218},{"type":17,"tag":2823,"props":2824,"children":2825},"msubsup",{},[2826,2830,2834],{"type":17,"tag":204,"props":2827,"children":2828},{"mathvariant":521},[2829],{"type":22,"value":1815},{"type":17,"tag":389,"props":2831,"children":2832},{},[2833],{"type":22,"value":393},{"type":17,"tag":389,"props":2835,"children":2836},{},[2837],{"type":22,"value":393},{"type":17,"tag":371,"props":2839,"children":2840},{"stretchy":219},[2841],{"type":22,"value":2842},"⏟",{"type":17,"tag":2112,"props":2844,"children":2845},{},[2846],{"type":22,"value":2847},"重建",{"type":17,"tag":371,"props":2849,"children":2850},{},[2851],{"type":22,"value":2176},{"type":17,"tag":204,"props":2853,"children":2854},{},[2855],{"type":22,"value":2856},"λ",{"type":17,"tag":2790,"props":2858,"children":2859},{},[2860,2889],{"type":17,"tag":2790,"props":2861,"children":2862},{},[2863,2885],{"type":17,"tag":200,"props":2864,"children":2865},{},[2866,2870,2874],{"type":17,"tag":204,"props":2867,"children":2868},{"mathvariant":521},[2869],{"type":22,"value":1815},{"type":17,"tag":204,"props":2871,"children":2872},{},[2873],{"type":22,"value":1453},{"type":17,"tag":1821,"props":2875,"children":2876},{},[2877,2881],{"type":17,"tag":204,"props":2878,"children":2879},{"mathvariant":521},[2880],{"type":22,"value":1815},{"type":17,"tag":389,"props":2882,"children":2883},{},[2884],{"type":22,"value":637},{"type":17,"tag":371,"props":2886,"children":2887},{"stretchy":219},[2888],{"type":22,"value":2842},{"type":17,"tag":2112,"props":2890,"children":2891},{},[2892],{"type":22,"value":1363},{"type":17,"tag":210,"props":2894,"children":2895},{"encoding":212},[2896],{"type":22,"value":2897},"\\mathcal{L} = \\underbrace{\\|x - \\hat{x}\\|_2^2}_{\\text{重建}} + \\lambda \\underbrace{\\|f\\|_1}_{\\text{稀疏}}",{"type":17,"tag":180,"props":2899,"children":2901},{"className":2900,"ariaHidden":219},[218],[2902,2929,3268],{"type":17,"tag":180,"props":2903,"children":2905},{"className":2904},[224],[2906,2910,2916,2920,2925],{"type":17,"tag":180,"props":2907,"children":2909},{"className":2908,"style":918},[229],[],{"type":17,"tag":180,"props":2911,"children":2914},{"className":2912},[235,2913],"mathcal",[2915],{"type":22,"value":2141},{"type":17,"tag":180,"props":2917,"children":2919},{"className":2918,"style":848},[487],[],{"type":17,"tag":180,"props":2921,"children":2923},{"className":2922},[853],[2924],{"type":22,"value":817},{"type":17,"tag":180,"props":2926,"children":2928},{"className":2927,"style":848},[487],[],{"type":17,"tag":180,"props":2930,"children":2932},{"className":2931},[224],[2933,2938,3255,3259,3264],{"type":17,"tag":180,"props":2934,"children":2937},{"className":2935,"style":2936},[229],"height:2.4404em;vertical-align:-1.5763em;",[],{"type":17,"tag":180,"props":2939,"children":2942},{"className":2940},[2941,2790],"minner",[2943],{"type":17,"tag":180,"props":2944,"children":2946},{"className":2945},[434,688],[2947,3243],{"type":17,"tag":180,"props":2948,"children":2950},{"className":2949},[439],[2951,3238],{"type":17,"tag":180,"props":2952,"children":2955},{"className":2953,"style":2954},[444],"height:0.8641em;",[2956,2982],{"type":17,"tag":180,"props":2957,"children":2959},{"style":2958},"top:-1.4237em;",[2960,2964],{"type":17,"tag":180,"props":2961,"children":2963},{"className":2962,"style":706},[453],[],{"type":17,"tag":180,"props":2965,"children":2967},{"className":2966},[459,460,461,462],[2968],{"type":17,"tag":180,"props":2969,"children":2971},{"className":2970},[235,462],[2972],{"type":17,"tag":180,"props":2973,"children":2975},{"className":2974},[235,22,462],[2976],{"type":17,"tag":180,"props":2977,"children":2980},{"className":2978},[235,2979,462],"cjk_fallback",[2981],{"type":22,"value":2847},{"type":17,"tag":180,"props":2983,"children":2984},{"style":2536},[2985,2989],{"type":17,"tag":180,"props":2986,"children":2988},{"className":2987,"style":706},[453],[],{"type":17,"tag":180,"props":2990,"children":2992},{"className":2991},[2941,2790],[2993],{"type":17,"tag":180,"props":2994,"children":2996},{"className":2995},[434,688],[2997,3226],{"type":17,"tag":180,"props":2998,"children":3000},{"className":2999},[439],[3001,3221],{"type":17,"tag":180,"props":3002,"children":3004},{"className":3003,"style":2954},[444],[3005,3067],{"type":17,"tag":180,"props":3006,"children":3010},{"className":3007,"style":3009},[3008],"svg-align","top:-2.102em;",[3011,3015],{"type":17,"tag":180,"props":3012,"children":3014},{"className":3013,"style":706},[453],[],{"type":17,"tag":180,"props":3016,"children":3020},{"className":3017,"style":3019},[3018],"stretchy","height:0.548em;min-width:1.6em;",[3021,3041,3054],{"type":17,"tag":180,"props":3022,"children":3026},{"className":3023,"style":3025},[3024],"brace-left","height:0.548em;",[3027],{"type":17,"tag":3028,"props":3029,"children":3035},"svg",{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3034},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","0.548em","0 0 400000 548","xMinYMin slice",[3036],{"type":17,"tag":3037,"props":3038,"children":3040},"path",{"d":3039},"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",[],{"type":17,"tag":180,"props":3042,"children":3045},{"className":3043,"style":3025},[3044],"brace-center",[3046],{"type":17,"tag":3028,"props":3047,"children":3049},{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3048},"xMidYMin slice",[3050],{"type":17,"tag":3037,"props":3051,"children":3053},{"d":3052},"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",[],{"type":17,"tag":180,"props":3055,"children":3058},{"className":3056,"style":3025},[3057],"brace-right",[3059],{"type":17,"tag":3028,"props":3060,"children":3062},{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3061},"xMaxYMin slice",[3063],{"type":17,"tag":3037,"props":3064,"children":3066},{"d":3065},"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",[],{"type":17,"tag":180,"props":3068,"children":3069},{"style":2536},[3070,3074],{"type":17,"tag":180,"props":3071,"children":3073},{"className":3072,"style":706},[453],[],{"type":17,"tag":180,"props":3075,"children":3077},{"className":3076},[235],[3078,3083,3088,3092,3097,3101,3145],{"type":17,"tag":180,"props":3079,"children":3081},{"className":3080},[235],[3082],{"type":22,"value":1815},{"type":17,"tag":180,"props":3084,"children":3086},{"className":3085},[235,236],[3087],{"type":22,"value":1438},{"type":17,"tag":180,"props":3089,"children":3091},{"className":3090,"style":2405},[487],[],{"type":17,"tag":180,"props":3093,"children":3095},{"className":3094},[476],[3096],{"type":22,"value":387},{"type":17,"tag":180,"props":3098,"children":3100},{"className":3099,"style":2405},[487],[],{"type":17,"tag":180,"props":3102,"children":3104},{"className":3103},[235,2520],[3105],{"type":17,"tag":180,"props":3106,"children":3108},{"className":3107},[434],[3109],{"type":17,"tag":180,"props":3110,"children":3112},{"className":3111},[439],[3113],{"type":17,"tag":180,"props":3114,"children":3116},{"className":3115,"style":230},[444],[3117,3129],{"type":17,"tag":180,"props":3118,"children":3119},{"style":2536},[3120,3124],{"type":17,"tag":180,"props":3121,"children":3123},{"className":3122,"style":706},[453],[],{"type":17,"tag":180,"props":3125,"children":3127},{"className":3126},[235,236],[3128],{"type":22,"value":1438},{"type":17,"tag":180,"props":3130,"children":3131},{"style":2536},[3132,3136],{"type":17,"tag":180,"props":3133,"children":3135},{"className":3134,"style":706},[453],[],{"type":17,"tag":180,"props":3137,"children":3139},{"className":3138,"style":2558},[2557],[3140],{"type":17,"tag":180,"props":3141,"children":3143},{"className":3142},[235],[3144],{"type":22,"value":2218},{"type":17,"tag":180,"props":3146,"children":3148},{"className":3147},[235],[3149,3154],{"type":17,"tag":180,"props":3150,"children":3152},{"className":3151},[235],[3153],{"type":22,"value":1815},{"type":17,"tag":180,"props":3155,"children":3157},{"className":3156},[429],[3158],{"type":17,"tag":180,"props":3159,"children":3161},{"className":3160},[434,688],[3162,3209],{"type":17,"tag":180,"props":3163,"children":3165},{"className":3164},[439],[3166,3204],{"type":17,"tag":180,"props":3167,"children":3169},{"className":3168,"style":2954},[444],[3170,3187],{"type":17,"tag":180,"props":3171,"children":3173},{"style":3172},"top:-2.453em;margin-left:0em;margin-right:0.05em;",[3174,3178],{"type":17,"tag":180,"props":3175,"children":3177},{"className":3176,"style":454},[453],[],{"type":17,"tag":180,"props":3179,"children":3181},{"className":3180},[459,460,461,462],[3182],{"type":17,"tag":180,"props":3183,"children":3185},{"className":3184},[235,462],[3186],{"type":22,"value":393},{"type":17,"tag":180,"props":3188,"children":3190},{"style":3189},"top:-3.113em;margin-right:0.05em;",[3191,3195],{"type":17,"tag":180,"props":3192,"children":3194},{"className":3193,"style":454},[453],[],{"type":17,"tag":180,"props":3196,"children":3198},{"className":3197},[459,460,461,462],[3199],{"type":17,"tag":180,"props":3200,"children":3202},{"className":3201},[235,462],[3203],{"type":22,"value":393},{"type":17,"tag":180,"props":3205,"children":3207},{"className":3206},[769],[3208],{"type":22,"value":772},{"type":17,"tag":180,"props":3210,"children":3212},{"className":3211},[439],[3213],{"type":17,"tag":180,"props":3214,"children":3217},{"className":3215,"style":3216},[444],"height:0.247em;",[3218],{"type":17,"tag":180,"props":3219,"children":3220},{},[],{"type":17,"tag":180,"props":3222,"children":3224},{"className":3223},[769],[3225],{"type":22,"value":772},{"type":17,"tag":180,"props":3227,"children":3229},{"className":3228},[439],[3230],{"type":17,"tag":180,"props":3231,"children":3234},{"className":3232,"style":3233},[444],"height:0.898em;",[3235],{"type":17,"tag":180,"props":3236,"children":3237},{},[],{"type":17,"tag":180,"props":3239,"children":3241},{"className":3240},[769],[3242],{"type":22,"value":772},{"type":17,"tag":180,"props":3244,"children":3246},{"className":3245},[439],[3247],{"type":17,"tag":180,"props":3248,"children":3251},{"className":3249,"style":3250},[444],"height:1.5763em;",[3252],{"type":17,"tag":180,"props":3253,"children":3254},{},[],{"type":17,"tag":180,"props":3256,"children":3258},{"className":3257,"style":2405},[487],[],{"type":17,"tag":180,"props":3260,"children":3262},{"className":3261},[476],[3263],{"type":22,"value":2176},{"type":17,"tag":180,"props":3265,"children":3267},{"className":3266,"style":2405},[487],[],{"type":17,"tag":180,"props":3269,"children":3271},{"className":3270},[224],[3272,3277,3282,3286],{"type":17,"tag":180,"props":3273,"children":3276},{"className":3274,"style":3275},[229],"height:2.3263em;vertical-align:-1.5763em;",[],{"type":17,"tag":180,"props":3278,"children":3280},{"className":3279},[235,236],[3281],{"type":22,"value":2856},{"type":17,"tag":180,"props":3283,"children":3285},{"className":3284,"style":488},[487],[],{"type":17,"tag":180,"props":3287,"children":3289},{"className":3288},[2941,2790],[3290],{"type":17,"tag":180,"props":3291,"children":3293},{"className":3292},[434,688],[3294,3491],{"type":17,"tag":180,"props":3295,"children":3297},{"className":3296},[439],[3298,3486],{"type":17,"tag":180,"props":3299,"children":3302},{"className":3300,"style":3301},[444],"height:0.75em;",[3303,3327],{"type":17,"tag":180,"props":3304,"children":3305},{"style":2958},[3306,3310],{"type":17,"tag":180,"props":3307,"children":3309},{"className":3308,"style":706},[453],[],{"type":17,"tag":180,"props":3311,"children":3313},{"className":3312},[459,460,461,462],[3314],{"type":17,"tag":180,"props":3315,"children":3317},{"className":3316},[235,462],[3318],{"type":17,"tag":180,"props":3319,"children":3321},{"className":3320},[235,22,462],[3322],{"type":17,"tag":180,"props":3323,"children":3325},{"className":3324},[235,2979,462],[3326],{"type":22,"value":1363},{"type":17,"tag":180,"props":3328,"children":3329},{"style":2536},[3330,3334],{"type":17,"tag":180,"props":3331,"children":3333},{"className":3332,"style":706},[453],[],{"type":17,"tag":180,"props":3335,"children":3337},{"className":3336},[2941,2790],[3338],{"type":17,"tag":180,"props":3339,"children":3341},{"className":3340},[434,688],[3342,3475],{"type":17,"tag":180,"props":3343,"children":3345},{"className":3344},[439],[3346,3470],{"type":17,"tag":180,"props":3347,"children":3349},{"className":3348,"style":3301},[444],[3350,3392],{"type":17,"tag":180,"props":3351,"children":3353},{"className":3352,"style":3009},[3008],[3354,3358],{"type":17,"tag":180,"props":3355,"children":3357},{"className":3356,"style":706},[453],[],{"type":17,"tag":180,"props":3359,"children":3361},{"className":3360,"style":3019},[3018],[3362,3372,3382],{"type":17,"tag":180,"props":3363,"children":3365},{"className":3364,"style":3025},[3024],[3366],{"type":17,"tag":3028,"props":3367,"children":3368},{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3034},[3369],{"type":17,"tag":3037,"props":3370,"children":3371},{"d":3039},[],{"type":17,"tag":180,"props":3373,"children":3375},{"className":3374,"style":3025},[3044],[3376],{"type":17,"tag":3028,"props":3377,"children":3378},{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3048},[3379],{"type":17,"tag":3037,"props":3380,"children":3381},{"d":3052},[],{"type":17,"tag":180,"props":3383,"children":3385},{"className":3384,"style":3025},[3057],[3386],{"type":17,"tag":3028,"props":3387,"children":3388},{"xmlns":3030,"width":3031,"height":3032,"viewBox":3033,"preserveAspectRatio":3061},[3389],{"type":17,"tag":3037,"props":3390,"children":3391},{"d":3065},[],{"type":17,"tag":180,"props":3393,"children":3394},{"style":2536},[3395,3399],{"type":17,"tag":180,"props":3396,"children":3398},{"className":3397,"style":706},[453],[],{"type":17,"tag":180,"props":3400,"children":3402},{"className":3401},[235],[3403,3408,3413],{"type":17,"tag":180,"props":3404,"children":3406},{"className":3405},[235],[3407],{"type":22,"value":1815},{"type":17,"tag":180,"props":3409,"children":3411},{"className":3410,"style":1508},[235,236],[3412],{"type":22,"value":1453},{"type":17,"tag":180,"props":3414,"children":3416},{"className":3415},[235],[3417,3422],{"type":17,"tag":180,"props":3418,"children":3420},{"className":3419},[235],[3421],{"type":22,"value":1815},{"type":17,"tag":180,"props":3423,"children":3425},{"className":3424},[429],[3426],{"type":17,"tag":180,"props":3427,"children":3429},{"className":3428},[434,688],[3430,3459],{"type":17,"tag":180,"props":3431,"children":3433},{"className":3432},[439],[3434,3454],{"type":17,"tag":180,"props":3435,"children":3437},{"className":3436,"style":1893},[444],[3438],{"type":17,"tag":180,"props":3439,"children":3440},{"style":1897},[3441,3445],{"type":17,"tag":180,"props":3442,"children":3444},{"className":3443,"style":454},[453],[],{"type":17,"tag":180,"props":3446,"children":3448},{"className":3447},[459,460,461,462],[3449],{"type":17,"tag":180,"props":3450,"children":3452},{"className":3451},[235,462],[3453],{"type":22,"value":637},{"type":17,"tag":180,"props":3455,"children":3457},{"className":3456},[769],[3458],{"type":22,"value":772},{"type":17,"tag":180,"props":3460,"children":3462},{"className":3461},[439],[3463],{"type":17,"tag":180,"props":3464,"children":3466},{"className":3465,"style":1924},[444],[3467],{"type":17,"tag":180,"props":3468,"children":3469},{},[],{"type":17,"tag":180,"props":3471,"children":3473},{"className":3472},[769],[3474],{"type":22,"value":772},{"type":17,"tag":180,"props":3476,"children":3478},{"className":3477},[439],[3479],{"type":17,"tag":180,"props":3480,"children":3482},{"className":3481,"style":3233},[444],[3483],{"type":17,"tag":180,"props":3484,"children":3485},{},[],{"type":17,"tag":180,"props":3487,"children":3489},{"className":3488},[769],[3490],{"type":22,"value":772},{"type":17,"tag":180,"props":3492,"children":3494},{"className":3493},[439],[3495],{"type":17,"tag":180,"props":3496,"children":3498},{"className":3497,"style":3250},[444],[3499],{"type":17,"tag":180,"props":3500,"children":3501},{},[],{"type":17,"tag":18,"props":3503,"children":3504},{},[3505],{"type":22,"value":3506},"几个关键点:",{"type":17,"tag":3508,"props":3509,"children":3510},"ol",{},[3511,3645,3863],{"type":17,"tag":58,"props":3512,"children":3513},{},[3514,3519,3521,3599,3601,3643],{"type":17,"tag":106,"props":3515,"children":3516},{},[3517],{"type":22,"value":3518},"字典比原维度大很多。",{"type":22,"value":3520}," MLP 宽度 ",{"type":17,"tag":180,"props":3522,"children":3524},{"className":3523},[183],[3525,3556],{"type":17,"tag":180,"props":3526,"children":3528},{"className":3527},[188],[3529],{"type":17,"tag":191,"props":3530,"children":3531},{"xmlns":193},[3532],{"type":17,"tag":196,"props":3533,"children":3534},{},[3535,3551],{"type":17,"tag":200,"props":3536,"children":3537},{},[3538,3542,3546],{"type":17,"tag":204,"props":3539,"children":3540},{},[3541],{"type":22,"value":208},{"type":17,"tag":371,"props":3543,"children":3544},{},[3545],{"type":22,"value":1443},{"type":17,"tag":389,"props":3547,"children":3548},{},[3549],{"type":22,"value":3550},"2048",{"type":17,"tag":210,"props":3552,"children":3553},{"encoding":212},[3554],{"type":22,"value":3555},"d \\approx 2048",{"type":17,"tag":180,"props":3557,"children":3559},{"className":3558,"ariaHidden":219},[218],[3560,3586],{"type":17,"tag":180,"props":3561,"children":3563},{"className":3562},[224],[3564,3568,3573,3577,3582],{"type":17,"tag":180,"props":3565,"children":3567},{"className":3566,"style":230},[229],[],{"type":17,"tag":180,"props":3569,"children":3571},{"className":3570},[235,236],[3572],{"type":22,"value":208},{"type":17,"tag":180,"props":3574,"children":3576},{"className":3575,"style":848},[487],[],{"type":17,"tag":180,"props":3578,"children":3580},{"className":3579},[853],[3581],{"type":22,"value":1443},{"type":17,"tag":180,"props":3583,"children":3585},{"className":3584,"style":848},[487],[],{"type":17,"tag":180,"props":3587,"children":3589},{"className":3588},[224],[3590,3594],{"type":17,"tag":180,"props":3591,"children":3593},{"className":3592,"style":867},[229],[],{"type":17,"tag":180,"props":3595,"children":3597},{"className":3596},[235],[3598],{"type":22,"value":3550},{"type":22,"value":3600},",但字典可以开到几十万甚至上百万个特征(扩张系数 expansion factor = 字典大小 \u002F ",{"type":17,"tag":180,"props":3602,"children":3604},{"className":3603},[183],[3605,3626],{"type":17,"tag":180,"props":3606,"children":3608},{"className":3607},[188],[3609],{"type":17,"tag":191,"props":3610,"children":3611},{"xmlns":193},[3612],{"type":17,"tag":196,"props":3613,"children":3614},{},[3615,3622],{"type":17,"tag":200,"props":3616,"children":3617},{},[3618],{"type":17,"tag":204,"props":3619,"children":3620},{},[3621],{"type":22,"value":208},{"type":17,"tag":210,"props":3623,"children":3624},{"encoding":212},[3625],{"type":22,"value":208},{"type":17,"tag":180,"props":3627,"children":3629},{"className":3628,"ariaHidden":219},[218],[3630],{"type":17,"tag":180,"props":3631,"children":3633},{"className":3632},[224],[3634,3638],{"type":17,"tag":180,"props":3635,"children":3637},{"className":3636,"style":230},[229],[],{"type":17,"tag":180,"props":3639,"children":3641},{"className":3640},[235,236],[3642],{"type":22,"value":208},{"type":22,"value":3644},",这篇扫到量级几百倍)。这正对应\"概念数 > 神经元数\"的叠加假设——故意给一个过完备(overcomplete)的字典。",{"type":17,"tag":58,"props":3646,"children":3647},{},[3648,3653,3655,3697,3699,3704,3706,3749,3751,3861],{"type":17,"tag":106,"props":3649,"children":3650},{},[3651],{"type":22,"value":3652},"ReLU 强制非负 + L1 强制稀疏。",{"type":22,"value":3654}," 重建要求字典能还原 ",{"type":17,"tag":180,"props":3656,"children":3658},{"className":3657},[183],[3659,3680],{"type":17,"tag":180,"props":3660,"children":3662},{"className":3661},[188],[3663],{"type":17,"tag":191,"props":3664,"children":3665},{"xmlns":193},[3666],{"type":17,"tag":196,"props":3667,"children":3668},{},[3669,3676],{"type":17,"tag":200,"props":3670,"children":3671},{},[3672],{"type":17,"tag":204,"props":3673,"children":3674},{},[3675],{"type":22,"value":1438},{"type":17,"tag":210,"props":3677,"children":3678},{"encoding":212},[3679],{"type":22,"value":1438},{"type":17,"tag":180,"props":3681,"children":3683},{"className":3682,"ariaHidden":219},[218],[3684],{"type":17,"tag":180,"props":3685,"children":3687},{"className":3686},[224],[3688,3692],{"type":17,"tag":180,"props":3689,"children":3691},{"className":3690,"style":1949},[229],[],{"type":17,"tag":180,"props":3693,"children":3695},{"className":3694},[235,236],[3696],{"type":22,"value":1438},{"type":22,"value":3698},",L1 要求每个样本只激活很少几个特征。两个约束一起,逼着字典学出",{"type":17,"tag":106,"props":3700,"children":3701},{},[3702],{"type":22,"value":3703},"稀疏组合",{"type":22,"value":3705},"——每个激活向量被表示成\"少数几个特征方向\"的叠加。(",{"type":17,"tag":180,"props":3707,"children":3709},{"className":3708},[183],[3710,3732],{"type":17,"tag":180,"props":3711,"children":3713},{"className":3712},[188],[3714],{"type":17,"tag":191,"props":3715,"children":3716},{"xmlns":193},[3717],{"type":17,"tag":196,"props":3718,"children":3719},{},[3720,3727],{"type":17,"tag":200,"props":3721,"children":3722},{},[3723],{"type":17,"tag":204,"props":3724,"children":3725},{},[3726],{"type":22,"value":2856},{"type":17,"tag":210,"props":3728,"children":3729},{"encoding":212},[3730],{"type":22,"value":3731},"\\lambda",{"type":17,"tag":180,"props":3733,"children":3735},{"className":3734,"ariaHidden":219},[218],[3736],{"type":17,"tag":180,"props":3737,"children":3739},{"className":3738},[224],[3740,3744],{"type":17,"tag":180,"props":3741,"children":3743},{"className":3742,"style":230},[229],[],{"type":17,"tag":180,"props":3745,"children":3747},{"className":3746},[235,236],[3748],{"type":22,"value":2856},{"type":22,"value":3750}," 量级在 ",{"type":17,"tag":180,"props":3752,"children":3754},{"className":3753},[183],[3755,3793],{"type":17,"tag":180,"props":3756,"children":3758},{"className":3757},[188],[3759],{"type":17,"tag":191,"props":3760,"children":3761},{"xmlns":193},[3762],{"type":17,"tag":196,"props":3763,"children":3764},{},[3765,3788],{"type":17,"tag":200,"props":3766,"children":3767},{},[3768],{"type":17,"tag":359,"props":3769,"children":3770},{},[3771,3776],{"type":17,"tag":389,"props":3772,"children":3773},{},[3774],{"type":22,"value":3775},"10",{"type":17,"tag":200,"props":3777,"children":3778},{},[3779,3783],{"type":17,"tag":371,"props":3780,"children":3781},{},[3782],{"type":22,"value":387},{"type":17,"tag":389,"props":3784,"children":3785},{},[3786],{"type":22,"value":3787},"3",{"type":17,"tag":210,"props":3789,"children":3790},{"encoding":212},[3791],{"type":22,"value":3792},"10^{-3}",{"type":17,"tag":180,"props":3794,"children":3796},{"className":3795,"ariaHidden":219},[218],[3797],{"type":17,"tag":180,"props":3798,"children":3800},{"className":3799},[224],[3801,3806,3811],{"type":17,"tag":180,"props":3802,"children":3805},{"className":3803,"style":3804},[229],"height:0.8141em;",[],{"type":17,"tag":180,"props":3807,"children":3809},{"className":3808},[235],[3810],{"type":22,"value":637},{"type":17,"tag":180,"props":3812,"children":3814},{"className":3813},[235],[3815,3820],{"type":17,"tag":180,"props":3816,"children":3818},{"className":3817},[235],[3819],{"type":22,"value":1832},{"type":17,"tag":180,"props":3821,"children":3823},{"className":3822},[429],[3824],{"type":17,"tag":180,"props":3825,"children":3827},{"className":3826},[434],[3828],{"type":17,"tag":180,"props":3829,"children":3831},{"className":3830},[439],[3832],{"type":17,"tag":180,"props":3833,"children":3835},{"className":3834,"style":3804},[444],[3836],{"type":17,"tag":180,"props":3837,"children":3838},{"style":1638},[3839,3843],{"type":17,"tag":180,"props":3840,"children":3842},{"className":3841,"style":454},[453],[],{"type":17,"tag":180,"props":3844,"children":3846},{"className":3845},[459,460,461,462],[3847],{"type":17,"tag":180,"props":3848,"children":3850},{"className":3849},[235,462],[3851,3856],{"type":17,"tag":180,"props":3852,"children":3854},{"className":3853},[235,462],[3855],{"type":22,"value":387},{"type":17,"tag":180,"props":3857,"children":3859},{"className":3858},[235,462],[3860],{"type":22,"value":3787},{"type":22,"value":3862},",具体值看模型规模。)",{"type":17,"tag":58,"props":3864,"children":3865},{},[3866,3915,3917,3922],{"type":17,"tag":106,"props":3867,"children":3868},{},[3869,3871,3913],{"type":22,"value":3870},"L0 远小于 ",{"type":17,"tag":180,"props":3872,"children":3874},{"className":3873},[183],[3875,3896],{"type":17,"tag":180,"props":3876,"children":3878},{"className":3877},[188],[3879],{"type":17,"tag":191,"props":3880,"children":3881},{"xmlns":193},[3882],{"type":17,"tag":196,"props":3883,"children":3884},{},[3885,3892],{"type":17,"tag":200,"props":3886,"children":3887},{},[3888],{"type":17,"tag":204,"props":3889,"children":3890},{},[3891],{"type":22,"value":208},{"type":17,"tag":210,"props":3893,"children":3894},{"encoding":212},[3895],{"type":22,"value":208},{"type":17,"tag":180,"props":3897,"children":3899},{"className":3898,"ariaHidden":219},[218],[3900],{"type":17,"tag":180,"props":3901,"children":3903},{"className":3902},[224],[3904,3908],{"type":17,"tag":180,"props":3905,"children":3907},{"className":3906,"style":230},[229],[],{"type":17,"tag":180,"props":3909,"children":3911},{"className":3910},[235,236],[3912],{"type":22,"value":208},{"type":22,"value":3914},",但方差解释率(FVE)很高。",{"type":22,"value":3916}," 这是最漂亮的结果:每个 token 的 MLP 激活,只需要",{"type":17,"tag":106,"props":3918,"children":3919},{},[3920],{"type":22,"value":3921},"几十到几百个特征",{"type":22,"value":3923},"稀疏激活就能重建绝大部分方差。如果神经元真是计算单元,你不可能用这么少的方向重建得这么好——这反过来支持\"特征才是真实单元\"。",{"type":17,"tag":121,"props":3925,"children":3927},{"id":3926},"三",[3928],{"type":22,"value":3929},"三、",{"type":17,"tag":18,"props":3931,"children":3932},{},[3933,3935,3940],{"type":22,"value":3934},"光重建好不够,得证明每个特征",{"type":17,"tag":106,"props":3936,"children":3937},{},[3938],{"type":22,"value":3939},"确实对应一个可解释的概念",{"type":22,"value":3941},"。他们做了大量 case study,挑几个最能说明问题的:",{"type":17,"tag":3943,"props":3944,"children":3945},"table",{},[3946,3970],{"type":17,"tag":3947,"props":3948,"children":3949},"thead",{},[3950],{"type":17,"tag":3951,"props":3952,"children":3953},"tr",{},[3954,3960,3965],{"type":17,"tag":3955,"props":3956,"children":3957},"th",{},[3958],{"type":22,"value":3959},"特征",{"type":17,"tag":3955,"props":3961,"children":3962},{},[3963],{"type":22,"value":3964},"激活条件",{"type":17,"tag":3955,"props":3966,"children":3967},{},[3968],{"type":22,"value":3969},"为什么重要",{"type":17,"tag":3971,"props":3972,"children":3973},"tbody",{},[3974,4004,4025,4046],{"type":17,"tag":3951,"props":3975,"children":3976},{},[3977,3986,3999],{"type":17,"tag":3978,"props":3979,"children":3980},"td",{},[3981],{"type":17,"tag":106,"props":3982,"children":3983},{},[3984],{"type":22,"value":3985},"DNA 特征",{"type":17,"tag":3978,"props":3987,"children":3988},{},[3989,3991,3997],{"type":22,"value":3990},"输入是 ",{"type":17,"tag":1249,"props":3992,"children":3994},{"className":3993},[],[3995],{"type":22,"value":3996},"ATGC...",{"type":22,"value":3998}," 这样的 DNA 序列",{"type":17,"tag":3978,"props":4000,"children":4001},{},[4002],{"type":22,"value":4003},"跨 token、跨上下文都稳定,甚至能拿来给文本\"是否含 DNA\"打标",{"type":17,"tag":3951,"props":4005,"children":4006},{},[4007,4015,4020],{"type":17,"tag":3978,"props":4008,"children":4009},{},[4010],{"type":17,"tag":106,"props":4011,"children":4012},{},[4013],{"type":22,"value":4014},"阿拉伯文特征",{"type":17,"tag":3978,"props":4016,"children":4017},{},[4018],{"type":22,"value":4019},"文本里出现阿拉伯字符",{"type":17,"tag":3978,"props":4021,"children":4022},{},[4023],{"type":22,"value":4024},"与主题无关,纯粹认\"书写系统\"这个抽象",{"type":17,"tag":3951,"props":4026,"children":4027},{},[4028,4036,4041],{"type":17,"tag":3978,"props":4029,"children":4030},{},[4031],{"type":17,"tag":106,"props":4032,"children":4033},{},[4034],{"type":22,"value":4035},"专有名词 \u002F 缩写特征",{"type":17,"tag":3978,"props":4037,"children":4038},{},[4039],{"type":22,"value":4040},"首字母大写的人名、全大写缩写",{"type":17,"tag":3978,"props":4042,"children":4043},{},[4044],{"type":22,"value":4045},"语法-词性层面的抽象",{"type":17,"tag":3951,"props":4047,"children":4048},{},[4049,4057,4062],{"type":17,"tag":3978,"props":4050,"children":4051},{},[4052],{"type":17,"tag":106,"props":4053,"children":4054},{},[4055],{"type":22,"value":4056},"无用 token 特征",{"type":17,"tag":3978,"props":4058,"children":4059},{},[4060],{"type":22,"value":4061},"模型词表里那些训练时几乎从不出现的\"垃圾\" token",{"type":17,"tag":3978,"props":4063,"children":4064},{},[4065],{"type":22,"value":4066},"关键对照:这种 token 上特征的激活模式异常,说明特征不是无脑触发",{"type":17,"tag":18,"props":4068,"children":4069},{},[4070,4072,4077],{"type":22,"value":4071},"最有说服力的是 ",{"type":17,"tag":106,"props":4073,"children":4074},{},[4075],{"type":22,"value":4076},"无用 token(unuseful tokens)",{"type":22,"value":4078}," 实验:Anthropic 在词表里故意塞了一批训练数据里几乎不出现的 token。如果特征只是字典学习的数学产物,它对这些 token 应该也\"随便\"激活;但实际观察到的激活模式是有结构的、能和\"这个 token 从没被真正学过\"对上。这是对\"特征是真实单元、不是字典 artifact\"的一个反证辩护。",{"type":17,"tag":18,"props":4080,"children":4081},{},[4082,4084,4089,4091,4096],{"type":22,"value":4083},"合起来,论文给出的画像:每一个 SAE 特征,在一个",{"type":17,"tag":106,"props":4085,"children":4086},{},[4087],{"type":22,"value":4088},"很窄但很一致",{"type":22,"value":4090},"的语义条件下激活——这就是 ",{"type":17,"tag":106,"props":4092,"children":4093},{},[4094],{"type":22,"value":4095},"monosemantic(单语义)",{"type":22,"value":4097},"。和原始神经元的 polysemantic 形成鲜明对比。",{"type":17,"tag":121,"props":4099,"children":4101},{"id":4100},"四",[4102],{"type":22,"value":4103},"四、",{"type":17,"tag":18,"props":4105,"children":4106},{},[4107],{"type":22,"value":4108},"这一节是我觉得最该细读的部分,也是最容易被科普文章跳过的。",{"type":17,"tag":18,"props":4110,"children":4111},{},[4112,4114,4119],{"type":22,"value":4113},"最自然的反对意见是:",{"type":17,"tag":106,"props":4115,"children":4116},{},[4117],{"type":22,"value":4118},"你开一个过完备字典 + L1,当然能把任何信号拆成\"稀疏的零件\",但这些零件是模型在用的东西,还是你强加的基?",{"type":22,"value":4120},"(basis dependence \u002F 字典依赖)",{"type":17,"tag":18,"props":4122,"children":4123},{},[4124],{"type":22,"value":4125},"他们的回应分两层:",{"type":17,"tag":3508,"props":4127,"children":4128},{},[4129,4144],{"type":17,"tag":58,"props":4130,"children":4131},{},[4132,4137,4139],{"type":17,"tag":106,"props":4133,"children":4134},{},[4135],{"type":22,"value":4136},"特征分裂(feature splitting)是良性的。",{"type":22,"value":4138}," 字典开得越大,一个粗特征会\"分裂\"成几个更细的特征(比如\"阿拉伯文\" → \"阿拉伯文-宗教文本\"\"阿拉伯文-代码注释\"……)。这看起来像过拟合,但分裂后每个子特征依然单义、依然可解释——只是粒度更细。",{"type":17,"tag":106,"props":4140,"children":4141},{},[4142],{"type":22,"value":4143},"所以字典大小控制的是\"放大镜的倍率\",不是凭空造概念。",{"type":17,"tag":58,"props":4145,"children":4146},{},[4147,4152,4154,4159,4161],{"type":17,"tag":106,"props":4148,"children":4149},{},[4150],{"type":22,"value":4151},"行为层面的因果验证。",{"type":22,"value":4153}," 光说\"可解释\"是旁观证据,真正站住脚的是:能不能拿特征去",{"type":17,"tag":106,"props":4155,"children":4156},{},[4157],{"type":22,"value":4158},"干预",{"type":22,"value":4160},"模型行为。把某个特征在推理时强行激活或抑制(clamp \u002F ablation),输出会按预期改变。",{"type":17,"tag":4162,"props":4163,"children":4164},"em",{},[4165],{"type":22,"value":4166},"(注:大规模 steering 实验——包括那个有名的\"毒性特征\"案例——主要在 2024 年的续作 Scaling Monosemanticity 里,本篇规模较小,但因果验证的思路已立住。)",{"type":17,"tag":18,"props":4168,"children":4169},{},[4170,4172,4177],{"type":22,"value":4171},"我的看法:这两点合起来基本回应了 basis dependence,但没完全消解。",{"type":17,"tag":106,"props":4173,"children":4174},{},[4175],{"type":22,"value":4176},"特征是\"字典相关的\"这件事是事实",{"type":22,"value":4178},",只是\"字典相关\"不等于\"任意\"——好的字典会让特征和模型的真实计算对齐。这有点像量子力学里的表象问题:换基会变,但物理不变;SAE 找的是那个让特征尽量\"自然\"的基。",{"type":17,"tag":121,"props":4180,"children":4182},{"id":4181},"五延伸思考",[4183],{"type":22,"value":4184},"五、延伸思考",{"type":17,"tag":18,"props":4186,"children":4187},{},[4188],{"type":22,"value":4189},"总的来说，SAEs为Transformer的可解释性提供了可能性。我们朴素直觉(神经元=概念)被一个更准确结构(在神经元中被叠加某一方向=概念)取代。可解释性的基本单元从 neuron 让位给了 feature direction。",{"type":17,"tag":18,"props":4191,"children":4192},{},[4193,4195,4200],{"type":22,"value":4194},"不过，SAE 只是\"放大镜\"。它给的是一个",{"type":17,"tag":106,"props":4196,"children":4197},{},[4198],{"type":22,"value":4199},"可调粒度",{"type":22,"value":4201},"的视图(字典大小=倍率)。模型的特征不是一个有确定数目的东西,而是依观察尺度展开的——这跟物理里\"尺度决定你看到什么\"是一回事。别把某一次 SAE 的特征数当成模型\"真正的概念数\"。SAE只是把多语义的拆分成更细的特征，便于我们解释，以及在不修改参数的情况下进行操作。",{"type":17,"tag":4203,"props":4204,"children":4205},"hr",{},[],{"type":17,"tag":149,"props":4207,"children":4208},{},[4209],{"type":17,"tag":18,"props":4210,"children":4211},{},[4212],{"type":17,"tag":106,"props":4213,"children":4214},{},[4215],{"type":22,"value":4216},"模型把比神经元多得多的概念稀疏地压进激活空间,所以神经元是多义的;稀疏自编码器通过\"过完备字典 + L1 稀疏\"把这个叠加解混,得到的特征在很大概率上才是模型真正在用的、单义的计算单元——而\"是不是真在用\",最终只能靠因果干预来回答。",{"type":17,"tag":4218,"props":4219,"children":4220},"style",{},[4221],{"type":22,"value":4222},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":8,"searchDepth":79,"depth":80,"links":4224},[4225,4226,4227,4228,4229],{"id":123,"depth":79,"text":126},{"id":1408,"depth":79,"text":1411},{"id":3926,"depth":79,"text":3929},{"id":4100,"depth":79,"text":4103},{"id":4181,"depth":79,"text":4184},"content:posts:towards-monosemanticity.md","posts\u002Ftowards-monosemanticity.md","posts\u002Ftowards-monosemanticity",{"_path":4234,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":4235,"description":8,"date":4236,"categories":93,"tags":4237,"draft":7,"body":4241,"_type":82,"_id":7335,"_source":84,"_file":7336,"_stem":7337,"_extension":87},"\u002Fposts\u002Fclaude-code-settings","Claude Code 配置分享","2026-06-23 14:22:12",[95,4238,4239,4240],"AI Agent","Agent","Claude Code",{"type":14,"children":4242,"toc":7307},[4243,4287,4292,4304,4317,4366,4417,4438,4496,4501,4540,4545,4558,4564,4625,4630,4635,4686,4692,4697,4819,4832,4869,4881,4954,4959,4971,4983,4996,5129,5157,5187,5199,5211,5269,5305,5336,5348,5360,5507,5582,5602,5629,5634,5858,5869,5908,5913,6076,6094,6190,6195,6200,6205,7281,7284,7303],{"type":17,"tag":18,"props":4244,"children":4245},{},[4246,4248,4254,4256,4262,4264,4270,4272,4278,4279,4285],{"type":22,"value":4247},"Claude Code 用户级的配置文件在 ",{"type":17,"tag":1249,"props":4249,"children":4251},{"className":4250},[],[4252],{"type":22,"value":4253},"~\u002F.claude\u002Fsettings.json",{"type":22,"value":4255},"，环境变量通过 ",{"type":17,"tag":1249,"props":4257,"children":4259},{"className":4258},[],[4260],{"type":22,"value":4261},"env",{"type":22,"value":4263}," 键值对来设置。除此之外常用的键还有 ",{"type":17,"tag":1249,"props":4265,"children":4267},{"className":4266},[],[4268],{"type":22,"value":4269},"permissions",{"type":22,"value":4271},"、",{"type":17,"tag":1249,"props":4273,"children":4275},{"className":4274},[],[4276],{"type":22,"value":4277},"hooks",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4280,"children":4282},{"className":4281},[],[4283],{"type":22,"value":4284},"enabledPlugins",{"type":22,"value":4286}," 等。",{"type":17,"tag":121,"props":4288,"children":4290},{"id":4289},"为什么要花心思配它",[4291],{"type":22,"value":4289},{"type":17,"tag":18,"props":4293,"children":4294},{},[4295,4302],{"type":17,"tag":138,"props":4296,"children":4299},{"href":4297,"rel":4298},"https:\u002F\u002Fwww.theregister.com\u002Fsoftware\u002F2026\u002F04\u002F01\u002Fclaude-codes-source-reveals-extent-of-system-access\u002F5222658",[142],[4300],{"type":22,"value":4301},"The Register 2026 年 4 月那篇 Claude Code 源码分析",{"type":22,"value":4303}," 出来之后，我把自己的 settings 又调整了一些。几个让我在意的点：",{"type":17,"tag":18,"props":4305,"children":4306},{},[4307,4309,4315],{"type":22,"value":4308},"遥测默认开启。CC 每次启动会上报 user ID、session ID、组织 UUID、邮箱、平台、终端类型、当前的 feature gates；网络不通就先落盘到 ",{"type":17,"tag":1249,"props":4310,"children":4312},{"className":4311},[],[4313],{"type":22,"value":4314},"~\u002F.claude\u002Ftelemetry\u002F",{"type":22,"value":4316}," 等下次再发送。只有走 Bedrock \u002F Vertex \u002F Foundry 时才默认关闭。错误上报那条路也类似，CC 抛异常时把 cwd 和路径片段一起传上去。目录名本身也是信息，算半个泄露。",{"type":17,"tag":18,"props":4318,"children":4319},{},[4320,4322,4328,4329,4335,4336,4342,4343,4349,4351,4357,4359,4364],{"type":22,"value":4321},"更值得注意的是本地留底。每一次 ",{"type":17,"tag":1249,"props":4323,"children":4325},{"className":4324},[],[4326],{"type":22,"value":4327},"Read",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4330,"children":4332},{"className":4331},[],[4333],{"type":22,"value":4334},"Bash",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4337,"children":4339},{"className":4338},[],[4340],{"type":22,"value":4341},"Grep",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4344,"children":4346},{"className":4345},[],[4347],{"type":22,"value":4348},"Edit\u002FWrite",{"type":22,"value":4350}," 的输入输出都以明文 JSONL 写进会话归档。还没正式发布的 autoDream 会去 grep 这堆归档，把摘要写进 ",{"type":17,"tag":1249,"props":4352,"children":4354},{"className":4353},[],[4355],{"type":22,"value":4356},"MEMORY.md",{"type":22,"value":4358},"，然后 ",{"type":17,"tag":1249,"props":4360,"children":4362},{"className":4361},[],[4363],{"type":22,"value":4356},{"type":22,"value":4365}," 又会注入下一轮 system prompt。这流程走完，模型看过的文件最终就进了 API 的。",{"type":17,"tag":18,"props":4367,"children":4368},{},[4369,4371,4377,4379,4385,4386,4392,4393,4399,4401,4407,4409,4415],{"type":22,"value":4370},"企业部署还多一层 ",{"type":17,"tag":1249,"props":4372,"children":4374},{"className":4373},[],[4375],{"type":22,"value":4376},"policySettings",{"type":22,"value":4378},"，每小时拉一次，可以热更新 ",{"type":17,"tag":1249,"props":4380,"children":4382},{"className":4381},[],[4383],{"type":22,"value":4384},".env",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4387,"children":4389},{"className":4388},[],[4390],{"type":22,"value":4391},"PATH",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4394,"children":4396},{"className":4395},[],[4397],{"type":22,"value":4398},"LD_PRELOAD",{"type":22,"value":4400},"、permissions 和 feature flag。个人用户用不到，但知道这个通道存在比较好。自动更新走 Statsig \u002F GrowthBook，Anthropic 想禁用某个版本一句话的事，所以保守做法是关闭自动更新、自己锁版本。我自己是 brew 安装的，不 ",{"type":17,"tag":1249,"props":4402,"children":4404},{"className":4403},[],[4405],{"type":22,"value":4406},"upgrade",{"type":22,"value":4408}," 就停在当前版本上，但只要 ",{"type":17,"tag":1249,"props":4410,"children":4412},{"className":4411},[],[4413],{"type":22,"value":4414},"brew upgrade",{"type":22,"value":4416}," 一下就直接跳到最新——如果想严格锁版本，还是得用 npm 指定具体版本号安装。",{"type":17,"tag":18,"props":4418,"children":4419},{},[4420,4422,4428,4430,4436],{"type":22,"value":4421},"本文后面那些环境变量和 ",{"type":17,"tag":1249,"props":4423,"children":4425},{"className":4424},[],[4426],{"type":22,"value":4427},"permissions.deny",{"type":22,"value":4429},"、空 ",{"type":17,"tag":1249,"props":4431,"children":4433},{"className":4432},[],[4434],{"type":22,"value":4435},"attribution",{"type":22,"value":4437},"，本质就是在缩减这个 CC 暴露的信息：",{"type":17,"tag":54,"props":4439,"children":4440},{},[4441,4452,4477],{"type":17,"tag":58,"props":4442,"children":4443},{},[4444,4450],{"type":17,"tag":1249,"props":4445,"children":4447},{"className":4446},[],[4448],{"type":22,"value":4449},"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",{"type":22,"value":4451}," 把 telemetry、错误上报、自动更新和其他后台请求一并关闭，相当于把上面前两条 + 版本远控一起断掉。",{"type":17,"tag":58,"props":4453,"children":4454},{},[4455,4460,4462,4468,4469,4475],{"type":17,"tag":1249,"props":4456,"children":4458},{"className":4457},[],[4459],{"type":22,"value":4427},{"type":22,"value":4461}," 把 ",{"type":17,"tag":1249,"props":4463,"children":4465},{"className":4464},[],[4466],{"type":22,"value":4467},"~\u002F.ssh\u002F",{"type":22,"value":4271},{"type":17,"tag":1249,"props":4470,"children":4472},{"className":4471},[],[4473],{"type":22,"value":4474},".\u002Fsecrets\u002F",{"type":22,"value":4476}," 封掉，就算 autoDream 哪天默认开启去扫归档，这些路径它也读不进来。",{"type":17,"tag":58,"props":4478,"children":4479},{},[4480,4486,4488,4494],{"type":17,"tag":1249,"props":4481,"children":4483},{"className":4482},[],[4484],{"type":22,"value":4485},"attribution.commit\u002Fpr",{"type":22,"value":4487}," 留空，不在 git history 里留 AI 痕迹。顺带一提，源码里有个 ",{"type":17,"tag":1249,"props":4489,"children":4491},{"className":4490},[],[4492],{"type":22,"value":4493},"undercover.ts",{"type":22,"value":4495},"，在仓库被识别成\"明确拒绝 AI 贡献的开源项目\"时会主动让 Claude 隐藏作者身份 —— 这个态度本身就挺微妙的。",{"type":17,"tag":18,"props":4497,"children":4498},{},[4499],{"type":22,"value":4500},"文章里还提到两个设置，我没用，但还是记一下：",{"type":17,"tag":54,"props":4502,"children":4503},{},[4504,4518],{"type":17,"tag":58,"props":4505,"children":4506},{},[4507,4516],{"type":17,"tag":106,"props":4508,"children":4509},{},[4510],{"type":17,"tag":1249,"props":4511,"children":4513},{"className":4512},[],[4514],{"type":22,"value":4515},"CLAUDE_CODE_DISABLE_AUTO_MEMORY=1",{"type":22,"value":4517},"：关闭所有 memory \u002F telemetry 写入。",{"type":17,"tag":58,"props":4519,"children":4520},{},[4521,4530,4532,4538],{"type":17,"tag":106,"props":4522,"children":4523},{},[4524],{"type":17,"tag":1249,"props":4525,"children":4527},{"className":4526},[],[4528],{"type":22,"value":4529},"CLAUDE_CODE_SIMPLE",{"type":22,"value":4531},"（",{"type":17,"tag":1249,"props":4533,"children":4535},{"className":4534},[],[4536],{"type":22,"value":4537},"--bare",{"type":22,"value":4539}," 模式）：直接关闭 memory 和 autoDream。",{"type":17,"tag":18,"props":4541,"children":4542},{},[4543],{"type":22,"value":4544},"下面进入正题。",{"type":17,"tag":121,"props":4546,"children":4548},{"id":4547},"环境变量env",[4549,4551,4556],{"type":22,"value":4550},"环境变量（",{"type":17,"tag":1249,"props":4552,"children":4554},{"className":4553},[],[4555],{"type":22,"value":4261},{"type":22,"value":4557},"）",{"type":17,"tag":4559,"props":4560,"children":4562},"h3",{"id":4561},"行为控制",[4563],{"type":22,"value":4561},{"type":17,"tag":54,"props":4565,"children":4566},{},[4567,4589,4603],{"type":17,"tag":58,"props":4568,"children":4569},{},[4570,4579,4581,4587],{"type":17,"tag":106,"props":4571,"children":4572},{},[4573],{"type":17,"tag":1249,"props":4574,"children":4576},{"className":4575},[],[4577],{"type":22,"value":4578},"CLAUDE_CODE_EFFORT_LEVEL",{"type":22,"value":4580},"：执行任务的努力程度，",{"type":17,"tag":1249,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":22,"value":4586},"max",{"type":22,"value":4588}," 表示最充分的分析和规划。",{"type":17,"tag":58,"props":4590,"children":4591},{},[4592,4601],{"type":17,"tag":106,"props":4593,"children":4594},{},[4595],{"type":17,"tag":1249,"props":4596,"children":4598},{"className":4597},[],[4599],{"type":22,"value":4600},"DISABLE_AUTOUPDATER",{"type":22,"value":4602},"：关闭自动更新检查，避免在国内网络环境下卡住启动。",{"type":17,"tag":58,"props":4604,"children":4605},{},[4606,4615,4617,4623],{"type":17,"tag":106,"props":4607,"children":4608},{},[4609],{"type":17,"tag":1249,"props":4610,"children":4612},{"className":4611},[],[4613],{"type":22,"value":4614},"ENABLE_TOOL_SEARCH",{"type":22,"value":4616},"：启用工具搜索，让 Claude 通过 ",{"type":17,"tag":1249,"props":4618,"children":4620},{"className":4619},[],[4621],{"type":22,"value":4622},"ToolSearch",{"type":22,"value":4624}," 动态发现和加载工具的 schema，节省启动时的 context。",{"type":17,"tag":4559,"props":4626,"children":4628},{"id":4627},"隐私与流量控制",[4629],{"type":22,"value":4627},{"type":17,"tag":18,"props":4631,"children":4632},{},[4633],{"type":22,"value":4634},"三个相关的环境变量，避免暴露隐私：",{"type":17,"tag":54,"props":4636,"children":4637},{},[4638,4652,4666],{"type":17,"tag":58,"props":4639,"children":4640},{},[4641,4650],{"type":17,"tag":106,"props":4642,"children":4643},{},[4644],{"type":17,"tag":1249,"props":4645,"children":4647},{"className":4646},[],[4648],{"type":22,"value":4649},"DISABLE_TELEMETRY",{"type":22,"value":4651},"：关闭遥测数据上报，不上传使用统计。",{"type":17,"tag":58,"props":4653,"children":4654},{},[4655,4664],{"type":17,"tag":106,"props":4656,"children":4657},{},[4658],{"type":17,"tag":1249,"props":4659,"children":4661},{"className":4660},[],[4662],{"type":22,"value":4663},"DISABLE_ERROR_REPORTING",{"type":22,"value":4665},"：关闭错误报告，崩溃或异常时不会自动向 Anthropic 发送错误信息。",{"type":17,"tag":58,"props":4667,"children":4668},{},[4669,4677,4679,4684],{"type":17,"tag":106,"props":4670,"children":4671},{},[4672],{"type":17,"tag":1249,"props":4673,"children":4675},{"className":4674},[],[4676],{"type":22,"value":4449},{"type":22,"value":4678},"：一键关闭所有非必要网络流量，",{"type":17,"tag":106,"props":4680,"children":4681},{},[4682],{"type":22,"value":4683},"包含了前两者的功能（以及关闭了自动更新）",{"type":22,"value":4685},"，同时还会禁用更新检查等其他后台请求。如果只想保留纯 API 调用，设这一个就够了。",{"type":17,"tag":4559,"props":4687,"children":4689},{"id":4688},"其他常用变量按需开启",[4690],{"type":22,"value":4691},"其他常用变量（按需开启）",{"type":17,"tag":18,"props":4693,"children":4694},{},[4695],{"type":22,"value":4696},"这些没出现在配置里，但切换 API 提供商时常用：",{"type":17,"tag":54,"props":4698,"children":4699},{},[4700,4714,4728,4797],{"type":17,"tag":58,"props":4701,"children":4702},{},[4703,4712],{"type":17,"tag":106,"props":4704,"children":4705},{},[4706],{"type":17,"tag":1249,"props":4707,"children":4709},{"className":4708},[],[4710],{"type":22,"value":4711},"ANTHROPIC_AUTH_TOKEN",{"type":22,"value":4713},"：API 密钥。使用第三方 API 代理（如火山引擎）时填代理提供的 key。",{"type":17,"tag":58,"props":4715,"children":4716},{},[4717,4726],{"type":17,"tag":106,"props":4718,"children":4719},{},[4720],{"type":17,"tag":1249,"props":4721,"children":4723},{"className":4722},[],[4724],{"type":22,"value":4725},"ANTHROPIC_BASE_URL",{"type":22,"value":4727},"：API 端点地址，切换模型提供商时改这里。",{"type":17,"tag":58,"props":4729,"children":4730},{},[4731,4740,4742,4751,4752,4761,4762,4771,4773,4779,4781,4787,4789,4795],{"type":17,"tag":106,"props":4732,"children":4733},{},[4734],{"type":17,"tag":1249,"props":4735,"children":4737},{"className":4736},[],[4738],{"type":22,"value":4739},"ANTHROPIC_MODEL",{"type":22,"value":4741}," \u002F ",{"type":17,"tag":106,"props":4743,"children":4744},{},[4745],{"type":17,"tag":1249,"props":4746,"children":4748},{"className":4747},[],[4749],{"type":22,"value":4750},"ANTHROPIC_DEFAULT_OPUS_MODEL",{"type":22,"value":4741},{"type":17,"tag":106,"props":4753,"children":4754},{},[4755],{"type":17,"tag":1249,"props":4756,"children":4758},{"className":4757},[],[4759],{"type":22,"value":4760},"ANTHROPIC_DEFAULT_SONNET_MODEL",{"type":22,"value":4741},{"type":17,"tag":106,"props":4763,"children":4764},{},[4765],{"type":17,"tag":1249,"props":4766,"children":4768},{"className":4767},[],[4769],{"type":22,"value":4770},"ANTHROPIC_DEFAULT_HAIKU_MODEL",{"type":22,"value":4772},"：指定各级别对应的实际模型名。当你用 ",{"type":17,"tag":1249,"props":4774,"children":4776},{"className":4775},[],[4777],{"type":22,"value":4778},"--model opus",{"type":22,"value":4780}," 这类参数时，CLI 会读对应环境变量。值可以带后缀，比如 ",{"type":17,"tag":1249,"props":4782,"children":4784},{"className":4783},[],[4785],{"type":22,"value":4786},"glm-5.2[1m]",{"type":22,"value":4788},"，",{"type":17,"tag":1249,"props":4790,"children":4792},{"className":4791},[],[4793],{"type":22,"value":4794},"[1m]",{"type":22,"value":4796}," 表示 1M 上下文窗口。",{"type":17,"tag":58,"props":4798,"children":4799},{},[4800,4809,4811,4817],{"type":17,"tag":106,"props":4801,"children":4802},{},[4803],{"type":17,"tag":1249,"props":4804,"children":4806},{"className":4805},[],[4807],{"type":22,"value":4808},"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE",{"type":22,"value":4810},"：控制自动压缩（compact）的触发阈值。默认约 0.9（90%），调高（如 ",{"type":17,"tag":1249,"props":4812,"children":4814},{"className":4813},[],[4815],{"type":22,"value":4816},"0.95",{"type":22,"value":4818},"）可以减少压缩频率、保留更多对话细节，调低则更早触发压缩、节省 token。",{"type":17,"tag":121,"props":4820,"children":4822},{"id":4821},"模型model",[4823,4825,4831],{"type":22,"value":4824},"模型（",{"type":17,"tag":1249,"props":4826,"children":4828},{"className":4827},[],[4829],{"type":22,"value":4830},"model",{"type":22,"value":4557},{"type":17,"tag":54,"props":4833,"children":4834},{},[4835,4849],{"type":17,"tag":58,"props":4836,"children":4837},{},[4838,4847],{"type":17,"tag":106,"props":4839,"children":4840},{},[4841],{"type":17,"tag":1249,"props":4842,"children":4844},{"className":4843},[],[4845],{"type":22,"value":4846},"opus[1m]",{"type":22,"value":4848},"：CLI 启动时默认使用的模型等级，表示用 Opus 级模型加 1M 上下文。",{"type":17,"tag":58,"props":4850,"children":4851},{},[4852,4854,4859,4861,4867],{"type":22,"value":4853},"切换模型或 API 提供商时，推荐用 ",{"type":17,"tag":106,"props":4855,"children":4856},{},[4857],{"type":22,"value":4858},"CC-Switch",{"type":22,"value":4860}," 工具，可以在多套配置之间快速切换，省得手动改 ",{"type":17,"tag":1249,"props":4862,"children":4864},{"className":4863},[],[4865],{"type":22,"value":4866},"settings.json",{"type":22,"value":4868},"。",{"type":17,"tag":121,"props":4870,"children":4872},{"id":4871},"提交署名attribution",[4873,4875,4880],{"type":22,"value":4874},"提交署名（",{"type":17,"tag":1249,"props":4876,"children":4878},{"className":4877},[],[4879],{"type":22,"value":4435},{"type":22,"value":4557},{"type":17,"tag":1242,"props":4882,"children":4886},{"className":4883,"code":4884,"language":4885,"meta":8,"style":8},"language-json shiki shiki-themes github-light github-dark","\"attribution\": {\n  \"commit\": \"\",\n  \"pr\": \"\"\n}\n","json",[4887],{"type":17,"tag":1249,"props":4888,"children":4889},{"__ignoreMap":8},[4890,4905,4929,4946],{"type":17,"tag":180,"props":4891,"children":4892},{"class":1254,"line":1255},[4893,4899],{"type":17,"tag":180,"props":4894,"children":4896},{"style":4895},"--shiki-default:#032F62;--shiki-dark:#9ECBFF",[4897],{"type":22,"value":4898},"\"attribution\"",{"type":17,"tag":180,"props":4900,"children":4902},{"style":4901},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[4903],{"type":22,"value":4904},": {\n",{"type":17,"tag":180,"props":4906,"children":4907},{"class":1254,"line":79},[4908,4914,4919,4924],{"type":17,"tag":180,"props":4909,"children":4911},{"style":4910},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[4912],{"type":22,"value":4913},"  \"commit\"",{"type":17,"tag":180,"props":4915,"children":4916},{"style":4901},[4917],{"type":22,"value":4918},": ",{"type":17,"tag":180,"props":4920,"children":4921},{"style":4895},[4922],{"type":22,"value":4923},"\"\"",{"type":17,"tag":180,"props":4925,"children":4926},{"style":4901},[4927],{"type":22,"value":4928},",\n",{"type":17,"tag":180,"props":4930,"children":4931},{"class":1254,"line":80},[4932,4937,4941],{"type":17,"tag":180,"props":4933,"children":4934},{"style":4910},[4935],{"type":22,"value":4936},"  \"pr\"",{"type":17,"tag":180,"props":4938,"children":4939},{"style":4901},[4940],{"type":22,"value":4918},{"type":17,"tag":180,"props":4942,"children":4943},{"style":4895},[4944],{"type":22,"value":4945},"\"\"\n",{"type":17,"tag":180,"props":4947,"children":4948},{"class":1254,"line":1281},[4949],{"type":17,"tag":180,"props":4950,"children":4951},{"style":4901},[4952],{"type":22,"value":4953},"}\n",{"type":17,"tag":18,"props":4955,"children":4956},{},[4957],{"type":22,"value":4958},"控制 Claude 在生成 commit message 和 PR 描述时附带的署名后缀（默认会加 \"Generated with Claude Code\" 之类的尾巴）。两个字段都置空，等于关掉署名 —— 提交历史干净，看不出哪些是 AI 写的。",{"type":17,"tag":121,"props":4960,"children":4962},{"id":4961},"权限permissions",[4963,4965,4970],{"type":22,"value":4964},"权限（",{"type":17,"tag":1249,"props":4966,"children":4968},{"className":4967},[],[4969],{"type":22,"value":4269},{"type":22,"value":4557},{"type":17,"tag":4559,"props":4972,"children":4974},{"id":4973},"allow预授权",[4975,4981],{"type":17,"tag":1249,"props":4976,"children":4978},{"className":4977},[],[4979],{"type":22,"value":4980},"allow",{"type":22,"value":4982},"：预授权",{"type":17,"tag":18,"props":4984,"children":4985},{},[4986,4988,4994],{"type":22,"value":4987},"放行后无需弹确认框。常见的是放行特定域名的 ",{"type":17,"tag":1249,"props":4989,"children":4991},{"className":4990},[],[4992],{"type":22,"value":4993},"WebFetch",{"type":22,"value":4995},"：",{"type":17,"tag":1242,"props":4997,"children":4999},{"className":4883,"code":4998,"language":4885,"meta":8,"style":8},"\"allow\": [\n  \"WebFetch(domain:deepseek.com)\",\n  \"WebFetch(domain:moonshot.cn)\",\n  \"WebFetch(domain:qwen.ai)\",\n  \"WebFetch(domain:google.com)\",\n  \"WebFetch(domain:anthropic.com)\",\n  \"WebFetch(domain:openai.com)\",\n  \"WebFetch(domain:arxiv.org)\",\n  \"WebFetch(domain:*.edu)\",\n  \"WebFetch(domain:*.ac.cn)\"\n]\n",[5000],{"type":17,"tag":1249,"props":5001,"children":5002},{"__ignoreMap":8},[5003,5016,5028,5040,5052,5064,5076,5088,5100,5112,5120],{"type":17,"tag":180,"props":5004,"children":5005},{"class":1254,"line":1255},[5006,5011],{"type":17,"tag":180,"props":5007,"children":5008},{"style":4895},[5009],{"type":22,"value":5010},"\"allow\"",{"type":17,"tag":180,"props":5012,"children":5013},{"style":4901},[5014],{"type":22,"value":5015},": [\n",{"type":17,"tag":180,"props":5017,"children":5018},{"class":1254,"line":79},[5019,5024],{"type":17,"tag":180,"props":5020,"children":5021},{"style":4895},[5022],{"type":22,"value":5023},"  \"WebFetch(domain:deepseek.com)\"",{"type":17,"tag":180,"props":5025,"children":5026},{"style":4901},[5027],{"type":22,"value":4928},{"type":17,"tag":180,"props":5029,"children":5030},{"class":1254,"line":80},[5031,5036],{"type":17,"tag":180,"props":5032,"children":5033},{"style":4895},[5034],{"type":22,"value":5035},"  \"WebFetch(domain:moonshot.cn)\"",{"type":17,"tag":180,"props":5037,"children":5038},{"style":4901},[5039],{"type":22,"value":4928},{"type":17,"tag":180,"props":5041,"children":5042},{"class":1254,"line":1281},[5043,5048],{"type":17,"tag":180,"props":5044,"children":5045},{"style":4895},[5046],{"type":22,"value":5047},"  \"WebFetch(domain:qwen.ai)\"",{"type":17,"tag":180,"props":5049,"children":5050},{"style":4901},[5051],{"type":22,"value":4928},{"type":17,"tag":180,"props":5053,"children":5054},{"class":1254,"line":1290},[5055,5060],{"type":17,"tag":180,"props":5056,"children":5057},{"style":4895},[5058],{"type":22,"value":5059},"  \"WebFetch(domain:google.com)\"",{"type":17,"tag":180,"props":5061,"children":5062},{"style":4901},[5063],{"type":22,"value":4928},{"type":17,"tag":180,"props":5065,"children":5066},{"class":1254,"line":1299},[5067,5072],{"type":17,"tag":180,"props":5068,"children":5069},{"style":4895},[5070],{"type":22,"value":5071},"  \"WebFetch(domain:anthropic.com)\"",{"type":17,"tag":180,"props":5073,"children":5074},{"style":4901},[5075],{"type":22,"value":4928},{"type":17,"tag":180,"props":5077,"children":5078},{"class":1254,"line":1308},[5079,5084],{"type":17,"tag":180,"props":5080,"children":5081},{"style":4895},[5082],{"type":22,"value":5083},"  \"WebFetch(domain:openai.com)\"",{"type":17,"tag":180,"props":5085,"children":5086},{"style":4901},[5087],{"type":22,"value":4928},{"type":17,"tag":180,"props":5089,"children":5090},{"class":1254,"line":1317},[5091,5096],{"type":17,"tag":180,"props":5092,"children":5093},{"style":4895},[5094],{"type":22,"value":5095},"  \"WebFetch(domain:arxiv.org)\"",{"type":17,"tag":180,"props":5097,"children":5098},{"style":4901},[5099],{"type":22,"value":4928},{"type":17,"tag":180,"props":5101,"children":5102},{"class":1254,"line":1326},[5103,5108],{"type":17,"tag":180,"props":5104,"children":5105},{"style":4895},[5106],{"type":22,"value":5107},"  \"WebFetch(domain:*.edu)\"",{"type":17,"tag":180,"props":5109,"children":5110},{"style":4901},[5111],{"type":22,"value":4928},{"type":17,"tag":180,"props":5113,"children":5114},{"class":1254,"line":1335},[5115],{"type":17,"tag":180,"props":5116,"children":5117},{"style":4895},[5118],{"type":22,"value":5119},"  \"WebFetch(domain:*.ac.cn)\"\n",{"type":17,"tag":180,"props":5121,"children":5123},{"class":1254,"line":5122},11,[5124],{"type":17,"tag":180,"props":5125,"children":5126},{"style":4901},[5127],{"type":22,"value":5128},"]\n",{"type":17,"tag":18,"props":5130,"children":5131},{},[5132,5134,5140,5142,5148,5150,5156],{"type":22,"value":5133},"域名覆盖建议：主流 AI 厂商（DeepSeek、Moonshot、Qwen、Anthropic、OpenAI），搜索引擎（Google），学术站点（arxiv、各大学 ",{"type":17,"tag":1249,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":22,"value":5139},".edu",{"type":22,"value":5141}," 及中科院 ",{"type":17,"tag":1249,"props":5143,"children":5145},{"className":5144},[],[5146],{"type":22,"value":5147},".ac.cn",{"type":22,"value":5149},"）。支持通配符 ",{"type":17,"tag":1249,"props":5151,"children":5153},{"className":5152},[],[5154],{"type":22,"value":5155},"*.edu",{"type":22,"value":4868},{"type":17,"tag":18,"props":5158,"children":5159},{},[5160,5162,5171,5173,5178,5180,5185],{"type":22,"value":5161},"如果你使用的是非 Claude 官方的供应商，需要把的 ",{"type":17,"tag":106,"props":5163,"children":5164},{},[5165],{"type":17,"tag":1249,"props":5166,"children":5168},{"className":5167},[],[5169],{"type":22,"value":5170},"skipWebFetchPreflight: true",{"type":22,"value":5172}," 一起打开，来启用 ",{"type":17,"tag":1249,"props":5174,"children":5176},{"className":5175},[],[5177],{"type":22,"value":4993},{"type":22,"value":5179}," 工具。另外，",{"type":17,"tag":1249,"props":5181,"children":5183},{"className":5182},[],[5184],{"type":22,"value":4993},{"type":22,"value":5186}," 默认会先发一次预检请求探测域名可达性，再发真正的 GET。对于已经 allow 的可信域名，这一轮纯属浪费 —— 跳过预检后每次抓网页少一轮 RTT。",{"type":17,"tag":4559,"props":5188,"children":5190},{"id":5189},"deny硬性拒绝",[5191,5197],{"type":17,"tag":1249,"props":5192,"children":5194},{"className":5193},[],[5195],{"type":22,"value":5196},"deny",{"type":22,"value":5198},"：硬性拒绝",{"type":17,"tag":18,"props":5200,"children":5201},{},[5202,5204,5209],{"type":22,"value":5203},"无论怎么 prompt 都不会执行的兜底护栏，比 ",{"type":17,"tag":1249,"props":5205,"children":5207},{"className":5206},[],[5208],{"type":22,"value":4980},{"type":22,"value":5210}," 优先级更高：",{"type":17,"tag":1242,"props":5212,"children":5214},{"className":4883,"code":5213,"language":4885,"meta":8,"style":8},"\"deny\": [\n  \"Read(**\u002F.ssh\u002F**)\",\n  \"Read(.\u002Fsecrets\u002F**)\",\n  \"Bash(rm -rf *)\"\n]\n",[5215],{"type":17,"tag":1249,"props":5216,"children":5217},{"__ignoreMap":8},[5218,5230,5242,5254,5262],{"type":17,"tag":180,"props":5219,"children":5220},{"class":1254,"line":1255},[5221,5226],{"type":17,"tag":180,"props":5222,"children":5223},{"style":4895},[5224],{"type":22,"value":5225},"\"deny\"",{"type":17,"tag":180,"props":5227,"children":5228},{"style":4901},[5229],{"type":22,"value":5015},{"type":17,"tag":180,"props":5231,"children":5232},{"class":1254,"line":79},[5233,5238],{"type":17,"tag":180,"props":5234,"children":5235},{"style":4895},[5236],{"type":22,"value":5237},"  \"Read(**\u002F.ssh\u002F**)\"",{"type":17,"tag":180,"props":5239,"children":5240},{"style":4901},[5241],{"type":22,"value":4928},{"type":17,"tag":180,"props":5243,"children":5244},{"class":1254,"line":80},[5245,5250],{"type":17,"tag":180,"props":5246,"children":5247},{"style":4895},[5248],{"type":22,"value":5249},"  \"Read(.\u002Fsecrets\u002F**)\"",{"type":17,"tag":180,"props":5251,"children":5252},{"style":4901},[5253],{"type":22,"value":4928},{"type":17,"tag":180,"props":5255,"children":5256},{"class":1254,"line":1281},[5257],{"type":17,"tag":180,"props":5258,"children":5259},{"style":4895},[5260],{"type":22,"value":5261},"  \"Bash(rm -rf *)\"\n",{"type":17,"tag":180,"props":5263,"children":5264},{"class":1254,"line":1290},[5265],{"type":17,"tag":180,"props":5266,"children":5267},{"style":4901},[5268],{"type":22,"value":5128},{"type":17,"tag":54,"props":5270,"children":5271},{},[5272,5283,5294],{"type":17,"tag":58,"props":5273,"children":5274},{},[5275,5281],{"type":17,"tag":1249,"props":5276,"children":5278},{"className":5277},[],[5279],{"type":22,"value":5280},"Read(**\u002F.ssh\u002F**)",{"type":22,"value":5282},"：防止 Claude 读到 SSH 私钥。",{"type":17,"tag":58,"props":5284,"children":5285},{},[5286,5292],{"type":17,"tag":1249,"props":5287,"children":5289},{"className":5288},[],[5290],{"type":22,"value":5291},"Read(.\u002Fsecrets\u002F**)",{"type":22,"value":5293},"：项目本地的密钥目录。",{"type":17,"tag":58,"props":5295,"children":5296},{},[5297,5303],{"type":17,"tag":1249,"props":5298,"children":5300},{"className":5299},[],[5301],{"type":22,"value":5302},"Bash(rm -rf *)",{"type":22,"value":5304},"：防止递归删除。",{"type":17,"tag":18,"props":5306,"children":5307},{},[5308,5310,5319,5321,5327,5329,5334],{"type":22,"value":5309},"划好这几条红线之后，可以放心打开顶层的 ",{"type":17,"tag":106,"props":5311,"children":5312},{},[5313],{"type":17,"tag":1249,"props":5314,"children":5316},{"className":5315},[],[5317],{"type":22,"value":5318},"skipDangerousModePermissionPrompt: true",{"type":22,"value":5320}," —— 用 ",{"type":17,"tag":1249,"props":5322,"children":5324},{"className":5323},[],[5325],{"type":22,"value":5326},"claude --dangerously-skip-permissions",{"type":22,"value":5328},"（YOLO 模式）启动时，CLI 默认会弹一个红色确认框让你回车确认，这个开关跳过那一步。前提就是 ",{"type":17,"tag":1249,"props":5330,"children":5332},{"className":5331},[],[5333],{"type":22,"value":5196},{"type":22,"value":5335}," 已经把后路封住，否则跳过确认就毫无防护了。",{"type":17,"tag":121,"props":5337,"children":5339},{"id":5338},"钩子hooks",[5340,5342,5347],{"type":22,"value":5341},"钩子（",{"type":17,"tag":1249,"props":5343,"children":5345},{"className":5344},[],[5346],{"type":22,"value":4277},{"type":22,"value":4557},{"type":17,"tag":18,"props":5349,"children":5350},{},[5351,5353,5358],{"type":22,"value":5352},"工具调用前后触发本地命令，可以做日志、改写、拦截、统计等。下面这条把所有 ",{"type":17,"tag":1249,"props":5354,"children":5356},{"className":5355},[],[5357],{"type":22,"value":4334},{"type":22,"value":5359}," 工具的调用接入 RTK（Rust Token Killer）代理，用更短的输出来省 token：",{"type":17,"tag":1242,"props":5361,"children":5363},{"className":4883,"code":5362,"language":4885,"meta":8,"style":8},"\"hooks\": {\n  \"PreToolUse\": [\n    {\n      \"matcher\": \"Bash\",\n      \"hooks\": [\n        {\"type\": \"command\", \"command\": \"rtk hook claude\"}\n      ]\n    }\n  ]\n}\n",[5364],{"type":17,"tag":1249,"props":5365,"children":5366},{"__ignoreMap":8},[5367,5379,5391,5399,5420,5432,5476,5484,5492,5500],{"type":17,"tag":180,"props":5368,"children":5369},{"class":1254,"line":1255},[5370,5375],{"type":17,"tag":180,"props":5371,"children":5372},{"style":4895},[5373],{"type":22,"value":5374},"\"hooks\"",{"type":17,"tag":180,"props":5376,"children":5377},{"style":4901},[5378],{"type":22,"value":4904},{"type":17,"tag":180,"props":5380,"children":5381},{"class":1254,"line":79},[5382,5387],{"type":17,"tag":180,"props":5383,"children":5384},{"style":4910},[5385],{"type":22,"value":5386},"  \"PreToolUse\"",{"type":17,"tag":180,"props":5388,"children":5389},{"style":4901},[5390],{"type":22,"value":5015},{"type":17,"tag":180,"props":5392,"children":5393},{"class":1254,"line":80},[5394],{"type":17,"tag":180,"props":5395,"children":5396},{"style":4901},[5397],{"type":22,"value":5398},"    {\n",{"type":17,"tag":180,"props":5400,"children":5401},{"class":1254,"line":1281},[5402,5407,5411,5416],{"type":17,"tag":180,"props":5403,"children":5404},{"style":4910},[5405],{"type":22,"value":5406},"      \"matcher\"",{"type":17,"tag":180,"props":5408,"children":5409},{"style":4901},[5410],{"type":22,"value":4918},{"type":17,"tag":180,"props":5412,"children":5413},{"style":4895},[5414],{"type":22,"value":5415},"\"Bash\"",{"type":17,"tag":180,"props":5417,"children":5418},{"style":4901},[5419],{"type":22,"value":4928},{"type":17,"tag":180,"props":5421,"children":5422},{"class":1254,"line":1290},[5423,5428],{"type":17,"tag":180,"props":5424,"children":5425},{"style":4910},[5426],{"type":22,"value":5427},"      \"hooks\"",{"type":17,"tag":180,"props":5429,"children":5430},{"style":4901},[5431],{"type":22,"value":5015},{"type":17,"tag":180,"props":5433,"children":5434},{"class":1254,"line":1299},[5435,5440,5445,5449,5454,5459,5463,5467,5472],{"type":17,"tag":180,"props":5436,"children":5437},{"style":4901},[5438],{"type":22,"value":5439},"        {",{"type":17,"tag":180,"props":5441,"children":5442},{"style":4910},[5443],{"type":22,"value":5444},"\"type\"",{"type":17,"tag":180,"props":5446,"children":5447},{"style":4901},[5448],{"type":22,"value":4918},{"type":17,"tag":180,"props":5450,"children":5451},{"style":4895},[5452],{"type":22,"value":5453},"\"command\"",{"type":17,"tag":180,"props":5455,"children":5456},{"style":4901},[5457],{"type":22,"value":5458},", ",{"type":17,"tag":180,"props":5460,"children":5461},{"style":4910},[5462],{"type":22,"value":5453},{"type":17,"tag":180,"props":5464,"children":5465},{"style":4901},[5466],{"type":22,"value":4918},{"type":17,"tag":180,"props":5468,"children":5469},{"style":4895},[5470],{"type":22,"value":5471},"\"rtk hook claude\"",{"type":17,"tag":180,"props":5473,"children":5474},{"style":4901},[5475],{"type":22,"value":4953},{"type":17,"tag":180,"props":5477,"children":5478},{"class":1254,"line":1308},[5479],{"type":17,"tag":180,"props":5480,"children":5481},{"style":4901},[5482],{"type":22,"value":5483},"      ]\n",{"type":17,"tag":180,"props":5485,"children":5486},{"class":1254,"line":1317},[5487],{"type":17,"tag":180,"props":5488,"children":5489},{"style":4901},[5490],{"type":22,"value":5491},"    }\n",{"type":17,"tag":180,"props":5493,"children":5494},{"class":1254,"line":1326},[5495],{"type":17,"tag":180,"props":5496,"children":5497},{"style":4901},[5498],{"type":22,"value":5499},"  ]\n",{"type":17,"tag":180,"props":5501,"children":5502},{"class":1254,"line":1335},[5503],{"type":17,"tag":180,"props":5504,"children":5505},{"style":4901},[5506],{"type":22,"value":4953},{"type":17,"tag":18,"props":5508,"children":5509},{},[5510,5516,5518,5523,5524,5529,5530,5536,5537,5543,5545,5551,5553,5559,5560,5566,5567,5573,5574,5580],{"type":17,"tag":1249,"props":5511,"children":5513},{"className":5512},[],[5514],{"type":22,"value":5515},"matcher",{"type":22,"value":5517}," 支持按工具名匹配（",{"type":17,"tag":1249,"props":5519,"children":5521},{"className":5520},[],[5522],{"type":22,"value":4334},{"type":22,"value":4741},{"type":17,"tag":1249,"props":5525,"children":5527},{"className":5526},[],[5528],{"type":22,"value":4327},{"type":22,"value":4741},{"type":17,"tag":1249,"props":5531,"children":5533},{"className":5532},[],[5534],{"type":22,"value":5535},"Edit",{"type":22,"value":4741},{"type":17,"tag":1249,"props":5538,"children":5540},{"className":5539},[],[5541],{"type":22,"value":5542},"Write",{"type":22,"value":5544}," 等），",{"type":17,"tag":1249,"props":5546,"children":5548},{"className":5547},[],[5549],{"type":22,"value":5550},"PreToolUse",{"type":22,"value":5552}," 在工具执行前触发，对应的还有 ",{"type":17,"tag":1249,"props":5554,"children":5556},{"className":5555},[],[5557],{"type":22,"value":5558},"PostToolUse",{"type":22,"value":4271},{"type":17,"tag":1249,"props":5561,"children":5563},{"className":5562},[],[5564],{"type":22,"value":5565},"UserPromptSubmit",{"type":22,"value":4271},{"type":17,"tag":1249,"props":5568,"children":5570},{"className":5569},[],[5571],{"type":22,"value":5572},"SessionStart",{"type":22,"value":4271},{"type":17,"tag":1249,"props":5575,"children":5577},{"className":5576},[],[5578],{"type":22,"value":5579},"Stop",{"type":22,"value":5581}," 等事件。",{"type":17,"tag":121,"props":5583,"children":5585},{"id":5584},"插件推荐enabledplugins-extraknownmarketplaces",[5586,5588,5593,5595,5601],{"type":22,"value":5587},"插件推荐（",{"type":17,"tag":1249,"props":5589,"children":5591},{"className":5590},[],[5592],{"type":22,"value":4284},{"type":22,"value":5594}," + ",{"type":17,"tag":1249,"props":5596,"children":5598},{"className":5597},[],[5599],{"type":22,"value":5600},"extraKnownMarketplaces",{"type":22,"value":4557},{"type":17,"tag":18,"props":5603,"children":5604},{},[5605,5607,5612,5614,5619,5621,5627],{"type":22,"value":5606},"Claude Code 的插件机制由两部分组成：先在 ",{"type":17,"tag":1249,"props":5608,"children":5610},{"className":5609},[],[5611],{"type":22,"value":5600},{"type":22,"value":5613}," 注册插件仓库，再在 ",{"type":17,"tag":1249,"props":5615,"children":5617},{"className":5616},[],[5618],{"type":22,"value":4284},{"type":22,"value":5620}," 中按 ",{"type":17,"tag":1249,"props":5622,"children":5624},{"className":5623},[],[5625],{"type":22,"value":5626},"插件名@市场名",{"type":22,"value":5628}," 启用。",{"type":17,"tag":4559,"props":5630,"children":5632},{"id":5631},"注册插件市场",[5633],{"type":22,"value":5631},{"type":17,"tag":1242,"props":5635,"children":5637},{"className":4883,"code":5636,"language":4885,"meta":8,"style":8},"\"extraKnownMarketplaces\": {\n  \"wakatime\": {\n    \"source\": {\"source\": \"git\", \"url\": \"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"}\n  },\n  \"ponytail\": {\n    \"source\": {\"source\": \"github\", \"repo\": \"DietrichGebert\u002Fponytail\"}\n  },\n  \"claude-hud\": {\n    \"source\": {\"source\": \"github\", \"repo\": \"jarrodwatts\u002Fclaude-hud\"}\n  }\n}\n",[5638],{"type":17,"tag":1249,"props":5639,"children":5640},{"__ignoreMap":8},[5641,5653,5665,5714,5722,5734,5780,5787,5799,5843,5851],{"type":17,"tag":180,"props":5642,"children":5643},{"class":1254,"line":1255},[5644,5649],{"type":17,"tag":180,"props":5645,"children":5646},{"style":4895},[5647],{"type":22,"value":5648},"\"extraKnownMarketplaces\"",{"type":17,"tag":180,"props":5650,"children":5651},{"style":4901},[5652],{"type":22,"value":4904},{"type":17,"tag":180,"props":5654,"children":5655},{"class":1254,"line":79},[5656,5661],{"type":17,"tag":180,"props":5657,"children":5658},{"style":4910},[5659],{"type":22,"value":5660},"  \"wakatime\"",{"type":17,"tag":180,"props":5662,"children":5663},{"style":4901},[5664],{"type":22,"value":4904},{"type":17,"tag":180,"props":5666,"children":5667},{"class":1254,"line":80},[5668,5673,5678,5683,5687,5692,5696,5701,5705,5710],{"type":17,"tag":180,"props":5669,"children":5670},{"style":4910},[5671],{"type":22,"value":5672},"    \"source\"",{"type":17,"tag":180,"props":5674,"children":5675},{"style":4901},[5676],{"type":22,"value":5677},": {",{"type":17,"tag":180,"props":5679,"children":5680},{"style":4910},[5681],{"type":22,"value":5682},"\"source\"",{"type":17,"tag":180,"props":5684,"children":5685},{"style":4901},[5686],{"type":22,"value":4918},{"type":17,"tag":180,"props":5688,"children":5689},{"style":4895},[5690],{"type":22,"value":5691},"\"git\"",{"type":17,"tag":180,"props":5693,"children":5694},{"style":4901},[5695],{"type":22,"value":5458},{"type":17,"tag":180,"props":5697,"children":5698},{"style":4910},[5699],{"type":22,"value":5700},"\"url\"",{"type":17,"tag":180,"props":5702,"children":5703},{"style":4901},[5704],{"type":22,"value":4918},{"type":17,"tag":180,"props":5706,"children":5707},{"style":4895},[5708],{"type":22,"value":5709},"\"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"",{"type":17,"tag":180,"props":5711,"children":5712},{"style":4901},[5713],{"type":22,"value":4953},{"type":17,"tag":180,"props":5715,"children":5716},{"class":1254,"line":1281},[5717],{"type":17,"tag":180,"props":5718,"children":5719},{"style":4901},[5720],{"type":22,"value":5721},"  },\n",{"type":17,"tag":180,"props":5723,"children":5724},{"class":1254,"line":1290},[5725,5730],{"type":17,"tag":180,"props":5726,"children":5727},{"style":4910},[5728],{"type":22,"value":5729},"  \"ponytail\"",{"type":17,"tag":180,"props":5731,"children":5732},{"style":4901},[5733],{"type":22,"value":4904},{"type":17,"tag":180,"props":5735,"children":5736},{"class":1254,"line":1299},[5737,5741,5745,5749,5753,5758,5762,5767,5771,5776],{"type":17,"tag":180,"props":5738,"children":5739},{"style":4910},[5740],{"type":22,"value":5672},{"type":17,"tag":180,"props":5742,"children":5743},{"style":4901},[5744],{"type":22,"value":5677},{"type":17,"tag":180,"props":5746,"children":5747},{"style":4910},[5748],{"type":22,"value":5682},{"type":17,"tag":180,"props":5750,"children":5751},{"style":4901},[5752],{"type":22,"value":4918},{"type":17,"tag":180,"props":5754,"children":5755},{"style":4895},[5756],{"type":22,"value":5757},"\"github\"",{"type":17,"tag":180,"props":5759,"children":5760},{"style":4901},[5761],{"type":22,"value":5458},{"type":17,"tag":180,"props":5763,"children":5764},{"style":4910},[5765],{"type":22,"value":5766},"\"repo\"",{"type":17,"tag":180,"props":5768,"children":5769},{"style":4901},[5770],{"type":22,"value":4918},{"type":17,"tag":180,"props":5772,"children":5773},{"style":4895},[5774],{"type":22,"value":5775},"\"DietrichGebert\u002Fponytail\"",{"type":17,"tag":180,"props":5777,"children":5778},{"style":4901},[5779],{"type":22,"value":4953},{"type":17,"tag":180,"props":5781,"children":5782},{"class":1254,"line":1308},[5783],{"type":17,"tag":180,"props":5784,"children":5785},{"style":4901},[5786],{"type":22,"value":5721},{"type":17,"tag":180,"props":5788,"children":5789},{"class":1254,"line":1317},[5790,5795],{"type":17,"tag":180,"props":5791,"children":5792},{"style":4910},[5793],{"type":22,"value":5794},"  \"claude-hud\"",{"type":17,"tag":180,"props":5796,"children":5797},{"style":4901},[5798],{"type":22,"value":4904},{"type":17,"tag":180,"props":5800,"children":5801},{"class":1254,"line":1326},[5802,5806,5810,5814,5818,5822,5826,5830,5834,5839],{"type":17,"tag":180,"props":5803,"children":5804},{"style":4910},[5805],{"type":22,"value":5672},{"type":17,"tag":180,"props":5807,"children":5808},{"style":4901},[5809],{"type":22,"value":5677},{"type":17,"tag":180,"props":5811,"children":5812},{"style":4910},[5813],{"type":22,"value":5682},{"type":17,"tag":180,"props":5815,"children":5816},{"style":4901},[5817],{"type":22,"value":4918},{"type":17,"tag":180,"props":5819,"children":5820},{"style":4895},[5821],{"type":22,"value":5757},{"type":17,"tag":180,"props":5823,"children":5824},{"style":4901},[5825],{"type":22,"value":5458},{"type":17,"tag":180,"props":5827,"children":5828},{"style":4910},[5829],{"type":22,"value":5766},{"type":17,"tag":180,"props":5831,"children":5832},{"style":4901},[5833],{"type":22,"value":4918},{"type":17,"tag":180,"props":5835,"children":5836},{"style":4895},[5837],{"type":22,"value":5838},"\"jarrodwatts\u002Fclaude-hud\"",{"type":17,"tag":180,"props":5840,"children":5841},{"style":4901},[5842],{"type":22,"value":4953},{"type":17,"tag":180,"props":5844,"children":5845},{"class":1254,"line":1335},[5846],{"type":17,"tag":180,"props":5847,"children":5848},{"style":4901},[5849],{"type":22,"value":5850},"  }\n",{"type":17,"tag":180,"props":5852,"children":5853},{"class":1254,"line":5122},[5854],{"type":17,"tag":180,"props":5855,"children":5856},{"style":4901},[5857],{"type":22,"value":4953},{"type":17,"tag":18,"props":5859,"children":5860},{},[5861,5867],{"type":17,"tag":1249,"props":5862,"children":5864},{"className":5863},[],[5865],{"type":22,"value":5866},"source",{"type":22,"value":5868}," 类型有两种：",{"type":17,"tag":54,"props":5870,"children":5871},{},[5872,5890],{"type":17,"tag":58,"props":5873,"children":5874},{},[5875,5881,5882,5888],{"type":17,"tag":1249,"props":5876,"children":5878},{"className":5877},[],[5879],{"type":22,"value":5880},"\"source\": \"github\"",{"type":22,"value":5594},{"type":17,"tag":1249,"props":5883,"children":5885},{"className":5884},[],[5886],{"type":22,"value":5887},"repo",{"type":22,"value":5889},"：GitHub 仓库的简写。",{"type":17,"tag":58,"props":5891,"children":5892},{},[5893,5899,5900,5906],{"type":17,"tag":1249,"props":5894,"children":5896},{"className":5895},[],[5897],{"type":22,"value":5898},"\"source\": \"git\"",{"type":22,"value":5594},{"type":17,"tag":1249,"props":5901,"children":5903},{"className":5902},[],[5904],{"type":22,"value":5905},"url",{"type":22,"value":5907},"：任意 Git URL，包括自建 Gitea \u002F GitLab。",{"type":17,"tag":4559,"props":5909,"children":5911},{"id":5910},"启用具体插件",[5912],{"type":22,"value":5910},{"type":17,"tag":1242,"props":5914,"children":5916},{"className":4883,"code":5915,"language":4885,"meta":8,"style":8},"\"enabledPlugins\": {\n  \"claude-code-wakatime@wakatime\": true,\n  \"ponytail@ponytail\": true,\n  \"skill-creator@claude-plugins-official\": true,\n  \"claude-md-management@claude-plugins-official\": true,\n  \"superpowers@claude-plugins-official\": true,\n  \"code-simplifier@claude-plugins-official\": true,\n  \"claude-hud@claude-hud\": true\n}\n",[5917],{"type":17,"tag":1249,"props":5918,"children":5919},{"__ignoreMap":8},[5920,5932,5952,5972,5992,6012,6032,6052,6069],{"type":17,"tag":180,"props":5921,"children":5922},{"class":1254,"line":1255},[5923,5928],{"type":17,"tag":180,"props":5924,"children":5925},{"style":4895},[5926],{"type":22,"value":5927},"\"enabledPlugins\"",{"type":17,"tag":180,"props":5929,"children":5930},{"style":4901},[5931],{"type":22,"value":4904},{"type":17,"tag":180,"props":5933,"children":5934},{"class":1254,"line":79},[5935,5940,5944,5948],{"type":17,"tag":180,"props":5936,"children":5937},{"style":4910},[5938],{"type":22,"value":5939},"  \"claude-code-wakatime@wakatime\"",{"type":17,"tag":180,"props":5941,"children":5942},{"style":4901},[5943],{"type":22,"value":4918},{"type":17,"tag":180,"props":5945,"children":5946},{"style":4910},[5947],{"type":22,"value":219},{"type":17,"tag":180,"props":5949,"children":5950},{"style":4901},[5951],{"type":22,"value":4928},{"type":17,"tag":180,"props":5953,"children":5954},{"class":1254,"line":80},[5955,5960,5964,5968],{"type":17,"tag":180,"props":5956,"children":5957},{"style":4910},[5958],{"type":22,"value":5959},"  \"ponytail@ponytail\"",{"type":17,"tag":180,"props":5961,"children":5962},{"style":4901},[5963],{"type":22,"value":4918},{"type":17,"tag":180,"props":5965,"children":5966},{"style":4910},[5967],{"type":22,"value":219},{"type":17,"tag":180,"props":5969,"children":5970},{"style":4901},[5971],{"type":22,"value":4928},{"type":17,"tag":180,"props":5973,"children":5974},{"class":1254,"line":1281},[5975,5980,5984,5988],{"type":17,"tag":180,"props":5976,"children":5977},{"style":4910},[5978],{"type":22,"value":5979},"  \"skill-creator@claude-plugins-official\"",{"type":17,"tag":180,"props":5981,"children":5982},{"style":4901},[5983],{"type":22,"value":4918},{"type":17,"tag":180,"props":5985,"children":5986},{"style":4910},[5987],{"type":22,"value":219},{"type":17,"tag":180,"props":5989,"children":5990},{"style":4901},[5991],{"type":22,"value":4928},{"type":17,"tag":180,"props":5993,"children":5994},{"class":1254,"line":1290},[5995,6000,6004,6008],{"type":17,"tag":180,"props":5996,"children":5997},{"style":4910},[5998],{"type":22,"value":5999},"  \"claude-md-management@claude-plugins-official\"",{"type":17,"tag":180,"props":6001,"children":6002},{"style":4901},[6003],{"type":22,"value":4918},{"type":17,"tag":180,"props":6005,"children":6006},{"style":4910},[6007],{"type":22,"value":219},{"type":17,"tag":180,"props":6009,"children":6010},{"style":4901},[6011],{"type":22,"value":4928},{"type":17,"tag":180,"props":6013,"children":6014},{"class":1254,"line":1299},[6015,6020,6024,6028],{"type":17,"tag":180,"props":6016,"children":6017},{"style":4910},[6018],{"type":22,"value":6019},"  \"superpowers@claude-plugins-official\"",{"type":17,"tag":180,"props":6021,"children":6022},{"style":4901},[6023],{"type":22,"value":4918},{"type":17,"tag":180,"props":6025,"children":6026},{"style":4910},[6027],{"type":22,"value":219},{"type":17,"tag":180,"props":6029,"children":6030},{"style":4901},[6031],{"type":22,"value":4928},{"type":17,"tag":180,"props":6033,"children":6034},{"class":1254,"line":1308},[6035,6040,6044,6048],{"type":17,"tag":180,"props":6036,"children":6037},{"style":4910},[6038],{"type":22,"value":6039},"  \"code-simplifier@claude-plugins-official\"",{"type":17,"tag":180,"props":6041,"children":6042},{"style":4901},[6043],{"type":22,"value":4918},{"type":17,"tag":180,"props":6045,"children":6046},{"style":4910},[6047],{"type":22,"value":219},{"type":17,"tag":180,"props":6049,"children":6050},{"style":4901},[6051],{"type":22,"value":4928},{"type":17,"tag":180,"props":6053,"children":6054},{"class":1254,"line":1317},[6055,6060,6064],{"type":17,"tag":180,"props":6056,"children":6057},{"style":4910},[6058],{"type":22,"value":6059},"  \"claude-hud@claude-hud\"",{"type":17,"tag":180,"props":6061,"children":6062},{"style":4901},[6063],{"type":22,"value":4918},{"type":17,"tag":180,"props":6065,"children":6066},{"style":4910},[6067],{"type":22,"value":6068},"true\n",{"type":17,"tag":180,"props":6070,"children":6071},{"class":1254,"line":1326},[6072],{"type":17,"tag":180,"props":6073,"children":6074},{"style":4901},[6075],{"type":22,"value":4953},{"type":17,"tag":18,"props":6077,"children":6078},{},[6079,6085,6087,6092],{"type":17,"tag":1249,"props":6080,"children":6082},{"className":6081},[],[6083],{"type":22,"value":6084},"claude-plugins-official",{"type":22,"value":6086}," 是内置的官方市场，不用在 ",{"type":17,"tag":1249,"props":6088,"children":6090},{"className":6089},[],[6091],{"type":22,"value":5600},{"type":22,"value":6093}," 里注册。这套配置里启用的几个插件：",{"type":17,"tag":54,"props":6095,"children":6096},{},[6097,6107,6117,6127,6144,6154,6164],{"type":17,"tag":58,"props":6098,"children":6099},{},[6100,6105],{"type":17,"tag":106,"props":6101,"children":6102},{},[6103],{"type":22,"value":6104},"claude-code-wakatime",{"type":22,"value":6106},"：把编码时长记录到 WakaTime。",{"type":17,"tag":58,"props":6108,"children":6109},{},[6110,6115],{"type":17,"tag":106,"props":6111,"children":6112},{},[6113],{"type":22,"value":6114},"ponytail",{"type":22,"value":6116},"：强制\"懒人最简解\"风格，避免过度工程。",{"type":17,"tag":58,"props":6118,"children":6119},{},[6120,6125],{"type":17,"tag":106,"props":6121,"children":6122},{},[6123],{"type":22,"value":6124},"skill-creator",{"type":22,"value":6126},"：创建、修改、衡量 skill。",{"type":17,"tag":58,"props":6128,"children":6129},{},[6130,6135,6137,6143],{"type":17,"tag":106,"props":6131,"children":6132},{},[6133],{"type":22,"value":6134},"claude-md-management",{"type":22,"value":6136},"：管理 ",{"type":17,"tag":1249,"props":6138,"children":6140},{"className":6139},[],[6141],{"type":22,"value":6142},"CLAUDE.md",{"type":22,"value":4868},{"type":17,"tag":58,"props":6145,"children":6146},{},[6147,6152],{"type":17,"tag":106,"props":6148,"children":6149},{},[6150],{"type":22,"value":6151},"superpowers",{"type":22,"value":6153},"：一组通用工作流 skill（TDD、调试、code review、计划撰写等）。",{"type":17,"tag":58,"props":6155,"children":6156},{},[6157,6162],{"type":17,"tag":106,"props":6158,"children":6159},{},[6160],{"type":22,"value":6161},"code-simplifier",{"type":22,"value":6163},"：在保持功能不变的前提下精简最近改动的代码。",{"type":17,"tag":58,"props":6165,"children":6166},{},[6167,6172,6174,6180,6182,6188],{"type":17,"tag":106,"props":6168,"children":6169},{},[6170],{"type":22,"value":6171},"claude-hud",{"type":22,"value":6173},"：状态栏 HUD，需要 ",{"type":17,"tag":1249,"props":6175,"children":6177},{"className":6176},[],[6178],{"type":22,"value":6179},"\u002Fclaude-hub:setup",{"type":22,"value":6181}," 初始化，其实和官方提供的 ",{"type":17,"tag":1249,"props":6183,"children":6185},{"className":6184},[],[6186],{"type":22,"value":6187},"\u002Fstatusline \u003Cprompt>",{"type":22,"value":6189}," 没区别。",{"type":17,"tag":18,"props":6191,"children":6192},{},[6193],{"type":22,"value":6194},"这些是通用的插件，而且都没有 MCP，只是 skills，挺轻量的，我就默认一直启用了。其他特定功能的插件根据项目按需开启。",{"type":17,"tag":121,"props":6196,"children":6198},{"id":6197},"我的配置分享",[6199],{"type":22,"value":6197},{"type":17,"tag":18,"props":6201,"children":6202},{},[6203],{"type":22,"value":6204},"下面是我在CC-Switch里的通用配置：",{"type":17,"tag":1242,"props":6206,"children":6208},{"className":4883,"code":6207,"language":4885,"meta":8,"style":8},"{\n  \"env\": {\n    \"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC\": \"true\",\n    \"CLAUDE_CODE_EFFORT_LEVEL\": \"max\",\n    \"DISABLE_AUTOUPDATER\": \"1\",\n    \"DISABLE_ERROR_REPORTING\": \"true\",\n    \"DISABLE_TELEMETRY\": \"true\",\n    \"ENABLE_TOOL_SEARCH\": \"true\"\n  },\n  \"attribution\": {\n    \"commit\": \"\",\n    \"pr\": \"\"\n  },\n  \"model\": \"opus[1m]\",\n  \"permissions\": {\n    \"allow\": [\n      \"WebFetch(domain:deepseek.com)\",\n      \"WebFetch(domain:moonshot.cn)\",\n      \"WebFetch(domain:qwen.ai)\",\n      \"WebFetch(domain:google.com)\",\n      \"WebFetch(domain:anthropic.com)\",\n      \"WebFetch(domain:openai.com)\",\n      \"WebFetch(domain:arxiv.org)\",\n      \"WebFetch(domain:*.edu)\",\n      \"WebFetch(domain:*.ac.cn)\"\n    ],\n    \"deny\": [\n      \"Read(**\u002F.ssh\u002F**)\",\n      \"Read(.\u002Fsecrets\u002F**)\",\n      \"Bash(rm -rf *)\"\n    ]\n  },\n  \"hooks\": {\n    \"PreToolUse\": [\n      {\n        \"matcher\": \"Bash\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"rtk hook claude\"\n          }\n        ]\n      }\n    ]\n  },\n  \"enabledPlugins\": {\n    \"claude-code-wakatime@wakatime\": true,\n    \"ponytail@ponytail\": true,\n    \"skill-creator@claude-plugins-official\": true,\n    \"claude-md-management@claude-plugins-official\": true,\n    \"superpowers@claude-plugins-official\": true,\n    \"code-simplifier@claude-plugins-official\": true,\n    \"claude-hud@claude-hud\": true\n  },\n  \"extraKnownMarketplaces\": {\n    \"wakatime\": {\n      \"source\": {\n        \"source\": \"git\",\n        \"url\": \"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"\n      }\n    },\n    \"ponytail\": {\n      \"source\": {\n        \"source\": \"github\",\n        \"repo\": \"DietrichGebert\u002Fponytail\"\n      }\n    },\n    \"claude-hud\": {\n      \"source\": {\n        \"source\": \"github\",\n        \"repo\": \"jarrodwatts\u002Fclaude-hud\"\n      }\n    }\n  },\n  \"skipDangerousModePermissionPrompt\": true,\n  \"skipWebFetchPreflight\": true\n}\n",[6209],{"type":17,"tag":1249,"props":6210,"children":6211},{"__ignoreMap":8},[6212,6220,6232,6253,6274,6295,6315,6335,6352,6359,6371,6391,6408,6416,6438,6451,6464,6477,6490,6503,6516,6529,6542,6555,6568,6577,6586,6599,6612,6625,6634,6643,6651,6664,6677,6686,6707,6720,6729,6750,6768,6777,6786,6795,6803,6811,6824,6845,6866,6887,6908,6929,6950,6967,6975,6988,7001,7014,7035,7053,7061,7070,7083,7095,7115,7133,7141,7149,7162,7174,7194,7211,7219,7227,7235,7256,7273],{"type":17,"tag":180,"props":6213,"children":6214},{"class":1254,"line":1255},[6215],{"type":17,"tag":180,"props":6216,"children":6217},{"style":4901},[6218],{"type":22,"value":6219},"{\n",{"type":17,"tag":180,"props":6221,"children":6222},{"class":1254,"line":79},[6223,6228],{"type":17,"tag":180,"props":6224,"children":6225},{"style":4910},[6226],{"type":22,"value":6227},"  \"env\"",{"type":17,"tag":180,"props":6229,"children":6230},{"style":4901},[6231],{"type":22,"value":4904},{"type":17,"tag":180,"props":6233,"children":6234},{"class":1254,"line":80},[6235,6240,6244,6249],{"type":17,"tag":180,"props":6236,"children":6237},{"style":4910},[6238],{"type":22,"value":6239},"    \"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC\"",{"type":17,"tag":180,"props":6241,"children":6242},{"style":4901},[6243],{"type":22,"value":4918},{"type":17,"tag":180,"props":6245,"children":6246},{"style":4895},[6247],{"type":22,"value":6248},"\"true\"",{"type":17,"tag":180,"props":6250,"children":6251},{"style":4901},[6252],{"type":22,"value":4928},{"type":17,"tag":180,"props":6254,"children":6255},{"class":1254,"line":1281},[6256,6261,6265,6270],{"type":17,"tag":180,"props":6257,"children":6258},{"style":4910},[6259],{"type":22,"value":6260},"    \"CLAUDE_CODE_EFFORT_LEVEL\"",{"type":17,"tag":180,"props":6262,"children":6263},{"style":4901},[6264],{"type":22,"value":4918},{"type":17,"tag":180,"props":6266,"children":6267},{"style":4895},[6268],{"type":22,"value":6269},"\"max\"",{"type":17,"tag":180,"props":6271,"children":6272},{"style":4901},[6273],{"type":22,"value":4928},{"type":17,"tag":180,"props":6275,"children":6276},{"class":1254,"line":1290},[6277,6282,6286,6291],{"type":17,"tag":180,"props":6278,"children":6279},{"style":4910},[6280],{"type":22,"value":6281},"    \"DISABLE_AUTOUPDATER\"",{"type":17,"tag":180,"props":6283,"children":6284},{"style":4901},[6285],{"type":22,"value":4918},{"type":17,"tag":180,"props":6287,"children":6288},{"style":4895},[6289],{"type":22,"value":6290},"\"1\"",{"type":17,"tag":180,"props":6292,"children":6293},{"style":4901},[6294],{"type":22,"value":4928},{"type":17,"tag":180,"props":6296,"children":6297},{"class":1254,"line":1299},[6298,6303,6307,6311],{"type":17,"tag":180,"props":6299,"children":6300},{"style":4910},[6301],{"type":22,"value":6302},"    \"DISABLE_ERROR_REPORTING\"",{"type":17,"tag":180,"props":6304,"children":6305},{"style":4901},[6306],{"type":22,"value":4918},{"type":17,"tag":180,"props":6308,"children":6309},{"style":4895},[6310],{"type":22,"value":6248},{"type":17,"tag":180,"props":6312,"children":6313},{"style":4901},[6314],{"type":22,"value":4928},{"type":17,"tag":180,"props":6316,"children":6317},{"class":1254,"line":1308},[6318,6323,6327,6331],{"type":17,"tag":180,"props":6319,"children":6320},{"style":4910},[6321],{"type":22,"value":6322},"    \"DISABLE_TELEMETRY\"",{"type":17,"tag":180,"props":6324,"children":6325},{"style":4901},[6326],{"type":22,"value":4918},{"type":17,"tag":180,"props":6328,"children":6329},{"style":4895},[6330],{"type":22,"value":6248},{"type":17,"tag":180,"props":6332,"children":6333},{"style":4901},[6334],{"type":22,"value":4928},{"type":17,"tag":180,"props":6336,"children":6337},{"class":1254,"line":1317},[6338,6343,6347],{"type":17,"tag":180,"props":6339,"children":6340},{"style":4910},[6341],{"type":22,"value":6342},"    \"ENABLE_TOOL_SEARCH\"",{"type":17,"tag":180,"props":6344,"children":6345},{"style":4901},[6346],{"type":22,"value":4918},{"type":17,"tag":180,"props":6348,"children":6349},{"style":4895},[6350],{"type":22,"value":6351},"\"true\"\n",{"type":17,"tag":180,"props":6353,"children":6354},{"class":1254,"line":1326},[6355],{"type":17,"tag":180,"props":6356,"children":6357},{"style":4901},[6358],{"type":22,"value":5721},{"type":17,"tag":180,"props":6360,"children":6361},{"class":1254,"line":1335},[6362,6367],{"type":17,"tag":180,"props":6363,"children":6364},{"style":4910},[6365],{"type":22,"value":6366},"  \"attribution\"",{"type":17,"tag":180,"props":6368,"children":6369},{"style":4901},[6370],{"type":22,"value":4904},{"type":17,"tag":180,"props":6372,"children":6373},{"class":1254,"line":5122},[6374,6379,6383,6387],{"type":17,"tag":180,"props":6375,"children":6376},{"style":4910},[6377],{"type":22,"value":6378},"    \"commit\"",{"type":17,"tag":180,"props":6380,"children":6381},{"style":4901},[6382],{"type":22,"value":4918},{"type":17,"tag":180,"props":6384,"children":6385},{"style":4895},[6386],{"type":22,"value":4923},{"type":17,"tag":180,"props":6388,"children":6389},{"style":4901},[6390],{"type":22,"value":4928},{"type":17,"tag":180,"props":6392,"children":6394},{"class":1254,"line":6393},12,[6395,6400,6404],{"type":17,"tag":180,"props":6396,"children":6397},{"style":4910},[6398],{"type":22,"value":6399},"    \"pr\"",{"type":17,"tag":180,"props":6401,"children":6402},{"style":4901},[6403],{"type":22,"value":4918},{"type":17,"tag":180,"props":6405,"children":6406},{"style":4895},[6407],{"type":22,"value":4945},{"type":17,"tag":180,"props":6409,"children":6411},{"class":1254,"line":6410},13,[6412],{"type":17,"tag":180,"props":6413,"children":6414},{"style":4901},[6415],{"type":22,"value":5721},{"type":17,"tag":180,"props":6417,"children":6419},{"class":1254,"line":6418},14,[6420,6425,6429,6434],{"type":17,"tag":180,"props":6421,"children":6422},{"style":4910},[6423],{"type":22,"value":6424},"  \"model\"",{"type":17,"tag":180,"props":6426,"children":6427},{"style":4901},[6428],{"type":22,"value":4918},{"type":17,"tag":180,"props":6430,"children":6431},{"style":4895},[6432],{"type":22,"value":6433},"\"opus[1m]\"",{"type":17,"tag":180,"props":6435,"children":6436},{"style":4901},[6437],{"type":22,"value":4928},{"type":17,"tag":180,"props":6439,"children":6441},{"class":1254,"line":6440},15,[6442,6447],{"type":17,"tag":180,"props":6443,"children":6444},{"style":4910},[6445],{"type":22,"value":6446},"  \"permissions\"",{"type":17,"tag":180,"props":6448,"children":6449},{"style":4901},[6450],{"type":22,"value":4904},{"type":17,"tag":180,"props":6452,"children":6454},{"class":1254,"line":6453},16,[6455,6460],{"type":17,"tag":180,"props":6456,"children":6457},{"style":4910},[6458],{"type":22,"value":6459},"    \"allow\"",{"type":17,"tag":180,"props":6461,"children":6462},{"style":4901},[6463],{"type":22,"value":5015},{"type":17,"tag":180,"props":6465,"children":6467},{"class":1254,"line":6466},17,[6468,6473],{"type":17,"tag":180,"props":6469,"children":6470},{"style":4895},[6471],{"type":22,"value":6472},"      \"WebFetch(domain:deepseek.com)\"",{"type":17,"tag":180,"props":6474,"children":6475},{"style":4901},[6476],{"type":22,"value":4928},{"type":17,"tag":180,"props":6478,"children":6480},{"class":1254,"line":6479},18,[6481,6486],{"type":17,"tag":180,"props":6482,"children":6483},{"style":4895},[6484],{"type":22,"value":6485},"      \"WebFetch(domain:moonshot.cn)\"",{"type":17,"tag":180,"props":6487,"children":6488},{"style":4901},[6489],{"type":22,"value":4928},{"type":17,"tag":180,"props":6491,"children":6493},{"class":1254,"line":6492},19,[6494,6499],{"type":17,"tag":180,"props":6495,"children":6496},{"style":4895},[6497],{"type":22,"value":6498},"      \"WebFetch(domain:qwen.ai)\"",{"type":17,"tag":180,"props":6500,"children":6501},{"style":4901},[6502],{"type":22,"value":4928},{"type":17,"tag":180,"props":6504,"children":6506},{"class":1254,"line":6505},20,[6507,6512],{"type":17,"tag":180,"props":6508,"children":6509},{"style":4895},[6510],{"type":22,"value":6511},"      \"WebFetch(domain:google.com)\"",{"type":17,"tag":180,"props":6513,"children":6514},{"style":4901},[6515],{"type":22,"value":4928},{"type":17,"tag":180,"props":6517,"children":6519},{"class":1254,"line":6518},21,[6520,6525],{"type":17,"tag":180,"props":6521,"children":6522},{"style":4895},[6523],{"type":22,"value":6524},"      \"WebFetch(domain:anthropic.com)\"",{"type":17,"tag":180,"props":6526,"children":6527},{"style":4901},[6528],{"type":22,"value":4928},{"type":17,"tag":180,"props":6530,"children":6532},{"class":1254,"line":6531},22,[6533,6538],{"type":17,"tag":180,"props":6534,"children":6535},{"style":4895},[6536],{"type":22,"value":6537},"      \"WebFetch(domain:openai.com)\"",{"type":17,"tag":180,"props":6539,"children":6540},{"style":4901},[6541],{"type":22,"value":4928},{"type":17,"tag":180,"props":6543,"children":6545},{"class":1254,"line":6544},23,[6546,6551],{"type":17,"tag":180,"props":6547,"children":6548},{"style":4895},[6549],{"type":22,"value":6550},"      \"WebFetch(domain:arxiv.org)\"",{"type":17,"tag":180,"props":6552,"children":6553},{"style":4901},[6554],{"type":22,"value":4928},{"type":17,"tag":180,"props":6556,"children":6558},{"class":1254,"line":6557},24,[6559,6564],{"type":17,"tag":180,"props":6560,"children":6561},{"style":4895},[6562],{"type":22,"value":6563},"      \"WebFetch(domain:*.edu)\"",{"type":17,"tag":180,"props":6565,"children":6566},{"style":4901},[6567],{"type":22,"value":4928},{"type":17,"tag":180,"props":6569,"children":6571},{"class":1254,"line":6570},25,[6572],{"type":17,"tag":180,"props":6573,"children":6574},{"style":4895},[6575],{"type":22,"value":6576},"      \"WebFetch(domain:*.ac.cn)\"\n",{"type":17,"tag":180,"props":6578,"children":6580},{"class":1254,"line":6579},26,[6581],{"type":17,"tag":180,"props":6582,"children":6583},{"style":4901},[6584],{"type":22,"value":6585},"    ],\n",{"type":17,"tag":180,"props":6587,"children":6589},{"class":1254,"line":6588},27,[6590,6595],{"type":17,"tag":180,"props":6591,"children":6592},{"style":4910},[6593],{"type":22,"value":6594},"    \"deny\"",{"type":17,"tag":180,"props":6596,"children":6597},{"style":4901},[6598],{"type":22,"value":5015},{"type":17,"tag":180,"props":6600,"children":6602},{"class":1254,"line":6601},28,[6603,6608],{"type":17,"tag":180,"props":6604,"children":6605},{"style":4895},[6606],{"type":22,"value":6607},"      \"Read(**\u002F.ssh\u002F**)\"",{"type":17,"tag":180,"props":6609,"children":6610},{"style":4901},[6611],{"type":22,"value":4928},{"type":17,"tag":180,"props":6613,"children":6615},{"class":1254,"line":6614},29,[6616,6621],{"type":17,"tag":180,"props":6617,"children":6618},{"style":4895},[6619],{"type":22,"value":6620},"      \"Read(.\u002Fsecrets\u002F**)\"",{"type":17,"tag":180,"props":6622,"children":6623},{"style":4901},[6624],{"type":22,"value":4928},{"type":17,"tag":180,"props":6626,"children":6628},{"class":1254,"line":6627},30,[6629],{"type":17,"tag":180,"props":6630,"children":6631},{"style":4895},[6632],{"type":22,"value":6633},"      \"Bash(rm -rf *)\"\n",{"type":17,"tag":180,"props":6635,"children":6637},{"class":1254,"line":6636},31,[6638],{"type":17,"tag":180,"props":6639,"children":6640},{"style":4901},[6641],{"type":22,"value":6642},"    ]\n",{"type":17,"tag":180,"props":6644,"children":6646},{"class":1254,"line":6645},32,[6647],{"type":17,"tag":180,"props":6648,"children":6649},{"style":4901},[6650],{"type":22,"value":5721},{"type":17,"tag":180,"props":6652,"children":6654},{"class":1254,"line":6653},33,[6655,6660],{"type":17,"tag":180,"props":6656,"children":6657},{"style":4910},[6658],{"type":22,"value":6659},"  \"hooks\"",{"type":17,"tag":180,"props":6661,"children":6662},{"style":4901},[6663],{"type":22,"value":4904},{"type":17,"tag":180,"props":6665,"children":6667},{"class":1254,"line":6666},34,[6668,6673],{"type":17,"tag":180,"props":6669,"children":6670},{"style":4910},[6671],{"type":22,"value":6672},"    \"PreToolUse\"",{"type":17,"tag":180,"props":6674,"children":6675},{"style":4901},[6676],{"type":22,"value":5015},{"type":17,"tag":180,"props":6678,"children":6680},{"class":1254,"line":6679},35,[6681],{"type":17,"tag":180,"props":6682,"children":6683},{"style":4901},[6684],{"type":22,"value":6685},"      {\n",{"type":17,"tag":180,"props":6687,"children":6689},{"class":1254,"line":6688},36,[6690,6695,6699,6703],{"type":17,"tag":180,"props":6691,"children":6692},{"style":4910},[6693],{"type":22,"value":6694},"        \"matcher\"",{"type":17,"tag":180,"props":6696,"children":6697},{"style":4901},[6698],{"type":22,"value":4918},{"type":17,"tag":180,"props":6700,"children":6701},{"style":4895},[6702],{"type":22,"value":5415},{"type":17,"tag":180,"props":6704,"children":6705},{"style":4901},[6706],{"type":22,"value":4928},{"type":17,"tag":180,"props":6708,"children":6710},{"class":1254,"line":6709},37,[6711,6716],{"type":17,"tag":180,"props":6712,"children":6713},{"style":4910},[6714],{"type":22,"value":6715},"        \"hooks\"",{"type":17,"tag":180,"props":6717,"children":6718},{"style":4901},[6719],{"type":22,"value":5015},{"type":17,"tag":180,"props":6721,"children":6723},{"class":1254,"line":6722},38,[6724],{"type":17,"tag":180,"props":6725,"children":6726},{"style":4901},[6727],{"type":22,"value":6728},"          {\n",{"type":17,"tag":180,"props":6730,"children":6732},{"class":1254,"line":6731},39,[6733,6738,6742,6746],{"type":17,"tag":180,"props":6734,"children":6735},{"style":4910},[6736],{"type":22,"value":6737},"            \"type\"",{"type":17,"tag":180,"props":6739,"children":6740},{"style":4901},[6741],{"type":22,"value":4918},{"type":17,"tag":180,"props":6743,"children":6744},{"style":4895},[6745],{"type":22,"value":5453},{"type":17,"tag":180,"props":6747,"children":6748},{"style":4901},[6749],{"type":22,"value":4928},{"type":17,"tag":180,"props":6751,"children":6753},{"class":1254,"line":6752},40,[6754,6759,6763],{"type":17,"tag":180,"props":6755,"children":6756},{"style":4910},[6757],{"type":22,"value":6758},"            \"command\"",{"type":17,"tag":180,"props":6760,"children":6761},{"style":4901},[6762],{"type":22,"value":4918},{"type":17,"tag":180,"props":6764,"children":6765},{"style":4895},[6766],{"type":22,"value":6767},"\"rtk hook claude\"\n",{"type":17,"tag":180,"props":6769,"children":6771},{"class":1254,"line":6770},41,[6772],{"type":17,"tag":180,"props":6773,"children":6774},{"style":4901},[6775],{"type":22,"value":6776},"          }\n",{"type":17,"tag":180,"props":6778,"children":6780},{"class":1254,"line":6779},42,[6781],{"type":17,"tag":180,"props":6782,"children":6783},{"style":4901},[6784],{"type":22,"value":6785},"        ]\n",{"type":17,"tag":180,"props":6787,"children":6789},{"class":1254,"line":6788},43,[6790],{"type":17,"tag":180,"props":6791,"children":6792},{"style":4901},[6793],{"type":22,"value":6794},"      }\n",{"type":17,"tag":180,"props":6796,"children":6798},{"class":1254,"line":6797},44,[6799],{"type":17,"tag":180,"props":6800,"children":6801},{"style":4901},[6802],{"type":22,"value":6642},{"type":17,"tag":180,"props":6804,"children":6806},{"class":1254,"line":6805},45,[6807],{"type":17,"tag":180,"props":6808,"children":6809},{"style":4901},[6810],{"type":22,"value":5721},{"type":17,"tag":180,"props":6812,"children":6814},{"class":1254,"line":6813},46,[6815,6820],{"type":17,"tag":180,"props":6816,"children":6817},{"style":4910},[6818],{"type":22,"value":6819},"  \"enabledPlugins\"",{"type":17,"tag":180,"props":6821,"children":6822},{"style":4901},[6823],{"type":22,"value":4904},{"type":17,"tag":180,"props":6825,"children":6827},{"class":1254,"line":6826},47,[6828,6833,6837,6841],{"type":17,"tag":180,"props":6829,"children":6830},{"style":4910},[6831],{"type":22,"value":6832},"    \"claude-code-wakatime@wakatime\"",{"type":17,"tag":180,"props":6834,"children":6835},{"style":4901},[6836],{"type":22,"value":4918},{"type":17,"tag":180,"props":6838,"children":6839},{"style":4910},[6840],{"type":22,"value":219},{"type":17,"tag":180,"props":6842,"children":6843},{"style":4901},[6844],{"type":22,"value":4928},{"type":17,"tag":180,"props":6846,"children":6848},{"class":1254,"line":6847},48,[6849,6854,6858,6862],{"type":17,"tag":180,"props":6850,"children":6851},{"style":4910},[6852],{"type":22,"value":6853},"    \"ponytail@ponytail\"",{"type":17,"tag":180,"props":6855,"children":6856},{"style":4901},[6857],{"type":22,"value":4918},{"type":17,"tag":180,"props":6859,"children":6860},{"style":4910},[6861],{"type":22,"value":219},{"type":17,"tag":180,"props":6863,"children":6864},{"style":4901},[6865],{"type":22,"value":4928},{"type":17,"tag":180,"props":6867,"children":6869},{"class":1254,"line":6868},49,[6870,6875,6879,6883],{"type":17,"tag":180,"props":6871,"children":6872},{"style":4910},[6873],{"type":22,"value":6874},"    \"skill-creator@claude-plugins-official\"",{"type":17,"tag":180,"props":6876,"children":6877},{"style":4901},[6878],{"type":22,"value":4918},{"type":17,"tag":180,"props":6880,"children":6881},{"style":4910},[6882],{"type":22,"value":219},{"type":17,"tag":180,"props":6884,"children":6885},{"style":4901},[6886],{"type":22,"value":4928},{"type":17,"tag":180,"props":6888,"children":6890},{"class":1254,"line":6889},50,[6891,6896,6900,6904],{"type":17,"tag":180,"props":6892,"children":6893},{"style":4910},[6894],{"type":22,"value":6895},"    \"claude-md-management@claude-plugins-official\"",{"type":17,"tag":180,"props":6897,"children":6898},{"style":4901},[6899],{"type":22,"value":4918},{"type":17,"tag":180,"props":6901,"children":6902},{"style":4910},[6903],{"type":22,"value":219},{"type":17,"tag":180,"props":6905,"children":6906},{"style":4901},[6907],{"type":22,"value":4928},{"type":17,"tag":180,"props":6909,"children":6911},{"class":1254,"line":6910},51,[6912,6917,6921,6925],{"type":17,"tag":180,"props":6913,"children":6914},{"style":4910},[6915],{"type":22,"value":6916},"    \"superpowers@claude-plugins-official\"",{"type":17,"tag":180,"props":6918,"children":6919},{"style":4901},[6920],{"type":22,"value":4918},{"type":17,"tag":180,"props":6922,"children":6923},{"style":4910},[6924],{"type":22,"value":219},{"type":17,"tag":180,"props":6926,"children":6927},{"style":4901},[6928],{"type":22,"value":4928},{"type":17,"tag":180,"props":6930,"children":6932},{"class":1254,"line":6931},52,[6933,6938,6942,6946],{"type":17,"tag":180,"props":6934,"children":6935},{"style":4910},[6936],{"type":22,"value":6937},"    \"code-simplifier@claude-plugins-official\"",{"type":17,"tag":180,"props":6939,"children":6940},{"style":4901},[6941],{"type":22,"value":4918},{"type":17,"tag":180,"props":6943,"children":6944},{"style":4910},[6945],{"type":22,"value":219},{"type":17,"tag":180,"props":6947,"children":6948},{"style":4901},[6949],{"type":22,"value":4928},{"type":17,"tag":180,"props":6951,"children":6953},{"class":1254,"line":6952},53,[6954,6959,6963],{"type":17,"tag":180,"props":6955,"children":6956},{"style":4910},[6957],{"type":22,"value":6958},"    \"claude-hud@claude-hud\"",{"type":17,"tag":180,"props":6960,"children":6961},{"style":4901},[6962],{"type":22,"value":4918},{"type":17,"tag":180,"props":6964,"children":6965},{"style":4910},[6966],{"type":22,"value":6068},{"type":17,"tag":180,"props":6968,"children":6970},{"class":1254,"line":6969},54,[6971],{"type":17,"tag":180,"props":6972,"children":6973},{"style":4901},[6974],{"type":22,"value":5721},{"type":17,"tag":180,"props":6976,"children":6978},{"class":1254,"line":6977},55,[6979,6984],{"type":17,"tag":180,"props":6980,"children":6981},{"style":4910},[6982],{"type":22,"value":6983},"  \"extraKnownMarketplaces\"",{"type":17,"tag":180,"props":6985,"children":6986},{"style":4901},[6987],{"type":22,"value":4904},{"type":17,"tag":180,"props":6989,"children":6991},{"class":1254,"line":6990},56,[6992,6997],{"type":17,"tag":180,"props":6993,"children":6994},{"style":4910},[6995],{"type":22,"value":6996},"    \"wakatime\"",{"type":17,"tag":180,"props":6998,"children":6999},{"style":4901},[7000],{"type":22,"value":4904},{"type":17,"tag":180,"props":7002,"children":7004},{"class":1254,"line":7003},57,[7005,7010],{"type":17,"tag":180,"props":7006,"children":7007},{"style":4910},[7008],{"type":22,"value":7009},"      \"source\"",{"type":17,"tag":180,"props":7011,"children":7012},{"style":4901},[7013],{"type":22,"value":4904},{"type":17,"tag":180,"props":7015,"children":7017},{"class":1254,"line":7016},58,[7018,7023,7027,7031],{"type":17,"tag":180,"props":7019,"children":7020},{"style":4910},[7021],{"type":22,"value":7022},"        \"source\"",{"type":17,"tag":180,"props":7024,"children":7025},{"style":4901},[7026],{"type":22,"value":4918},{"type":17,"tag":180,"props":7028,"children":7029},{"style":4895},[7030],{"type":22,"value":5691},{"type":17,"tag":180,"props":7032,"children":7033},{"style":4901},[7034],{"type":22,"value":4928},{"type":17,"tag":180,"props":7036,"children":7038},{"class":1254,"line":7037},59,[7039,7044,7048],{"type":17,"tag":180,"props":7040,"children":7041},{"style":4910},[7042],{"type":22,"value":7043},"        \"url\"",{"type":17,"tag":180,"props":7045,"children":7046},{"style":4901},[7047],{"type":22,"value":4918},{"type":17,"tag":180,"props":7049,"children":7050},{"style":4895},[7051],{"type":22,"value":7052},"\"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"\n",{"type":17,"tag":180,"props":7054,"children":7056},{"class":1254,"line":7055},60,[7057],{"type":17,"tag":180,"props":7058,"children":7059},{"style":4901},[7060],{"type":22,"value":6794},{"type":17,"tag":180,"props":7062,"children":7064},{"class":1254,"line":7063},61,[7065],{"type":17,"tag":180,"props":7066,"children":7067},{"style":4901},[7068],{"type":22,"value":7069},"    },\n",{"type":17,"tag":180,"props":7071,"children":7073},{"class":1254,"line":7072},62,[7074,7079],{"type":17,"tag":180,"props":7075,"children":7076},{"style":4910},[7077],{"type":22,"value":7078},"    \"ponytail\"",{"type":17,"tag":180,"props":7080,"children":7081},{"style":4901},[7082],{"type":22,"value":4904},{"type":17,"tag":180,"props":7084,"children":7086},{"class":1254,"line":7085},63,[7087,7091],{"type":17,"tag":180,"props":7088,"children":7089},{"style":4910},[7090],{"type":22,"value":7009},{"type":17,"tag":180,"props":7092,"children":7093},{"style":4901},[7094],{"type":22,"value":4904},{"type":17,"tag":180,"props":7096,"children":7098},{"class":1254,"line":7097},64,[7099,7103,7107,7111],{"type":17,"tag":180,"props":7100,"children":7101},{"style":4910},[7102],{"type":22,"value":7022},{"type":17,"tag":180,"props":7104,"children":7105},{"style":4901},[7106],{"type":22,"value":4918},{"type":17,"tag":180,"props":7108,"children":7109},{"style":4895},[7110],{"type":22,"value":5757},{"type":17,"tag":180,"props":7112,"children":7113},{"style":4901},[7114],{"type":22,"value":4928},{"type":17,"tag":180,"props":7116,"children":7118},{"class":1254,"line":7117},65,[7119,7124,7128],{"type":17,"tag":180,"props":7120,"children":7121},{"style":4910},[7122],{"type":22,"value":7123},"        \"repo\"",{"type":17,"tag":180,"props":7125,"children":7126},{"style":4901},[7127],{"type":22,"value":4918},{"type":17,"tag":180,"props":7129,"children":7130},{"style":4895},[7131],{"type":22,"value":7132},"\"DietrichGebert\u002Fponytail\"\n",{"type":17,"tag":180,"props":7134,"children":7136},{"class":1254,"line":7135},66,[7137],{"type":17,"tag":180,"props":7138,"children":7139},{"style":4901},[7140],{"type":22,"value":6794},{"type":17,"tag":180,"props":7142,"children":7144},{"class":1254,"line":7143},67,[7145],{"type":17,"tag":180,"props":7146,"children":7147},{"style":4901},[7148],{"type":22,"value":7069},{"type":17,"tag":180,"props":7150,"children":7152},{"class":1254,"line":7151},68,[7153,7158],{"type":17,"tag":180,"props":7154,"children":7155},{"style":4910},[7156],{"type":22,"value":7157},"    \"claude-hud\"",{"type":17,"tag":180,"props":7159,"children":7160},{"style":4901},[7161],{"type":22,"value":4904},{"type":17,"tag":180,"props":7163,"children":7165},{"class":1254,"line":7164},69,[7166,7170],{"type":17,"tag":180,"props":7167,"children":7168},{"style":4910},[7169],{"type":22,"value":7009},{"type":17,"tag":180,"props":7171,"children":7172},{"style":4901},[7173],{"type":22,"value":4904},{"type":17,"tag":180,"props":7175,"children":7177},{"class":1254,"line":7176},70,[7178,7182,7186,7190],{"type":17,"tag":180,"props":7179,"children":7180},{"style":4910},[7181],{"type":22,"value":7022},{"type":17,"tag":180,"props":7183,"children":7184},{"style":4901},[7185],{"type":22,"value":4918},{"type":17,"tag":180,"props":7187,"children":7188},{"style":4895},[7189],{"type":22,"value":5757},{"type":17,"tag":180,"props":7191,"children":7192},{"style":4901},[7193],{"type":22,"value":4928},{"type":17,"tag":180,"props":7195,"children":7197},{"class":1254,"line":7196},71,[7198,7202,7206],{"type":17,"tag":180,"props":7199,"children":7200},{"style":4910},[7201],{"type":22,"value":7123},{"type":17,"tag":180,"props":7203,"children":7204},{"style":4901},[7205],{"type":22,"value":4918},{"type":17,"tag":180,"props":7207,"children":7208},{"style":4895},[7209],{"type":22,"value":7210},"\"jarrodwatts\u002Fclaude-hud\"\n",{"type":17,"tag":180,"props":7212,"children":7214},{"class":1254,"line":7213},72,[7215],{"type":17,"tag":180,"props":7216,"children":7217},{"style":4901},[7218],{"type":22,"value":6794},{"type":17,"tag":180,"props":7220,"children":7222},{"class":1254,"line":7221},73,[7223],{"type":17,"tag":180,"props":7224,"children":7225},{"style":4901},[7226],{"type":22,"value":5491},{"type":17,"tag":180,"props":7228,"children":7230},{"class":1254,"line":7229},74,[7231],{"type":17,"tag":180,"props":7232,"children":7233},{"style":4901},[7234],{"type":22,"value":5721},{"type":17,"tag":180,"props":7236,"children":7238},{"class":1254,"line":7237},75,[7239,7244,7248,7252],{"type":17,"tag":180,"props":7240,"children":7241},{"style":4910},[7242],{"type":22,"value":7243},"  \"skipDangerousModePermissionPrompt\"",{"type":17,"tag":180,"props":7245,"children":7246},{"style":4901},[7247],{"type":22,"value":4918},{"type":17,"tag":180,"props":7249,"children":7250},{"style":4910},[7251],{"type":22,"value":219},{"type":17,"tag":180,"props":7253,"children":7254},{"style":4901},[7255],{"type":22,"value":4928},{"type":17,"tag":180,"props":7257,"children":7259},{"class":1254,"line":7258},76,[7260,7265,7269],{"type":17,"tag":180,"props":7261,"children":7262},{"style":4910},[7263],{"type":22,"value":7264},"  \"skipWebFetchPreflight\"",{"type":17,"tag":180,"props":7266,"children":7267},{"style":4901},[7268],{"type":22,"value":4918},{"type":17,"tag":180,"props":7270,"children":7271},{"style":4910},[7272],{"type":22,"value":6068},{"type":17,"tag":180,"props":7274,"children":7276},{"class":1254,"line":7275},77,[7277],{"type":17,"tag":180,"props":7278,"children":7279},{"style":4901},[7280],{"type":22,"value":4953},{"type":17,"tag":4203,"props":7282,"children":7283},{},[],{"type":17,"tag":18,"props":7285,"children":7286},{},[7287,7289,7294,7295,7301],{"type":22,"value":7288},"日常用下来，",{"type":17,"tag":1249,"props":7290,"children":7292},{"className":7291},[],[7293],{"type":22,"value":4449},{"type":22,"value":5594},{"type":17,"tag":1249,"props":7296,"children":7298},{"className":7297},[],[7299],{"type":22,"value":7300},"permissions.allow\u002Fdeny",{"type":22,"value":7302}," + 几个 skill 插件，基本就能覆盖 90% 的需求。",{"type":17,"tag":4218,"props":7304,"children":7305},{},[7306],{"type":22,"value":4222},{"title":8,"searchDepth":79,"depth":80,"links":7308},[7309,7310,7316,7318,7320,7327,7329,7334],{"id":4289,"depth":79,"text":4289},{"id":4547,"depth":79,"text":7311,"children":7312},"环境变量（env）",[7313,7314,7315],{"id":4561,"depth":80,"text":4561},{"id":4627,"depth":80,"text":4627},{"id":4688,"depth":80,"text":4691},{"id":4821,"depth":79,"text":7317},"模型（model）",{"id":4871,"depth":79,"text":7319},"提交署名（attribution）",{"id":4961,"depth":79,"text":7321,"children":7322},"权限（permissions）",[7323,7325],{"id":4973,"depth":80,"text":7324},"allow：预授权",{"id":5189,"depth":80,"text":7326},"deny：硬性拒绝",{"id":5338,"depth":79,"text":7328},"钩子（hooks）",{"id":5584,"depth":79,"text":7330,"children":7331},"插件推荐（enabledPlugins + extraKnownMarketplaces）",[7332,7333],{"id":5631,"depth":80,"text":5631},{"id":5910,"depth":80,"text":5910},{"id":6197,"depth":79,"text":6197},"content:posts:claude-code-settings.md","posts\u002Fclaude-code-settings.md","posts\u002Fclaude-code-settings",{"_path":7339,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7340,"description":7341,"date":7342,"categories":7343,"tags":7344,"draft":7,"body":7345,"_type":82,"_id":7526,"_source":84,"_file":7527,"_stem":7528,"_extension":87},"\u002Fposts\u002Fmy-thoughts-on-the-ai-industry","简单聊聊对 AI Agent 行业的理解","写这篇文章的初衷，是我发觉逐渐忘了前两个月的 AI\u002FLLMs 是什么样的能力和情况了。意识中似乎某些在突然加速，但理性和直觉告诉我这不对，作为行内人，我知道这是一个渐进的、累积的过程。我想自己回忆一下，Agent的发展。","2026-06-20 13:14:25","技术杂谈",[95,4238,4239],{"type":14,"children":7346,"toc":7521},[7347,7352,7357,7362,7367,7372,7377,7382,7396,7401,7406,7411,7416,7421,7426,7431,7436,7441,7447,7452,7462,7467,7477,7487,7499,7511,7516],{"type":17,"tag":18,"props":7348,"children":7349},{},[7350],{"type":22,"value":7351},"我印象里 AI Agent 的概念在 2024 年的时候就逐步走向成熟了。凭我模糊的回忆说一下（不保证正确）。",{"type":17,"tag":18,"props":7353,"children":7354},{},[7355],{"type":22,"value":7356},"一开始 22 年 ChatGPT 就以 ChatBot 的形式爆火。那个时候还称不上现在的 Agent，充其量就是浓缩了大量世界知识的 ChatBot。23年24年开始有了\"Agent\"应用，一开始的那个忘了叫什么名字了（Logo长得像个骆驼的），是 AI 写小说的。我是看见一个学长研究生毕业做的，这个我印象很深。从这里开始，我们不仅仅只是用一个集人类精华的存在去 Chat，而是通过一种组织的形式，发挥它的知识和能力，开始有意识根据模型本身的能力设计一个系统，让模型在这个系统中完成任务，这可以说是早期的 harness 了。",{"type":17,"tag":18,"props":7358,"children":7359},{},[7360],{"type":22,"value":7361},"而 tool-calling 之类的能力，也是在这种系统性地使用模型能力的时候的自发实践。就像很早的 GPT-Academic，就是自己实现 function，配合 prompt 完成对 paper 的拆解。这份能力太过广泛和基础，下游的使用促使上游模型训练端让模型 tool-calling 的能力进一步加强，成为 ReasoningLLM 的标准能力。后面则是对这份 tool-calling 能力的扩展，从原本的工具调用会出错，到单次工具调用成功，再到多次工具调用——模型在工具使用上已经成了专家。",{"type":17,"tag":18,"props":7363,"children":7364},{},[7365],{"type":22,"value":7366},"而能够使用工具，就是 Agentic 能力的一个关键点。在此之前的所谓 Agent，不过是 prompt APPs 罢了。",{"type":17,"tag":121,"props":7368,"children":7370},{"id":7369},"节奏",[7371],{"type":22,"value":7369},{"type":17,"tag":18,"props":7373,"children":7374},{},[7375],{"type":22,"value":7376},"我在24年暑假关注到了 AstrBot 这个项目，那个时候 LLMs 的能力刚好够到能进行工具调用的程度，但鲜少有 QQBot 的项目把 tool-call LLM 作为一等公民接入 QQ，AstrBot做了。比较早期的就跟进了 MCP，沙箱执行，工具调用。我当时顺手给 AstrBot 提了个 typo fix，修了下启动时的 logo，哈哈。但我后续在使用 AstrBot 的时候感到了厌倦——我没有感受到它带给了我什么。让 Bot 更像人？和人交互？我根本用不上。",{"type":17,"tag":18,"props":7378,"children":7379},{},[7380],{"type":22,"value":7381},"2024年有些 PaaS Agent APP 平台，比如 Dify、Coze 等等。RAG的概念也是作为增强模型能力的一个方法为人所熟知，一个是可以解决 AI 幻觉问题，一个是解决 AI 上下文不够长的问题。",{"type":17,"tag":18,"props":7383,"children":7384},{},[7385,7387,7394],{"type":22,"value":7386},"而这个时候，token 的消耗量并没有那么大, dsr1 context length 128k，单次对话就调用一个工具。但是仅仅在 2025 年 Q2，Agentic AI的概念就提出来了（与此同时是大量的 agentic 框架，这是25Q2有人列举的",{"type":17,"tag":138,"props":7388,"children":7391},{"href":7389,"rel":7390},"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1B37VxTBuGLeTSPVWtz7UMsCdtXrqV5hCjWkbHN8tfAo\u002Fedit?ref=blog.langchain.dev&pli=1&gid=0#gid=0",[142],[7392],{"type":22,"value":7393},"不同agent框架之间的对比",{"type":22,"value":7395},"），并且就是我们现在常谈论的 agent，而非之前的改改 system prompt 的 'agent'。那个时候还有很多 agent 框架，不管是非常早就出来的 LangChain、还是算比较新的 autogen、LangGraph 这些都是很方便去构建 workflow 式的 agent的平台，开发 agent 的门槛变得很低。但这个时候业界反应还没有那么大（2025Q2）——相应的就是机会非常多，因为绝大多数人都没有做过 agent。而今一年过去了，体感上各种培训班已经满天飞了。",{"type":17,"tag":18,"props":7397,"children":7398},{},[7399],{"type":22,"value":7400},"另外一个，token消耗量在模型长上下文普及和长程任务能力越来越强的现在激增。我一天开发一个项目最高能烧掉1B的token，这换在ChatBot时代是无法想象的。而海量的token就代表着海量的数据，而且还是之前现实世界没有的，agentic的long horizon任务执行的轨迹数据，这是新一轮的数据飞轮。随着 Transformer 架构的不断升级，现在 dsv4 解决了 KV Cache 算力、显存消耗太大的问题（之前只是解决Attn上的算力和显存问题，而长上下文中KV Cache带来的问题没有解决），能够在 128k的上下文做预训练，这是以前不敢想的。人类产生数据的速度也在激增。这有点像烧着能源，让大模型有了左脚踩右脚的能力，当然中间少不了人类做 pilot 和 steer，以保证模型和人类 align。",{"type":17,"tag":18,"props":7402,"children":7403},{},[7404],{"type":22,"value":7405},"2025年 vibe coding 的概念就已经深入人心。25五一的时候，有同学问我课程项目（前端后端数据库）能不能全用 vibe coding，我说试试，应该能。他最后全 vibe coding 成功了。那个时候就有所谓'前端已死'的论调，并在 Gemini 3（2025Q4）的时候极为强烈。",{"type":17,"tag":18,"props":7407,"children":7408},{},[7409],{"type":22,"value":7410},"之后出现的 AI 产品五花八门。AI 陪伴类的一直都有（酒馆、MiniMax的星野 etc.），这种情感类的反馈周期长，算法的 reward 太多太广太复杂，很难有好的确切的标准做 SFT，并且需要长周期的反馈，很难直接 eval 效果。还有 AI Researcher，印象里这个 OpenAI 先做的，然后 Kimi 似乎是跟进的不错的那个。Kimi Research，记得当时他们的模型做到了一次对话能够调用上百个工具，出了个产品 OK Computer，来做单次请求的长程解决，这个时候（2025Q3）似乎各家就能做到单次30分钟以上的持续执行了。2025Q4 的 skills 概念的提出让 Agentic AI 的易用性进一步降低，（skills这个概念真神了）skills，可以说是 LLM Infra 中的 FlashAttention。将修改模型上下文的权利下放（而这是 agentic 系统中至关重要的），通过 skills 可以直接给模型传输经验、方法、流程、领域知识、思路，等等等等。直接让通用模型的能力轻松落地。而且通过三步渐进暴露的方式做了漂亮的 context engineering，是 Agent在C端变得高可用的一个至关重要的概念。",{"type":17,"tag":18,"props":7412,"children":7413},{},[7414],{"type":22,"value":7415},"写到这里，我发现模型变动的速度太快了。两个月甚至一个月模型厂商就能把新一代的post-training的模型端上来。模型能力的提升从上游往下游不断传播，影响巨大。",{"type":17,"tag":18,"props":7417,"children":7418},{},[7419],{"type":22,"value":7420},"一个类似玩笑的说法是，这个月你用 AI Coding 感到棘手的项目，你大可放置一段时间，等新一代模型发布的时候，过去的难题可能就迎刃而解了。这反应在行业里面很残酷——就像做垂直领域的一些 AI Agent 产品，现在正在被通用的 Codex 吃掉市场份额一样。",{"type":17,"tag":18,"props":7422,"children":7423},{},[7424],{"type":22,"value":7425},"其实也告诉了我们时间很重要。这个月是这样，下个月情况可能就会反转，像 Fable 5 这样的事情，之前已经发生过，未来一定还会发生。但是这个具体的变动谁也不清楚，不身处在水中，怎么能摸到第一线的变化？",{"type":17,"tag":121,"props":7427,"children":7429},{"id":7428},"破圈",[7430],{"type":22,"value":7428},{"type":17,"tag":18,"props":7432,"children":7433},{},[7434],{"type":22,"value":7435},"2026Q1 Opus 4.6 发布之后，我第一次感觉到 Agentic AI 真正意义上的破圈了，好像 AI 真的突破了某种能力的上限，而那种上限格外诱人，各个行业和领域的人都开始为之疯狂。当然这种FOMO并非2026才发生的，更早就有了。",{"type":17,"tag":18,"props":7437,"children":7438},{},[7439],{"type":22,"value":7440},"另一个破圈的是 OpenClaw（ClawBot），这玩意我记得在 Dev 中有过一次传播，但似乎大家没有这么在意。隔了一两个月在 Q1 和 Q2 之间的时候，OpenClaw突然破圈了，引起了一波 Claw 潮。我其实到现在也没有想明白是为什么？难道是真的发现了 AI Agent 的能力已经足够在生产生活中起到作用了吗？但是资本似乎从此刻就开始狂欢。智谱、MiniMax接连港股上市，而今估值快万亿。",{"type":17,"tag":121,"props":7442,"children":7444},{"id":7443},"agent-到底在做什么",[7445],{"type":22,"value":7446},"Agent 到底在做什么",{"type":17,"tag":18,"props":7448,"children":7449},{},[7450],{"type":22,"value":7451},"上面啰嗦了这么多，其实真正想聊的是这个：抛开产品和概念，Agent 到底是什么，以及它现在到底能做什么。",{"type":17,"tag":18,"props":7453,"children":7454},{},[7455,7457],{"type":22,"value":7456},"只说 agent 类型的话，可以分作 workflow 和 agent 两种，以及两者之间的东西。但我觉得这个二分法本身没那么重要——更重要的是想清楚一个问题：",{"type":17,"tag":106,"props":7458,"children":7459},{},[7460],{"type":22,"value":7461},"你的业务里，哪些环节需要 agentic，需要到什么程度？",{"type":17,"tag":18,"props":7463,"children":7464},{},[7465],{"type":22,"value":7466},"这个问题比选框架重要得多。不是因为框架不重要，而是因为大多数场景下，你根本不需要一个完全自主的 agent。",{"type":17,"tag":18,"props":7468,"children":7469},{},[7470,7475],{"type":17,"tag":106,"props":7471,"children":7472},{},[7473],{"type":22,"value":7474},"业务流程清晰、规律、稳定、门槛不高",{"type":22,"value":7476},"——这些场景用 workflow 就够了。workflow 的优势不是能力，是可控。每一步的输入输出是确定的，出问题你能定位到具体环节。而一个完全自主的 agent，它做对了你不知道为什么对，做错了你也不知道在哪一步开始偏的。对于大多数企业场景，可控性比智能程度更值钱。",{"type":17,"tag":18,"props":7478,"children":7479},{},[7480,7485],{"type":17,"tag":106,"props":7481,"children":7482},{},[7483],{"type":22,"value":7484},"垂直领域",{"type":22,"value":7486},"就是另一回事了。通用模型 + skills 在垂直领域的效果往往不好，而且可预计的未来通用模型在这些领域的数据都比较稀缺。这时候要么训练\u002F微调，要么结合领域知识的 RAG。如果做不到微调模型，就只能用 workflow 去逼近效果。这不是最好的方案，但是是可行的方案。",{"type":17,"tag":18,"props":7488,"children":7489},{},[7490,7492,7497],{"type":22,"value":7491},"这中间有一个我反复想到的问题：",{"type":17,"tag":106,"props":7493,"children":7494},{},[7495],{"type":22,"value":7496},"上下文。",{"type":22,"value":7498}," 不管是 workflow 还是 agent，让模型接收到正确的、充足的、合适的上下文，决定了整个系统的上限。上下文给少了模型瞎猜，给多了模型被噪声淹没，给错了方向整个就偏了。这件事说起来简单，实际上极其依赖对业务的理解——你得知道什么信息对决策是关键的，什么信息是噪音。这不是技术问题，是领域知识问题。",{"type":17,"tag":18,"props":7500,"children":7501},{},[7502,7504,7509],{"type":22,"value":7503},"另一个同样关键但更难的事情是",{"type":17,"tag":106,"props":7505,"children":7506},{},[7507],{"type":22,"value":7508},"评估",{"type":22,"value":7510},"。怎么知道你的 agent 系统在变好还是变坏？模型一更新，prompt 一改，工具一换，行为就可能变了。如果没有一套评估手段，你就是在盲飞。但评估 agent 比评估模型难得多——因为 agent 的输出不是单点的，是多步的、有状态的、和环境交互的。单次工具调用对不对？连续调用的顺序对不对？最终结果对不对？三个维度的评估，目前行业里也没有很好的统一方案。",{"type":17,"tag":18,"props":7512,"children":7513},{},[7514],{"type":22,"value":7515},"这也是为什么我说 OpenClaw 的破圈让我困惑。如果 agent 系统的基础设施——上下文工程、评估体系——都还处在这种\"大家各做各的\"阶段，那它真的准备好进入生产生活了吗？还是说我们又一次高估了短期，而低估了长期？",{"type":17,"tag":18,"props":7517,"children":7518},{},[7519],{"type":22,"value":7520},"后记：写这篇文章的初衷，是我发觉逐渐忘了前两个月的 AI\u002FLLMs 是什么样的能力和情况了。行业的节奏快到你来不及消化今天的东西，明天又变了。我想把现在的理解写下来，是为了过几个月回头再看的时候，能看到自己当时站在哪里，看到了什么，又看漏了什么。人的记忆真的忘的太快了。",{"title":8,"searchDepth":79,"depth":80,"links":7522},[7523,7524,7525],{"id":7369,"depth":79,"text":7369},{"id":7428,"depth":79,"text":7428},{"id":7443,"depth":79,"text":7446},"content:posts:my-thoughts-on-the-AI-industry.md","posts\u002Fmy-thoughts-on-the-AI-industry.md","posts\u002Fmy-thoughts-on-the-AI-industry",{"_path":7530,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7531,"description":8,"date":7532,"categories":93,"tags":7533,"draft":7,"body":7535,"_type":82,"_id":7564,"_source":84,"_file":7565,"_stem":7566,"_extension":87},"\u002Fposts\u002Frotational-positional-encoding","RoPE","2026-06-17 18:31:40",[95,7534,7531],"Transformer",{"type":14,"children":7536,"toc":7562},[7537,7542,7547,7552,7557],{"type":17,"tag":18,"props":7538,"children":7539},{},[7540],{"type":22,"value":7541},"Attn 本身不表示位置，不包含时序信息。在进入 Attn Block 之前，需要将文本的位置信息编码进 Embedding vector 里。",{"type":17,"tag":18,"props":7543,"children":7544},{},[7545],{"type":22,"value":7546},"早期如 BERT 使用的是绝对位置编码，用一个Embedding去表示位置，无法外推，并且还需要额外存储位置信息。相对位置编码，用两个token之间的相对距离去编码解决了外推的问题，但实现很麻烦。",{"type":17,"tag":18,"props":7548,"children":7549},{},[7550],{"type":22,"value":7551},"我们知道 Attn 本身就是抽象出 Query、Key、Value，计算QK相关性找V这个过程，这里用了矩阵乘法。对于矩阵我们有很多trick。同时旋转 Q、K 两个矩阵，他们矩阵点乘的结果就能实现相对位置编码，而旋转过程中频率的衰减自然展现出了绝对位置的信息。",{"type":17,"tag":18,"props":7553,"children":7554},{},[7555],{"type":22,"value":7556},"RoPE 利用了矩阵的数学特性，漂亮地做好了位置编码这件事。只需要做旋转就可以。空间复杂度O(1)，算法复杂度都降了很多。把大的QK矩阵分块改成一对一对的到二维空间做旋转，这些维度对从高到低不同频率衰减包含在其中。高频负责近距离，中频平衡精度和范围，低频确定远距离位置。外推能力强，没有引入额外的复杂度，非常美丽。",{"type":17,"tag":18,"props":7558,"children":7559},{},[7560],{"type":22,"value":7561},"如果位置信息能从off到其他模块，RoPE这块还能减负。比如使用Linear Attn，如Gated DeltaNet，自带很强的位置理解。Attn就可以把长程的位置理解off掉，用Partial RoPE保留高频部分，只理解近邻的位置信息即可。",{"title":8,"searchDepth":79,"depth":80,"links":7563},[],"content:posts:rotational-positional-encoding.md","posts\u002Frotational-positional-encoding.md","posts\u002Frotational-positional-encoding",{"_path":7568,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7569,"description":8,"date":7570,"categories":93,"tags":7571,"draft":7,"body":7572,"_type":82,"_id":7849,"_source":84,"_file":7850,"_stem":7851,"_extension":87},"\u002Fposts\u002Fintroduction-to-large-language-model","大语言模型入门基础","2026-06-16 22:36:11",[7534,95],{"type":14,"children":7573,"toc":7842},[7574,7579,7585,7590,7595,7600,7605,7610,7616,7621,7626,7631,7636,7641,7696,7701,7706,7806,7812,7817,7822,7828,7833,7838],{"type":17,"tag":18,"props":7575,"children":7576},{},[7577],{"type":22,"value":7578},"本文介绍大语言模型(LLM)的基础内容。",{"type":17,"tag":121,"props":7580,"children":7582},{"id":7581},"insight",[7583],{"type":22,"value":7584},"Insight",{"type":17,"tag":18,"props":7586,"children":7587},{},[7588],{"type":22,"value":7589},"对于推理时的 LLMs 来说，它只做一件事：预测下一个 token。这听起来是一件非常简单的一件事。为什么 LLMs 却在文本模态上表现的如此全能呢？",{"type":17,"tag":18,"props":7591,"children":7592},{},[7593],{"type":22,"value":7594},"力大砖飞？道法自然？或许都对。LLMs 在海量数据上做了 pretrain。截止到2026年4月份，国内开源的几家模型公司在预训练阶段训练的token数量大约都在30T-35TB之间。模型每个参数预训练消耗的token都远大于20了。并且我相信这个数据使用量会在 DeepSeek V4 分享他们新的稀疏方法后，继续增长。另外，qwen 小模型的实践告诉了我们：预训练时，随着数据量的增多，即使是小模型，其能力也在稳步提升。",{"type":17,"tag":121,"props":7596,"children":7598},{"id":7597},"数据飞轮",[7599],{"type":22,"value":7597},{"type":17,"tag":18,"props":7601,"children":7602},{},[7603],{"type":22,"value":7604},"在模型的长上下文突破(RoPE、YaRN), 基座模型 Agentic 能力提升， LLM Infra(vLLM、SGLang etc.) Day0级跟进支持等等突破之后，一批全新的、过去没有的长上下文 Agent 任务的数据在飞速产生。这个时候谁拥有更多数据（并且能聪明地运用），那么他们下一代的模型就会更强，这是个正反馈的过程，也被称为数据飞轮。",{"type":17,"tag":18,"props":7606,"children":7607},{},[7608],{"type":22,"value":7609},"数据飞轮正在拉大不同模型厂商之间的差距。",{"type":17,"tag":121,"props":7611,"children":7613},{"id":7612},"看到新的-token-产生的时候发生了什么",[7614],{"type":22,"value":7615},"看到新的 Token 产生的时候，发生了什么？",{"type":17,"tag":18,"props":7617,"children":7618},{},[7619],{"type":22,"value":7620},"使用 LLM 时，输入的是人类的文本，输出的是人类的文本，这个过程中模型到底做了什么呢？",{"type":17,"tag":18,"props":7622,"children":7623},{},[7624],{"type":22,"value":7625},"在看到文本的前一步，token是经过采样后得到的next token ID，根据ID一做 detokenizer 就得到看见的文本了。",{"type":17,"tag":18,"props":7627,"children":7628},{},[7629],{"type":22,"value":7630},"得到 token id 的前一步，是经过 Softmax 计算出的一个概率矩阵，根据不同的解码策略（贪婪解码：取概率最大的； 投机解码：需要 MTP 模块； 或者按概率采样等等），选择next token id。再上一步就是 logits。我们平常说的 Temperature（对 logits 矩阵做除法）、Top-K（只在概率最大的K个Token中选）、Top-P（只在累积概率P以内的Token中选）都是在这步做的。",{"type":17,"tag":18,"props":7632,"children":7633},{},[7634],{"type":22,"value":7635},"logits 输出前是 LM Head（Linear 层），它将 hidden Linear 的特征数扩大到词表的大小。在此之前是文本经过 Embedding 向量化和 PE（Positional Encode）后进入若干个 Transformer Block 后又过了一遍 RMSNorm。",{"type":17,"tag":18,"props":7637,"children":7638},{},[7639],{"type":22,"value":7640},"Transformer Block很简单。就是 Attn 机制加上前馈网络（FFN）罢了。",{"type":17,"tag":1242,"props":7642,"children":7644},{"className":1244,"code":7643,"language":1246,"meta":8,"style":8},"# Input: x\n# Transformer Block\ndef forward(self, x):\n    x = x + Attn(RMSNorm(x))  # 简单的残差\n    x = x + FFN(RMSNorm(x))\n    return x\n",[7645],{"type":17,"tag":1249,"props":7646,"children":7647},{"__ignoreMap":8},[7648,7656,7664,7672,7680,7688],{"type":17,"tag":180,"props":7649,"children":7650},{"class":1254,"line":1255},[7651],{"type":17,"tag":180,"props":7652,"children":7653},{},[7654],{"type":22,"value":7655},"# Input: x\n",{"type":17,"tag":180,"props":7657,"children":7658},{"class":1254,"line":79},[7659],{"type":17,"tag":180,"props":7660,"children":7661},{},[7662],{"type":22,"value":7663},"# Transformer Block\n",{"type":17,"tag":180,"props":7665,"children":7666},{"class":1254,"line":80},[7667],{"type":17,"tag":180,"props":7668,"children":7669},{},[7670],{"type":22,"value":7671},"def forward(self, x):\n",{"type":17,"tag":180,"props":7673,"children":7674},{"class":1254,"line":1281},[7675],{"type":17,"tag":180,"props":7676,"children":7677},{},[7678],{"type":22,"value":7679},"    x = x + Attn(RMSNorm(x))  # 简单的残差\n",{"type":17,"tag":180,"props":7681,"children":7682},{"class":1254,"line":1290},[7683],{"type":17,"tag":180,"props":7684,"children":7685},{},[7686],{"type":22,"value":7687},"    x = x + FFN(RMSNorm(x))\n",{"type":17,"tag":180,"props":7689,"children":7690},{"class":1254,"line":1299},[7691],{"type":17,"tag":180,"props":7692,"children":7693},{},[7694],{"type":22,"value":7695},"    return x\n",{"type":17,"tag":18,"props":7697,"children":7698},{},[7699],{"type":22,"value":7700},"Attn 机制的话，现在有DSA、MLA等等。不过未来的趋势还是掌管稀疏的神——DeepSeek的新Attention的时代，这成本降的太夸张了。",{"type":17,"tag":18,"props":7702,"children":7703},{},[7704],{"type":22,"value":7705},"干了什么？混合注意力（CSA：压缩稀疏注意力， HCA：高度压缩注意力）。不仅仅是上一代注意力的稀疏性，还直接对 Attn 进行压缩。表明了一个潜在的观点，对于长上下文（百万级），即使利用其稀疏性能够将 Attn 的算法复杂度降到 O(L)级。但是面对长上下文存储的 KV Cache还是无能为力。V4 直接对 Attn 进行压缩，减少 KV Cache数量。（Tips: KV Cache可以近似看成 Context 的物理实体）",{"type":17,"tag":1242,"props":7707,"children":7709},{"className":1244,"code":7708,"language":1246,"meta":8,"style":8},"def forward(self, x):\n    # 计算多头注意力 -> xq, xk, xv\n    xq, xk = RMSNorm(xq), RMSNorm(xk) # qk-norm\n    \n    xq, xk = apply_RoPE(xq, xk, cos, sin) # 加入相对位置编码\n    #... 存 KV Cache。  \n    # KV Cache 一般存显存。但是现在有存在SSD上的，比如DeepSeek，使得缓存命中成本惊人的低，是未来降低推理成本的一个方向\n\n    output = F.scaled_dot_product_attention(xq, xk, xk, is_casual=True) # FlashAttention\n    output = output.transpose(1, 2).reshape(bsz, seq_lean, -1)\n\n    return output, past_kv\n",[7710],{"type":17,"tag":1249,"props":7711,"children":7712},{"__ignoreMap":8},[7713,7720,7728,7736,7744,7752,7760,7768,7775,7783,7791,7798],{"type":17,"tag":180,"props":7714,"children":7715},{"class":1254,"line":1255},[7716],{"type":17,"tag":180,"props":7717,"children":7718},{},[7719],{"type":22,"value":7671},{"type":17,"tag":180,"props":7721,"children":7722},{"class":1254,"line":79},[7723],{"type":17,"tag":180,"props":7724,"children":7725},{},[7726],{"type":22,"value":7727},"    # 计算多头注意力 -> xq, xk, xv\n",{"type":17,"tag":180,"props":7729,"children":7730},{"class":1254,"line":80},[7731],{"type":17,"tag":180,"props":7732,"children":7733},{},[7734],{"type":22,"value":7735},"    xq, xk = RMSNorm(xq), RMSNorm(xk) # qk-norm\n",{"type":17,"tag":180,"props":7737,"children":7738},{"class":1254,"line":1281},[7739],{"type":17,"tag":180,"props":7740,"children":7741},{},[7742],{"type":22,"value":7743},"    \n",{"type":17,"tag":180,"props":7745,"children":7746},{"class":1254,"line":1290},[7747],{"type":17,"tag":180,"props":7748,"children":7749},{},[7750],{"type":22,"value":7751},"    xq, xk = apply_RoPE(xq, xk, cos, sin) # 加入相对位置编码\n",{"type":17,"tag":180,"props":7753,"children":7754},{"class":1254,"line":1299},[7755],{"type":17,"tag":180,"props":7756,"children":7757},{},[7758],{"type":22,"value":7759},"    #... 存 KV Cache。  \n",{"type":17,"tag":180,"props":7761,"children":7762},{"class":1254,"line":1308},[7763],{"type":17,"tag":180,"props":7764,"children":7765},{},[7766],{"type":22,"value":7767},"    # KV Cache 一般存显存。但是现在有存在SSD上的，比如DeepSeek，使得缓存命中成本惊人的低，是未来降低推理成本的一个方向\n",{"type":17,"tag":180,"props":7769,"children":7770},{"class":1254,"line":1317},[7771],{"type":17,"tag":180,"props":7772,"children":7773},{"emptyLinePlaceholder":1267},[7774],{"type":22,"value":1270},{"type":17,"tag":180,"props":7776,"children":7777},{"class":1254,"line":1326},[7778],{"type":17,"tag":180,"props":7779,"children":7780},{},[7781],{"type":22,"value":7782},"    output = F.scaled_dot_product_attention(xq, xk, xk, is_casual=True) # FlashAttention\n",{"type":17,"tag":180,"props":7784,"children":7785},{"class":1254,"line":1335},[7786],{"type":17,"tag":180,"props":7787,"children":7788},{},[7789],{"type":22,"value":7790},"    output = output.transpose(1, 2).reshape(bsz, seq_lean, -1)\n",{"type":17,"tag":180,"props":7792,"children":7793},{"class":1254,"line":5122},[7794],{"type":17,"tag":180,"props":7795,"children":7796},{"emptyLinePlaceholder":1267},[7797],{"type":22,"value":1270},{"type":17,"tag":180,"props":7799,"children":7800},{"class":1254,"line":6393},[7801],{"type":17,"tag":180,"props":7802,"children":7803},{},[7804],{"type":22,"value":7805},"    return output, past_kv\n",{"type":17,"tag":121,"props":7807,"children":7809},{"id":7808},"optimizer",[7810],{"type":22,"value":7811},"Optimizer",{"type":17,"tag":18,"props":7813,"children":7814},{},[7815],{"type":22,"value":7816},"除了 Embeding 模型和 LM Head Linear层以及其余Linear层、Bias用 AdamW 优化器，其余矩阵用 Muon(dim>=2)。Muon 能够保证矩阵正交性，可以加速收敛，Loss下降更稳定。但是 Muon 较新，一些后端实现的性能不好（比如 PyTorch 2.12 的 mps 后端， 替换 AdamW 之后训练速度变慢了）。",{"type":17,"tag":18,"props":7818,"children":7819},{},[7820],{"type":22,"value":7821},"不过使用 Muon 是趋势，相比 AdamW 能够减少一半optim的参数使用，训练也更稳定。",{"type":17,"tag":121,"props":7823,"children":7825},{"id":7824},"mtp-多-token-预测",[7826],{"type":22,"value":7827},"MTP 多 Token 预测",{"type":17,"tag":18,"props":7829,"children":7830},{},[7831],{"type":22,"value":7832},"一次推理输出多个 Token。",{"type":17,"tag":18,"props":7834,"children":7835},{},[7836],{"type":22,"value":7837},"如何实现？加上一个 MTP 模块（可以当只有一块注意力块的LLM）：输入是模型预测出的t+1，经过类似的步骤但是Transformer Block只有一块（减少计算量以及显存开销），得到t+2。嵌套调用后可以一次推理得到多个token。和主模型的 logits 一对比后，结果一样的就保留，不一样的就重新预测。因为序列相近，语义大概率类似，因此成功率很高，一般可以实现2-3倍的加速比。",{"type":17,"tag":4218,"props":7839,"children":7840},{},[7841],{"type":22,"value":4222},{"title":8,"searchDepth":79,"depth":80,"links":7843},[7844,7845,7846,7847,7848],{"id":7581,"depth":79,"text":7584},{"id":7597,"depth":79,"text":7597},{"id":7612,"depth":79,"text":7615},{"id":7808,"depth":79,"text":7811},{"id":7824,"depth":79,"text":7827},"content:posts:introduction-to-large-language-model.md","posts\u002Fintroduction-to-large-language-model.md","posts\u002Fintroduction-to-large-language-model",{"_path":7853,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7854,"description":8,"date":7855,"categories":7343,"tags":7856,"draft":7,"body":7857,"_type":82,"_id":7881,"_source":84,"_file":7882,"_stem":7883,"_extension":87},"\u002Fposts\u002Fthought-about-coding-agent","关于 Coding Agent 使用的遐思","2026-06-03 17:54:20",[4239],{"type":14,"children":7858,"toc":7879},[7859,7864,7869,7874],{"type":17,"tag":18,"props":7860,"children":7861},{},[7862],{"type":22,"value":7863},"10年代以后，GitHub激起来的开源浪潮改变了软件工业；全球的 contributor 通过 GitHub 贡献代码，为开源社区做出贡献。\n这公开的代码库，自然成为 AI 训练的素材。另外 DeepWiki 之类通过 AI 解释代码，帮助开发者快速理解代码。\n人们使用 AI 编写文档、注释、行内补全，能力越发强大，DeepWiki 这样直接分析整个代码仓库给出文档的软件大大降低了开发者\n了解某一特性实现的成本。",{"type":17,"tag":18,"props":7865,"children":7866},{},[7867],{"type":22,"value":7868},"如果想复刻某一特性，完全可以在 DeepWiki 上询问相关实现细节，减少了开发者理解代码的难度，同时大大减短了开发者理解的时间。",{"type":17,"tag":18,"props":7870,"children":7871},{},[7872],{"type":22,"value":7873},"在 Research 领域，alphaxiv.com 等产品也对传统的检索、查阅文献的流程进行了挑战。对于这样生产力密集的事情，AI 能够极大提升人的效率。",{"type":17,"tag":18,"props":7875,"children":7876},{},[7877],{"type":22,"value":7878},"但是我一直在日常生活中思考，AI能帮我做到些什么吗？我追问过自己很多遍，最终答案是日常生活用 AI 赋能的 RoI 对一个普通人来说并不高，并不是特别值得做的事情（从能够做成的\u002F需要花费的成本来说）。",{"title":8,"searchDepth":79,"depth":80,"links":7880},[],"content:posts:thought-about-coding-agent.md","posts\u002Fthought-about-coding-agent.md","posts\u002Fthought-about-coding-agent",{"_path":7885,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7886,"description":7887,"date":7888,"categories":93,"tags":7889,"body":7891,"_type":82,"_id":8948,"_source":84,"_file":8949,"_stem":8950,"_extension":87},"\u002Fposts\u002Fabout-ssh-usage","关于SSH的使用——客户端篇","介绍SSH客户端的用法。","2025-06-17 02:44:57",[7890],"工具",{"type":14,"children":7892,"toc":8935},[7893,7898,7911,7916,7929,8087,8092,8159,8204,8225,8325,8331,8336,8342,8347,8352,8389,8402,8407,8412,8417,8450,8455,8460,8465,8473,8478,8483,8488,8591,8596,8633,8728,8741,8754,8759,8788,8825,8830,8836,8841,8846,8851,8904,8909,8920,8931],{"type":17,"tag":18,"props":7894,"children":7895},{},[7896],{"type":22,"value":7897},"本文正在编写中...",{"type":17,"tag":18,"props":7899,"children":7900},{},[7901,7903,7909],{"type":22,"value":7902},"参见 ",{"type":17,"tag":138,"props":7904,"children":7906},{"href":7905},"#reference",[7907],{"type":22,"value":7908},"Reference",{"type":22,"value":7910}," 部分。",{"type":17,"tag":18,"props":7912,"children":7913},{},[7914],{"type":22,"value":7915},"TL;DR",{"type":17,"tag":18,"props":7917,"children":7918},{},[7919,7921,7927],{"type":22,"value":7920},"Secure Shell is a protocol used to securely log onto remote systems.\nIt can be used for logging or executing commands on a remote server.\nMore information: ",{"type":17,"tag":138,"props":7922,"children":7925},{"href":7923,"rel":7924},"https:\u002F\u002Fman.openbsd.org\u002Fssh",[142],[7926],{"type":22,"value":7923},{"type":22,"value":7928},".",{"type":17,"tag":54,"props":7930,"children":7931},{},[7932,7948,7963,8002,8013,8038,8071,8082],{"type":17,"tag":58,"props":7933,"children":7934},{},[7935,7940,7942],{"type":17,"tag":106,"props":7936,"children":7937},{},[7938],{"type":22,"value":7939},"Connect to a remote server",{"type":22,"value":7941},":\n",{"type":17,"tag":1249,"props":7943,"children":7945},{"className":7944},[],[7946],{"type":22,"value":7947},"ssh username@remote_host",{"type":17,"tag":58,"props":7949,"children":7950},{},[7951,7956,7957],{"type":17,"tag":106,"props":7952,"children":7953},{},[7954],{"type":22,"value":7955},"Connect to a remote server with a specific identity (private key)",{"type":22,"value":7941},{"type":17,"tag":1249,"props":7958,"children":7960},{"className":7959},[],[7961],{"type":22,"value":7962},"ssh -i path\u002Fto\u002Fkey_file username@remote_host",{"type":17,"tag":58,"props":7964,"children":7965},{},[7966,7979,7981,7986,7988,7994,7996],{"type":17,"tag":106,"props":7967,"children":7968},{},[7969,7971,7977],{"type":22,"value":7970},"Connect to a remote server with IP ",{"type":17,"tag":1249,"props":7972,"children":7974},{"className":7973},[],[7975],{"type":22,"value":7976},"10.0.0.1",{"type":22,"value":7978}," and using a specific [p]ort",{"type":22,"value":7980},"(Note: ",{"type":17,"tag":1249,"props":7982,"children":7984},{"className":7983},[],[7985],{"type":22,"value":7976},{"type":22,"value":7987}," can be shortened to ",{"type":17,"tag":1249,"props":7989,"children":7991},{"className":7990},[],[7992],{"type":22,"value":7993},"10.1",{"type":22,"value":7995},"):\n",{"type":17,"tag":1249,"props":7997,"children":7999},{"className":7998},[],[8000],{"type":22,"value":8001},"ssh username@10.0.0.1 -p 2222",{"type":17,"tag":58,"props":8003,"children":8004},{},[8005,8007],{"type":22,"value":8006},"Run a command on a remote server with a [t]ty allocation allowing interaction with the remote command:\n",{"type":17,"tag":1249,"props":8008,"children":8010},{"className":8009},[],[8011],{"type":22,"value":8012},"ssh username@remote_host -t command command_arguments",{"type":17,"tag":58,"props":8014,"children":8015},{},[8016,8018,8023,8025,8031,8032],{"type":22,"value":8017},"SSH tunneling: ",{"type":17,"tag":106,"props":8019,"children":8020},{},[8021],{"type":22,"value":8022},"[D]ynamic port forwarding",{"type":22,"value":8024}," (SOCKS proxy on ",{"type":17,"tag":1249,"props":8026,"children":8028},{"className":8027},[],[8029],{"type":22,"value":8030},"localhost:1080",{"type":22,"value":7995},{"type":17,"tag":1249,"props":8033,"children":8035},{"className":8034},[],[8036],{"type":22,"value":8037},"ssh -D 1080 username@remote_host",{"type":17,"tag":58,"props":8039,"children":8040},{},[8041,8042,8047,8049,8055,8057,8063,8065],{"type":22,"value":8017},{"type":17,"tag":106,"props":8043,"children":8044},{},[8045],{"type":22,"value":8046},"Forward a specific port",{"type":22,"value":8048}," (",{"type":17,"tag":1249,"props":8050,"children":8052},{"className":8051},[],[8053],{"type":22,"value":8054},"localhost:9999",{"type":22,"value":8056}," to ",{"type":17,"tag":1249,"props":8058,"children":8060},{"className":8059},[],[8061],{"type":22,"value":8062},"example.org:80",{"type":22,"value":8064},") along with disabling pseudo-[T]ty allocation and executio[N] of remote commands:\n",{"type":17,"tag":1249,"props":8066,"children":8068},{"className":8067},[],[8069],{"type":22,"value":8070},"ssh -L 9999:example.org:80 -N -T username@remote_host",{"type":17,"tag":58,"props":8072,"children":8073},{},[8074,8076],{"type":22,"value":8075},"SSH [J]umping: Connect through a jumphost to a remote server (Multiple jump hops may be specified separated by comma characters):\n",{"type":17,"tag":1249,"props":8077,"children":8079},{"className":8078},[],[8080],{"type":22,"value":8081},"ssh -J username@jump_host username@remote_host",{"type":17,"tag":58,"props":8083,"children":8084},{},[8085],{"type":22,"value":8086},"Close a hanged session:\n\u003CEnter>\u003C~>\u003C.>",{"type":17,"tag":121,"props":8088,"children":8090},{"id":8089},"公钥认证",[8091],{"type":22,"value":8089},{"type":17,"tag":18,"props":8093,"children":8094},{},[8095,8097,8103,8105,8111,8113,8119,8120,8126,8127,8133,8135,8141,8143,8149,8151,8157],{"type":22,"value":8096},"默认情况下，SSH 会寻找 ",{"type":17,"tag":1249,"props":8098,"children":8100},{"className":8099},[],[8101],{"type":22,"value":8102},"~\u002F.ssh\u002Fid_*",{"type":22,"value":8104}," 作为私钥，其中 ",{"type":17,"tag":1249,"props":8106,"children":8108},{"className":8107},[],[8109],{"type":22,"value":8110},"*",{"type":22,"value":8112}," 部分可以是 ",{"type":17,"tag":1249,"props":8114,"children":8116},{"className":8115},[],[8117],{"type":22,"value":8118},"rsa",{"type":22,"value":4271},{"type":17,"tag":1249,"props":8121,"children":8123},{"className":8122},[],[8124],{"type":22,"value":8125},"ecdsa",{"type":22,"value":4271},{"type":17,"tag":1249,"props":8128,"children":8130},{"className":8129},[],[8131],{"type":22,"value":8132},"ed25519",{"type":22,"value":8134}," 等，也可以通过 ",{"type":17,"tag":1249,"props":8136,"children":8138},{"className":8137},[],[8139],{"type":22,"value":8140},"-i",{"type":22,"value":8142}," 参数指定私钥文件。私钥的文件名加上 ",{"type":17,"tag":1249,"props":8144,"children":8146},{"className":8145},[],[8147],{"type":22,"value":8148},".pub",{"type":22,"value":8150}," 后缀就是公钥文件，暂时没有方法指定公钥文件的路径。如果要在配置文件中指定一个或多个私钥，可以使用 ",{"type":17,"tag":1249,"props":8152,"children":8154},{"className":8153},[],[8155],{"type":22,"value":8156},"IdentityFile",{"type":22,"value":8158}," 选项，例如：",{"type":17,"tag":1242,"props":8160,"children":8164},{"className":8161,"code":8162,"language":8163,"meta":8,"style":8},"language-shell shiki shiki-themes github-light github-dark","Host example\n  IdentityFile ~\u002F.ssh\u002Fid_rsa\n  #CertificateFile ~\u002F.ssh\u002Fid_rsa-cert.pub\n","shell",[8165],{"type":17,"tag":1249,"props":8166,"children":8167},{"__ignoreMap":8},[8168,8182,8195],{"type":17,"tag":180,"props":8169,"children":8170},{"class":1254,"line":1255},[8171,8177],{"type":17,"tag":180,"props":8172,"children":8174},{"style":8173},"--shiki-default:#6F42C1;--shiki-dark:#B392F0",[8175],{"type":22,"value":8176},"Host",{"type":17,"tag":180,"props":8178,"children":8179},{"style":4895},[8180],{"type":22,"value":8181}," example\n",{"type":17,"tag":180,"props":8183,"children":8184},{"class":1254,"line":79},[8185,8190],{"type":17,"tag":180,"props":8186,"children":8187},{"style":8173},[8188],{"type":22,"value":8189},"  IdentityFile",{"type":17,"tag":180,"props":8191,"children":8192},{"style":4895},[8193],{"type":22,"value":8194}," ~\u002F.ssh\u002Fid_rsa\n",{"type":17,"tag":180,"props":8196,"children":8197},{"class":1254,"line":80},[8198],{"type":17,"tag":180,"props":8199,"children":8201},{"style":8200},"--shiki-default:#6A737D;--shiki-dark:#6A737D",[8202],{"type":22,"value":8203},"  #CertificateFile ~\u002F.ssh\u002Fid_rsa-cert.pub\n",{"type":17,"tag":18,"props":8205,"children":8206},{},[8207,8209,8215,8217,8223],{"type":22,"value":8208},"一般来说，除非为了兼容一些非常古老（如 10 年前的）或非常简单的（如嵌入式）系统而不得不使用较短的 RSA 密钥对的时候，我们推荐使用 Ed25519 密钥对，或者 ECDSA 密钥对。这两种基于椭圆曲线的密码学算法比 RSA 更安全，而且性能也更好。如果不得不使用 RSA 的话，请尽可能使用 3072 位或更长的密钥长度。密钥长度可以在使用 ",{"type":17,"tag":1249,"props":8210,"children":8212},{"className":8211},[],[8213],{"type":22,"value":8214},"ssh-keygen",{"type":22,"value":8216}," 生成密钥对时指定（",{"type":17,"tag":1249,"props":8218,"children":8220},{"className":8219},[],[8221],{"type":22,"value":8222},"-b",{"type":22,"value":8224},"），其中不同算法支持与推荐的长度也是不同的：",{"type":17,"tag":3943,"props":8226,"children":8227},{},[8228,8255],{"type":17,"tag":3947,"props":8229,"children":8230},{},[8231],{"type":17,"tag":3951,"props":8232,"children":8233},{},[8234,8240,8245,8250],{"type":17,"tag":3955,"props":8235,"children":8237},{"align":8236},"center",[8238],{"type":22,"value":8239},"算法",{"type":17,"tag":3955,"props":8241,"children":8242},{"align":8236},[8243],{"type":22,"value":8244},"支持长度",{"type":17,"tag":3955,"props":8246,"children":8247},{"align":8236},[8248],{"type":22,"value":8249},"推荐长度",{"type":17,"tag":3955,"props":8251,"children":8252},{},[8253],{"type":22,"value":8254},"说明",{"type":17,"tag":3971,"props":8256,"children":8257},{},[8258,8281,8303],{"type":17,"tag":3951,"props":8259,"children":8260},{},[8261,8266,8271,8276],{"type":17,"tag":3978,"props":8262,"children":8263},{"align":8236},[8264],{"type":22,"value":8265},"RSA",{"type":17,"tag":3978,"props":8267,"children":8268},{"align":8236},[8269],{"type":22,"value":8270},"1024-4096",{"type":17,"tag":3978,"props":8272,"children":8273},{"align":8236},[8274],{"type":22,"value":8275},"3072 或以上",{"type":17,"tag":3978,"props":8277,"children":8278},{},[8279],{"type":22,"value":8280},"曾经的推荐长度是 2048 位，但 2020 年以后认为这个长度已不够安全",{"type":17,"tag":3951,"props":8282,"children":8283},{},[8284,8289,8294,8298],{"type":17,"tag":3978,"props":8285,"children":8286},{"align":8236},[8287],{"type":22,"value":8288},"ECDSA",{"type":17,"tag":3978,"props":8290,"children":8291},{"align":8236},[8292],{"type":22,"value":8293},"256 \u002F 384 \u002F 521",{"type":17,"tag":3978,"props":8295,"children":8296},{"align":8236},[8297],{"type":22,"value":8293},{"type":17,"tag":3978,"props":8299,"children":8300},{},[8301],{"type":22,"value":8302},"由于椭圆曲线参数选择的特殊性，只有这三种长度可选。注意最后一个选项是 521，不是 512",{"type":17,"tag":3951,"props":8304,"children":8305},{},[8306,8311,8316,8320],{"type":17,"tag":3978,"props":8307,"children":8308},{"align":8236},[8309],{"type":22,"value":8310},"Ed25519",{"type":17,"tag":3978,"props":8312,"children":8313},{"align":8236},[8314],{"type":22,"value":8315},"-",{"type":17,"tag":3978,"props":8317,"children":8318},{"align":8236},[8319],{"type":22,"value":8315},{"type":17,"tag":3978,"props":8321,"children":8322},{},[8323],{"type":22,"value":8324},"Ed25519 是基于 Edwards 曲线的算法，没有“长度”这种参数",{"type":17,"tag":121,"props":8326,"children":8328},{"id":8327},"端口转发port-transportings",[8329],{"type":22,"value":8330},"端口转发（Port Transportings）",{"type":17,"tag":18,"props":8332,"children":8333},{},[8334],{"type":22,"value":8335},"SSH 配置 TCP 端口转发的格式为 [bind_address:]port:host:hostport，SSH 支持三种端口转发：",{"type":17,"tag":4559,"props":8337,"children":8339},{"id":8338},"动态端口转发dynamic-port-forwarding",[8340],{"type":22,"value":8341},"动态端口转发（Dynamic port forwarding）",{"type":17,"tag":18,"props":8343,"children":8344},{},[8345],{"type":22,"value":8346},"在本地监听一个端口用作 SOCKS5 代理。",{"type":17,"tag":18,"props":8348,"children":8349},{},[8350],{"type":22,"value":8351},"例1 SOCKS服务器",{"type":17,"tag":1242,"props":8353,"children":8357},{"className":8354,"code":8355,"language":8356,"meta":8,"style":8},"language-bash shiki shiki-themes github-light github-dark","ssh -D 1080 vps -N\n","bash",[8358],{"type":17,"tag":1249,"props":8359,"children":8360},{"__ignoreMap":8},[8361],{"type":17,"tag":180,"props":8362,"children":8363},{"class":1254,"line":1255},[8364,8369,8374,8379,8384],{"type":17,"tag":180,"props":8365,"children":8366},{"style":8173},[8367],{"type":22,"value":8368},"ssh",{"type":17,"tag":180,"props":8370,"children":8371},{"style":4910},[8372],{"type":22,"value":8373}," -D",{"type":17,"tag":180,"props":8375,"children":8376},{"style":4910},[8377],{"type":22,"value":8378}," 1080",{"type":17,"tag":180,"props":8380,"children":8381},{"style":4895},[8382],{"type":22,"value":8383}," vps",{"type":17,"tag":180,"props":8385,"children":8386},{"style":4910},[8387],{"type":22,"value":8388}," -N\n",{"type":17,"tag":18,"props":8390,"children":8391},{},[8392,8394,8400],{"type":22,"value":8393},"此时可将远程主机 vps 作为 SOCKS 服务器使用，比如 ",{"type":17,"tag":1249,"props":8395,"children":8397},{"className":8396},[],[8398],{"type":22,"value":8399},"curl -x socks5:\u002F\u002Flocalhost:1080 google.com",{"type":22,"value":8401},"。可以代理绝大多数软件：浏览器，社交媒体，开发工具（如 Git）等。",{"type":17,"tag":18,"props":8403,"children":8404},{},[8405],{"type":22,"value":8406},"另外，对于大学生来说，SSH 动态端口转发结合 OpenVPN 使用可以突破学校上网设备限制。",{"type":17,"tag":4559,"props":8408,"children":8410},{"id":8409},"本地端口转发",[8411],{"type":22,"value":8409},{"type":17,"tag":18,"props":8413,"children":8414},{},[8415],{"type":22,"value":8416},"也叫 Single port forward TCP tunnels。",{"type":17,"tag":1242,"props":8418,"children":8420},{"className":8354,"code":8419,"language":8356,"meta":8,"style":8},"ssh -L 0.0.0.0:8000:localhost:8000 host -N\n",[8421],{"type":17,"tag":1249,"props":8422,"children":8423},{"__ignoreMap":8},[8424],{"type":17,"tag":180,"props":8425,"children":8426},{"class":1254,"line":1255},[8427,8431,8436,8441,8446],{"type":17,"tag":180,"props":8428,"children":8429},{"style":8173},[8430],{"type":22,"value":8368},{"type":17,"tag":180,"props":8432,"children":8433},{"style":4910},[8434],{"type":22,"value":8435}," -L",{"type":17,"tag":180,"props":8437,"children":8438},{"style":4895},[8439],{"type":22,"value":8440}," 0.0.0.0:8000:localhost:8000",{"type":17,"tag":180,"props":8442,"children":8443},{"style":4895},[8444],{"type":22,"value":8445}," host",{"type":17,"tag":180,"props":8447,"children":8448},{"style":4910},[8449],{"type":22,"value":8388},{"type":17,"tag":4559,"props":8451,"children":8453},{"id":8452},"远程端口转发",[8454],{"type":22,"value":8452},{"type":17,"tag":18,"props":8456,"children":8457},{},[8458],{"type":22,"value":8459},"也叫 Reverse TCP Tunnels。",{"type":17,"tag":18,"props":8461,"children":8462},{},[8463],{"type":22,"value":8464},"本地端口转发和远程端口转发的工作模式可以结合由 Ivan Velichko 绘制的图片来理解：",{"type":17,"tag":18,"props":8466,"children":8467},{},[8468],{"type":17,"tag":48,"props":8469,"children":8472},{"alt":8470,"src":8471},"ssh-tunnels","https:\u002F\u002F201.ustclug.org\u002Fimages\u002Fiximiuz-ssh-tunnels-2000-opt.png",[],{"type":17,"tag":18,"props":8474,"children":8475},{},[8476],{"type":22,"value":8477},"结合端口转发与代理的例子",{"type":17,"tag":18,"props":8479,"children":8480},{},[8481],{"type":22,"value":8482},"让服务器使用本机的SSH密钥和网络环境。",{"type":17,"tag":18,"props":8484,"children":8485},{},[8486],{"type":22,"value":8487},"一行命令。",{"type":17,"tag":1242,"props":8489,"children":8491},{"className":8161,"code":8490,"language":8163,"meta":8,"style":8},"ssh -A -D 1134 localhost -t ssh -A -R 1220:localhost:1134 [user]@remote_server -t http_proxy=socks5h:\u002F\u002F127.0.0.1:1220 https_proxy=socks5h:\u002F\u002F127.0.0.1:1220 all_proxy=socks5h:\u002F\u002F127.0.0.1:1220 bash\n",[8492],{"type":17,"tag":1249,"props":8493,"children":8494},{"__ignoreMap":8},[8495],{"type":17,"tag":180,"props":8496,"children":8497},{"class":1254,"line":1255},[8498,8502,8507,8511,8516,8521,8526,8531,8535,8540,8545,8550,8555,8560,8565,8569,8573,8578,8582,8586],{"type":17,"tag":180,"props":8499,"children":8500},{"style":8173},[8501],{"type":22,"value":8368},{"type":17,"tag":180,"props":8503,"children":8504},{"style":4910},[8505],{"type":22,"value":8506}," -A",{"type":17,"tag":180,"props":8508,"children":8509},{"style":4910},[8510],{"type":22,"value":8373},{"type":17,"tag":180,"props":8512,"children":8513},{"style":4910},[8514],{"type":22,"value":8515}," 1134",{"type":17,"tag":180,"props":8517,"children":8518},{"style":4895},[8519],{"type":22,"value":8520}," localhost",{"type":17,"tag":180,"props":8522,"children":8523},{"style":4910},[8524],{"type":22,"value":8525}," -t",{"type":17,"tag":180,"props":8527,"children":8528},{"style":4895},[8529],{"type":22,"value":8530}," ssh",{"type":17,"tag":180,"props":8532,"children":8533},{"style":4910},[8534],{"type":22,"value":8506},{"type":17,"tag":180,"props":8536,"children":8537},{"style":4910},[8538],{"type":22,"value":8539}," -R",{"type":17,"tag":180,"props":8541,"children":8542},{"style":4895},[8543],{"type":22,"value":8544}," 1220:localhost:1134",{"type":17,"tag":180,"props":8546,"children":8547},{"style":4901},[8548],{"type":22,"value":8549}," [user]@remote_server -t http_proxy",{"type":17,"tag":180,"props":8551,"children":8553},{"style":8552},"--shiki-default:#D73A49;--shiki-dark:#F97583",[8554],{"type":22,"value":817},{"type":17,"tag":180,"props":8556,"children":8557},{"style":4895},[8558],{"type":22,"value":8559},"socks5h:\u002F\u002F127.0.0.1:1220",{"type":17,"tag":180,"props":8561,"children":8562},{"style":4901},[8563],{"type":22,"value":8564}," https_proxy",{"type":17,"tag":180,"props":8566,"children":8567},{"style":8552},[8568],{"type":22,"value":817},{"type":17,"tag":180,"props":8570,"children":8571},{"style":4895},[8572],{"type":22,"value":8559},{"type":17,"tag":180,"props":8574,"children":8575},{"style":4901},[8576],{"type":22,"value":8577}," all_proxy",{"type":17,"tag":180,"props":8579,"children":8580},{"style":8552},[8581],{"type":22,"value":817},{"type":17,"tag":180,"props":8583,"children":8584},{"style":4895},[8585],{"type":22,"value":8559},{"type":17,"tag":180,"props":8587,"children":8588},{"style":8173},[8589],{"type":22,"value":8590}," bash\n",{"type":17,"tag":18,"props":8592,"children":8593},{},[8594],{"type":22,"value":8595},"这里使用了嵌套式的 SSH 命令连接远程主机。首先在本地使用动态端口转发启动一个 SOCKS 服务器，然后通过远程端口转发把本地 SOCKS 服务器端口转发到远程服务器，并且直接设置好代理的环境变量，这里设置了 SOCKS5H 协议，让远程服务器也使用本机的 DNS 解析。这样实现了让远程服务器使用本地的 SSH 密钥和网络环境的功能。",{"type":17,"tag":18,"props":8597,"children":8598},{},[8599,8601,8607,8609,8615,8617,8623,8625,8631],{"type":22,"value":8600},"其中 ",{"type":17,"tag":1249,"props":8602,"children":8604},{"className":8603},[],[8605],{"type":22,"value":8606},"-A",{"type":22,"value":8608}," 开启 SSH Agent 转发，用于转发添加到 SSH Agent 的密钥到远程服务器，",{"type":17,"tag":1249,"props":8610,"children":8612},{"className":8611},[],[8613],{"type":22,"value":8614},"-D 1134 localhost",{"type":22,"value":8616}," 在本地开启一个端口在 ",{"type":17,"tag":1249,"props":8618,"children":8620},{"className":8619},[],[8621],{"type":22,"value":8622},"1134",{"type":22,"value":8624}," 的服务器，",{"type":17,"tag":1249,"props":8626,"children":8628},{"className":8627},[],[8629],{"type":22,"value":8630},"-t",{"type":22,"value":8632}," 强制 tty 分配，用于命令执行。",{"type":17,"tag":1242,"props":8634,"children":8636},{"className":8161,"code":8635,"language":8163,"meta":8,"style":8},"ssh -A -D 1134 localhost -t ssh -A -R 1220:localhost:1134 [user]@remote-server\nexport http_proxy=socks5h:\u002F\u002F127.0.0.1:1220 https_proxy=socks5h:\u002F\u002F127.0.0.1:1220 all_proxy=socks5h:\u002F\u002F127.0.0.1:1220\n",[8637],{"type":17,"tag":1249,"props":8638,"children":8639},{"__ignoreMap":8},[8640,8688],{"type":17,"tag":180,"props":8641,"children":8642},{"class":1254,"line":1255},[8643,8647,8651,8655,8659,8663,8667,8671,8675,8679,8683],{"type":17,"tag":180,"props":8644,"children":8645},{"style":8173},[8646],{"type":22,"value":8368},{"type":17,"tag":180,"props":8648,"children":8649},{"style":4910},[8650],{"type":22,"value":8506},{"type":17,"tag":180,"props":8652,"children":8653},{"style":4910},[8654],{"type":22,"value":8373},{"type":17,"tag":180,"props":8656,"children":8657},{"style":4910},[8658],{"type":22,"value":8515},{"type":17,"tag":180,"props":8660,"children":8661},{"style":4895},[8662],{"type":22,"value":8520},{"type":17,"tag":180,"props":8664,"children":8665},{"style":4910},[8666],{"type":22,"value":8525},{"type":17,"tag":180,"props":8668,"children":8669},{"style":4895},[8670],{"type":22,"value":8530},{"type":17,"tag":180,"props":8672,"children":8673},{"style":4910},[8674],{"type":22,"value":8506},{"type":17,"tag":180,"props":8676,"children":8677},{"style":4910},[8678],{"type":22,"value":8539},{"type":17,"tag":180,"props":8680,"children":8681},{"style":4895},[8682],{"type":22,"value":8544},{"type":17,"tag":180,"props":8684,"children":8685},{"style":4901},[8686],{"type":22,"value":8687}," [user]@remote-server\n",{"type":17,"tag":180,"props":8689,"children":8690},{"class":1254,"line":79},[8691,8696,8701,8705,8710,8714,8719,8723],{"type":17,"tag":180,"props":8692,"children":8693},{"style":8552},[8694],{"type":22,"value":8695},"export",{"type":17,"tag":180,"props":8697,"children":8698},{"style":4901},[8699],{"type":22,"value":8700}," http_proxy",{"type":17,"tag":180,"props":8702,"children":8703},{"style":8552},[8704],{"type":22,"value":817},{"type":17,"tag":180,"props":8706,"children":8707},{"style":4901},[8708],{"type":22,"value":8709},"socks5h:\u002F\u002F127.0.0.1:1220 https_proxy",{"type":17,"tag":180,"props":8711,"children":8712},{"style":8552},[8713],{"type":22,"value":817},{"type":17,"tag":180,"props":8715,"children":8716},{"style":4901},[8717],{"type":22,"value":8718},"socks5h:\u002F\u002F127.0.0.1:1220 all_proxy",{"type":17,"tag":180,"props":8720,"children":8721},{"style":8552},[8722],{"type":22,"value":817},{"type":17,"tag":180,"props":8724,"children":8725},{"style":4901},[8726],{"type":22,"value":8727},"socks5h:\u002F\u002F127.0.0.1:1220\n",{"type":17,"tag":18,"props":8729,"children":8730},{},[8731,8733,8739],{"type":22,"value":8732},"可以使用 ",{"type":17,"tag":1249,"props":8734,"children":8736},{"className":8735},[],[8737],{"type":22,"value":8738},"ssh -v \u003CURL>",{"type":22,"value":8740},"，查看日志来观察是否远程服务器使用了本机的密钥。",{"type":17,"tag":18,"props":8742,"children":8743},{},[8744,8746,8752],{"type":22,"value":8745},"使用 ",{"type":17,"tag":1249,"props":8747,"children":8749},{"className":8748},[],[8750],{"type":22,"value":8751},"curl -4 ip.sb",{"type":22,"value":8753},"，查看远程服务器是否使用了本机作为代理，若成功你应该看到的是本机的IPv4。",{"type":17,"tag":121,"props":8755,"children":8757},{"id":8756},"跳板",[8758],{"type":22,"value":8756},{"type":17,"tag":1242,"props":8760,"children":8762},{"className":8354,"code":8761,"language":8356,"meta":8,"style":8},"ssh -J jumpuser1@jumphost1,jumpuser2@jumphost2,...,jumpuserN@jumphostN user@host\n",[8763],{"type":17,"tag":1249,"props":8764,"children":8765},{"__ignoreMap":8},[8766],{"type":17,"tag":180,"props":8767,"children":8768},{"class":1254,"line":1255},[8769,8773,8778,8783],{"type":17,"tag":180,"props":8770,"children":8771},{"style":8173},[8772],{"type":22,"value":8368},{"type":17,"tag":180,"props":8774,"children":8775},{"style":4910},[8776],{"type":22,"value":8777}," -J",{"type":17,"tag":180,"props":8779,"children":8780},{"style":4895},[8781],{"type":22,"value":8782}," jumpuser1@jumphost1,jumpuser2@jumphost2,...,jumpuserN@jumphostN",{"type":17,"tag":180,"props":8784,"children":8785},{"style":4895},[8786],{"type":22,"value":8787}," user@host\n",{"type":17,"tag":18,"props":8789,"children":8790},{},[8791,8793,8799,8801,8807,8809,8815,8817,8823],{"type":22,"value":8792},"登陆到 ",{"type":17,"tag":1249,"props":8794,"children":8796},{"className":8795},[],[8797],{"type":22,"value":8798},"—J",{"type":22,"value":8800}," 指定的 ",{"type":17,"tag":1249,"props":8802,"children":8804},{"className":8803},[],[8805],{"type":22,"value":8806},"jumpuser1@jumphost1",{"type":22,"value":8808},"，再从 ",{"type":17,"tag":1249,"props":8810,"children":8812},{"className":8811},[],[8813],{"type":22,"value":8814},"jumphost1",{"type":22,"value":8816}," 登陆到 ",{"type":17,"tag":1249,"props":8818,"children":8820},{"className":8819},[],[8821],{"type":22,"value":8822},"jumpuser2@jumphost2",{"type":22,"value":8824},"，以此类推来登陆到目标远程主机。在网络环境直接与目标主机隔离的时候有用，比如可以将 AWS 海外服务器作为跳板登陆其他海外的服务器。",{"type":17,"tag":121,"props":8826,"children":8828},{"id":8827},"连接复用",[8829],{"type":22,"value":8827},{"type":17,"tag":121,"props":8831,"children":8833},{"id":8832},"x11转发",[8834],{"type":22,"value":8835},"X11转发",{"type":17,"tag":121,"props":8837,"children":8839},{"id":8838},"配置文件",[8840],{"type":22,"value":8838},{"type":17,"tag":18,"props":8842,"children":8843},{},[8844],{"type":22,"value":8845},"SSH可以在配置文件中使用任意的命令行参数。",{"type":17,"tag":121,"props":8847,"children":8849},{"id":8848},"reference",[8850],{"type":22,"value":7908},{"type":17,"tag":3508,"props":8852,"children":8853},{},[8854,8864,8874,8884,8894],{"type":17,"tag":58,"props":8855,"children":8856},{},[8857],{"type":17,"tag":138,"props":8858,"children":8861},{"href":8859,"rel":8860},"https:\u002F\u002Ftldr.inbrowser.app\u002Fpages\u002Fcommon\u002Fssh",[142],[8862],{"type":22,"value":8863},"ssh - tldr pages",{"type":17,"tag":58,"props":8865,"children":8866},{},[8867],{"type":17,"tag":138,"props":8868,"children":8871},{"href":8869,"rel":8870},"https:\u002F\u002Fwww.ruanyifeng.com\u002Fblog\u002F2011\u002F12\u002Fssh_port_forwarding.html",[142],[8872],{"type":22,"value":8873},"SSH 原理与运用（二）：远程操作与端口转发",{"type":17,"tag":58,"props":8875,"children":8876},{},[8877],{"type":17,"tag":138,"props":8878,"children":8881},{"href":8879,"rel":8880},"https:\u002F\u002F201.ustclug.org\u002Fdev\u002Fssh\u002F",[142],[8882],{"type":22,"value":8883},"SSH 使用技巧 - Linux 201 by USTC LUG",{"type":17,"tag":58,"props":8885,"children":8886},{},[8887],{"type":17,"tag":138,"props":8888,"children":8891},{"href":8889,"rel":8890},"https:\u002F\u002Fsuperuser.com\u002Fquestions\u002F96489\u002Fan-ssh-tunnel-via-multiple-hops",[142],[8892],{"type":22,"value":8893},"An SSH tunnel via multiple hops - superuser.com",{"type":17,"tag":58,"props":8895,"children":8896},{},[8897],{"type":17,"tag":138,"props":8898,"children":8901},{"href":8899,"rel":8900},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fauthentication\u002Fconnecting-to-github-with-ssh\u002Fusing-ssh-agent-forwarding",[142],[8902],{"type":22,"value":8903},"Using SSH agent forwarding - GitHub Docs",{"type":17,"tag":18,"props":8905,"children":8906},{},[8907],{"type":22,"value":8908},"还在看的资料",{"type":17,"tag":18,"props":8910,"children":8911},{},[8912,8918],{"type":17,"tag":138,"props":8913,"children":8916},{"href":8914,"rel":8915},"https:\u002F\u002Fwww.baeldung.com\u002Flinux\u002Fssh-tunneling-and-proxying",[142],[8917],{"type":22,"value":8914},{"type":22,"value":8919}," 讲了更多关于 SSH Tunnel 和代理的。",{"type":17,"tag":18,"props":8921,"children":8922},{},[8923,8929],{"type":17,"tag":138,"props":8924,"children":8927},{"href":8925,"rel":8926},"https:\u002F\u002Fplantegg.github.io\u002F2019\u002F06\u002F02\u002F%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89\u002F",[142],[8928],{"type":22,"value":8925},{"type":22,"value":8930}," 讲了很多琐碎的东西，但似乎看起来写的不好，太过冗杂了，解释的也不清楚。",{"type":17,"tag":4218,"props":8932,"children":8933},{},[8934],{"type":22,"value":4222},{"title":8,"searchDepth":79,"depth":80,"links":8936},[8937,8938,8943,8944,8945,8946,8947],{"id":8089,"depth":79,"text":8089},{"id":8327,"depth":79,"text":8330,"children":8939},[8940,8941,8942],{"id":8338,"depth":80,"text":8341},{"id":8409,"depth":80,"text":8409},{"id":8452,"depth":80,"text":8452},{"id":8756,"depth":79,"text":8756},{"id":8827,"depth":79,"text":8827},{"id":8832,"depth":79,"text":8835},{"id":8838,"depth":79,"text":8838},{"id":8848,"depth":79,"text":7908},"content:posts:about-ssh-usage.md","posts\u002Fabout-ssh-usage.md","posts\u002Fabout-ssh-usage",{"_path":8952,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":8953,"description":8954,"date":8955,"categories":7343,"tags":8956,"body":8958,"_type":82,"_id":9248,"_source":84,"_file":9249,"_stem":9250,"_extension":87},"\u002Fposts\u002Fopensourcesoftwarestarttutorial","如何开始一个开源项目？","浅谈我对开源项目的认知。","2025-04-17 18:00:00",[8957],"开源",{"type":14,"children":8959,"toc":9230},[8960,8965,8970,8975,8980,9043,9048,9053,9076,9081,9086,9091,9097,9102,9108,9120,9126,9131,9137,9142,9148,9153,9158,9166,9171,9177,9220,9225],{"type":17,"tag":18,"props":8961,"children":8962},{},[8963],{"type":22,"value":8964},"接触开源零零散散也快有三年了，虽然听上去时间很长，但是我实际参与的开源项目寥寥无几，只是描述我的见闻而已。",{"type":17,"tag":18,"props":8966,"children":8967},{},[8968],{"type":22,"value":8969},"最基础的就是些开源相关的常识，比如开源协议，开源使用的工具等等，如果有意学习我相信大多数人很快就能掌握。我也就大致列了一些在下面。当然，最快速的方法是寻找一些新兴的正在开发的开源项目，观察其规范、行为乃至参与其中，这样的学习效率是最高的。",{"type":17,"tag":121,"props":8971,"children":8973},{"id":8972},"开源协议",[8974],{"type":22,"value":8972},{"type":17,"tag":4559,"props":8976,"children":8978},{"id":8977},"常见的开源协议",[8979],{"type":22,"value":8977},{"type":17,"tag":54,"props":8981,"children":8982},{},[8983,8993,9003,9013,9023,9033],{"type":17,"tag":58,"props":8984,"children":8985},{},[8986,8991],{"type":17,"tag":106,"props":8987,"children":8988},{},[8989],{"type":22,"value":8990},"MIT License",{"type":22,"value":8992},"：这是一个非常宽松的协议，允许任何人几乎无限制地使用、复制、修改和分发代码。",{"type":17,"tag":58,"props":8994,"children":8995},{},[8996,9001],{"type":17,"tag":106,"props":8997,"children":8998},{},[8999],{"type":22,"value":9000},"Apache License 2.0",{"type":22,"value":9002},"：与MIT类似，但它增加了专利授权条款，并要求保留原始版权声明。",{"type":17,"tag":58,"props":9004,"children":9005},{},[9006,9011],{"type":17,"tag":106,"props":9007,"children":9008},{},[9009],{"type":22,"value":9010},"GPL（GNU General Public License）",{"type":22,"value":9012},"：强制衍生作品必须以相同的许可证发布，确保开源精神得以延续。",{"type":17,"tag":58,"props":9014,"children":9015},{},[9016,9021],{"type":17,"tag":106,"props":9017,"children":9018},{},[9019],{"type":22,"value":9020},"LGPL（GNU Lesser General Public License）",{"type":22,"value":9022},"：适用于库，它允许专有软件链接到该库而不需要开放其源码。",{"type":17,"tag":58,"props":9024,"children":9025},{},[9026,9031],{"type":17,"tag":106,"props":9027,"children":9028},{},[9029],{"type":22,"value":9030},"BSD Licenses",{"type":22,"value":9032},"：提供了两种版本，新BSD协议包含了禁止使用贡献者名字进行推广的条款。",{"type":17,"tag":58,"props":9034,"children":9035},{},[9036,9041],{"type":17,"tag":106,"props":9037,"children":9038},{},[9039],{"type":22,"value":9040},"AGPLv3（GNU Affero General Public License version 3）",{"type":22,"value":9042},":扩展了GPLv3（GNU General Public License version 3）的条款，特别针对通过网络提供服务的应用程序。",{"type":17,"tag":121,"props":9044,"children":9046},{"id":9045},"开源的平台",[9047],{"type":22,"value":9045},{"type":17,"tag":4559,"props":9049,"children":9051},{"id":9050},"常用的开源平台",[9052],{"type":22,"value":9050},{"type":17,"tag":54,"props":9054,"children":9055},{},[9056,9066],{"type":17,"tag":58,"props":9057,"children":9058},{},[9059,9064],{"type":17,"tag":106,"props":9060,"children":9061},{},[9062],{"type":22,"value":9063},"GitHub",{"type":22,"value":9065},"：最流行的代码托管平台之一，支持Git版本控制。",{"type":17,"tag":58,"props":9067,"children":9068},{},[9069,9074],{"type":17,"tag":106,"props":9070,"children":9071},{},[9072],{"type":22,"value":9073},"GitLab",{"type":22,"value":9075},"：提供更多的CI\u002FCD集成选项，并且可以自托管。",{"type":17,"tag":121,"props":9077,"children":9079},{"id":9078},"开源使用的工具",[9080],{"type":22,"value":9078},{"type":17,"tag":4559,"props":9082,"children":9084},{"id":9083},"版本控制",[9085],{"type":22,"value":9083},{"type":17,"tag":18,"props":9087,"children":9088},{},[9089],{"type":22,"value":9090},"使用Git进行版本控制, 跟踪代码更改历史, 多人合作.",{"type":17,"tag":4559,"props":9092,"children":9094},{"id":9093},"git-hook",[9095],{"type":22,"value":9096},"Git Hook",{"type":17,"tag":18,"props":9098,"children":9099},{},[9100],{"type":22,"value":9101},"Hook 脚本可以在特定时间发生时自动运行, 顾名思义 Hook(钩子)就是在某事发生必然发生的事, 用途比如提交前检查代码风格或者提交后部署代码.",{"type":17,"tag":4559,"props":9103,"children":9105},{"id":9104},"git-ignore",[9106],{"type":22,"value":9107},"Git Ignore",{"type":17,"tag":18,"props":9109,"children":9110},{},[9111,9112,9118],{"type":22,"value":8745},{"type":17,"tag":1249,"props":9113,"children":9115},{"className":9114},[],[9116],{"type":22,"value":9117},".gitignore",{"type":22,"value":9119}," 文件列出不应被 Git 追踪的文件, 例如编译产物或IDE配置文件.",{"type":17,"tag":4559,"props":9121,"children":9123},{"id":9122},"issue-模板",[9124],{"type":22,"value":9125},"Issue 模板",{"type":17,"tag":18,"props":9127,"children":9128},{},[9129],{"type":22,"value":9130},"创建 issue 模版可以帮助开源社区贡献者清晰描述问题, 包括复现步骤和期望行为. 规范的 issue 不仅可以帮助提问者快速的解决问题, 节省维护者了解问题的精力, 还节省了后续查询相关 issues 的用户的时间. 遇到过不少不规范 issue 的项目, 去查 issue 查个半天会发现一些提问者描述的既不清晰, 而且在没有给出解决方案(不管可行不可行)的情况下就把 issue 关闭了.",{"type":17,"tag":4559,"props":9132,"children":9134},{"id":9133},"pull-request模板",[9135],{"type":22,"value":9136},"Pull Request模板",{"type":17,"tag":18,"props":9138,"children":9139},{},[9140],{"type":22,"value":9141},"PR模板有助于确保所有必要的信息都被包含在内，如变更描述、测试结果等。可以方便审查代码.",{"type":17,"tag":4559,"props":9143,"children":9145},{"id":9144},"cicd",[9146],{"type":22,"value":9147},"CI\u002FCD",{"type":17,"tag":18,"props":9149,"children":9150},{},[9151],{"type":22,"value":9152},"持续集成和持续部署工具，如GitHub Actions、GitLab CI、Jenkins等，可以自动化测试和部署流程。比如自动编译 Release, 自动部署, 自动打包 Docker 镜像等等.",{"type":17,"tag":121,"props":9154,"children":9156},{"id":9155},"宣传",[9157],{"type":22,"value":9155},{"type":17,"tag":149,"props":9159,"children":9160},{},[9161],{"type":17,"tag":18,"props":9162,"children":9163},{},[9164],{"type":22,"value":9165},"东亚文化是一种集体主义，社会鼓吹的是踏实、谦虚、低调，不要突出自己。所以很多人喜欢在集体中默默无闻的奉献，这是最经典的一种驯化。长期演变下来，你会发现，身边很多人是不擅长或者说不屑于展示自我的，因为我们的文化里常常将\"Selling yourself\"等同于一种负面的道德品格。\n当你做完一件事情其实还不够，你得\"Show your work\"，把它\"贩卖\"出去。",{"type":17,"tag":18,"props":9167,"children":9168},{},[9169],{"type":22,"value":9170},"我亲眼目睹了一个开源项目在宣传前后star数的井喷，在那个项目的开发者还没有下场宣传的时候，它不到一千的star，但是在宣传之后，那个项目的star在短短两天之内就到了五千star。\"酒香也怕巷子深\"，因此好的宣传也是做好一个开源项目必要的。",{"type":17,"tag":121,"props":9172,"children":9174},{"id":9173},"开源软件如何进行宣传",[9175],{"type":22,"value":9176},"开源软件如何进行宣传？",{"type":17,"tag":54,"props":9178,"children":9179},{},[9180,9190,9200,9210],{"type":17,"tag":58,"props":9181,"children":9182},{},[9183,9188],{"type":17,"tag":106,"props":9184,"children":9185},{},[9186],{"type":22,"value":9187},"社交媒体",{"type":22,"value":9189},"：国内利用Bilibili、知乎、小红书, 国外利用Twitter、LinkedIn等社交网络分享项目进展。",{"type":17,"tag":58,"props":9191,"children":9192},{},[9193,9198],{"type":17,"tag":106,"props":9194,"children":9195},{},[9196],{"type":22,"value":9197},"技术博客",{"type":22,"value":9199},"：撰写关于项目的博客文章，解释其用途和技术细节。",{"type":17,"tag":58,"props":9201,"children":9202},{},[9203,9208],{"type":17,"tag":106,"props":9204,"children":9205},{},[9206],{"type":22,"value":9207},"SEO优化",{"type":22,"value":9209},"：确保项目页面针对搜索引擎进行了优化，以便更容易被发现。",{"type":17,"tag":58,"props":9211,"children":9212},{},[9213,9218],{"type":17,"tag":106,"props":9214,"children":9215},{},[9216],{"type":22,"value":9217},"多交朋友",{"type":22,"value":9219},"：与其他相关的开源项目或公司建立合作关系扩大影响力。",{"type":17,"tag":18,"props":9221,"children":9222},{},[9223],{"type":22,"value":9224},"当然开源项目是经过众人不断用实践检验的。清晰的文档，用户友好的指引，会有助于新人的到来。规范的代码实践和沟通机制，会使得贡献者和维护者更有效的发展项目（对于正在不断开发的项目）。",{"type":17,"tag":18,"props":9226,"children":9227},{},[9228],{"type":22,"value":9229},"按照国内的环境，对于个人来说，开源是一项要求极高，且和做慈善没有区别的事。这种情况估计还会持续下去。",{"title":8,"searchDepth":79,"depth":80,"links":9231},[9232,9235,9238,9246,9247],{"id":8972,"depth":79,"text":8972,"children":9233},[9234],{"id":8977,"depth":80,"text":8977},{"id":9045,"depth":79,"text":9045,"children":9236},[9237],{"id":9050,"depth":80,"text":9050},{"id":9078,"depth":79,"text":9078,"children":9239},[9240,9241,9242,9243,9244,9245],{"id":9083,"depth":80,"text":9083},{"id":9093,"depth":80,"text":9096},{"id":9104,"depth":80,"text":9107},{"id":9122,"depth":80,"text":9125},{"id":9133,"depth":80,"text":9136},{"id":9144,"depth":80,"text":9147},{"id":9155,"depth":79,"text":9155},{"id":9173,"depth":79,"text":9176},"content:posts:OpenSourceSoftwareStartTutorial.md","posts\u002FOpenSourceSoftwareStartTutorial.md","posts\u002FOpenSourceSoftwareStartTutorial",{"_path":9252,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9253,"description":9254,"date":9255,"categories":9256,"tags":9257,"body":9259,"_type":82,"_id":9300,"_source":84,"_file":9301,"_stem":9302,"_extension":87},"\u002Fposts\u002Fmotivation","渴求动力","有意识的生活并主动地行动会使得生活更美好。","2025-03-05 00:44:57","生活-情感",[9258],"随笔",{"type":14,"children":9260,"toc":9298},[9261,9266,9271,9276,9288,9293],{"type":17,"tag":18,"props":9262,"children":9263},{},[9264],{"type":22,"value":9265},"今天下午阴天，考完智能控制，和朋友去山明三楼吃面。朋友时不时会问出奇怪的问题，他说：如果我回到大二刚开始的时候，会选择先和他们宿舍的谁先接触，再从这个点扩散到整个面，去联系上其他人。我按下心头对问题来源的疑惑，回应道：不知道。心中苦涩居多，或是某种不明的感受，我说不出来，但是总是不愿意那么回忆和假设的。“我是不会主动去认识人的， 大二。”，我拒绝了这个问题的回答。另外把先前按耐住的疑惑问了出来，为什么你会突然问这个。",{"type":17,"tag":18,"props":9267,"children":9268},{},[9269],{"type":22,"value":9270},"他回答，因为经常有人来他宿舍找他，但却不是找他，而是找其他人，只是找其他人之前会去和他打招呼聊两句天说两句傻逼话而已。他觉得自己成了“公交车”。我没回应。说起了我大二的事情。",{"type":17,"tag":18,"props":9272,"children":9273},{},[9274],{"type":22,"value":9275},"简短地说，就是大一大部分社交的场所，被突然破坏了（以我当时认知的判断）。我事后回忆下来，感觉就像一个人逃离灾难，我逃离了我大一耕耘的地方。我被远离了，不，我觉得我被远离了，我害怕了，于是我先主动远离了。是的，来到大二的我失去了很多。",{"type":17,"tag":18,"props":9277,"children":9278},{},[9279,9281,9286],{"type":22,"value":9280},"我在这种失去中怅然，并没有去寻找新的方向和维护好自己要做的事情。",{"type":17,"tag":106,"props":9282,"children":9283},{},[9284],{"type":22,"value":9285},"我对自己的生活并没有主动性",{"type":22,"value":9287},"，我只是等待着不可避免的那日到来，在眼前不可避免地看到了到来后，我才会慢悠悠地反应过来，好像睡了个觉，才来对付那来临的一切。但这我是被我预见到的，连我自己也是被我预见到了的。",{"type":17,"tag":18,"props":9289,"children":9290},{},[9291],{"type":22,"value":9292},"或是这种主动性缺失，致使我这几年自我效能感不高，垂头丧气。一边是自己拿刀子捅自己，逼迫自己前进；另一边是躺在地上，等着外界给自己捅刀子的时候吓的逃跑。毫无疑问，我在这种断续地无意识状态选择了后者，我逃避了有意识的思考与解决方案。而是选择将权力交给他者。我死不足惜。",{"type":17,"tag":18,"props":9294,"children":9295},{},[9296],{"type":22,"value":9297},"这种深沉的自我惩罚，也是我与外界对立和恐惧的一种表现。我不期待哪天我突然有改变，只是想把今日的我写下，或许某日的我翻看后又会尴尬的不行呢？",{"title":8,"searchDepth":79,"depth":80,"links":9299},[],"content:posts:Motivation.md","posts\u002FMotivation.md","posts\u002FMotivation",{"_path":9304,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9305,"description":9306,"date":9307,"categories":9256,"tags":9308,"body":9309,"_type":82,"_id":9364,"_source":84,"_file":9365,"_stem":9366,"_extension":87},"\u002Fposts\u002F2024summary","2024年终总结","啊，痛彻的时光；啊，悲怆的人！","2025-01-01 01:00:00",[9258],{"type":14,"children":9310,"toc":9362},[9311,9319,9324],{"type":17,"tag":149,"props":9312,"children":9313},{},[9314],{"type":17,"tag":18,"props":9315,"children":9316},{},[9317],{"type":22,"value":9318},"我最后还是写了年终总结，即使数字已经转到了下一年。",{"type":17,"tag":18,"props":9320,"children":9321},{},[9322],{"type":22,"value":9323},"年终总结：",{"type":17,"tag":3508,"props":9325,"children":9326},{},[9327,9332,9337,9342,9347,9352,9357],{"type":17,"tag":58,"props":9328,"children":9329},{},[9330],{"type":22,"value":9331},"比赛中的人际没有处理好，痛苦地拖延和解决；",{"type":17,"tag":58,"props":9333,"children":9334},{},[9335],{"type":22,"value":9336},"漂浮感；",{"type":17,"tag":58,"props":9338,"children":9339},{},[9340],{"type":22,"value":9341},"尝试感受经济的紧迫，勤工俭学；",{"type":17,"tag":58,"props":9343,"children":9344},{},[9345],{"type":22,"value":9346},"看了很多 live，买了一些 CD；",{"type":17,"tag":58,"props":9348,"children":9349},{},[9350],{"type":22,"value":9351},"家教、实习，接近社会；",{"type":17,"tag":58,"props":9353,"children":9354},{},[9355],{"type":22,"value":9356},"还是模糊的不知道自己的方位；",{"type":17,"tag":58,"props":9358,"children":9359},{},[9360],{"type":22,"value":9361},"买了自己的琴；",{"title":8,"searchDepth":79,"depth":80,"links":9363},[],"content:posts:2024summary.md","posts\u002F2024summary.md","posts\u002F2024summary",{"_path":9368,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9369,"description":9370,"date":9371,"categories":93,"tags":9372,"body":9374,"_type":82,"_id":9721,"_source":84,"_file":9722,"_stem":9723,"_extension":87},"\u002Fposts\u002Fvps-crash-startup","快速搭建个人VPS","如何快速搭建个人VPS。","2024-12-31 19:00:00",[9373],"VPS",{"type":14,"children":9375,"toc":9710},[9376,9407,9412,9417,9423,9436,9509,9514,9525,9530,9536,9549,9555,9568,9573,9579,9584,9590,9602,9607,9612,9617,9625,9630,9634,9706],{"type":17,"tag":18,"props":9377,"children":9378},{},[9379,9380,9384,9386,9391,9392,9398,9399,9405],{"type":22,"value":7902},{"type":17,"tag":138,"props":9381,"children":9382},{"href":7905},[9383],{"type":22,"value":7908},{"type":22,"value":9385}," 部分，根据以下教程，并结合 ",{"type":17,"tag":1249,"props":9387,"children":9389},{"className":9388},[],[9390],{"type":22,"value":9373},{"type":22,"value":4271},{"type":17,"tag":1249,"props":9393,"children":9395},{"className":9394},[],[9396],{"type":22,"value":9397},"optimize",{"type":22,"value":4271},{"type":17,"tag":1249,"props":9400,"children":9402},{"className":9401},[],[9403],{"type":22,"value":9404},"订阅聚合",{"type":22,"value":9406},"等关键词，可以检索出 VPS 搭建的相应教程。",{"type":17,"tag":121,"props":9408,"children":9410},{"id":9409},"拥有一台非大陆的服务器",[9411],{"type":22,"value":9409},{"type":17,"tag":18,"props":9413,"children":9414},{},[9415],{"type":22,"value":9416},"VPS(Virtual Private Server)，顾名思义你需要拥有至少一台非大陆的服务器，推荐的操作系统是 Debian12(RAM>=1GB)。后面的步骤有配置 SSH 免密访问，禁止密码登录，乃至修改默认 sshd 端口。这部分操作是出于远程连接的安全性考虑的，我在此不赘述，感兴趣的读者自行检索即可找到相应教程（亦可参考引用部分的文章）。",{"type":17,"tag":121,"props":9418,"children":9420},{"id":9419},"通过脚本一键搭建-v2ray",[9421],{"type":22,"value":9422},"通过脚本一键搭建 V2Ray",{"type":17,"tag":18,"props":9424,"children":9425},{},[9426,9428,9434],{"type":22,"value":9427},"233Boy 提供了完整的脚本用于创建 V2Ray 节点。代码以 GPL-3.0 协议",{"type":17,"tag":138,"props":9429,"children":9432},{"href":9430,"rel":9431},"https:\u002F\u002Fgithub.com\u002F233boy\u002Fv2ray",[142],[9433],{"type":22,"value":8957},{"type":22,"value":9435},"在 Github 上。",{"type":17,"tag":1242,"props":9437,"children":9439},{"className":8354,"code":9438,"language":8356,"meta":8,"style":8},"# 下载并运行 233Boy 提供的 V2Ray 安装脚本（会默认生成使用 Vmess-TCP 的链接）\nbash \u003C(wget -qO- -o- https:\u002F\u002Fgit.io\u002Fv2ray.sh)\n# 添加新节点\nv2ray add Vmess-TCP-dynamic-port\n",[9440],{"type":17,"tag":1249,"props":9441,"children":9442},{"__ignoreMap":8},[9443,9451,9483,9491],{"type":17,"tag":180,"props":9444,"children":9445},{"class":1254,"line":1255},[9446],{"type":17,"tag":180,"props":9447,"children":9448},{"style":8200},[9449],{"type":22,"value":9450},"# 下载并运行 233Boy 提供的 V2Ray 安装脚本（会默认生成使用 Vmess-TCP 的链接）\n",{"type":17,"tag":180,"props":9452,"children":9453},{"class":1254,"line":79},[9454,9458,9463,9468,9473,9478],{"type":17,"tag":180,"props":9455,"children":9456},{"style":8173},[9457],{"type":22,"value":8356},{"type":17,"tag":180,"props":9459,"children":9460},{"style":4895},[9461],{"type":22,"value":9462}," \u003C(",{"type":17,"tag":180,"props":9464,"children":9465},{"style":8173},[9466],{"type":22,"value":9467},"wget",{"type":17,"tag":180,"props":9469,"children":9470},{"style":4910},[9471],{"type":22,"value":9472}," -qO-",{"type":17,"tag":180,"props":9474,"children":9475},{"style":4910},[9476],{"type":22,"value":9477}," -o-",{"type":17,"tag":180,"props":9479,"children":9480},{"style":4895},[9481],{"type":22,"value":9482}," https:\u002F\u002Fgit.io\u002Fv2ray.sh)\n",{"type":17,"tag":180,"props":9484,"children":9485},{"class":1254,"line":80},[9486],{"type":17,"tag":180,"props":9487,"children":9488},{"style":8200},[9489],{"type":22,"value":9490},"# 添加新节点\n",{"type":17,"tag":180,"props":9492,"children":9493},{"class":1254,"line":1281},[9494,9499,9504],{"type":17,"tag":180,"props":9495,"children":9496},{"style":8173},[9497],{"type":22,"value":9498},"v2ray",{"type":17,"tag":180,"props":9500,"children":9501},{"style":4895},[9502],{"type":22,"value":9503}," add",{"type":17,"tag":180,"props":9505,"children":9506},{"style":4895},[9507],{"type":22,"value":9508}," Vmess-TCP-dynamic-port\n",{"type":17,"tag":18,"props":9510,"children":9511},{},[9512],{"type":22,"value":9513},"此时会得到我们新生成的链接，对于 V2RayN 用户，此时复制粘贴进 V2RayN 即可使用（支持ShadowRocket、V2RayN）。但是对于其他 VPN 客户端，比如 Clash系列来说，并不一定能直接支持，此时需要部署订阅转换服务。",{"type":17,"tag":149,"props":9515,"children":9516},{},[9517],{"type":17,"tag":18,"props":9518,"children":9519},{},[9520],{"type":17,"tag":106,"props":9521,"children":9522},{},[9523],{"type":22,"value":9524},"为什么需要自己搭建自己的订阅转换服务而不是使用其他人的？",{"type":17,"tag":18,"props":9526,"children":9527},{},[9528],{"type":22,"value":9529},"我也在思量这个问题。",{"type":17,"tag":121,"props":9531,"children":9533},{"id":9532},"vps-性能调优",[9534],{"type":22,"value":9535},"VPS 性能调优",{"type":17,"tag":18,"props":9537,"children":9538},{},[9539,9540,9547],{"type":22,"value":7902},{"type":17,"tag":138,"props":9541,"children":9544},{"href":9542,"rel":9543},"https:\u002F\u002Fwww.taurusxin.com\u002Flinux-network-optimize\u002F",[142],[9545],{"type":22,"value":9546},"Linux 网络优化",{"type":22,"value":9548},"，运行脚本前请先下载 speedtest 进行测速，对比优化前后速度，避免错误的优化。",{"type":17,"tag":121,"props":9550,"children":9552},{"id":9551},"使用-cloudflare-扩展-vps-网络出口",[9553],{"type":22,"value":9554},"使用 CloudFlare 扩展 VPS 网络出口",{"type":17,"tag":18,"props":9556,"children":9557},{},[9558,9559,9566],{"type":22,"value":7902},{"type":17,"tag":138,"props":9560,"children":9563},{"href":9561,"rel":9562},"https:\u002F\u002Fp3terx.com\u002Farchives\u002Fuse-cloudflare-warp-to-add-extra-ipv4-or-ipv6-network-support-to-vps-servers-for-free.html",[142],[9564],{"type":22,"value":9565},"Cloudflare WARP 教程：给 VPS 额外添加“原生” IPv4\u002FIPv6 双栈网络出口",{"type":22,"value":9567},"。一般而言所购买的服务器只有 IPv4。我们可以通过 warp 添加 IPv6 并调整 v4\u002Fv6 的使用优先级，将默认的出站 IP转成 warp 的 IP。",{"type":17,"tag":18,"props":9569,"children":9570},{},[9571],{"type":22,"value":9572},"我的建议是给 IPv4 only 的服务器只添加 IPv6 warp, 并且 IPv6优先于 IPv4（如何确认上述文章有提及）。",{"type":17,"tag":121,"props":9574,"children":9576},{"id":9575},"部署订阅转换服务可选",[9577],{"type":22,"value":9578},"部署订阅转换服务（可选）",{"type":17,"tag":18,"props":9580,"children":9581},{},[9582],{"type":22,"value":9583},"最好拥有自己的域名，国内外的域名供应商皆可。",{"type":17,"tag":121,"props":9585,"children":9587},{"id":9586},"使用-cloudflare-pages-部署订阅链接",[9588],{"type":22,"value":9589},"使用 CloudFlare Pages 部署订阅链接",{"type":17,"tag":18,"props":9591,"children":9592},{},[9593,9595],{"type":22,"value":9594},"最好拥有自己的域名，一般购买很方便且可以很便宜。教程参见 ",{"type":17,"tag":138,"props":9596,"children":9599},{"href":9597,"rel":9598},"https:\u002F\u002Fgithub.com\u002Fcmliu\u002FCF-Workers-SUB?tab=readme-ov-file#pages-%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95-%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B",[142],[9600],{"type":22,"value":9601},"Pages 部署方法",{"type":17,"tag":121,"props":9603,"children":9605},{"id":9604},"总结",[9606],{"type":22,"value":9604},{"type":17,"tag":18,"props":9608,"children":9609},{},[9610],{"type":22,"value":9611},"按照如上步骤，可以得到个人使用的性能良好的 VPS，从而可以更好地浏览和使用互联网上的资源。",{"type":17,"tag":121,"props":9613,"children":9615},{"id":9614},"额外的问题",[9616],{"type":22,"value":9614},{"type":17,"tag":149,"props":9618,"children":9619},{},[9620],{"type":17,"tag":18,"props":9621,"children":9622},{},[9623],{"type":22,"value":9624},"无法访问引用的网页（比如 GitHub、个人博客）怎么办？",{"type":17,"tag":18,"props":9626,"children":9627},{},[9628],{"type":22,"value":9629},"考虑安装 Watt Toolkit，其提供 GitHub 网络加速(通过修改 Hosts 的方式)。",{"type":17,"tag":121,"props":9631,"children":9632},{"id":8848},[9633],{"type":22,"value":7908},{"type":17,"tag":3508,"props":9635,"children":9636},{},[9637,9647,9657,9666,9678,9688,9696],{"type":17,"tag":58,"props":9638,"children":9639},{},[9640],{"type":17,"tag":138,"props":9641,"children":9644},{"href":9642,"rel":9643},"https:\u002F\u002F233boy.com\u002Fv2ray\u002Fv2ray-server\u002F",[142],[9645],{"type":22,"value":9646},"V2Ray 一键搭建详细图文教程（小白试用）-233Boy",{"type":17,"tag":58,"props":9648,"children":9649},{},[9650],{"type":17,"tag":138,"props":9651,"children":9654},{"href":9652,"rel":9653},"https:\u002F\u002Fgithub.com\u002F233boy\u002Fv2ray\u002Fwiki\u002FV2Ray%E6%90%AD%E5%BB%BA%E8%AF%A6%E7%BB%86%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B",[142],[9655],{"type":22,"value":9656},"V2Ray搭建详细图文教程 - 233Boy",{"type":17,"tag":58,"props":9658,"children":9659},{},[9660],{"type":17,"tag":138,"props":9661,"children":9663},{"href":9542,"rel":9662},[142],[9664],{"type":22,"value":9665},"VPS 网速优化",{"type":17,"tag":58,"props":9667,"children":9668},{},[9669,9671],{"type":22,"value":9670},"订阅链接汇聚 ",{"type":17,"tag":138,"props":9672,"children":9675},{"href":9673,"rel":9674},"https:\u002F\u002Fgithub.com\u002Fcmliu\u002FCF-Workers-SUB",[142],[9676],{"type":22,"value":9677},"cmliu\u002FCF-Workers-SUB",{"type":17,"tag":58,"props":9679,"children":9680},{},[9681],{"type":17,"tag":138,"props":9682,"children":9685},{"href":9683,"rel":9684},"https:\u002F\u002Fwww.animmouse.com\u002Fp\u002Fsetup-cloudflare-warp-on-ipv6-only-vps\u002F",[142],[9686],{"type":22,"value":9687},"Setup Cloudflare WARP on IPv6 Only VPS",{"type":17,"tag":58,"props":9689,"children":9690},{},[9691],{"type":17,"tag":138,"props":9692,"children":9694},{"href":9561,"rel":9693},[142],[9695],{"type":22,"value":9565},{"type":17,"tag":58,"props":9697,"children":9698},{},[9699],{"type":17,"tag":138,"props":9700,"children":9703},{"href":9701,"rel":9702},"https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F160305",[142],[9704],{"type":22,"value":9705},"【配置优化】我拿到VPS服务器必做的那些事",{"type":17,"tag":4218,"props":9707,"children":9708},{},[9709],{"type":22,"value":4222},{"title":8,"searchDepth":79,"depth":80,"links":9711},[9712,9713,9714,9715,9716,9717,9718,9719,9720],{"id":9409,"depth":79,"text":9409},{"id":9419,"depth":79,"text":9422},{"id":9532,"depth":79,"text":9535},{"id":9551,"depth":79,"text":9554},{"id":9575,"depth":79,"text":9578},{"id":9586,"depth":79,"text":9589},{"id":9604,"depth":79,"text":9604},{"id":9614,"depth":79,"text":9614},{"id":8848,"depth":79,"text":7908},"content:posts:VPS-crash-startup.md","posts\u002FVPS-crash-startup.md","posts\u002FVPS-crash-startup",{"_path":9725,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9726,"description":9727,"date":9728,"categories":93,"tags":9729,"body":9732,"_type":82,"_id":9927,"_source":84,"_file":9928,"_stem":9929,"_extension":87},"\u002Fposts\u002Fdata-label-software","AI数据（自动）标注软件概述","对市面上目前的AI数据（自动）标注软件进行调研。","2024-12-20 14:00:00",[9730,9731],"数据标注","深度学习",{"type":14,"children":9733,"toc":9925},[9734,9739,9744,9749,9754,9762,9784,9789,9873,9878,9893],{"type":17,"tag":18,"props":9735,"children":9736},{},[9737],{"type":22,"value":9738},"数据驱动的深度学习已经成为了计算机科学解决现实问题的一大强有力的解决方案。而对于深度学习数据是重中之重。以我浅薄的经验来看，对于现实世界中的大多数任务，所使用数据质量的高低甚至比模型的工作更为重要。一个好的数据就是成功的一半。",{"type":17,"tag":18,"props":9740,"children":9741},{},[9742],{"type":22,"value":9743},"涉及有监督的学习需要数据标注。而人工数据标注作为苦力活一直为人所诟病，认为这并不值得去学习。我认为，其中的关键并不在如何标注数据，而是怎样的数据标注是好的，或者说数据应当标注成什么样。这些问题其实在实践中已经积累下了不少的答案，我们已经有了“最佳实践”。",{"type":17,"tag":18,"props":9745,"children":9746},{},[9747],{"type":22,"value":9748},"不同的数据领域划分了不同的任务。而一些任务存在了令人满意的通解，比如视觉上的 SAM、NLP上的 Transformer 系，Audio上的解决方案也很成熟。如何从一个成熟的解决方案中让自己的项目更自动化的受益？这就是数据自动标注所做的事。",{"type":17,"tag":18,"props":9750,"children":9751},{},[9752],{"type":22,"value":9753},"举例，对于小的细分的尚且没有人做的领域任务，且使用深度学习的方法是可行的（而可行性多半决定于数据的质量和数量）。这时使用通用的领域模型对新任务自动的进行标注（乃至交互式标注），可以大大省去新任务的数据处理时间（甚至获得更高质量的数据）。这就是从成熟解决方案更自动化地受益的所指。",{"type":17,"tag":149,"props":9755,"children":9756},{},[9757],{"type":17,"tag":18,"props":9758,"children":9759},{},[9760],{"type":22,"value":9761},"当我们在浏览器上搜索某样东西时，其实我们是假定使用浏览器的某人遇到了同样（相似）的问题并且有了解决方案。类似的，当我们有了一个想法的时候，你需要审查一下世界上有没有其他人早已经提出了类似的想法。",{"type":17,"tag":18,"props":9763,"children":9764},{},[9765,9767,9774,9776,9783],{"type":22,"value":9766},"AI4S，这是很自然的想法，将AI用于数据标注，并且现实中已经存在实践。考虑到数据安全性问题以及我所能接触到的调研对象有限，下面仅列举无数据安全问题的开源项目。首先简单分类为领域特定的数据标注和通用类的数据标注。更详细的可以参见 ",{"type":17,"tag":138,"props":9768,"children":9771},{"href":9769,"rel":9770},"https:\u002F\u002Fgithub.com\u002Fhumansignal\u002Fawesome-data-labeling",[142],[9772],{"type":22,"value":9773},"awesome-data-labeling",{"type":22,"value":9775}," 和 ",{"type":17,"tag":138,"props":9777,"children":9780},{"href":9778,"rel":9779},"https:\u002F\u002Fgithub.com\u002Fmingx9527\u002FData_Label_Tools",[142],[9781],{"type":22,"value":9782},"Data_Label_Tools",{"type":22,"value":7928},{"type":17,"tag":18,"props":9785,"children":9786},{},[9787],{"type":22,"value":9788},"领域特定：",{"type":17,"tag":54,"props":9790,"children":9791},{},[9792,9797,9815,9833,9851,9856],{"type":17,"tag":58,"props":9793,"children":9794},{},[9795],{"type":22,"value":9796},"CV：",{"type":17,"tag":58,"props":9798,"children":9799},{},[9800],{"type":17,"tag":54,"props":9801,"children":9802},{},[9803],{"type":17,"tag":58,"props":9804,"children":9805},{},[9806,9813],{"type":17,"tag":138,"props":9807,"children":9810},{"href":9808,"rel":9809},"https:\u002F\u002Fwww.labelme.io\u002F",[142],[9811],{"type":22,"value":9812},"label-me",{"type":22,"value":9814}," FOSS",{"type":17,"tag":58,"props":9816,"children":9817},{},[9818],{"type":17,"tag":54,"props":9819,"children":9820},{},[9821],{"type":17,"tag":58,"props":9822,"children":9823},{},[9824,9831],{"type":17,"tag":138,"props":9825,"children":9828},{"href":9826,"rel":9827},"https:\u002F\u002Fgithub.com\u002FCVHub520\u002FX-AnyLabeling",[142],[9829],{"type":22,"value":9830},"X-AnyLabeling",{"type":22,"value":9832}," GPL-3.0",{"type":17,"tag":58,"props":9834,"children":9835},{},[9836],{"type":17,"tag":54,"props":9837,"children":9838},{},[9839],{"type":17,"tag":58,"props":9840,"children":9841},{},[9842,9849],{"type":17,"tag":138,"props":9843,"children":9846},{"href":9844,"rel":9845},"https:\u002F\u002Fgithub.com\u002FHumanSignal\u002FlabelImg",[142],[9847],{"type":22,"value":9848},"label-img",{"type":22,"value":9850}," MIT(且已经 Archive, 被并入 label-studio)",{"type":17,"tag":58,"props":9852,"children":9853},{},[9854],{"type":22,"value":9855},"NLP:",{"type":17,"tag":58,"props":9857,"children":9858},{},[9859],{"type":17,"tag":54,"props":9860,"children":9861},{},[9862],{"type":17,"tag":58,"props":9863,"children":9864},{},[9865,9872],{"type":17,"tag":138,"props":9866,"children":9869},{"href":9867,"rel":9868},"https:\u002F\u002Fgithub.com\u002Frisesoft-y9\u002FData-Labeling",[142],[9870],{"type":22,"value":9871},"data-labeling",{"type":22,"value":9832},{"type":17,"tag":18,"props":9874,"children":9875},{},[9876],{"type":22,"value":9877},"通用类：",{"type":17,"tag":54,"props":9879,"children":9880},{},[9881],{"type":17,"tag":58,"props":9882,"children":9883},{},[9884,9891],{"type":17,"tag":138,"props":9885,"children":9888},{"href":9886,"rel":9887},"https:\u002F\u002Fgithub.com\u002FHumanSignal\u002Flabel-studio\u002F",[142],[9889],{"type":22,"value":9890},"label-studio",{"type":22,"value":9892}," Apache-2.0",{"type":17,"tag":18,"props":9894,"children":9895},{},[9896,9898,9905,9907,9914,9916,9923],{"type":22,"value":9897},"按企业整理的话。国外有 ",{"type":17,"tag":138,"props":9899,"children":9902},{"href":9900,"rel":9901},"https:\u002F\u002Fhumansignal.com\u002F",[142],[9903],{"type":22,"value":9904},"HumanSignal",{"type":22,"value":9906},"。国内有",{"type":17,"tag":138,"props":9908,"children":9911},{"href":9909,"rel":9910},"https:\u002F\u002Fstardust.ai\u002F",[142],[9912],{"type":22,"value":9913},"星尘",{"type":22,"value":9915}," 、",{"type":17,"tag":138,"props":9917,"children":9920},{"href":9918,"rel":9919},"https:\u002F\u002Fwww.risesoft.net\u002F",[142],[9921],{"type":22,"value":9922},"有生",{"type":22,"value":9924},"。HumanSignal 和 星尘是较早开始进入数据标注领域的。有生是今年才开始进入数据标注软件，并在 ToG 业务上有了进展。",{"title":8,"searchDepth":79,"depth":80,"links":9926},[],"content:posts:data-label-software.md","posts\u002Fdata-label-software.md","posts\u002Fdata-label-software",{"_path":9931,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9932,"description":9933,"date":9934,"categories":9256,"tags":9935,"body":9936,"_type":82,"_id":9965,"_source":84,"_file":9966,"_stem":9967,"_extension":87},"\u002Fposts\u002Fself-destruction","生活的崩坏与自我毁灭","是什么在牵引着我？我的行为，我的思想？我的感受？我所处的地方？它们在何处？","2024-12-19 12:00:00",[9258],{"type":14,"children":9937,"toc":9963},[9938,9943,9948,9958],{"type":17,"tag":18,"props":9939,"children":9940},{},[9941],{"type":22,"value":9942},"今天是单周，我按计划翘掉了不签到的早八，但是睡过了签到的早十。一觉起来翻看手机，发现室友在签到的时候问我，“你上课又没来吗”，我回答是。",{"type":17,"tag":18,"props":9944,"children":9945},{},[9946],{"type":22,"value":9947},"如果只是归咎原因，那么可以归于我的毫不在意和单双周的难记忆。但我，在感到有必要要去做的事情的时候，是会早早醒来的。我应当是感到了那样的生活是在消耗我，起码是消耗现在的我。",{"type":17,"tag":18,"props":9949,"children":9950},{},[9951,9956],{"type":17,"tag":106,"props":9952,"children":9953},{},[9954],{"type":22,"value":9955},"我对我将临的事情，并无期待，反而是反抗",{"type":22,"value":9957},"。而反抗，这种消极的反抗，造成的是：我生活的崩塌从 regular 到 irregular，从主流的道路到谁也不确定的道路。我生发了一种对生活、乃至“世界”的背叛感。我很难不去追问，到底是怎么了，为什么我会这样做呢。",{"type":17,"tag":18,"props":9959,"children":9960},{},[9961],{"type":22,"value":9962},"当我询问我自己这样的问题时，我内心其实已经有了答案和想法。当一个人生发出一种行为的时候，尚若他追问自己的言行，是一定能够归咎出原因的，即使脑海中假想推演出来的原因和对过去的模拟非常有可能是错误且偏离现实的。",{"title":8,"searchDepth":79,"depth":80,"links":9964},[],"content:posts:self-destruction.md","posts\u002Fself-destruction.md","posts\u002Fself-destruction",{"_path":9969,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9970,"description":9971,"date":9972,"categories":93,"tags":9973,"body":9974,"_type":82,"_id":10473,"_source":84,"_file":10474,"_stem":10475,"_extension":87},"\u002Fposts\u002Fcs194-196_llmagents","LLM Agents 课程笔记","UCB CS294\u002F194-196 Large Language Model Agents 的课程笔记。","2024-11-30 20:00:00",[4239],{"type":14,"children":9975,"toc":10453},[9976,9984,9989,9995,10000,10008,10013,10018,10025,10037,10049,10055,10060,10072,10084,10089,10100,10105,10118,10123,10131,10136,10141,10164,10169,10175,10183,10195,10200,10205,10213,10218,10231,10237,10250,10255,10260,10266,10271,10292,10300,10305,10311,10319,10324,10332,10337,10343,10348,10354,10359,10364,10369,10375,10380,10385,10393,10398,10404,10409,10413],{"type":17,"tag":149,"props":9977,"children":9978},{},[9979],{"type":17,"tag":18,"props":9980,"children":9981},{},[9982],{"type":22,"value":9983},"鉴定为水课，尽量挑感兴趣的有用的部分看。",{"type":17,"tag":18,"props":9985,"children":9986},{},[9987],{"type":22,"value":9988},"最近工作内容涉猎了大模型的应用，想更深入的了解一些，便打算试试这门课。笔记更新进度对应学习进度。",{"type":17,"tag":121,"props":9990,"children":9992},{"id":9991},"llm-reasoning",[9993],{"type":22,"value":9994},"LLM Reasoning",{"type":17,"tag":18,"props":9996,"children":9997},{},[9998],{"type":22,"value":9999},"提问：What do you expect for AI?",{"type":17,"tag":149,"props":10001,"children":10002},{},[10003],{"type":17,"tag":18,"props":10004,"children":10005},{},[10006],{"type":22,"value":10007},"What do you expect for AI?",{"type":17,"tag":18,"props":10009,"children":10010},{},[10011],{"type":22,"value":10012},"AI 是人类创造出来的更自动化的工具。若从控制的观点来说，AI 就是控制器的控制器，能够担负人类的现实任务。在理想的应用情况可以承担大部分社会物质精神运转的负荷。",{"type":17,"tag":18,"props":10014,"children":10015},{},[10016],{"type":22,"value":10017},"教授的回答:",{"type":17,"tag":149,"props":10019,"children":10020},{},[10021],{"type":17,"tag":18,"props":10022,"children":10023},{},[10024],{"type":22,"value":10007},{"type":17,"tag":18,"props":10026,"children":10027},{},[10028,10030,10035],{"type":22,"value":10029},"AI should be able to ",{"type":17,"tag":106,"props":10031,"children":10032},{},[10033],{"type":22,"value":10034},"learn from a few examples",{"type":22,"value":10036},", like what humans usually do",{"type":17,"tag":18,"props":10038,"children":10039},{},[10040,10042,10047],{"type":22,"value":10041},"而以往的机器学习达到了这个期望吗？并没有。机器学习缺乏归因能力——需要大样本学习。而”Humans can learn from just a few examples ",{"type":17,"tag":106,"props":10043,"children":10044},{},[10045],{"type":22,"value":10046},"because humans can reason",{"type":22,"value":10048},"“。因此其暗指大模型拥有 reason 能力。",{"type":17,"tag":4559,"props":10050,"children":10052},{"id":10051},"key-ideas",[10053],{"type":22,"value":10054},"Key Ideas",{"type":17,"tag":18,"props":10056,"children":10057},{},[10058],{"type":22,"value":10059},"我们慢慢引出一系列关键的想法来提升大模型的效果。",{"type":17,"tag":10061,"props":10062,"children":10064},"h4",{"id":10063},"derive-the-final-answer-through-intermedia-steps",[10065,10067],{"type":22,"value":10066},"Derive the Final Answer through ",{"type":17,"tag":106,"props":10068,"children":10069},{},[10070],{"type":22,"value":10071},"Intermedia Steps",{"type":17,"tag":18,"props":10073,"children":10074},{},[10075,10077,10082],{"type":22,"value":10076},"Also called ",{"type":17,"tag":106,"props":10078,"children":10079},{},[10080],{"type":22,"value":10081},"Chain-of-Thought",{"type":22,"value":10083},"(CoT).",{"type":17,"tag":18,"props":10085,"children":10086},{},[10087],{"type":22,"value":10088},"可以简单导出一种应用——CoT Prompting。最经典的一个例子——”Let's think step by step“，这个 Prompting 达成了零样本的 CoT。",{"type":17,"tag":10061,"props":10090,"children":10092},{"id":10091},"least-to-most-prompting-enable-easy-to-hard-generalization-by-decomposition",[10093,10095],{"type":22,"value":10094},"Least-to-Most Prompting ",{"type":17,"tag":4162,"props":10096,"children":10097},{},[10098],{"type":22,"value":10099},"Enable easy-to-hard generalization by decomposition",{"type":17,"tag":18,"props":10101,"children":10102},{},[10103],{"type":22,"value":10104},"《How to Solve It》一文中提到。",{"type":17,"tag":149,"props":10106,"children":10107},{},[10108],{"type":17,"tag":18,"props":10109,"children":10110},{},[10111,10116],{"type":17,"tag":106,"props":10112,"children":10113},{},[10114],{"type":22,"value":10115},"Decomposing and recombing",{"type":22,"value":10117}," are important operations fo the mind.\nYou decompose the whole into its parts, and you recombine the parts into a more or less different whole.\nIf you go into detail you may lose yourself in details.",{"type":17,"tag":18,"props":10119,"children":10120},{},[10121],{"type":22,"value":10122},"其实理念和计算机科学中一直倡导的缩小问题规模有共通之处？Map-Reduce，缩小问题规模不可避免地就要分解问题。",{"type":17,"tag":149,"props":10124,"children":10125},{},[10126],{"type":17,"tag":18,"props":10127,"children":10128},{},[10129],{"type":22,"value":10130},"Using just 0.1% demonstration examples achieves perfect generalization.",{"type":17,"tag":18,"props":10132,"children":10133},{},[10134],{"type":22,"value":10135},"这里不知道是指预训练时加入一定量地分解问题的数据，还是指对话时加入分解问题的例子。",{"type":17,"tag":18,"props":10137,"children":10138},{},[10139],{"type":22,"value":10140},"以上两种方法其实都是中间步骤。为什么中间步骤可以有如此大的效果呢？",{"type":17,"tag":54,"props":10142,"children":10143},{},[10144,10154],{"type":17,"tag":58,"props":10145,"children":10146},{},[10147,10152],{"type":17,"tag":106,"props":10148,"children":10149},{},[10150],{"type":22,"value":10151},"Constant-depth transformers",{"type":22,"value":10153}," can solve any inherently serial problem as long as it generates sufficiently long intermediate reasoning steps",{"type":17,"tag":58,"props":10155,"children":10156},{},[10157,10162],{"type":17,"tag":106,"props":10158,"children":10159},{},[10160],{"type":22,"value":10161},"Transformers which directly generate final answers",{"type":22,"value":10163}," either requires a huge depth to solve or cannot solve at all",{"type":17,"tag":18,"props":10165,"children":10166},{},[10167],{"type":22,"value":10168},"也就是说，没有中间步骤要么注意力强大到能直接解决问题，要么得到错乱的解。而加入中间步骤，解决序列问题中的每一个简单问题，从而可以解决任何能够分解为序列问题的问题。",{"type":17,"tag":10061,"props":10170,"children":10172},{"id":10171},"llms-as-analogical-reasoners",[10173],{"type":22,"value":10174},"LLMs as Analogical Reasoners",{"type":17,"tag":149,"props":10176,"children":10177},{},[10178],{"type":17,"tag":18,"props":10179,"children":10180},{},[10181],{"type":22,"value":10182},"Do you know a related problem? In fact, when solving a problem, we always profit from previously solved problems, using their result, or their method, or the experience we acquired solving them.",{"type":17,"tag":18,"props":10184,"children":10185},{},[10186,10188,10194],{"type":22,"value":10187},"出于这种思想，可以导出提示词——Recall a related problem, and then solve this one. （回忆一个相关问题，然后解决这个问题）。这种方法又叫 ",{"type":17,"tag":1249,"props":10189,"children":10191},{"className":10190},[],[10192],{"type":22,"value":10193},"Self-generated Examples",{"type":22,"value":4868},{"type":17,"tag":18,"props":10196,"children":10197},{},[10198],{"type":22,"value":10199},"不过提示词的角度太过于简陋，从我个人的角度来说，提示词其实很不安全，而且让我很不安。完全把命运交给多出来的词向量真的太怪了。有没有不使用 Prompting 就可以触发 CoT 的方法？",{"type":17,"tag":18,"props":10201,"children":10202},{},[10203],{"type":22,"value":10204},"有的。从 Decode 下手，以往 GPT 输出的时候是选择 Top-k 中概率最高的词输出，也就是简单的贪心选择。如果让其对 Top-k 中的词继续做生成，在根据置信度选择答案，这就是 CoT-decoding 方法。",{"type":17,"tag":18,"props":10206,"children":10207},{},[10208],{"type":17,"tag":48,"props":10209,"children":10212},{"alt":10210,"src":10211},"Illustration of CoT-decoding","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2402.10200v2\u002Fx1.png",[],{"type":17,"tag":18,"props":10214,"children":10215},{},[10216],{"type":22,"value":10217},"Key takeaways",{"type":17,"tag":3508,"props":10219,"children":10220},{},[10221,10226],{"type":17,"tag":58,"props":10222,"children":10223},{},[10224],{"type":22,"value":10225},"Pre-trained LLMs, without further finetuning, has been ready for step-by-step reasoning, but we need a non-greedy decoding strategy to elicit it.",{"type":17,"tag":58,"props":10227,"children":10228},{},[10229],{"type":22,"value":10230},"When a step-by-step reasoning path is present, KKMs have much higher confidence in decoding the final answer than direct-answer decoding.",{"type":17,"tag":10061,"props":10232,"children":10234},{"id":10233},"limits-of-intermediate-steps",[10235],{"type":22,"value":10236},"Limits of Intermediate Steps",{"type":17,"tag":149,"props":10238,"children":10239},{},[10240],{"type":17,"tag":18,"props":10241,"children":10242},{},[10243,10245],{"type":22,"value":10244},"Always keep in mind that LLMs are probabilistic models of generating next tokens. ",{"type":17,"tag":106,"props":10246,"children":10247},{},[10248],{"type":22,"value":10249},"They are not humans.",{"type":17,"tag":18,"props":10251,"children":10252},{},[10253],{"type":22,"value":10254},"我们希望：给出问题的基础上得到最大可能的最终答案。",{"type":17,"tag":18,"props":10256,"children":10257},{},[10258],{"type":22,"value":10259},"LLM CoT-decoding所做：给出问题的基础上，给出最大可能的 reasoning path 以及最大可能的最终答案。",{"type":17,"tag":10061,"props":10261,"children":10263},{"id":10262},"self-consistency",[10264],{"type":22,"value":10265},"Self-Consistency",{"type":17,"tag":18,"props":10267,"children":10268},{},[10269],{"type":22,"value":10270},"More consistent, more likely to be correct",{"type":17,"tag":18,"props":10272,"children":10273},{},[10274,10276,10284,10286,10291],{"type":22,"value":10275},"人性的一个突出方面是人们的思维方式不同。很自然地假设，在需要深思熟虑的任务中，可能有几种方法可以解决问题。我们建议可以通过从语言模型的解码器中采样来在语言模型中模拟这样的过程。例如，如图 ",{"type":17,"tag":138,"props":10277,"children":10281},{"href":10278,"rel":10279,"title":10280},"https:\u002F\u002Far5iv.labs.arxiv.org\u002Fhtml\u002F2203.11171?_immersive_translate_auto_translate=1#S1.F1",[142],"In 1 Introduction ‣ Self-Consistency Improves Chain of Thought Reasoning in Language Models",[10282],{"type":22,"value":10283},"1 所示",{"type":22,"value":10285}," ，一个模型可以对数学问题生成多个合理的回答，这些回答都得出相同的正确答案（输出 1 和 3）。由于语言模型不是完美的推理器，因此模型也可能产生不正确的推理路径或在其中一个推理步骤中出错（例如，在输出 2 中），但此类解决方案不太可能得出相同的答案。也就是说，我们",{"type":17,"tag":106,"props":10287,"children":10288},{},[10289],{"type":22,"value":10290},"假设正确的推理过程，即使它们是多种多样的，也往往比不正确的过程在最终答案中具有更大的一致性",{"type":22,"value":4868},{"type":17,"tag":18,"props":10293,"children":10294},{},[10295],{"type":17,"tag":48,"props":10296,"children":10299},{"alt":10297,"src":10298},"Self-Consistency method contains three steps","https:\u002F\u002Far5iv.labs.arxiv.org\u002Fhtml\u002F2203.11171\u002Fassets\u002Fx1.png",[],{"type":17,"tag":18,"props":10301,"children":10302},{},[10303],{"type":22,"value":10304},"Self-Consistency 利用了复杂的推理任务通常允许多条推理路径到达正确答案的直觉。一个问题越需要深思熟虑的思考和分析 ，可以得到答案的推理路径就越多样化。",{"type":17,"tag":10061,"props":10306,"children":10308},{"id":10307},"quiz",[10309],{"type":22,"value":10310},"Quiz",{"type":17,"tag":149,"props":10312,"children":10313},{},[10314],{"type":17,"tag":18,"props":10315,"children":10316},{},[10317],{"type":22,"value":10318},"Q1. When the LLM outputs a direct answer without intermediate steps, will you still sample several times, and then choose the most common answer?",{"type":17,"tag":18,"props":10320,"children":10321},{},[10322],{"type":22,"value":10323},"我不会，我倾向于它不能够解决这个问题，而重新换种问法。",{"type":17,"tag":149,"props":10325,"children":10326},{},[10327],{"type":17,"tag":18,"props":10328,"children":10329},{},[10330],{"type":22,"value":10331},"Q2. Change self-consistency by letting LLM generate multiple responses, instead of sampling multiple times, and then choosing the most common answer. Does this make sense?",{"type":17,"tag":18,"props":10333,"children":10334},{},[10335],{"type":22,"value":10336},"我认为这其实并不能解决问题。首先模型必须能够得出正确答案，假设其起作用的前提是，采样到的答案中正确的答案占大多数。这只能让复杂但不困难的任务表现的更好，而对于简单任务和复杂困难任务没有帮助。",{"type":17,"tag":4559,"props":10338,"children":10340},{"id":10339},"limitations",[10341],{"type":22,"value":10342},"Limitations",{"type":17,"tag":18,"props":10344,"children":10345},{},[10346],{"type":22,"value":10347},"大模型存在什么限制呢？了解限制可以让我们更好的发挥它的作用。",{"type":17,"tag":10061,"props":10349,"children":10351},{"id":10350},"llms-can-be-easily-distracted-by-irrelevant-context",[10352],{"type":22,"value":10353},"LLMs Can Be Easily Distracted by Irrelevant Context",{"type":17,"tag":18,"props":10355,"children":10356},{},[10357],{"type":22,"value":10358},"Psychology studies show that irrelevant information may significantly decrease some children and even adults problem-solving accuracy.",{"type":17,"tag":18,"props":10360,"children":10361},{},[10362],{"type":22,"value":10363},"在大模型上的表现就是——Adding irrelevant contexts to GSM8K leads to 20+ points performance drop.",{"type":17,"tag":18,"props":10365,"children":10366},{},[10367],{"type":22,"value":10368},"知道了如此限制，那么我们可以用提示词去尝试解决——Ignore irrelevant context。这可以挽回一点性能表现。",{"type":17,"tag":10061,"props":10370,"children":10372},{"id":10371},"llms-cannot-self-correct-reasoning-yet",[10373],{"type":22,"value":10374},"LLMs Cannot Self-Correct Reasoning Yet",{"type":17,"tag":18,"props":10376,"children":10377},{},[10378],{"type":22,"value":10379},"While allowing LLMs to review their generated responses can help correct inaccurate answers, it may also risk changing correct answers into incorrect ones.",{"type":17,"tag":18,"props":10381,"children":10382},{},[10383],{"type":22,"value":10384},"尤其是在常识性的问答中，GPT-3.5 Self-Correct 后的表现下降的很厉害。",{"type":17,"tag":149,"props":10386,"children":10387},{},[10388],{"type":17,"tag":18,"props":10389,"children":10390},{},[10391],{"type":22,"value":10392},"Reported improvements need oracle answers.",{"type":17,"tag":18,"props":10394,"children":10395},{},[10396],{"type":22,"value":10397},"Oracle: Let LLMs self correct only when the answer is wrong",{"type":17,"tag":10061,"props":10399,"children":10401},{"id":10400},"premise-order-matters-in-llm-reasoning",[10402],{"type":22,"value":10403},"Premise Order Matters in LLM Reasoning",{"type":17,"tag":18,"props":10405,"children":10406},{},[10407],{"type":22,"value":10408},"前提条件重排序会让 solving rates 下降。",{"type":17,"tag":4559,"props":10410,"children":10411},{"id":9604},[10412],{"type":22,"value":9604},{"type":17,"tag":54,"props":10414,"children":10415},{},[10416,10421,10432,10443,10448],{"type":17,"tag":58,"props":10417,"children":10418},{},[10419],{"type":22,"value":10420},"Generating intermediate steps improves LLM performance",{"type":17,"tag":58,"props":10422,"children":10423},{},[10424],{"type":17,"tag":54,"props":10425,"children":10426},{},[10427],{"type":17,"tag":58,"props":10428,"children":10429},{},[10430],{"type":22,"value":10431},"Training\u002Ffine-tuning\u002Fprompting with intermediate steps",{"type":17,"tag":58,"props":10433,"children":10434},{},[10435],{"type":17,"tag":54,"props":10436,"children":10437},{},[10438],{"type":17,"tag":58,"props":10439,"children":10440},{},[10441],{"type":22,"value":10442},"Zero-shot, analogical reasoning, special decoding",{"type":17,"tag":58,"props":10444,"children":10445},{},[10446],{"type":22,"value":10447},"Self-Consistency greatly improves step-by-step reasoning",{"type":17,"tag":58,"props":10449,"children":10450},{},[10451],{"type":22,"value":10452},"Limitation: irrelevant context, self-correction, premise order",{"title":8,"searchDepth":79,"depth":80,"links":10454},[10455],{"id":9991,"depth":79,"text":9994,"children":10456},[10457,10467,10472],{"id":10051,"depth":80,"text":10054,"children":10458},[10459,10461,10463,10464,10465,10466],{"id":10063,"depth":1281,"text":10460},"Derive the Final Answer through Intermedia Steps",{"id":10091,"depth":1281,"text":10462},"Least-to-Most Prompting Enable easy-to-hard generalization by decomposition",{"id":10171,"depth":1281,"text":10174},{"id":10233,"depth":1281,"text":10236},{"id":10262,"depth":1281,"text":10265},{"id":10307,"depth":1281,"text":10310},{"id":10339,"depth":80,"text":10342,"children":10468},[10469,10470,10471],{"id":10350,"depth":1281,"text":10353},{"id":10371,"depth":1281,"text":10374},{"id":10400,"depth":1281,"text":10403},{"id":9604,"depth":80,"text":9604},"content:posts:CS194-196_LLMAgents.md","posts\u002FCS194-196_LLMAgents.md","posts\u002FCS194-196_LLMAgents",{"_path":10477,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10478,"description":10479,"date":10480,"categories":9256,"tags":10481,"body":10482,"_type":82,"_id":10523,"_source":84,"_file":10524,"_stem":10525,"_extension":87},"\u002Fposts\u002Fwhatsyourworth","价值、位置","你们的生存究竟有何价值？如果毫无价值，你们究竟为何存在？","2024-11-29 02:00:00",[9258],{"type":14,"children":10483,"toc":10521},[10484,10491,10496,10501,10506,10511,10516],{"type":17,"tag":149,"props":10485,"children":10486},{},[10487],{"type":17,"tag":18,"props":10488,"children":10489},{},[10490],{"type":22,"value":10479},{"type":17,"tag":18,"props":10492,"children":10493},{},[10494],{"type":22,"value":10495},"我们该身处怎样的位置？或者说生活该是怎样的？我不知道。社会主义核心价值观中个人层面的要求提到我们要爱国、敬业、诚信、友善。朗朗上口又空洞的字眼，真的能指引我的生活吗？我否认它。",{"type":17,"tag":18,"props":10497,"children":10498},{},[10499],{"type":22,"value":10500},"对于有些人，这些问题是无需思考的，并非因为短视与无知，而是因为过往的生活经验中存在着经得起质疑的参考，他们信服且可以认定自己的生活方式与存在来源，并以此为生活的指导。另一些人是短视者，或许曾经有挣扎过，但还与社会的规训和解。这不如不做挣扎。我不是其中一员。作为具象的人，我不喜欢被分类，甚至说评价自己。或者换句话说，我讨厌暴露自己，即使现在我就在做着这样的事情。我的自反性强烈地牵引着我来到了一种莫名的境地，在这里我会感受到痛苦，并让我难以理解幸福。",{"type":17,"tag":18,"props":10502,"children":10503},{},[10504],{"type":22,"value":10505},"汲取某一样东西或者深深扎根在一处汲取营养与支持，那是再好不过的事情。我还是犹豫着选择。在上一刻被消灭下一刻不存在的现在，妄图否认一切。是可笑的。专注于某一项东西难免要做出某种选择。这都是胡说八道的谎言。",{"type":17,"tag":18,"props":10507,"children":10508},{},[10509],{"type":22,"value":10510},"事实上是，蜷缩的内心带来长时间不使用而萎靡的声音，惧怕外界的同时在自己内心的系统中不断咀嚼反复。其表象可以归为“微信恐惧症”。",{"type":17,"tag":18,"props":10512,"children":10513},{},[10514],{"type":22,"value":10515},"惧怕否认而自诩，自诩自重而自封。",{"type":17,"tag":18,"props":10517,"children":10518},{},[10519],{"type":22,"value":10520},"在时间的脉络和物质的运动之中，星河翻转的梦境里，时间，时间。不可避免地迈步向前，而由自反诞生的恐惧与疏远仍深深扎根。这一切都是漫长的白夜。我们的生存究竟有何价值？如果毫无价值，我们究竟为何存在？",{"title":8,"searchDepth":79,"depth":80,"links":10522},[],"content:posts:WhatsYourWorth.md","posts\u002FWhatsYourWorth.md","posts\u002FWhatsYourWorth",{"_path":10527,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10528,"description":10529,"date":10530,"categories":9256,"tags":10531,"body":10533,"_type":82,"_id":10611,"_source":84,"_file":10612,"_stem":10613,"_extension":87},"\u002Fposts\u002Fblogrelifever2","重启博客v2","忙里偷闲学习前端，还是决定结合想法手搓一个自己的博客。","2024-11-25 00:00:00",[10532],"博客",{"type":14,"children":10534,"toc":10609},[10535,10540,10545,10550,10555,10560,10573,10594,10599,10604],{"type":17,"tag":18,"props":10536,"children":10537},{},[10538],{"type":22,"value":10539},"很遗憾的一件事情——我发现以前的我并没有写出什么值得发表出来的博客，更遗憾的事情，现在的我也没有写出来这样的文字。",{"type":17,"tag":18,"props":10541,"children":10542},{},[10543],{"type":22,"value":10544},"大抵是从初中开始，我就对文字保有偌大的趣味。我认为那是一件值得品味，需要经验积累才能表征出的东西。我想写自己的小说，传达自己的思想。但自我判断后，认为仍需更多的现实经验积累（但其实更重要的是相应的锻炼，比如说写作训练），便将想法设置为遥远的理想，始终铭记，但将其搁置在行动清单外。",{"type":17,"tag":18,"props":10546,"children":10547},{},[10548],{"type":22,"value":10549},"大学刚入学后，学着网上胡乱的言论（还有身边的例子），我也开始写博客。那时候的我，对于博客的写作，其实只是大多停留在复制粘贴的搬运。毕竟经验与感想是需要累计和思考的，没有一定时间的浸润是很难以自己的想法表达出来其他人的想法的。而自我日常的思绪又过于混乱，不花时间做整理，到最后连自己都看不懂。这样记录实在是无趣。",{"type":17,"tag":18,"props":10551,"children":10552},{},[10553],{"type":22,"value":10554},"对于自我的寻找是更关键的。尽管我知道了自我的位置，但是我还是没有以——有足够归属感的、卸下自己防备的方式去接受自我的位置。这很大程度上动摇了我未来决策的基础。",{"type":17,"tag":18,"props":10556,"children":10557},{},[10558],{"type":22,"value":10559},"这实在遗憾。",{"type":17,"tag":18,"props":10561,"children":10562},{},[10563,10565,10571],{"type":22,"value":10564},"好了，谈了不少呓语。下面提一下这次博客的搭建。当然是放弃了 ",{"type":17,"tag":1249,"props":10566,"children":10568},{"className":10567},[],[10569],{"type":22,"value":10570},"Hexo",{"type":22,"value":10572},"，感到厌倦，还是不满意。很多时候就是一个想法出现，决定做不做。过后就会很快的把它丢出“缓存”。",{"type":17,"tag":18,"props":10574,"children":10575},{},[10576,10578,10584,10586,10592],{"type":22,"value":10577},"理想的博客要求是简单、简洁、书写方便。如此，需要 ",{"type":17,"tag":1249,"props":10579,"children":10581},{"className":10580},[],[10582],{"type":22,"value":10583},"Markdown",{"type":22,"value":10585}," 文件支持，也需要一些基本的功能，比如说 ",{"type":17,"tag":1249,"props":10587,"children":10589},{"className":10588},[],[10590],{"type":22,"value":10591},"RSS",{"type":22,"value":10593}," 订阅、评论、分类、标签、日夜模式切换等等。应该会在后续上线。",{"type":17,"tag":18,"props":10595,"children":10596},{},[10597],{"type":22,"value":10598},"技术栈：Nuxt3(+@nuxt\u002Fcontent) + TailwindCSS",{"type":17,"tag":18,"props":10600,"children":10601},{},[10602],{"type":22,"value":10603},"非常简单的技术栈。摸鱼的时候玩的很爽。www",{"type":17,"tag":18,"props":10605,"children":10606},{},[10607],{"type":22,"value":10608},"就是这样，博客还存在一些问题，但边用边解决吧。",{"title":8,"searchDepth":79,"depth":80,"links":10610},[],"content:posts:BlogRelifeVer2.md","posts\u002FBlogRelifeVer2.md","posts\u002FBlogRelifeVer2",{"_path":10615,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10616,"description":10617,"date":10618,"categories":9256,"tags":12,"body":10619,"_type":82,"_id":10743,"_source":84,"_file":10744,"_stem":10745,"_extension":87},"\u002Fposts\u002Fblogrelife","重启博客","在我的表达欲与现实所需(问题解决记录)驱动下，我决定重写博客。","2024-10-21 20:44:57",{"type":14,"children":10620,"toc":10741},[10621,10625,10646,10702,10721,10726,10731,10736],{"type":17,"tag":18,"props":10622,"children":10623},{},[10624],{"type":22,"value":10617},{"type":17,"tag":18,"props":10626,"children":10627},{},[10628,10630,10636,10638,10644],{"type":22,"value":10629},"我之前写过博客。但之前的流程过于琐碎。当想要看到我新写内容的效果时，我都需要忍受长达几秒的 ",{"type":17,"tag":1249,"props":10631,"children":10633},{"className":10632},[],[10634],{"type":22,"value":10635},"hexo g && hexo d",{"type":22,"value":10637},"，编辑的过程也不能够实时渲染。另一个使我厌烦的原因是，之前的博客是 Github Pages 部署的。我公开在 ",{"type":17,"tag":1249,"props":10639,"children":10641},{"className":10640},[],[10642],{"type":22,"value":10643},"GitHub Repo",{"type":22,"value":10645}," 上的源代码也很丑陋，实在让我提不起兴趣去写。",{"type":17,"tag":18,"props":10647,"children":10648},{},[10649,10651,10656,10658,10663,10665,10671,10673,10678,10680,10685,10686,10692,10694,10700],{"type":22,"value":10650},"我追求过程的简洁，便想换成渲染 ",{"type":17,"tag":1249,"props":10652,"children":10654},{"className":10653},[],[10655],{"type":22,"value":82},{"type":22,"value":10657}," 文件的博客 (",{"type":17,"tag":4162,"props":10659,"children":10660},{},[10661],{"type":22,"value":10662},"Hugo",{"type":22,"value":10664}," 可行，但没有去尝试)。自己也尝试用 ",{"type":17,"tag":1249,"props":10666,"children":10668},{"className":10667},[],[10669],{"type":22,"value":10670},"Nuxt3",{"type":22,"value":10672}," 写过一些 ",{"type":17,"tag":1249,"props":10674,"children":10676},{"className":10675},[],[10677],{"type":22,"value":10583},{"type":22,"value":10679}," 的静态渲染网站，实力有限其扩展能力也不强，最后还是用以前的老套路 (",{"type":17,"tag":1249,"props":10681,"children":10683},{"className":10682},[],[10684],{"type":22,"value":10570},{"type":22,"value":5594},{"type":17,"tag":1249,"props":10687,"children":10689},{"className":10688},[],[10690],{"type":22,"value":10691},"Butterfly",{"type":22,"value":10693}," theme)。不过这次决定将构建过程迁移到云端，提交到仓库的源代码就只是源代码了，这样我就只用 ",{"type":17,"tag":1249,"props":10695,"children":10697},{"className":10696},[],[10698],{"type":22,"value":10699},"git add *.md",{"type":22,"value":10701},"了。",{"type":17,"tag":18,"props":10703,"children":10704},{},[10705,10707,10712,10714,10719],{"type":22,"value":10706},"而且更令我惊喜的是，在这个过程中我还认识了 ",{"type":17,"tag":1249,"props":10708,"children":10710},{"className":10709},[],[10711],{"type":22,"value":10591},{"type":22,"value":10713}," 的存在。我可以通过 ",{"type":17,"tag":1249,"props":10715,"children":10717},{"className":10716},[],[10718],{"type":22,"value":10591},{"type":22,"value":10720}," 订阅自己的博客而忽略博客本身，这样可以更专注于写作。",{"type":17,"tag":18,"props":10722,"children":10723},{},[10724],{"type":22,"value":10725},"这次的博客更多是内心表达的冲动一直驱使着我，想要写下什么东西。我也时常怀疑自己——表达的方式真的只有这种吗？因此我也迟疑了很久，没有在网上写博客。而是在其他地方更隐私的地方零零碎碎地写下一些东西。但只是心血来潮写写罢了，三天打鱼两天晒网，其实和没写也没区别。",{"type":17,"tag":18,"props":10727,"children":10728},{},[10729],{"type":22,"value":10730},"不过这次就不一样了。",{"type":17,"tag":18,"props":10732,"children":10733},{},[10734],{"type":22,"value":10735},"哈哈？",{"type":17,"tag":18,"props":10737,"children":10738},{},[10739],{"type":22,"value":10740},"如此吧。",{"title":8,"searchDepth":79,"depth":80,"links":10742},[],"content:posts:BlogRelife.md","posts\u002FBlogRelife.md","posts\u002FBlogRelife",{"_path":10747,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10748,"description":10749,"categories":10750,"mathjax":7,"date":10751,"tags":10752,"body":10755,"_type":82,"_id":13850,"_source":84,"_file":13851,"_stem":13852,"_extension":87},"\u002Fposts\u002Fwindows11","从零配置 Windows11 开发环境","爽快的开发感从这里开始！","他玉集","2023-09-05 10:00:52",[10753,10754],"软件环境","Windows",{"type":14,"children":10756,"toc":13837},[10757,10769,10777,10782,10787,10792,10797,10820,10825,10862,10867,10885,10890,11020,11025,11044,11103,11108,11201,11206,11219,11224,11298,11309,11324,11335,11351,11364,11397,11418,11429,11434,11439,11444,11449,11454,11462,11590,11595,11600,11635,11652,11657,11681,11686,11691,11726,11731,11750,11755,11877,11882,11888,11898,12038,12043,12200,12205,12210,12231,12236,12306,12312,12318,12323,12412,12434,12807,12812,12817,12846,12851,12909,12915,13013,13019,13024,13029,13147,13152,13198,13211,13337,13342,13346,13401,13406,13492,13497,13544,13549,13630,13659,13700,13706,13711,13739,13744,13787,13792,13819,13833],{"type":17,"tag":18,"props":10758,"children":10759},{},[10760,10762],{"type":22,"value":10761},"Fork from: ",{"type":17,"tag":138,"props":10763,"children":10766},{"href":10764,"rel":10765},"https:\u002F\u002Fkirigaya.cn\u002Fblog\u002Farticle?seq=28",[142],[10767],{"type":22,"value":10768},"汇尘轩 - 锦恢的博客 (kirigaya.cn)",{"type":17,"tag":149,"props":10770,"children":10771},{},[10772],{"type":17,"tag":18,"props":10773,"children":10774},{},[10775],{"type":22,"value":10776},"There is no end though there is a start in space. ---Infinity.",{"type":17,"tag":18,"props":10778,"children":10779},{},[10780],{"type":22,"value":10781},"记录一下简单的电脑配置流程。按照这个顺序配置即可。",{"type":17,"tag":121,"props":10783,"children":10785},{"id":10784},"windows",[10786],{"type":22,"value":10754},{"type":17,"tag":18,"props":10788,"children":10789},{},[10790],{"type":22,"value":10791},"必须是Win11，因为我需要这个版本上面的一些特性，或是功能性的，或是装饰性的。",{"type":17,"tag":18,"props":10793,"children":10794},{},[10795],{"type":22,"value":10796},"一、登录微软账号",{"type":17,"tag":3508,"props":10798,"children":10799},{},[10800,10805,10810,10815],{"type":17,"tag":58,"props":10801,"children":10802},{},[10803],{"type":22,"value":10804},"同步部分OS配置",{"type":17,"tag":58,"props":10806,"children":10807},{},[10808],{"type":22,"value":10809},"同步edge",{"type":17,"tag":58,"props":10811,"children":10812},{},[10813],{"type":22,"value":10814},"同步应用商店",{"type":17,"tag":58,"props":10816,"children":10817},{},[10818],{"type":22,"value":10819},"升级到相应的Win11版本",{"type":17,"tag":18,"props":10821,"children":10822},{},[10823],{"type":22,"value":10824},"二、转移基本的静态文件",{"type":17,"tag":3508,"props":10826,"children":10827},{},[10828,10833,10838,10849],{"type":17,"tag":58,"props":10829,"children":10830},{},[10831],{"type":22,"value":10832},"所有的图片（壁纸+图标+光标）",{"type":17,"tag":58,"props":10834,"children":10835},{},[10836],{"type":22,"value":10837},"所有的额外字体文件（Jetbrain+Nerd等宽字体+几款我喜欢的中文字体）",{"type":17,"tag":58,"props":10839,"children":10840},{},[10841,10847],{"type":17,"tag":1249,"props":10842,"children":10844},{"className":10843},[],[10845],{"type":22,"value":10846},".ssh",{"type":22,"value":10848},"文件夹（用于登录服务器）",{"type":17,"tag":58,"props":10850,"children":10851},{},[10852,10854,10860],{"type":22,"value":10853},"windows terminal 的配置文件",{"type":17,"tag":1249,"props":10855,"children":10857},{"className":10856},[],[10858],{"type":22,"value":10859},"setting.json",{"type":22,"value":10861},"，并替换本机windows terminal配置文件，将部分的图标路径进行修改。",{"type":17,"tag":18,"props":10863,"children":10864},{},[10865],{"type":22,"value":10866},"三、下载应用软件",{"type":17,"tag":3508,"props":10868,"children":10869},{},[10870,10875,10880],{"type":17,"tag":58,"props":10871,"children":10872},{},[10873],{"type":22,"value":10874},"微软应用商店：Dolby Access（音效）, ScreenMix（录屏）, Snipaste（截屏）、TranslucentTB（美化任务栏）、Starrea（ePub阅读器）",{"type":17,"tag":58,"props":10876,"children":10877},{},[10878],{"type":22,"value":10879},"下载前往魔法址获取SSR订阅，下载并配置CFW。",{"type":17,"tag":58,"props":10881,"children":10882},{},[10883],{"type":22,"value":10884},"网上下载：Google Chrome, FireFox, Tim, 微信, 飞书, 百度网盘, 7z, postman, Office套件, 向日葵, obsidian, OneNote",{"type":17,"tag":18,"props":10886,"children":10887},{},[10888],{"type":22,"value":10889},"四、配置开发环境",{"type":17,"tag":3508,"props":10891,"children":10892},{},[10893,10905],{"type":17,"tag":58,"props":10894,"children":10895},{},[10896,10898],{"type":22,"value":10897},"下载 PowerShell 7.x 最新版本\n官方文档：",{"type":17,"tag":138,"props":10899,"children":10902},{"href":10900,"rel":10901},"https:\u002F\u002Flearn.microsoft.com\u002Fzh-cn\u002Fpowershell\u002Fscripting\u002Finstall\u002Finstalling-powershell-on-windows?view=powershell-7.3#msi",[142],[10903],{"type":22,"value":10904},"在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn",{"type":17,"tag":58,"props":10906,"children":10907},{},[10908,10910],{"type":22,"value":10909},"删除和python默认起冲突的可执行文件。使用管理员权限打开powershell，输入：",{"type":17,"tag":1242,"props":10911,"children":10915},{"className":10912,"code":10913,"language":10914,"meta":8,"style":8},"language-sh shiki shiki-themes github-light github-dark","cd C:\\Users\\\u003C用户名>\\AppData\\Local\\Microsoft\\WindowsApps\nrm python*\n","sh",[10916],{"type":17,"tag":1249,"props":10917,"children":10918},{"__ignoreMap":8},[10919,11002],{"type":17,"tag":180,"props":10920,"children":10921},{"class":1254,"line":1255},[10922,10927,10932,10937,10942,10947,10952,10957,10962,10967,10972,10977,10982,10987,10992,10997],{"type":17,"tag":180,"props":10923,"children":10924},{"style":4910},[10925],{"type":22,"value":10926},"cd",{"type":17,"tag":180,"props":10928,"children":10929},{"style":4895},[10930],{"type":22,"value":10931}," C:",{"type":17,"tag":180,"props":10933,"children":10934},{"style":4910},[10935],{"type":22,"value":10936},"\\U",{"type":17,"tag":180,"props":10938,"children":10939},{"style":4895},[10940],{"type":22,"value":10941},"sers",{"type":17,"tag":180,"props":10943,"children":10944},{"style":4910},[10945],{"type":22,"value":10946},"\\\u003C",{"type":17,"tag":180,"props":10948,"children":10949},{"style":4895},[10950],{"type":22,"value":10951},"用户",{"type":17,"tag":180,"props":10953,"children":10954},{"style":4901},[10955],{"type":22,"value":10956},"名",{"type":17,"tag":180,"props":10958,"children":10959},{"style":8552},[10960],{"type":22,"value":10961},">",{"type":17,"tag":180,"props":10963,"children":10964},{"style":4910},[10965],{"type":22,"value":10966},"\\A",{"type":17,"tag":180,"props":10968,"children":10969},{"style":4895},[10970],{"type":22,"value":10971},"ppData",{"type":17,"tag":180,"props":10973,"children":10974},{"style":4910},[10975],{"type":22,"value":10976},"\\L",{"type":17,"tag":180,"props":10978,"children":10979},{"style":4895},[10980],{"type":22,"value":10981},"ocal",{"type":17,"tag":180,"props":10983,"children":10984},{"style":4910},[10985],{"type":22,"value":10986},"\\M",{"type":17,"tag":180,"props":10988,"children":10989},{"style":4895},[10990],{"type":22,"value":10991},"icrosoft",{"type":17,"tag":180,"props":10993,"children":10994},{"style":4910},[10995],{"type":22,"value":10996},"\\W",{"type":17,"tag":180,"props":10998,"children":10999},{"style":4895},[11000],{"type":22,"value":11001},"indowsApps\n",{"type":17,"tag":180,"props":11003,"children":11004},{"class":1254,"line":79},[11005,11010,11015],{"type":17,"tag":180,"props":11006,"children":11007},{"style":8173},[11008],{"type":22,"value":11009},"rm",{"type":17,"tag":180,"props":11011,"children":11012},{"style":4895},[11013],{"type":22,"value":11014}," python",{"type":17,"tag":180,"props":11016,"children":11017},{"style":4910},[11018],{"type":22,"value":11019},"*\n",{"type":17,"tag":18,"props":11021,"children":11022},{},[11023],{"type":22,"value":11024},"2.下载 Git",{"type":17,"tag":3508,"props":11026,"children":11027},{},[11028,11039],{"type":17,"tag":58,"props":11029,"children":11030},{},[11031,11033],{"type":22,"value":11032},"前往 ",{"type":17,"tag":138,"props":11034,"children":11037},{"href":11035,"rel":11036},"https:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin",[142],[11038],{"type":22,"value":11035},{"type":17,"tag":58,"props":11040,"children":11041},{},[11042],{"type":22,"value":11043},"配置信息：",{"type":17,"tag":1242,"props":11045,"children":11047},{"className":10912,"code":11046,"language":10914,"meta":8,"style":8},"git config --global user.email xxx\ngit config --global user.name xxx\n",[11048],{"type":17,"tag":1249,"props":11049,"children":11050},{"__ignoreMap":8},[11051,11079],{"type":17,"tag":180,"props":11052,"children":11053},{"class":1254,"line":1255},[11054,11059,11064,11069,11074],{"type":17,"tag":180,"props":11055,"children":11056},{"style":8173},[11057],{"type":22,"value":11058},"git",{"type":17,"tag":180,"props":11060,"children":11061},{"style":4895},[11062],{"type":22,"value":11063}," config",{"type":17,"tag":180,"props":11065,"children":11066},{"style":4910},[11067],{"type":22,"value":11068}," --global",{"type":17,"tag":180,"props":11070,"children":11071},{"style":4895},[11072],{"type":22,"value":11073}," user.email",{"type":17,"tag":180,"props":11075,"children":11076},{"style":4895},[11077],{"type":22,"value":11078}," xxx\n",{"type":17,"tag":180,"props":11080,"children":11081},{"class":1254,"line":79},[11082,11086,11090,11094,11099],{"type":17,"tag":180,"props":11083,"children":11084},{"style":8173},[11085],{"type":22,"value":11058},{"type":17,"tag":180,"props":11087,"children":11088},{"style":4895},[11089],{"type":22,"value":11063},{"type":17,"tag":180,"props":11091,"children":11092},{"style":4910},[11093],{"type":22,"value":11068},{"type":17,"tag":180,"props":11095,"children":11096},{"style":4895},[11097],{"type":22,"value":11098}," user.name",{"type":17,"tag":180,"props":11100,"children":11101},{"style":4895},[11102],{"type":22,"value":11078},{"type":17,"tag":18,"props":11104,"children":11105},{},[11106],{"type":22,"value":11107},"3.设置代理：",{"type":17,"tag":1242,"props":11109,"children":11111},{"className":10912,"code":11110,"language":10914,"meta":8,"style":8},"git config --global http.proxy http:\u002F\u002F127.0.0.1:\u003C端口号>\ngit config --global https.proxy https:\u002F\u002F127.0.0.1:\u003C端口号>\n",[11112],{"type":17,"tag":1249,"props":11113,"children":11114},{"__ignoreMap":8},[11115,11160],{"type":17,"tag":180,"props":11116,"children":11117},{"class":1254,"line":1255},[11118,11122,11126,11130,11135,11140,11145,11150,11155],{"type":17,"tag":180,"props":11119,"children":11120},{"style":8173},[11121],{"type":22,"value":11058},{"type":17,"tag":180,"props":11123,"children":11124},{"style":4895},[11125],{"type":22,"value":11063},{"type":17,"tag":180,"props":11127,"children":11128},{"style":4910},[11129],{"type":22,"value":11068},{"type":17,"tag":180,"props":11131,"children":11132},{"style":4895},[11133],{"type":22,"value":11134}," http.proxy",{"type":17,"tag":180,"props":11136,"children":11137},{"style":4895},[11138],{"type":22,"value":11139}," http:\u002F\u002F127.0.0.1:",{"type":17,"tag":180,"props":11141,"children":11142},{"style":8552},[11143],{"type":22,"value":11144},"\u003C",{"type":17,"tag":180,"props":11146,"children":11147},{"style":4895},[11148],{"type":22,"value":11149},"端口",{"type":17,"tag":180,"props":11151,"children":11152},{"style":4901},[11153],{"type":22,"value":11154},"号",{"type":17,"tag":180,"props":11156,"children":11157},{"style":8552},[11158],{"type":22,"value":11159},">\n",{"type":17,"tag":180,"props":11161,"children":11162},{"class":1254,"line":79},[11163,11167,11171,11175,11180,11185,11189,11193,11197],{"type":17,"tag":180,"props":11164,"children":11165},{"style":8173},[11166],{"type":22,"value":11058},{"type":17,"tag":180,"props":11168,"children":11169},{"style":4895},[11170],{"type":22,"value":11063},{"type":17,"tag":180,"props":11172,"children":11173},{"style":4910},[11174],{"type":22,"value":11068},{"type":17,"tag":180,"props":11176,"children":11177},{"style":4895},[11178],{"type":22,"value":11179}," https.proxy",{"type":17,"tag":180,"props":11181,"children":11182},{"style":4895},[11183],{"type":22,"value":11184}," https:\u002F\u002F127.0.0.1:",{"type":17,"tag":180,"props":11186,"children":11187},{"style":8552},[11188],{"type":22,"value":11144},{"type":17,"tag":180,"props":11190,"children":11191},{"style":4895},[11192],{"type":22,"value":11149},{"type":17,"tag":180,"props":11194,"children":11195},{"style":4901},[11196],{"type":22,"value":11154},{"type":17,"tag":180,"props":11198,"children":11199},{"style":8552},[11200],{"type":22,"value":11159},{"type":17,"tag":18,"props":11202,"children":11203},{},[11204],{"type":22,"value":11205},"3.安装python",{"type":17,"tag":18,"props":11207,"children":11208},{},[11209,11211,11217],{"type":22,"value":11210},"1.去 ",{"type":17,"tag":138,"props":11212,"children":11215},{"href":11213,"rel":11214},"https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Fwindows\u002F",[142],[11216],{"type":22,"value":11213},{"type":22,"value":11218}," 寻找稳定版本的x64可执行文件下载",{"type":17,"tag":18,"props":11220,"children":11221},{},[11222],{"type":22,"value":11223},"2.配置pip源：",{"type":17,"tag":1242,"props":11225,"children":11227},{"className":10912,"code":11226,"language":10914,"meta":8,"style":8},"pip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip config set global.proxy http:\u002F\u002F127.0.0.1:\u003C端口号>\n",[11228],{"type":17,"tag":1249,"props":11229,"children":11230},{"__ignoreMap":8},[11231,11258],{"type":17,"tag":180,"props":11232,"children":11233},{"class":1254,"line":1255},[11234,11239,11243,11248,11253],{"type":17,"tag":180,"props":11235,"children":11236},{"style":8173},[11237],{"type":22,"value":11238},"pip",{"type":17,"tag":180,"props":11240,"children":11241},{"style":4895},[11242],{"type":22,"value":11063},{"type":17,"tag":180,"props":11244,"children":11245},{"style":4895},[11246],{"type":22,"value":11247}," set",{"type":17,"tag":180,"props":11249,"children":11250},{"style":4895},[11251],{"type":22,"value":11252}," global.index-url",{"type":17,"tag":180,"props":11254,"children":11255},{"style":4895},[11256],{"type":22,"value":11257}," https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n",{"type":17,"tag":180,"props":11259,"children":11260},{"class":1254,"line":79},[11261,11265,11269,11273,11278,11282,11286,11290,11294],{"type":17,"tag":180,"props":11262,"children":11263},{"style":8173},[11264],{"type":22,"value":11238},{"type":17,"tag":180,"props":11266,"children":11267},{"style":4895},[11268],{"type":22,"value":11063},{"type":17,"tag":180,"props":11270,"children":11271},{"style":4895},[11272],{"type":22,"value":11247},{"type":17,"tag":180,"props":11274,"children":11275},{"style":4895},[11276],{"type":22,"value":11277}," global.proxy",{"type":17,"tag":180,"props":11279,"children":11280},{"style":4895},[11281],{"type":22,"value":11139},{"type":17,"tag":180,"props":11283,"children":11284},{"style":8552},[11285],{"type":22,"value":11144},{"type":17,"tag":180,"props":11287,"children":11288},{"style":4895},[11289],{"type":22,"value":11149},{"type":17,"tag":180,"props":11291,"children":11292},{"style":4901},[11293],{"type":22,"value":11154},{"type":17,"tag":180,"props":11295,"children":11296},{"style":8552},[11297],{"type":22,"value":11159},{"type":17,"tag":18,"props":11299,"children":11300},{},[11301,11303],{"type":22,"value":11302},"4.安装MinGW ",{"type":17,"tag":138,"props":11304,"children":11307},{"href":11305,"rel":11306},"https:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fmingw\u002F",[142],[11308],{"type":22,"value":11305},{"type":17,"tag":149,"props":11310,"children":11311},{},[11312],{"type":17,"tag":18,"props":11313,"children":11314},{},[11315,11317],{"type":22,"value":11316},"忘记安装配置怎么选看",{"type":17,"tag":138,"props":11318,"children":11321},{"href":11319,"rel":11320},"https:\u002F\u002Fblog.csdn.net\u002FQuantumYou\u002Farticle\u002Fdetails\u002F119676283",[142],[11322],{"type":22,"value":11323},"这篇博客",{"type":17,"tag":18,"props":11325,"children":11326},{},[11327,11329],{"type":22,"value":11328},"5.安装cmake ",{"type":17,"tag":138,"props":11330,"children":11333},{"href":11331,"rel":11332},"https:\u002F\u002Fcmake.org\u002Fdownload\u002F",[142],[11334],{"type":22,"value":11331},{"type":17,"tag":149,"props":11336,"children":11337},{},[11338],{"type":17,"tag":18,"props":11339,"children":11340},{},[11341,11343,11349],{"type":22,"value":11342},"如果安装了VS，可以查看路径",{"type":17,"tag":1249,"props":11344,"children":11346},{"className":11345},[],[11347],{"type":22,"value":11348},"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin",{"type":22,"value":11350},"，这里面存在VS构建的cmake，上面的cmake可以不用下载。",{"type":17,"tag":18,"props":11352,"children":11353},{},[11354,11356,11362],{"type":22,"value":11355},"6.安装node ",{"type":17,"tag":138,"props":11357,"children":11360},{"href":11358,"rel":11359},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F",[142],[11361],{"type":22,"value":11358},{"type":22,"value":11363},"\nnpm 换源：",{"type":17,"tag":1242,"props":11365,"children":11367},{"className":10912,"code":11366,"language":10914,"meta":8,"style":8},"npm config set registry https:\u002F\u002Fregistry.npm.taobao.org\n",[11368],{"type":17,"tag":1249,"props":11369,"children":11370},{"__ignoreMap":8},[11371],{"type":17,"tag":180,"props":11372,"children":11373},{"class":1254,"line":1255},[11374,11379,11383,11387,11392],{"type":17,"tag":180,"props":11375,"children":11376},{"style":8173},[11377],{"type":22,"value":11378},"npm",{"type":17,"tag":180,"props":11380,"children":11381},{"style":4895},[11382],{"type":22,"value":11063},{"type":17,"tag":180,"props":11384,"children":11385},{"style":4895},[11386],{"type":22,"value":11247},{"type":17,"tag":180,"props":11388,"children":11389},{"style":4895},[11390],{"type":22,"value":11391}," registry",{"type":17,"tag":180,"props":11393,"children":11394},{"style":4895},[11395],{"type":22,"value":11396}," https:\u002F\u002Fregistry.npm.taobao.org\n",{"type":17,"tag":18,"props":11398,"children":11399},{},[11400,11402,11408,11410,11416],{"type":22,"value":11401},"7.安装go\n1. 找到安装 ",{"type":17,"tag":138,"props":11403,"children":11406},{"href":11404,"rel":11405},"https:\u002F\u002Fgolang.google.cn\u002Fdl\u002F",[142],[11407],{"type":22,"value":11404},{"type":22,"value":11409},"\n2. 配置：\n",{"type":17,"tag":1249,"props":11411,"children":11413},{"className":11412},[],[11414],{"type":22,"value":11415},"shell      go env -w GO111MODULE=on      go env -w GOPROXY=https:\u002F\u002Fgoproxy.cn,direct     ",{"type":22,"value":11417},"\n3.如果有必要，设置GOROOT和GOPATH环境变量",{"type":17,"tag":18,"props":11419,"children":11420},{},[11421,11423],{"type":22,"value":11422},"8.安装Java：",{"type":17,"tag":138,"props":11424,"children":11427},{"href":11425,"rel":11426},"https:\u002F\u002Fwww.oracle.com\u002Fhk\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F",[142],[11428],{"type":22,"value":11425},{"type":17,"tag":18,"props":11430,"children":11431},{},[11432],{"type":22,"value":11433},"9.测试以上编译器、解释器能否正常工作。",{"type":17,"tag":18,"props":11435,"children":11436},{},[11437],{"type":22,"value":11438},"10.安装vscode（科学上网），安装后打开并登录GitHub账号进行配置与插件同步（等到左下角的“正在同步”消失后，就可以退出了）",{"type":17,"tag":18,"props":11440,"children":11441},{},[11442],{"type":22,"value":11443},"11.安装VS2022（反正是最新版的就行），安装windows通用开发和C++的。",{"type":17,"tag":18,"props":11445,"children":11446},{},[11447],{"type":22,"value":11448},"五、配置终端",{"type":17,"tag":18,"props":11450,"children":11451},{},[11452],{"type":22,"value":11453},"以管理员权限打开windows terminal，执行下面的指令",{"type":17,"tag":3508,"props":11455,"children":11456},{},[11457],{"type":17,"tag":58,"props":11458,"children":11459},{},[11460],{"type":22,"value":11461},"配置 powershell，安装powershell插件",{"type":17,"tag":1242,"props":11463,"children":11465},{"className":10912,"code":11464,"language":10914,"meta":8,"style":8},"# 允许运行Install-Module脚本\nset-executionpolicy remotesigned\n\n# 更新最新版本的PSReadLine，为了自动补全\nInstall-Module PSReadLine -Force\n\n# 创建powershell 的初始化脚本，点击确认创建即可\nnotepad $profile\n\n# 安装几个插件\nInstall-Module posh-git\nInstall-Module Terminal-Icons\n",[11466],{"type":17,"tag":1249,"props":11467,"children":11468},{"__ignoreMap":8},[11469,11477,11490,11497,11505,11523,11530,11538,11551,11558,11566,11578],{"type":17,"tag":180,"props":11470,"children":11471},{"class":1254,"line":1255},[11472],{"type":17,"tag":180,"props":11473,"children":11474},{"style":8200},[11475],{"type":22,"value":11476},"# 允许运行Install-Module脚本\n",{"type":17,"tag":180,"props":11478,"children":11479},{"class":1254,"line":79},[11480,11485],{"type":17,"tag":180,"props":11481,"children":11482},{"style":8173},[11483],{"type":22,"value":11484},"set-executionpolicy",{"type":17,"tag":180,"props":11486,"children":11487},{"style":4895},[11488],{"type":22,"value":11489}," remotesigned\n",{"type":17,"tag":180,"props":11491,"children":11492},{"class":1254,"line":80},[11493],{"type":17,"tag":180,"props":11494,"children":11495},{"emptyLinePlaceholder":1267},[11496],{"type":22,"value":1270},{"type":17,"tag":180,"props":11498,"children":11499},{"class":1254,"line":1281},[11500],{"type":17,"tag":180,"props":11501,"children":11502},{"style":8200},[11503],{"type":22,"value":11504},"# 更新最新版本的PSReadLine，为了自动补全\n",{"type":17,"tag":180,"props":11506,"children":11507},{"class":1254,"line":1290},[11508,11513,11518],{"type":17,"tag":180,"props":11509,"children":11510},{"style":8173},[11511],{"type":22,"value":11512},"Install-Module",{"type":17,"tag":180,"props":11514,"children":11515},{"style":4895},[11516],{"type":22,"value":11517}," PSReadLine",{"type":17,"tag":180,"props":11519,"children":11520},{"style":4910},[11521],{"type":22,"value":11522}," -Force\n",{"type":17,"tag":180,"props":11524,"children":11525},{"class":1254,"line":1299},[11526],{"type":17,"tag":180,"props":11527,"children":11528},{"emptyLinePlaceholder":1267},[11529],{"type":22,"value":1270},{"type":17,"tag":180,"props":11531,"children":11532},{"class":1254,"line":1308},[11533],{"type":17,"tag":180,"props":11534,"children":11535},{"style":8200},[11536],{"type":22,"value":11537},"# 创建powershell 的初始化脚本，点击确认创建即可\n",{"type":17,"tag":180,"props":11539,"children":11540},{"class":1254,"line":1317},[11541,11546],{"type":17,"tag":180,"props":11542,"children":11543},{"style":8173},[11544],{"type":22,"value":11545},"notepad",{"type":17,"tag":180,"props":11547,"children":11548},{"style":4901},[11549],{"type":22,"value":11550}," $profile\n",{"type":17,"tag":180,"props":11552,"children":11553},{"class":1254,"line":1326},[11554],{"type":17,"tag":180,"props":11555,"children":11556},{"emptyLinePlaceholder":1267},[11557],{"type":22,"value":1270},{"type":17,"tag":180,"props":11559,"children":11560},{"class":1254,"line":1335},[11561],{"type":17,"tag":180,"props":11562,"children":11563},{"style":8200},[11564],{"type":22,"value":11565},"# 安装几个插件\n",{"type":17,"tag":180,"props":11567,"children":11568},{"class":1254,"line":5122},[11569,11573],{"type":17,"tag":180,"props":11570,"children":11571},{"style":8173},[11572],{"type":22,"value":11512},{"type":17,"tag":180,"props":11574,"children":11575},{"style":4895},[11576],{"type":22,"value":11577}," posh-git\n",{"type":17,"tag":180,"props":11579,"children":11580},{"class":1254,"line":6393},[11581,11585],{"type":17,"tag":180,"props":11582,"children":11583},{"style":8173},[11584],{"type":22,"value":11512},{"type":17,"tag":180,"props":11586,"children":11587},{"style":4895},[11588],{"type":22,"value":11589}," Terminal-Icons\n",{"type":17,"tag":18,"props":11591,"children":11592},{},[11593],{"type":22,"value":11594},"2.安装并配置oh-my-posh",{"type":17,"tag":18,"props":11596,"children":11597},{},[11598],{"type":22,"value":11599},"1.安装oh-my-posh",{"type":17,"tag":1242,"props":11601,"children":11603},{"className":10912,"code":11602,"language":10914,"meta":8,"style":8},"winget install JanDeDobbeleer.OhMyPosh -s winget\n",[11604],{"type":17,"tag":1249,"props":11605,"children":11606},{"__ignoreMap":8},[11607],{"type":17,"tag":180,"props":11608,"children":11609},{"class":1254,"line":1255},[11610,11615,11620,11625,11630],{"type":17,"tag":180,"props":11611,"children":11612},{"style":8173},[11613],{"type":22,"value":11614},"winget",{"type":17,"tag":180,"props":11616,"children":11617},{"style":4895},[11618],{"type":22,"value":11619}," install",{"type":17,"tag":180,"props":11621,"children":11622},{"style":4895},[11623],{"type":22,"value":11624}," JanDeDobbeleer.OhMyPosh",{"type":17,"tag":180,"props":11626,"children":11627},{"style":4910},[11628],{"type":22,"value":11629}," -s",{"type":17,"tag":180,"props":11631,"children":11632},{"style":4895},[11633],{"type":22,"value":11634}," winget\n",{"type":17,"tag":149,"props":11636,"children":11637},{},[11638],{"type":17,"tag":18,"props":11639,"children":11640},{},[11641,11643,11650],{"type":22,"value":11642},"如果该方法失效，移步",{"type":17,"tag":138,"props":11644,"children":11647},{"href":11645,"rel":11646},"https:\u002F\u002Fohmyposh.dev\u002Fdocs\u002Finstallation\u002Fwindows",[142],[11648],{"type":22,"value":11649},"oh-my-posh windows set up",{"type":22,"value":11651},"查看最新安装方法",{"type":17,"tag":18,"props":11653,"children":11654},{},[11655],{"type":22,"value":11656},"2.下载oh-my-posh主题",{"type":17,"tag":1242,"props":11658,"children":11660},{"className":10912,"code":11659,"language":10914,"meta":8,"style":8},"git clone https:\u002F\u002Fgithub.com\u002FJanDeDobbeleer\u002Foh-my-posh \n",[11661],{"type":17,"tag":1249,"props":11662,"children":11663},{"__ignoreMap":8},[11664],{"type":17,"tag":180,"props":11665,"children":11666},{"class":1254,"line":1255},[11667,11671,11676],{"type":17,"tag":180,"props":11668,"children":11669},{"style":8173},[11670],{"type":22,"value":11058},{"type":17,"tag":180,"props":11672,"children":11673},{"style":4895},[11674],{"type":22,"value":11675}," clone",{"type":17,"tag":180,"props":11677,"children":11678},{"style":4895},[11679],{"type":22,"value":11680}," https:\u002F\u002Fgithub.com\u002FJanDeDobbeleer\u002Foh-my-posh\n",{"type":17,"tag":18,"props":11682,"children":11683},{},[11684],{"type":22,"value":11685},"将里面的theme文件夹保留即可。",{"type":17,"tag":18,"props":11687,"children":11688},{},[11689],{"type":22,"value":11690},"3.测试",{"type":17,"tag":1242,"props":11692,"children":11694},{"className":10912,"code":11693,"language":10914,"meta":8,"style":8},"oh-my-posh init pwsh | Invoke-Expression\n",[11695],{"type":17,"tag":1249,"props":11696,"children":11697},{"__ignoreMap":8},[11698],{"type":17,"tag":180,"props":11699,"children":11700},{"class":1254,"line":1255},[11701,11706,11711,11716,11721],{"type":17,"tag":180,"props":11702,"children":11703},{"style":8173},[11704],{"type":22,"value":11705},"oh-my-posh",{"type":17,"tag":180,"props":11707,"children":11708},{"style":4895},[11709],{"type":22,"value":11710}," init",{"type":17,"tag":180,"props":11712,"children":11713},{"style":4895},[11714],{"type":22,"value":11715}," pwsh",{"type":17,"tag":180,"props":11717,"children":11718},{"style":8552},[11719],{"type":22,"value":11720}," |",{"type":17,"tag":180,"props":11722,"children":11723},{"style":8173},[11724],{"type":22,"value":11725}," Invoke-Expression\n",{"type":17,"tag":18,"props":11727,"children":11728},{},[11729],{"type":22,"value":11730},"3.配置整体运行文件",{"type":17,"tag":1242,"props":11732,"children":11734},{"className":10912,"code":11733,"language":10914,"meta":8,"style":8},"notepad++ $profile\n",[11735],{"type":17,"tag":1249,"props":11736,"children":11737},{"__ignoreMap":8},[11738],{"type":17,"tag":180,"props":11739,"children":11740},{"class":1254,"line":1255},[11741,11746],{"type":17,"tag":180,"props":11742,"children":11743},{"style":8173},[11744],{"type":22,"value":11745},"notepad++",{"type":17,"tag":180,"props":11747,"children":11748},{"style":4901},[11749],{"type":22,"value":11550},{"type":17,"tag":18,"props":11751,"children":11752},{},[11753],{"type":22,"value":11754},"将以下文本写入其中：",{"type":17,"tag":1242,"props":11756,"children":11758},{"className":10912,"code":11757,"language":10914,"meta":8,"style":8},"oh-my-posh init pwsh --config \u003C主题路径（json文件）> | Invoke-Expression\nImport-Module posh-git\nImport-Module Terminal-Icons\nSet-PSReadLineOption -PredictionSource History\nSet-PSReadlineKeyHandler -Key Tab -Function MenuComplete\n",[11759],{"type":17,"tag":1249,"props":11760,"children":11761},{"__ignoreMap":8},[11762,11808,11820,11831,11849],{"type":17,"tag":180,"props":11763,"children":11764},{"class":1254,"line":1255},[11765,11769,11773,11777,11782,11787,11792,11796,11800,11804],{"type":17,"tag":180,"props":11766,"children":11767},{"style":8173},[11768],{"type":22,"value":11705},{"type":17,"tag":180,"props":11770,"children":11771},{"style":4895},[11772],{"type":22,"value":11710},{"type":17,"tag":180,"props":11774,"children":11775},{"style":4895},[11776],{"type":22,"value":11715},{"type":17,"tag":180,"props":11778,"children":11779},{"style":4910},[11780],{"type":22,"value":11781}," --config",{"type":17,"tag":180,"props":11783,"children":11784},{"style":8552},[11785],{"type":22,"value":11786}," \u003C",{"type":17,"tag":180,"props":11788,"children":11789},{"style":4895},[11790],{"type":22,"value":11791},"主题路径（json文件",{"type":17,"tag":180,"props":11793,"children":11794},{"style":4901},[11795],{"type":22,"value":4557},{"type":17,"tag":180,"props":11797,"children":11798},{"style":8552},[11799],{"type":22,"value":10961},{"type":17,"tag":180,"props":11801,"children":11802},{"style":8552},[11803],{"type":22,"value":11720},{"type":17,"tag":180,"props":11805,"children":11806},{"style":8173},[11807],{"type":22,"value":11725},{"type":17,"tag":180,"props":11809,"children":11810},{"class":1254,"line":79},[11811,11816],{"type":17,"tag":180,"props":11812,"children":11813},{"style":8173},[11814],{"type":22,"value":11815},"Import-Module",{"type":17,"tag":180,"props":11817,"children":11818},{"style":4895},[11819],{"type":22,"value":11577},{"type":17,"tag":180,"props":11821,"children":11822},{"class":1254,"line":80},[11823,11827],{"type":17,"tag":180,"props":11824,"children":11825},{"style":8173},[11826],{"type":22,"value":11815},{"type":17,"tag":180,"props":11828,"children":11829},{"style":4895},[11830],{"type":22,"value":11589},{"type":17,"tag":180,"props":11832,"children":11833},{"class":1254,"line":1281},[11834,11839,11844],{"type":17,"tag":180,"props":11835,"children":11836},{"style":8173},[11837],{"type":22,"value":11838},"Set-PSReadLineOption",{"type":17,"tag":180,"props":11840,"children":11841},{"style":4910},[11842],{"type":22,"value":11843}," -PredictionSource",{"type":17,"tag":180,"props":11845,"children":11846},{"style":4895},[11847],{"type":22,"value":11848}," History\n",{"type":17,"tag":180,"props":11850,"children":11851},{"class":1254,"line":1290},[11852,11857,11862,11867,11872],{"type":17,"tag":180,"props":11853,"children":11854},{"style":8173},[11855],{"type":22,"value":11856},"Set-PSReadlineKeyHandler",{"type":17,"tag":180,"props":11858,"children":11859},{"style":4910},[11860],{"type":22,"value":11861}," -Key",{"type":17,"tag":180,"props":11863,"children":11864},{"style":4895},[11865],{"type":22,"value":11866}," Tab",{"type":17,"tag":180,"props":11868,"children":11869},{"style":4910},[11870],{"type":22,"value":11871}," -Function",{"type":17,"tag":180,"props":11873,"children":11874},{"style":4895},[11875],{"type":22,"value":11876}," MenuComplete\n",{"type":17,"tag":18,"props":11878,"children":11879},{},[11880],{"type":22,"value":11881},"重新打开terminal查看安装效果",{"type":17,"tag":121,"props":11883,"children":11885},{"id":11884},"六安装wsl2",[11886],{"type":22,"value":11887},"六、安装WSL2",{"type":17,"tag":18,"props":11889,"children":11890},{},[11891,11896],{"type":17,"tag":106,"props":11892,"children":11893},{},[11894],{"type":22,"value":11895},"以管理员身份",{"type":22,"value":11897},"打开windows terminal",{"type":17,"tag":1242,"props":11899,"children":11901},{"className":8161,"code":11900,"language":8163,"meta":8,"style":8},"# 开启VM组件 开启后需要重启电脑\nEnable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform\n\n# 列出可安装的安装包\nwsl --list --online\n\n# 安装你想要的发行版，我这里是Ubuntu-22.04\nwsl --install -d Ubuntu-22.04\n\n# 设置为wsl2\nwsl --set-default-version 2\n",[11902],{"type":17,"tag":1249,"props":11903,"children":11904},{"__ignoreMap":8},[11905,11913,11936,11943,11951,11969,11976,11984,12006,12013,12021],{"type":17,"tag":180,"props":11906,"children":11907},{"class":1254,"line":1255},[11908],{"type":17,"tag":180,"props":11909,"children":11910},{"style":8200},[11911],{"type":22,"value":11912},"# 开启VM组件 开启后需要重启电脑\n",{"type":17,"tag":180,"props":11914,"children":11915},{"class":1254,"line":79},[11916,11921,11926,11931],{"type":17,"tag":180,"props":11917,"children":11918},{"style":8173},[11919],{"type":22,"value":11920},"Enable-WindowsOptionalFeature",{"type":17,"tag":180,"props":11922,"children":11923},{"style":4910},[11924],{"type":22,"value":11925}," -Online",{"type":17,"tag":180,"props":11927,"children":11928},{"style":4910},[11929],{"type":22,"value":11930}," -FeatureName",{"type":17,"tag":180,"props":11932,"children":11933},{"style":4895},[11934],{"type":22,"value":11935}," VirtualMachinePlatform\n",{"type":17,"tag":180,"props":11937,"children":11938},{"class":1254,"line":80},[11939],{"type":17,"tag":180,"props":11940,"children":11941},{"emptyLinePlaceholder":1267},[11942],{"type":22,"value":1270},{"type":17,"tag":180,"props":11944,"children":11945},{"class":1254,"line":1281},[11946],{"type":17,"tag":180,"props":11947,"children":11948},{"style":8200},[11949],{"type":22,"value":11950},"# 列出可安装的安装包\n",{"type":17,"tag":180,"props":11952,"children":11953},{"class":1254,"line":1290},[11954,11959,11964],{"type":17,"tag":180,"props":11955,"children":11956},{"style":8173},[11957],{"type":22,"value":11958},"wsl",{"type":17,"tag":180,"props":11960,"children":11961},{"style":4910},[11962],{"type":22,"value":11963}," --list",{"type":17,"tag":180,"props":11965,"children":11966},{"style":4910},[11967],{"type":22,"value":11968}," --online\n",{"type":17,"tag":180,"props":11970,"children":11971},{"class":1254,"line":1299},[11972],{"type":17,"tag":180,"props":11973,"children":11974},{"emptyLinePlaceholder":1267},[11975],{"type":22,"value":1270},{"type":17,"tag":180,"props":11977,"children":11978},{"class":1254,"line":1308},[11979],{"type":17,"tag":180,"props":11980,"children":11981},{"style":8200},[11982],{"type":22,"value":11983},"# 安装你想要的发行版，我这里是Ubuntu-22.04\n",{"type":17,"tag":180,"props":11985,"children":11986},{"class":1254,"line":1317},[11987,11991,11996,12001],{"type":17,"tag":180,"props":11988,"children":11989},{"style":8173},[11990],{"type":22,"value":11958},{"type":17,"tag":180,"props":11992,"children":11993},{"style":4910},[11994],{"type":22,"value":11995}," --install",{"type":17,"tag":180,"props":11997,"children":11998},{"style":4910},[11999],{"type":22,"value":12000}," -d",{"type":17,"tag":180,"props":12002,"children":12003},{"style":4895},[12004],{"type":22,"value":12005}," Ubuntu-22.04\n",{"type":17,"tag":180,"props":12007,"children":12008},{"class":1254,"line":1326},[12009],{"type":17,"tag":180,"props":12010,"children":12011},{"emptyLinePlaceholder":1267},[12012],{"type":22,"value":1270},{"type":17,"tag":180,"props":12014,"children":12015},{"class":1254,"line":1335},[12016],{"type":17,"tag":180,"props":12017,"children":12018},{"style":8200},[12019],{"type":22,"value":12020},"# 设置为wsl2\n",{"type":17,"tag":180,"props":12022,"children":12023},{"class":1254,"line":5122},[12024,12028,12033],{"type":17,"tag":180,"props":12025,"children":12026},{"style":8173},[12027],{"type":22,"value":11958},{"type":17,"tag":180,"props":12029,"children":12030},{"style":4910},[12031],{"type":22,"value":12032}," --set-default-version",{"type":17,"tag":180,"props":12034,"children":12035},{"style":4910},[12036],{"type":22,"value":12037}," 2\n",{"type":17,"tag":18,"props":12039,"children":12040},{},[12041],{"type":22,"value":12042},"WSL可以简单的创建多个发行版，并进行管理和切换。并且可以对接VS code及Jetbrain(学生可以申请专业版！！快去)等IDE。支持CUDA，docker，并且享受linux命令行的各种工具。掌握使用WSL是重要的。\n现在来举例一些基本的操作。",{"type":17,"tag":1242,"props":12044,"children":12046},{"className":8161,"code":12045,"language":8163,"meta":8,"style":8},"# 列出已安装的Linux发行版\nwsl -l -v\n# 导出\u002F备份\nwsl --export Ubuntu-22.04 Ubuntu-22.04.tar\n# 导入\u002F还原\u002F利用备份创建新的安装\n# wsl --import \u003Cwsl_name> \u003Croute> \u003Csource>\nwsl --import Anaconda C:\\Users\\niina\\root\\var\\wsl\\anaconda\n",[12047],{"type":17,"tag":1249,"props":12048,"children":12049},{"__ignoreMap":8},[12050,12058,12075,12083,12105,12113,12121],{"type":17,"tag":180,"props":12051,"children":12052},{"class":1254,"line":1255},[12053],{"type":17,"tag":180,"props":12054,"children":12055},{"style":8200},[12056],{"type":22,"value":12057},"# 列出已安装的Linux发行版\n",{"type":17,"tag":180,"props":12059,"children":12060},{"class":1254,"line":79},[12061,12065,12070],{"type":17,"tag":180,"props":12062,"children":12063},{"style":8173},[12064],{"type":22,"value":11958},{"type":17,"tag":180,"props":12066,"children":12067},{"style":4910},[12068],{"type":22,"value":12069}," -l",{"type":17,"tag":180,"props":12071,"children":12072},{"style":4910},[12073],{"type":22,"value":12074}," -v\n",{"type":17,"tag":180,"props":12076,"children":12077},{"class":1254,"line":80},[12078],{"type":17,"tag":180,"props":12079,"children":12080},{"style":8200},[12081],{"type":22,"value":12082},"# 导出\u002F备份\n",{"type":17,"tag":180,"props":12084,"children":12085},{"class":1254,"line":1281},[12086,12090,12095,12100],{"type":17,"tag":180,"props":12087,"children":12088},{"style":8173},[12089],{"type":22,"value":11958},{"type":17,"tag":180,"props":12091,"children":12092},{"style":4910},[12093],{"type":22,"value":12094}," --export",{"type":17,"tag":180,"props":12096,"children":12097},{"style":4895},[12098],{"type":22,"value":12099}," Ubuntu-22.04",{"type":17,"tag":180,"props":12101,"children":12102},{"style":4895},[12103],{"type":22,"value":12104}," Ubuntu-22.04.tar\n",{"type":17,"tag":180,"props":12106,"children":12107},{"class":1254,"line":1290},[12108],{"type":17,"tag":180,"props":12109,"children":12110},{"style":8200},[12111],{"type":22,"value":12112},"# 导入\u002F还原\u002F利用备份创建新的安装\n",{"type":17,"tag":180,"props":12114,"children":12115},{"class":1254,"line":1299},[12116],{"type":17,"tag":180,"props":12117,"children":12118},{"style":8200},[12119],{"type":22,"value":12120},"# wsl --import \u003Cwsl_name> \u003Croute> \u003Csource>\n",{"type":17,"tag":180,"props":12122,"children":12123},{"class":1254,"line":1308},[12124,12128,12133,12138,12142,12146,12150,12155,12160,12165,12170,12175,12180,12185,12190,12195],{"type":17,"tag":180,"props":12125,"children":12126},{"style":8173},[12127],{"type":22,"value":11958},{"type":17,"tag":180,"props":12129,"children":12130},{"style":4910},[12131],{"type":22,"value":12132}," --import",{"type":17,"tag":180,"props":12134,"children":12135},{"style":4895},[12136],{"type":22,"value":12137}," Anaconda",{"type":17,"tag":180,"props":12139,"children":12140},{"style":4895},[12141],{"type":22,"value":10931},{"type":17,"tag":180,"props":12143,"children":12144},{"style":4910},[12145],{"type":22,"value":10936},{"type":17,"tag":180,"props":12147,"children":12148},{"style":4895},[12149],{"type":22,"value":10941},{"type":17,"tag":180,"props":12151,"children":12152},{"style":4910},[12153],{"type":22,"value":12154},"\\n",{"type":17,"tag":180,"props":12156,"children":12157},{"style":4895},[12158],{"type":22,"value":12159},"iina",{"type":17,"tag":180,"props":12161,"children":12162},{"style":4910},[12163],{"type":22,"value":12164},"\\r",{"type":17,"tag":180,"props":12166,"children":12167},{"style":4895},[12168],{"type":22,"value":12169},"oot",{"type":17,"tag":180,"props":12171,"children":12172},{"style":4910},[12173],{"type":22,"value":12174},"\\v",{"type":17,"tag":180,"props":12176,"children":12177},{"style":4895},[12178],{"type":22,"value":12179},"ar",{"type":17,"tag":180,"props":12181,"children":12182},{"style":4910},[12183],{"type":22,"value":12184},"\\w",{"type":17,"tag":180,"props":12186,"children":12187},{"style":4895},[12188],{"type":22,"value":12189},"sl",{"type":17,"tag":180,"props":12191,"children":12192},{"style":4910},[12193],{"type":22,"value":12194},"\\a",{"type":17,"tag":180,"props":12196,"children":12197},{"style":4895},[12198],{"type":22,"value":12199},"naconda\n",{"type":17,"tag":18,"props":12201,"children":12202},{},[12203],{"type":22,"value":12204},"以上操作完成后，在win+Q(或win)中搜索ubuntu on Windows，打开，完成安装和账号注册（Unix账号必须是开头小写的单词）",{"type":17,"tag":18,"props":12206,"children":12207},{},[12208],{"type":22,"value":12209},"完成后打开windows terminal的下拉菜单，会发现多出了一个Ubuntu的标签页。后面移步Linux的配置。",{"type":17,"tag":18,"props":12211,"children":12212},{},[12213,12215,12222,12224],{"type":22,"value":12214},"WSL学习使用：",{"type":17,"tag":138,"props":12216,"children":12219},{"href":12217,"rel":12218},"https:\u002F\u002Flearn.microsoft.com\u002Fzh-cn\u002Fwindows\u002Fwsl\u002F",[142],[12220],{"type":22,"value":12221},"适用于 Linux 的 Windows 子系统文档 | Microsoft Learn",{"type":22,"value":12223},"\n开源的一个WSL入门手册： ",{"type":17,"tag":138,"props":12225,"children":12228},{"href":12226,"rel":12227},"https:\u002F\u002Fdowww.spencerwoo.com\u002F",[142],[12229],{"type":22,"value":12230},"在Windows上优雅地使用WSL开发",{"type":17,"tag":18,"props":12232,"children":12233},{},[12234],{"type":22,"value":12235},"七、兴趣爱好",{"type":17,"tag":54,"props":12237,"children":12238},{},[12239,12250,12260,12265,12275,12285,12295],{"type":17,"tag":58,"props":12240,"children":12241},{},[12242,12244],{"type":22,"value":12243},"cuDNN开发套件（用于开发kernel op和安装编译torch cuda） ",{"type":17,"tag":138,"props":12245,"children":12248},{"href":12246,"rel":12247},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-downloads",[142],[12249],{"type":22,"value":12246},{"type":17,"tag":58,"props":12251,"children":12252},{},[12253],{"type":17,"tag":138,"props":12254,"children":12257},{"href":12255,"rel":12256},"https:\u002F\u002Fwww.flstudiochina.com\u002Fxiazai.html",[142],[12258],{"type":22,"value":12259},"FL Studio",{"type":17,"tag":58,"props":12261,"children":12262},{},[12263],{"type":22,"value":12264},"Cubase",{"type":17,"tag":58,"props":12266,"children":12267},{},[12268],{"type":17,"tag":138,"props":12269,"children":12272},{"href":12270,"rel":12271},"https:\u002F\u002Fwww.reaper.fm\u002Fdownload.php",[142],[12273],{"type":22,"value":12274},"REAPER",{"type":17,"tag":58,"props":12276,"children":12277},{},[12278],{"type":17,"tag":138,"props":12279,"children":12282},{"href":12280,"rel":12281},"https:\u002F\u002Fdreamtonics.com\u002Fen\u002Fsynthesizerv\u002F",[142],[12283],{"type":22,"value":12284},"Synthesizer V",{"type":17,"tag":58,"props":12286,"children":12287},{},[12288],{"type":17,"tag":138,"props":12289,"children":12292},{"href":12290,"rel":12291},"https:\u002F\u002Fstore.steampowered.com\u002Fabout\u002F",[142],[12293],{"type":22,"value":12294},"Steam",{"type":17,"tag":58,"props":12296,"children":12297},{},[12298,12300],{"type":22,"value":12299},"ACE studio  ",{"type":17,"tag":138,"props":12301,"children":12304},{"href":12302,"rel":12303},"https:\u002F\u002Face-studio.timedomain.cn\u002F",[142],[12305],{"type":22,"value":12302},{"type":17,"tag":121,"props":12307,"children":12309},{"id":12308},"linux",[12310],{"type":22,"value":12311},"Linux",{"type":17,"tag":4559,"props":12313,"children":12315},{"id":12314},"一apt换源",[12316],{"type":22,"value":12317},"一、apt换源",{"type":17,"tag":18,"props":12319,"children":12320},{},[12321],{"type":22,"value":12322},"操作如下。",{"type":17,"tag":1242,"props":12324,"children":12326},{"className":10912,"code":12325,"language":10914,"meta":8,"style":8},"cd \u002Fetc\u002Fapt\u002F\n\n# 留个source备份\nsudo cp sources.list sources.list.backup\n\n# 使用源\nsudo vim sources.list\n",[12327],{"type":17,"tag":1249,"props":12328,"children":12329},{"__ignoreMap":8},[12330,12342,12349,12357,12380,12387,12395],{"type":17,"tag":180,"props":12331,"children":12332},{"class":1254,"line":1255},[12333,12337],{"type":17,"tag":180,"props":12334,"children":12335},{"style":4910},[12336],{"type":22,"value":10926},{"type":17,"tag":180,"props":12338,"children":12339},{"style":4895},[12340],{"type":22,"value":12341}," \u002Fetc\u002Fapt\u002F\n",{"type":17,"tag":180,"props":12343,"children":12344},{"class":1254,"line":79},[12345],{"type":17,"tag":180,"props":12346,"children":12347},{"emptyLinePlaceholder":1267},[12348],{"type":22,"value":1270},{"type":17,"tag":180,"props":12350,"children":12351},{"class":1254,"line":80},[12352],{"type":17,"tag":180,"props":12353,"children":12354},{"style":8200},[12355],{"type":22,"value":12356},"# 留个source备份\n",{"type":17,"tag":180,"props":12358,"children":12359},{"class":1254,"line":1281},[12360,12365,12370,12375],{"type":17,"tag":180,"props":12361,"children":12362},{"style":8173},[12363],{"type":22,"value":12364},"sudo",{"type":17,"tag":180,"props":12366,"children":12367},{"style":4895},[12368],{"type":22,"value":12369}," cp",{"type":17,"tag":180,"props":12371,"children":12372},{"style":4895},[12373],{"type":22,"value":12374}," sources.list",{"type":17,"tag":180,"props":12376,"children":12377},{"style":4895},[12378],{"type":22,"value":12379}," sources.list.backup\n",{"type":17,"tag":180,"props":12381,"children":12382},{"class":1254,"line":1290},[12383],{"type":17,"tag":180,"props":12384,"children":12385},{"emptyLinePlaceholder":1267},[12386],{"type":22,"value":1270},{"type":17,"tag":180,"props":12388,"children":12389},{"class":1254,"line":1299},[12390],{"type":17,"tag":180,"props":12391,"children":12392},{"style":8200},[12393],{"type":22,"value":12394},"# 使用源\n",{"type":17,"tag":180,"props":12396,"children":12397},{"class":1254,"line":1308},[12398,12402,12407],{"type":17,"tag":180,"props":12399,"children":12400},{"style":8173},[12401],{"type":22,"value":12364},{"type":17,"tag":180,"props":12403,"children":12404},{"style":4895},[12405],{"type":22,"value":12406}," vim",{"type":17,"tag":180,"props":12408,"children":12409},{"style":4895},[12410],{"type":22,"value":12411}," sources.list\n",{"type":17,"tag":18,"props":12413,"children":12414},{},[12415,12417,12423,12425,12432],{"type":22,"value":12416},"写入：(根据ubuntu版本号自己查, ",{"type":17,"tag":1249,"props":12418,"children":12420},{"className":12419},[],[12421],{"type":22,"value":12422},"cat \u002Fetc\u002Fos-release",{"type":22,"value":12424},")\n清华源给出的Ubuntu22.04源的网址 ",{"type":17,"tag":138,"props":12426,"children":12429},{"href":12427,"rel":12428},"https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fhelp\u002Fubuntu\u002F",[142],[12430],{"type":22,"value":12431},"Ubuntu",{"type":22,"value":12433},"\n下面是同版本阿里云的源，复制粘贴进即可。",{"type":17,"tag":1242,"props":12435,"children":12437},{"className":10912,"code":12436,"language":10914,"meta":8,"style":8},"## aliyun mirrors\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-security main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-security main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-updates main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-updates main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-proposed main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-proposed main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-backports main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-backports main restricted universe multiverse\n## aliyun mirrors End\n",[12438],{"type":17,"tag":1249,"props":12439,"children":12440},{"__ignoreMap":8},[12441,12449,12487,12519,12526,12558,12589,12596,12628,12659,12666,12698,12729,12736,12768,12799],{"type":17,"tag":180,"props":12442,"children":12443},{"class":1254,"line":1255},[12444],{"type":17,"tag":180,"props":12445,"children":12446},{"style":8200},[12447],{"type":22,"value":12448},"## aliyun mirrors\n",{"type":17,"tag":180,"props":12450,"children":12451},{"class":1254,"line":79},[12452,12457,12462,12467,12472,12477,12482],{"type":17,"tag":180,"props":12453,"children":12454},{"style":8173},[12455],{"type":22,"value":12456},"deb",{"type":17,"tag":180,"props":12458,"children":12459},{"style":4895},[12460],{"type":22,"value":12461}," http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F",{"type":17,"tag":180,"props":12463,"children":12464},{"style":4895},[12465],{"type":22,"value":12466}," jammy",{"type":17,"tag":180,"props":12468,"children":12469},{"style":4895},[12470],{"type":22,"value":12471}," main",{"type":17,"tag":180,"props":12473,"children":12474},{"style":4895},[12475],{"type":22,"value":12476}," restricted",{"type":17,"tag":180,"props":12478,"children":12479},{"style":4895},[12480],{"type":22,"value":12481}," universe",{"type":17,"tag":180,"props":12483,"children":12484},{"style":4895},[12485],{"type":22,"value":12486}," multiverse\n",{"type":17,"tag":180,"props":12488,"children":12489},{"class":1254,"line":80},[12490,12495,12499,12503,12507,12511,12515],{"type":17,"tag":180,"props":12491,"children":12492},{"style":8173},[12493],{"type":22,"value":12494},"deb-src",{"type":17,"tag":180,"props":12496,"children":12497},{"style":4895},[12498],{"type":22,"value":12461},{"type":17,"tag":180,"props":12500,"children":12501},{"style":4895},[12502],{"type":22,"value":12466},{"type":17,"tag":180,"props":12504,"children":12505},{"style":4895},[12506],{"type":22,"value":12471},{"type":17,"tag":180,"props":12508,"children":12509},{"style":4895},[12510],{"type":22,"value":12476},{"type":17,"tag":180,"props":12512,"children":12513},{"style":4895},[12514],{"type":22,"value":12481},{"type":17,"tag":180,"props":12516,"children":12517},{"style":4895},[12518],{"type":22,"value":12486},{"type":17,"tag":180,"props":12520,"children":12521},{"class":1254,"line":1281},[12522],{"type":17,"tag":180,"props":12523,"children":12524},{"emptyLinePlaceholder":1267},[12525],{"type":22,"value":1270},{"type":17,"tag":180,"props":12527,"children":12528},{"class":1254,"line":1290},[12529,12533,12537,12542,12546,12550,12554],{"type":17,"tag":180,"props":12530,"children":12531},{"style":8173},[12532],{"type":22,"value":12456},{"type":17,"tag":180,"props":12534,"children":12535},{"style":4895},[12536],{"type":22,"value":12461},{"type":17,"tag":180,"props":12538,"children":12539},{"style":4895},[12540],{"type":22,"value":12541}," jammy-security",{"type":17,"tag":180,"props":12543,"children":12544},{"style":4895},[12545],{"type":22,"value":12471},{"type":17,"tag":180,"props":12547,"children":12548},{"style":4895},[12549],{"type":22,"value":12476},{"type":17,"tag":180,"props":12551,"children":12552},{"style":4895},[12553],{"type":22,"value":12481},{"type":17,"tag":180,"props":12555,"children":12556},{"style":4895},[12557],{"type":22,"value":12486},{"type":17,"tag":180,"props":12559,"children":12560},{"class":1254,"line":1299},[12561,12565,12569,12573,12577,12581,12585],{"type":17,"tag":180,"props":12562,"children":12563},{"style":8173},[12564],{"type":22,"value":12494},{"type":17,"tag":180,"props":12566,"children":12567},{"style":4895},[12568],{"type":22,"value":12461},{"type":17,"tag":180,"props":12570,"children":12571},{"style":4895},[12572],{"type":22,"value":12541},{"type":17,"tag":180,"props":12574,"children":12575},{"style":4895},[12576],{"type":22,"value":12471},{"type":17,"tag":180,"props":12578,"children":12579},{"style":4895},[12580],{"type":22,"value":12476},{"type":17,"tag":180,"props":12582,"children":12583},{"style":4895},[12584],{"type":22,"value":12481},{"type":17,"tag":180,"props":12586,"children":12587},{"style":4895},[12588],{"type":22,"value":12486},{"type":17,"tag":180,"props":12590,"children":12591},{"class":1254,"line":1308},[12592],{"type":17,"tag":180,"props":12593,"children":12594},{"emptyLinePlaceholder":1267},[12595],{"type":22,"value":1270},{"type":17,"tag":180,"props":12597,"children":12598},{"class":1254,"line":1317},[12599,12603,12607,12612,12616,12620,12624],{"type":17,"tag":180,"props":12600,"children":12601},{"style":8173},[12602],{"type":22,"value":12456},{"type":17,"tag":180,"props":12604,"children":12605},{"style":4895},[12606],{"type":22,"value":12461},{"type":17,"tag":180,"props":12608,"children":12609},{"style":4895},[12610],{"type":22,"value":12611}," jammy-updates",{"type":17,"tag":180,"props":12613,"children":12614},{"style":4895},[12615],{"type":22,"value":12471},{"type":17,"tag":180,"props":12617,"children":12618},{"style":4895},[12619],{"type":22,"value":12476},{"type":17,"tag":180,"props":12621,"children":12622},{"style":4895},[12623],{"type":22,"value":12481},{"type":17,"tag":180,"props":12625,"children":12626},{"style":4895},[12627],{"type":22,"value":12486},{"type":17,"tag":180,"props":12629,"children":12630},{"class":1254,"line":1326},[12631,12635,12639,12643,12647,12651,12655],{"type":17,"tag":180,"props":12632,"children":12633},{"style":8173},[12634],{"type":22,"value":12494},{"type":17,"tag":180,"props":12636,"children":12637},{"style":4895},[12638],{"type":22,"value":12461},{"type":17,"tag":180,"props":12640,"children":12641},{"style":4895},[12642],{"type":22,"value":12611},{"type":17,"tag":180,"props":12644,"children":12645},{"style":4895},[12646],{"type":22,"value":12471},{"type":17,"tag":180,"props":12648,"children":12649},{"style":4895},[12650],{"type":22,"value":12476},{"type":17,"tag":180,"props":12652,"children":12653},{"style":4895},[12654],{"type":22,"value":12481},{"type":17,"tag":180,"props":12656,"children":12657},{"style":4895},[12658],{"type":22,"value":12486},{"type":17,"tag":180,"props":12660,"children":12661},{"class":1254,"line":1335},[12662],{"type":17,"tag":180,"props":12663,"children":12664},{"emptyLinePlaceholder":1267},[12665],{"type":22,"value":1270},{"type":17,"tag":180,"props":12667,"children":12668},{"class":1254,"line":5122},[12669,12673,12677,12682,12686,12690,12694],{"type":17,"tag":180,"props":12670,"children":12671},{"style":8173},[12672],{"type":22,"value":12456},{"type":17,"tag":180,"props":12674,"children":12675},{"style":4895},[12676],{"type":22,"value":12461},{"type":17,"tag":180,"props":12678,"children":12679},{"style":4895},[12680],{"type":22,"value":12681}," jammy-proposed",{"type":17,"tag":180,"props":12683,"children":12684},{"style":4895},[12685],{"type":22,"value":12471},{"type":17,"tag":180,"props":12687,"children":12688},{"style":4895},[12689],{"type":22,"value":12476},{"type":17,"tag":180,"props":12691,"children":12692},{"style":4895},[12693],{"type":22,"value":12481},{"type":17,"tag":180,"props":12695,"children":12696},{"style":4895},[12697],{"type":22,"value":12486},{"type":17,"tag":180,"props":12699,"children":12700},{"class":1254,"line":6393},[12701,12705,12709,12713,12717,12721,12725],{"type":17,"tag":180,"props":12702,"children":12703},{"style":8173},[12704],{"type":22,"value":12494},{"type":17,"tag":180,"props":12706,"children":12707},{"style":4895},[12708],{"type":22,"value":12461},{"type":17,"tag":180,"props":12710,"children":12711},{"style":4895},[12712],{"type":22,"value":12681},{"type":17,"tag":180,"props":12714,"children":12715},{"style":4895},[12716],{"type":22,"value":12471},{"type":17,"tag":180,"props":12718,"children":12719},{"style":4895},[12720],{"type":22,"value":12476},{"type":17,"tag":180,"props":12722,"children":12723},{"style":4895},[12724],{"type":22,"value":12481},{"type":17,"tag":180,"props":12726,"children":12727},{"style":4895},[12728],{"type":22,"value":12486},{"type":17,"tag":180,"props":12730,"children":12731},{"class":1254,"line":6410},[12732],{"type":17,"tag":180,"props":12733,"children":12734},{"emptyLinePlaceholder":1267},[12735],{"type":22,"value":1270},{"type":17,"tag":180,"props":12737,"children":12738},{"class":1254,"line":6418},[12739,12743,12747,12752,12756,12760,12764],{"type":17,"tag":180,"props":12740,"children":12741},{"style":8173},[12742],{"type":22,"value":12456},{"type":17,"tag":180,"props":12744,"children":12745},{"style":4895},[12746],{"type":22,"value":12461},{"type":17,"tag":180,"props":12748,"children":12749},{"style":4895},[12750],{"type":22,"value":12751}," jammy-backports",{"type":17,"tag":180,"props":12753,"children":12754},{"style":4895},[12755],{"type":22,"value":12471},{"type":17,"tag":180,"props":12757,"children":12758},{"style":4895},[12759],{"type":22,"value":12476},{"type":17,"tag":180,"props":12761,"children":12762},{"style":4895},[12763],{"type":22,"value":12481},{"type":17,"tag":180,"props":12765,"children":12766},{"style":4895},[12767],{"type":22,"value":12486},{"type":17,"tag":180,"props":12769,"children":12770},{"class":1254,"line":6440},[12771,12775,12779,12783,12787,12791,12795],{"type":17,"tag":180,"props":12772,"children":12773},{"style":8173},[12774],{"type":22,"value":12494},{"type":17,"tag":180,"props":12776,"children":12777},{"style":4895},[12778],{"type":22,"value":12461},{"type":17,"tag":180,"props":12780,"children":12781},{"style":4895},[12782],{"type":22,"value":12751},{"type":17,"tag":180,"props":12784,"children":12785},{"style":4895},[12786],{"type":22,"value":12471},{"type":17,"tag":180,"props":12788,"children":12789},{"style":4895},[12790],{"type":22,"value":12476},{"type":17,"tag":180,"props":12792,"children":12793},{"style":4895},[12794],{"type":22,"value":12481},{"type":17,"tag":180,"props":12796,"children":12797},{"style":4895},[12798],{"type":22,"value":12486},{"type":17,"tag":180,"props":12800,"children":12801},{"class":1254,"line":6453},[12802],{"type":17,"tag":180,"props":12803,"children":12804},{"style":8200},[12805],{"type":22,"value":12806},"## aliyun mirrors End\n",{"type":17,"tag":18,"props":12808,"children":12809},{},[12810],{"type":22,"value":12811},"保存退出。",{"type":17,"tag":18,"props":12813,"children":12814},{},[12815],{"type":22,"value":12816},"移除自带的包（因为可能和国内源的软件有冲突）",{"type":17,"tag":1242,"props":12818,"children":12820},{"className":8354,"code":12819,"language":8356,"meta":8,"style":8},"sudo apt remove ubuntu-advantage-tools\n",[12821],{"type":17,"tag":1249,"props":12822,"children":12823},{"__ignoreMap":8},[12824],{"type":17,"tag":180,"props":12825,"children":12826},{"class":1254,"line":1255},[12827,12831,12836,12841],{"type":17,"tag":180,"props":12828,"children":12829},{"style":8173},[12830],{"type":22,"value":12364},{"type":17,"tag":180,"props":12832,"children":12833},{"style":4895},[12834],{"type":22,"value":12835}," apt",{"type":17,"tag":180,"props":12837,"children":12838},{"style":4895},[12839],{"type":22,"value":12840}," remove",{"type":17,"tag":180,"props":12842,"children":12843},{"style":4895},[12844],{"type":22,"value":12845}," ubuntu-advantage-tools\n",{"type":17,"tag":18,"props":12847,"children":12848},{},[12849],{"type":22,"value":12850},"更新包管理器：",{"type":17,"tag":1242,"props":12852,"children":12854},{"className":8161,"code":12853,"language":8163,"meta":8,"style":8},"sudo apt update && sudo apt upgrade\nsudo apt-get update\n",[12855],{"type":17,"tag":1249,"props":12856,"children":12857},{"__ignoreMap":8},[12858,12892],{"type":17,"tag":180,"props":12859,"children":12860},{"class":1254,"line":1255},[12861,12865,12869,12874,12879,12883,12887],{"type":17,"tag":180,"props":12862,"children":12863},{"style":8173},[12864],{"type":22,"value":12364},{"type":17,"tag":180,"props":12866,"children":12867},{"style":4895},[12868],{"type":22,"value":12835},{"type":17,"tag":180,"props":12870,"children":12871},{"style":4895},[12872],{"type":22,"value":12873}," update",{"type":17,"tag":180,"props":12875,"children":12876},{"style":4901},[12877],{"type":22,"value":12878}," && ",{"type":17,"tag":180,"props":12880,"children":12881},{"style":8173},[12882],{"type":22,"value":12364},{"type":17,"tag":180,"props":12884,"children":12885},{"style":4895},[12886],{"type":22,"value":12835},{"type":17,"tag":180,"props":12888,"children":12889},{"style":4895},[12890],{"type":22,"value":12891}," upgrade\n",{"type":17,"tag":180,"props":12893,"children":12894},{"class":1254,"line":79},[12895,12899,12904],{"type":17,"tag":180,"props":12896,"children":12897},{"style":8173},[12898],{"type":22,"value":12364},{"type":17,"tag":180,"props":12900,"children":12901},{"style":4895},[12902],{"type":22,"value":12903}," apt-get",{"type":17,"tag":180,"props":12905,"children":12906},{"style":4895},[12907],{"type":22,"value":12908}," update\n",{"type":17,"tag":4559,"props":12910,"children":12912},{"id":12911},"二安装基本的开发工具",[12913],{"type":22,"value":12914},"二、安装基本的开发工具",{"type":17,"tag":1242,"props":12916,"children":12918},{"className":8161,"code":12917,"language":8163,"meta":8,"style":8},"# mingw套组\nsudo apt install build-essential cmake\n\n# python3 pip 工具\nsudo apt install python3-pip\npip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n",[12919],{"type":17,"tag":1249,"props":12920,"children":12921},{"__ignoreMap":8},[12922,12930,12955,12962,12970,12990],{"type":17,"tag":180,"props":12923,"children":12924},{"class":1254,"line":1255},[12925],{"type":17,"tag":180,"props":12926,"children":12927},{"style":8200},[12928],{"type":22,"value":12929},"# mingw套组\n",{"type":17,"tag":180,"props":12931,"children":12932},{"class":1254,"line":79},[12933,12937,12941,12945,12950],{"type":17,"tag":180,"props":12934,"children":12935},{"style":8173},[12936],{"type":22,"value":12364},{"type":17,"tag":180,"props":12938,"children":12939},{"style":4895},[12940],{"type":22,"value":12835},{"type":17,"tag":180,"props":12942,"children":12943},{"style":4895},[12944],{"type":22,"value":11619},{"type":17,"tag":180,"props":12946,"children":12947},{"style":4895},[12948],{"type":22,"value":12949}," build-essential",{"type":17,"tag":180,"props":12951,"children":12952},{"style":4895},[12953],{"type":22,"value":12954}," cmake\n",{"type":17,"tag":180,"props":12956,"children":12957},{"class":1254,"line":80},[12958],{"type":17,"tag":180,"props":12959,"children":12960},{"emptyLinePlaceholder":1267},[12961],{"type":22,"value":1270},{"type":17,"tag":180,"props":12963,"children":12964},{"class":1254,"line":1281},[12965],{"type":17,"tag":180,"props":12966,"children":12967},{"style":8200},[12968],{"type":22,"value":12969},"# python3 pip 工具\n",{"type":17,"tag":180,"props":12971,"children":12972},{"class":1254,"line":1290},[12973,12977,12981,12985],{"type":17,"tag":180,"props":12974,"children":12975},{"style":8173},[12976],{"type":22,"value":12364},{"type":17,"tag":180,"props":12978,"children":12979},{"style":4895},[12980],{"type":22,"value":12835},{"type":17,"tag":180,"props":12982,"children":12983},{"style":4895},[12984],{"type":22,"value":11619},{"type":17,"tag":180,"props":12986,"children":12987},{"style":4895},[12988],{"type":22,"value":12989}," python3-pip\n",{"type":17,"tag":180,"props":12991,"children":12992},{"class":1254,"line":1299},[12993,12997,13001,13005,13009],{"type":17,"tag":180,"props":12994,"children":12995},{"style":8173},[12996],{"type":22,"value":11238},{"type":17,"tag":180,"props":12998,"children":12999},{"style":4895},[13000],{"type":22,"value":11063},{"type":17,"tag":180,"props":13002,"children":13003},{"style":4895},[13004],{"type":22,"value":11247},{"type":17,"tag":180,"props":13006,"children":13007},{"style":4895},[13008],{"type":22,"value":11252},{"type":17,"tag":180,"props":13010,"children":13011},{"style":4895},[13012],{"type":22,"value":11257},{"type":17,"tag":4559,"props":13014,"children":13016},{"id":13015},"三美化终端",[13017],{"type":22,"value":13018},"三、美化终端",{"type":17,"tag":10061,"props":13020,"children":13022},{"id":13021},"使用fish",[13023],{"type":22,"value":13021},{"type":17,"tag":18,"props":13025,"children":13026},{},[13027],{"type":22,"value":13028},"安装",{"type":17,"tag":1242,"props":13030,"children":13032},{"className":8161,"code":13031,"language":8163,"meta":8,"style":8},"sudo apt install fish\nchsh -s $(which fish)\nexport SHELL=`which fish` && exec \"$SHELL\" -l\n",[13033],{"type":17,"tag":1249,"props":13034,"children":13035},{"__ignoreMap":8},[13036,13056,13088],{"type":17,"tag":180,"props":13037,"children":13038},{"class":1254,"line":1255},[13039,13043,13047,13051],{"type":17,"tag":180,"props":13040,"children":13041},{"style":8173},[13042],{"type":22,"value":12364},{"type":17,"tag":180,"props":13044,"children":13045},{"style":4895},[13046],{"type":22,"value":12835},{"type":17,"tag":180,"props":13048,"children":13049},{"style":4895},[13050],{"type":22,"value":11619},{"type":17,"tag":180,"props":13052,"children":13053},{"style":4895},[13054],{"type":22,"value":13055}," fish\n",{"type":17,"tag":180,"props":13057,"children":13058},{"class":1254,"line":79},[13059,13064,13068,13073,13078,13083],{"type":17,"tag":180,"props":13060,"children":13061},{"style":8173},[13062],{"type":22,"value":13063},"chsh",{"type":17,"tag":180,"props":13065,"children":13066},{"style":4910},[13067],{"type":22,"value":11629},{"type":17,"tag":180,"props":13069,"children":13070},{"style":4901},[13071],{"type":22,"value":13072}," $(",{"type":17,"tag":180,"props":13074,"children":13075},{"style":4910},[13076],{"type":22,"value":13077},"which",{"type":17,"tag":180,"props":13079,"children":13080},{"style":4895},[13081],{"type":22,"value":13082}," fish",{"type":17,"tag":180,"props":13084,"children":13085},{"style":4901},[13086],{"type":22,"value":13087},")\n",{"type":17,"tag":180,"props":13089,"children":13090},{"class":1254,"line":80},[13091,13095,13100,13104,13109,13113,13118,13122,13127,13132,13137,13142],{"type":17,"tag":180,"props":13092,"children":13093},{"style":8552},[13094],{"type":22,"value":8695},{"type":17,"tag":180,"props":13096,"children":13097},{"style":4901},[13098],{"type":22,"value":13099}," SHELL",{"type":17,"tag":180,"props":13101,"children":13102},{"style":8552},[13103],{"type":22,"value":817},{"type":17,"tag":180,"props":13105,"children":13106},{"style":4895},[13107],{"type":22,"value":13108},"`",{"type":17,"tag":180,"props":13110,"children":13111},{"style":4910},[13112],{"type":22,"value":13077},{"type":17,"tag":180,"props":13114,"children":13115},{"style":4895},[13116],{"type":22,"value":13117}," fish`",{"type":17,"tag":180,"props":13119,"children":13120},{"style":4901},[13121],{"type":22,"value":12878},{"type":17,"tag":180,"props":13123,"children":13124},{"style":4910},[13125],{"type":22,"value":13126},"exec",{"type":17,"tag":180,"props":13128,"children":13129},{"style":4895},[13130],{"type":22,"value":13131}," \"",{"type":17,"tag":180,"props":13133,"children":13134},{"style":4901},[13135],{"type":22,"value":13136},"$SHELL",{"type":17,"tag":180,"props":13138,"children":13139},{"style":4895},[13140],{"type":22,"value":13141},"\"",{"type":17,"tag":180,"props":13143,"children":13144},{"style":4910},[13145],{"type":22,"value":13146}," -l\n",{"type":17,"tag":18,"props":13148,"children":13149},{},[13150],{"type":22,"value":13151},"修改风格",{"type":17,"tag":1242,"props":13153,"children":13155},{"className":8161,"code":13154,"language":8163,"meta":8,"style":8},"fish_config prompt choose scope\nfish_config prompt save\n",[13156],{"type":17,"tag":1249,"props":13157,"children":13158},{"__ignoreMap":8},[13159,13182],{"type":17,"tag":180,"props":13160,"children":13161},{"class":1254,"line":1255},[13162,13167,13172,13177],{"type":17,"tag":180,"props":13163,"children":13164},{"style":8173},[13165],{"type":22,"value":13166},"fish_config",{"type":17,"tag":180,"props":13168,"children":13169},{"style":4895},[13170],{"type":22,"value":13171}," prompt",{"type":17,"tag":180,"props":13173,"children":13174},{"style":4895},[13175],{"type":22,"value":13176}," choose",{"type":17,"tag":180,"props":13178,"children":13179},{"style":4895},[13180],{"type":22,"value":13181}," scope\n",{"type":17,"tag":180,"props":13183,"children":13184},{"class":1254,"line":79},[13185,13189,13193],{"type":17,"tag":180,"props":13186,"children":13187},{"style":8173},[13188],{"type":22,"value":13166},{"type":17,"tag":180,"props":13190,"children":13191},{"style":4895},[13192],{"type":22,"value":13171},{"type":17,"tag":180,"props":13194,"children":13195},{"style":4895},[13196],{"type":22,"value":13197}," save\n",{"type":17,"tag":18,"props":13199,"children":13200},{},[13201,13202,13209],{"type":22,"value":13028},{"type":17,"tag":138,"props":13203,"children":13206},{"href":13204,"rel":13205},"https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish",[142],[13207],{"type":22,"value":13208},"oh-my-fish",{"type":22,"value":13210}," 可选",{"type":17,"tag":1242,"props":13212,"children":13214},{"className":8161,"code":13213,"language":8163,"meta":8,"style":8},"# with git\n$ git clone https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish\n$ cd oh-my-fish\n$ bin\u002Finstall --offline\n# with a tarball\n$ curl https:\u002F\u002Fraw.githubusercontent.com\u002Foh-my-fish\u002Foh-my-fish\u002Fmaster\u002Fbin\u002Finstall > install\n$ fish install --offline=omf.tar.gz\n",[13215],{"type":17,"tag":1249,"props":13216,"children":13217},{"__ignoreMap":8},[13218,13226,13248,13265,13282,13290,13317],{"type":17,"tag":180,"props":13219,"children":13220},{"class":1254,"line":1255},[13221],{"type":17,"tag":180,"props":13222,"children":13223},{"style":8200},[13224],{"type":22,"value":13225},"# with git\n",{"type":17,"tag":180,"props":13227,"children":13228},{"class":1254,"line":79},[13229,13234,13239,13243],{"type":17,"tag":180,"props":13230,"children":13231},{"style":8173},[13232],{"type":22,"value":13233},"$",{"type":17,"tag":180,"props":13235,"children":13236},{"style":4895},[13237],{"type":22,"value":13238}," git",{"type":17,"tag":180,"props":13240,"children":13241},{"style":4895},[13242],{"type":22,"value":11675},{"type":17,"tag":180,"props":13244,"children":13245},{"style":4895},[13246],{"type":22,"value":13247}," https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish\n",{"type":17,"tag":180,"props":13249,"children":13250},{"class":1254,"line":80},[13251,13255,13260],{"type":17,"tag":180,"props":13252,"children":13253},{"style":8173},[13254],{"type":22,"value":13233},{"type":17,"tag":180,"props":13256,"children":13257},{"style":4895},[13258],{"type":22,"value":13259}," cd",{"type":17,"tag":180,"props":13261,"children":13262},{"style":4895},[13263],{"type":22,"value":13264}," oh-my-fish\n",{"type":17,"tag":180,"props":13266,"children":13267},{"class":1254,"line":1281},[13268,13272,13277],{"type":17,"tag":180,"props":13269,"children":13270},{"style":8173},[13271],{"type":22,"value":13233},{"type":17,"tag":180,"props":13273,"children":13274},{"style":4895},[13275],{"type":22,"value":13276}," bin\u002Finstall",{"type":17,"tag":180,"props":13278,"children":13279},{"style":4910},[13280],{"type":22,"value":13281}," --offline\n",{"type":17,"tag":180,"props":13283,"children":13284},{"class":1254,"line":1290},[13285],{"type":17,"tag":180,"props":13286,"children":13287},{"style":8200},[13288],{"type":22,"value":13289},"# with a tarball\n",{"type":17,"tag":180,"props":13291,"children":13292},{"class":1254,"line":1299},[13293,13297,13302,13307,13312],{"type":17,"tag":180,"props":13294,"children":13295},{"style":8173},[13296],{"type":22,"value":13233},{"type":17,"tag":180,"props":13298,"children":13299},{"style":4895},[13300],{"type":22,"value":13301}," curl",{"type":17,"tag":180,"props":13303,"children":13304},{"style":4895},[13305],{"type":22,"value":13306}," https:\u002F\u002Fraw.githubusercontent.com\u002Foh-my-fish\u002Foh-my-fish\u002Fmaster\u002Fbin\u002Finstall",{"type":17,"tag":180,"props":13308,"children":13309},{"style":8552},[13310],{"type":22,"value":13311}," >",{"type":17,"tag":180,"props":13313,"children":13314},{"style":4895},[13315],{"type":22,"value":13316}," install\n",{"type":17,"tag":180,"props":13318,"children":13319},{"class":1254,"line":1308},[13320,13324,13328,13332],{"type":17,"tag":180,"props":13321,"children":13322},{"style":8173},[13323],{"type":22,"value":13233},{"type":17,"tag":180,"props":13325,"children":13326},{"style":4895},[13327],{"type":22,"value":13082},{"type":17,"tag":180,"props":13329,"children":13330},{"style":4895},[13331],{"type":22,"value":11619},{"type":17,"tag":180,"props":13333,"children":13334},{"style":4910},[13335],{"type":22,"value":13336}," --offline=omf.tar.gz\n",{"type":17,"tag":10061,"props":13338,"children":13340},{"id":13339},"使用zsh",[13341],{"type":22,"value":13339},{"type":17,"tag":18,"props":13343,"children":13344},{},[13345],{"type":22,"value":13028},{"type":17,"tag":1242,"props":13347,"children":13349},{"className":8161,"code":13348,"language":8163,"meta":8,"style":8},"sudo apt install zsh\nchsh -s $(which zsh)\n",[13350],{"type":17,"tag":1249,"props":13351,"children":13352},{"__ignoreMap":8},[13353,13373],{"type":17,"tag":180,"props":13354,"children":13355},{"class":1254,"line":1255},[13356,13360,13364,13368],{"type":17,"tag":180,"props":13357,"children":13358},{"style":8173},[13359],{"type":22,"value":12364},{"type":17,"tag":180,"props":13361,"children":13362},{"style":4895},[13363],{"type":22,"value":12835},{"type":17,"tag":180,"props":13365,"children":13366},{"style":4895},[13367],{"type":22,"value":11619},{"type":17,"tag":180,"props":13369,"children":13370},{"style":4895},[13371],{"type":22,"value":13372}," zsh\n",{"type":17,"tag":180,"props":13374,"children":13375},{"class":1254,"line":79},[13376,13380,13384,13388,13392,13397],{"type":17,"tag":180,"props":13377,"children":13378},{"style":8173},[13379],{"type":22,"value":13063},{"type":17,"tag":180,"props":13381,"children":13382},{"style":4910},[13383],{"type":22,"value":11629},{"type":17,"tag":180,"props":13385,"children":13386},{"style":4901},[13387],{"type":22,"value":13072},{"type":17,"tag":180,"props":13389,"children":13390},{"style":4910},[13391],{"type":22,"value":13077},{"type":17,"tag":180,"props":13393,"children":13394},{"style":4895},[13395],{"type":22,"value":13396}," zsh",{"type":17,"tag":180,"props":13398,"children":13399},{"style":4901},[13400],{"type":22,"value":13087},{"type":17,"tag":18,"props":13402,"children":13403},{},[13404],{"type":22,"value":13405},"在bashrc里面加入",{"type":17,"tag":1242,"props":13407,"children":13409},{"className":8161,"code":13408,"language":8163,"meta":8,"style":8},"export SHELL=`which zsh`\n[ -z \"$ZSH_VERSION\" ] && exec \"$SHELL\" -l\n",[13410],{"type":17,"tag":1249,"props":13411,"children":13412},{"__ignoreMap":8},[13413,13441],{"type":17,"tag":180,"props":13414,"children":13415},{"class":1254,"line":1255},[13416,13420,13424,13428,13432,13436],{"type":17,"tag":180,"props":13417,"children":13418},{"style":8552},[13419],{"type":22,"value":8695},{"type":17,"tag":180,"props":13421,"children":13422},{"style":4901},[13423],{"type":22,"value":13099},{"type":17,"tag":180,"props":13425,"children":13426},{"style":8552},[13427],{"type":22,"value":817},{"type":17,"tag":180,"props":13429,"children":13430},{"style":4895},[13431],{"type":22,"value":13108},{"type":17,"tag":180,"props":13433,"children":13434},{"style":4910},[13435],{"type":22,"value":13077},{"type":17,"tag":180,"props":13437,"children":13438},{"style":4895},[13439],{"type":22,"value":13440}," zsh`\n",{"type":17,"tag":180,"props":13442,"children":13443},{"class":1254,"line":79},[13444,13449,13454,13458,13463,13467,13472,13476,13480,13484,13488],{"type":17,"tag":180,"props":13445,"children":13446},{"style":4901},[13447],{"type":22,"value":13448},"[ ",{"type":17,"tag":180,"props":13450,"children":13451},{"style":8552},[13452],{"type":22,"value":13453},"-z",{"type":17,"tag":180,"props":13455,"children":13456},{"style":4895},[13457],{"type":22,"value":13131},{"type":17,"tag":180,"props":13459,"children":13460},{"style":4901},[13461],{"type":22,"value":13462},"$ZSH_VERSION",{"type":17,"tag":180,"props":13464,"children":13465},{"style":4895},[13466],{"type":22,"value":13141},{"type":17,"tag":180,"props":13468,"children":13469},{"style":4901},[13470],{"type":22,"value":13471}," ] && ",{"type":17,"tag":180,"props":13473,"children":13474},{"style":4910},[13475],{"type":22,"value":13126},{"type":17,"tag":180,"props":13477,"children":13478},{"style":4895},[13479],{"type":22,"value":13131},{"type":17,"tag":180,"props":13481,"children":13482},{"style":4901},[13483],{"type":22,"value":13136},{"type":17,"tag":180,"props":13485,"children":13486},{"style":4895},[13487],{"type":22,"value":13141},{"type":17,"tag":180,"props":13489,"children":13490},{"style":4910},[13491],{"type":22,"value":13146},{"type":17,"tag":18,"props":13493,"children":13494},{},[13495],{"type":22,"value":13496},"重新打开当前终端，就会进入zsh终端，接着安装oh-my-zsh主题框架。",{"type":17,"tag":1242,"props":13498,"children":13500},{"className":8161,"code":13499,"language":8163,"meta":8,"style":8},"cd ~\ngit clone https:\u002F\u002Fgitee.com\u002Fmirrors\u002Foh-my-zsh\nsh oh-my-zsh\u002Ftools\u002Finstall.sh\n",[13501],{"type":17,"tag":1249,"props":13502,"children":13503},{"__ignoreMap":8},[13504,13516,13532],{"type":17,"tag":180,"props":13505,"children":13506},{"class":1254,"line":1255},[13507,13511],{"type":17,"tag":180,"props":13508,"children":13509},{"style":4910},[13510],{"type":22,"value":10926},{"type":17,"tag":180,"props":13512,"children":13513},{"style":4895},[13514],{"type":22,"value":13515}," ~\n",{"type":17,"tag":180,"props":13517,"children":13518},{"class":1254,"line":79},[13519,13523,13527],{"type":17,"tag":180,"props":13520,"children":13521},{"style":8173},[13522],{"type":22,"value":11058},{"type":17,"tag":180,"props":13524,"children":13525},{"style":4895},[13526],{"type":22,"value":11675},{"type":17,"tag":180,"props":13528,"children":13529},{"style":4895},[13530],{"type":22,"value":13531}," https:\u002F\u002Fgitee.com\u002Fmirrors\u002Foh-my-zsh\n",{"type":17,"tag":180,"props":13533,"children":13534},{"class":1254,"line":80},[13535,13539],{"type":17,"tag":180,"props":13536,"children":13537},{"style":8173},[13538],{"type":22,"value":10914},{"type":17,"tag":180,"props":13540,"children":13541},{"style":4895},[13542],{"type":22,"value":13543}," oh-my-zsh\u002Ftools\u002Finstall.sh\n",{"type":17,"tag":18,"props":13545,"children":13546},{},[13547],{"type":22,"value":13548},"安装两个插件",{"type":17,"tag":1242,"props":13550,"children":13552},{"className":8161,"code":13551,"language":8163,"meta":8,"style":8},"cd ~\u002F.oh-my-zsh\u002Fcustom\u002Fplugins\u002F\n\n# 高亮关键词\ngit clone https:\u002F\u002Fgitee.com\u002Fhaohaogood\u002Fzsh-syntax-highlighting\n\n# 自动补全\ngit clone https:\u002F\u002Fgitee.com\u002Fqiushaocloud\u002Fzsh-autosuggestions\n",[13553],{"type":17,"tag":1249,"props":13554,"children":13555},{"__ignoreMap":8},[13556,13568,13575,13583,13599,13606,13614],{"type":17,"tag":180,"props":13557,"children":13558},{"class":1254,"line":1255},[13559,13563],{"type":17,"tag":180,"props":13560,"children":13561},{"style":4910},[13562],{"type":22,"value":10926},{"type":17,"tag":180,"props":13564,"children":13565},{"style":4895},[13566],{"type":22,"value":13567}," ~\u002F.oh-my-zsh\u002Fcustom\u002Fplugins\u002F\n",{"type":17,"tag":180,"props":13569,"children":13570},{"class":1254,"line":79},[13571],{"type":17,"tag":180,"props":13572,"children":13573},{"emptyLinePlaceholder":1267},[13574],{"type":22,"value":1270},{"type":17,"tag":180,"props":13576,"children":13577},{"class":1254,"line":80},[13578],{"type":17,"tag":180,"props":13579,"children":13580},{"style":8200},[13581],{"type":22,"value":13582},"# 高亮关键词\n",{"type":17,"tag":180,"props":13584,"children":13585},{"class":1254,"line":1281},[13586,13590,13594],{"type":17,"tag":180,"props":13587,"children":13588},{"style":8173},[13589],{"type":22,"value":11058},{"type":17,"tag":180,"props":13591,"children":13592},{"style":4895},[13593],{"type":22,"value":11675},{"type":17,"tag":180,"props":13595,"children":13596},{"style":4895},[13597],{"type":22,"value":13598}," https:\u002F\u002Fgitee.com\u002Fhaohaogood\u002Fzsh-syntax-highlighting\n",{"type":17,"tag":180,"props":13600,"children":13601},{"class":1254,"line":1290},[13602],{"type":17,"tag":180,"props":13603,"children":13604},{"emptyLinePlaceholder":1267},[13605],{"type":22,"value":1270},{"type":17,"tag":180,"props":13607,"children":13608},{"class":1254,"line":1299},[13609],{"type":17,"tag":180,"props":13610,"children":13611},{"style":8200},[13612],{"type":22,"value":13613},"# 自动补全\n",{"type":17,"tag":180,"props":13615,"children":13616},{"class":1254,"line":1308},[13617,13621,13625],{"type":17,"tag":180,"props":13618,"children":13619},{"style":8173},[13620],{"type":22,"value":11058},{"type":17,"tag":180,"props":13622,"children":13623},{"style":4895},[13624],{"type":22,"value":11675},{"type":17,"tag":180,"props":13626,"children":13627},{"style":4895},[13628],{"type":22,"value":13629}," https:\u002F\u002Fgitee.com\u002Fqiushaocloud\u002Fzsh-autosuggestions\n",{"type":17,"tag":18,"props":13631,"children":13632},{},[13633,13635,13641,13643,13649,13651,13657],{"type":22,"value":13634},"然后进入 ",{"type":17,"tag":1249,"props":13636,"children":13638},{"className":13637},[],[13639],{"type":22,"value":13640},"~\u002F.zshrc",{"type":22,"value":13642}," 在 plugins 参数中添加 ",{"type":17,"tag":1249,"props":13644,"children":13646},{"className":13645},[],[13647],{"type":22,"value":13648},"zsh-syntax-highlighting",{"type":22,"value":13650}," 和",{"type":17,"tag":1249,"props":13652,"children":13654},{"className":13653},[],[13655],{"type":22,"value":13656},"zsh-autosuggestions",{"type":22,"value":13658},"。也就是说你的 .zshrc 中必须要有一行长这样：",{"type":17,"tag":1242,"props":13660,"children":13662},{"className":8161,"code":13661,"language":8163,"meta":8,"style":8},"plugins=(git zsh-syntax-highlighting zsh-autosuggestions)\n",[13663],{"type":17,"tag":1249,"props":13664,"children":13665},{"__ignoreMap":8},[13666],{"type":17,"tag":180,"props":13667,"children":13668},{"class":1254,"line":1255},[13669,13674,13678,13682,13686,13691,13696],{"type":17,"tag":180,"props":13670,"children":13671},{"style":4901},[13672],{"type":22,"value":13673},"plugins",{"type":17,"tag":180,"props":13675,"children":13676},{"style":8552},[13677],{"type":22,"value":817},{"type":17,"tag":180,"props":13679,"children":13680},{"style":4901},[13681],{"type":22,"value":955},{"type":17,"tag":180,"props":13683,"children":13684},{"style":4895},[13685],{"type":22,"value":11058},{"type":17,"tag":180,"props":13687,"children":13688},{"style":4895},[13689],{"type":22,"value":13690}," zsh-syntax-highlighting",{"type":17,"tag":180,"props":13692,"children":13693},{"style":4895},[13694],{"type":22,"value":13695}," zsh-autosuggestions",{"type":17,"tag":180,"props":13697,"children":13698},{"style":4901},[13699],{"type":22,"value":13087},{"type":17,"tag":121,"props":13701,"children":13703},{"id":13702},"四安装部分驱动程序",[13704],{"type":22,"value":13705},"四、安装部分驱动程序",{"type":17,"tag":18,"props":13707,"children":13708},{},[13709],{"type":22,"value":13710},"默认pip 版本较低，升级一下",{"type":17,"tag":1242,"props":13712,"children":13714},{"className":8161,"code":13713,"language":8163,"meta":8,"style":8},"pip install --upgrade pip\n",[13715],{"type":17,"tag":1249,"props":13716,"children":13717},{"__ignoreMap":8},[13718],{"type":17,"tag":180,"props":13719,"children":13720},{"class":1254,"line":1255},[13721,13725,13729,13734],{"type":17,"tag":180,"props":13722,"children":13723},{"style":8173},[13724],{"type":22,"value":11238},{"type":17,"tag":180,"props":13726,"children":13727},{"style":4895},[13728],{"type":22,"value":11619},{"type":17,"tag":180,"props":13730,"children":13731},{"style":4910},[13732],{"type":22,"value":13733}," --upgrade",{"type":17,"tag":180,"props":13735,"children":13736},{"style":4895},[13737],{"type":22,"value":13738}," pip\n",{"type":17,"tag":18,"props":13740,"children":13741},{},[13742],{"type":22,"value":13743},"安装opencv的包",{"type":17,"tag":1242,"props":13745,"children":13747},{"className":8161,"code":13746,"language":8163,"meta":8,"style":8},"sudo apt install libopencv-dev\npip install opencv-python\n",[13748],{"type":17,"tag":1249,"props":13749,"children":13750},{"__ignoreMap":8},[13751,13771],{"type":17,"tag":180,"props":13752,"children":13753},{"class":1254,"line":1255},[13754,13758,13762,13766],{"type":17,"tag":180,"props":13755,"children":13756},{"style":8173},[13757],{"type":22,"value":12364},{"type":17,"tag":180,"props":13759,"children":13760},{"style":4895},[13761],{"type":22,"value":12835},{"type":17,"tag":180,"props":13763,"children":13764},{"style":4895},[13765],{"type":22,"value":11619},{"type":17,"tag":180,"props":13767,"children":13768},{"style":4895},[13769],{"type":22,"value":13770}," libopencv-dev\n",{"type":17,"tag":180,"props":13772,"children":13773},{"class":1254,"line":79},[13774,13778,13782],{"type":17,"tag":180,"props":13775,"children":13776},{"style":8173},[13777],{"type":22,"value":11238},{"type":17,"tag":180,"props":13779,"children":13780},{"style":4895},[13781],{"type":22,"value":11619},{"type":17,"tag":180,"props":13783,"children":13784},{"style":4895},[13785],{"type":22,"value":13786}," opencv-python\n",{"type":17,"tag":18,"props":13788,"children":13789},{},[13790],{"type":22,"value":13791},"安装torch cuda",{"type":17,"tag":1242,"props":13793,"children":13795},{"className":8161,"code":13794,"language":8163,"meta":8,"style":8},"sudo apt install nvidia-cuda-toolkit\n",[13796],{"type":17,"tag":1249,"props":13797,"children":13798},{"__ignoreMap":8},[13799],{"type":17,"tag":180,"props":13800,"children":13801},{"class":1254,"line":1255},[13802,13806,13810,13814],{"type":17,"tag":180,"props":13803,"children":13804},{"style":8173},[13805],{"type":22,"value":12364},{"type":17,"tag":180,"props":13807,"children":13808},{"style":4895},[13809],{"type":22,"value":12835},{"type":17,"tag":180,"props":13811,"children":13812},{"style":4895},[13813],{"type":22,"value":11619},{"type":17,"tag":180,"props":13815,"children":13816},{"style":4895},[13817],{"type":22,"value":13818}," nvidia-cuda-toolkit\n",{"type":17,"tag":18,"props":13820,"children":13821},{},[13822,13824,13831],{"type":22,"value":13823},"然后去 ",{"type":17,"tag":138,"props":13825,"children":13828},{"href":13826,"rel":13827},"https:\u002F\u002Fpytorch.org\u002F",[142],[13829],{"type":22,"value":13830},"PyTorch",{"type":22,"value":13832}," 找对应的安装指令。自从某个版本之后 Linux 下载 PyTorch GPU 版本可以直接 pip（自动下载对应 CUDA 依赖）。",{"type":17,"tag":4218,"props":13834,"children":13835},{},[13836],{"type":22,"value":4222},{"title":8,"searchDepth":79,"depth":80,"links":13838},[13839,13840,13841,13849],{"id":10784,"depth":79,"text":10754},{"id":11884,"depth":79,"text":11887},{"id":12308,"depth":79,"text":12311,"children":13842},[13843,13844,13845],{"id":12314,"depth":80,"text":12317},{"id":12911,"depth":80,"text":12914},{"id":13015,"depth":80,"text":13018,"children":13846},[13847,13848],{"id":13021,"depth":1281,"text":13021},{"id":13339,"depth":1281,"text":13339},{"id":13702,"depth":79,"text":13705},"content:posts:从零配置Windows11开发环境.md","posts\u002F从零配置Windows11开发环境.md","posts\u002F从零配置Windows11开发环境",1784586281066]