Wenxin Yiyan : Produit central de la série de grands modèles de Baidu Qianfan, il s'agit d'un modèle de langage ultra-grand échelle développé indépendamment par Baidu.
ERNIE Bot : Une série d'applications et de services d'IA basés sur Wenxin Yiyan.
Caractéristiques techniques
- Grande quantité de paramètres : Capacité solide de compréhension et de génération de langage.
- Support multimodal : Traite diverses modalités telles que texte, image et audio.
- Optimisation continue : Amélioration continue des performances grâce à l'entraînement et l'optimisation.
Applications
- Service client intelligent : Capacité de dialogue naturel.
- Création de contenu : Assistance à la rédaction d'articles et de textes publicitaires.
- Questions-réponses : Répondre à des questions dans divers domaines.
- Génération de code : Création de code à partir de descriptions en langage naturel.
Avantages techniques
- Forte capacité de traitement du chinois : Optimisé spécifiquement pour le contexte chinois.
- Intégration industrielle : Intégration profonde avec les produits comme Baidu Recherche et Baidu Carte.
- Plateforme ouverte : Fournit des interfaces API pour les développeurs.
Description des modèles
| Modèle | Description |
|---|---|
| ERNIE-4.0-8K | Modèle de langage ultra-grand échelle développé indépendamment par Baidu, amélioré par rapport à ERNIE 3.5, adapté à divers scénarios complexes ; supporte l'intégration automatique avec les plugins de recherche Baidu pour garantir la pertinence des informations. |
| ERNIE-4.0-8K-Preview | Version préliminaire du modèle ERNIE-4.0-8K, identique aux caractéristiques du modèle principal. |
| ERNIE-4.0-8K-Latest | Améliorations globales par rapport à ERNIE-4.0-8K, notamment dans les capacités de rôle et de suivi des instructions ; supporte 5K tokens d'entrée + 2K tokens de sortie. |
| ERNIE-4.0-8K-0613 | Version publiée le 13 juin 2024, incluant les améliorations en traitement d'informations, capacité de codage, questions-réponses et conversations multi-tours. |
| ERNIE-4.0-Turbo-8K | Modèle ultra-grand échelle de Baidu, performant dans divers scénarios complexes ; supérieur à ERNIE 4.0 en termes de performance. |
| ERNIE-4.0-Turbo-8K-Preview | Version préliminaire du modèle ERNIE-4.0-Turbo-8K. |
| ERNIE-4.0-Turbo-8K-Latest | Améliorations par rapport à ERNIE-4.0-Turbo-8K, version finale. |
| ERNIE-4.0-Turbo-8K-0628 | Version publiée le 28 juin 2024, optimisée pour la performence. |
| ERNIE-4.0-Turbo-128K | Version avec une fenêtre contextuelle de 128K tokens, améliorée par rapport au modèle ERNIE-4.0. |
| ERNIE-3.5-8K | Modèle de grande échelle de Baidu, couvrant un vaste corpus anglais et chinois, avec une forte capacité générale, adapté à la plupart des scénarios de dialogue, de génération de contenu et d'utilisation de plugins. |
| ERNIE-3.5-8K-Preview | Version préliminaire du modèle ERNIE-3.5-8K. |
| ERNIE-3.5-128K | Version avec une fenêtre contextuelle de 128K tokens, publiée le 16 mai 2024. |
| ERNIE-3.5-128K-Preview | Version préliminaire du modèle ERNIE-3.5-128K. |
| ERNIE-3.5-8K-0613 | Version publiée le 13 juin 2024, améliorée dans le traitement des informations, la génération de code, les questions-réponses et les conversations. |
| ERNIE-3.5-8K-0701 | Version publiée le 1er juillet 2024, avec des améliorations significatives en calcul mathématique et raisonnement logique. |
| ERNIE-Speed-Pro-128K | Nouveau modèle de grande échelle développé par Baidu en 2024, optimisé pour les tâches spécifiques, supporte une longueur contextuelle de 128K. |
| ERNIE-Speed-8K | Modèle de grande échelle publié en février 2024, supporte une longueur contextuelle de 8K. |
| ERNIE-Speed-128K | Version publiée le 14 mars 2024, supporte une longueur contextuelle de 128K. |
| ERNIE-Character-8K | Modèle spécialisé pour des scénarios spécifiques, idéal pour les personnages de jeu, les dialogues clients et les rôles. |
| ERNIE-Character-Fiction-8K | Version adaptée pour les scénarios fictifs. |
| ERNIE-Character-Fiction-8K-Preview | Version préliminaire publiée le 28 octobre 2024, améliorée en capacité de rôle et en créativité narrative. |
| ERNIE-Lite-8K | Modèle léger, équilibrant qualité et performance, adapté aux cartes d'accélération IA à faible puissance. |
| ERNIE-Lite-8K-0725 | Version publiée le 25 juillet 2023, supporte une longueur contextuelle de 8K. |
| ERNIE-Lite-4K-0704 | Version publiée le 4 juillet 2023, supporte une longueur contextuelle de 4K. |
| ERNIE-Lite-4K-0516 | Version enitiale publiée le 16 mai 2023, supporte une longueur contextuelle de 4K. |
| ERNIE-Lite-128K-0419 | Version publiée le 19 avril 2024, supporte une longueur contextuelle de 128K. |
| ERNIE-Lite-128K-0722 | Version publiée le 22 juillet 2024, supporte une longueur contextuelle de 128K. |
| ERNIE-Lite-Pro-128K | Version améliorée de ERNIE-Lite, optimisée pour une meilleure performance. |
| ERNIE-Functions-8K-0321 | Modèle spécialisé pour les scénarios de dialogue nécessitant l'utilisation d'outils externes. |
| ERNIE-Tiny-8K | Modèle ultra-performant de Baidu, avec le coût de déploiement et d'ajustement le plus faible de la série Wenxin. |
| ERNIE-Tiny-128K-0929 | Version publiée le 29 septembre 2024, supporte une longueur contextuelle de 128K. |
| ERNIE-Novel-8K | Modèle général de Baidu, excellent dans la génération de romans, aussi applicable à des scénarios de courtes séries ou films. |
| Qianfan-Agent-Speed-8K | Modèle dédié pour les agents, optimisé pour les applications d'entreprise, supporte une longueur contextuelle de 8K. |
| Qianfan-Agent-Speed-32K | Version supportant une longueur contextuelle de 32K. |
| Qianfan-Agent-Lite-8K | Version légère pour les agents, supporte une longueur contextuelle de 8K. |
| Gemma-2B-it | Modèle léger open source développé par Google, adapté aux tâches de génération de texte sur des dispositifs à ressources limitées. |
| Mistral-7B-Instruct | Modèle de 7 milliards de paramètres développé par Mistral AI, performant en raisonnement et moins exigeant en ressources matérielles. |
| Meta-Llama-3-8B-Instruct | Modèle de 8 milliards de paramètres de la série Meta Llama 3, performant dans les tâches complexes de langage et de traduction. |
| Meta-Llama-3-70B-Instruct | Modèle de 70 milliards de paramètres, excellent en compréhension de langage et en exécution de tâches complexes. |
| Qianfan-Chinese-Llama-2-7B-32K | Version améliorée du modèle Qianfan-Chinese-Llama-2-7B, supporte une longueur contextuelle de 32K. |
| Qianfan-Chinese-Llama-2-13B-v2 | Modèle pré-entraîné de 13 milliards de paramètres, supporte le chinois et l'anglais, avec une fenêtre contextuelle de 4K. |
| Qianfan-Chinese-Llama-2-13B-v1 | Version améliorée en chinois basée sur Llama-2-13b. |
| Qianfan-Llama-2-70B-compressed | Version compressée du modèle Llama-2-70B, utilisant des techniques de quantification et de compression. |
| Linly-Chinese-LLaMA-2-7B | Version chinoise améliorée du Llama-2 7b. |
| Linly-Chinese-LLaMA-2-13B | Version chinoise améliorée du Llama-2 13b. |
| Qianfan-Chinese-Llama-2-1.3B | Modèle pré-entraîné de 1,3 milliard de paramètres, supporte le chinois et l'anglais, avec une fenêtre contextuelle de 4K. |
| ChatGLM3-6B-32K | Modèle de dialogue bilingue chinois/anglais, amélioré pour la compréhension des textes longs, supporte jusqu'à 32K de contexte. |
| ChatGLM3-6B | Modèle de dialogue bilingue chinois/anglais, supporte l'appel de fonctions et l'exécution de code. |
| ChatGLM2-6B | Modèle de dialogue bilingue chinois/anglais, avec une excellente performance de raisonnement et une longueur contextuelle étendue. |
| ChatGLM2-6B-INT4 | Version quantifiée à 4 bits, supporte une longueur de dialogue de 8K avec 6Go de VRAM. |
| Baichuan2-7B-Chat | Modèle de grande échelle open source de Baichuan Intelligence, entraîné sur 2,6 trillions de tokens. |
| Baichuan2-13B-Chat | Version de 13 milliards de paramètres du modèle Baichuan2. |
| XVERSE-13B-Chat | Modèle multilingue de 13 milliards de paramètres, supporte 8K de contexte et plus de 40 langues. |
| DISC-MedLLM | Modèle médical spécialisé conçu pour les scénarios de conversation dans le domaine de la santé, développé par le laboratoire Fudan-DISC. |
| Falcon-7B | Modèle de 1500 milliards de tokens, optimisé pour les tâches de dialogue complexes. |
| Falcon-40B-Instruct | Modèle optimisé pour les tâches de raisonnement complexe. |
| RWKV-4-World | Modèle hybride combinant Transformer et RNN, entraîné sur plus de 100 langues. |
| RWKV-4-pile-14B | Modèle causal entraîné sur le dataset Pile. |
| RWKV-Raven-14B | Version optimisée pour les dialogues, entraînée sur Alpaca et CodeAlpaca. |
| OpenLLaMA-7B | Modèle basé sur Llama, optimisé pour un large éventail de vocabulaire et de tokens. |
| Dolly-12B | Modèle de grande échelle suivant des instructions, entraîné sur environ 15k paires instruction/réponse. |
| MPT-7B-Instruct | Modèle court de suivi d'instructions, optimisé sur des jeux de données spécifiques. |
| MPT-30B-instruct | Version améliorée de MPT-7B-Instruct. |
| OA-Pythia-12B-SFT-4 | Modèle de la quatrième itération SFT de Open-Assistant, entraîné sur des données de feedback humain. |
Utilisation du SDK Java
Installation du SDK Java
Prérequis : Java 8 ou version ultérieure.
Maven :
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>0.22.0</version>
</dependency>
Exemple d'appel
Non-flux
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatCompletion;
import com.openai.models.ChatCompletionCreateParams;
import com.openai.models.ChatCompletionUserMessageParam;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey("votre_cle_api")
.baseUrl("https://qianfan.baidubce.com/v2/")
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("Bonjour")
.model("ernie-tiny-8k")
.build();
ChatCompletion chatCompletion = client.chat().completions().create(params);
System.out.println(chatCompletion.choices().get(0).message().content());
}
}
Flux
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.http.StreamResponse;
import com.openai.models.ChatCompletionChunk;
import com.openai.models.ChatCompletionCreateParams;
import com.openai.models.ChatCompletionUserMessageParam;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey("votre_cle_api")
.baseUrl("https://qianfan.baidubce.com/v2/")
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("Bonjour")
.model("ernie-tiny-8k")
.build();
StreamResponse<ChatCompletionChunk> chatCompletion = client.chat().completions().createStreaming(params);
Consumer<ChatCompletionChunk> consumer = s -> System.out.println(s.choices().get(0).delta().content());
chatCompletion.stream().forEach(consumer);
}
}
Paramètres personnalisés
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.JsonValue;
import com.openai.models.ChatCompletionCreateParams;
import com.openai.models.ChatCompletion;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey("votre_cle_api")
.baseUrl("https://qianfan.baidubce.com/v2/")
.build();
Map<String, String> safetyMap = new HashMap<>();
safetyMap.put("input_level", "standard");
Map<String, Boolean> websearchMap = new HashMap<>();
websearchMap.put("enable", true);
websearchMap.put("enable_trace", true);
Map<String, Map<String, String>> extraDataMap = new HashMap<>();
extraDataMap.put("safety", safetyMap);
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("Quel temps fait-il à Shanghai aujourd'hui?")
.model("ernie-3.5-8k")
.putAdditionalBodyProperty("safety", JsonValue.from(safetyMap))
.putAdditionalBodyProperty("web_search", JsonValue.from(websearchMap))
.putAdditionalHeader("appid", "app-xxxxxxxx")
.build();
ChatCompletion chatCompletion = client.chat().completions().create(params);
System.out.println(chatCompletion.choices().get(0).message().content());
}
}