--- license: apache-2.0 language: - fr - en - zh - es - de - ja - ko - pt - it - ru tags: - chat - code - math - merge - pytorch base_model: Qwen/Qwen2.5-7B-Instruct library_name: transformers pipeline_tag: text-generation ---
Cygnis A3 Logo
Hugging Face License Version
--- ## 1. Présentation **Cygnis-A3 V0.1** est la première version publique du projet Cygnis A3 — un modèle de 7 milliards de paramètres obtenu par merge linéaire pondéré en PyTorch pur sur la base Qwen2.5. Cette version **V0.1** est volontairement légère et conservatrice : elle combine uniquement les capacités de code, de mathématiques et de suivi d'instructions, sans module de raisonnement DeepSeek-R1 (prévu en V0.2). Elle sert de base validée et stable pour les itérations suivantes. > **Différence V0.1 vs V0.2 :** La V0.1 ne contient pas de raisonnement Chain-of-Thought (``) ni de balises de réflexion interne. Les réponses sont directes et sans étape de réflexion explicite. La V0.2 intégrera DeepSeek-R1-Distill-Qwen-7B via SLERP pour ajouter ce moteur de raisonnement. --- ## 2. Résumé du modèle
Architecture Merge linéaire PyTorch pur (LM Causal Dense)
Paramètres 7,6B
Modèle de base Qwen/Qwen2.5-7B-Instruct
Modèles mergés Qwen2.5-7B-Instruct × 0.70 + Qwen2.5-Coder-7B × 0.20 + Qwen2.5-Math-7B × 0.10
Méthode de fusion Interpolation linéaire pondérée (PyTorch state_dict)
Embeddings Protégés — copiés 100% depuis le base model (aucun merge)
Raisonnement CoT ❌ Non (prévu en V0.2 avec DeepSeek-R1)
Couches 28
Contexte natif 32 768 tokens
Précision BFloat16
Modalité Texte & Code
--- ## 3. Utilisation ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_id = "Simonc44/Cygnis-A3" tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_id, dtype=torch.float16, device_map="auto", trust_remote_code=True, ) messages = [ {"role": "user", "content": "Écris une fonction Python qui calcule le PGCD de deux nombres."} ] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) ids = tokenizer(text, return_tensors="pt").to(model.device) with torch.no_grad(): out = model.generate( **ids, max_new_tokens=300, do_sample=True, temperature=0.6, top_p=0.95, repetition_penalty=1.05, eos_token_id=[tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|im_end|>")], pad_token_id=tokenizer.eos_token_id, ) response = tokenizer.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True) print(response) ``` --- ## 4. Hyperparamètres recommandés | Paramètre | Valeur recommandée | |-----------|-------------------| | Temperature | `0.6` | | Top-P | `0.95` | | Repetition Penalty | `1.05` | | Max New Tokens | `512–1024` | --- ## 6. Licence Distribué sous licence **[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)**.