Bienvenue dans la documentation de
Limy-mini
! Cette version représente une étape majeure dans l'amélioration de la famille de modèles Limy, offrant une classification de texte plus
robuste
et
polyvalente
sur nos sujets favoris.
🌟 Vue d'Ensemble du Modèle
Caractéristique
Détail ✨
Identifiant du Dépôt
Clemylia/Limy-mini
Modèle de Base (Ancestral)
Clemylia/Limy-basique
(Original
from scratch
)
Tâche
Classification de Texte (Text Classification)
Classes Détectées
0
: Animaux 🐾 (Questions sur la faune)
1
: Capitales 🏙️ (Questions sur la géographie urbaine / les villes)
Langue
Français (fr) 🇫🇷
Licence
MIT
🎯 Objectif du Fine-Tuning
Le but de
Limy-mini
était de dépasser les limites de la version
basique
en enrichissant ses connaissances.
Objectif
Résultat Obtenu ✅
Robustesse
Améliorer la capacité du modèle à gérer des phrases complexes, ambiguës ou plus longues.
Étendue des Phrases
Passer d'un ensemble de données très restreint à un jeu d'entraînement de
92 exemples uniques
sur les deux classes.
Performance
Réduire l'erreur de classification (la
loss
) pour une meilleure précision.
Limy-mini
est désormais apte à détecter et classer un éventail de phrases beaucoup plus large grâce à l'ajout des
80 nouvelles données
de fine-tuning.
🛠️ Comment Utiliser Limy-mini (PyTorch)
Puisque Limy-mini est basé sur une architecture
SimpleClassifier
(LSTM/Embedding) personnalisée, son utilisation nécessite de redéfinir la classe et de télécharger les fichiers nécessaires depuis le Hugging Face Hub.
1. Définition de l'Architecture (Obligatoire)
Tu dois inclure la définition de la classe
SimpleClassifier
et du
tokenizer
dans ton script Python :
import torch
import torch.nn as nn
import json
from huggingface_hub import hf_hub_download
classSimpleClassifier(nn.Module):
def__init__(self, vocab_size, embedding_dim, hidden_dim, output_dim):
super().__init__()
self.embedding = nn.Embedding(vocab_size, embedding_dim)
self.lstm = nn.LSTM(embedding_dim, hidden_dim) # Pas de batch_first dans ce cas si l'input est (L, 1, H)
self.fc = nn.Linear(hidden_dim, output_dim)
defforward(self, text):
embedded = self.embedding(text)
# Adapté pour un batch size de 1, l'input est (Longueur de la phrase, Batch_size=1, Embedding_dim)
_, (hidden, _) = self.lstm(embedded.view(len(text), 1, -1))
return self.fc(hidden.squeeze(0))
defsimple_tokenizer(text):
return text.lower().split()
2. Chargement du Modèle et Prédiction
Tu peux ensuite charger le modèle et l'utiliser pour faire des prédictions.
# 💖 Étape 2.1 : Configuration du dépôt
REPO_ID = "Clemylia/Limy-mini"
DEVICE = torch.device("cpu") # Utilisation du CPU (plus simple pour la démo)# 💖 Étape 2.2 : Téléchargement et chargement des fichiers
config_path = hf_hub_download(REPO_ID, "config.json")
vocab_path = hf_hub_download(REPO_ID, "vocab.json")
model_path = hf_hub_download(REPO_ID, "pytorch_model.bin")
withopen(config_path, 'r') as f:
config = json.load(f)
withopen(vocab_path, 'r') as f:
word_to_idx = json.load(f)
# 💖 Étape 2.3 : Initialisation et chargement des poids
model = SimpleClassifier(
vocab_size=config['vocab_size'],
embedding_dim=config['embedding_dim'],
hidden_dim=config['hidden_dim'],
output_dim=config['output_dim']
).to(DEVICE)
model.load_state_dict(torch.load(model_path, map_location=DEVICE))
model.eval() # Toujours mettre en mode évaluation pour la prédiction# 💖 Étape 2.4 : Fonction de Prédictiondefpredict_limy_mini(question):
tokens = simple_tokenizer(question)
# Remplacement des mots inconnus par l'indice 0 (UNK)
token_indices = [word_to_idx.get(token, 0) for token in tokens]
# Création du tenseur d'entrée (dtype=torch.long est important pour les indices)
input_tensor = torch.tensor(token_indices, dtype=torch.long).to(DEVICE)
with torch.no_grad():
output = model(input_tensor.view(-1, 1)) # Assure le format (Longueur, 1)
prediction = torch.argmax(output, dim=1).item()
# Affichage du résultatif prediction == 0:
returnf"Prediction : Animaux 🐾 (Classe 0)"elif prediction == 1:
returnf"Prediction : Capitales 🏙️ (Classe 1)"else:
returnf"Prediction : Inconnue"# 💖 Exemple d'utilisation
result_animaux = predict_limy_mini("Combien de cœurs a une pieuvre ?")
result_capitales = predict_limy_mini("Où se trouve la porte de Brandebourg ?")
print(f"\nQuestion 1 : {result_animaux}")
print(f"Question 2 : {result_capitales}")
⚠️ Limitations et Remarques
Vocabulaire Fixe
: Le modèle utilise le vocabulaire de
Limy-basique
. Si une phrase contient de nombreux mots qui n'étaient pas présents dans le jeu de données initial, ces mots seront remplacés par l'indice
0
(UNK - Inconnu), ce qui pourrait réduire la précision.
Taille du Modèle
: Il s'agit d'un classifieur très léger (basé sur une architecture de type
Recurrent Neural Network
- RNN), idéal pour les démonstrations ou les appareils à faibles ressources, mais moins performant que les modèles de type
Transformer
(BERT, etc.).
Runs of Clemylia Limy-mini on huggingface.co
12
Total runs
0
24-hour runs
0
3-day runs
4
7-day runs
6
30-day runs
More Information About Limy-mini huggingface.co Model
Limy-mini huggingface.co is an AI model on huggingface.co that provides Limy-mini's model effect (), which can be used instantly with this Clemylia Limy-mini model. huggingface.co supports a free trial of the Limy-mini model, and also provides paid use of the Limy-mini. Support call Limy-mini model through api, including Node.js, Python, http.
Limy-mini huggingface.co is an online trial and call api platform, which integrates Limy-mini's modeling effects, including api services, and provides a free online trial of Limy-mini, you can try Limy-mini online for free by clicking the link below.
Clemylia Limy-mini online free url in huggingface.co:
Limy-mini is an open source model from GitHub that offers a free installation service, and any user can find Limy-mini on GitHub to install. At the same time, huggingface.co provides the effect of Limy-mini install, users can directly use Limy-mini installed effect in huggingface.co for debugging and trial. It also supports api for free installation.