Anthony Assi
Update README.md
4e6df8b verified
|
Raw
History Blame
3.65 kB
metadata
license: mit
base_model: unsloth/meta-llama-3.1-8b-instruct-bnb-4bit
language:
  - ar
  - en
library_name: transformers
tags:
  - lebanese
  - ammiya
  - arabizi
  - nlp
  - dgx-spark
  - blackwell
  - sm_121a
datasets:
  - assix/lebanese-dialect-fusion-v1
metrics:
  - loss

๐Ÿ‡ฑ๐Ÿ‡ง Lebanese-Llama-3.1-8B

Lebanese-Llama-3.1-8B is a high-performance LLM fine-tuned specifically for the Lebanese dialect (Ammiya). It bridges the gap between Modern Standard Arabic (MSA) and the multi-modal nature of Lebanese communication, seamlessly blending Arabic script, French/English influences, and Arabizi (Romanized Arabic with numbers).

This model was trained and validated on the NVIDIA DGX Spark, the worldโ€™s first personal AI supercomputer powered by the Grace Blackwell (GB10) architecture.

๐ŸŽฎ Live Demo

Try the model instantly in your browser without any setup: ๐Ÿ‘‰ Lebanese Llama Chat Demo

๐Ÿš€ Model Features

  • Dialectal Authenticity: Fine-tuned to recognize and generate Lebanese syntax, specifically the "B" prefix for verbs and regional idioms (e.g., mni7, shou fi ma fi).
  • Arabizi Mastery: Expertly handles Romanized Lebanese using numbers (e.g., 3 for 'ayn, 7 for ha, 2 for hamza).
  • Blackwell Optimized: Merged into 16-bit (Bfloat16) to leverage the 5th Gen Tensor Cores and 128GB Unified Memory of the DGX Spark.
  • Cultural Nuance: Enhanced understanding of Lebanese culinary, geographic, and social context compared to base Llama-3.1.

๐Ÿ›  Training Specifications

  • Infrastructure: NVIDIA DGX Spark (Grace Blackwell Superchip)
  • Architecture: Llama-3.1-8B-Instruct (4-bit QLoRA base)
  • Training Steps: 300 steps
  • Loss Convergence: Dropped from 5.3 to 2.2285
  • Optimizer: Unsloth (Stable Bfloat16 Path)

๐Ÿ’ป Usage & Implementation

Because this model was developed on the sm_121a architecture, it is best loaded using the "Stable Path" to avoid Triton compiler conflicts.

Standard Inference (Hugging Face Transformers)

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "esix117/lebanese-llama-3.1-8b"
tokenizer = AutoTokenizer.from_pretrained(model_id)

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

# Recommended System Prompt for a Native Persona
system_prompt = "You are a helpful Lebanese assistant speaking strictly in Lebanese Ammiya (dialect)."

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": "Marhaba! Kifak el yom? Khabbirni shway shou fi ma fi."}
]

inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to("cuda")
outputs = model.generate(inputs, max_new_tokens=150, temperature=0.7)
# Slice the output to remove the prompt and only show the assistant's reply
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))

โš ๏ธ Known Limitations & Blackwell Optimization

Triton Compatibility: If running on Blackwell hardware (sm_121a), you may encounter a ptxas fatal : Value 'sm_121a' is not defined error when using custom kernels. To fix this, use the standard PyTorch RMS Norm fallback:

import unsloth.kernels.rms_layernorm
unsloth.kernels.rms_layernorm.fast_rms_layernorm = torch.nn.functional.rms_norm

๐Ÿค Contribution & Acknowledgements

Developed by esix117 on the DGX Spark infrastructure. Special thanks to the researchers behind the open-source dialect datasets used in this fusion.

License: MIT