cursus
DeepSeek V3 : guide avec projet de démonstration
DeepSeek marque une avancée significative avec l'introduction de DeepSeek-V3, un modèle qui surpasse son prédécesseur en termes de codage, de raisonnement mathématique et de capacités de traitement du langage naturel.
Dans ce tutoriel, je vous guiderai pas à pas dans la création d'un assistant de révision de code avec DeepSeek-V3. Nous apprendrons également à l'intégrer à Gradio pour donner à l'application une interface conviviale.
Qu'est-ce que DeepSeek-V3 ?
DeepSeek V3 est un mélange d'experts (MoE) avec 671 milliards de paramètres, dont 37 milliards sont activés par jeton.
Il a été entraîné sur 14,8 billions de jetons de haute qualité et excelle dans diverses tâches, notamment la génération et l'analyse de code. L'architecture du modèle intègre des innovations telles que l'attention latente multitête (MLA) et une stratégie sans perte auxiliaire pour l’équilibrage de la charge, afin d’assurer une inférence efficace et un entraînement économique.
Le mécanisme d'attention latente multitête (MLA) permet au modèle de se concentrer simultanément sur plusieurs aspects de l'entrée, ce qui améliore l'efficacité de l'inférence. L'architecture DeepSeekMoE utilise une approche de mélange d'experts (MoE) pour optimiser les coûts de l’entraînement et les performances.
Source : DeepSeek-AI
Une stratégie d'équilibrage de la charge sans perte auxiliaire répartit uniformément la charge de calcul sans s'appuyer sur des fonctions de perte auxiliaire, ce qui améliore la stabilité de l’entraînement. En outre, un objectif de prédiction multijeton permet au modèle de prédire simultanément plusieurs jetons, ce qui améliore les performances et permet un décodage spéculatif afin d’accélérer l’inférence.
Voici quelques-unes des raisons qui rendent DeepSeek-V3 particulièrement intéressant à mes yeux :
- Il offre un raisonnement et une compréhension avancés ; il convient donc à des tâches complexes telles que la saisie semi-automatique et l'analyse de code.
- Avec une vitesse de traitement de 60 jetons par seconde, DeepSeek-V3 est trois fois plus rapide que son prédécesseur, DeepSeek-V2.
- Le modèle et les documents de recherche qui l'accompagnent sont entièrement open source, ce qui favorise la transparence et la collaboration de la communauté.
Comment se connecter à l'API DeepSeek-V3
Pour intégrer DeepSeek V3 dans notre application, nous devons configurer la clé API. Suivez la procédure ci-dessous pour accéder à votre clé API :
1. Rendez-vous sur DeepSeek.com et cliquez sur « API Platform ».
2. Inscrivez-vous sur la plateforme API de DeepSeek.
3. Cliquez sur « Top up » pour recharger et ajoutez le montant requis à votre compte. Au moment de la rédaction de cet article, les tarifs de l'API DeepSeek sont les suivants :
- Entrée (absent du cache) : 0,27 $/million de jetons
- Entrée (présent dans le cache) : 0,07 $/million de jetons
- Sortie : 1,10 $/million de jetons
3. Accédez à l'onglet API Keys sur la gauche et cliquez sur « Create new API key ». Enfin, définissez un nom pour la clé API et copiez-le pour une utilisation ultérieure.
Aperçu du projet de démo : Assistant de révision du code avec Gradio
L'application que nous allons créer est un assistant interactif qui utilise les capacités de DeepSeek V3 pour fournir des révisions de code pertinentes par le biais d'une interface conviviale.
Avant de commencer, assurez-vous que les éléments suivants sont installés :
- Python 3.8+.
- Bibliothèques requises : Installez les paquets Python nécessaires à l'aide de pip :
pip install requests gradio
Maintenant que toutes les dépendances sont installées, configurons l'API DeepSeek.
Étape 1 : Connexion à l'API de DeepSeek
Le script suivant montre comment interagir avec l'API DeepSeek pour obtenir des réponses à partir des prompts de l'utilisateur. Notez que l'API de DeepSeek est compatible avec le format d'OpenAI et utilise une URL de base pour les requêtes API.
import requests
import json
# Replace 'YOUR_API_KEY' with your actual DeepSeek API key
API_KEY = 'YOUR_API_KEY'
API_URL = 'https://api.deepseek.com/chat/completions'
HEADERS = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {API_KEY}'
}
def get_deepseek_response(prompt):
"""Fetches a response from the DeepSeek API based on the given prompt."""
data = {
'model': 'deepseek-chat', # Specifies the DeepSeek V3 model
'messages': [
{'role': 'system', 'content': 'You are a helpful code reviewer.'},
{'role': 'user', 'content': prompt}
],
'stream': False # Set to True for streaming responses
}
response = requests.post(API_URL, headers=HEADERS, data=json.dumps(data))
if response.status_code == 200:
result = response.json()
return result['choices'][0]['message']['content'].strip()
else:
raise Exception(f"Error {response.status_code}: {response.text}")
Décortiquons le code ci-dessus plus en détail :
- Les bibliothèques
requests
etJSON
sont importées pour, respectivement, envoyer des requêtes HTTP POST à l'API DeepSeek et gérer l'encodage de la charge utile de la requête au format JSON. - Configurez votre clé API et l'URL de base qui spécifie le point de terminaison de l'API DeepSeek pour les résultats du chat.
- La fonction
get_deepseek_response
envoie un prompt à l'API et récupère la réponse. - Nous construisons la charge utile de la requête avec le modèle spécifié, l'historique des messages et la préférence de streaming, puis nous envoyons une requête POST au point de terminaison de l'API avec les en-têtes et la charge utile JSON appropriés. Si la réponse a un code d'état 200, elle indique une réussite ; la réponse de l'assistant est analysée et renvoyée. Dans le cas contraire, une exception est levée avec les détails de l'erreur.
Nous allons ensuite concevoir les principales fonctionnalités de l'application.
Étape 2 : Conception des fonctionnalités essentielles
Nous allons définir une fonction qui prend un extrait de code en entrée et utilise DeepSeek-V3 pour l'analyser et fournir des commentaires et des suggestions.
def review_code(code_snippet):
prompt = f"""
Code Snippet:
{code_snippet}
Task: Analyze the provided code snippet. Identify any errors or potential improvements, suggest optimizations, and provide alternative implementations if applicable.
"""
return get_deepseek_response(prompt)
Nous avons mis en place un outil de révision de code qui prend un extrait de code, l'incorpore dans un prompt de tâche, et transmet le prompt final pour obtenir une réponse du modèle.
Nous allons ensuite développer une interface web Gradio simple pour notre application de révision de code.
Étape 3 : Création de l'interface Gradio
Gradio nous permet de créer une interface web interactive pour notre application. L'extrait de code suivant crée une interface web Gradio conviviale pour la fonction review_code()
. L'interface Gradio prend les données de l'utilisateur et les transmet au modèle pour validation.
import gradio as gr
def code_reviewer_ui(code):
return review_code(code)
interface = gr.Interface(
fn=code_reviewer_ui,
inputs=gr.Code(language='python', lines=20, label="Paste your code here"),
outputs=gr.Textbox(label="Review Feedback"),
title="AI Code Reviewer Assistant",
description="Analyze your code snippets, receive feedback, and discover improvements.",
)
interface.launch(share=True)
La configuration ci-dessus comprend trois éléments :
- Entrée : Un composant
gr.Code
où les utilisateurs peuvent coller leur code. - Sortie : Une page
gr.Textbox
affichant les commentaires de DeepSeek V3. - Interface : L’
gr.Interface
relie l'entrée et la sortie et lance une application web pour l'interaction avec l'utilisateur.
Étape 4 : Tester l'application
Testons notre application à l'aide d'un exemple simple :
J'ai essayé plusieurs exemples de code pour tester ce modèle et il a produit une révision correcte à chaque fois.
Conclusion
Dans ce tutoriel, nous avons créé un assistant de révision de code utilisant l'IA à l’aide de DeepSeek V3 et Gradio. Cet outil peut analyser des extraits de code, fournir des commentaires constructifs et suggérer des améliorations, accélérant ainsi votre processus de développement.
N'hésitez pas à étendre ses capacités ou à l'intégrer dans des projets plus vastes afin de rationaliser davantage votre workflow de codage.
Pour en savoir plus sur l'écosystème DeepSeek, je vous recommande ces blogs :

Je suis un expert Google Developers en ML (Gen AI), un expert Kaggle 3x, et un ambassadeur Women Techmakers avec plus de 3 ans d'expérience dans la technologie. J'ai cofondé une startup dans le domaine de la santé en 2020 et je poursuis un master en informatique à Georgia Tech, avec une spécialisation dans l'apprentissage automatique.
Apprenez l'IA avec ces cours !
cours
Développement de systèmes d'IA avec l'API OpenAI
cours