CodeQwen
Gratuit
CodeQwen est un grand modèle de langage spécifique au code lancé par l'équipe Alibaba Tongyi Qianwen (Qwen). Il est basé sur l'architecture Qwen1.5 et est pré-entraîné sur environ 3 000 milliards de jetons de données de code. Il prend en charge 92 langages de programmation et a une longueur de contexte de 64 Ko. CodeQwen1.5-7B atteint 83,5 % pass@1 (version Chat) sur HumanEval et fonctionne bien dans la génération de code, la modélisation de contexte long, l'édition de code Text-to-SQL et d'autres tâches, ce qui en fait le premier échelon dans les modèles de code open source.
Analyse des outils de #CodeQwen
Paramètres et statistiques de base
| Paramètre | Valeur |
|---|---|
| Nom complet du modèle | CodeQwen1.5-7B / CodeQwen1.5-7B-Chat |
| Équipe de développement | Équipe Alibaba Cloud Qwen |
| Infrastructures | Qwen1.5 (décodeur de transformateur uniquement) |
| Échelle des paramètres | 7B |
| Quantité de données de pré-entraînement | Environ 3 000 milliards de jetons (données liées au code) |
| Langages de programmation pris en charge | 92 types |
| Longueur du contexte | 64 000 jetons |
| Mécanisme d'attention | Attention aux requêtes de groupe (GQA) |
| Contrat de licence | CONTRAT DE LICENCE DE RECHERCHE Tongyi Qianwen (disponible pour la recherche, application requise pour un usage commercial) |
| Dépôt open source | GitHub : QwenLM/Qwen1.5 |
| Plate-forme de poids modèle | Visage câlin / ModelScope |
CodeQwen est un grand modèle de langage de la famille Alibaba Tongyi Qianwen spécialement conçu pour les scénarios de codage. Différent du modèle Qwen général, CodeQwen utilise environ 3 000 milliards de jetons de données de code pour une formation spéciale au stade de pré-formation, couvrant 92 langages de programmation. Son principal avantage vient de la spécialisation de la distribution des données - non pas d'une plus grande échelle de paramètres, mais de la densité et de la diversité plus élevées des codes dans les données d'entraînement, ce qui rend le modèle nettement meilleur que le modèle général de même taille en termes de génération, de compréhension, de réparation et d'autres tâches de code.
Reconnaissance des utilisateurs et du marché
- Écosystème GitHub : les modèles de la série CodeQwen1.5 sont hébergés dans l'entrepôt QwenLM/Qwen1.5, et l'organisation globale de Qwen a reçu plus de 21,4 000 étoiles sur GitHub. CodeQwen1.5-7B compte environ 3 154 téléchargements mensuels sur Hugging Face (à la date de la requête).
- Résultats de référence : CodeQwen1.5-7B-Chat a atteint 83,5 % pass@1 sur HumanEval 0-shot, dépassant DeepSeek-Coder-Instruct 6.7B (78,6 %) et CodeLlama-7B (33,5 %) de la même taille, se classant premier dans le modèle de code open source de niveau 7B. Le MBPP 0-shot atteint 77,7 %, ce qui est également en avance sur les produits concurrents de même taille.
- Évaluation de contexte long : dans l'évaluation synthétique « Aiguille dans le code », CodeQwen1.5 peut reproduire avec précision la fonction personnalisée insérée dans la plage de longueur de 64 Ko, indiquant que sa capacité de compréhension du code de contexte long répond aux objectifs de conception.
- Performances SWE-Bench : CodeQwen1.5-Chat a obtenu un score de 0,89 sur SWE-Bench, surpassant ChatGPT-3.5, indiquant que sa capacité à résoudre de véritables problèmes de développement de logiciels au niveau de l'entrepôt est initialement compétitive.
Avantage de coût
CodeQwen se positionne comme un modèle de code open source et sa structure de coûts est différente à trois niveaux : développeurs individuels, chercheurs universitaires et entreprises.
- Développeurs côté C/individuels : les poids de modèle sont entièrement gratuits et open source (licence de recherche) et peuvent être déployés et exécutés sur des GPU locaux via des outils tels que Hugging Face Transformers ou Ollama. En termes de besoins en mémoire vidéo, la précision du BF16 nécessite environ 16,99 Go de mémoire vidéo GPU (modèle 7B), qui est réduite à environ 8,21 Go après quantification Int4, et les cartes graphiques grand public (telles que RTX 3090/4090) peuvent l'exécuter. En termes de vitesse d'inférence, elle est d'environ 40,93 jetons/s sous BF16 et d'environ 50,09 jetons/s sous Int4.
- Appel développeur/API : les modèles de la série Tongyi Qianwen (qwen-turbo/qwen-plus) peuvent être appelés via l'API Alibaba Cloud DashScope, et la facturation est basée sur le jeton. Le prix spécifique est soumis à la page officielle DashScope. De plus, les services vLLM/SGLang peuvent être déployés via l'API Hugging Face Inference ou par vous-même. Le coût de déploiement dépend des spécifications du GPU.
- Déploiement en entreprise/privé : les entreprises peuvent effectuer un déploiement et un réglage privatisés en fonction de pondérations open source. Pour un usage commercial, vous devez demander une autorisation commerciale auprès d'Alibaba Cloud (remplissez le formulaire de demande). Les modalités spécifiques de l'autorisation seront soumises à la réponse officielle. Pour les scénarios de conformité tels que les finances et les affaires gouvernementales qui nécessitent un déploiement privatisé de Code Assistant, les fonctionnalités open source de CodeQwen réduisent le risque de données sortantes et de dépendance à des tiers.
Fonctions principales
- Génération de code (Text-to-Code) : traduisez les descriptions en langage naturel en code exécutable. Prend en charge 92 langages, dont Python, C++, Java, JavaScript, TypeScript, Go et Rust. Sur les benchmarks HumanEval et MBPP, Chat version pass@1 atteint respectivement 83,5 % et 77,7 %, ce qui est proche du niveau GPT-3.5.
- Compréhension du code contextuel long : une fenêtre contextuelle de 64 000 jetons lui permet de gérer les fichiers de code au niveau du référentiel. Étendu sur la base de technologies telles que l'interpolation compatible NTK et la mise à l'échelle de l'attention LogN, il peut récupérer et reproduire avec précision des fragments de code dans une plage de longueur de 64 Ko dans des tests réels.
- Édition de code et débogage : sur CodeEditorBench, CodeQwen1.5 a obtenu un effet SOTA de paramètres 7B dans les quatre dimensions du débogage, de la traduction, du changement de langue et du polissage du code.
- Text-to-SQL : prend en charge la conversion des requêtes en langage naturel en instructions SQL. Dans les deux benchmarks Text-to-SQL Spider et Bird, CodeQwen1.5-Chat se classe deuxième derrière GPT-4 (méthode d'invite DIN-SQL). Cette capacité lui permet de combler le fossé d'interaction entre les non-programmeurs et les bases de données.
- Capacités d'appel d'outils et d'agent : la série Qwen-Chat prend en charge les appels d'outils de style ReAct et les appels de fonctions. Dans l'évaluation de l'utilisation des outils chinois, la précision de la sélection des outils de CodeQwen1.5-7B-Chat a atteint 95,5 %, la saisie de l'outil Rouge-L a atteint 0,900 et le taux de faux positifs n'était que de 11,6 %.
Evolution du modèle et de la version
CodeQwen n'a actuellement qu'une seule série de versions majeures - CodeQwen1.5, publiée le 16 avril 2024. La série se compose de deux modèles :
CodeQwen1.5-7B (Base)
Modèle basé sur le code, pré-entraîné sur environ 3 000 milliards de jetons de données de code. Convient aux tâches en aval telles que la complétion et le réglage du code. Il n'y a pas de capacité de dialogue intégrée, les utilisateurs doivent créer le format Prompt ou effectuer eux-mêmes le SFT.
CodeQwen1.5-7B-Chat (Chat)
La version de dialogue alignée sur SFT et RLHF basée sur le modèle de base prend en charge de manière native des scénarios interactifs tels que plusieurs cycles de dialogue de code, la génération de code, le débogage et les requêtes SQL. La revue tourne principalement autour de la version Chat.
Il est à noter que CodeQwen est né à l’ère Qwen1.5 (début 2024). Avec la sortie de Qwen2, Qwen2.5 et de la dernière série Qwen3, l'équipe Tongyi Qianwen continue d'itérer sur les capacités de code : la série Qwen3 a intégré des capacités de génération de code, et les modèles dédiés ultérieurs tels que Qwen3-Coder pourraient devenir le successeur spirituel de CodeQwen. Mais actuellement, CodeQwen1.5 est toujours le seul modèle open source spécifique au code nommé « Code » dans la série Qwen.
Avantages techniques
- Données de pré-formation spécialisées : CodeQwen1.5 est pré-entraîné sur environ 3 000 milliards de jetons de données de code au lieu de données textuelles générales. Ces données de code couvrent des codes réels dans plusieurs langages, plusieurs cadres et plusieurs domaines, ce qui rend la compréhension du modèle de la syntaxe, de la sémantique et des paradigmes de programmation beaucoup plus profonde qu'un modèle général de même échelle.
- Group Query Attention (GQA) : utilise le mécanisme d'attention aux requêtes de groupe pour réduire l'utilisation du cache KV pendant l'inférence et améliorer l'efficacité du débit du dialogue à plusieurs tours et de la génération de séquences longues. GQA est particulièrement important dans les scénarios d'édition continue de génération de code : lorsque les développeurs visualisent et modifient fréquemment des extraits de code, GQA peut réduire efficacement la latence d'inférence.
- Technologie d'extension de contexte long : étendez la longueur du contexte de 8K pré-entraîné à 64K grâce à une combinaison de technologies d'interpolation compatible NTK Window Attention et de mise à l'échelle de l'attention LogN. Cela permet au modèle de lire simultanément le fichier de code complet au niveau de l'entrepôt, comprenant ainsi les dépendances contextuelles de l'ensemble du fichier lors de la modification d'une fonction.
- Couverture multilingue : prend en charge la génération de code dans 92 langages de programmation, couvrant tout, des langages courants (Python, Java, C++, JavaScript) aux langages de niche (tels que Verilog, Racket, COBOL, etc.). Dans l'évaluation MultiPL-E, les performances étaient équilibrées sur les huit langages principaux : Python, C++, Java, PHP, TypeScript, C#, Bash et JavaScript, et n'étaient pas orientées vers un seul langage.
- Quantification Friendly : L'officiel fournit des versions quantifiées Int4 et Int8. Après quantification, la vitesse d'inférence est augmentée d'environ 20 à 40 % et l'utilisation de la mémoire vidéo est réduite d'environ 50 % (7B BF16 : 16,99 Go → Int4 : 8,21 Go), ce qui permet aux cartes graphiques grand public de fonctionner. La perte de performance quantifiée ne dépasse pas 2 à 3 points de pourcentage dans les benchmarks.
Comment utiliser
CodeQwen dispose de méthodes de déploiement et d'invocation flexibles, couvrant tous les scénarios, des expériences locales au déploiement en production.
Raisonnement local (Transformateurs)
à partir des transformateurs, importez AutoModelForCausalLM, AutoTokenizer
nom_modèle = "Qwen/CodeQwen1.5-7B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
modèle = AutoModelForCausalLM.from_pretrained(
nom_modèle,
device_map="auto",
trust_remote_code=Vrai
).eval()
réponse, history = model.chat(tokenizer, "Écrire une fonction de tri rapide en Python", history=Aucun)
imprimer (réponse)
Déploiement d'API compatible OpenAI (vLLM)
pip installer vllm
python -m vllm.entrypoints.openai.api_server \
--modèle Qwen/CodeQwen1.5-7B-Chat \
--trust-remote-code \
--dtype bfloat16
Appelez ensuite via OpenAI SDK :
depuis openai importer OpenAI
client = OpenAI (
api_key="<VOTRE_API_KEY>",
base_url="http://localhost:8000/v1"
)
chat_response = client.chat.completions.create(
modèle="Qwen/CodeQwen1.5-7B-Chat",
messages=[{"role": "user", "content": "Implémentation d'un cache LRU en C++"}],
max_tokens=2048,
température=0,2
)
print(chat_response.choices[0].message.content)
Déploiement léger local (Ollama/llama.cpp)
CodeQwen1.5 prend en charge le déploiement en un clic via Ollama et peut également effectuer une inférence CPU via llama.cpp. Les poids des modèles ont été téléchargés sur Hugging Face et la communauté a fourni une version quantifiée au format GGUF.
API Alibaba Cloud DashScope
Les modèles de la série Tongyi Qianwen (y compris les capacités de codage) peuvent être appelés en ligne via Alibaba Cloud DashScope :
importer un tableau de bord
à partir de la génération d'importation Dashscope
dashscope.api_key = "<VOTRE_DASHSCOPE_API_KEY>"
réponse = Génération.appel (
modèle="qwen-turbo",
messages=[{"role": "user", "content": "Écrire un décorateur Python pour mesurer le temps d'exécution des fonctions"}]
)
imprimer(réponse.output.text)
Prix des produits
- Poids open source : Les poids modèles de CodeQwen1.5-7B et CodeQwen1.5-7B-Chat peuvent être téléchargés gratuitement sur Hugging Face et ModelScope, en utilisant le CONTRAT DE LICENCE DE RECHERCHE Tongyi Qianwen (peut être utilisé pour la recherche, l'utilisation commerciale nécessite l'autorisation d'Alibaba Cloud).
- API DashScope : appelez les modèles de la série Tongyi Qianwen via Alibaba Cloud DashScope, facturés par Token. Les prix spécifiques de qwen-turbo et qwen-plus sont soumis à la page de tarification officielle de DashScope, qui est généralement inférieure au prix API des modèles de la série GPT.
- Coût de déploiement privé : dépend de la sélection du matériel GPU. La version quantifiée Int4 peut fonctionner sur un seul RTX 3090/4090 (24 Go de mémoire vidéo), et la version BF16 recommande d'utiliser un GPU avec plus de 24 Go de mémoire vidéo. Le déploiement en entreprise doit également prendre en compte le cadre d'inférence (vLLM/SGLang), l'équilibrage de charge ainsi que les coûts d'exploitation et de maintenance.
- Quota gratuit : l'API DashScope fournit un quota d'appels gratuit pour les nouveaux utilisateurs (sous réserve de la dernière politique officielle d'Alibaba Cloud). Le déploiement open source lui-même n'a aucune limite d'utilisation.
Scénarios d'application
- Déploiement privé de AI Programming Assistant : les entreprises peuvent déployer CodeQwen sur des serveurs internes comme alternative open source à GitHub Copilot. Il est particulièrement adapté aux scénarios tels que la finance, les affaires gouvernementales et l'industrie militaire qui ont des exigences strictes en matière de confidentialité des données de code. Connectez-vous à l'API du modèle via l'extension VSCode ou le plug-in JetBrains pour compléter, interpréter et réviser le code. Le déploiement nécessite que l'entreprise dispose d'une infrastructure GPU ou soit en mesure d'accepter les appels d'API cloud.
- Requête de données texte vers SQL : le personnel commercial non technique décrit les exigences de requête en langage naturel et CodeQwen les convertit en instructions SQL exécutables. Scénarios de requêtes en libre-service adaptés aux analystes de données, aux opérateurs et aux chefs d'entreprise pour réduire la dépendance à l'égard de l'équipe de données. Il convient de noter que la précision des requêtes JOIN multi-tables complexes peut être inférieure à celle de GPT-4. Il est recommandé d'ajouter une révision manuelle aux requêtes clés.
- Assistance à l'enseignement et à l'apprentissage du code : CodeQwen-Chat peut servir de partenaire d'apprentissage en programmation, expliquant des extraits de code, fournissant des exemples et signalant les erreurs. Pour les débutants en programmation, il fournit un guide conversationnel étape par étape du processus de codage. Cependant, le modèle peut générer du code dangereux ou des méthodes d'écriture présentant des risques de sécurité, c'est pourquoi la sensibilisation à un codage sûr doit être soulignée dans l'enseignement.
- Migration et refactorisation de code : migrez le code d'anciens langages (tels que COBOL, Fortran) vers des langages modernes (tels que Python, Java) ou refactorisez le code entre différents frameworks. Les capacités de traduction multilingue de CodeQwen proviennent de sa couverture de pré-formation sur 92 langues. Il est recommandé d’effectuer une vérification adéquate des tests unitaires sur le code migré.
Personnes concernées
- Développeurs de logiciels : utilisez CodeQwen pour vous aider à la génération, au débogage et à l'interprétation de code pendant le processus de codage. Prend en charge l'intégration IDE grand public (via l'interface API d'Ollama ou de vLLM), adaptée aux développeurs individuels et aux petites équipes à la recherche d'un assistant de code open source gratuit. Des capacités de déploiement local du modèle de base sont requises pour une expérience optimale.
- Ingénieurs et analystes de données : exploitez les fonctionnalités Text-to-SQL pour interroger rapidement les bases de données ou utilisez des scripts Python pour automatiser les tâches de traitement des données. Les performances de CodeQwen en génération SQL sont proches de GPT-4 et sont suffisamment fiables pour les requêtes régulières. Ne convient pas aux requêtes ultra-complexes et aux scénarios à forte concurrence (il est recommandé d'utiliser des assistants IA de bases de données commerciales).
- Développeurs d'applications IA : intégrez CodeQwen en tant que module de génération de code back-end dans une application d'IA auto-développée et déployez-la vous-même via un poids open source, sans vous fier aux restrictions de prix et de contrôle de fréquence des API tierces. Il est nécessaire d'évaluer les restrictions d'utilisation commerciale de la licence de recherche et vous devez demander l'autorisation d'Alibaba Cloud avant toute utilisation commerciale.
- Chercheurs universitaires : recherchez le parcours technique, les méthodes de réglage fin et les critères d'évaluation des grands modèles de code. Les pondérations open source et le rapport technique complet de CodeQwen1.5 fournissent un modèle de base reproductible pour la recherche sur le code LLM. Convient à la recherche en intelligence de code, en automatisation du génie logiciel et dans d'autres domaines.
Ne convient pas aux frontières : CodeQwen n'est pas adapté aux scénarios de conversation généraux (par rapport au modèle général Qwen2 de la même période, ses capacités de chat et de création de domaine ouvert sont insuffisantes) ; il ne convient pas aux scénarios qui nécessitent plus de 80 000 contextes ultra-longs (la limite supérieure de la fenêtre contextuelle est de 64 000) ; il n'est pas adapté aux services en ligne qui nécessitent une faible latence en temps réel (la vitesse d'inférence est limitée lorsqu'elle n'est pas optimisée par vLLM) ; il ne convient pas à une utilisation directe des résultats du modèle dans des contextes de production avec des exigences de sécurité du code extrêmement élevées (une révision manuelle du code est requise).
Résumé et Outlook
CodeQwen1.5-7B est une tentative importante de l'équipe Alibaba Tongyi Qianwen en direction de modèles spécifiques au code. C'était également l'un des modèles de code open source les plus puissants à l'époque avec un niveau de paramètre 7B. Ses principaux avantages résident dans : des capacités approfondies de compréhension du code apportées par une pré-formation sur 3 000 milliards de données de code de jeton, des capacités de traitement de fenêtres contextuelles de 64 000 pour le code au niveau de l'entrepôt et une couverture étendue de 92 langues. Ses performances sur plusieurs benchmarks de code tels que HumanEval, MBPP et SWE-Bench ont confirmé sa compétitivité.
Limitations actuelles : CodeQwen n'a actuellement qu'une taille de 7 B et ne dispose pas d'une version avec une plus grande échelle de paramètres pour atteindre des références plus élevées ; la licence de recherche n'est pas commerciale et les entreprises doivent demander une autorisation supplémentaire ; le modèle a été publié relativement tôt (avril 2024) et la série Qwen3 ultérieure intègre des capacités de code dans le modèle général.
Évaluation des risques d'approvisionnement et d'adoption : Pour les équipes qui souhaitent privatiser le déploiement d'assistants de code, CodeQwen1.5 est une solution de départ à faible risque : le poids open source peut être obtenu gratuitement à 7 B, la balance peut être exécutée sur des cartes graphiques grand public et l'écosystème communautaire est complet. Il est recommandé d'utiliser Ollama ou Transformers pour effectuer une vérification PoC localement afin de confirmer que la qualité de la génération de code répond aux exigences commerciales, puis d'évaluer les exigences d'autorisation commerciale. Pour les équipes qui recherchent les dernières capacités de codage, la série Qwen3-Coder peut être considérée comme une solution successeur. Avant que tous les environnements de production soient utilisés, un processus d'audit de sécurité du code doit être établi pour effectuer l'examen de sécurité et la couverture des tests nécessaires sur le code généré par le modèle.
Outils associés : github-copilot, cursor
Informations de version
- CodeQwen1.5-7B-Chat :La première version publique est basée sur l'architecture Qwen1.5, les paramètres 7B, prend en charge 92 langages de programmation et 64K contextes, et atteint 83,5% pass@1 sur HumanEval.
- CodeQwen1.5-7B :Le modèle de base de code (Base) est pré-entraîné sur environ 3 000 milliards de données de code de jeton et prend en charge la complétion et le réglage précis du code. Il n’y a pas encore de date officielle précise, veuillez vous référer à la date de sortie du blog du 16/04/2024.
Avis des utilisateurs