--- library_name: transformers base_model: Unbabel/TowerInstruct-7B-v0.2 license: apache-2.0 datasets: - Iker/InstructTranslation-EN-ES language: - en - es pipeline_tag: text-generation tags: - translation --- This is a [TowerInstruct-7B](https://huggingface.co/Unbabel/TowerInstruct-7B-v0.2) model fine-tuned for translating instructions datasets from English into Spanish. This model has GPT4 translation quality, but you can run it on your own machine for free 🎉 The model has been finetuned using ~1.500 prompts and answers from [teknium/OpenHermes-2.5](teknium/OpenHermes-2.5) translated to Spanish using GPT-4-0125-preview. The dataset is available here: https://huggingface.co/datasets/Iker/InstructTranslation-EN-ES/ This model was finetuned using [axolotl](https://github.com/OpenAccess-AI-Collective/axolotl), the training config is available here: https://huggingface.co/Iker/TowerInstruct-7B-v0.2-EN2ES/blob/main/Tower7B.yml # Demo ```python import torch from transformers import pipeline og = pipeline("text-generation", model="Unbabel/TowerInstruct-13B-v0.1", torch_dtype=torch.bfloat16, device_map=0) fn7 = pipeline("text-generation", model="Iker/TowerInstruct-7B-v0.2-EN2ES", torch_dtype=torch.bfloat16, device_map=1) fn = pipeline("text-generation", model="Iker/TowerInstruct-13B-v0.1-EN2ES", torch_dtype=torch.bfloat16, device_map=2) msg = """ Let's use Bayes' theorem again to solve this problem:\n\nLet A represent the event that the man actually has the ability to predict dice rolls with 90% accuracy, and C represent the event of predicting correctly on the first attempt.\n\nWe want to find P(A|C), the probability that the man actually has the ability given that he predicted correctly on his first attempt.\n\nBayes' theorem states that P(A|C) = P(C|A) * P(A) / P(C)\n\nFirst, let's find P(C|A): the probability of predicting correctly on the first attempt if the man actually has the ability. Since he claims 90% accuracy, this probability is 0.9.\n\nNext, let's find P(A): the probability that someone actually has the ability to predict dice rolls with 90% accuracy. We are told this is 1%, so P(A) = 0.01.\n\nNow we need to find P(C): the overall probability of predicting correctly on the first attempt. This can be calculated as the sum of probabilities for each case: P(C) = P(C|A) * P(A) + P(C|¬A) * P(¬A), where ¬A represents not having the ability and P(¬A) = 1 - P(A) = 0.99.\n\nTo find P(C|¬A), the probability of predicting correctly on the first attempt without the ability, we use the fact that there's a 1/6 chance of guessing correctly by random chance: P(C|¬A) = 1/6.\n\nSo, P(C) = (0.9)*(0.01) + (1/6)*(0.99) = 0.009 + 0.165 = 0.174.\n\nFinally, we can calculate P(A|C) using Bayes' theorem:\n\nP(A|C) = P(C|A) * P(A) / P(C) = (0.9)*(0.01) / (0.174) ≈ 0.0517.\n\nTherefore, the probability that the man actually has the ability to predict dice rolls with 90% accuracy is approximately 5.17%. """.strip() messages = [ {"role": "user", "content": f"Translate the following text from English into Spanish.\n{msg}\nSpanish:"}, ] prompt = og.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) outputs = og(prompt, max_new_tokens=1024, do_sample=False) print(outputs[0]["generated_text"]) prompt = fn7.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) outputs = fn7(prompt, max_new_tokens=1024, do_sample=False) print(outputs[0]["generated_text"]) prompt = fn.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) outputs = fn(prompt, max_new_tokens=1024, do_sample=False) print(outputs[0]["generated_text"]) ``` ### Unbabel/TowerInstruct-13B-v0.1 This model fails with very large inputs, the answer is in Russian instead of Spanish 🥴 ``` Воспроизвем теорему Байеса для решения этой задачи: Предположим, что A означает событие, когда человек действительно обладает способностью предсказывать результаты броска кубика с точностью 90%, а C означает событие правильного предсказания на первой попытке. Мы хотим найти P(A|C), вероятность того, что у человека действительно есть способность, если он правильно предсказал на первой попытке. Теорема Байеса утверждает, что P(A|C) = P(C|A) * P(A) / P(C) Сначала определим P(C|A): вероятность правильного предсказания на первой попытке, если у человека действительно есть способность. Поскольку он утверждает, что его точность составляет 90%, эта вероятность равна 0,9. Далее определим P(A): вероятность того, что у кого-то действительно есть способность предсказывать результаты броска кубика с точностью 90%. Нам сказано, что она составляет 1%, поэтому P(A) = 0,01. Теперь нам нужно найти P(C): общую вероятность правильного предсказания на первой попытке. Это можно рассчитать как сумму вероятностей для каждого случая: P(C) = P(C|A) * P(A) + P(C|¬A) * P(¬A), где ¬A означает отсутствие способности, и P(¬A) = 1 - P(A) = 0,99. Чтобы найти P(C|¬A), вероятность правильного предсказания на первой попытке без способности, мы используем тот факт, что существует 1/6 шанс сделать правильный выбор случайно: P(C|¬A) = 1/6. Таким образом, P(C) = (0,9)*(0,01) / (0,174) ≈ 0,009 + 0,165 = 0,174. Наконец, мы можем рассчитать P(A|C) с помощью теоремы Байеса: P(A|C) = P(C|A) * P(A) / P(C) = (0,9)*(0,01) / (0,174) ≈ 0,0517. Таким образом, вероятность того, что у человека действительно есть способность предсказывать результаты броска кубика с точностью 90%, составляет примерно 5,17%. ``` ### Iker/TowerInstruct-7B-v0.2-EN2ES ``` Vamos a usar de nuevo el teorema de Bayes para resolver este problema: A representa el evento de que el hombre realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión, y C representa el evento de predecir correctamente en el primer intento. Queremos encontrar P(A|C), la probabilidad de que el hombre realmente tenga la capacidad dado que predecía correctamente en su primer intento. El teorema de Bayes establece que P(A|C) = P(C|A) * P(A) / P(C) Primero, vamos a encontrar P(C|A): la probabilidad de predecir correctamente en el primer intento si el hombre realmente tiene la capacidad. Dado que afirma un 90% de precisión, esta probabilidad es 0.9. A continuación, vamos a encontrar P(A): la probabilidad de que alguien realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión. Nos dicen que esto es del 1%, así que P(A) = 0.01. Ahora necesitamos encontrar P(C): la probabilidad total de predecir correctamente en el primer intento. Esto se puede calcular como la suma de probabilidades para cada caso: P(C) = P(C|A) * P(A) + P(C|¬A) * P(¬A), donde ¬A representa no tener la capacidad y P(¬A) = 1 - P(A) = 0.99. Para encontrar P(C|¬A), la probabilidad de predecir correctamente en el primer intento sin la capacidad, usamos el hecho de que hay una probabilidad del 1/6 de adivinar correctamente por azar: P(C|¬A) = 1/6. Así, P(C) = (0.9)*(0.01) + (1/6)*(0.99) = 0.009 + 0.165 = 0.174. Finalmente, podemos calcular P(A|C) usando el teorema de Bayes: P(A|C) = P(C|A) * P(A) / P(C) = (0.9)*(0.01) / (0.174) ≈ 0.0517. Por lo tanto, la probabilidad de que el hombre realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión es aproximadamente del 5.17%. ``` ### Iker/TowerInstruct-13B-v0.1-EN2ES ``` Vamos a usar de nuevo el teorema de Bayes para resolver este problema: Sea A el evento de que el hombre realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión, y C el evento de predecir correctamente en el primer intento. Queremos encontrar P(A|C), la probabilidad de que el hombre realmente tenga la capacidad dada que predijo correctamente en su primer intento. El teorema de Bayes establece que P(A|C) = P(C|A) * P(A) / P(C) Primero, vamos a encontrar P(C|A): la probabilidad de predecir correctamente en el primer intento si el hombre realmente tiene la capacidad. Dado que afirma un 90% de precisión, esta probabilidad es 0.9. A continuación, vamos a encontrar P(A): la probabilidad de que alguien realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión. Se nos dice que este es 1%, así que P(A) = 0.01. Ahora necesitamos encontrar P(C): la probabilidad general de predecir correctamente en el primer intento. Esto puede calcularse como la suma de probabilidades para cada caso: P(C) = P(C|A) * P(A) + P(C|¬A) * P(¬A), donde ¬A representa no tener la capacidad y P(¬A) = 1 - P(A) = 0.99. Para encontrar P(C|¬A), la probabilidad de predecir correctamente en el primer intento sin la capacidad, utilizamos el hecho de que hay una probabilidad de 1/6 de adivinar correctamente por casualidad: P(C|¬A) = 1/6. Así que, P(C) = (0.9)*(0.01) + (1/6)*(0.99) = 0.009 + 0.165 = 0.174. Finalmente, podemos calcular P(A|C) usando el teorema de Bayes: P(A|C) = P(C|A) * P(A) / P(C) = (0.9)*(0.01) / (0.174) ≈ 0.0517. Por lo tanto, la probabilidad de que el hombre realmente tenga la capacidad de predecir lanzamientos de dados con un 90% de precisión es aproximadamente 5.17%. ```