Perplexity が公開する最強推論×Web RAG性能を持つsonar-reasoning （DeekSeek R1 ベース）"と"sonar-pro"をPythonで活用して日常業務の質を高めたい

:::note info
本記事は、Azure OpenAI、Anthropic Claude、Google Vertex AI Gemini、DeepSeekなどの生成AIを活用して、日々の業務生産性を向上させたい方向けの内容です。特に、業界・業種・学生などを問わずおすすめです。🎯
:::

皆さん、DeepSeek R1旋風をご存知でしょうか？

DeepSeekは、AIモデル開発における中国の企業であり、特に効率性と低コストで注目を集めています。同社は、V3モデルのトレーニングコストがわずか557万6000ドルであると主張し、AI業界に衝撃を与えました。
これは、DeepSeekMoEやDeepSeekMLAなどの革新的な技術によって実現されたもので、特にH800 GPUの使用に最適化されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/4ff9e869-47ed-3a52-7276-7203e80971d2.png)


R1モデルは、OpenAIのo1に匹敵する推論モデルであり、オープンウェイトで提供されているため、低コストで利用できます。これらの進歩は、AIモデルのコモディティ化と推論コストの削減を示唆しており、大手テック企業や消費者にとって大きな利益をもたらす可能性があります。
しかし、Nvidiaなどの企業にとっては、不確実性が増す要因となっています。また、米国のチップ禁止措置がDeepSeekの革新を促した可能性があり、米国が技術競争において防衛的な措置を強化するか、競争を促進するかの選択を迫られています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/c3417648-5543-d434-dbb7-510ed6c020b2.png)



というような感じなのですが、このR1モデルを様々な企業が追加学習やサービスに取り入れたものがどんどん展開されいます。

例えば、Cyberagentは日本語化モデルが公開されています。
そして、今回のPerplexityだと従来のSonarモデルを進化させたsonar-reasoningが公開されました。

やはりPerplexity Sonarの強みはWeb RAG機能であり、そこの構築が必要ないのが大きいですよね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/5cd27f5b-a670-81f8-f3f2-41b4dac274b5.png)

こちらを早速Pythonで試してみました。

まずは、APIを取得します（初めての方はクレカ登録します。）
https://www.perplexity.ai/settings/api
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/dfa52e33-bf87-5501-0310-91f57291d74c.png)

APIを取得したらGet Started サイトからサンプルコードを取得して利用できますが、少し以下で改良しています。
https://docs.perplexity.ai/guides/getting-started
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/4da65c87-77f3-bc69-47aa-8a2a82d8f1e6.png)

利用できるモデルはSonar, Sonar Pro, Sonar Reasoningなのです。
今回はSonar ReasoningとSonar Proを試します。
https://docs.perplexity.ai/guides/model-cards
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/d35c6026-4086-90f8-84b7-9a3d2957974c.png)

上記の通り、サンプルプロンプトはあるのですが、システムプロンプトの編集性や、ユーザープロンプトを動的にしたいのがありクリップボードの内容をインプットにするなど少し変更加えています。

```Python:Python
from openai import OpenAI
import os
import base64
import pyperclip
import textwrap

YOUR_API_KEY = "ここにAPIキーを入れる"

systemPrompt = """
あなたは有能なAIアシスタントです。以下の手順に従って問題を解決してください：

1. まず、与えられたテーマや意図を注意深く読み、理解してください
2. テーマの主要な要素を分解してください
3. テーマの理解や解決のための各ステップを考えてください
4. 明確な理由付けとともに解決策を提示してください
5. これまでの出力を批判的に評価して最終出力の質を高めてください

以下の点に注意してください：
- すべての過程を示してください
- 各ステップでの理由付けを説明してください
- 具体的かつ正確に記述してください
- エッジケースも考慮してください

"""


messages = [
    {
        "role": "system",
        "content": (
            systemPrompt
        ),
    },
    {   
        "role": "user",
        "content": (
            pyperclip.paste()
        ),
    },
]

client = OpenAI(api_key=YOUR_API_KEY, base_url="https://api.perplexity.ai")

# chat completion without streaming
response = client.chat.completions.create(
    model="sonar-reasoning",
    #model="sonar-pro",
    messages=messages,
)

def format_japanese_text(text):
    # Indent each line by 4 spaces
    formatted_text = textwrap.indent(text, ' ' * 4)
    return formatted_text

pyperclip.copy(format_japanese_text(response.choices[0].message.content))

```


#### 上記Python出力テキストのベタ貼り 🖼️
DeekSeek R1を活用したSonar Reasoning はCoTの仮定も見れますし、Web RAGもされてるので正直現時点では敵なしでは？と勝手に思っています。

Input = "VertexAI を日本の大手製造業（ディスクリート：多品種少量生産）で採用するべきか？"

Output(Sonar Reasoning [DeepSeek R1 ベース]) =

    <think>
    まず、Vertex AI を日本の大手製造業、特に多品種少量生産の分野で採用するかどうかを判断するために、以下の手順で検討します。

    1. **テーマの理解**： Vertex AI が多品種少量生産の課題解決にどのように貢献できるかを明確にする。

    2. **主要な要素の分解**：
       - **Vertex AI**：Google Cloudが提供する統合機械学習プラットフォーム。
       - **日本の大手製造業**：規模の大きな製造業。
       - **多品種少量生産**：多様な製品を少量ずつ生産する方式。

    3. **解決のためのステップ**：
       - 日本の大手製造業の現状と課題を分析。
       - Vertex AIの機能と特徴を整理。
       - Vertex AIが課題解決にどのように貢献できるかを検討。
       - メリット・デメリット、リスクを評価。

    4. **理由付けと解決策**：
       - **生産効率向上**：AutoMLやカスタムモデルを用いて最適な生産スケジュールを生成。
       - **品質管理の徹底**：異常検知モデルや画像認識を活用。
       - **需要予測精度向上**：時系列予測モデルやAutoML Tablesを使用。
       - **リスク評価**：導入コスト、専門人材の必要性、データガバナンス。

    5. **批判的評価**：
       - Vertex AIの導入は多くのメリットがあるが、コストや人材確保が課題。
       - PoCを通じた有効性の検証が必要。
       - 段階的な導入と費用対効果の評価を重視。
    </think>

    ## Vertex AI を日本の大手製造業（ディスクリート：多品種少量生産）で採用するべきか？

    ### 1. テーマの理解
    - **テーマ**: Vertex AI を日本の大手製造業（ディスクリート：多品種少量生産）で採用するべきか？
    - **意図**: 日本の大手製造業が直面する課題に対し、Vertex AI がどのような貢献をし、採用するメリットやリスクを判断する。

    ### 2. 主要な要素の分解
    - **Vertex AI**: Google Cloudが提供する機械学習プラットフォーム。
    - **日本の大手製造業**: 日本を拠点とする大規模な製造業。
    - **多品種少量生産**: 多様な製品を少量ずつ生産する方式。

    ### 3. 解決のための各ステップ
    1. **日本の大手製造業（多品種少量生産）の現状と課題分析**：
       - **現状**: 顧客ニーズの多様化、生産効率の低下、品質管理の複雑化、需要予測の難しさ、サプライチェーンの複雑化。
       - **課題**: 生産効率向上、品質管理の徹底、需要予測精度向上、サプライチェーン最適化。

    2. **Vertex AIの機能と特徴**：
       - **統合プラットフォーム**: データ準備からデプロイまで一貫した管理。
       - **スケーラビリティ**: 大規模なデータセットに対応。
       - **セキュリティ**: Google Cloudのセキュリティ基盤。
       - **オープンソース連携**: TensorFlow、PyTorchとの連携。
       - **ユースケース**: 需要予測、品質異常検知、設備故障予知、生産スケジューリング最適化、画像認識。

    3. **Vertex AIの課題解決への貢献**：
       - **生産効率向上**: 生産スケジューリング最適化。
       - **品質管理**: 異常検知。
       - **需要予測**: 高精度な予測。
       - **サプライチェーン**: リスク管理。

    4. **メリット・デメリット、リスク評価**：
       - **メリット**: 開発期間短縮、運用コスト削減、スケーラビリティ、セキュリティ。
       - **デメリット**: Google Cloud依存、導入コスト、高度な人材必要。
       - **リスク**: 費用対効果、導入・運用の課題、データ漏洩リスク。

    ### 4. 明確な理由付けと解決策
    - **生産効率向上**: AutoMLやカスタムモデルを用いて最適な生産スケジュールを生成。
    - **品質管理**: 異常検知モデルや画像認識を活用し不良品を削減。
    - **需要予測**: 時系列予測モデルやAutoML Tablesを使用し在庫リスクを軽減。
    - **リスク評価**: 導入コストや人材確保を慎重に検討し、PoCを通じて有効性を検証。

    ### 5. 結論
    Vertex AIは、日本の大手製造業（多品種少量生産）において、生産効率向上や品質管理強化に大きな貢献が期待されます。しかし、導入に当たってはコストや人材確保などの課題を考慮し、段階的な導入と費用対効果の評価が重要です。PoCを実施し、具体的な効果を検証したうえで、採用を決定することが賢明です。

Output(Sonar Pro) =

    1. テーマの理解：
    テーマ：VertexAIを日本の大手製造業（ディスクリート：多品種少量生産）で採用するべきか
    意図：VertexAIの採用が日本の大手製造業（ディスクリート：多品種少量生産）にとって有益かどうかを評価すること

    2. 主要な要素の分解：
    - VertexAI：Google Cloudが提供する機械学習プラットフォーム
    - 日本の大手製造業：日本の大規模な製造企業
    - ディスクリート製造：個別の製品を組み立てる製造方式
    - 多品種少量生産：多様な製品を少量ずつ生産する方式

    3. 理解・解決のためのステップ：
    a) 多品種少量生産の特徴と課題を分析
    b) VertexAIの機能と特徴を理解
    c) VertexAIが多品種少量生産の課題解決にどう貢献できるか検討
    d) 採用のメリット・デメリットを評価
    e) 結論を導出

    4. 解決策の提示：

    a) 多品種少量生産の特徴と課題：
    特徴：
    - 顧客ニーズに柔軟に対応可能[2][8]
    - 過剰在庫のリスクが低い[2][8]

    課題：
    - 生産効率の低下[2]
    - 品質管理の複雑化[6]
    - コスト増加[2]

    b) VertexAIの機能と特徴：
    - 統合機械学習プラットフォーム[7]
    - コード不要でのモデルトレーニング[7]
    - 高度な画像認識・異常検知機能[4]

    c) VertexAIの多品種少量生産への貢献：
    - 需要予測の精度向上による在庫最適化[4][10]
    - 品質管理の自動化・高度化[4][7]
    - 生産スケジューリングの最適化[4]

    d) 採用のメリット・デメリット：
    メリット：
    - 生産効率の向上[4]
    - 品質管理の強化[4][7]
    - コスト削減（在庫、不良品）[4][10]

    デメリット：
    - 導入・運用コスト[4]
    - データ準備の負担[4]
    - 既存システムとの統合課題[4]

    e) 結論：
    VertexAIの採用は、日本の大手製造業（ディスクリート：多品種少量生産）にとって検討に値する選択肢である。需要予測の精度向上、品質管理の強化、生産効率の向上など、多品種少量生産の主要課題に対して有効なソリューションを提供できる可能性が高い[4][10]。

    しかし、導入にはコストや既存システムとの統合など課題もあるため、段階的な導入や費用対効果の慎重な評価が必要である[4]。まずは、具体的な課題や目標を明確にし、小規模なプロジェクトでの検証（PoC）を行うことが推奨される。

    また、三菱重工業の事例[7][10]のように、特定の工程や課題に焦点を当てた導入から始め、成功事例を積み重ねていくアプローチも効果的だろう。

    5. 批判的評価：
    この解答は、多品種少量生産の特徴と課題、VertexAIの機能、そして両者の関連性を論理的に分析している。また、実際の導入事例も参照しており、説得力がある。

    改善点としては、以下が挙げられる：
    - 競合製品（例：AWS SageMaker、Azure Machine Learning）との比較
    - 導入に必要な人材育成や組織変革についての言及
    - 業界特有の規制やコンプライアンスへの対応についての考察

    これらの点を加えることで、より包括的で実用的な提案になるだろう。


実際の出力では以下のようにCitations が含まれているのが嬉しいですし追加の処理とかに使えそうですよね。

```citations:citations
citations=['https://qiita.com/RepKuririn/items/2c83376524007db95d0a', 'https://www.exa-corp.co.jp/blog/small-lot-multi-product.html', 'https://www.nri.com/content/900034194.pdf', 'https://qiita.com/RepKuririn/items/b71ff844047774220df2', 'https://www.xc-times.com/use_case/7893/', 'https://mbp-japan.com/gunma/monozukuri-takasaki/column/5162069/', 'https://www.topgate.co.jp/blog/google-service/22317', 'https://saiteki.works/blog/cont-highmix-lowvolume-production/', 'https://cloud.google.com/blog/ja/topics/customers/mhi-vertex-ai-optimizes-demand-forecasting-in-aircraft-manufacturing?hl=ja', 'https://www.oki.com/jp/showroom/virtual/column/c-42.html'])
```

一旦本日はここまでです。
皆様もぜひお試しください。