TinyLlama Multi-Task LoRA (Sentiment + Translation)

This repository contains a LoRA adapter trained on top of
TinyLlama/TinyLlama-1.1B-intermediate-step-1431k-3T
to support multiple tasks via instruction-style prompting.


🔧 Base Model

  • Base model: TinyLlama/TinyLlama-1.1B-intermediate-step-1431k-3T
  • Architecture: Decoder-only (LLaMA-style)
  • Fine-tuning method: LoRA (PEFT)
  • Trainable parameters: ~4M
  • Total parameters: ~1.1B

This repository only contains the LoRA adapter weights, not the full base model.


📌 Supported Tasks

1️⃣ Sentiment Analysis (IMDB)

Binary sentiment classification for movie reviews:

  • positive
  • negative

2️⃣ Translation (English → French)

Neural machine translation from English to French.


🧠 Training Data

All datasets are loaded directly from Hugging Face Datasets:

Task Dataset Description
Sentiment Analysis imdb Movie reviews with binary labels
Translation (EN→FR) Helsinki-NLP/opus-100 (en-fr) Parallel English–French corpus

🧩 Training Strategy

  • Multi-task instruction tuning
  • Tasks are distinguished via explicit prompt headers
  • All tasks are unified into a causal language modeling objective
  • Only LoRA parameters are updated; base model weights remain frozen

🧾 Prompt Format

Sentiment Analysis

### Task: Sentiment Analysis
### Review:
This movie was absolutely fantastic!
### Answer:
positive

### Task: Translation (English to French)
### English:
I love learning large language models.
### French:
J'aime apprendre les grands modèles de langage.

Load Base Model + LoRA Adapter

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model_name = "TinyLlama/TinyLlama-1.1B-intermediate-step-1431k-3T"
lora_repo = "BEncoderRT/tinyllama-multitask-lora"

tokenizer = AutoTokenizer.from_pretrained(base_model_name)
tokenizer.pad_token = tokenizer.eos_token

base_model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    device_map="auto"
).eval()

lora_model = AutoModelForCausalLM.from_pretrained(
    base_model_name,
    device_map="auto"
)

lora_model = PeftModel.from_pretrained(lora_model, lora_repo)
lora_model.eval()

def generate(
    model,
    prompt,
    max_new_tokens=64,
    temperature=0.3
):
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=max_new_tokens,
            do_sample=True,
            temperature=temperature,
            pad_token_id=tokenizer.eos_token_id
        )

    return tokenizer.decode(outputs[0], skip_special_tokens=True)

Inference Examples

Sentiment Analysis Example

sentiment_tests = [
    "I absolutely loved this movie. The acting was brilliant.",
    "This film was boring, slow, and a complete waste of time.",
    "The movie was okay, but nothing special.",
]

def test_sentiment_comparison(texts):
    for text in texts:
        prompt = (
            "### Task: Sentiment Analysis\n"
            "### Review:\n"
            f"{text}\n"
            "### Answer:\n"
        )

        base_out = generate(base_model, prompt, max_new_tokens=8)
        lora_out = generate(lora_model, prompt, max_new_tokens=8)

        print("=" * 80)
        print("REVIEW:")
        print(text)
        print("\n[BASE MODEL OUTPUT]")
        print(base_out)
        print("\n[LORA MODEL OUTPUT]")
        print(lora_out)
test_sentiment_comparison(sentiment_tests)
================================================================================
REVIEW:
I absolutely loved this movie. The acting was brilliant.

[BASE MODEL OUTPUT]
### Task: Sentiment Analysis
### Review:
I absolutely loved this movie. The acting was brilliant.
### Answer:
I loved this movie. It was so

[LORA MODEL OUTPUT]
### Task: Sentiment Analysis
### Review:
I absolutely loved this movie. The acting was brilliant.
### Answer:
positive
================================================================================
REVIEW:
This film was boring, slow, and a complete waste of time.

[BASE MODEL OUTPUT]
### Task: Sentiment Analysis
### Review:
This film was boring, slow, and a complete waste of time.
...
### Review:
The movie was okay, but nothing special.
### Answer:
negative

Translation Example

translation_tests = [

  "I love learning large language models.",

  "This movie was disappointing and boring.",

  "Artificial intelligence is changing the world."

]
def test_translation_comparison(texts):
    for text in texts:
        prompt = (
            "### Task: Translation (English to French)\n"
            "### English:\n"
            f"{text}\n"
            "### French:\n"
        )

        base_out = generate(base_model, prompt, max_new_tokens=64)
        lora_out = generate(lora_model, prompt, max_new_tokens=64)

        print("=" * 80)
        print("ENGLISH:")
        print(text)
        print("\n[BASE MODEL OUTPUT]")
        print(base_out)
        print("\n[LORA MODEL OUTPUT]")
        print(lora_out)
test_sentiment_comparison(sentiment_tests)
================================================================================
ENGLISH:
I love learning large language models.

[BASE MODEL OUTPUT]
### Task: Translation (English to French)
### English:
I love learning large language models.
### French:
J'adore apprendre les modèles de langage grand.

### Translation:
I love learning large language models.
### Task: Translation (English to Spanish)
### English:
I love learning large language models.
### Spanish:
Me gusta

[LORA MODEL OUTPUT]
### Task: Translation (English to French)
### English:
I love learning large language models.
### French:
Je me passionne pour les modèles de langues grandes.
================================================================================
...
### English:
Artificial intelligence is changing the world.
### French:
L'intelligence artificielle change le monde.
Downloads last month
29
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for BEncoderRT/tinyllama-multitask-lora

Adapter
(1286)
this model

Datasets used to train BEncoderRT/tinyllama-multitask-lora