AIモデルとプラットフォーム

ミストラル 2 とミストラル NeMo:最新の LLM の包括的なガイド

mm
Unite.AI を Google の優先ソースに追加
Mistral Large 2 and Mistral NeMo

Google (GOOGL ) の DeepMind と Meta の卒業生によって設立されたパリを拠点とするスタートアップ Mistral AI は、2023 年以来、AI コミュニティで波紋を広げてきました。

Mistral AI は、2023 年にデビュー モデルである Mistral 7B をリリースし、世界の注目を集めました。この 7 億パラメータ モデルは、Llama 2 13B を上回るパフォーマンスで注目され、Llama 1 34B と多くの指標で競合しました。Mistral 7B を特徴づけたのは、パフォーマンスだけでなく、アクセシビリティでもありました。モデルは GitHub または 13.4 ギガバイトのトレントから簡単にダウンロードでき、世界中の研究者や開発者が利用できるようになりました。

同社のリリースに対する非伝統的なアプローチは、伝統的な論文、ブログ、プレス リリースを省略することが多く、AI コミュニティの注目を集めるのに非常に効果的であることが証明されています。この戦略は、オープン ソースの原則へのコミットメントと組み合わせて、Mistral AI を AI ランドスケープにおける重要なプレーヤーに位置付けました。

Mistral AI の業界における急速な上昇は、最近の資金調達の成功によってさらに裏付けられています。同社は、Andreessen Horowitz が主導する資金調達ラウンドの後、200 億ドルの評価額を達成しました。これは、欧州史上最大の 1 億 1800 万ドルのシード ラウンドに続くもので、投資家が Mistral AI のビジョンと能力に寄せた信頼の大きさを示しています。

技術的な進歩以外に、Mistral AI は AI 政策の形成にも積極的に参加しており、特に EU AI 法に関する議論で、オープン ソース AI への規制の削減を主張しています。

2024 年現在、Mistral AI は 2 つの画期的なモデル、Mistral Large 2 (Mistral-Large-Instruct-2407 とも呼ばれる) と Mistral NeMo を発表しました。この包括的なガイドでは、これらの強力な言語モデルの特徴、パフォーマンス、潜在的なアプリケーションについて深く掘り下げます。

Mistral Large 2 の主な仕様は以下のとおりです。

  • 123 億 パラメータ
  • 128k コンテキスト ウィンドウ
  • 数十の言語をサポート
  • 80 を超える コーディング言語をサポート
  • 高度な関数呼び出し機能

このモデルは、コスト効率、速度、パフォーマンスの境界を押し広げるように設計されており、研究者と企業が最新の AI を活用するための魅力的な選択肢となっています。

Mistral NeMo: 新しい小型モデル

Mistral Large 2 が Mistral AI の大規模モデルの最高峰を表す一方で、2024 年 7 月にリリースされた Mistral NeMo は、異なるアプローチを取ります。NVIDIA (NVDA ) との共同開発により、Mistral NeMo は、12 億パラメータのよりコンパクトなモデルでありながら、印象的な機能を提供します。

  • 12 億 パラメータ
  • 128k コンテキスト ウィンドウ
  • そのサイズカテゴリにおける最先端のパフォーマンス
  • Apache 2.0 ライセンス でオープン ソースとして利用可能
  • 量子化対応 トレーニングによる効率的な推論

Mistral NeMo は、Mistral 7B を使用しているシステムの代替として位置付けられており、パフォーマンスの向上とともに、使いやすさと互換性を維持しています。

主要特徴と機能

Mistral Large 2 と Mistral NeMo は、AI ランドスケープでそれらを際立たせるいくつかの重要な特徴を共有しています。

  1. 大きなコンテキスト ウィンドウ: 128k トークン コンテキスト長により、両方のモデルはより長いテキストを処理して理解できるため、より一貫性のあるコンテキストに基づいた出力が可能になります。
  2. マルチリンガル サポート: モデルは英語、フランス語、ドイツ語、スペイン語、イタリア語、中国語、日本語、韓国語、アラビア語、ヒンディー語など、幅広い言語をサポートします。
  3. 高度なコーディング機能: 両方のモデルは、数多くのプログラミング言語でコード生成に優れています。
  4. 指示の実行: モデルは、正確な指示に従い、マルチターン会話を処理する能力が大幅に向上しています。
  5. 関数呼び出し: ネイティブの関数呼び出しサポートにより、これらのモデルは外部ツールやサービスと動的にやり取りできるようになります。
  6. 推論と問題解決: 数学的推論や複雑な問題解決タスクにおける能力が強化されています。

これらの特徴と、それらが実践でどのように機能するかを見てみましょう。

パフォーマンス ベンチマーク

Mistral Large 2 と Mistral NeMo の真の能力を理解するには、さまざまなベンチマークでのパフォーマンスを調べることが重要です。いくつかの重要な指標を見てみましょう。

Mistral Large 2 ベンチマーク

このテーブルは、さまざまな LLM がさまざまなプログラミング言語でコードを理解して生成する能力を示しています。Mistral Large 2 (24.07)、Llama 3.1 (405B)、GPT-4o などのモデルが、Python、C++、Bash、Java、TypeScript、PHP、C# などの言語でコードを理解して生成する能力が評価されています。

Llama 3.1 405B は、複数の言語で強力なパフォーマンスを示し、特に Python と Java で高いスコアを獲得しています。この言語間のパフォーマンスは、コード生成、デバッグ、ソフトウェア開発を含むアプリケーションにとって非常に重要であり、これらのモデルは開発者にとって貴重なツールとなっています。

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

Mistral NeMo ベンチマーク

Mistral NeMo の特定のベンチマーク スコアは提供されていませんが、そのサイズカテゴリで最先端のパフォーマンスを提供することが述べられています。Gemma 2 9B や Llama 3 8B などの最近のオープンソース事前トレーニング モデルを上回り、さまざまなタスクで優れています。

マルチリンガルとコーディングの優位性

Mistral Large 2 と Mistral NeMo の特徴の 1 つは、両方のモデルが持つ優れたマルチリンガル機能です。これは、世界がますますグローバル化する現在、AI モデルが複数の言語でコンテンツを理解して生成できることが重要です。

Mistral Large 2 では、フランス語、ドイツ語、スペイン語、イタリア語、ポルトガル語、アラビア語、ヒンディー語、ロシア語、中国語、日本語、韓語など数十の言語をサポートしています。このマルチリンガル機能は、単なる翻訳を超えて、これらの言語でのニュアンスのある理解と生成を可能にします。

これを示すために、Mistral Large 2 が複数の言語でテキストを生成する例を見てみましょう。

[INST] 英語、フランス語、ドイツ語、スペイン語、そして日本語で短い挨拶を生成してください。 [/INST]

以下は、リクエストされた言語での短い挨拶です。

英語:ハロー!今日はどうですか?
フランス語:ボンジュール!今日はどうですか?
ドイツ語:ハロー!今日はどうですか?
スペイン語:こんにちは!今日はどうですか?
日本語:こんにちは!今日はお元気ですか?

[INST]

今度は、Python、Java、JavaScript で「ハロー、ワールド!」プログラムを書いてください。 [/INST]

これらの例は、モデルのマルチリンガル テキスト生成とコーディング機能を示しています。

両方のモデルは、Hugging Face、Mistral AI のプラットフォーム、Google Cloud Platform、Azure AI Studio、Amazon Bedrock、IBM watsonx.ai などの主要なクラウド サービス プロバイダーを含むさまざまなプラットフォームで利用できます。 (Mistral AI | フロンティア AI をあなたの手に)​​​。

エージェント パラダイムと関数呼び出し

Mistral Large 2 と Mistral NeMo は、エージェント セントリック設計を採用しており、これは AI モデルとのやり取りの方法におけるパラダイム シフトを表します。このアプローチは、環境とやり取りし、決定を下し、特定の目標を達成するためのアクションを取ることができるモデルを構築することに重点を置いています。

このパラダイムを可能にする重要な機能の 1 つは、ネイティブの関数呼び出しサポートです。これにより、モデルは外部ツールやサービスと動的にやり取りできるようになり、シンプルなテキスト生成を超えた機能を拡張します。

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

<p># トークナイザーとモデルを初期化
mistral_models_path = "path/to/mistral/models" # このパスが正しいことを確認してください
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>

<p># 天気情報を取得する関数を定義
weather_function = Function(
name="get_current_weather",
description="現在の天気を取得",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "都市と州、例: サンフランシスコ、CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "温度単位。ユーザーのロケーションから推測します。",
},
},
"required": ["location", "format"],
},
)</p>

<p># 関数を使用したチャット完了リクエストを作成
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="今日の天気はどうですか?"),
],
)</p>

<p># リクエストをエンコード
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>

<p># 応答を生成
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])</p>

print(result)

この例では、天気情報を取得する関数を定義し、それをチャット完了リクエストに含めます。モデルはこの関数を使用してリアルタイムの天気データを取得し、より正確で最新の情報を提供する能力を示しています。

Tekken: より効率的なトークナイザー

Mistral NeMo では、Tiktoken に基づいて開発された新しいトークナイザー「Tekken」が導入されています。このトークナイザーは 100 を超える言語でトレーニングされており、以前のトークナイザーである SentencePiece に比べてテキスト圧縮効率が大幅に向上しています。

Tekken の主な特徴は以下のとおりです。

  • ソースコード、中国語、イタリア語、フランス語、ドイツ語、スペイン語、ロシア語に対して 30% の圧縮効率が向上
  • 韓国語に対して 2 倍の圧縮効率が向上
  • アラビア語に対して 3 倍の圧縮効率が向上
  • 約 85% の言語で Llama 3 トークナイザーを上回る圧縮効率

このトークナイザーの改善された圧縮効率は、特にマルチリンガル テキストやソース コードを扱う場合に、モデルのパフォーマンスの向上につながります。コンテキスト ウィンドウ内でより多くの情報を処理できるようになり、より一貫性のあるコンテキストに基づいた出力が可能になります。

ライセンスと利用可能性

Mistral Large 2 と Mistral NeMo には、異なるライセンス モデルがあり、それぞれが異なる使用ケースを反映しています。

Mistral Large 2

  • Mistral Research License の下でリリース
  • 研究および非商用目的での使用と変更が許可
  • 商用使用には Mistral Commercial License が必要

Mistral NeMo

  • Apache 2.0 ライセンスの下でリリース
  • オープン ソースとして利用可能で、商用アプリケーションも含む

両方のモデルは、以下のプラットフォームを通じて利用可能です。

  • Hugging Face: ベース モデルとインストラクション モデルの重みがホストされています
  • Mistral AI: mistral-large-2407 (Mistral Large 2) および open-mistral-nemo-2407 (Mistral NeMo) として利用可能
  • クラウド サービス プロバイダー: Google Cloud Platform の Vertex AI、Azure AI Studio、Amazon Bedrock、IBM watsonx.ai で利用可能
https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

開発者がこれらのモデルを使用したい場合は、Hugging Face Transformers で Mistral Large 2 をロードして使用する方法の簡単な例を見てみましょう。

from transformers import AutoModelForCausalLM, AutoTokenizer

<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # GPU を使用する場合</p>

<p># モデルとトークナイザーをロード
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

<p># モデルを適切なデバイスに移動
model.to(device)</p>

<p># 入力を準備
messages = [
{"role": "system", "content": "あなたは役立つ AI アシスタントです。"},
{"role": "user", "content": "ニューラル ネットワークの概念を簡単に説明してください。"},
]</p>

<p># 入力をエンコード
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>

<p># 応答を生成
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>

<p># 出力をデコードして表示
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>

このコードは、モデルをロードし、チャット形式の入力を準備し、応答を生成し、出力をデコードする方法を示しています。

制限と倫理的配慮

Mistral Large 2 と Mistral NeMo が AI 技術における重要な進歩を表すことは間違いないものの、それらの制限と使用に関する倫理的配慮を認識することが重要です。

  1. 潜在的な偏見: 大規模なデータセットでトレーニングされたすべての AI モデルと同様に、これらのモデルもトレーニング データに存在する偏見を継承し、拡大する可能性があります。ユーザーはこれに留意し、適切な対策を講じる必要があります。
  2. 真の理解の欠如: これらのモデルの印象的な機能にもかかわらず、それらは真の理解や意識を備えていません。代わりに、パターンを認識して応答を生成するため、時々、信頼性の高いように聞こえるが、実際には不正確な情報を生成する可能性があります。
  3. プライバシーに関する懸念: 特に機密情報を扱うアプリケーションでこれらのモデルを使用する場合、データのプライバシーとセキュリティの影響を考慮することが重要です。

結論

Mistral Large 2 と Mistral NeMo のような高度なモデルをファインチューニングすることで、ダイナミックな関数呼び出しから効率的なマルチリンガル処理まで、さまざまなアプリケーションで最新の AI を活用する強力な機会が提供されます。以下は、実践的なヒントと重要な洞察です。

  1. ユースケースを理解する: モデルが達成するべき特定のタスクと目標を明確に定義します。これにより、Mistral の強力な関数呼び出し機能や効率的なマルチリンガル テキスト処理など、モデルとファインチューニング アプローチの選択が導かれます。
  2. 効率性を最適化する: 特に大量のテキストや複数の言語を扱うアプリケーションの場合、Tekken トークナイザーを使用してテキスト圧縮効率を大幅に向上させ、モデルのパフォーマンスを向上させ、計算コストを削減します。
  3. 関数呼び出しを活用する: エージェント パラダイムを採用し、モデルとのやり取りに関数呼び出しを組み込むことで、AI は外部ツールやサービスと動的にやり取りし、より正確でアクション可能な出力を提供できます。例えば、天気 API またはその他の外部データ ソースを統合することで、モデルの応答の関連性と有用性を大幅に向上させることができます。
  4. 適切なプラットフォームを選択する: モデルの機能を最大限に活用できるプラットフォーム (Google Cloud Platform の Vertex AI、Azure AI Studio、Amazon Bedrock、IBM watsonx.ai など) を選択して、AI モデルのパフォーマンスとスケーラビリティを最大化します。

これらのヒントに従い、提供されたコード例を使用することで、Mistral Large 2 と Mistral NeMo の力を効果的に活用できます。

私は過去5年間、機械学習とディープラーニングの魅力的世界に没頭してきました。私の情熱と専門知識は、AI/MLに特に焦点を当てた50以上の多様なソフトウェアエンジニアリングプロジェクトに貢献することになりました。私の継続的な好奇心は、自然言語処理という分野にも私を引き付け、さらに探求したいと思っています。