Instructions to use HiTZ/latxa-7b-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use HiTZ/latxa-7b-v1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="HiTZ/latxa-7b-v1")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("HiTZ/latxa-7b-v1") model = AutoModelForCausalLM.from_pretrained("HiTZ/latxa-7b-v1", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use HiTZ/latxa-7b-v1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "HiTZ/latxa-7b-v1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HiTZ/latxa-7b-v1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/HiTZ/latxa-7b-v1
- SGLang
How to use HiTZ/latxa-7b-v1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "HiTZ/latxa-7b-v1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HiTZ/latxa-7b-v1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "HiTZ/latxa-7b-v1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HiTZ/latxa-7b-v1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use HiTZ/latxa-7b-v1 with Docker Model Runner:
docker model run hf.co/HiTZ/latxa-7b-v1
| license: llama2 | |
| datasets: | |
| - HiTZ/euscrawl | |
| language: | |
| - eu | |
| - en | |
| metrics: | |
| - accuracy | |
| - f1 | |
| - perplexity | |
| pipeline_tag: text-generation | |
| # **Model Card for Latxa 7b** | |
| <p align="center"> | |
| <img src="https://github.com/hitz-zentroa/latxa/blob/b9aa705f60ee2cc03c9ed62fda82a685abb31b07/assets/latxa_round.png?raw=true" style="height: 350px;"> | |
| </p> | |
| <span style="color: red; font-weight: bold">IMPORTANT:</span> This model is outdated and made available publicly for reproducibility purposes only. Please utilize the most recent version found in [our HuggingFace collection](https://huggingface.co/collections/HiTZ/latxa-65a697e6838b3acc53677304). | |
| Latxa is a collection of foundation models specifically tuned for Basque. Based on Meta’s LLaMA 2 model family, these models were further trained with Euscrawl, a highly curated Basque corpora ([Artetxe et al., 2022](https://aclanthology.org/2022.emnlp-main.499/)). Ranging from 7 billion to 70 billion parameters, these models are currently the biggest and best-performing LLMs built for Basque. This is the 7b repository, links to other models can be found in the [Latxa Collection](https://huggingface.co/collections/HiTZ/latxa-65a697e6838b3acc53677304). | |
| Read more about Latxa in our [website](https://www.hitz.eus/en/node/340) or in [LinkedIn](https://www.linkedin.com/pulse/presenting-latxa-largest-language-model-built-basque-hitz-zentroa-63qdf)! | |
| # **Model Details** | |
| ## **Model Description** | |
| Latxa is a family of Large Language Models (LLM) based on Meta’s [LLaMA models](https://huggingface.co/meta-llama). Current LLMs exhibit incredible performance for high-resource languages such as English, but, in the case of Basque and other low-resource languages, their performance is close to a random guesser. These limitations widen the gap between high- and low-resource languages when it comes to digital development. We present Latxa to overcome these limitations and promote the development of LLM-based technology and research for the Basque language. Latxa models follow the same architecture as their original counterparts and were further trained in Euscrawl v1 ([Artetxe et al., 2022](https://aclanthology.org/2022.emnlp-main.499/)), a high-quality Basque corpora. | |
| The models are released in three sizes: 7B, 13B and 70B. | |
| * **Developed by:** HiTZ Research Center & IXA Research group (University of the Basque Country UPV/EHU) | |
| * **Model type:** Language model | |
| * **Language(s) (NLP):** en, eu | |
| * **License:** llama2 | |
| * **Parent Model:** meta-llama/Llama-2-7b | |
| * **Contact:** hitz@ehu.eus | |
| ## **Getting started** | |
| Use the code below to get started with the model. | |
| ```python | |
| from transformers import pipeline | |
| pipe = pipeline("text-generation", model=”HiTZ/latxa-7b-v1”) | |
| text = "Euskara adimen artifizialera iritsi da!" | |
| pipe(text, max_new_tokens=50, num_beams=5) | |
| >> [ | |
| { | |
| 'generated_text': 'Euskara adimen artifizialera iritsi da!\nEuskararen eta adimen artifizialaren arteko harremana aspaldikoa da,' | |
| ' baina azken urteotan aurrerapauso handiak eman dira arlo horretan' | |
| } | |
| ] | |
| ``` | |
| # **Uses** | |
| Latxa models are intended to be used with Basque data; for any other language the performance is not guaranteed. Same as the original, Latxa inherits the [LLaMA-2 License](https://ai.meta.com/llama/license/) which allows for commercial and research use. | |
| ## **Direct Use** | |
| Latxa family models are pre-trained LLMs without any task-specific or instruction fine-tuning. That is, the model can either be prompted to perform a specific task or further fine-tuned for specific use cases. | |
| ## **Out-of-Scope Use** | |
| The model was not fine-tuned to follow instructions or to work as a chat assistant, therefore, this kind of usage is not tested nor recommended. | |
| # **Bias, Risks, and Limitations** | |
| In an effort to alleviate the potentially disturbing or harmful content, Latxa has been trained on carefully selected and processed data which comes mainly from local media, national/regional newspapers, encyclopedias and blogs (see Euscrawl below). Still, the model is based on LLaMA models and can potentially carry the same bias, risk and limitations. | |
| Please see the LLaMA’s _Ethical Considerations and Limitations _for further information. | |
| # **Training Details** | |
| ## **Training Data** | |
| The models were trained on EusCrawl v1, a high-quality corpus for Basque comprising 1.72M documents, 288M words, totalling 2.1GiB of uncompressed text. EusCrawl was built using ad-hoc scrapers to extract text from 33 Basque websites with high-quality content, resulting in cleaner text compared to general-purpose approaches. | |
| See more details in the [EusCrawl](https://huggingface.co/datasets/HiTZ/euscrawl) dataset card. | |
| Additionally, 100K documents of English data randomly selected from the [Pile](https://huggingface.co/datasets/EleutherAI/pile) dataset were also included to avoid catastrophic forgetting. | |
| ## **Training Procedure** | |
| The models were trained using the GPT-Neox library on the HPC CINECA computing cluster. All the models were approximately trained with an effective batch size of 2M tokens for 1000 to 2000 steps. | |
| <table> | |
| <tr> | |
| <td>Model | |
| </td> | |
| <td>Steps | |
| </td> | |
| <td>Sequence length | |
| </td> | |
| <td>Effective Batch size | |
| </td> | |
| <td>Total tokens | |
| </td> | |
| <td>GPU hours | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Latxa 7B | |
| </td> | |
| <td><p style="text-align: right"> | |
| 2000</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 4096</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 2M tokens/step</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 4B</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 359.2h</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Latxa 13B | |
| </td> | |
| <td><p style="text-align: right"> | |
| 1000</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 4096</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 2M tokens/step</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 2B</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 468.8h</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Latxa 70B | |
| </td> | |
| <td><p style="text-align: right"> | |
| 1680</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 4096</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 2M tokens/step</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| 3.4B</p> | |
| </td> | |
| <td><p style="text-align: right"> | |
| *6475.52h</p> | |
| </td> | |
| </tr> | |
| </table> | |
| * indicates the time for the entire training process (2000 steps), however the weights of the step 1680 are shared as it is the best checkpoint according to validation loss. | |
| # **Evaluation** | |
| We evaluated the models on zero-shot and few-shot settings on generative, multiple-choice and classification tasks. We used the basque partitions of each dataset. | |
| ## **Testing Data, Factors & Metrics** | |
| ### **Testing Data** | |
| * **Belebele** ([Bandarkar et al.](https://arxiv.org/abs/2308.16884)): Belebele is a multiple-choice machine reading comprehension (MRC) dataset spanning 122 language variants. We evaluated the model in a 5-shot fashion. | |
| * Data card: [https://huggingface.co/datasets/facebook/belebele](https://huggingface.co/datasets/facebook/belebele) | |
| * **X-StoryCloze** ([Lin et al.](https://arxiv.org/abs/2112.10668)): XStoryCloze consists of the professionally translated version of the English StoryCloze dataset to 10 non-English languages. Story Cloze is a commonsense reasoning dataset which consists of choosing the correct ending to a four-sentence story. We evaluated the model in a 0-shot fashion. | |
| * Data card: [https://huggingface.co/datasets/juletxara/xstory_cloze](https://huggingface.co/datasets/juletxara/xstory_cloze) | |
| * **BasqueGLUE** ([Urbizu et al.](https://aclanthology.org/2022.lrec-1.172.pdf)): BasqueGLUE is a NLU benchmark for Basque. We evaluated the model in a 5-shot fashion on the following tasks: | |
| * Data card:[ https://huggingface.co/datasets/orai-nlp/basqueGLUE](https://huggingface.co/datasets/orai-nlp/basqueGLUE). | |
| * Tasks: | |
| * **BEC2016eu**: Sentiment analysis on tweets about the 2016 Basque elections campaign. | |
| * **VaxxStance**: Stance detection on tweets around the anti-vaccine movement. | |
| * **BTHCv2**: Topic classification of news extracts with 12 categories. | |
| * **EpecKorrefBin**: Correference detection task similar to WSC. | |
| * **QNLIeu**: Q&A NLI built from the Basque Wikipedia. | |
| * **WiCeu**: Basque Word-in-Context task. | |
| ### **Metrics** | |
| * **Accuracy**: Belebele, X-StoryCloze, EpecKorrefBin, QNLI-eu, and, WiC-eu | |
| * **Micro F1**: BEC2016-eu and BHTCv2 | |
| * **Macro F1**: VaxxStance (favor & against) | |
| ## **Results** | |
| The model was evaluated using the LM Evaluation harness library from Eleuther AI. | |
| In order to reproduce our results please follow the instructions in Latxa's [Github repository](https://github.com/hitz-zentroa/latxa?tab=readme-ov-file#evaluation). | |
| <table> | |
| <tr> | |
| <td><strong>Model</strong> | |
| </td> | |
| <td><strong>Belebele</strong> | |
| </td> | |
| <td><strong>X-StoryCloze</strong> | |
| </td> | |
| <td><strong>BEC</strong> | |
| </td> | |
| <td><strong>Vaxx</strong> | |
| </td> | |
| <td><strong>BHTC</strong> | |
| </td> | |
| <td><strong>coref</strong> | |
| </td> | |
| <td><strong>QNLI</strong> | |
| </td> | |
| <td><strong>WiC</strong> | |
| </td> | |
| <td><strong>Average</strong> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Random | |
| </td> | |
| <td>25.00 | |
| </td> | |
| <td>50.00 | |
| </td> | |
| <td>33.33 | |
| </td> | |
| <td>33.33 | |
| </td> | |
| <td>8.33 | |
| </td> | |
| <td>50.00 | |
| </td> | |
| <td>50.00 | |
| </td> | |
| <td>50.00 | |
| </td> | |
| <td>37.50 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>LLaMA 2 7B | |
| </td> | |
| <td>26.22 | |
| </td> | |
| <td>50.43 | |
| </td> | |
| <td>41.63 | |
| </td> | |
| <td>18.60 | |
| </td> | |
| <td>20.06 | |
| </td> | |
| <td>50.94 | |
| </td> | |
| <td>48.32 | |
| </td> | |
| <td>49.64 | |
| </td> | |
| <td>38.23 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>LLaMA 2 13B | |
| </td> | |
| <td>32.00 | |
| </td> | |
| <td>50.63 | |
| </td> | |
| <td>41.09 | |
| </td> | |
| <td>18.25 | |
| </td> | |
| <td>27.35 | |
| </td> | |
| <td>49.23 | |
| </td> | |
| <td>48.74 | |
| </td> | |
| <td>49.21 | |
| </td> | |
| <td>39.56 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>LLaMA 2 70B | |
| </td> | |
| <td>33.56 | |
| </td> | |
| <td>51.62 | |
| </td> | |
| <td>47.47 | |
| </td> | |
| <td>21.01 | |
| </td> | |
| <td>31.01 | |
| </td> | |
| <td>52.98 | |
| </td> | |
| <td>51.26 | |
| </td> | |
| <td>51.57 | |
| </td> | |
| <td>42.56 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>BLOOM 7B | |
| </td> | |
| <td>27.00 | |
| </td> | |
| <td>57.18 | |
| </td> | |
| <td>37.94 | |
| </td> | |
| <td>20.72 | |
| </td> | |
| <td>39.10 | |
| </td> | |
| <td>48.21 | |
| </td> | |
| <td>47.48 | |
| </td> | |
| <td>47.57 | |
| </td> | |
| <td>40.65 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>XGLM 7B | |
| </td> | |
| <td>23.88 | |
| </td> | |
| <td>57.71 | |
| </td> | |
| <td>39.94 | |
| </td> | |
| <td>21.58 | |
| </td> | |
| <td>36.73 | |
| </td> | |
| <td>50.94 | |
| </td> | |
| <td>50.42 | |
| </td> | |
| <td>49.21 | |
| </td> | |
| <td>41.30 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td><strong>Latxa 7B</strong> | |
| </td> | |
| <td>35.67 | |
| </td> | |
| <td>63.13 | |
| </td> | |
| <td>55.61 | |
| </td> | |
| <td>45.93 | |
| </td> | |
| <td>44.44 | |
| </td> | |
| <td>50.43 | |
| </td> | |
| <td>55.04 | |
| </td> | |
| <td>50.14 | |
| </td> | |
| <td>50.05 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td><strong>Latxa 13B</strong> | |
| </td> | |
| <td>53.56 | |
| </td> | |
| <td>65.85 | |
| </td> | |
| <td>53.23 | |
| </td> | |
| <td>48.66 | |
| </td> | |
| <td><strong>53.61</strong> | |
| </td> | |
| <td>62.52 | |
| </td> | |
| <td>57.14 | |
| </td> | |
| <td>54.21 | |
| </td> | |
| <td>56.10 | |
| </td> | |
| </tr> | |
| <tr> | |
| <td><strong>Latxa 70B</strong> | |
| </td> | |
| <td><strong>71.78</strong> | |
| </td> | |
| <td><strong>67.57</strong> | |
| </td> | |
| <td><strong>63.52</strong> | |
| </td> | |
| <td><strong>48.95</strong> | |
| </td> | |
| <td>49.51 | |
| </td> | |
| <td><strong>79.90</strong> | |
| </td> | |
| <td><strong>58.82</strong> | |
| </td> | |
| <td><strong>55.50</strong> | |
| </td> | |
| <td><strong>61.94</strong> | |
| </td> | |
| </tr> | |
| </table> | |
| # **Environmental Impact** | |
| Carbon emissions are estimated using the[ Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in[ Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). | |
| * **Hardware Type:** HPC Cluster, 4x A100 64Gb nodes | |
| * **Hours used:** 359.2h + 468.8h + 6475.52h = 7303.52h | |
| * **Compute cluster:** CINECA HPC | |
| * **Compute Region:** Italy | |
| * **Carbon Emitted:** 673.75kg CO<sub>2</sub> eq | |
| # **Acknowledgements** | |
| This work has been partially supported by the Basque Government (IKER-GAITU project). The models were trained on the Leonardo supercomputer at CINECA under the EuroHPC Joint Undertaking, project EHPC-EXT-2023E01-013. |