<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: mycute</title>
    <description>The latest articles on DEV Community by mycute (@mycute_97b39c4e34027570f9).</description>
    <link>https://dev.to/mycute_97b39c4e34027570f9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4200987%2F010b4f64-6b50-4e46-ac6a-29846897b9a8.png</url>
      <title>DEV Community: mycute</title>
      <link>https://dev.to/mycute_97b39c4e34027570f9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mycute_97b39c4e34027570f9"/>
    <language>en</language>
    <item>
      <title>Fine-tuning a 32B model on a 6 GB laptop GPU — and the three measurements that nearly fooled me</title>
      <dc:creator>mycute</dc:creator>
      <pubDate>Sat, 24 Oct 2026 22:22:23 +0000</pubDate>
      <link>https://dev.to/mycute_97b39c4e34027570f9/fine-tuning-a-32b-model-on-a-6-gb-laptop-gpu-and-the-three-measurements-that-nearly-fooled-me-2ojm</link>
      <guid>https://dev.to/mycute_97b39c4e34027570f9/fine-tuning-a-32b-model-on-a-6-gb-laptop-gpu-and-the-three-measurements-that-nearly-fooled-me-2ojm</guid>
      <description>&lt;p&gt;I have one GPU: an RTX 3050 Laptop with &lt;strong&gt;6 GB of VRAM&lt;/strong&gt;, 34 GB of RAM and an NVMe SSD.&lt;br&gt;
It runs Windows. For the last months I've been building a small engine that trains models&lt;br&gt;
that don't fit, and this post is the honest result for the 32B case — including the&lt;br&gt;
places where I fooled myself and had to publish the correction.&lt;/p&gt;

&lt;h2&gt;
  
  
  What works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A 32B model (NF4) fine-tunes at 1024 tokens/step on this card.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;seq&lt;/th&gt;
&lt;th&gt;step time&lt;/th&gt;
&lt;th&gt;tokens/s&lt;/th&gt;
&lt;th&gt;peak VRAM&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;10.70 s&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;3.18 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;512&lt;/td&gt;
&lt;td&gt;17.95 s&lt;/td&gt;
&lt;td&gt;28.5&lt;/td&gt;
&lt;td&gt;3.82 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1024&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;27.91 s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;36.7&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4.61 GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2048&lt;/td&gt;
&lt;td&gt;64.53 s&lt;/td&gt;
&lt;td&gt;31.7&lt;/td&gt;
&lt;td&gt;6.60–7.93 GB (spills)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Why is that interesting? The 32B weights are 19.2 GB. They never fully live in VRAM: they&lt;br&gt;
are mmap'd from disk and streamed &lt;strong&gt;block by block&lt;/strong&gt;, one transformer block resident at a&lt;br&gt;
time, with recompute in the backward. The I/O is paid &lt;strong&gt;once per step&lt;/strong&gt;, not per token —&lt;br&gt;
so longer sequences amortise it. At 8× the context (128 → 1024) throughput goes up 3.1×.&lt;/p&gt;

&lt;p&gt;A 14B fits in RAM, so it is much cheaper: 2k/4k steps at ~4–5 s. Dolly-15k SFT for 50&lt;br&gt;
steps drops the eval loss from &lt;strong&gt;1.8755 to 0.9661&lt;/strong&gt; (32B) and &lt;strong&gt;2.3747 to 0.9407&lt;/strong&gt; (14B).&lt;/p&gt;

&lt;p&gt;The full recipe and one-command wrapper:&lt;br&gt;
&lt;a href="https://github.com/byjameson/stream-finetune" rel="noopener noreferrer"&gt;github.com/byjameson/stream-finetune&lt;/a&gt; —&lt;br&gt;
&lt;code&gt;tools/finetune.py&lt;/code&gt;, &lt;code&gt;LONGCTX_FINDINGS.md&lt;/code&gt;, &lt;code&gt;GUIDE_6GB_32B.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three measurements that nearly fooled me
&lt;/h2&gt;

&lt;p&gt;This section is the real point of the post. Every one of these produced a &lt;em&gt;plausible&lt;/em&gt;&lt;br&gt;
number that was wrong, and all three were caught only because I went back and checked.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. I measured a model I never loaded
&lt;/h3&gt;

&lt;p&gt;I published a result saying "the learned block router selects &lt;strong&gt;0.0%&lt;/strong&gt; content blocks and&lt;br&gt;
is &lt;em&gt;identical&lt;/em&gt; to a static window". Then I noticed the evaluation script loaded the&lt;br&gt;
checkpoint &lt;strong&gt;before&lt;/strong&gt; patching the model with the router modules — so nothing was loaded&lt;br&gt;
and I had been benchmarking a &lt;strong&gt;randomly initialised router&lt;/strong&gt; for days.&lt;/p&gt;

&lt;p&gt;Fixed, the same model selects 1.7–7.0% content blocks and is 0.005–0.13 PPL &lt;em&gt;worse&lt;/em&gt; than&lt;br&gt;
the window. The headline survived in spirit ("learning buys nothing here") but the&lt;br&gt;
reported mechanism was fabricated by a bug. I kept the invalid runs in&lt;br&gt;
&lt;code&gt;results/invalid/&lt;/code&gt; with a note, and rewrote the report.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. "8.6× faster" was measuring a truncation cap
&lt;/h3&gt;

&lt;p&gt;I reported "32B at 4k context: 382 tok/s, 8k: 616 tok/s". Wrong. The SFT path feeds &lt;strong&gt;one&lt;br&gt;
dataset row per step&lt;/strong&gt;, and &lt;code&gt;--seq&lt;/code&gt; there is only a truncation cap. Dolly-15k rows are&lt;br&gt;
&lt;strong&gt;43–1964 tokens, median 134&lt;/strong&gt;. So every "seq 1k–8k" step processed ~134 tokens, and I was&lt;br&gt;
dividing the &lt;em&gt;cap&lt;/em&gt; by the step time.&lt;/p&gt;

&lt;p&gt;The real numbers, from the LM path where sequences are exactly &lt;code&gt;seq&lt;/code&gt; long: 12.0 → 28.5 →&lt;br&gt;
36.7 tok/s at 128 → 512 → 1024, then the memory wall. &lt;strong&gt;3.1×, not 8.6×.&lt;/strong&gt; The symptom was&lt;br&gt;
visible in hindsight: step time and VRAM were almost flat across &lt;code&gt;seq&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The baseline was not budget-matched
&lt;/h3&gt;

&lt;p&gt;For a while my block-sparse attention looked 5 PPL better than "local" attention. It was —&lt;br&gt;
because "local" was allowed 2 blocks and the learned router 4–16. Against a &lt;strong&gt;budget-matched&lt;br&gt;
window&lt;/strong&gt; the learned router adds nothing. This is a widespread way to overstate sparse&lt;br&gt;
attention, and I had walked straight into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The other trap: the autotune
&lt;/h2&gt;

&lt;p&gt;The engine grows its resident block window until it hits a VRAM target measured on the&lt;br&gt;
&lt;em&gt;previous&lt;/em&gt; step. At seq 2048 it grew to 11 blocks, the next step spilled into Windows&lt;br&gt;
shared memory, and &lt;strong&gt;a single step did not finish in one hour&lt;/strong&gt;. Forcing&lt;br&gt;
&lt;code&gt;--blocks-on-gpu 1..2 --vram-hard-gb 5.3&lt;/code&gt; turns the same point into 3.9 GB and 193 tok/s.&lt;br&gt;
Long context wants &lt;em&gt;fewer&lt;/em&gt; resident blocks, not more.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did not work (and why it's in the repo anyway)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long-context training did not improve long-context quality at this budget.&lt;/strong&gt; With
122,880 tokens, training at seq 512 gave a 2k-context CE of 1.2833; training at seq
2048 gave 1.3033. The lever is data volume, not window length — at least at this scale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2k context does not fit.&lt;/strong&gt; It is ~0.6 GB away, and the missing piece is the bf16
&lt;code&gt;lm_head&lt;/code&gt; (1.56 GB). Its 4-bit variant is broken in the bitsandbytes version here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A learned block router trained on plain language modelling degenerates into
"sink + the recent window".&lt;/strong&gt; That is not a bug: on WikiText the dense teacher itself
puts almost no mass on distant blocks, so there is nothing to learn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On retrieval data it does learn&lt;/strong&gt; — distilling the dense teacher's &lt;em&gt;content argmax&lt;/em&gt; at
the answer positions, with no retrieval labels, gives exact-match parity with dense at a
25% block budget (and 6.25% at 8k) where a static window scores zero. It replicates on
0.5B and 3B. But it is a specialist: plain-LM perplexity degrades, and a mixed schedule
(1 retrieval step per 7 LM steps) costs +0.6 PPL to keep both.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;A 6 GB laptop GPU can fine-tune a 32B model at 1k context, at ~37 tokens/s, in 4.6 GB of&lt;br&gt;
VRAM — if you stream the weights and keep the resident window small. It cannot do 2k yet,&lt;br&gt;
and longer context is not a quality lever by itself.&lt;/p&gt;

&lt;p&gt;And the meta-lesson, which took more time than the engineering: &lt;strong&gt;check that your&lt;br&gt;
evaluation actually loaded the thing you think it loaded, and that your baseline has the&lt;br&gt;
same budget.&lt;/strong&gt; Both mistakes look like results.&lt;/p&gt;

&lt;p&gt;Everything — the engine, the guide, the corrections to the long-context numbers — is in&lt;br&gt;
&lt;a href="https://github.com/byjameson/stream-finetune" rel="noopener noreferrer"&gt;byjameson/stream-finetune&lt;/a&gt;. The research&lt;br&gt;
line behind the router claims (all experiments, every raw JSON, the invalid runs) is in&lt;br&gt;
the archive, &lt;a href="https://github.com/byjameson/lcga-local" rel="noopener noreferrer"&gt;byjameson/lcga-local&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hardware</category>
      <category>llm</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>I built 12 small Android apps: notes on scope, store listings and honest promotion</title>
      <dc:creator>mycute</dc:creator>
      <pubDate>Thu, 22 Oct 2026 18:46:46 +0000</pubDate>
      <link>https://dev.to/mycute_97b39c4e34027570f9/i-built-12-small-android-apps-notes-on-scope-store-listings-and-honest-promotion-4m74</link>
      <guid>https://dev.to/mycute_97b39c4e34027570f9/i-built-12-small-android-apps-notes-on-scope-store-listings-and-honest-promotion-4m74</guid>
      <description>&lt;p&gt;I run &lt;strong&gt;Pro Signal Studio&lt;/strong&gt;, a small independent Android studio. I recently shipped 12 apps: seven one-thumb arcade games, four football research apps for adults, and one crypto market-research app.&lt;/p&gt;

&lt;p&gt;They are deliberately small. None of them tries to be a platform. That constraint shaped the design, the store listings and the way I promote them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with one repeated action
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.neonmagnet.game" rel="noopener noreferrer"&gt;Color Matching&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.neonhunt.game" rel="noopener noreferrer"&gt;Hit The Target&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.neonfuse.game" rel="noopener noreferrer"&gt;Timing Challenge&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.neontunnel.game" rel="noopener noreferrer"&gt;Obstacle Runner&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.neondunk.game" rel="noopener noreferrer"&gt;Basketball Shot&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.bladerush.game" rel="noopener noreferrer"&gt;Knife Throw&lt;/a&gt; and &lt;a href="https://play.google.com/store/apps/details?id=com.stackrush.game" rel="noopener noreferrer"&gt;Block Stack&lt;/a&gt; all share a similar shape: one input, a short round and immediate feedback.&lt;/p&gt;

&lt;p&gt;That shape is intentional. A player should understand the loop after one attempt, then spend the next attempts improving timing. There is no inventory, no long tutorial and no reason to keep the screen busy.&lt;/p&gt;

&lt;p&gt;The hard part is not adding features. It is keeping the first ten seconds clear enough that the player wants an eleventh.&lt;/p&gt;

&lt;h2&gt;
  
  
  Store listings are part of the product
&lt;/h2&gt;

&lt;p&gt;A small app still needs a real listing. I wrote a short description for each one, checked the age rating, disclosed ads and in-app purchases, and made sure the screenshots matched the actual game.&lt;/p&gt;

&lt;p&gt;For the football apps, that also meant being explicit about what they are not. They are research tools for adults, rated 17+, and they do not guarantee a result. The crypto app is informational and does not promise returns. Those statements are not legal decoration; they set the right expectation before someone installs the app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promotion without fake urgency
&lt;/h2&gt;

&lt;p&gt;The temptation with a portfolio is to publish the same message twelve times. I did not do that. The studio has one index page and one short spotlight for each app, so a reader can choose the game or research tool that fits them instead of scrolling through a wall of identical links.&lt;/p&gt;

&lt;p&gt;I also avoided fake reviews, engagement pods and countdown timers. The apps are free to download, so the honest call to action is simple: try the one that looks useful, and leave feedback through the store if something is broken.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would do differently
&lt;/h2&gt;

&lt;p&gt;I would batch the store metadata earlier. Writing the listing after the build makes it harder to notice that the screenshots and the description are telling different stories.&lt;/p&gt;

&lt;p&gt;I would also create the support and privacy pages before the first release, not after. Those pages are part of the product experience, especially for apps that discuss betting or crypto.&lt;/p&gt;

&lt;h2&gt;
  
  
  The catalog
&lt;/h2&gt;

&lt;p&gt;The full index is here: &lt;a href="https://prosignalstudio.blogspot.com/2026/10/meet-pro-signal-studio-12-android-apps.html" rel="noopener noreferrer"&gt;12 Android apps from Pro Signal Studio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Google Play developer page is here: &lt;a href="https://play.google.com/store/apps/dev?id=8134910194103519639" rel="noopener noreferrer"&gt;Pro Signal Studio on Google Play&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you build small apps too, I would be interested in what you do to keep scope under control.&lt;/p&gt;

</description>
      <category>android</category>
      <category>gamedev</category>
      <category>mobile</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Running a 4B model in 6 GB and training 3B parameters on a laptop</title>
      <dc:creator>mycute</dc:creator>
      <pubDate>Thu, 22 Oct 2026 17:29:08 +0000</pubDate>
      <link>https://dev.to/mycute_97b39c4e34027570f9/running-a-4b-model-in-6-gb-and-training-3b-parameters-on-a-laptop-4al</link>
      <guid>https://dev.to/mycute_97b39c4e34027570f9/running-a-4b-model-in-6-gb-and-training-3b-parameters-on-a-laptop-4al</guid>
      <description>&lt;p&gt;&lt;strong&gt;What worked, what didn’t, and what the numbers actually mean.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m Gökhan Çava, an independent developer. I published &lt;a href="https://github.com/byjameson/lcga-local" rel="noopener noreferrer"&gt;LCGA Local&lt;/a&gt;, a source-only research package for local AI on small GPUs. This is the short technical story behind the release, including the parts that did not work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The constraint: 6 GB of VRAM
&lt;/h2&gt;

&lt;p&gt;The test machine is an RTX 3050 Laptop GPU with 6 GB of VRAM. That is enough for a small model, but not enough to load a 4B model in bf16 alongside a normal KV cache and a desktop session. The release contains two different answers to that constraint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serving: Qwen3-4B at a 4.5 GB peak
&lt;/h2&gt;

&lt;p&gt;The serving path uses Qwen3-4B-Instruct-2507 in int8 with layer streaming and one bf16 layer slot. It is deliberately boring engineering: keep the resident working set below the limit, move weights in as needed, and avoid allocating the whole model at once.&lt;/p&gt;

&lt;p&gt;Measured on the 6 GB RTX 3050 Laptop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4,513 MB peak VRAM&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~3.4 tok/s decode&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;18.8 s first run, 2.4 s warm start&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;One-command entry point: "python llm.py" ("sohbet.cmd" on Windows)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not fast by datacenter standards. It is useful for local chat, experimentation, and checking whether a 4B model fits at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAG: citations without a giant vector database
&lt;/h2&gt;

&lt;p&gt;The RAG layer is CPU-only BM25 over a 326-document Wikipedia-derived corpus (4.57 MiB). It returns a passage and a citation, and it declines when the corpus does not support an answer.&lt;/p&gt;

&lt;p&gt;On the internal exp48 evaluation (50 covered prompts plus 20 controls):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Retrieval: 50/50&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single-source answers: 50/50&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keyword overlap: 49/50&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Citations: 50/50&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Controls answered: 0/20&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The one keyword miss is not a factual failure: the answer used the correct Turkish synonym "Büyük Okyanus" instead of the literal "Pasifik". The baseline keyword score was 42/50.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The important limit:&lt;/strong&gt; this is a small, hand-built evaluation, not a public benchmark. The manual review was performed in the session by the agent and the developer, not by an independent human reviewer. The repository says so in "results/exp48_manual_review.md".&lt;/p&gt;

&lt;h2&gt;
  
  
  Training: all 3.09B parameters on the same 6 GB GPU
&lt;/h2&gt;

&lt;p&gt;The M5 experiment asks a different question: can the same laptop update the full parameter set of a 3B model, not a LoRA adapter?&lt;/p&gt;

&lt;p&gt;Using block streaming and Adafactor, M5 updates all &lt;strong&gt;3.09B parameters&lt;/strong&gt; on the 6 GB RTX 3050 Laptop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;150-step demo&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-entropy: 2.5034 → 2.3242&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;7.67 s/step&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4.93 GB peak VRAM&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a demo, not a convergence study. A 150-step run is enough to show that the memory path works; it is not enough to claim a useful fine-tune. The full report is in "M5_RAPOR.md".&lt;/p&gt;

&lt;h2&gt;
  
  
  What did not work: the sparse-attention result
&lt;/h2&gt;

&lt;p&gt;The repository also contains the LCGA block-sparse attention experiments. The current quality result is negative: in the measured setup, dense attention reached &lt;strong&gt;12.46 PPL&lt;/strong&gt; and the sparse variant reached &lt;strong&gt;16.56 PPL&lt;/strong&gt;. The release includes that result rather than hiding it. The serving and training work is independently useful; the sparse-attention idea still needs more work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is in the release
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Local chat and serving code&lt;/li&gt;
&lt;li&gt;CPU RAG and a 326-document corpus&lt;/li&gt;
&lt;li&gt;M1–M5 and P1 training experiments and reports&lt;/li&gt;
&lt;li&gt;CUDA-graph and research artifacts&lt;/li&gt;
&lt;li&gt;79 CPU/parity/cache/RAG tests&lt;/li&gt;
&lt;li&gt;Press kit and honest limits&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is not in the release
&lt;/h2&gt;

&lt;p&gt;Model weights, checkpoints, caches, and "tools/llama.cpp" are excluded. Qwen3-4B must be downloaded separately. The code is MIT-licensed; the RAG corpus is CC BY-SA 4.0 with attribution in "data/rag/README.md".&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repository: &lt;a href="https://github.com/byjameson/lcga-local" rel="noopener noreferrer"&gt;https://github.com/byjameson/lcga-local&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Release: &lt;a href="https://github.com/byjameson/lcga-local/releases/tag/v0.1.0" rel="noopener noreferrer"&gt;https://github.com/byjameson/lcga-local/releases/tag/v0.1.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Press kit: &lt;a href="https://github.com/byjameson/lcga-local/blob/main/PRESS.md" rel="noopener noreferrer"&gt;https://github.com/byjameson/lcga-local/blob/main/PRESS.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run this on a smaller GPU, or if you find a mistake in the evaluation, open an issue. Negative results and corrections are welcome.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: This post was drafted by an AI agent from the project's reports; the developer authorized publication. All measurements are from the repository.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>opensource</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
