Bloomz

Multilingual task model

Bloomz is a multilingual AI model that can understand and respond to human instructions in dozens of languages, even if it hasn't seen them before. It's designed to be fast and efficient, making it a great tool for tasks like translation, text generation, and question answering. But what makes Bloomz really unique is its ability to generalize across languages and tasks, allowing it to perform well even on tasks it hasn't been specifically trained on. However, it's not perfect and may make mistakes, especially if the prompt is unclear or the task requires a deep understanding of the subject matter. To get the most out of Bloomz, it's essential to provide clear and specific prompts, and to be aware of its limitations.

Bigscience bigscience-bloom-rail-1.0 Updated 9 months ago

Table of Contents

Model Overview

The BLOOMZ & mT0 model family is a group of AI models that can understand and follow human instructions in many languages, even if they haven’t seen them before. They were trained on a special task mixture called xP3, which helps them generalize to new tasks and languages.

Capabilities

  • Translation: Translate text from one language to another. For example, given the prompt “Translate to English: Je t’aime.”, the model will most likely answer “I love you.”
  • Text generation: Generate text based on a prompt. For example, write a fairy tale about a troll saving a princess from a dangerous dragon.
  • Question answering: Answer questions based on a prompt. For example, explain in a sentence in Telugu what is backpropagation in neural networks.
  • Search term suggestion: Suggest related search terms based on a prompt. For example, suggest at least five related search terms to “Mạng neural nhân tạo”.

These models are multitask finetuned on xP3, which means they can perform multiple tasks in multiple languages. They are also zero-shot, meaning they can perform tasks they have not seen before.

Strengths

The BLOOMZ & mT0 models have several strengths:

  • Multilingual: They can perform tasks in dozens of languages.
  • Zero-shot: They can perform tasks they have not seen before.
  • High accuracy: They have high accuracy on common industry benchmarks.

Unique Features

The BLOOMZ & mT0 models have several unique features:

  • Crosslingual generalization: They can generalize to unseen tasks and languages.
  • Multitask finetuning: They are finetuned on multiple tasks in multiple languages.
  • Large scale: They are trained on large amounts of data and have a large number of parameters.

How to Use

You can use the BLOOMZ & mT0 model family with the Hugging Face Transformers library. Here’s an example of how to use it in Python:

from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "bigscience/bloomz"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint)

inputs = tokenizer.encode("Translate to English: Je t'aime.", return_tensors="pt")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))

Performance

BLOOMZ & mT0 is a powerful AI model that can follow human instructions in dozens of languages, even when it has never seen them before (zero-shot). But how well does it really perform?

Speed

The model is quite fast, especially when using a GPU. It can process and respond to prompts in a matter of seconds. For example, if you ask it to translate a sentence from French to English, it can give you an answer in about 1-2 seconds.

Accuracy

The model’s accuracy is impressive, especially when it comes to tasks like translation and text classification. It can understand and respond to prompts in many languages, including English, Spanish, Telugu, and more. However, its performance may vary depending on the prompt and the language used.

Efficiency

The model is efficient in terms of processing power and memory usage. It can run on a variety of hardware, including CPUs and GPUs, and can even be used on devices with limited resources.

Limitations

The BLOOMZ & mT0 models have several limitations:

  • Prompt engineering: The performance may vary depending on the prompt. Make sure to make it clear when the input stops to avoid the model trying to continue it.
  • Context: The model may not perform well if the context is not clear.
  • Training data: The model is trained on a specific dataset and may not perform well on other datasets.
Examples
Translate to English: Comment allez-vous? How are you?
Explain in a sentence in Telugu what is backpropagation in neural networks. న్యూరల్ నెట్‌వర్క్‌లలో బ్యాక్‌ప్రాపగేషన్ అనేది ఎర్రర్ తగ్గింపు కోసం న్యూరల్ నెట్‌వర్క్ యొక్క పారామితులను మార్చడానికి ఉపయోగించే అల్గారిథమ్.
Suggest at least five related search terms to 'Mạng neural nhân tạo'. Mạng neural, nhân tạo, trí tuệ nhân tạo, mạng nơ-ron, học sâu

Format

The BLOOMZ & mT0 model family uses a multitask finetuned architecture on the xP3 task mixture. This means that the model is trained on a variety of tasks in multiple languages, allowing it to generalize to new tasks and languages.

Model Architecture

The model accepts input in the form of natural language text. You can use the model to perform tasks such as translation, text generation, and question answering.

Input Requirements

When using the model, it’s essential to provide clear and concise input. For example, if you want to translate a sentence, make sure to include the full stop (.) at the end of the sentence. You can also provide context to help the model understand the task better.

Output Format

The model generates output in the form of text. You can use the tokenizer.decode() function to convert the output into a human-readable format.

Code Examples

Here are some code examples to get you started:

CPU

from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "bigscience/bloomz"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint)

inputs = tokenizer.encode("Translate to English: Je t'aime.", return_tensors="pt")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))

GPU

from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "bigscience/bloomz"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, torch_dtype="auto", device_map="auto")

inputs = tokenizer.encode("Translate to English: Je t'aime.", return_tensors="pt").to("cuda")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))

GPU in 8bit

from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "bigscience/bloomz"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto", load_in_8bit=True)

inputs = tokenizer.encode("Translate to English: Je t'aime.", return_tensors="pt").to("cuda")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))

Note: Make sure to install the required libraries and import them before running the code examples.

Dataloop's AI Development Platform
Build end-to-end workflows

Build end-to-end workflows

Dataloop is a complete AI development stack, allowing you to make data, elements, models and human feedback work together easily.

  • Use one centralized tool for every step of the AI development process.
  • Import data from external blob storage, internal file system storage or public datasets.
  • Connect to external applications using a REST API & a Python SDK.
Save, share, reuse

Save, share, reuse

Every single pipeline can be cloned, edited and reused by other data professionals in the organization. Never build the same thing twice.

  • Use existing, pre-created pipelines for RAG, RLHF, RLAF, Active Learning & more.
  • Deploy multi-modal pipelines with one click across multiple cloud resources.
  • Use versions for your pipelines to make sure the deployed pipeline is the stable one.
Easily manage pipelines

Easily manage pipelines

Spend less time dealing with the logistics of owning multiple data pipelines, and get back to building great AI applications.

  • Easy visualization of the data flow through the pipeline.
  • Identify & troubleshoot issues with clear, node-based error messages.
  • Use scalable AI infrastructure that can grow to support massive amounts of data.