Running and optimizing small language models on-premises and at the edge

Post Syndicated from Chris McEvilly original https://aws.amazon.com/blogs/compute/running-and-optimizing-small-language-models-on-premises-and-at-the-edge/

As you move your generative AI implementations from prototype to production, you may discover the need to run foundation models (FMs) on-premises or at the edge to address data residency, information security (InfoSec) policy, or low latency requirements. For example, customers in regulated industries, such as financial services, healthcare, and telecom, may want to leverage chatbots that support customer queries, optimize internal workflows for complex reporting, and automatically approve requests—while keeping their data in-country. Similarly, some organizations choose to deploy their own small language models (SLMs) to align with stringent internal InfoSec requirements. As another example, manufacturers may want to deploy SLMs right inside their factories to analyze production data and provide real-time equipment diagnostics. To address users’ data residency, latency, and InfoSec needs, this post provides guidance on deploying generative AI FMs into AWS Local Zones and AWS Outposts. The goal is to present a framework for running a range of SLMs that address local data processing requirements-based customer engagements.

Generative AI deployment options

The growth in generative AI deployments and experimentation has accelerated with two business deployment options. The first is the use of a large language model (LLM) to support enterprise needs. LLMs are incredibly flexible: one model can perform completely different tasks, such as answering questions, coding, summarizing documents, translating languages, and generating content. LLMs have the potential to disrupt content creation and the way people use search engines and virtual assistants. The second deployment model is the use of SLMs, addressing a specific use case. SLMs are compact transformer models that primarily use decoder-only or encoder-decoder architectures, with typically less than 20 billion parameters, though this definition is evolving as larger models become available. SLMs can achieve comparable or even superior performance when fine-tuned for specific domains or tasks, making them an excellent alternative for specialized applications.

In addition, SLMs offer faster inference times, lower resource requirements, and are suitable for deployment on a wider range of devices, making them particularly valuable for specialized applications and edge computing where space and power supply are limited. While SLMs are limited in scope and accuracy compared to LLMs, you can enhance their performance for specific tasks through Retrieval Augmented Generation (RAG) and fine-tuning. This combination produces an SLM capable of responding to queries relating to a specific domain with a comparable level of accuracy to an LLM, while reducing hallucinations. SLMs offer effective solutions that balance user needs with cost efficiency.

Architecture overview

The solution discussed in this blog post uses Llama.cpp, an optimized framework written in C/C++ to efficiently run a range of SLMs. Llama.cpp can run efficiently in a wide range of computing environments, enabling generative AI models to operate in Local Zones or on Outposts without the large Graphics Processing Unit (GPU) clusters typically associated with LLMs in their native frameworks. This framework expands your model choice and increases model performance when deploying SLMs to Local Zones and Outposts.

The architecture provides a template for deploying a range of SLMs supporting chatbot or generation use cases. The solution consists of a front-end application receiving user queries, formatting the prompts for presentation to the model, and delivering the resulting responses. To support a scalable solution, the application servers and Amazon EC2 G4dn GPU-enabled instances are front-ended with an Application Load Balancer (ALB).

For a deployment where the incoming prompts exceed the ability of SLMs to service the requests, a message queue can be deployed to the front end of the SLMs. As an example, you could deploy a RabbitMQ cluster to serve as your queue manager.


Figure 1: Architecture overview

Solution deployment

The following instructions show how to launch an SLM using Llama.cpp in Local Zones or on Outposts. Although the preceding architecture overview shows a complete solution with multiple components, this post focuses specifically on the steps necessary to deploy the SLM in an EC2 instance using Llama.cpp.

Prerequisites

For this solution, you need the following prerequisites:

  1. An AWS account that is either allowlisted for Local Zones or has a logical Outpost installed, configured, and running
  2. Access to G4dn instances in your account at the chosen location (check availability in AWS Service Quotas)
  3. A VPC created to host the environment
  4. Public and private subnets to support the environment in the VPC
  5. A security group that is associated with your EC2 instance
  6. AWS Identity and Access Management (IAM) role with AWS Systems Manager Session Manager permissions

1. Launch a GPU instance for your SLM

Sign in to the AWS Management Console, open the Amazon EC2 console, and launch a g4dn.12xlarge EC2 instance in your Local Zone or Outposts environment. Configure it with:

  1. Red Hat Enterprise Linux 9 (HVM), SSD Volume Type
  2. A private subnet associated with your Local Zone or Outposts rack
  3. 30 GiB gp2 root volume and an additional 300 GiB gp2 EBS volume
  4. The IAM role configured with permissions required for Systems Manager
  5. SSM Agent to connect to the instance (follow the instructions in Install SSM Agent on RHEL 8.x and 9.x in the Systems Manager User Guide)

For detailed EC2 launch instructions, see Launch an EC2 instance using the launch instance wizard in the console or Launch an instance on your Outposts rack.


Figure 2: SLM instance launched

2. Install NVIDIA drivers

  1. Connect to the SLM instance using Systems Manager. You can follow the instructions in Connect to your Amazon EC2 instance using Session Manager in the Amazon EC2 User Guide.
  2. Install kernel packages and tools.
    sudo su –
    
    dnf update -y
    
    subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
    
    dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    
    dnf install -y ccache cmake gcc-c++ git git-lfs htop python3-pip unzip wget
    
    dnf install -y dkms elfutils-libelf-devel kernel-devel kernel-modules-extra \
    libglvnd-devel vulkan-devel xorg-x11-server-Xorg
    
    systemctl enable --now dkms
    
    reboot
    

  3. Install Miniconda3 in the /opt/miniconda3 folder or install a compatible package manager to manage Python dependencies.
  4. Install the NVIDIA drivers.
    dnf config-manager --add-repo \
    http://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
    
    dnf module install -y nvidia-driver:latest-dkms
    
    dnf install -y cuda-toolkit
    
    echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
    
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
    
    source ~/.bashrc

3. Download and install Llama.cpp

  1. Create and mount the filesystem of the Amazon EBS volume you created earlier in the /opt/slm folder. The instructions are available in Make an Amazon EBS volume available for use in the Amazon EBS User Guide.
  2. Run the following commands to download and install Llama.cpp.
    cd /opt/slm
    
    git clone -b b4942 \
    https://github.com/ggerganov/llama.cpp.git
    
    cd llama.cpp
    
    cmake -B build -DGGML_CUDA=ON
    
    cmake --build build --config Release -j$(nproc)
    
    conda install python=3.12
    
    pip install -r requirements.txt
    
    pip install nvitop

4. Download and convert the SLM model

To run the SLM efficiently with Llama.cpp, you need to convert the model format to GGUF (GPT-Generated Unified Format). This conversion optimizes the model for better performance and memory usage on edge deployments with limited resources. GGUF is specifically designed to work with Llama.cpp’s inference engine.The following instructions show how to download SmolLM2 1.7B and convert it to the GGUF format:

mkdir /opt/slm/models
cd /opt/slm/models

git lfs install
git clone https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct

cd /opt/slm/llama.cpp

python3 convert_hf_to_gguf.py --outtype f16 \
--outfile /opt/slm/llama.cpp/models/SmolLM2-1.7B-Instruct-f16.gguf \
/opt/slm/models/SmolLM2-1.7B-Instruct/

echo 'export PATH=/opt/slm/llama.cpp/build/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/opt/slm/llama.cpp/build/bin:$LD_LIBRARY_PATH' \
>> ~/.bashrc

source ~/.bashrc

You can also download other publicly available models from Hugging Face as needed, following the same conversion process.

SLM operation and optimization

The deployment of SLMs through Llama.cpp provides operational flexibility through a significant range of environment customization options, allowing you to tailor model behavior to your specific use cases. With Llama.cpp, you can select a range of parameters that can be used to optimize the use of system resources and model operation. This enables models to efficiently use the available resources without consuming unneeded resources or negatively impacting their operation. The following parameters are commonly supported when running Llama.cpp to provide control over how the model runs.

  • -ngl N, --n-gpu-layers N: When compiled with GPU support, this option allows you to offload some layers to the GPU for computation. This generally results in increased performance.
  • -t N, --threads N: Sets the number of threads to use during generation. For optimal performance, it is recommended to set this value to the number of physical CPU cores that your system has.
  • -n N, --n-predict N: Sets the number of tokens to predict when generating text. Adjusting this value can influence the length of the generated text.
  • -sm, --split-mode: Specifies how to split the model across multiple GPUs when running in a multi-GPU environment. Consider testing the ‘row’ splitting mode as it may provide better performance in some scenarios compared to the default layer-based splitting.
  • --temp N: Temperature is a parameter that provides control over an SLM’s randomness in terms of its outputs. Changing the value from the default of 0.8 changes the distribution of the model’s predictions. Lower values sharpen and deterministically enhance the model’s output, preferring high-probability phrases. On the other hand, a higher temperature fosters more inventiveness and unpredictability, allowing for a wider range of diverse responses. (default: 0.8).
  • -s SEED, --seed SEED: Provides a method to control the randomness of the SLM’s response. Setting a specific seed value produces consistent responses across multiple runs, while using the default value (-1) generates varied responses. (default: -1, -1 = random seed).
  • -c, --ctx-size N: Context size is defined as the number of tokens an FM can process as one prompt (in tokens) into the model. This value reserves memory in the host for the maximum size context length. Reducing the context size can reduce the amount of RAM needed to load and run a model. Models with larger context sizes (>50k) consume more RAM, and in some models, a larger context size can impact accuracy. For example, with Phi-3, it’s recommended to reduce the context size to 8k or 16k. The command to achieve this is –ctx-size XXXX, where XXXX is the context size.

This section demonstrates how to optimize SLM performance for specific use cases using Llama.cpp. We’ll cover two common scenarios: chatbot interactions and text summarization.

Chatbot Use Case Example

Token Size Requirements

For chatbot applications, typical token size requirements include input sizes ranging from 50-150 tokens, which support user questions up to a couple of sentences, and output sizes of approximately 100-300 tokens, allowing the model to provide detailed but concise responses.

Sample Command

./build/bin/llama-cli -m ./models/SmolLM2-1.7B-Instruct-f16.gguf \
-ngl 99 -n 512 --ctx-size 8192 -sm row --temp 0 --single-turn \
-sys "You are a helpful assistant" -p "Hello"

Figure 3: Chatbot example

Command Explanation

  • -m ./models/SmolLM2-1.7B-Instruct-f16.gguf: Specifies the model file to use
  • -ngl 99: Allocates GPU layers for optimal performance
  • -n 512: Sets maximum output tokens to 512, sufficient for the 100-300 tokens typically needed
  • --ctx-size 8192: Defines context window size, allowing for complex conversation history
  • -sm row: Splits the rows across GPUs
  • --temp 0: Sets the temperature to zero to be less creative
  • --single-turn: Optimizes for single-response interactions
  • -sys "You are a helpful assistant": Sets the system prompt to define assistant behavior
  • -p "Hello": Provides the user input prompt

Text summarization example

This command line shows SmolLM2-1.7B running to support a summarization activity.

PROMPT_TEXT="Summarize the following text: Amazon DynamoDB is a serverless, 
NoSQL database service that allows you to develop modern applications 
at any scale. As a serverless database, you only pay for what you use 
and DynamoDB scales to zero, has no cold starts, no version upgrades, 
no maintenance windows, no patching, and no downtime maintenance. 
DynamoDB offers a broad set of security controls and compliance 
standards. For globally distributed applications, DynamoDB global 
tables is a multi-Region, multi-active database with a 99.999% 
availability SLA and increased resilience. DynamoDB reliability is 
supported with managed backups, point-in-time recovery, and more. 
With DynamoDB streams, you can build serverless event-driven applications."

./build/bin/llama-cli -m ./models/SmolLM2-1.7B-Instruct-f16.gguf \
-ngl 99 -n 512 --ctx-size 8192 -sm row --single-turn \
-sys "You are a technical writer" \
--prompt "$PROMPT_TEXT"

Figure 4: Summarization example

Cleaning up

To avoid ongoing charges, take these steps to delete the resources you created by following this post, if they are no longer needed.

  • Terminate your EC2 instance to avoid unnecessary charges. Furthermore, verify that the 300 GiB EBS volume you attached is properly deleted by checking the Volumes section under Elastic Block Store and manually delete any remaining volumes by choosing them and choosing Actions > Delete volume.

Conclusion

This post took you through the steps of deploying SLMs into AWS on-premises or edge environments to address local data processing needs. The post first discussed business benefits of SLMs, including faster inference time, reduced operational costs, and improved model outcomes. SLMs launched using Llama.cpp and optimized for specific use cases can effectively deliver user services from the edge in a scalable manner. The optimization parameters described in this post provide multiple ways to configure these models for different deployment use cases. You can follow the deployment steps and techniques in this blog post to implement generative AI capabilities that align with your specific data residency, latency, or InfoSec compliance needs while operating efficiently within the resource constraints of edge environments. Visit the following pages to learn more about AWS Local Zones and AWS Outposts.

PostmarketOS 25.06: “the one with systemd”

Post Syndicated from jzb original https://lwn.net/Articles/1026531/

The postmarketOS project,
which creates a Linux distribution for mobile devices, announced
it was working on adding a version with systemd last March. That day
has arrived with the announcement
of version 25.06
:

We considered supporting an upgrade from OpenRC to systemd in our
upgrade script, but then decided against it as such an upgrade path
might introduce its own bugs and we would rather spend the time
improving other parts of postmarketOS. So for this one-time scenario
we ask you to please reinstall postmarketOS to get from OpenRC to
systemd. Thank you for your understanding!

[$] GNOME deepens systemd dependencies

Post Syndicated from jzb original https://lwn.net/Articles/1025560/

Adrian Vovk, a GNOME contributor and member of its release
team
, recently announced
in a blog post that GNOME would be adding new dependencies on systemd, and soon. The idea is to shed
GNOME’s homegrown service manager in favor of using systemd, and to
improve GNOME’s ability to run concurrent user sessions. However, the
move is also going to throw a spanner in the works for the BSDs and
Linux distributions without systemd when the changes take effect in
the GNOME 49 release that is set for September.

Linux Media Summit 2025 recap (Collabora blog)

Post Syndicated from jake original https://lwn.net/Articles/1026528/

The Collabora blog has a summary,
written by Nicolas Dufresne, about the Linux
Media Summit
held on May 13 in Nice, France. It was co-located with
the Embedded Recipes
conference and had sessions on stateless video encoders, camera support,
staging drivers, memory accounting, and a multi-committer model for the
media subsystem.
Our largest Media Summit to date brought together around 20 engaged participants. Engagement was strong, marked by thoughtful questions and lively discussions.

Security updates for Monday

Post Syndicated from jake original https://lwn.net/Articles/1026498/

Security updates have been issued by AlmaLinux (libblockdev and open-vm-tools), Debian (debian-security-support, gdk-pixbuf, konsole, and node-send), Fedora (apache-commons-beanutils, chromium, clamav, dotnet9.0, libblockdev, mediawiki, mingw-python-setuptools, pam, perl-File-Find-Rule, python-pycares, python-setuptools, spdlog, udisks2, and xorg-x11-server-Xwayland), Mageia (chromium-browser-stable), Oracle (apache-commons-beanutils, container-tools:ol8, gimp:2.8, idm:DL1, perl-FCGI:0.78, and postgresql), Red Hat (container-tools:rhel8, delve, git-lfs, go-toolset:rhel8, grafana, kernel, mod_auth_openidc, and spice-client-win), SUSE (apache-commons-beanutils, apache2-mod_security2, distribution, gstreamer-plugins-good, icu, ignition, perl, python310, python311, python312, and python39), and Ubuntu (apache-log4j1.2 and botan).

Largest DDoS Attack to Date

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2025/06/largest-ddos-attack-to-date.html

It was a recently unimaginable 7.3 Tbps:

The vast majority of the attack was delivered in the form of User Datagram Protocol packets. Legitimate UDP-based transmissions are used in especially time-sensitive communications, such as those for video playback, gaming applications, and DNS lookups. It speeds up communications by not formally establishing a connection before data is transferred. Unlike the more common Transmission Control Protocol, UDP doesn’t wait for a connection between two computers to be established through a handshake and doesn’t check whether data is properly received by the other party. Instead, it immediately sends data from one machine to another.

UDP flood attacks send extremely high volumes of packets to random or specific ports on the target IP. Such floods can saturate the target’s Internet link or overwhelm internal resources with more packets than they can handle.

Since UDP doesn’t require a handshake, attackers can use it to flood a targeted server with torrents of traffic without first obtaining the server’s permission to begin the transmission. UDP floods typically send large numbers of datagrams to multiple ports on the target system. The target system, in turn, must send an equal number of data packets back to indicate the ports aren’t reachable. Eventually, the target system buckles under the strain, resulting in legitimate traffic being denied.

Young creators on the move at Coolest Projects Belgium 2025

Post Syndicated from Nick Crofts original https://www.raspberrypi.org/blog/young-creators-on-the-move-at-coolest-projects-belgium-2025/

Children celebrating the 10th anniversary of Coolest Projects Belgium.

This year marked the 10th anniversary of Coolest Projects Belgium. The meticulously organised event was held in April by our partner CoderDojo Belgium, at Technopolis in Mechelen. Themed ‘On the move’, the event invited young creators to interpret movement however they liked – which they did in an impressive number of ways, creating projects ranging from mobile robots and Scratch animations to AI tools, health tech devices, and a musical drink maker.

With 52 inspiring creations showcased by 71 young people, there were too many awesome projects to list individually in this blog post. Here are just a few of our highlights from a day filled with big ideas and brilliant builds.

Photo of a Raspberry Pi Pico W.

Rune | IINTS (Insulin Is Not the Solution)

Rune, who has type 1 diabetes, built his own open-source insulin pump powered by Raspberry Pi Pico W and featuring a custom motor-controlled delivery system designed in Autodesk Fusion. Rune’s pump calculates insulin doses based on carbohydrate amounts entered – all with the goal of empowering people, raising awareness, and making medical technology more accessible.

Rune enjoying themselves during the event.

Amir | AmirAI 

Amir might only be 10, but he is already experimenting with chatbots and AI in creative and playful ways. His self-coded AI assistant could respond live to visitors’ prompts, producing jokes and answers to questions. Amir’s project was a great demonstration of how accessible complex technologies can be when you give young people space to explore them.

A project created by Jules named Operatie Mocktail.

Jules | Operatie Mocktail

This Arduino-powered machine blends mocktails based on your music choices. Pick a song, and the machine mixes a custom drink to match the song’s mood. It is a joyful combination of engineering, flavour science, and artistic flair. Jules described it best: “I want to create a unique drinking experience that connects taste and music in a surprising way.” We think it’s just right!

Mona after attending Coolest Projects.

Mona | On the Move

Mona’s project is a reimagination of Michael Rosen’s poem On the Move created in Scratch, featuring animation, sound, and voice-over. It is a wonderful example of how digital storytelling can give new life to spoken word, and how creative coding platforms like Scratch provide space for emotion and expression.

Digital making: more than just a skill

Beyond these projects, the showcase included creations such as autonomous robots, arcade games, imaginative interface devices, and even a computer-controlled magic wand factory made of Lego bricks. Whether it was a creator’s very first Scratch project or a hand-built automaton, the range of work on display showed that coding and digital making are not just skills – they’re tools for self-expression, exploration, and change.

We would like to say a massive thank you to CoderDojo Belgium for hosting such an incredible event, and to the young creators, families, volunteers, and judges who made it such a success.

We are already looking forward to seeing what participants will create next!

The post Young creators on the move at Coolest Projects Belgium 2025 appeared first on Raspberry Pi Foundation.

Двойната революция на тоталната власт и свободата

Post Syndicated from Ма Дзиен original https://www.toest.bg/dvoynata-revolyutsiya-na-totalnata-vlast-i-svobodata/

Двойната революция на тоталната власт и свободата

Вторият текст на Ма Дзиен в поредицата ни „Китай отвътре“ (след предговора на последния му засега роман „Китайска мечта“) е статия, публикувана в сайта „Китайска пролет“ на 16 май 2025 г., малко преди 36-тата годишнина от насилственото потушаване на студентските протести на площад „Тиенанмън“ в нощта срещу 4 юни 1989 г.


Майските череши вече са кървавочервени, днес се навършват цели трийсет и шест години от гладната стачка на площад „Тиенанмън“. Толкова години оттогава, а хората, лозунгите, сълзите и мълчанията на площада все още са пред очите ми… По-силни от тях обаче са едни въпроси, които си стоят в мен открай време: Защо ни беше революция? Какво се промени след нея? По-свободни ли станахме след промените?

Ето защо искам да поговоря по темата „Двойната революция на тоталната власт и свободата“, която звучи малко парадоксално, но всъщност добре показва колко сложна е китайската революционна традиция и какви са реалните затруднения на нашата епоха.

Думата „революция“ произхожда от левицата. Тя първо създава революционна литература, след това върви напред в синхрон с идеала за цивилизовано общество. В Китай т.нар. революция дълго време е синоним на „прогрес“ и „правда“. От събарянето на имперската система до основаването на народната република – всички исторически преломи сме свикнали да обозначаваме с думата „революция“. След победата в Гражданската война ръководителите на Китайската комунистическа партия установяват социализъм в страната. Въпреки това идват Големият скок, Културната революция и други кампании, станали възможни заради политическата структура с висока концентрация на власт и култ към личността, и довеждат до тежки обществени сътресения и тотално незачитане на човешките права. 

И ето го тук въпроса: ако една политическа власт нарича сама себе си „революционна“, а вече е управлявала над 70 години,

ако „революцията“ се е превърнала в стабилна система и в оправдание за потисничество, как да продължим да използваме тази дума? 

Студентите на площад „Тиенанмън“ през 1989 г. издигаха лозунгите „Долу корупцията!“, „Долу номенклатурата!“, „Свобода на словото!“, но не искаха сваляне на комунистическата диктатура и установяване на многопартийна система. Те бяха възпитани от същата тази политическа власт, затова искаха реформи, не революция. Историята обаче им наложи цената на революцията.

Студентското движение през 1989 г. всъщност беше възможно най-умереният опит за революция. Никой не подпали седалището на правителството в Джуннанхай, аз седях на първия ред сред гладуващите с тяхната петиция за демократизация на Китай. Студентите не завзеха радиото, нямаше изблици на насилие, магазините на „Сидан“ и „Уанфудзин“ останаха с непокътнати витрини. Всички само седяха, гладуваха, скандираха лозунги, влюбваха се, непрекъснато създаваха нови организации и молеха за диалог с правителството.

Но точно едно такова мирно студентско движение беше потушено по най-кървав начин от революционните лидери. Много от стачкуващите тогава студенти и до днес са още в затвора или са смълчани някъде в чужбина, нежелаещи да се връщат към далечните си спомени. Сещам се за една майска утрин на „Тиенанмън“, малко преди съмване, градът още спеше, една студентка със сламена шапка обърна поглед към обектива ми, устните ѝ бяха напукани, погледът ѝ блуждаеше. Тя гладуваше вече пети ден. Не каза нищо, не държеше някакъв лозунг, но мълчанието ѝ беше по-могъщо от който и да е призив. Къде е обаче тя сега? Дали не е нейна дъщеря онази днешна студентка, която протестира с празен лист в ръка? Някои от стачкувалите пък вече са покойници, например Лиу Сяо-бо, Ян Тиен-шуей, Ли Хун…

След като „революцията“ е превърната в управленска логика, значи Комунистическата партия никога не се е откъсвала от нея. 

Постоянно обновяват „враговете“ си: земевладелци, десничари, капиталисти, ревизионисти, цветни революционери, религиозни мисионери, фалунгунци, поети и писатели с прекомерна политическа ангажираност, независими художници, даже преподаватели и улични продавачи. Целия свят ли ще залеят тези революционни талази? Не се знае. Партията обаче вярва в световната революция. В своята книга „Произходът на тоталитаризма“ политическата философка Хана Аренд посочва, че тоталитарната власт използва идеологически контрол, държавен терор и концентрация на власт, за да заличи индивидуалната свобода и разнообразие. Тя смята, че революциите биха могли да се хлъзнат към тоталитаризъм, особено в ситуации на липсващо равновесие между власт и правосъдие.

Благодарение на реформите след „Тиенанмън“ Китай се внедри в икономическата система на свободния капитализъм и много скоро овладя производствените вериги на световната индустрия. Същевременно революционността на политическата власт си остана, само смениха едно-две изречения от клетвата за приемане в партията. И така, Китай днес е една богата тоталитарна държава – тъкмо това е двойната революция на тоталната власт и свободата. На повърхността страната е завършила икономическия преход, но в политиката тоталитарното управление е даже по-организирано, по-завоалирано и по-ефективно, отколкото по времето на Мао. 

Преди 36 години на същия площад студентите очакваха посещението на Горбачов, надяваха се, че то ще привлече международното внимание към протестите. Днес Китай и Русия излизат със съвместни декларации, че заедно ще поведат света в нова посока на политическо управление. Възнамеряват да изградят съюз на тоталитарните страни, който да се опълчи на демократичните. Това е поредната гавра с паметта на загиналите на „Тиенанмън“.

Често казваме, че китайската революция разрушава първо традиционната семейна култура. Като се започне с „партията определя браковете“ от ранните години в Йенан и се стигне до „синът да донася за баща си, жената да критикува мъжа си“ по времето на Културната революция, всичко това води до разпад на семейния морал. С оглед на икономическото развитие след инцидента на „Тиенанмън“ Комунистическата партия насърчава „възстановяването на родовете“. Тогава богатите се завръщат към традициите и вдигат храмове на предците си, средната класа се запалва по странознанието, семейните традиции и частното образование, а бедните, които не могат да си позволят жилище и да си намерят работа, остават без дом, без семейство и без бъдеще. 

Това е епоха на сговор между традиционни ценности и тоталитаризъм, епоха, в която хората нямат друг избор, освен да бъдат превърнати в послушни консуматори. 

Свободата вече не е необходима ценност, а е заместена от залъгалката „добър живот“. Това важи за всички: за просветените умове, които се завират с философска книга в Дали в провинция Юннан, за двойките пътешественици, които само се имат за свободни, за онлайн любовниците… Разбира се, властта все така насърчава частното предприемачество, понеже се нуждае от семейството като основа, която да поддържа вътрешната и международната икономика. Не че Комунистическата партия го иска, това са просто някои разхлабени мерки, които съпътстват икономическото развитие. И които управляващите по всяко време могат да отменят.

В момента ставаме свидетели на новата идеология „китаизъм“. „Новата комунистическа партия“ на второто поколение червени си е наметнала мантията на „традиционната култура“, третира народа като поданици, обожествява държавата и овечностява властта. Те казват: „Народът трябва да има вяра, дисциплина и култура.“ Само че тяхната „култура“ е една естетика, която е комбинация от революция и тоталитаризъм. От киното и телевизията до религията – всичко е промито стотици пъти и така е вкарано в епигенетичния код на хората. Никой да не се надява, че потомците на чаоянските лели, прочули се с доносите си срещу знаменитости с непристойно поведение, ще вдигат бели листи.

Комунистическата партия не може да бъде заличена отведнъж, тя ще си намери пространство да съществува във всяка нова обстановка. Сломените демокрации ще трябва да се изправят срещу предизвикателството на китаизма – най-голямото предизвикателство от фашизма насам. Както терористите си намятат покривалото на исляма, така и „новата комунистическа партия“ вади от сандъка на китайската традиция атрибутите на конфуцианството и превръща враждебните отношения между партия и народ в отношения между господари и роби, препречвайки пътя към развитието на демокрацията и човешките права в Китай. Отгоре на това те разпръскват из целия свят омразата към свободата. Също както нацистите заместват универсалните човешки права с „немския дух“, днешният комунистически тоталитаризъм прокарва своя „социализъм с китайски специфики за новата епоха“, който е предизвикателство за универсалните демократични ценности не само в Китай, а в целия цивилизован свят.

Остава ни само да вярваме, че бъдещето на Китай зависи не от китайските власти, а от пробуждащия се поколение след поколение народ. 

Постоянната революция не е вътрешнокитайска работа, а засяга въпроса за революционизирането на целия свят. Тоталитарната система може да маскира своята същност на затвор посредством магистрали, небостъргачи, 5G мрежи, роботи и соларни панели, но ако в същото време тя не допуска независими медии, справедливи съдебни процеси и свободно събиране, нейното единствено средство за поддържане на реда остава страхът. А преодоляването на страха зависи от подхранването на свободната воля на всеки отделен човек. 

Свободата не е абстрактно понятие, тя е избор, от който човек така и не се отказва въпреки многократните провали. Свободата е огледалото, което отразява чудовищния лик на тоталитаризма. Тогава революцията вече няма да се задвижва от омраза, а ще прекъсва съществуването на омразата. В „Отвореното общество и неговите врагове“ Карл Попър настоява, че обществата трябва да вървят към прогрес чрез постепенни реформи, а не чрез насилствени революции. Той предупреждава, че революциите, които гонят утопии, често водят до диктатури, и приканва към установяването на отворени, демократични обществени структури, способни да предотвратят злоупотребата с власт.

След като революцията в името на човешкото достойнство приключи, тя трябва да се самоубие, в противен случай свободата рано или късно отново ще бъде взета на мушка.


Съставител на поредицата „Китай отвътре“ и преводач на всички текстове в нея е Стефан Русинов.

Възстановяване на данък от дивиденти изплатени в Германия

Post Syndicated from Боян Юруков original https://yurukov.net/blog/2025/danak-dividenti/

Тук ще опиша нещо привидно нишово, но за което доста хора проявиха интерес – връщане на данъци платени в Германия към дивиденти, ако живеете в България. Всъщност, тъй като все повече хора гледат да инвестират в нещо различно от имоти, такива теми ще излизат все повече. Този тип текстове ми се превърнаха малко в серия „как да“ за неща, които ми е отнело време да проуча и направя, та затова ги споделям така. Накрая ще пусна линкове към предишните статии. Първо обаче малко детайли и условности.

Achtung

Това, което ще опиша не е съвет за инвестиция или данъчно законодателство. Описвам само личен опит в конкретен, макар и предполагам най-масов случай. Не съм юрист или счетоводител и съм проучил добре спецификите отнасящи се мен и по-простите казуси. Ако сте инвестирали в специализирани инструменти, ако не ги притежавате и контролирате в лично качество (например, ако сте ги заели на някого да short-ва), ако се занимавате с професионално търгуване, ако сте данъчно задължен в Германия и други юристикции по един или друг начин и най-вече ако имате съмнения за каквото и да е, най-добре е да се обърнете към инвестиционния ви посредник и данъчен консултант специализиращ в международно данъчно право. За съжаление, не мога да ви препоръчам такъв, защото не съм използвал. Предвид обаче колко българи се прибират в България и/или инвестират зад граница, такива има премного.

Следното може да е полезно за хора, които:

  1. инвестират с дългосрочна визия в акции изплащащи дивиденти на борси в Германия като Eurex
  2. пребивават постоянно в България с приходи и преобладаващ интерес в страната, т.е. местно лице за България
  3. не са частично или изцяло данъчно задължени в Германия – например работа от разстояние директно за немска компания

Ако не сте сигурни за което и да е от тези неща, консултирайте се с НАП и счетоводител. Описаното от мен цели да даде първи стъпки в един възможен процес на връщане на тези данъци без допълнителни разходи. Убеден съм, че има компании, които ще свършат всичко от ваше име, макар да не знам колко би си струвало предвид процентът дивиденти в повечето европейски компании.

Описаното долу е мой прочит и опит към началото на 2025-та и е възможно ситуацията да се промени във всеки момент заради промяна на закони в която и да е от двете държави, международни спогодби или други регламенти на европейско ниво. Отделно всички цитирани правила имат нюанси и изключения, които може да важат за вас. Затова винаги проверявайте.

Детайли за закона

Ако сте местно лице в България, т.е. сте данъчно задължен за основния си доход тук, едно голямо предимство е, че доходи от финансови инструменти търгувани на регулирани борси в Европа не се облагат данъчно. Това може да е разликата между цената на купуване на акции в Eurex и на каква сте ги продали месеци или години по-късно. Изключение прави „професионалната търговия“, която се облага. Има много спорове какво е „професионалнo“ – аз предпочитам разграничението между time in the market vs. timing the market. Ако обаче инвестирате, т.е. използвате свободен капитал да придобиете финансови инструменти с дългосрочна цел, не следва да бъдете обложени.

Тъй като най-често търговията се извършва на борси извън България, трябва да се внимава в коя юрисдикция какви права важат. Мога да говоря за Германия, където следва да се уточни на посредника, че лицето е данъчно задължено в България и не следва да облага с капиталов данък. Тук важи т.н. спогодба за избягване на двойно данъчно облагане или СИДДО. Тази с Германия ще намерите на сайта на НАП. Има протокол за промяна към края на 2024-та, но той засяга най-вече юридически лица и сезонни работници.

При дивидентите нещата са различни, защото в СИДДО е предвидено данък да се удържа при първоизточника. Това в Германия и значи 25% данък +1.37% soli (солидарен данък за развитие на източна Германия). Общо 26.37%. Ако постоянното ви пребиваване в Германия и сте данъчно задължен там, първите 1000 евро (или 2000 евро на семейство) от лихви, дивиденти и капиталови печалби са освободени от този данък. Ако сте в България го няма това, но СИДДО казва, че данъкът трябва да е 15%. Разликата от 13.37% може да се възстанови с данъчна декларация.

В България приходите от дивиденти в чужбина следва да се декларират като всеки друг доход. Отбелязва се обаче, че са платени 26% данък в Германия и тъй като е по-голям от този в България, не се доплаща нищо. Ако и като ви върнат надплатения данък от Германия, това плащане не следва да се декларира, тъй като възстановени данъци не се облагат. Още повече, че дори след възстановяването дивидентите са обложени там с по-висока ставка от тази в България. Независимо дали имате дивиденти или капиталови печалби обаче, следва да декларирате с какви финансови инструменти разполагате като акции, EFT, EFC и прочие.

Процесът

Трябват ви следните неща. Ще опиша защо и как се получават.

  • документи за изплатени дивиденти и прихванатия данък за всеки инструмент (акции, eft) поотделно
  • документ за местно лице в България за всяка от годините, за които ще търсите възстановяване
  • данъчен номер в Германия
  • достъп до Elster
  • сметка в евро

Винаги получавате документ за изплащането на дивидентите. В края на годината би трябвало да получавате и документ за данъчни цели. Най-добре е да използвате него. Ако го нямате, попитайте посредникът, защото е длъжен да го издаде за данъци платени в Германия. Аз прикачвам и него, и платежните.

Документ за местно лице се издава безплатно от НАП. Тук има инструкции. Трябва ви ПИК, влизате в портала на НАП и търсите „удостоверение за местно лице“. Попълвате формуляра за всяка година, за която ви трябва, подавате и до няколко дни имате електронно подписан документ. Хубавото е, че е многоезичен и не се налага да го превеждате.

Ако нямате данъчен номер в Германия, трябва да си извадите за тази цел. Безплатно е, но става на хартия, т.е. трябва да изпратите писмо. Ако сте живеели и работили в Германия, значи имате, защото е постоянен за вас. Бяха ми обяснили, че ги деактивират като се изнесе човек, но явно не е вярно. Може да прочетете подробно какво значи и как се проверява, ако не сте сигурни дали имате. Данъчен номер не означава, че се задължавате да плащате данък там, а че влизате в системата им с личните си данни и най-важното – физически адрес за комуникация в България. Формулярът за регистрация ще намерите тук и тук (трябва да търсите). Трябва да изпратите копие от двете страни на личната си карта и да посочите към коя данъчна служба следва да бъдете. Ако не сте сигурни, свържете се с тях да питате, както и адресът, на който се изпраща. Аз съм към Франкфурт, защото съм работил там. Мисля, че може да пратите директно на Bundeszentralamt für Steuern и те да се оправят. Питайте най-добре обаче чатбот-а. Казаха, че отнемало 4 седмици да го изпратят.

Второто нещо, което ви трябва е достъп до Elster. Това е тяхната система за попълване на данъчни декларации като тази на НАП. Може да започнете регистрацията без немски данъчен номер, но за да го завършите ще ви трябва определено. Ето стъпките:

  1. Започвате регистрацията като частно лице. Ако имате данъчен номер го въвеждате. Ако нямате ще ви трябва после. Първо иска достъп до BOP (authentifizierten Datenkommunikation über das BZStOnline-Portal). Въведете адреса си в България и email адреса си с другите данни.
  2. Получавате мейл с таен код (BZSt-Geheimnis)
  3. Чакате физическо писмо с номер (BZSt-Nummer)
  4. Като пристигне отваряте портала пак на този адрес и ги въвеждате. Така имате достъп до BOP с потвърден домашен адрес и следва активация на регистрацията в Elster. Довършвате формулярите с личните си данни. Тук вече ви трябва данъчния номер, но се надяваме, че е пристигнал междувременно
  5. Получавате мейл с идентификатор за активация (Аktivierungs-ID) и потребителското име, което сте избрали
  6. Чакате физическо писмо с код за активация (Aktivierungs-Code). Казват, че ако не го получите до 14 дни да им пишете, а активацията следва да стане в рамките на три месеца
  7. Като ги получите влизате в Elster и активирате акаунта.
  8. За да влизате най-лесно е да си свалите ElsterSecure приложението и да го активирате. С него при всяко влизане сканирате QR код. Работи като всеки Authenticator за 2FA.

Не на последно място ви трябва сметка в евро, където да се преведат парите. Тъй като може да отнеме значително време обработката, както описвам по-долу, изберете някоя, която знаете, че няма да изчезне просто така. Имам предвид конкретно необанките, където iban-ите се случва да се променят. Ако изчакате 1-ви януари 2026-та, ще може да дадете и българската си сметка. Предполагам, че има начин когато обработят декларацията да се даде нова сметка, но не съм го пробвал.

Когато имате всичко това, може да подавате декларации. Трябва да намерите формуляра „Antrag auf Erstattung bzw. Freistellung von Kapitalerträgen nach § 50c bzw. § 44a Abs. 9 Einkommensteuergesetz“ и да го попълните. В началото иска лични данни, детайли дали имате пълномощник за попълването на декларацията (оставате празно) и най-вече дали притежавате и имате права над финансовите инструменти към момента на изплащане на дивидентите. Формулярът е на немски, но лесно се превежда. Някои от полетата са малко трудни за разбиране, но се въртят около тези концепции. Не бих ги изброил или дал съвет как да се попълват, защото са строго индивидуални. Аз въвеждах почти само задължителните полета. Само ще посоча, че искате да въведете Erstattung – изплащане на възстановените пари и Erstantrag когато ви е първо въвеждане, а не корекция на стар формуляр.

После един по един попълвате всеки ISIN, сума и детайл. При дивидентите в регулирани борси избирате Dividenden aus börsennotierten Aktien. Трябва сами да сметнете колко пари следва да ви върнат – разликата между 15% на брутото и каквото е платил посредника от ваше име. Искат да уточните и какъв документ ще прикачите. Най-добре е да е документ от края на годината за данъчни цели. За едни от акциите нямах и отбелязах Sonstige прикачайки писмото с преведените пари и отбелязаните данъци в него. Да видим дали ще стане.

Подавате декларацията и чакате да я обработят или да се свържат с вас.

Важни детайли

Хубавото е, че може с една декларация да искате връщане на данъци за множество акции и дивиденти в различни години. През ноември въведох за акциите за три години подред. Някъде бях чел, че можело до 5 години назад, но това беше в стария им портал и не знам дали важи още. Не пречи да впишете и стари дивиденти, пък ако стане – ще изплатят одобреното.

Миналата седмица въведох искане за връщане за 2024 и 2025. За тази година ми изплатиха всички дивиденти, които чакам до края на май. Взех удостоверение за местно лице от НАП с по-късна дата. Тук важното е дали към месеца на изплащане съм бил местно лице. Проблемът е, че нямам писмо за данъчни цели, но пуснах всичко, което посредникът ми даде за самите дивиденти, където ясно се вижда какви данъци за внесли. Също извадка от кеш сметката към депо-то, че парите са влезли.

Важна бележка е, че може нещо аз грешно да правя, но днес като търсих да направя снимки на оригиналния формуляр в Elster, не виждам възможност да подавам вече. Имам съмнение, че може да се подадат само два формуляра наведнъж. Аз имам един чакащ от ноември и един сега. Затова определено групирайте търсените си пари в един формуляр.

Както писах в Linkedin, попитах ги през май какво става с първия формуляр. По принцип бях чел, че отнема три месеца и реших, че заради празниците са се забавили, но шест месеца си бяха доста. Отговориха, че имат натрупана работа и се очаквало поне 24 месеца да се забавят нещата. Имат и официално съобщение по въпроса. Затова трябва да се въоръжите с търпение.

Друго важно нещо е, че както забелязахте има поне няколко физически писма. Международната поща през Български пощи е ужасно бавна – възможно е да отнеме седмица, а може три в зависимост кога сте пуснали писмото. Изпращането на документи с куриер пък е абсурдно скъпо и безсмислено за тези цели. Налага ми се през месец да пускам писма и имам наблюдения за ефективността им като следя пратките. Изглежда имат по един или два полета на седмица. Винаги търсете проследяващ номер. Когато получавате писмата, проверявайте в местната пощенска станция, защото се случва да не могат да разкодират адреса на латиница. В моя случай кодът за активация си стоя с цял наръч писма за мен в пощенския клон шест седмици докато не отидох да попитам. Оказа се, че за цял район на София отговаря един единствен дядо да разнася писмата, та не го виня особено.

Хубавото е, че регистрацията се прави веднъж и след това останалото е дигитално. Документи свързани с данъчния си номер обаче ще получавате единствено на домашния си адрес заради лични данни и прочие.

Допълнение и поправки

Всичко описано до тук следва да служи като отправна точка да търсите още информация. Пиша го с опита и разбирането си към началото на 2025-та. Ако някой намери грешки, има полезни допълнения или уточнения, моля пишете в коментарите и ще ги включа. Може да споделите и опита си, за да видим дали и кога ще обработят документите или с какви трудности сте се сблъскали. Моля избягвайте финансови или инвестиционни съвети, както и реклама на посредници – не е това темата тук.

Не на последно място, някой пита по-рано струва ли си всичко това. Наистина, ако имате късмет дивидентите ще са 2-3% за европейски компании, а за EFT-та така или иначе е по-добре accumulating. Ако сумата на тези 13.37% от 2-3% е голяма, най-вероятно има смисъл да си вземете счетоводител така или иначе. Предвид обаче, че няма допълнителни разходи, а „само“ отнема време, както и факта, че стигнахте до тук в текста, може би има смисъл все пак. Аз поне се занимавах и го направих.

Може да прочетете и аналогичните ми текстове за поръчването на ЕЗОК online, транспондерите за тол станциите в Гърция, поръчване на ваксини от Гърция и липсващи у нас лекарства с рецепта от Германия.

The post Възстановяване на данък от дивиденти изплатени в Германия first appeared on Блогът на Юруков.

The collective thoughts of the interwebz