base_model: deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
library_name: peft
license: mit
language:
- en
pipeline_tag: text-generation
モデルカード
DeepThinkerv2は、算術計算を繰り返し再確認し、単位を変換して中間結果を「待って、確認させて」という複数の瞬間で検証します。その思考の連鎖は非常に細かく、ほぼすべてのステップで再帰的な思考を示し、問題の一部を複数の方法で再解決することさえあります。
このモデルが現在利用可能な他の思考モデルとどのように異なるかを体験したい場合は、以下のプロンプトを試してください。(インターネットに接続せずに)
テスト質問
questions = [
"医療におけるAIの倫理的影響について、2020年から2025年までの査読付き文献を組み込んだ1,500語の文献レビューを執筆してください。診断アルゴリズムのバイアスに関する批判的分析を含めてください。",
"GDPR規制がEUベースのAIスタートアップに与える影響を分析してください。2023年と2025年のコンプライアンス課題を比較し、事例研究と法的先例を引用してください。",
"中国とヨーロッパ市場を対象とした高級スキンケアブランドのマーケティングキャンペーンを草案してください。持続可能性メッセージにおける文化的嗜好を強調してください。"
]
同じ質問をo3-mini-highとDeepSeek R1(Deepseek Thinkモード)にも投げかけてみてください。
📊 評価結果: AIME2024 & MATH500
🔢 AIME2024ベンチマーク
このモデルは、以下の設定で4ビット量子化を使用してAIME2024データセットで評価されました:
bnb_config = BitsAndBytesConfig(
load_in_4bit=True, # 4ビット量子化
bnb_4bit_compute_dtype=torch.float16, # FP16計算
bnb_4bit_use_double_quant=True, # ダブル量子化有効
bnb_4bit_quant_type="nf4" # メモリ効率の良いNF4フォーマット
)
📌 結果:
📈 正解率: 70% (30問中21問正解)
🔍 内訳:
✅ 21 正解
❌ 4 不正解
⚠️ 5 不完全な回答
これらの結果は、モデルの強力な問題解決能力を示していますが、より複雑な数学的表現や構造化された推論の処理に改善の余地があることも示しています。
📚 MATH500データセットのパフォーマンス
MATH500データセット(出典: di-zhang-fdu/MATH500)では、モデルは以下の結果を達成しました:
📊 正解率範囲: サンプルテストセット全体で93.6% – 95.4%
🧠 強み: 強力な数学的推論と構造化された問題解決スキル
これらの結果は、数学的タスクにおけるモデルの堅牢性と、さらなるファインチューニングと最適化の可能性を示しています。
🔗 次のステップ:
AIME2024の不完全な回答の処理を改善
より構造化された推論データセットでファインチューニング
推論効率を向上させるための量子化戦略の最適化
この評価は、将来の改良と次世代モデルにおける数学的推論能力の向上のための強固な基盤を提供します。
使用方法
!pip install bitsandbytes peft
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
MODEL_NAME = "Vijayendra/DeepSeek-Qwen2.5-14B-DeepThinker-v2"
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float32
)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
device_map="auto",
quantization_config=bnb_config,
torch_dtype=torch.float16
)
print("\n🚀 モデルがGPUに正常に読み込まれました! 🚀")
print(model.hf_device_map)
def generate_response(model, tokenizer, prompt, max_new_tokens=4096, temperature=0.7):
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True).to(model.device)
attention_mask = inputs.attention_mask
with torch.no_grad():
generated_tokens = model.generate(
inputs.input_ids,
attention_mask=inputs.attention_mask,
max_new_tokens=max_new_tokens,
temperature=temperature,
do_sample=True,
top_k=40,
top_p=0.9,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id
)
return tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
questions = [
"時間旅行者が過去に戻って自分の誕生を阻止した場合、どうやって自分の誕生を阻止する存在になり得るのでしょうか?このパラドックスを考えると、時間旅行は因果律と論理的に整合性があるのでしょうか?既知の物理理論の下でそのような出来事が可能かどうか説明してください。",
"もし地球に地軸の傾きがなかったらどうなるでしょうか?気候、生態系、人類文明への長期的な影響を説明してください。技術と農業の進歩は異なる方向に進化したでしょうか?",
"数列が次のパターンに従っています: 2, 6, 12, 20, 30, 42, ...50番目の項は何ですか?また、n番目の項の一般式は何ですか?",
"もしAIモデルが自己認識を持った場合、どうやってそれを知ることができるでしょうか?AIは人間の観察者に自己の意識を証明できるでしょうか?哲学と神経科学の例を用いて議論してください。",
"毎朝、Ayaは9キロメートルの散歩をし、その後コーヒーショップに立ち寄ります。彼女が時速sキロメートルの一定速度で歩くと、散歩にはコーヒーショップで過ごすt分を含めて4時間かかります。時速s+2キロメートルで歩くと、散歩にはt分を含めて2時間24分かかります。Ayaが時速s+1/2キロメートルで歩くと仮定します。コーヒーショップで過ごすt分を含めた散歩にかかる分数を求めてください。",
"1より大きい実数xとyが存在し、$\log_x\left(y^x\right)=\log_y\left(x^{4y}\right)=10$を満たします。xyを求めてください。",
"AliceとBobが次のゲームをプレイします。n個のトークンの山が前にあります。プレイヤーはAliceから始めて交互にターンを取ります。各ターンで、プレイヤーは山から1個または4個のトークンを取り除きます。最後のトークンを取ったプレイヤーが勝ちます。BobがAliceのプレイに関係なく必ず勝つ戦略が存在するような、2024以下の正の整数nの個数を求めてください。",
"JenはS={1,2,3,...,9,10}から4つの異なる数字を選んで宝くじに参加します。Sから4つの数字がランダムに選ばれます。彼女の選んだ数字のうち少なくとも2つが選ばれた数字と一致すれば賞品を獲得し、4つすべてが一致すればグランドプライズを獲得します。彼女が賞品を獲得した条件下でグランドプライズを獲得する確率は、互いに素な正の整数mとnを用いて$\tfrac{m}{n}$と表せます。m+nを求めてください?"
"17_bが97_bの約数となるような、9より大きいすべての整数基数bの和を求めてください。",
"$\triangle ABC$において、点A,D,E,Bがこの順に辺$\overline{AB}$上にあり、AD=4, DE=16, EB=8です。点A,F,G,Cがこの順に辺$\overline{AC}$上にあり、AF=13, FG=52, GC=26です。MをFを通るDの反射点、NをEを通るGの反射点とします。四角形DEGFの面積は288です。七角形AFNBCEMの面積を求めてください。"
]
for i, question in enumerate(questions, 1):
response = generate_response(model, tokenizer, question)
print(f"\n🟢 質問 {i}: {question}")
print(f"🔵 応答: {response}")