📝 : update README.md
This commit is contained in:
+17
-48
@@ -12,7 +12,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"id": "4696d130",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -38,21 +38,15 @@
|
||||
"from ctransformers import AutoModelForCausalLM\n",
|
||||
"from huggingface_hub import hf_hub_download\n",
|
||||
"\n",
|
||||
"# Définition du modèle à utiliser\n",
|
||||
"# On choisit un modèle Mistral 7B Instruct, quantifié en 4-bit (Q4_K_M)\n",
|
||||
"# C'est un bon équilibre performance / taille pour une utilisation CPU\n",
|
||||
"model_repo = \"TheBloke/Mistral-7B-Instruct-v0.1-GGUF\"\n",
|
||||
"model_file = \"mistral-7b-instruct-v0.1.Q4_K_M.gguf\"\n",
|
||||
"\n",
|
||||
"# Télécharger le modèle (si pas déjà présent)\n",
|
||||
"print(f\"Téléchargement du modèle: {model_file}...\")\n",
|
||||
"model_path = hf_hub_download(repo_id=model_repo, filename=model_file)\n",
|
||||
"print(f\"Modèle téléchargé dans: {model_path}\")"
|
||||
"model_path = hf_hub_download(repo_id=model_repo, filename=model_file)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"id": "6da8586d",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -66,52 +60,35 @@
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# Configuration et chargement du modèle\n",
|
||||
"print(\"Chargement du modèle sur le CPU (cela peut prendre un moment)...\")\n",
|
||||
"\n",
|
||||
"# Configuration pour CTransformers\n",
|
||||
"# gpu_layers=0 signifie qu'aucune couche n'est déchargée sur le GPU (utilisation CPU pure)\n",
|
||||
"llm = AutoModelForCausalLM.from_pretrained(\n",
|
||||
" model_path,\n",
|
||||
" model_type=\"mistral\",\n",
|
||||
" context_length=4096, # Longueur de contexte max (texte + réponse)\n",
|
||||
" gpu_layers=0 # <-- TRÈS IMPORTANT: Force l'utilisation du CPU\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"print(\"Modèle chargé avec succès.\")"
|
||||
" context_length=4096,\n",
|
||||
" gpu_layers=0 # Force l'utilisation du CPU\n",
|
||||
")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"id": "f8b27196",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def traduire_style_epoque(texte_original: str, epoque_originale: str, epoque_cible: str) -> str:\n",
|
||||
" \"\"\"\n",
|
||||
" Utilise le LLM pour réécrire un texte dans le style d'une autre époque.\n",
|
||||
" \"\"\"\n",
|
||||
" \n",
|
||||
" # Un \"prompt\" système pour guider le modèle.\n",
|
||||
" # Le format [INST]...[/INST] est spécifique à Mistral Instruct.\n",
|
||||
" prompt = f\"\"\"[INST] Tu es un expert en histoire de la littérature française et un écrivain.\n",
|
||||
"Ta tâche est de réécrire le texte suivant, qui a été écrit dans le style de l'époque \"{epoque_originale}\", pour qu'il corresponde parfaitement au style (vocabulaire, grammaire, syntaxe) de l'époque \"{epoque_cible}\".\n",
|
||||
"Le sens, les idées et le contenu du texte original doivent être préservés au maximum. Ne fais que modifier le style.\n",
|
||||
" Ta tâche est de réécrire le texte suivant, qui a été écrit dans le style de l'époque \"{epoque_originale}\", pour qu'il corresponde parfaitement au style (vocabulaire, grammaire, syntaxe) de l'époque \"{epoque_cible}\".\n",
|
||||
" Le sens, les idées et le contenu du texte original doivent être préservés au maximum. Ne fais que modifier le style.\n",
|
||||
"\n",
|
||||
"TEXTE ORIGINAL ({epoque_originale}):\n",
|
||||
"{texte_original}\n",
|
||||
" TEXTE ORIGINAL ({epoque_originale}):\n",
|
||||
" {texte_original}\n",
|
||||
"\n",
|
||||
"RÉÉCRITURE ({epoque_cible}):\n",
|
||||
"[/INST]\"\"\"\n",
|
||||
"\n",
|
||||
" print(f\"Génération de la traduction stylistique de '{epoque_originale}' vers '{epoque_cible}'...\")\n",
|
||||
" print(\"--------------------------------------------------\")\n",
|
||||
" RÉÉCRITURE ({epoque_cible}):\n",
|
||||
" [/INST]\"\"\"\n",
|
||||
" \n",
|
||||
" # Appel du modèle\n",
|
||||
" # 'temperature' contrôle la créativité (0.7 est un bon équilibre)\n",
|
||||
" # 'max_new_tokens' est la longueur max de la réponse. Augmentez si vos textes sont longs.\n",
|
||||
" # ATTENTION: La génération sur CPU sera LENTE.\n",
|
||||
" reponse = llm(\n",
|
||||
" prompt, \n",
|
||||
" temperature=0.7, \n",
|
||||
@@ -124,7 +101,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"id": "3120a8cc",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -152,7 +129,7 @@
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# --- Exemple 1 : Moderne vers Ancien ---\n",
|
||||
"# Moderne vers Ancien ---\n",
|
||||
"\n",
|
||||
"texte_moderne = \"\"\"\n",
|
||||
"Salut les gars,\n",
|
||||
@@ -163,19 +140,15 @@
|
||||
"epoque_source_1 = \"2024\"\n",
|
||||
"epoque_cible_1 = \"1670 (style Molière ou La Fontaine)\"\n",
|
||||
"\n",
|
||||
"# Lancement de la génération\n",
|
||||
"texte_traduit_1 = traduire_style_epoque(texte_moderne, epoque_source_1, epoque_cible_1)\n",
|
||||
"\n",
|
||||
"# Affichage\n",
|
||||
"print(\"\\n--- TEXTE ORIGINAL (\" + epoque_source_1 + \") ---\")\n",
|
||||
"print(texte_moderne)\n",
|
||||
"print(\"\\n--- TEXTE TRADUIT (\" + epoque_cible_1 + \") ---\")\n",
|
||||
"print(texte_traduit_1)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"id": "a745126d",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -214,7 +187,7 @@
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# --- Exemple 2 : Ancien vers Moderne ---\n",
|
||||
"# Ancien vers Moderne ---\n",
|
||||
"\n",
|
||||
"texte_ancien = \"\"\"\n",
|
||||
"Monseigneur,\n",
|
||||
@@ -226,12 +199,8 @@
|
||||
"epoque_source_2 = \"1720\"\n",
|
||||
"epoque_cible_2 = \"2024 (style email professionnel)\"\n",
|
||||
"\n",
|
||||
"# Lancement de la génération\n",
|
||||
"texte_traduit_2 = traduire_style_epoque(texte_ancien, epoque_source_2, epoque_cible_2)\n",
|
||||
"\n",
|
||||
"# Affichage\n",
|
||||
"print(\"\\n--- TEXTE ORIGINAL (\" + epoque_source_2 + \") ---\")\n",
|
||||
"print(texte_ancien)\n",
|
||||
"print(\"\\n--- TEXTE TRADUIT (\" + epoque_cible_2 + \") ---\")\n",
|
||||
"print(texte_traduit_2)"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user