{"id":182824,"date":"2026-08-11T04:54:15","date_gmt":"2026-08-11T02:54:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3"},"modified":"2026-08-12T18:21:41","modified_gmt":"2026-08-12T16:21:41","slug":"yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3","title":{"rendered":"3 TL;DR: Encountering the third discovered buffer overflow of 2026 (according to F5).","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2026\/08\/5aa73219999b2228886364ab9430b279.jpg\" \/> <a id=\"memories_button\" title=\"Track\" href=\"#\" rel=\"nofollow\"><i class=\"icon-bell\"><\/i><\/a><br \/>\nDeveloper Vyacheslav Serbov, who performs under the pseudonym slvDev, <a href=\"https:\/\/x.com\/slvDev\/status\/2080322138410524737\" rel=\"nofollow\">demonstrated<\/a> completely local text generation on the ESP32-S3 microcontroller. The language model he created contains 28.9 million parameters and produces about 9.9 tokens per second without relying on a server or other external computational resources. The generated short stories are displayed on a connected OLED screen.<\/p>\n<p>&nbsp;<\/p>\n<p>Project <a href=\"https:\/\/github.com\/slvDev\/esp32-ai\" rel=\"nofollow\">esp32-ai<\/a> tested on the ESP32-S3 N16R8 module, which has 512 KB of built-in SRAM, 8 MB of PSRAM, and 16 MB of flash memory. The quantized four-bit model occupies 14.9 MB. The repository contains the C runtime source code, training and model quantization tools, firmware, tests, and scripts for loading it onto the board.<\/p>\n<p>&nbsp;<\/p>\n<p>The stated 28.9 million parameters should not be directly compared to the number of parameters of standard desktop LLMs. According to <a href=\"https:\/\/github.com\/slvDev\/esp32-ai\/blob\/main\/RESULTS.md\" rel=\"nofollow\">the detailed report of the developer<\/a>, the model consists of a dense computational core with approximately 559 thousand parameters, an output layer with 3.1 million parameters, and a layer-wise vector representation table of approximately 25 million parameters. It is the latter that provides the bulk of the formal model size but is not processed in its entirety when generating each token.<\/p>\n<p>&nbsp;<\/p>\n<p>The model employs three levels of memory. The most frequently used data reside in the internal SRAM, while the output layer, KV cache, and temporary buffers are in PSRAM, and the 25-million table remains in flash memory and is accessible through memory mapping. For each token, only about six rows are read from it, totaling approximately 450 bytes.<\/p>\n<p>&nbsp;<\/p>\n<p>Such a device is based on the Per-Layer Embeddings technology used by Google in Gemma 3n. According to <a href=\"https:\/\/ai.google.dev\/gemma\/docs\/gemma-3n\" rel=\"nofollow\">Google's documentation<\/a>, PLE parameters can be stored outside the model's working memory and added to the output process as individual layers are processed. In esp32-ai, this approach has been adapted to the memory hierarchy of the microcontroller, where fast SRAM is particularly limited.<\/p>\n<p>&nbsp;<\/p>\n<p>The first correct version of the C execution environment delivered only 0.57 tokens per second. After placing the output layer in PSRAM, switching to eight-bit activations, distributing computations between two Xtensa LX7 cores, and other optimizations, the latency was reduced to 94.9 ms per model step. The final measured speed reached 9.88 tokens per second considering the entire generation process. The main limitation now is the PSRAM bandwidth when reading the output layer.<\/p>\n<p>&nbsp;<\/p>\n<p>The model is trained on a synthetic dataset <a href=\"https:\/\/arxiv.org\/abs\/2305.07759\" rel=\"nofollow\">TinyStories<\/a>, consisting of simple English stories with a limited vocabulary. Therefore, it is able to continue phrases and compose small coherent stories, but is not intended for answering questions, following instructions, programming, or reproducing factual knowledge. The developer primarily views the work as a demonstration of effective model deployment in a microcontroller's memory, rather than as a ready standalone chatbot.<\/p>\n<p>&nbsp;<\/p>\n<p>In the current documentation, the author emphasizes that esp32-ai is an independent development. The projects <a href=\"https:\/\/github.com\/karpathy\/llama2.c\" rel=\"nofollow\">llama2.c<\/a> by Andrei Karpathy and the earlier launch of a 260-thousand parameter model on the ESP32-S3 are cited only as benchmarks and examples of prior work: the code, checkpoints, and methodology are not directly borrowed from them. The source code of esp32-ai <a href=\"https:\/\/github.com\/slvDev\/esp32-ai\/blob\/main\/LICENSE\" rel=\"nofollow\">is distributed under the MIT license<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>Source: <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/ai\/18353997\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432 \u0421\u0435\u0440\u0431\u043e\u0432, \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0434 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u043c slvDev, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP32-S3. \u0421\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0438\u043c \u044f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 28,9 \u043c\u043b\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u043a\u043e\u043b\u043e 9,9 \u0442\u043e\u043a\u0435\u043d\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 OLED-\u0434\u0438\u0441\u043f\u043b\u0435\u0439. &nbsp; \u041f\u0440\u043e\u0435\u043a\u0442 esp32-ai \u0438\u0441\u043f\u044b\u0442\u0430\u043d \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0435 ESP32-S3 N16R8, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182824","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Emin Berklin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441 28,9 \u043c\u043b\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 ESP32-S3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-11T02:54:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-12T16:21:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47The language model with 28.9 million parameters runs on ESP32-S3 | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042f\u0437\u044b\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441 28,9 \u043c\u043b\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 ESP32-S3 | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/yazykovaya-model-s-289-mln-parametrov-zarabotala-na-esp32-s3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-08-11T02:54:15+00:00","article:modified_time":"2026-08-12T16:21:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182824","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-08-11 06:43:49","updated":"2026-08-11 06:43:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=182824"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182824\/revisions"}],"predecessor-version":[{"id":182897,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182824\/revisions\/182897"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=182824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=182824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=182824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}