見出し画像

Phi-3-Mini-128K-Instructは38億個のパラメータを持つ軽量で最先端のオープン・モデルである。Microsoftが開発した。パソコンスペックで動く。

NvidiaのAIサイトでPhi-3-Mini-128K-Instructを使えるサービスをしている。
日本語のpromptで試したところ日本語でキチンとと答えてくれた。
Microsoft とAppleは今後パソコンで動く生成AIの競争になる、

モデルの特徴

  • パラメータ パラメータ**:38億個であり、大規模なモデルに比べて比較的軽量である。

  • 学習データ**: 学習データ**:Phi-3データセットで学習。Phi-3データセットは、合成データとフィルタリングされた一般公開のウェブサイトデータの両方を含み、高品質で推論密度の高い特性を重視している。

  • コンテキスト長**: 他の多くのモデルより大幅に大きい128Kトークンのコンテキスト長をサポート。

  • ポストトレーニング 学習後**:教師ありの微調整と直接選好最適化を行い、命令追従能力と安全対策を強化。

パフォーマンス

  • ベンチマーク 常識、言語理解、数学、コーディング、長期的文脈、論理的推論をテストするベンチマークにおいて、 堅牢な性能を示す。

  • 比較 Mistral-7B、Mixtral-8x7B、Gemma 7B、Llama-3-8B-Instruct、GPT-3.5-Turbo などの大型モデルと、推論、言語理解、コード生成、ロバスト性 などのさまざまなカテゴリで良い競争をしています。

コンテキストのバリエーション

  • Phi-3ファミリーには、コンテキストの長さに応じて異なるバリエーションがあります:

    • Mini**: 4Kと128Kのコンテキスト長があります。

    • スモール**: 8Kおよび128Kのコンテキスト長で利用可能。

    • ミディアム**: 4Kおよび128Kのコンテキスト長で利用可能。

    • ビジョン**: 128K コンテキスト長で利用可能。

ライセンスと利用可能性

  • ライセンス MITライセンスでリリースされており、様々な用途に利用可能。

  • ウェイトとフォーマット**: AWQ、INT 4、ONNX、トランスフォーマーと互換性のあるウェイトを含む複数のフォーマットで利用可能。

全体として、Phi-3-Mini-128K-Instructは、比較的小さいサイズにもかかわらず、様々な自然言語処理タスクに対して性能と効率の良いバランスを提供する、非常に高性能なモデルです。

Me:
Φ-3-mini-128k-instructモデルをPCで動かすために必要なNvidia GPUのスペックは?

Φ-3-mini-128k-instruc:
Φ-3-mini-128k-instructモデルをPCで動かすためには、以下のような高度なGPUスペックが必要となります。
計算能力: モデルの32k のパラメータを扱うためには、非常に高い計算能力が求められます。これには、高いメモリサイズ(16GB以上)と高速なメモリアクセスが必要です。
テンソルコア: モデルの高い計算負荷を扱うためには、多くのテンソルコアが必要です。RTX 3080やRTX 3090のようなGPUは、このような要求に応えることができます。
メモリ: 高いメモリサイズ(16GB以上)が必要で、特に大きなモデルを扱う場合は2TB以上のVRAMが望ましいです。
冷却システム: 高性能なGPUは高温を生じさせるため、効果的な冷却システムが必要です。
これらの要件を満たすためには、RTX 3080またはRTX 3090のような高性能なGPUが適しています。また、これらのGPUを動かすためには、それらのGPUに最適化されたCPUと、十分なメモリと冷却システムが必要です。

from openai import OpenAI
client = OpenAI(
base_url = "https://integrate.api.nvidia.com/v1",
api_key = "$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC"
)

completion = client.chat.completions.create(
model="microsoft/phi-3-mini-128k-instruct",
messages=[{"role":"user","content":"Φ-3-mini-128k-instructモデルをPCで動かすために必要なNvidia GPUのスペックは?"}],
temperature=0.2,
top_p=0.7,
max_tokens=1024,
stream=True
)

for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")

この記事が気に入ったらサポートをしてみませんか?