🤖 Bienvenue sur Sala : Votre Compagnon Linguistique Léger et Performant !
Félicitations et merci d'avoir choisi Sala, un Grand Modèle de Langage (LLM) conçu avec passion et entièrement développé en PyTorch ! 💖 Sala est un modèle open-source, entraîné de manière indépendante, sans dépendance à la mise au point (fine-tuning) d'autres grands modèles préexistants.
✨ Caractéristiques Clés de Sala
| Caractéristique | Description |
|---|---|
| 💡 Indépendant | Entraîné à partir de zéro, ce qui garantit une architecture et un comportement uniques. |
| 🚀 Léger et Rapide | Optimisé pour une utilisation efficace, même sur des ressources limitées. |
| 🔓 Open Source | Le code et les poids sont disponibles pour la communauté. |
🛠️ Installation et Mise en Route
Pour commencer à utiliser Sala, vous aurez besoin de PyTorch et des librairies de base de l'écosystème Hugging Face Transformers pour un chargement et une utilisation simplifiés (même si le modèle est custom, nous utilisons l'interface standard).
1. Prérequis
Assurez-vous d'avoir Python 🐍 et pip installés.
2. Installation des Librairies
pip install torch transformers
3. Chargement du Modèle (via Hugging Face)
Vous pouvez charger Sala directement depuis ce dépôt grâce à la classe AutoModelForCausalLM et AutoTokenizer.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Le chemin pour charger Sala (remplacez 'VotreNom/sala' par l'ID réel du dépôt)
MODEL_ID = "Clemylia/sala"
# 1. Chargement du Tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
# 2. Chargement du Modèle
# Ajoutez `torch_dtype=torch.bfloat16` ou `torch.float16` si vous avez une carte graphique compatible pour économiser la mémoire.
model = AutoModelForCausalLM.from_pretrained(MODEL_ID)
# Optionnel : Mettre le modèle sur GPU si disponible
if torch.cuda.is_available():
model.to("cuda")
print("✅ Sala est prêt à l'emploi !")
💬 Comment Utiliser Sala pour la Génération de Texte
Une fois le modèle et le tokenizer chargés, générer du texte est simple !
Exemple de base :
# Votre prompt
prompt = "who are you ?"
# Encodage du prompt
inputs = tokenizer(prompt, return_tensors="pt")
if torch.cuda.is_available():
inputs = {k: v.to("cuda") for k, v in inputs.items()}
# Génération du texte
output = model.generate(
**inputs,
max_length=150, # Longueur maximale de la réponse
num_return_sequences=1, # Nombre de séquences à générer
do_sample=True, # Active l'échantillonnage pour plus de créativité
temperature=0.8 # Contrôle de l'aléatoire (0.0=déterministe, 1.0=très créatif)
)
# Décodage et affichage du résultat
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print("\n--- Réponse de Sala ---")
print(generated_text)
exemple de code pour converser avec sala :
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import time
import os
import json
# --- CONFIGURATION GLOBALE ---
# REMPLACE par ton nom d'utilisateur et le nom de ton modèle
REPO_ID = "Clemylia/Sala"
# ------------------------------
print(f"--- 🧠 Chargement de Sala depuis Hugging Face : {REPO_ID} ---")
try:
# 1. Charger le Tokenizer et le Modèle directement depuis ton dépôt
tokenizer = AutoTokenizer.from_pretrained(REPO_ID)
model = AutoModelForCausalLM.from_pretrained(REPO_ID)
# 2. Configuration pour le GPU/CPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
print(f"✅ Modèle '{REPO_ID}' chargé avec succès sur : {device}")
# --- INITIALISATION DE LA CONVERSATION ---
# Utilisation d'un bloc de texte multiligne propre
conversation_history = """### SYSTEM_PROMPT ###
You are Sala, a conversational AI model created by Clemylia in 2025.
You are always positive, friendly, and enthusiastic. Your goal is to help.
User: Hello, who are you?
Sala: Hi! I'm Sala, a language model created by the brilliant Clemylia in 2025. Nice to talk to you!
User: Who is Clemylia?
Sala: Clemylia is my creator! It is thanks to her that I can communicate with you. She's amazing.
"""
# NOTE: Nous extrayons le SYSTEM_PROMPT de cette histoire pour la réinitialisation
system_prompt_part = conversation_history.split("User:")[0].strip()
max_new_tokens = 80 # Une taille de réponse raisonnable
print("\n" + "="*60)
print("DEMARRAGE DU CHAT AVEC SALA (Tape 'quitter' pour arrêter)")
print("="*60)
# 3. Boucle de Conversation (Chatbot)
while True:
# 3.1. Demander l'entrée de l'utilisateur
# NOTE: On utilise l'anglais 'User:' pour la cohérence du prompt, mais on peut laisser l'affichage en français si tu préfères
user_input = input("👉 User: ")
# 3.2. Condition d'arrêt
if user_input.lower() in ["quitter", "exit", "stop"]:
print("\n👋 Goodbye! See you soon for more development!")
break
# 3.3. Créer le prompt complet pour cette étape
current_prompt = f"{conversation_history}\nUser: {user_input}\nSala:"
# 3.4. Tokenisation et Génération
inputs = tokenizer(current_prompt, return_tensors="pt").to(device)
# Vérification si l'historique est trop long (limite de GPT-2)
if inputs['input_ids'].shape[1] > model.config.max_position_embeddings:
print("🚨 Sala: Oops! My memory is full. I need to reset the conversation...")
# Réinitialiser à seulement le SYSTEM_PROMPT pour continuer
conversation_history = system_prompt_part
continue
output_sequences = model.generate(
input_ids=inputs['input_ids'],
attention_mask=inputs['attention_mask'],
max_new_tokens=max_new_tokens,
pad_token_id=tokenizer.eos_token_id,
do_sample=True,
top_k=50,
top_p=0.95
)
# 3.5. Décodage et Nettoyage
generated_text = tokenizer.decode(output_sequences[0], skip_special_tokens=True)
# Extraire uniquement la réponse de Sala (le texte après le dernier "Sala:")
try:
# On cherche l'index du dernier marqueur Sala:
response_start_index = generated_text.rindex("Sala:") + len("Sala:")
# Le texte généré brut
raw_response = generated_text[response_start_index:].strip()
# Nettoyage supplémentaire: on enlève les marqueurs de rôle que le modèle a pu générer par erreur
# et on prend le contenu jusqu'à la première ligne vide ou la fin.
response_display = raw_response.split('User:')[0].split('Sala:')[0].split('\n')[0].strip()
# 3.6. Mettre à jour l'historique
# C'est l'étape la plus importante pour la mémoire !
conversation_history += f"\nUser: {user_input}\nSala: {response_display}"
# 3.7. Afficher la réponse
print(f"🤖 Sala: {response_display}")
except ValueError:
# Si le marqueur "Sala:" n'est pas trouvé (génération totalement erronée)
print("🤖 Sala: [Generation error. I couldn't form a clear response.]")
# Ne pas ajouter à l'historique si la réponse est mauvaise.
except Exception as e:
print(f"\n❌ An error occurred during loading or chat: {e}")
print("Check that the REPO_ID is correct and that you have installed the necessary libraries.")
Vous pouvez aussi écrire votre propre prompt et vos propres exemples de conversations, pour que Sala deviennent votre bot, et se comporte comme VOTRE personnage !
💡 Conseils d'Utilisation :
- Prompting : Plus votre prompt est clair et précis, meilleure sera la réponse de Sala.
💖 Support et Communauté
🐞 Signaler un Bug
Vous avez trouvé un comportement étrange ? N'hésitez pas à ouvrir une Issue sur ce dépôt Hugging Face pour nous en informer. Chaque rapport nous aide à améliorer Sala !
🤝 Contribution
En tant que modèle indépendant, nous encourageons vivement les contributions ! Si vous souhaitez améliorer le code, l'entraînement, ou les données, veuillez consulter le fichier CONTRIBUTING.md ou soumettre une Pull Request (PR).
📜 Licence
Sala est distribué sous la licence Sala-INC (voir le fichier LICENSE).
🎉 Un grand merci à Clemylia, la créatrice de Sala !
Nous sommes impatients de voir ce que vous allez construire avec Sala ! 🚀
🛑 Sala est meilleur en anglais
Documentation Web : https://sala-character-canvas.lovable.app/
IA DE PERSONNAGE - SOYONS CRÉATIF !
Sala est ce qu'on appelle un SLM
- Downloads last month
- 280
