<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LLM on Kmoon Blog</title>
    <link>https://blog.kmoon.fun/blog/llm/</link>
    <description>Recent content in LLM on Kmoon Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
      <managingEditor>hushan@kmoon.fun (Kmoon)</managingEditor>
    
    
      <webMaster>hushan@kmoon.fun (Kmoon)</webMaster>
    
    
    <copyright>Copyright © 2020-2026. Kmoon.</copyright>
    
    
    <lastBuildDate>Fri, 12 Jun 2026 09:47:25 +0800</lastBuildDate>
    
    
    <follow_challenge>
        <feedId>00000000000000000</feedId>
        <userId>00000000000000000</userId>
    </follow_challenge>
    
    <atom:link href="https://blog.kmoon.fun/blog/llm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>代码定义结构，权重存储知识</title>
      <link>https://blog.kmoon.fun/%E4%BB%A3%E7%A0%81%E5%AE%9A%E4%B9%89%E7%BB%93%E6%9E%84%E6%9D%83%E9%87%8D%E5%AD%98%E5%82%A8%E7%9F%A5%E8%AF%86/</link>
      <pubDate>Fri, 12 Jun 2026 09:47:25 +0800</pubDate><author>hushan@kmoon.fun (Kmoon)</author>
      <guid>https://blog.kmoon.fun/%E4%BB%A3%E7%A0%81%E5%AE%9A%E4%B9%89%E7%BB%93%E6%9E%84%E6%9D%83%E9%87%8D%E5%AD%98%E5%82%A8%E7%9F%A5%E8%AF%86/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Reference: &lt;a href=&#34;https://mp.weixin.qq.com/s/TM9lv6b-9AH8O9ZiApgTBA&#34;&gt;代码定义结构，权重存储知识：一个例子看懂大模型如何推理&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;ollama-本地部署模型&#34;&gt;Ollama 本地部署模型&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ollama.com/&#34;&gt;Ollama&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;先下载好 Ollama&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;figure&#xA;    class=&#34;image-caption image-zoom-container&#34;&#xA;&gt;&#xA;    &#xA;    &lt;input&#xA;        type=&#34;checkbox&#34;&#xA;        id=&#34;img-c7bad051&#34;&#xA;        class=&#34;image-zoom-toggle&#34;&#xA;        aria-label=&#34;放大图片&#34;&#xA;    /&gt;&#xA;    &lt;label&#xA;        for=&#34;img-c7bad051&#34;&#xA;        class=&#34;image-zoom-label&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-25-22-668Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            loading=&#34;lazy&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &lt;label&#xA;        for=&#34;img-c7bad051&#34;&#xA;        class=&#34;image-zoom-overlay&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-25-22-668Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;然后选择一个模型本地部署，这里选择 llama3&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;figure&#xA;    class=&#34;image-caption image-zoom-container&#34;&#xA;&gt;&#xA;    &#xA;    &lt;input&#xA;        type=&#34;checkbox&#34;&#xA;        id=&#34;img-47346ff6&#34;&#xA;        class=&#34;image-zoom-toggle&#34;&#xA;        aria-label=&#34;放大图片&#34;&#xA;    /&gt;&#xA;    &lt;label&#xA;        for=&#34;img-47346ff6&#34;&#xA;        class=&#34;image-zoom-label&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-36-08-617Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            loading=&#34;lazy&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &lt;label&#xA;        for=&#34;img-47346ff6&#34;&#xA;        class=&#34;image-zoom-overlay&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-36-08-617Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;一行命令部署好，测试一下&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;figure&#xA;    class=&#34;image-caption image-zoom-container&#34;&#xA;&gt;&#xA;    &#xA;    &lt;input&#xA;        type=&#34;checkbox&#34;&#xA;        id=&#34;img-e36ca731&#34;&#xA;        class=&#34;image-zoom-toggle&#34;&#xA;        aria-label=&#34;放大图片&#34;&#xA;    /&gt;&#xA;    &lt;label&#xA;        for=&#34;img-e36ca731&#34;&#xA;        class=&#34;image-zoom-label&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-37-02-311Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            loading=&#34;lazy&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &lt;label&#xA;        for=&#34;img-e36ca731&#34;&#xA;        class=&#34;image-zoom-overlay&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-37-02-311Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Ollama 本地保存模型的目录结构，其中 blobs 是真正占空间的权重文件，manifests 是模型配置/索引（很小），这里就有一个奇怪的现象：模型的代码只有几十到几百 KB，权重文件却有几个 GB，甚至几十GB。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.ollama/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── models/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── blobs/       # 实际权重文件（GGUF 格式，GB 级）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── manifests/   # 模型元数据（JSON，KB 级）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;因为 Ollama blobs 里存的 GGUF 是量化后的权重二进制文件，全部浮点数参数都存在这里；manifests 只是模型描述、层数、上下文窗口、量化精度等配置，不含知识。&lt;/p&gt;&#xA;&lt;p&gt;我们可以看到 llama3:latest 模型权重有 4.7 G。为什么差距这么大，我们跟模型交互对话时，模型代码和模型权重是如何配合的？模型代码大小和权重大小到底谁对模型更重要？&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;figure&#xA;    class=&#34;image-caption image-zoom-container&#34;&#xA;&gt;&#xA;    &#xA;    &lt;input&#xA;        type=&#34;checkbox&#34;&#xA;        id=&#34;img-fba2b4bd&#34;&#xA;        class=&#34;image-zoom-toggle&#34;&#xA;        aria-label=&#34;放大图片&#34;&#xA;    /&gt;&#xA;    &lt;label&#xA;        for=&#34;img-fba2b4bd&#34;&#xA;        class=&#34;image-zoom-label&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-46-13-059Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            loading=&#34;lazy&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &lt;label&#xA;        for=&#34;img-fba2b4bd&#34;&#xA;        class=&#34;image-zoom-overlay&#34;&#xA;    &gt;&#xA;        &lt;img&#xA;            src=&#34;https://cdn.kmoon.fun/2026/2026-06-13T06-46-13-059Z.png&#34;&#xA;            alt=&#34;&#34;&#xA;            class=&#34;zoomable-image&#34;&#xA;        /&gt;&#xA;    &lt;/label&gt;&#xA;    &#xA;    &#xA;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;最小模型&#34;&gt;最小模型&lt;/h2&gt;&#xA;&lt;p&gt;我们从一个只有 3 个参数的小模型开始，一步步走完整个推理过程。&lt;/p&gt;&#xA;&lt;p&gt;假设我要做一个判断天气的小模型。根据温度和湿度判断是否适合出门，输入：温度 temp、湿度 humidity，输出：适合出门的分数 y。其中w1、w2 分别是温度和湿度对应的权重，b 是偏置。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;WeatherModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;w1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;w2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;  &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;forward&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;temp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;humidity&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;temp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;w1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;humidity&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;w2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;模型训练的过程就是逐渐确定w1、w2、b这三个参数的过程。我们收集了很多历史天气数据中的温度、湿度的值，并打上是否适合出门的标记，这个就是模型训练过程中的训练数据。训练的过程，就是不断调整 w1、w2、b，让模型输出越来越接近真实结果。&lt;/p&gt;&#xA;&lt;p&gt;经过大量的迭代，最后得到：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;w1 = 0.7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;w2 = -0.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;b  = 5.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这三个数字就是模型权重，训练结束后模型保留的只有这三个数字，这些数字其实是历史经验的压缩结果。即权重 = 从训练数据中提炼出来的经验。对于我们使用的大模型，道理完全一样，只不过区别在于大模型的参数数量扩大了几十亿倍。千亿参数大模型只是把无数层类似 w * x + b 的矩阵运算堆叠、加上注意力机制，底层计算逻辑本质仍是权重与输入的线性运算，只是结构更复杂。&lt;/p&gt;&#xA;&lt;p&gt;后面我们得到了一组新的温度值、湿度值，送入模型进行计算，得出适合出门的分数，如果分数低于我们设定的阈值，就判断为不适合出门。整个过程中：代码决定怎么算、权重决定用什么数字算，二者缺一不可。&lt;/p&gt;&#xA;&lt;h2 id=&#34;结构-vs-权重&#34;&gt;结构 vs 权重&lt;/h2&gt;&#xA;&lt;p&gt;模型结构 = 大脑，模型权重 = 记忆。或者说模型结构 = 神经系统，模型权重 = 学到的知识。&lt;/p&gt;&#xA;&lt;p&gt;一个模型结构可以搭配多个权重，比如英文模型和中文模型就可以搭配不同的预训练权重。&lt;/p&gt;&#xA;&lt;p&gt;同一套 Llama3 Transformer 代码结构，加载英文通用权重 = 英文对话模型；加载代码微调权重 = 代码助手；加载医疗微调权重 = 医疗问答模型。&lt;/p&gt;&#xA;&lt;p&gt;因此真正决定模型能力的，往往不是结构文件，而是权重文件，因为权重文件代表模型学到了多少知识。&lt;/p&gt;&#xA;&lt;h2 id=&#34;模型推理过程&#34;&gt;模型推理过程&lt;/h2&gt;&#xA;&lt;p&gt;模型加载完成后，会把权重全部放进显存，然后开始推理。CPU 负责指挥，GPU 负责干活，CPU 负责告诉 GPU 执行第 1 层、执行第 2 层、&amp;hellip;，GPU 负责真正计算矩阵乘法。推理时，权重常驻显存。输入数据不断流过这些权重矩阵。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CPU：处理文本分词、token 预处理、调度计算流程、控制网络层执行顺序；&lt;/li&gt;&#xA;&lt;li&gt;GPU：承载全部权重矩阵，并行执行海量矩阵乘，是推理算力核心；&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;&#xA;&lt;p&gt;真正庞大的从不是复杂的算法代码，而是训练过程中沉淀下来的亿万数值。&lt;/p&gt;&#xA;&lt;p&gt;我们说大模型 “大”，不在于实现代码有多冗长，而在于它承载了海量学习得来的知识。&lt;/p&gt;&#xA;&lt;p&gt;代码搭建出神经网络的完整结构，相当于塑造大脑的生理框架；&lt;/p&gt;&#xA;&lt;p&gt;权重存储全部训练学到的信息，相当于大脑里积累的记忆；&lt;/p&gt;&#xA;&lt;p&gt;所谓推理，本质就是将输入文本转化为向量，不断穿过每一层承载知识的权重矩阵，最终输出对应的结果。&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Pre Training：大模型世界的九年义务教育</title>
      <link>https://blog.kmoon.fun/pre-training%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E4%B9%9D%E5%B9%B4%E4%B9%89%E5%8A%A1%E6%95%99%E8%82%B2/</link>
      <pubDate>Wed, 20 May 2026 21:41:56 +0800</pubDate><author>hushan@kmoon.fun (Kmoon)</author>
      <guid>https://blog.kmoon.fun/pre-training%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E4%B9%9D%E5%B9%B4%E4%B9%89%E5%8A%A1%E6%95%99%E8%82%B2/</guid>
      <description>&lt;p&gt;This article outlines the goals, pipeline, and trade-offs of LLM pre-training from data collection to optimization.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Knowledge Editing：大模型世界的微创手术</title>
      <link>https://blog.kmoon.fun/knowledge-editing%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E5%BE%AE%E5%88%9B%E6%89%8B%E6%9C%AF/</link>
      <pubDate>Wed, 13 May 2026 21:46:11 +0800</pubDate><author>hushan@kmoon.fun (Kmoon)</author>
      <guid>https://blog.kmoon.fun/knowledge-editing%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E5%BE%AE%E5%88%9B%E6%89%8B%E6%9C%AF/</guid>
      <description>&lt;p&gt;This article introduces knowledge editing for LLMs, including why it matters and the main approaches used in practice.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Fine Tuning：大模型世界的特长班</title>
      <link>https://blog.kmoon.fun/fine-tuning%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E7%89%B9%E9%95%BF%E7%8F%AD/</link>
      <pubDate>Sat, 09 May 2026 21:41:34 +0800</pubDate><author>hushan@kmoon.fun (Kmoon)</author>
      <guid>https://blog.kmoon.fun/fine-tuning%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%96%E7%95%8C%E7%9A%84%E7%89%B9%E9%95%BF%E7%8F%AD/</guid>
      <description>&lt;p&gt;LlamaFactory：统一高效微调 100+ 种大模型和视觉模型&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/hiyouga/LlamaFactory/blob/main/README_zh.md&#34;&gt;https://github.com/hiyouga/LlamaFactory/blob/main/README_zh.md&lt;/a&gt;&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
