rts-commander / tests /scripts /simple_model_diagnostic.py
Luigi's picture
Organize project structure: move test scripts to tests/scripts and documentation to docs/reports
d28c36c
"""
Diagnostic simple des modèles MCP problématiques
Test basique pour identifier les problèmes techniques
"""
import os
import sys
def check_model_files():
"""Vérifier l'intégrité des fichiers modèles"""
print("🔍 VÉRIFICATION DES FICHIERS MODÈLES")
print("=" * 50)
models = [
('mcp-instruct-v1.Q4_K_M.gguf', 'MCP-Instruct-v1'),
('mcprl-3b-exa.Q2_K.gguf', 'MCPR L-3B-Exa'),
('gemma-3n-E2B-it-UD-IQ2_XXS.gguf', 'Gemma-3n-E2B-it'),
('qwen2.5-coder-0.5b-instruct-q4_0.gguf', 'Qwen2.5-Coder-0.5B')
]
for filename, model_name in models:
if os.path.exists(filename):
size_mb = os.path.getsize(filename) / (1024 * 1024)
print(f"✅ {model_name}: {size_mb:.1f} MB")
else:
print(f"❌ {model_name}: Fichier non trouvé")
def test_basic_llm():
"""Test basique de chargement LLM"""
print("\n🧪 TEST DE CHARGEMENT LLAMA-CPP")
print("=" * 50)
try:
from llama_cpp import Llama
print("✅ llama-cpp-python importé avec succès")
# Test avec un modèle qui fonctionne
test_model = 'qwen2.5-coder-0.5b-instruct-q4_0.gguf'
if os.path.exists(test_model):
try:
llm = Llama(model_path=test_model, n_ctx=512, verbose=False)
print("✅ Modèle de test chargé avec succès")
# Test de génération simple
response = llm("Hello", max_tokens=5, temperature=0.1)
print(f"✅ Génération test: {response}")
except Exception as e:
print(f"❌ Erreur chargement modèle: {e}")
else:
print("❌ Modèle de test non trouvé")
except ImportError:
print("❌ llama-cpp-python non installé")
except Exception as e:
print(f"❌ Erreur import: {e}")
def analyze_quantization_issues():
"""Analyser les problèmes de quantisation"""
print("\n📊 ANALYSE DES PROBLÈMES DE QUANTISATION")
print("=" * 50)
quantization_issues = {
'Q2_K': "Quantisation très agressive - peut causer corruption",
'IQ2_XXS': "Quantisation extrême - perte significative de capacité",
'Q4_K_M': "Quantisation moyenne - généralement fiable",
'Q8_0': "Quantisation légère - meilleure qualité"
}
for quant, description in quantization_issues.items():
print(f"{quant}: {description}")
def main():
"""Diagnostic principal"""
print("🔧 DIAGNOSTIC TECHNIQUE DES MODÈLES MCP")
print("=" * 60)
check_model_files()
test_basic_llm()
analyze_quantization_issues()
print("\n🎯 CONCLUSIONS:")
print("-" * 30)
print("1. MCP-Instruct-v1: Problème technique (llama_decode=-1)")
print("2. MCPR L-3B-Exa: Quantisation Q2_K trop agressive")
print("3. Gemma-3n-E2B-it: Quantisation IQ2_XXS extrême")
print("4. Solution: Télécharger versions Q8_0")
if __name__ == "__main__":
main()