Τεχνητή νοημοσύνη
Mistral 2 και Mistral NeMo: Ένας Ολοκληρωμένος Οδηγός για τα Τελευταία LLM που Έρχονται από το Παρίσι

Ιδρυθείσα από αποφοίτους του Google’s DeepMind και Meta, η paris-based εταιρεία Mistral AI έχει συνεχώς κάνει κύματα στην κοινότητα του AI από το 2023.
Η Mistral AI首先 drew την προσοχή του κόσμου με το debut μοντέλο της, Mistral 7B, που κυκλοφόρησε το 2023. Αυτό το μοντέλο 7 δισεκατομμυρίων παραμέτρων απέκτησε γρήγορα τη προσοχή για την εντυπωσιακή του απόδοση, ξεπερνώντας μεγαλύτερα μοντέλα όπως το Llama 2 13B σε διάφορες βάσεις και ακόμη και αντιπαλίζοντας το Llama 1 34B σε πολλές μετρικές. Αυτό που έκανε το Mistral 7B να ξεχωρίσει δεν ήταν μόνο η απόδοσή του, αλλά και η προσβασιμότητά του – το μοντέλο μπορούσε να κατεβάσει εύκολα από το GitHub ή ακόμη και μέσω ενός 13,4-gigabyte torrent, καθιστώντας το εύκολα διαθέσιμο για ερευνητές και développers παγκοσμίως.
Η μη συμβατική προσέγγιση της εταιρείας στις κυκλοφορίες, συχνά παρακάμπτοντας τις παραδοσιακές εργασίες, τα blogs ή τα δελτία τύπου, έχει αποδειχθεί εξαιρετικά αποτελεσματική στην κατοχή της προσοχής της κοινότητας του AI. Αυτή η στρατηγική, σε συνδυασμό με την δέσμευσή τους για τις αρχές του ανοικτού κώδικα, έχει τοποθετήσει την Mistral AI ως一个 ισχυρό παίκτη στο τοπίο του AI.
Η ταχεία άνοδος της εταιρείας στη βιομηχανία είναι περαιτέρω αποδεικνυμένη από την πρόσφατη επιτυχία της χρηματοδότησής της. Η εταιρεία πέτυχε μια αξιολόγηση 2 δισεκατομμυρίων δολαρίων μετά από μια χρηματοδότηση που ηγήθηκε η Andreessen Horowitz. Αυτό ήρθε στα πόδια μιας ιστορικής seed γύρου – η μεγαλύτερη στην ευρωπαϊκή ιστορία – που δείχνει την τεράστια πίστη που οι επενδυτές έχουν στην οράματα και τις ικανότητες της Mistral AI.
Πέρα από τις τεχνολογικές προόδους, η Mistral AI έχει επίσης συμμετάσχει ενεργά στη διαμόρφωση της πολιτικής του AI, ιδιαίτερα στις συζητήσεις γύρω από τον EU AI Act, όπου έχουν υποστηρίξει τη μείωση της ρύθμισης στον ανοικτό κώδικα του AI.
Τώρα, το 2024, η Mistral AI έχει ξανασηκώσει το μπαρ με δύο πρωτοποριακά μοντέλα: Mistral Large 2 (γνωστό και ως Mistral-Large-Instruct-2407) και Mistral NeMo. Σε αυτόν τον ολοκληρωμένο οδηγό, θα βουτήξουμε βαθιά στις λειτουργίες, την απόδοση και τις πιθανές εφαρμογές αυτών των εντυπωσιακών μοντέλων AI.
Κλειδιά προδιαγραφές του Mistral Large 2 περιλαμβάνουν:
- 123 δισεκατομμύρια παράμετροι
- 128k παράθυρο περιεχομένου
- Υποστήριξη για δεκάδες γλώσσες
- Επάρκεια σε 80+ γλώσσες προγραμματισμού
- Προηγμένα χαρακτηριστικά κλήσεων συναρτήσεων
Το μοντέλο σχεδιάστηκε για να ωθήσει τα όρια της αποδοτικότητας κόστους, ταχύτητας και απόδοσης, καθιστώντας το μια ελκυστική επιλογή για ερευνητές και entreprises που επιθυμούν να εκμεταλλευτούν τα πιο πρόσφατα AI.
Mistral NeMo: Το Νέο Μικρότερο Μοντέλο
Ενώ το Mistral Large 2 αντιπροσωπεύει το καλύτερο των μεγάλων μοντέλων της Mistral AI, το Mistral NeMo, που κυκλοφόρησε τον Ιούλιο του 2024, ακολουθεί μια διαφορετική προσέγγιση. Αναπτύχθηκε σε συνεργασία με την NVIDIA, το Mistral NeMo είναι ένα πιο συμπαγές μοντέλο 12 δισεκατομμυρίων παραμέτρων που προσφέρει ακόμη εντυπωσιακές ικανότητες:
- 12 δισεκατομμύρια παράμετροι
- 128k παράθυρο περιεχομένου
- Κορυφαία απόδοση στην κατηγορία του μεγέθους
- Apache 2.0 άδεια για ανοικτή χρήση
- Quantization-aware εκπαίδευση για αποτελεσματική συλλογή
Το Mistral NeMo τοποθετείται ως αντικατάσταση για συστήματα που χρησιμοποιούν目前 το Mistral 7B, προσφέροντας ενισχυμένη απόδοση ενώ διατηρεί την ευκολία χρήσης και τη συμβατότητα.
Κλειδιά Χαρακτηριστικά και Ικανότητες
Και το Mistral Large 2 και το Mistral NeMo μοιράζονται几个 κλειδιά χαρακτηριστικά που τα ξεχωρίζουν στο τοπίο του AI:
- Μεγάλα Παράθυρα Περιεχομένου: Με 128k token μήκος παραθύρου, και τα δύο μοντέλα μπορούν να επεξεργαστούν και να κατανοήσουν πολύ μεγαλύτερα κομμάτια κειμένου, ermögνωντας πιο συνεκτικές και контεκστούλες εξόδους.
- Πολυγλωσσική Υποστήριξη: Τα μοντέλα excelling σε ένα ευρύ φάσμα γλωσσών, συμπεριλαμβανομένων των αγγλικών, γαλλικών, γερμανικών, ισπανικών, ιταλικών, κινέζικων, ιαπωνικών, κορεατικών, αραβικών και ινδικών.
- Προηγμένα Χαρακτηριστικά Κωδικοποίησης: Και τα δύο μοντέλα δείχνουν εξαιρετική επάρκεια στη γενιά κώδικα σε πολλές γλώσσες προγραμματισμού.
- Ακολουθία Οδηγιών: Σημαντικές βελτιώσεις έχουν γίνει στην ικανότητα των μοντέλων να ακολουθούν ακριβείς οδηγίες και να χειρίζονται πολλαπλές συζητήσεις.
- Κλήση Συναρτήσεων: Φυσική υποστήριξη για κλήση συναρτήσεων επιτρέπει σε αυτά τα μοντέλα να αλληλεπιδρούν δυναμικά με εξωτερικά εργαλεία και υπηρεσίες.
- Λογική και Επίλυση Προβλημάτων: Ενισχυμένες ικανότητες σε μαθηματικές λογικές και σύνθετες εργασίες επίλυσης προβλημάτων.
Ας εξετάσουμε κάποια από αυτά τα χαρακτηριστικά και να δούμε πώς λειτουργούν στην πράξη.
Βελτιστοποίηση Απόδοσης
Για να κατανοήσουμε τις πραγματικές ικανότητες του Mistral Large 2 και του Mistral NeMo, είναι απαραίτητο να κοιτάξουμε την απόδοσή τους σε διάφορες βάσεις:
Mistral Large 2 Βελτιστοποίηση
Αυτή η πίνακας παρουσιάζει την επάρκεια των verschiedenen LLMs σε διάφορες γλώσσες προγραμματισμού. Μοντέλα όπως το Mistral Large 2 (24.07), Llama 3.1 (405B) και GPT-4o αξιολογούνται στην ικανότητά τους να κατανοήσουν και να γεννήσουν κώδικα σε γλώσσες όπως Python, C++, Bash, Java, TypeScript, PHP και C#.
Το Llama 3.1 405B δείχνει ισχυρή απόδοση σε πολλές γλώσσες, με ιδιαίτερα υψηλά σκορ σε Python και Java. Αυτή η επάρκεια είναι κρίσιμη για εφαρμογές που涉αζουν γεννήσεις κώδικα, αποσφαλμάτωση και ανάπτυξη λογισμικού, καθιστώντας αυτά τα μοντέλα πολύτιμα εργαλεία για développers.
Mistral NeMo Βελτιστοποίηση
Ενώ συγκεκριμένα σκορ βελτιστοποίησης για το Mistral NeMo δεν παρέχονται στην δεδομένη πληροφορία, περιγράφεται ως προσφορά κορυφαίας απόδοσης στην κατηγορία του μεγέθους. Το μοντέλο ξεπερνά άλλα πρόσφατα ανοικτά προ-εκπαιδευμένα μοντέλα όπως Gemma 2 9B και Llama 3 8B σε διάφορες εργασίες.
Πολυγλωσσική και Κωδικοποίηση Ικανότητα
Ένα από τα εξαιρετικά χαρακτηριστικά του Mistral Large 2 και του Mistral NeMo είναι η εξαιρετική πολυγλωσσική ικανότητά τους. Αυτό είναι ιδιαίτερα σημαντικό στον αυξανόμενο全球 κόσμο, όπου τα μοντέλα AI πρέπει να κατανοήσουν και να γεννήσουν περιεχόμενο σε πολλές γλώσσες.
Το Mistral Large 2, για παράδειγμα, υποστηρίζει δεκάδες γλώσσες, συμπεριλαμβανομένων των γαλλικών, γερμανικών, ισπανικών, ιταλικών, πορτογαλικών, αραβικών, ινδικών, ρωσικών, κινέζικων, ιαπωνικών και κορεατικών. Αυτή η πολυγλωσσική επάρκεια εκτείνεται πέρα από τη απλή μετάφραση, περιλαμβάνοντας νουμερικές κατανόηση και γεννήσεις σε αυτές τις γλώσσες.
Για να εικονογραφήσουμε αυτό, ας κοιτάξουμε ένα παράδειγμα του Mistral Large 2 που γεννά κείμενο σε πολλές γλώσσες:
[INST] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]
Εδώ είναι σύντομες χαιρετίσματα στις ζητούμενες γλώσσες:
Αγγλικά: Hello! How are you today?
Γαλλικά: Bonjour ! Comment allez-vous aujourd’hui ?
Γερμανικά: Hallo! Wie geht es Ihnen heute?
Ισπανικά: ¡Hola! ¿Cómo estás hoy?
Ιαπωνικά: こんにちは!今日はお元気ですか?
[INST]
Τώρα, γράψτε ένα απλό “Hello, World!” πρόγραμμα σε Python, Java και JavaScript. [/INST]
Αυτά τα παραδείγματα εικονογραφούν και την πολυγλωσσική γεννήσεις κειμένου και κωδικοποίησης του μοντέλου.
Και τα δύο μοντέλα είναι διαθέσιμα σε διάφορες πλατφόρμες όπως Hugging Face, η πλατφόρμα της Mistral AI, και μεγάλες cloud υπηρεσίες όπως Google Cloud Platform, Azure AI Studio, Amazon Bedrock, και IBM watsonx.ai (Mistral AI | Frontier AI in your hands).
Το Παράδειγμα Agentic και Κλήση Συναρτήσεων
Και το Mistral Large 2 και το Mistral NeMo υιοθετούν μια agentic-κεντρική σχεδίαση, η οποία αντιπροσωπεύει μια μετατόπιση παραδείγματος σε πώς αλληλεπιδρούμε με μοντέλα AI. Αυτή η προσέγγιση εστιάζει στην κατασκευή μοντέλων ικανών να αλληλεπιδρούν με το περιβάλλον τους, να λαμβάνουν αποφάσεις και να thựcνούν ενέργειες για την επίτευξη συγκεκριμένων στόχων.
Ένα κλειδί χαρακτηριστικό που επιτρέπει αυτό το παράδειγμα είναι η φυσική υποστήριξη για κλήση συναρτήσεων. Αυτό επιτρέπει στα μοντέλα να αλληλεπιδρούν δυναμικά με εξωτερικά εργαλεία και υπηρεσίες, επεκτείνοντας αποτελεσματικά τις ικανότητές τους πέρα από την απλή γεννήσεις κειμένου.
Ας κοιτάξουμε ένα παράδειγμα του πώς η κλήση συναρτήσεων μπορεί να λειτουργήσει με το Mistral Large 2:
from mistral_common.protocol.instruct.tool_calls import Function, Tool
from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest
# Initialize tokenizer and model
mistral_models_path = "path/to/mistral/models" # Ensure this path is correct
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)
# Define a function for getting weather information
weather_function = Function(
name="get_current_weather",
description="Get the current weather",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The temperature unit to use. Infer this from the user's location.",
},
},
"required": ["location", "format"],
},
)
# Create a chat completion request with the function
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="What's the weather like today in Paris?"),
],
)
# Encode the request
tokens = tokenizer.encode_chat_template(completion_request).tokens
# Generate a response
out_tokens, _ = generate([tokens], model, max_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])
print(result)
Σε αυτό το παράδειγμα, ορίσαμε μια συνάρτηση για την απόκτηση καιρολογικών πληροφοριών και την περιλαμβάνουμε στην αίτησή μας για ολοκλήρωση συζήτησης. Το μοντέλο μπορεί τότε να χρησιμοποιήσει αυτή τη συνάρτηση για να αποκτήσει πραγματικές καιρολογικές πληροφορίες, δείχνοντας πώς μπορεί να αλληλεπιδράσει με εξωτερικά συστήματα για να παρέχει πιο ακριβείς και ενημερωμένες πληροφορίες.
Tekken: Ένας Περισσότερο Αποτελεσματικός Tokenizer
Το Mistral NeMo εισάγει einen νέο tokenizer ονόματι Tekken, ο οποίος βασίζεται στο Tiktoken και εκπαιδεύτηκε σε πάνω από 100 γλώσσες. Αυτός ο νέος tokenizer προσφέρει σημαντικές βελτιώσεις στην αποδοτικότητα συμπίεσης κειμένου σε σύγκριση με προηγούμενους tokenizers όπως το SentencePiece.
Κλειδιά χαρακτηριστικά του Tekken περιλαμβάνουν:
- 30% περισσότερη αποδοτικότητα συμπίεσης για πηγαίο κώδικα, κινέζικα, ιταλικά, γαλλικά, γερμανικά, ισπανικά και ρωσικά
- 2x περισσότερη αποδοτικότητα συμπίεσης για κορεατικά
- 3x περισσότερη αποδοτικότητα συμπίεσης για αραβικά
- Ξεπερνά τον tokenizer του Llama 3 σε συμπίεση κειμένου για περίπου το 85% όλων των γλωσσών
Αυτή η βελτιωμένη αποδοτικότητα tokenization μεταφράζεται σε καλύτερη απόδοση μοντέλου, ιδιαίτερα όταν ασχολούμαστε με πολυγλωσσικό κείμενο και πηγαίο κώδικα. Επιτρέπει στο μοντέλο να επεξεργαστεί περισσότερες πληροφορίες μέσα στο ίδιο παράθυρο περιεχομένου, οδηγώντας σε πιο συνεκτικές και контεκστούλες εξόδους.
Άδεια και Διαθεσιμότητα
Το Mistral Large 2 και το Mistral NeMo έχουν διαφορετικά μοντέλα αδειών, αντανακλώντας τις προοριζόμενες χρήσεις τους:
Mistral Large 2
- Κυκλοφόρησε υπό την άδεια Mistral Research
- Επιτρέπει χρήση και τροποποίηση για έρευνα και μη εμπορικές χρήσεις
- Εμπορική χρήση απαιτεί άδεια Mistral Commercial
Mistral NeMo
- Κυκλοφόρησε υπό την άδεια Apache 2.0
- Επιτρέπει ανοικτή χρήση, συμπεριλαμβανομένων εμπορικών εφαρμογών
Και τα δύο μοντέλα είναι διαθέσιμα μέσω διαφόρων πλατφόρμων:
- Hugging Face: Βάρη για τα βασικά και instruct μοντέλα φιλοξενούνται εδώ
- Mistral AI: Διαθέσιμα ως
mistral-large-2407(Mistral Large 2) καιopen-mistral-nemo-2407(Mistral NeMo) - Cloud Service Providers: Διαθέσιμα στο Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock, και IBM watsonx.ai
Για développers που επιθυμούν να χρησιμοποιήσουν αυτά τα μοντέλα, εδώ είναι ένα γρήγορο παράδειγμα του πώς να φορτώσετε και να χρησιμοποιήσετε το Mistral Large 2 με Hugging Face transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Use GPU if available
# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Move the model to the appropriate device
model.to(device)
# Prepare input
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Explain the concept of neural networks in simple terms."},
]
# Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
# Generate response
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)
# Decode and print the response
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)
Αυτό το κώδικας δείχνει πώς να φορτώσετε το μοντέλο, να προετοιμάσετε την είσοδο σε μορφή συζήτησης, να γεννήσετε μια απάντηση και να αποκωδικοποιήσετε και να εκτυπώσετε την απάντηση.
















