<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://litebites.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://litebites.github.io/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-05-09T21:27:54+09:00</updated><id>https://litebites.github.io/feed.xml</id><title type="html">LiteBites</title><subtitle>Bite-sized notes on AI and computer science research.</subtitle><entry><title type="html">Chain-of-Zoom: Extreme Super-Resolution via Scale Autoregression and Preference Alignment</title><link href="https://litebites.github.io/posts/chain-of-zoom/" rel="alternate" type="text/html" title="Chain-of-Zoom: Extreme Super-Resolution via Scale Autoregression and Preference Alignment" /><published>2025-05-28T00:00:00+09:00</published><updated>2025-05-28T00:00:00+09:00</updated><id>https://litebites.github.io/posts/chain-of-zoom</id><content type="html" xml:base="https://litebites.github.io/posts/chain-of-zoom/"><![CDATA[<h2 id="why-this-paper-matters">Why this paper matters</h2>

<p>Single-image super-resolution is an ill-posed problem: one low-resolution image can correspond to many plausible high-resolution images. The problem becomes harder when the target scale moves beyond the regime that a model saw during training.</p>

<p>Chain-of-Zoom asks how to push super-resolution further than a fixed one-step upscaling model. Instead of trying to jump directly from a very small image to an extreme high-resolution image, it models the process as a chain of intermediate zoom states.</p>

<h2 id="the-bite">The bite</h2>

<p>The key idea is scale autoregression. Chain-of-Zoom repeatedly applies a super-resolution process across multiple scale states, where each step predicts the next zoomed image from previous states.</p>

<p>The method also uses vision-language guidance. As details become uncertain during repeated magnification, a vision-language model extracts text prompts from multi-scale image context. These prompts help the super-resolution model preserve semantic detail rather than relying only on sparse pixels.</p>

<h2 id="how-it-works">How it works</h2>

<p>Chain-of-Zoom represents generation as a sequence from a low-resolution input to progressively higher-resolution states. Each step depends on recent image states instead of treating super-resolution as a single isolated transformation. This makes the process closer to next-scale prediction than one-shot restoration.</p>

<p>A central design choice is multi-scale-aware prompt extraction. The prompt generator looks at more than one resolution state, which helps it describe the content that should survive the next zoom step. This is meant to reduce hallucination compared with relying on a single sparse magnified patch.</p>

<p>The paper also uses preference alignment for the prompt generator. In the source note, the important pieces are critic preference reward, phrase-exclusion reward, and repetition penalty. Together, these rewards encourage prompts that are semantically helpful, avoid unhelpful template phrases, and reduce repetitive text.</p>

<h2 id="what-to-look-at-in-the-results">What to look at in the results</h2>

<p>The most relevant examples are extreme magnification cases where ordinary super-resolution models are likely to blur, invent, or collapse details. Look at whether Chain-of-Zoom maintains plausible structure across repeated zoom steps.</p>

<p>It is also worth checking the role of the text prompts. If the prompts are useful, the model should preserve semantic identity and local detail better than a scale-only pipeline. The caveat is that language guidance can also introduce hallucinated details, so alignment and prompt quality matter.</p>

<h2 id="practical-takeaways">Practical takeaways</h2>

<ul>
  <li>Extreme super-resolution is better viewed as a multi-step problem than a single jump.</li>
  <li>Scale autoregression lets the model reuse intermediate zoom states.</li>
  <li>Vision-language prompts can supply semantic guidance when pixel evidence becomes sparse.</li>
  <li>Preference alignment is important because bad prompts can amplify hallucinations.</li>
  <li>When reading the paper, focus on how quality changes across repeated zoom steps, not only the final image.</li>
</ul>

<h2 id="links">Links</h2>

<ul>
  <li><a href="https://openreview.net/forum?id=I8S4ASqO5H">Paper page at OpenReview</a></li>
  <li><a href="https://github.com/bryanswkim/Chain-of-Zoom">Official code on GitHub</a></li>
</ul>]]></content><author><name></name></author><category term="Super-Resolution" /><category term="Vision-Language Models" /><summary type="html"><![CDATA[Why this paper matters]]></summary></entry><entry><title type="html">LoRA: Low-Rank Adaptation of Large Language Models</title><link href="https://litebites.github.io/posts/lora/" rel="alternate" type="text/html" title="LoRA: Low-Rank Adaptation of Large Language Models" /><published>2025-05-26T00:00:00+09:00</published><updated>2025-05-26T00:00:00+09:00</updated><id>https://litebites.github.io/posts/lora</id><content type="html" xml:base="https://litebites.github.io/posts/lora/"><![CDATA[<h2 id="why-this-paper-matters">Why this paper matters</h2>

<p>Full fine-tuning becomes increasingly awkward as language models grow. Updating every parameter requires large GPU memory, creates a separate full model checkpoint for each task, and makes deployment harder when many downstream tasks need to be supported.</p>

<p>LoRA focuses on a practical deployment problem: how can we adapt a large pretrained model while training and storing only a tiny number of additional parameters?</p>

<h2 id="the-bite">The bite</h2>

<p>The key idea is to freeze the pretrained weights and represent the task-specific update as a low-rank decomposition. Instead of learning a full dense update matrix, LoRA learns two much smaller matrices whose product acts like the update.</p>

<p>This is useful because many downstream adaptations do not need to change the full parameter space directly. If the needed update can be approximated in a low-dimensional subspace, then the model can be adapted with far fewer trainable parameters.</p>

<h2 id="how-it-works">How it works</h2>

<p>In conventional fine-tuning, the model starts from pretrained weights and directly updates them for a downstream dataset. LoRA keeps the pretrained weight fixed. For selected layers, it adds a parallel low-rank branch that computes an update and adds it to the original layer output.</p>

<p>A useful way to picture this is a frozen main road with a small trainable side road. The main pretrained transformation remains available, while the LoRA branch learns the task-specific correction. Because the branch is small, training requires much less optimizer state and memory than full fine-tuning.</p>

<p>LoRA also avoids a common drawback of sequential adapters. Some adapter methods insert extra layers into the model path, which can add inference latency. LoRA’s update can be merged into the original weights for deployment, so it can adapt the model without keeping a separate slow path at inference time.</p>

<h2 id="what-to-look-at-in-the-results">What to look at in the results</h2>

<p>The important comparison is not only accuracy. Look at the trade-off between quality, trainable parameter count, memory usage, and deployment convenience. LoRA is compelling when it stays competitive with full fine-tuning or larger adapters while using far fewer trainable parameters.</p>

<p>Also check how the method behaves across different parameter scales and tasks. A good parameter-efficient method should not work only at one carefully chosen size; it should remain reliable as the model and task setting change.</p>

<h2 id="practical-takeaways">Practical takeaways</h2>

<ul>
  <li>Full fine-tuning large models is expensive to train, store, and deploy.</li>
  <li>LoRA adapts a frozen model by learning small low-rank update matrices.</li>
  <li>The method is parameter-efficient because the learned update is constrained to a low-rank form.</li>
  <li>LoRA can reduce deployment friction because task-specific updates are small and swappable.</li>
  <li>When reading the paper, focus on the accuracy-versus-trainable-parameters trade-off.</li>
</ul>

<h2 id="links">Links</h2>

<ul>
  <li><a href="https://openreview.net/forum?id=nZeVKeeFYf9">Paper page at OpenReview</a></li>
  <li><a href="https://github.com/microsoft/LoRA">Official code on GitHub</a></li>
</ul>]]></content><author><name></name></author><category term="Efficient Tuning" /><category term="Large Language Models" /><summary type="html"><![CDATA[Why this paper matters]]></summary></entry><entry><title type="html">Adding Conditional Control to Text-to-Image Diffusion Models</title><link href="https://litebites.github.io/posts/controlnet/" rel="alternate" type="text/html" title="Adding Conditional Control to Text-to-Image Diffusion Models" /><published>2025-05-21T00:00:00+09:00</published><updated>2025-05-21T00:00:00+09:00</updated><id>https://litebites.github.io/posts/controlnet</id><content type="html" xml:base="https://litebites.github.io/posts/controlnet/"><![CDATA[<h2 id="why-this-paper-matters">Why this paper matters</h2>

<p>Text-to-image diffusion models are good at turning prompts into images, but text alone is a weak interface for precise spatial control. If a user wants the generated image to follow an edge map, a depth map, a segmentation mask, or a human pose, the model needs conditioning information that describes structure directly.</p>

<p>ControlNet addresses this gap without throwing away the value of a strong pretrained diffusion model. The practical question is simple: can we add task-specific control to Stable Diffusion while keeping the base model stable and useful?</p>

<h2 id="the-bite">The bite</h2>

<p>The key idea is to attach a trainable control branch to a locked pretrained diffusion model. The locked branch preserves the image generation capability that was already learned. The trainable branch learns how to inject external conditions, such as edges or poses, into the generation process.</p>

<p>The important stabilizing trick is zero convolution. ControlNet connects the conditional branch to the main model through convolution layers initialized to zero. At the beginning of training, this means the new branch does not immediately disturb the pretrained model. The control signal is allowed to enter gradually as the zero-initialized parameters learn useful values.</p>

<h2 id="how-it-works">How it works</h2>

<p>ControlNet starts from a pretrained text-to-image diffusion model and makes a trainable copy of relevant encoder blocks. The original model is locked, while the copied branch receives both image features and conditional features. Its outputs are added back into the main model through skip-style connections.</p>

<p>Zero convolution is what makes this setup safer than directly fine-tuning or randomly attaching a new branch. Since the connecting layers initially output zero, the first behavior remains close to the original pretrained model. After the first updates, the control branch begins to participate in training without injecting arbitrary random noise into the generation path.</p>

<p>This framing also explains why ControlNet can support many kinds of conditions. The external map changes, but the pattern is the same: preserve the pretrained diffusion model, learn a condition-aware branch, and use controlled feature injection to guide the final image.</p>

<h2 id="what-to-look-at-in-the-results">What to look at in the results</h2>

<p>The most useful results are the examples where the same text prompt is constrained by different structural inputs. These show whether the method really follows the conditioning map rather than merely producing a plausible image.</p>

<p>Also look for the balance between controllability and image quality. A method that follows an edge map but damages the base model’s generation ability would be less useful. ControlNet’s design is valuable because it tries to gain control without sacrificing the pretrained model’s strengths.</p>

<h2 id="practical-takeaways">Practical takeaways</h2>

<ul>
  <li>Text prompts are not enough when spatial layout matters.</li>
  <li>A locked pretrained model can be extended instead of fully fine-tuned.</li>
  <li>Zero-initialized connections help new conditioning branches start safely.</li>
  <li>ControlNet is best understood as controlled feature injection around a reusable diffusion backbone.</li>
  <li>When reading the paper, focus on how different condition maps change the generated image while preserving quality.</li>
</ul>

<h2 id="links">Links</h2>

<ul>
  <li><a href="https://openaccess.thecvf.com/content/ICCV2023/html/Zhang_Adding_Conditional_Control_to_Text-to-Image_Diffusion_Models_ICCV_2023_paper.html">Paper page at CVF Open Access</a></li>
  <li><a href="https://github.com/lllyasviel/ControlNet">Official code on GitHub</a></li>
</ul>]]></content><author><name></name></author><category term="Generative Models" /><category term="Diffusion Models" /><summary type="html"><![CDATA[Why this paper matters]]></summary></entry><entry><title type="html">ViT-CoMer: Vision Transformer with Convolutional Multi-scale Feature Interaction for Dense Predictions</title><link href="https://litebites.github.io/posts/vit-comer/" rel="alternate" type="text/html" title="ViT-CoMer: Vision Transformer with Convolutional Multi-scale Feature Interaction for Dense Predictions" /><published>2025-05-20T00:00:00+09:00</published><updated>2025-05-20T00:00:00+09:00</updated><id>https://litebites.github.io/posts/vit-comer</id><content type="html" xml:base="https://litebites.github.io/posts/vit-comer/"><![CDATA[<h2 id="why-this-paper-matters">Why this paper matters</h2>

<p>Vision Transformers are attractive backbones because they can reuse strong pretrained weights. The problem is that a plain ViT usually works with a single-scale feature map, while dense prediction tasks such as object detection and semantic segmentation benefit from features at multiple spatial resolutions.</p>

<p>ViT-CoMer asks a practical question: can we keep a plain ViT backbone, avoid redesigning the whole network, and still give dense prediction models the multi-scale information they expect?</p>

<h2 id="the-bite">The bite</h2>

<p>The key idea is to run two complementary branches in parallel. The ViT branch contributes global representation power and compatibility with pretrained weights. The convolutional branch contributes local, multi-resolution features that are useful for dense prediction.</p>

<p>Instead of replacing ViT with a vision-specific transformer, ViT-CoMer lets convolutional features interact with ViT features through lightweight modules. This makes the backbone feel less like a full architecture rewrite and more like a feature interaction layer around a reusable ViT.</p>

<h2 id="how-it-works">How it works</h2>

<p>The method is built around two modules. The first is the Multi-Receptive Field Feature Pyramid module, or MRFP. It extracts convolutional features at several resolutions and mixes them with depth-wise convolutions using different receptive fields.</p>

<p>The second is the CNN-Transformer Bidirectional Fusion Interaction module, or CTI. CTI blends the ViT feature with the convolutional feature pyramid. A useful way to understand it is as a two-way exchange: ViT receives local multi-scale detail, while the CNN branch receives global transformer context.</p>

<p>The paper also uses a learnable, zero-initialized scaling factor when adding convolutional information back into the ViT stream. That detail matters because it reduces disruption early in training: the model can start close to the original ViT behavior and gradually learn how much convolutional interaction to use.</p>

<h2 id="what-to-look-at-in-the-results">What to look at in the results</h2>

<p>The most useful comparisons are not just whether ViT-CoMer improves a score, but where the improvement appears. Dense prediction is where multi-scale features should matter, so object detection and semantic segmentation are the right places to inspect first.</p>

<p>Also check how the method behaves under different pretraining settings. One of the main reasons to keep a plain ViT branch is the ability to benefit from strong pretrained ViT weights without committing to a heavily modified backbone.</p>

<h2 id="practical-takeaways">Practical takeaways</h2>

<ul>
  <li>Plain ViT is powerful, but dense prediction often needs multi-scale spatial detail.</li>
  <li>A parallel CNN branch can add local multi-resolution information without discarding ViT.</li>
  <li>Feature interaction modules are the central design move, not just extra convolution.</li>
  <li>Zero-initialized scaling is a small but important stabilizing detail.</li>
  <li>When reading the paper, focus on detection and segmentation results first.</li>
</ul>

<h2 id="links">Links</h2>

<ul>
  <li><a href="https://openaccess.thecvf.com/content/CVPR2024/html/Xia_ViT-CoMer_Vision_Transformer_with_Convolutional_Multi-scale_Feature_Interaction_for_Dense_CVPR_2024_paper.html">Paper page at CVF Open Access</a></li>
  <li><a href="https://github.com/Traffic-X/ViT-CoMer">Official code on GitHub</a></li>
</ul>]]></content><author><name></name></author><category term="Computer Vision" /><category term="Dense Prediction" /><summary type="html"><![CDATA[Why this paper matters]]></summary></entry></feed>