<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Selfhost on Dark Kernel</title>
    <link>https://blogs.sumit.engineer/tags/selfhost/</link>
    <description>Recent content in Selfhost on Dark Kernel</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 17 May 2026 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://blogs.sumit.engineer/tags/selfhost/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Local AI Model on Arch Linux (Low Hardware)</title>
      <link>https://blogs.sumit.engineer/post/local-ai-model-on-arch-linux-low-hardware/</link>
      <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blogs.sumit.engineer/post/local-ai-model-on-arch-linux-low-hardware/</guid>
      <description>&lt;h2 id=&#34;why-to-run-ai-models-locally&#34;&gt;Why to run AI models locally?&lt;/h2&gt;
&lt;p&gt;Well, if you are there, you might probably know the answer of this question, but just for sake of intro, Running models locally provides the following benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cost reduction&lt;/li&gt;
&lt;li&gt;Unlimited usage&lt;/li&gt;
&lt;li&gt;More privacy&lt;/li&gt;
&lt;li&gt;More control&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;So, recently i have been trying to find an model that can be actually usable on my specific hardware.
Since, the beginning of the local AI models, i have tried many of those, either they were too big in size, or needs me heavy GPU, which ofcourse was not my case.&lt;/p&gt;
&lt;p&gt;I started exploring different small models then, like smollm, tinyllama, which were good, but they doesn&amp;rsquo;t provide the tool calling feature, which kind of make them useless (in my case).&lt;/p&gt;
&lt;h4 id=&#34;what-is-tool-calling-anyway&#34;&gt;What is tool calling anyway?&lt;/h4&gt;
&lt;p&gt;The tool calling means, the AI can read,write,execute for you using the tools provided by you agent or any program.
Before we dive in, i want you to tell that, AI can&amp;rsquo;t actually execute anything or make actually an action. I can only work with text&amp;rsquo;s input/output. So how does it even work?&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s come the JSON in the picture, AI&amp;rsquo;s use the JSON structure to create an request of tool call with all the arguments and information, then the agent you are using handles the actual execution by extracting that json and making it execute exactly.&lt;/p&gt;
&lt;h3 id=&#34;my-hardware&#34;&gt;My hardware&lt;/h3&gt;
&lt;p&gt;I have 16GB 2400mz ram, 1TB HDD, CPU: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz, No usable gpu.&lt;/p&gt;
&lt;p&gt;Models i tried.&lt;/p&gt;
&lt;p&gt;I tried running tinylllama:1.1b model of size 637 MB. it gaves 23 token/s.
which is i think ok ok to use locally, but it doesn&amp;rsquo;t support tooling and that&amp;rsquo;s where it feels useless to me.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;❯ ollama run tinyllama --verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt;&amp;gt;&amp;gt; hello.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Hi there! I&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;m glad to hear that you found my comment useful, and I&amp;#39;&lt;/span&gt;d love to help with your request. Please let me know what questions or concerns you have about the article. Whether
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;you&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;re interested in learning more about a specific topic or just looking for general information, feel free to ask away. I&amp;#39;&lt;/span&gt;ll &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; my best to provide you with helpful answers! Don&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;t
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hesitate to reach out &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; you need any further assistance. Best regards,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;Your Name&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total duration:       4.673213147s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load duration:        29.595312ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval count:    &lt;span style=&#34;color:#ae81ff&#34;&gt;36&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval duration: 118.675088ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval rate:     303.35 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval count:           &lt;span style=&#34;color:#ae81ff&#34;&gt;103&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval duration:        4.47597143s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval rate:            23.01 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I even tried smollm of 1.7b of size 990 MB something, and here&amp;rsquo;s its token evaluation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total duration:       1m19.192179911s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load duration:        30.771139ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval count:    &lt;span style=&#34;color:#ae81ff&#34;&gt;179&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval duration: 384.048969ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval rate:     466.09 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval count:           &lt;span style=&#34;color:#ae81ff&#34;&gt;972&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval duration:        1m18.105162196s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval rate:            12.44 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;same, it doesn&amp;rsquo;t support tooling, not useful.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;❯ ollama run qwen2.5:1.5b --verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt;&amp;gt;&amp;gt; hello
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Hello! How can I help you today? Is there anything on your mind that you
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;would like to talk about? I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;m here to listen and answer any questions you
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;might have.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total duration:       3.256996963s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load duration:        91.701436ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval count:    &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval duration: 428.660945ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval rate:     69.99 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval count:           &lt;span style=&#34;color:#ae81ff&#34;&gt;37&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval duration:        2.662413615s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval rate:            13.90 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;❯ ollama run smollm:135m --verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt;&amp;gt;&amp;gt; what can you &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;?
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;What type of job is this, and what kind of person would be interested in it?
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total duration:       483.184523ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load duration:        32.524471ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval count:    &lt;span style=&#34;color:#ae81ff&#34;&gt;56&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval duration: 23.91895ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prompt eval rate:     2341.24 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval count:           &lt;span style=&#34;color:#ae81ff&#34;&gt;19&lt;/span&gt; token&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval duration:        413.605136ms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eval rate:            45.94 tokens/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;gguf&#34;&gt;GGUF&lt;/h4&gt;
&lt;p&gt;Then i tried gguf&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./build/bin/llama-cli &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -m ~/models/Qwen2.5-1.5B-Instruct-Q4_K_M.gguf &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -t &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -c &lt;span style=&#34;color:#ae81ff&#34;&gt;2048&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --temp 0.7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Running with llama.cpp and guff is actuall fast. the qwen2.5:1.5b is actually working, but sometimes fails to call tool efficiently. and a bit dumb.&lt;/p&gt;
</description> 
    </item>
    
  </channel>
</rss>


