【Phi 3.5・mini instruct】MicrosoftのLLMの性能をGPT-4oと徹底比較してみた

Phi-3.5 スマホ 動くMicrosoft 最新LLM 性能 GPT-4o 徹底比較
押さえておきたいポイント
  • それぞれ得意とする分野が異なる3モデル
  • 軽量LLMながらに大規模LLMに匹敵
  • いずれもAzure AI Studioで利用可能

Phi3.5ファミリーはMicrosoftがリリースした、軽量のLLMです。リリースされたモデルは全部で3種類で、それぞれ得意とする分野が異なります。特にPhi 3.5 Vision instructはマルチモーダルLLMであり、視覚情報を活用した推論を得意としています。

本記事ではPhi3.5ファミリーの概要についてお伝えします。ぜひ最後までお読みください!

\生成AIを活用して業務プロセスを自動化/

目次

Phi 3.5の概要

Phi3.5はこれまでMicrosoftからリリースされていたPhi-3で使用されたデータセットを基に構築された、オープンモデルです。

Phi3.5はPhi 3.5 mini instruct、Phi 3.5 MoE、Phi 3.5 Vision instructの3つが用意されており、パラメータ数だと、Phi 3.5 MoE>Phi 3.5 Vision instruct>Phi 3.5 mini instructの順です。

Phi 3.5 Vision instructはVLMに分類されます。

VLMとは「Vision-Language Model」の略で、視覚情報(画像や映像)とテキスト情報(自然言語)を統合して処理するために設計された機械学習モデルを指します。VLMは、画像キャプション生成、視覚質問応答、画像検索など、視覚と言語の両方を理解して処理するタスクで利用されます。
VLMは、視覚とテキストの関係を学習することで、画像とテキストの複雑なタスクに対応できるようになり、AIがより人間に近い理解力や応答能力を持つための重要な技術です。これにより、例えば、画像の説明を自然言語で提供したり、画像に関連する質問に答えたりすることが可能になります。

Phi3.5ファミリーそれぞれの特徴

3つのモデルはそれぞれ特徴が異なり、得意とする分野も違います。

Phi 3.5 mini instruct

Phi3.5 mini instructは、小型で軽量な設計ながら、性能面では多言語対応能力を持つモデルです。このモデルは128Kの長い文脈をサポートしており、長文の要約や質問応答といったタスクにおいて優れた性能を発揮します。

一方で、モデル全体の容量が小さいため、一部の言語では十分な性能を発揮するには追加のファインチューニングが必要です。

また、Retrieval-Augmented Generation(RAG)を組み合わせることで、外部データを参照しながら精度の高い応答を提供することも可能。Phi3.5 mini instructは特に教育分野やカスタマーサポート、ドキュメント管理など、長文を扱うタスクでの活用が期待されるでしょう。

Phi3.5 MoE

Phi-3.5-MoEは、16個の専門モデルを組み込んだMixture-of-Expertsアーキテクチャを採用しています。

この設計により、モデル全体の42Bパラメータのうち、推論時には必要に応じて6.6Bのパラメータのみを活用ができます。これにより、計算リソースを効率的に使用しながら、性能を最大限に引き出すことが可能です。

Phi3.5 MoEは、言語理解や推論、数学タスクにおいて、大規模モデルを上回る性能を発揮します。

また、最大128Kトークンの文脈をサポートしており、長文処理や複雑なタスクにも適しています。Phi3.5 MoEは特に、大規模なデータセットを扱うビジネスシナリオや、計算効率が重要な状況での活用が期待できるでしょう。

Phi 3.5 Vision Instruct

Phi3.5 visionは、画像とテキストを統合したマルチモーダルタスクに特化したモデルです。このモデルは、複数画像の比較や要約、ストーリーテリング、動画の要約といった複雑なタスクを処理する能力を持っています。

特に、128Kの文脈を活用して、複数画像や動画の要約を行う際に優れた性能を発揮。また、単一画像のベンチマークにおいても他のモデルを上回る結果を示しており、ドキュメント理解や表やグラフの解釈といったビジネス用途でも高い効果が期待されています。

Phi3.5 visionは、英語中心のトレーニングを受けているため、多言語対応には制限があるものの、画像とテキストを融合させたタスクにおいては高いパフォーマンスを発揮するでしょう。

そもそもPhi-3とは?

Phi-3は、Microsoftによって開発された、大規模言語モデルです。Phi-3には、スマートフォン上でのローカルな推論を可能にするほど小型でありながら、Mixtral 8x7BやGPT-3.5などのモデルに匹敵する全体的なパフォーマンスを実現するPhi-3-miniが含まれています。

Phi-3-miniのパワーの秘訣は、トレーニングに使用されるデータセットにあります。これは、Phi-2で使用されたデータセットをスケールアップしたバージョンであり、厳格にフィルタリングされた公開Webデータと合成データで構成されています。

Phi-3モデルには、Phi-3-miniに加えて、70億パラメータのPhi-3-smallと140億パラメータのPhi-3-mediumも含まれています。これらのモデルはどちらも、Phi-3-miniよりも大幅に高性能。Phi-3-smallは、多言語トークン化を改善するために、より大きな語彙サイズを持つtiktokenトークナイザーを活用しています。

Phi-3モデルはすべて、教師ありファインチューニング (SFT) と直接選好最適化 (DPO) の2段階の後トレーニングプロセスを経ています。SFTでは、数学、コーディング、推論、会話、モデルのアイデンティティ、安全性など、さまざまな分野の厳選された高品質なデータを使用しています。

教師ありファインチューニングは、既に訓練されたモデルに対して、特定のタスクに関連するデータセットを使ってさらに訓練を行うプロセス。この手法は、モデルが特定の用途やドメインにより適したパフォーマンスを発揮できるようにするために使われます。

さらに、Phi-3-miniをベースにした42億パラメータのモデルであるPhi-3-visionも導入されました。Phi-3-visionは、画像とテキストのプロンプトに対する強力な推論機能を備えています。

Phi3.5は上記のPhi-3をベースに開発されており、推論能力が向上しています。

Phi 3.5のライセンス

Phi 3.5はいずれのモデルにおいても、MITライセンスです。基本的には商用利用や改変、私的利用など全て可能です。

利用用途可否
商用利用⭕️
改変⭕️
配布⭕️
特許使用⭕️
私的使用⭕️

なお、GPT-4o超えの日本語レベルを持つ1000億パラメータLLMについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

Phi 3.5の使い方

Phi 3.5のモデルは3つありますが、いずれのモデルでも有料課金してGPUを使う必要があります。無料のGPUではリソースが足りません。またPhi3.5 MoEはA100のGPUを使ってもリソース不足になってしまったので注意が必要です。

そのためPhi3.5 MoE以外はgoogle colaboratoryもしくはPhi3.5 MoE含めAzure AI Studioまたはデモ版の利用がいいでしょう。

Phi3.5 mini instructはHugging FaceのSpacesで、Phi3.5 vision instructはNVIDIAもしくはHugging FaceのSpacesで利用可能です。

Phi 3.5モデルを動かすのに必要な動作環境

Phi 3.5モデルを実行した時の環境は以下です。

■Pythonのバージョン
Python 3.8以上

■使用ディスク量
44.8GB

■システムRAMの使用量
5.2GB

■GPU RAMの使用量
16.3GB

Phi3.5の凄さを実際に検証!

では、ここからはPhi3.5の凄さを実際に検証してみたいと思います。検証したのは、Phi3.5 mini instructとPhi 3.5 vision instructの2つです。

Phi3.5 mini instructは日本語にも対応しているので、日本語でアポメールを作成してもらいます。

日本語タスクはこちら
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "microsoft/Phi-3.5-vision-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="cuda",
    trust_remote_code=True,
    torch_dtype="auto",
    _attn_implementation='flash_attention_2'
)

messages = [
    {"role": "system", "content": "あなたは優秀なアシスタントです。"},
    {"role": "user", "content": "取引先に対して、アポイントメントのメールを作成してください。"}
]

prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

inputs = tokenizer(prompt, return_tensors="pt").to("cuda:0")

generation_args = {
    "max_new_tokens": 500,
    "temperature": 0.7,
    "do_sample": True,
}

generate_ids = model.generate(**inputs,
  eos_token_id=tokenizer.eos_token_id,
  **generation_args
)

response = tokenizer.batch_decode(generate_ids,
  skip_special_tokens=True,
  clean_up_tokenization_spaces=False)[0]

print(response)
日本語タスクの出力結果はこちら
取引先に対して、アポイントメントのメールを作成してください。 
 件名:迅速な対応をお願いする - [取引先の名前]

親愛なる[取引先の名前],

こんにちは、[あなたの名前]と申します。取引先の皆様の取引において、私たちとの関係の重要性に加えて、私たちのビジネスにおいても重要な役割を果たしているという理解を持っており、今回はあなたの支援を必要としていることを知っています。

この取引の進行中に、あなたに対して進行中の問題が発生したことを知らせていただき、ご責任でご心配いただき、この取引の成功を担っていただき、あなたの支援が必要な場合があることを知らせてください。

今後も迅速な対応をお願い申し上げることができます。あなたの取引における私たちのサポートについてのご連絡をお知らせください。

敬具
[あなたの名前]
[あなたの住所]
[あなたの電話番号]
[あなたのアドレスメール]
[あなたの経済会社名]

親愛なるや関係の重要性という単語は、あまり一般的には使わないで日本語での生成は少し怪しい感じがします。

ちなみにChatGPT-4oに生成させた場合は以下のようになりました。

ChatGPT-4oの結果はこちら
件名: 【御社名】様とのアポイントメントのご依頼

【担当者名】様

お世話になっております。
【あなたの会社名】の【あなたの名前】でございます。

この度は、御社の【商談内容やプロジェクト名】に関して、直接お話しさせていただく機会を頂ければと思い、ご連絡差し上げました。
貴社のご都合の良い日時をご教示いただけますと幸いです。
私どもとしては、下記の日程が候補としてございます。

【候補日1】(例:8月25日(木)午後2時〜)
【候補日2】(例:8月26日(金)午前10時〜)
【候補日3】(例:8月29日(月)午後1時〜)
上記の日程以外でも、柔軟に調整可能ですので、お手数をおかけいたしますが、ご都合の良い時間帯をお知らせください。

お忙しいところ恐縮ですが、何卒よろしくお願い申し上げます。

敬具

【あなたの名前】
【あなたの会社名】
【連絡先情報(電話番号、メールアドレスなど)】

そのまま使っても問題ないくらい自然な文章を返してくれました・・!日本語のアポメール作成タスクはChatGPT-4oを使う方が良いかもしれません。

次にPhi3.5 vision instructでは、説明が難しそうな画像を説明してもらう・英語の画像の内容を説明してもらうというタスクを実装してみます。あとは日本語に対応しているのかも確認しておきましょう。

説明してもらう画像はこちらです。

参考:https://tabizine.jp/2014/08/29/18249
参考:https://www.dataknobs.com/generativeai/10-llms/
画像タスクのコードはこちら
from PIL import Image
from transformers import AutoModelForCausalLM, AutoProcessor
import torch

model_id = "microsoft/Phi-3.5-vision-instruct"

# モデルのロード
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="cuda",
    trust_remote_code=True,
    torch_dtype="auto",
    _attn_implementation='flash_attention_2'
)

# プロセッサのロード(シングルフレームの場合はnum_crops=16に設定)
processor = AutoProcessor.from_pretrained(
    model_id,
    trust_remote_code=True,
    num_crops=16
)

# 画像の読み込み
image = Image.open("/content/スクリーンショット 2024-08-22 21.00.49.png")

# メッセージの作成
messages = [
    {"role": "user", "content": "<|image_1|>\n画像を要約してください."},
]

# チャットテンプレートの適用
prompt = processor.tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# 入力の処理
inputs = processor(text=prompt, images=image, return_tensors="pt").to("cuda:0")

# 生成パラメータ
generation_args = {
    "max_new_tokens": 1000,
    "temperature": 0.0,
    "do_sample": False,
}

# 生成
with torch.no_grad():
    generate_ids = model.generate(
        **inputs,
        eos_token_id=processor.tokenizer.eos_token_id,
        **generation_args
    )

# 入力トークンを削除
generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:]
response = processor.batch_decode(
    generate_ids,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False
)[0]

print(response)
画像タスクの結果はこちら
1枚目の画像
The image captures a large, curved rock formation with a series of horizontal stripes in shades of brown and black. The formation is set against a clear blue sky with a few clouds. The rock appears to be part of a larger landscape, possibly a desert or arid region.

和訳:画像は、茶色と黒の濃淡の横縞が連なる、大きく湾曲した岩層をとらえている。この地層は、雲も少しある澄み切った青空を背景にしている。この岩は、おそらく砂漠か乾燥地帯と思われる大きな風景の一部に見える。

2枚目の画像
The image contains two sections. The top section is titled 'ENVIRONMENTAL ISSUES' and lists various environmental concerns associated with LLMs and generative AI, such as cost, CPU/GPU requirements, use of rare metals, carbon emissions, and the need for natural resources. The bottom section is titled 'How to provide Enterprise grade answers' and outlines a process flow for creating and verifying answers using AI, including steps like creating an index, getting context, building an answer, and verifying sub-answers. The process flow is depicted in a flowchart with arrows indicating the sequence of steps

和訳:画像には2つのセクションがある。上のセクションは「ENVIRONMENTAL ISSUES(環境問題)」と題され、コスト、CPU/GPU要件、希少金属の使用、炭素排出、天然資源の必要性など、LLMや生成AIに関連するさまざまな環境問題を挙げている。一番下のセクションは「How to provide Enterprise grade answers(エンタープライズグレードの回答を提供する方法)」と題され、インデックスを作成し、コンテキストを取得し、回答を構築し、サブ回答を検証するといったステップを含む、AIを使用して回答を作成し、検証するためのプロセスフローを概説している。プロセスの流れは、ステップの順序を矢印で示したフローチャートで描かれている。

日本語での生成は英語よりもかなり時間がかかってしまいました。

なお、未来予測ができるGPT-4V超えの生成AIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

Phi 3.5 mini instructの概要

Phi 3.5 mini instructは、Microsoftによって開発された軽量な大規模言語モデルです。

軽量でありながら高性能なオープンモデルです。特に高品質で推論密度が高いデータに重点を置いていて、Phi3で使用されたデータセットを元に開発されています。

さらに、2024年6月にリリースされたPhi3 Miniに比べ、多言語、マルチターンでの会話、および推論能力が大幅に向上している様です。

また、軽量モデルであるために、メモリや計算リソースの限られた環境での利用に適しており、処理速度も高速です。

参考:https://huggingface.co/microsoft/Phi-3.5-mini-instruct

Phi 3.5 mini instructは、128Kトークンのコンテキスト長をサポート。特にQasper(質問応答評価のためのベンチマーク)で優れた性能を発揮しています。

参考:https://huggingface.co/microsoft/Phi-3.5-mini-instruct

Phi 3.5 mini instructは、3.8Bという限られたパラメータ数でありながら、多言語タスクにおいては、より多くのパラメータ数を持つ他のモデルと比較しても優れた性能です。

しかし、モデルサイズが小さいことによって、ハルシネーションを起こしやすいことが報告されています。

サポート言語一覧
アラビア語、中国語、チェコ語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ヘブライ語、ハンガリー語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語、ロシア語、スペイン語、スウェーデン語、タイ語、トルコ語、ウクライナ語

なお、Phi 3.5について詳しく知りたい方は、以下の記事をご覧ください。

Phi 3.5 mini instructに使われている技術

Phi 3.5 mini instructは軽量ながらMMLUやMGSM、数学、コード生成のベンチマークでは、他のオープンモデルよりも高いスコアを示しています。

教師あり微調整:Supervised Fine-tuning(SFT)

事前学習済みの大規模言語モデルを特定のタスクや目的に適応させるための手法です。

LLMは多目的活用を想定して幅広いデータで事前学習されていますが、特定タスクへの適用には最適化されていない場合があります。

そこで、教師あり微調整を行うことで、モデルが特定のタスクでより正確で一貫性のあるパフォーマンスを発揮します。

近傍方策最適化:Proximal Policy Optimization (PPO)

強化学習の一種で、特にロボティクスやゲームAIのトレーニングにおいて広く使われている手法です。

PPOは、エージェントが環境との相互作用を通じて最適な行動方針を学習するプロセスを改善するために設計されています。

直接優先最適化:Direct Preference Optimization (DPO)

AIや機械学習の分野で利用される手法の一つで、特に生成モデルや強化学習において、ユーザーの好みや意思を直接的に最適化するためのアプローチです。

従来の強化学習や生成モデルの訓練では、報酬関数や損失関数を通じて、間接的にモデルの出力を制御します。

しかし、DPOでは、ユーザーや人間の好みに基づくフィードバックを直接的に活用してモデルを訓練し、これにより、モデルは人間が望む出力に対してより迅速かつ正確に適応できるようになります。

上記3つの技術に加え、高品質で推論に特化したデータやモデルの推論能力を向上させるために、知識のレベルが適切になるように厳密にフィルタリングするなどして、高い推論能力を実現させています。

Phi 3.5 mini instructのライセンス

Phi 3.5 mini instructのライセンスは、MITライセンスです。基本的には商用利用や改変、私的利用など全て可能です。

MITライセンスは開発者が自由にソフトウェアを使って、改変、配布することができるため、個人もしくは企業がPhi 3.5 mini instructを導入したアプリを開発・商用化できます。

利用用途可否
商用利用⭕️
改変⭕️
配布⭕️
特許使用⭕️
私的使用⭕️

なお、GPT-4oに匹敵するAIモデルについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

Phi 3.5 mini instructの使い方

google colaboratoryで実装した時の環境はこちらです。

◼︎システム RAM:3.0 / 83.5 GB
◼︎GPU RAM:16.3 / 40.0 GB
◼︎ディスク:43.2 / 235.7 GB
◼︎プラン:有料
◼︎GPU:A100

ではPhi 3.5 mini instructを実装していきます。google colaboratoryで動かすことができます。

ライブラリのインストールはこちら
!pip install flash_attn==2.5.8 torch==2.3.1 accelerate==0.31.0 transformers==4.43.0

もしflash_attnのインストールに時間がかかるようなら、こちらのコードに変更してください。

!wget https://github.com/kun432/flash-attention-prebuild-wheels/releases/download/v0.0.0-test/flash_attn-2.6.3+cu121torch2.5-cp310-cp310-linux_x86_64.whl
!pip install --no-dependencies --upgrade flash_attn-2.6.3+cu121torch2.5-cp310-cp310-linux_x86_64.whl
デモコードはこちら
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

torch.random.manual_seed(0)

model = AutoModelForCausalLM.from_pretrained(
    "microsoft/Phi-3.5-mini-instruct", 
    device_map="cuda", 
    torch_dtype="auto", 
    trust_remote_code=True, 
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3.5-mini-instruct")

messages = [
    {"role": "system", "content": "You are a helpful AI assistant."},
    {"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"},
    {"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."},
    {"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"},
]

pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
)

generation_args = {
    "max_new_tokens": 500,
    "return_full_text": False,
    "temperature": 0.0,
    "do_sample": False,
}

output = pipe(messages, **generation_args)
print(output[0]['generated_text'])

これで一通りデモコードは動かせます。エラーが起きるとしたらGPUのリソース不足だと思いますので、google colaboratoryで実行するときにはリソースを確認しておくのがいいでしょう。

また、Hugging FaceのSpacesも用意されているので、google colaboratoryで動かすほどでもないけど、性能を確認してみたい、という場合にはデモ版としてSpacesを使ってみるのもいいと思います。

Phi 3.5 mini instruct検証

Phi 3.5 mini instructは軽量、多言語対応、長文処理タスクが高性能という特徴を持っています。

なので、Phi 3.5 mini instructを使って、日本語→フランス語・英語・イタリア語に翻訳、長文ニュースの要約をタスクとして行ってみたいと思います。

ただ、Phi 3.5 mini instructだけだと性能がよくわからないので、比較対象としてGemini 1.5 Flashと比べてみます。

日本語から多言語翻訳

まずは日本語から多言語翻訳です。

サンプルコードはこちら
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

torch.random.manual_seed(0)

# モデルとトークナイザーのロード
model = AutoModelForCausalLM.from_pretrained(
    "microsoft/Phi-3.5-mini-instruct", 
    device_map="cuda", 
    torch_dtype="auto", 
    trust_remote_code=True, 
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3.5-mini-instruct")

# 翻訳用のプロンプトを生成
input_text = "今日はとてもいい天気ですね。"
languages = ["English", "Italian", "French"]

messages = [
    {"role": "system", "content": "You are a helpful AI assistant specialized in translation."},
    {"role": "user", "content": f"Translate the following Japanese text into {', '.join(languages)}: {input_text}"}
]

# パイプラインの設定
pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
)

generation_args = {
    "max_new_tokens": 500,
    "return_full_text": False,
    "temperature": 0.0,
    "do_sample": False,
}

# 翻訳を実行
output = pipe(messages, **generation_args)

# 結果を表示
print(output[0]['generated_text'])
結果はこちら
English: Today is very nice weather, isn't it?
Italian: Oggi ha un molto bel tempo, vero?
French: Aujourd'hui il fait très beau temps, n'est-ce pas?
Gemini 1.5 Flashの結果はこちら
Here are the translations of "今日はとてもいい天気ですね" (It's such nice weather today) in English, Italian, and French:

English: It's such a beautiful day today. (More natural than a literal translation) or The weather is lovely today. or It's a beautiful day today.

Italian: Che bella giornata oggi! (This is the most natural and common way to say it.) or Fa un tempo splendido oggi. (More formal)

French: Il fait un beau temps aujourd'hui. (This is the most common and natural way to say it). or Quelle belle journée ! (This emphasizes the beauty of the day more than the weather itself.)

比べてみると、Phi 3.5 mini instructでは、文末が「?(疑問符)」になっていますね。プロンプトを疑問文と勘違いしてしまっているのかなと思いましたが、「〜ですよね」を表す付加疑問文になっていますね。

ちなみにこちらはPhi 3.5 mini instructの結果をDeepLで翻訳した結果です。

英語:今日はとても良い天気ですね。
イタリア語:今日はとてもいい天気だね。
フランス語:今日は本当にいい天気だね。

Phi 3.5 mini instructの内容でも通じることがわかります

Phi 3.5 mini instructでも日本語の性能は十分ですが、日本語性能が向上したモデルもHugging Faceにアップロードされていますので、より日本語特化のモデルを使いたい時はこちらを使うのが良いと思います。

長文ニュースの要約

次に長文ニュースの要約をしてもらいます。ニュースの内容はGPT-4oに作ってもらい、それを要約してもらいます。

サンプルコードはこちら
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

torch.random.manual_seed(0)

# モデルとトークナイザーのロード
model = AutoModelForCausalLM.from_pretrained(
    "microsoft/Phi-3.5-mini-instruct", 
    device_map="cuda", 
    torch_dtype="auto", 
    trust_remote_code=True, 
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3.5-mini-instruct")

# 要約する日本語長文ニュース
input_text = """
本日、政府は新たな経済対策を発表しました。この対策には、中小企業向けの補助金、
再生可能エネルギーへの投資促進、そして所得税の一部減税が含まれています。
専門家はこれが経済成長に寄与すると期待していますが、一部では財源確保の課題も指摘されています。
この経済対策は、来年度の予算案に盛り込まれる予定です。
さらに、地方自治体向けの特別支援プログラムや、インフラ整備の加速も含まれています。
政府関係者によれば、これらの措置は地域経済の活性化を目的とし、雇用創出に大きく貢献する見込みです。
一方で、これらの対策が国際市場に与える影響についても注目が集まっています。
また、政府は教育分野への投資も発表しており、新たな奨学金プログラムや学校施設の改善が含まれています。
これにより、若者の教育機会が拡大し、長期的な人材育成に寄与することが期待されています。
さらに、環境保護に向けた取り組みとして、森林再生プロジェクトや海洋プラスチック削減計画も含まれています。
これらの政策は、国際的な協力を強化し、日本の環境目標を達成するための重要なステップとされています。
さらに、政府は医療分野にも注力しており、高齢化社会に対応するための新しい医療施設の建設や、
医療従事者の育成プログラムが含まれています。この取り組みは、地域医療の充実を図ることを目的としています。
また、観光業を活性化するための新たなプロモーションキャンペーンや、インバウンド需要に対応するための
インフラ整備が計画されています。これにより、観光業が地域経済の柱としてさらに成長することが期待されています。
加えて、政府はデジタルトランスフォーメーションを推進し、全国的なインターネット環境の改善や、
中小企業のデジタル化支援を進めています。これらの施策は、経済全体の効率性を向上させ、
国際競争力を強化する狙いがあります。
最後に、これらの対策を実行する上での課題として、財政負担の増大や、それに伴う国民の理解を
得るための努力が必要とされています。
"""

# プロンプトの作成
messages = [
    {"role": "system", "content": "You are a helpful AI assistant specialized in summarization."},
    {"role": "user", "content": f"Summarize the following Japanese news article: {input_text}"}
]

# パイプラインの設定
pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
)

generation_args = {
    "max_new_tokens": 200,
    "return_full_text": False,
    "temperature": 0.7,
    "do_sample": True,
}

# 要約を実行
output = pipe(messages, **generation_args)

# 結果を表示
print("要約:", output[0]['generated_text'])
結果はこちら
要約:  政府は新たな経済対策を発表し、中小企業向けの補助金、再生可能エネルギーへの投資促進、所得税の一部減税などが含まれており、来年度の予算案に盛り込まれる予定です。これらの措置は地域経済の活性化と雇用創出を目指しており、国際市場への影響も注視されています。教育分野への投資と環境保

文字数の関係で最後が切れてしまっていますが、概ね適切に要約できているように感じます。

Gemini 1.5 Flashの結果はこちら
政府は新たな経済対策を発表。中小企業補助金、再生可能エネルギー投資促進、所得税減税などを柱に、地域経済活性化、雇用創出、そして教育・医療・環境・観光・デジタル化への投資を盛り込んだ。経済成長への期待感がある一方、財源確保や国際市場への影響が課題となる。来年度予算案に計上予定。

Gemini 1.5 FlashでもPhi 3.5 mini instructと大差ない結果ですね。

なお、ベンチマークでGPT-4oを超えたGemini-exp-1114について詳しく知りたい方は、下記の記事を合わせてご確認ください。

Phi 3.5 mini instructの活用方法

Phi 3.5 mini instructは英語では優れた性能を発揮しますが、他言語では性能が低下することが報告されています。そのため、英語以外の言語でPhi 3.5 mini instructを使用する場合にはファインチューニングを行うか、RAGを活用するのが良いでしょう。

RAGを活用することで外部のデータソースを使って言語特有の性能低下をカバーすることが可能です。

また、多言語対応かつ長文処理を得意としているので、リアルタイム翻訳に導入したり、多言語対応のカスタマーサポート・チャットボットなどとしても活用できる可能性があります。

Phi 3.5 mini instructはAzure AI Studioで使えるので、サーバーレスエンドポイントを活用すれば、柔軟に扱うことができます。

Phi 3.5を活用したローカル環境でのデータ分析システムついて詳しく知りたい方は、以下の記事をご覧ください。

まとめ

本記事ではPhi3.5の概要とそのモデルの使い方について紹介をしました。Phi3.5ファミリーはそれぞれ得意とする分野が異なっており、ユーザーが求める分野において使い分けることができます。

また、スマホにも組み込めるよう、軽量化されているので今後は組み込みデバイスなどでも活用が期待できそうです。

最後に

いかがだったでしょうか。

Phi3.5ファミリーの活用で業務効率や精度向上を実現する方法をご紹介します。課題に応じた最適なモデル選定や導入計画をサポートしますので、ぜひ一度ご相談ください。

「生成AIで新しいプロダクトを作りたい」「もっと本格的に生成AIを業務に組み込みたい」とお考えの方は、ぜひ株式会社WEELにご相談ください。

開発実績として、

・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント

などの開発実績がございます。

生成AIを活用したプロダクト開発の支援内容は、以下のページでも詳しくご覧いただけます。
➡︎株式会社WEELのサービスを詳しく見る。

アイデア段階でも構いません。まずは無料相談でお気軽にご相談ください。
➡︎生成AIを活用したプロダクト開発・業務効率化について相談する

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

  • URLをコピーしました!
  • URLをコピーしました!
目次