ウェブサイト検索

DeepSeek R1大規模言語モデルの能力を理解する


DeepSeek R1は、良い理由から、ここ数週間でAI/MLコミュニティを席巻し、実際に経済や政治に大きな影響を与えながら、より広い世界にも広がっています。これは主に、モデルスイートのオープンソースの性質と非常に低いトレーニングコストによるもので、コミュニティ全体に、最先端のAIモデルのトレーニングには、以前考えられていたほど多くの資本や独自の研究が必要ないことを示しました。

このシリーズの第一部では、DeepSeek R1を紹介し、Ollamaを使用してモデルを実行する方法を示しました。この続編では、R1が実際に何が特別なのかを深く掘り下げていきます。モデルのユニークな強化学習(RL)パラダイムを分析し、LLMの推論能力がどのようにRLを通じて純粋にインセンティブを与えられるかを見ていきます。その後、これらの技術を他のモデルに蒸留することで、既存のリリースとこれらの能力を共有できる方法について議論します。最後に、1クリックモデルGPUドロップレットを使用してDeepSeek R1モデルをセットアップし、実行する方法についての短いデモを行います。

前提条件

  • ディープラーニング:この記事では、ニューラルネットワークのトレーニングと強化学習に関連する中級から上級のトピックを扱います。
  • DigitalOceanアカウント:R1をテストするために、特にDigitalOceanのHuggingFace 1クリックモデルGPUドロップレットを使用します。

DeepSeek R1 概要

DeepSeek R1研究プロジェクトの目標は、強力な推論モデル、すなわちOpenAIのO1が示す効果的な推論能力を再現することでした。これを達成するために、彼らは既存の作業であるDeepSeek-v3-Baseを純粋な強化学習を用いて改善しようとしました。これにより、推論ベンチマークで優れた性能を示すDeepSeek R1 Zeroが登場しましたが、人間の解釈可能性が欠けており、言語混合のような異常な行動を示しました。

これらの問題を改善するために、彼らは少量のコールドスタートデータとマルチステージトレーニングパイプラインを組み込んだDeepSeek R1を提案しました。R1は、数千のコールドスタートデータ例でDeepSeek-v3-Baseモデルをファインチューニングし、その後、強化学習をもう一度行い、推論データセットで監視付きファインチューニングを行い、最後にもう一度強化学習を行うことで、SOTA LLMの可読性と有用性を達成しました。彼らはその後、R1から収集したデータで他のモデルを監視付きファインチューニングすることによって、その技術を他のモデルに蒸留しました。

これらの開発段階を深く掘り下げるために従ってください。また、これらがどのようにモデルを反復的に改善し、DeepSeek R1の能力に到達したかについての議論も行います。

DeepSeek R1 Zeroのトレーニング

DeepSeek R1 Zeroを作成するために、R1が開発された基準モデルとして、研究者たちはSFTデータを使用せずにRLを基準モデルに直接適用しました。彼らが選択したRLパラダイムは、グループ相対ポリシー最適化(GRPO)と呼ばれています。このプロセスは、DeepSeekMath論文から適応されました。

GRPOは、馴染みのある他の強化学習システムに似ていますが、重要な点で異なります。それは、批評モデルを使用しないことです。代わりに、GRPOはグループスコアからベースラインを推定します。このシステムの報酬モデルには、精度とテンプレートへの形式遵守をそれぞれ報酬する2つのルールがあります。その後、報酬はトレーニング信号の源として機能し、強化学習の最適化方向を修正するために使用されます。このルールベースのシステムにより、強化学習プロセスはモデルを反復的に修正し改善することができます。

トレーニングテンプレート自体は、上記のように基本モデルが指定された指示に従うように導くシンプルなライティングフォーマットです。モデルは、RLの各ステップに対して調整された「プロンプト」に対する応答を測定します。「これは注目すべき成果であり、モデルがRLのみを通じて効果的に学習し、一般化する能力を強調しています」(出典)。

このモデルの自己進化は、自己反省や代替アプローチの考慮を含む強力な推論能力を発展させることにつながります。これは、研究チームがモデルの「アハ体験」と呼ぶトレーニング中の瞬間によってさらに強化されます。「この段階で、DeepSeek-R1-Zeroは初期アプローチを再評価することによって問題に対してより多くの思考時間を割り当てることを学びます。この行動は、モデルの推論能力の成長を示すだけでなく、強化学習が予期しない洗練された結果をもたらす方法の魅力的な例でもあります。」

DeepSeek R1 Zeroはベンチマークで非常に優れた性能を発揮しましたが、適切な人間に適応したLLMと比較すると、可読性と有用性の面で大きな欠点がありました。研究チームは、したがって、ヒューマンレベルのタスクに対してモデルをより良く強化するためにDeepSeek R1を提案しました。

DeepSeek R1 ZeroからDeepSeek R1へ

比較的手つかずのDeepSeek R1 Zeroから、はるかに機能的なDeepSeek R1に移行するために、研究者たちはいくつかのトレーニング段階を導入しました。

まず、DeepSeek-v3-Baseは、DeepSeek R1 Zeroで使用されるのと同じ強化学習パラダイムを開始する前に、数千のコールドスタートデータに対してファインチューニングされ、出力の一貫した言語に対する追加の報酬が与えられました。実際、このフェーズは、特にコーディング、数学、科学、論理的推論などの推論集約型タスクにおけるモデルの推論能力を向上させるために機能し、明確な解決策を持つ明確に定義された問題を含みます。

このRLステージが完了すると、彼らは得られたモデルを使用して、教師ありファインチューニングのための新しいデータを収集します。「初期のコールドスタートデータは主に推論に焦点を当てていますが、このステージでは、モデルのライティング、ロールプレイ、その他の汎用タスクの能力を向上させるために、他のドメインからのデータが組み込まれています」(出典)。

次に、モデルの「有用性と無害性を改善しながら、同時に推論能力を洗練させる」ために、第二のRLステージが実装されます(出典)。報酬信号を用いて多様なプロンプト分布でモデルをさらに訓練することで、彼らは有用性と無害性を優先しながら推論に優れたモデルを訓練することができます。これにより、モデルの「人間のような」応答性が向上します。このプロセスは、モデルが知られている驚異的な推論能力を進化させるのに役立ちます。時間が経つにつれて、このプロセスはモデルが特徴的な長い思考と推論の連鎖を発展させるのに役立ちます。

DeepSeek R1の機能

R1は、推論ベンチマークにおいて最先端のパフォーマンスを示しています。数学などの特定のタスクでは、O1のために発表された指標を上回ることさえ示しています。全体として、STEM関連の質問に対しても非常に高いパフォーマンスがあり、これは主に大規模な強化学習に起因しています。STEM科目に加えて、このモデルは質問応答、指示タスク、複雑な推論においても非常に優れています。著者たちは、これらの改善と強化された能力は、強化学習を通じたモデルの思考の連鎖処理の進化によるものであると主張しています。モデルがより長く、より内省的な出力を提供するように促すために、強化学習とファインチューニング全体で使用される長い思考の連鎖データがあります。

DeepSeek R1 蒸留モデル

DeepSeek R1の能力を小型モデルに拡張するために、著者たちはDeepSeek R1から80万サンプルを収集し、それを使用してQWENやLLAMAのようなモデルをファインチューニングしました。彼らは、この比較的簡単な蒸留技術がR1の推論能力をこれらの新しいモデルに高い成功率で移転できることを発見しました。彼らは追加の強化学習を行うことなく、元のモデルの応答の力を示し、モデル蒸留を実現しました。

GPUドロップレットでDeepSeek R1を立ち上げる

GPUドロップレットでDeepSeek R1を起動するのは、すでにDigitalOceanアカウントを持っていれば非常に簡単です。先に進む前に必ずサインインしてください。

私たちは、1クリックモデルGPUドロップレットとしてR1へのアクセスを提供します。これを起動するには、GPUドロップレットコンソールを開き、テンプレート選択ウィンドウの「1クリックモデル」タブに移動し、マシンを起動してください!

そこから、モデルはHuggingFaceまたはOpenAIのメソッドに従ってアクセス可能になります。以下のスクリプトを使用して、Pythonコードでモデルと対話してください。

import os
from huggingface_hub import InferenceClient

client = InferenceClient(base_url="http://localhost:8080", api_key=os.getenv("BEARER_TOKEN"))

chat_completion = client.chat.completions.create(
    messages=[
        {"role":"user","content":"What is Deep Learning?"},
    ],
    temperature=0.7,
    top_p=0.95,
    max_tokens=128,
)
## or use OpenAI formatting
#import os
#from openai import OpenAI
#
#client = OpenAI(base_url="http://localhost:8080/v1/", api_key=os.getenv("BEARER_TOKEN"))
#
#chat_completion = client.chat.completions.create(   model="tgi",   messages=[       {"role": "system", "content": "You are a helpful assistant."},       {"role": "user", "content": "What is Deep Learning?"},   ],   temperature=0.7,   top_p=0.95,   max_tokens=128,
#)

あるいは、同じシステムで動作するカスタムパーソナルアシスタントを作成しました。これらのタスクにはパーソナルアシスタントの使用をお勧めします。なぜなら、すべてを素敵なGUIウィンドウにまとめることで、モデルとの直接的なやり取りの多くの複雑さを抽象化するからです。パーソナルアシスタントスクリプトの使用方法について詳しくは、このチュートリアルをご覧ください。

締めくくりの考え

結論として、R1はLLM開発コミュニティにとって素晴らしい前進です。彼らのプロセスは、トレーニングコストで数百万ドルを節約し、最先端のクローズドソースモデルと同等、あるいはそれ以上のパフォーマンスを提供することを約束しています。私たちは、DeepSeekが国際的な認知を得るにつれてどのように成長し続けるかを注意深く見守ります。