--- library_name: transformers license: apache-2.0 language: - de datasets: - devngho/culturax-mini-nonshuffled - maxidl/FineNews-unfiltered - djstrong/oscar-small - LemiSt/gutenberg_de - almanach/HALvest - wikimedia/wikipedia - D4ve-R/terra-xplain-cc-de base_model: - HuggingFaceTB/SmolLM-135M pipeline_tag: text-generation --- # Model Card for SmolLM-135M-de A german version of [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M/blob/main/README.md), trained to speak German by applying CPT for about 6 billion tokens. If you are looking for a chat model, try [this](https://huggingface.co/LemiSt/SmolLM-135M-instruct-de) adapter or the [merged version](https://huggingface.co/LemiSt/SmolLM-135M-instruct-de-merged). ## Model Details ### Model Description The base model is [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M/blob/main/README.md), which I further trained on about 6 billion German-language tokens. - **Model type:** Large Language Model (Llama architecture) - **Language(s) (NLP):** German - **License:** Apache 2.0 - **Finetuned from model:** [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M/blob/main/README.md) ## Uses I mainly made this as a small experimentation model to quickly benchmark datasets etc. - since the model is so small, I am unsure about its usefulness for any real-world scenarios. This is a base model without any chat fine tuning etc. and thus should not be used as-is. It outputs mostly correct German, which is what I tried to achieve. If you are looking for a chat model, try [this](https://huggingface.co/LemiSt/SmolLM-135M-instruct-de) adapter. ## Bias, Risks, and Limitations This is a very small model and will output blatantly wrong information. I have not done any further filtering on the source datasets, so it is possible that the model will generate lewd or otherwise inappropriate content. Use with care. I would **strongly** recommend against using this model in a production setting, at least without further fine tuning and preference optimization. ## How to Get Started with the Model Use the code below to get started with the model. ```python # adapted from the original SmolLM repo # pip install transformers from transformers import AutoModelForCausalLM, AutoTokenizer checkpoint = "LemiSt/SmolLM-135M-de" device = "cuda" # for GPU usage or "cpu" for CPU usage tokenizer = AutoTokenizer.from_pretrained(checkpoint) # for multiple GPUs install accelerate and do `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")` model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device) inputs = tokenizer.encode("Rezept für einen leckeren veganen Schokokuchen:\n", return_tensors="pt").to(device) outputs = model.generate(inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0])) ``` ## Training Details ### Training Data - [devngho/culturax-mini-nonshuffled](https://huggingface.co/datasets/devngho/culturax-mini-nonshuffled) - [maxidl/FineNews-unfiltered](https://huggingface.co/datasets/maxidl/FineNews-unfiltered) CC-NEWS-2024-05 config, de split - [djstrong/oscar-small](https://huggingface.co/datasets/djstrong/oscar-small) unshuffled_deduplicated_de config - [LemiSt/gutenberg_de](https://huggingface.co/datasets/LemiSt/gutenberg_de) - [almanach/HALvest](https://huggingface.co/datasets/almanach/HALvest) de config - [wikimedia/wikipedia](https://huggingface.co/datasets/wikimedia/wikipedia) 20231101.de config - [D4ve-R/terra-xplain-cc-de](https://huggingface.co/datasets/D4ve-R/terra-xplain-cc-de) ### Training Procedure This was trained with axolotl, using full fine tuning (no LoRA etc). I used a sequence length of 2048 with an effective batch size of 512, learning rate of 0.003 with the adamw_bnb_8bit optimizer and a cosine scheduler. Due to an error I made in calculating the token count, I accidentally trained for nearly 2 epochs, with the learning rate not reaching its proper minimum.