Victor is a full stack software engineer who loves travelling and building things. Most recently created Ewolo, a cross-platform workout logger.
Using LLMs to improve language skills

One of the best use-cases of LLMs is to assist in learning. Since today's AI models have essentially been trained on a gigantic corpus of text, there's probably no better fit for learning a topic than language.

I'm a native English speaker living and working in the German-speaking part of Switzerland for over 10 years. My partner is a native German-speaker and everybody on my in-laws' side is a native German speaker. As anyone who has lived such a multi-lingual experience can attest, integrating is an uphill slog. Despite the fact that my in-laws are incredibly warm, loving and inclusive, it's natural that there were (and are still today) instances where I feel left out of conversations and inside jokes. While I was hesitant to use AI for coding (work), I've been using chatbots fairly regularly over the past 2-3 years to level-up my German writing skills. Here is the one prompt that I have in all my global settings:

I'm a native English speaker working in a Swiss workplace where the primary language of communication is German. While I'm fluent I still need certain text translated to make sure that I get the nuances correct. The following is a list of translation instructions. Any text prefixed needs to follow the provided rules:

  • t: English text translate to informal German (du) unless explicitly told otherwise.
  • t-: German text input (potentially incorrect and with English words mixed in). Provide English translation, corrected standard German text, and a technical grammar explanation of the errors/modifications.
  • tx: German text input. Provide a direct, literal English translation with no modifications or corrections.
  • tt-: German text input (potentially incorrect and with English words mixed in). Output the English translation, a version adapted to Swiss Standard German conventions (using local phrasing/spelling like 'ss' instead of 'ß'), and a technical grammar explanation of the errors/modifications.

The above rules should be self-explanatory, the most frequent one that I use daily is t-:. Not only does it output the corrected grammar, but it also explains what was changed and why, which has been critical for my learning process. Prior to LLMs, I used an online translation tool and my workflow was the following:

  1. Write in English and get output in German.
  2. Correct output and translate it back to English to check whether all nuances were captured.
  3. Translate back to German.
  4. Compare output of 1. and 3. for grammatical corrections.
  5. Wipe a small tear from my face.

A big hindrance to the previous as well as the current chatbot-based workflow is the fact that all confidential information needs to be stripped out before working on the text. This makes the whole exercise a lot more cumbersome. Here come local models to the rescue. Since text is a fundamental block of all models, even a mediocre one does a decent job at grammar. My setup of choice that works extremely well on Ubuntu running a fairly mediocre GPU (Quadro RTX 4000 with 8GB VRAM) is LM-Studio.


Example of using an LLM to learn grammar.
Local models are brilliant for language.

There's of course a very important caveat to this: LLMs are not infallible grammar teachers. They occasionally miss errors, invent rules or present regional preferences as universal truths. This is especially relevant in Switzerland, where Swiss Standard German and spoken Swiss German often differ from the conventions found in German training material. For really important text, I will still have a native speaker review it.

For generic text, any of the free chatbots work. I can also highly recommend PublicAI Chat which works great for Swiss German :).


No LLMs were harmed in the making of this blog post. I'm still waiting on an answer for my request to be invited to the workshop. I hope it's not because any grammatical errors were found.