paint-brush
DeepSeek R1 をローカルで実行して、その「思考」の仕組みを学ぶ - 方法は次のとおりです@zbruceli
新しい歴史

DeepSeek R1 をローカルで実行して、その「思考」の仕組みを学ぶ - 方法は次のとおりです

Bruce Li11m2025/01/29
Read on Terminal Reader

長すぎる; 読むには

DeepSeek R1 を Web/電話アプリを使用する代わりに、コンピューター上でローカルに実行することで、AI が段階的に「考え」、代替案を試し、自己検証して反復する様子を見るのは非常にやりがいのあることです。付録には、コンピューター上で R1 を実行する方法と、いくつかの例を示します。
featured image - DeepSeek R1 をローカルで実行して、その「思考」の仕組みを学ぶ - 方法は次のとおりです
Bruce Li HackerNoon profile picture

DeepSeek R1 を Web/電話アプリを使用する代わりに、ローカルのコンピューターで実行することで、AI が段階的に「考え」、代替案を試し、自己検証して反復する様子を見るのは非常にやりがいがあります。2 日間のテスト中に興味深いと思った例をいくつか紹介します。これは、スティーブン・ウルフラムの物理教育シリーズの多くの文章スタイルを何となく思い出させます。


さらに、付録に、コンピュータで R1 を実行する方法についての説明を追加しました。私は 16GB のメモリしか搭載していない「古い」M1 Pro Macbook Pro を持っていますが、8B 蒸留モデル (LLama ベース) をかなり良好かつ高速に実行します。

例1: 火星への旅

質問:

火星へ旅行したい場合、最もエネルギー効率の良い方法は何でしょうか?

DeepSeek R1の思考プロセス

<考える>


さて、私は最もエネルギー効率の良い方法で火星に旅行する方法にとても興味があります。ロケットと宇宙探査について少し読んだことは覚えていますが、すべての詳細についてよくわかっていません。これを段階的に説明してみたいと思います。


まず、地球から火星に行くのは、距離が長いため、ロケットを直接打ち上げるほど簡単ではありません。火星は最も近い地点でも約 2 億 2500 万マイル離れていると思います。これは金星や木星などの他の惑星と比べると非常に大きな距離なので、ここでは効率が非常に重要であるに違いありません。


ロケットは推進力を得るために推進剤を使用するが、このプロセスは特に地球の大気圏では極めて非効率になることがある、と聞いたことがある。だから、地球から出発するのが最も効率的な方法ではないのかもしれない。別の発射地点があるかどうかはわからないが、もっと近い宇宙港や基地があったとは思わない。出発点として別の種類のロケットや別の惑星を使うという方法もあるのだろうか?


ちょっと待ってください、質問には太陽の周りを回ることについて何か言及されていました。火星と地球はどちらも太陽の周りを回っているので、火星に直接行く代わりに、地球の軌道から火星の軌道に移動できるかもしれません。軌道移動は必要なエネルギーが少なくて済むようですが、それがどのように機能するかは正確にはわかりません。重力アシストを使用する天体力学のホーマン移動に似ていると思います。


重力スリングショット?ああ、そうか、宇宙船が他の惑星の重力を利用して軌道を加速したり減速したりするということか。だから、金星や地球の重力をうまく利用できれば、火星に直行する代わりにエネルギーを節約できるかもしれない。でも、こんなに長い旅にそれがどれだけ効果的かはわからない。


また、イオンスラスタなどの電気推進システムは、電気を使って推進剤をイオン化し、電界で加速するため、化学ロケットよりも効率的だという話も覚えています。推進力は低いですが、燃料をあまり使わずに長時間稼働できます。有望に思えますが、従来の方法と比べて火星にどれだけ早く到着できるかはわかりません。


問題は、たとえこれらの効率的な方法を使用したとしても、全体の旅は太陽系の 4 分の 1 を進むことになるということです。したがって、両方の技術を組み合わせる必要があるかもしれません。つまり、最初の打ち上げには化学ロケットを使用し、宇宙に到着したらイオン スラスタまたは別の形式の電気推進に切り替えるのです。そうすれば、燃料を節約でき、長い旅に必要な量を減らすことができます。


私が考えているもう 1 つのことは、火星の移行軌道そのものについてです。火星の軌道と交差する太陽の周りの適切な軌道に入ることができれば、より少ないエネルギーで火星に到着できる可能性があります。しかし、両方の惑星が動いているため、正確な軌道を計算するのは複雑で、タイミングと位置合わせが大きな役割を果たします。


コストと実現可能性についても疑問に思います。効率的だとしても、火星に行くには大量の燃料が必要になるかもしれません。ですから、宇宙で燃料補給できる宇宙船を使うとか、比推力の高いより高度な推進システムを開発するなど、他の方法を検討できるかもしれません。核熱ロケットや反物質推進の研究もあると思いますが、それはあくまでも推測です。


待ってください、質問には「火星遷移軌道」についても触れられています。つまり、火星に直接向かうのではなく、火星に追いつくことができる軌道を目指すことになるかもしれません。地球の軌道から火星の軌道に到達するのに必要なデルタ v が減少するため、それは理にかなっています。デルタ v は軌道を変えるために必要な速度の変化であるため、ホーマン遷移を使用するのは良い戦略のように思えます。


地球の出発地点についても興味があります。地球の自転運動量を利用するために、南半球など地球上のどこか別の場所から打ち上げれば、エネルギーを節約できるかもしれません。惑星の自転を利用するので、ある意味で「ホーマン遷移軌道」と呼ばれていると思います。


これらすべてをまとめると、最も効率的な方法は、最初の打ち上げには化学ロケットを使用し、宇宙に到着したら電気推進に切り替えて長距離での燃料消費を最小限に抑えることです。さらに、他の惑星からの重力アシストを活用することで、全体的に必要なエネルギーを削減できます。


正確な数字や、これが現在行われていることや提案されていることなのかはよくわかりません。SpaceX のような企業は火星への移動や再利用可能なロケットに取り組んでいるので、何らかの知見があるかもしれません。また、宇宙船の質量や、特に長距離飛行の場合は、搭載できる推進剤の量にも左右されるかもしれません。


まとめると、火星に効率的に移動するには、ホーマン遷移軌道、重力アシスト、電気推進を組み合わせるのがよい方法のようです。このアプローチにより、太陽系の広大な距離を移動するために必要なエネルギー消費を最小限に抑えることができます。


</考える>

DeepSeek R1 の回答

最もエネルギー効率の高い方法で火星へ旅行するには、次のアプローチを検討してください。


1.ホーマン トランスファー軌道: 火星の軌道力学に合わせることで、必要なデルタ v を減らすトランスファー軌道を使用します。これには、火星の軌道と交差する太陽の周りの楕円軌道に入ることが含まれており、移行に必要なエネルギーを最小限に抑えます。

2.重力アシスト: 金星や地球などの他の惑星からの重力スリングショットを利用して、追加の推進剤なしで速度を上げ、軌道を変更し、効率を高めます。

3.電気推進システム: 化学ロケットを使用して最初の打ち上げを行った後、長距離の旅ではイオンスラスタまたは同様の電気推進システムに切り替えます。これらのシステムはより高い比推力を提供し、より少ない燃料で持続的な動作を可能にします。

4.最適化された打ち上げ地点: 地球の自転運動量を活用し、打ち上げに必要なエネルギーを削減するために、南半球から打ち上げることを検討します。

5.推進方法の組み合わせ: 最初の上昇には化学ロケットを使用し、その後惑星間移動には電気推進に切り替えて、全体的な燃料消費を最小限に抑えます。


この統合アプローチは、従来の推進技術と高度な推進技術の両方を活用して、初期推力の必要性と効率的な長距離移動のバランスをとります。

例2: アインシュタインの有名な公式

質問:

E = mc²を証明する

DeepSeek R1の思考プロセス

<考える>


さて、E が mc の 2 乗に等しいことを証明しようとしています。うーん、どこから始めればいいのでしょうか? アインシュタインの相対性理論が物理学で重要なことは知っていますが、彼はどうやってその方程式を思いついたのでしょうか? もっと細かい部分に分解したほうがいいかもしれません。


まず、E は何の略語でしょうか? エネルギーだと思います。m は質量でしょうか? つまり、エネルギーは質量に光速の 2 乗を掛けた値になります。特殊相対性理論では光速は定数なので、これは理にかなっています。しかし、実際にはどのように機能するのでしょうか?


古典物理学では、エネルギーと質量は別々の概念として考えられていたことを覚えています。エネルギーは運動エネルギーのように動きと関連付けられていましたが、質量は慣性と重力に関するものでした。しかし、アインシュタインの理論は、それらが根本的に関連していることを示して、この状況を変えました。


まず特殊相対性理論の基本を復習しましょう。特殊相対性理論には 2 つの公理があります。1 つは、すべての慣性系で光の速度が一定であるという公理、もう 1 つは、運動によって空間と時間がどのような影響を受けるかという公理です。これらの考えから、アインシュタインは質量とエネルギーの等価性を提唱しました。


さて、E がエネルギーで、m が質量だとすると、E=mc² という式は、質量が光速でエネルギーに変換され、その逆も可能であるという考えから来ているに違いありません。しかし、その変換は具体的にどのように機能するのでしょうか。これは、自由落下中の人は加速するエレベーターの乗客と同等の加速度を経験するという等価原理と関係があると思います。


待ってください、それは質量がその運動や重力ポテンシャルによってどのようにエネルギーを生み出すかということについてかもしれません。おそらくアインシュタインの思考実験がここで大きな役割を果たしたのでしょう。彼は、光速で動いている梁の上にいて、その後上向きに加速したらどうなるかを想像しました。あなたの視点から見ると無重力を感じるので、質量とエネルギーは互換性があると彼は考えました。


E=mc² がこれらの概念からどのように導かれるのか、まだよくわかっていません。アインシュタインが思考プロセスで取った具体的な手順を調べる必要があるかもしれません。彼は異なる慣性系における時空間隔間の数学的関係を使用したに違いありません。


不変量という考え方もあります。これは、観察者の基準フレームに関係なく、特定の特性が一定のままであることを意味します。エネルギーと質量は、相対論的効果を考慮するときに相互に変換できる 2 つの量です。


しかし、少し迷ってきています。特殊相対性理論の重要な公理を書き留めて、それがどのようにして E=mc² につながるかを確認してみる必要があるかもしれません。それでは、これを書き留めておきます。

1. 光の速度はすべての慣性系において一定です。

2. 等価原理: 加速フレーム内の観測者は、加速する慣性フレーム内にいるのと同等の重力場を経験します。


これらから出発して、アインシュタインは質量とエネルギーを結びつける関係を見つけたいと考えました。おそらく、時空間隔の変化が質量とエネルギーの変化とどのように関係するかを考慮したのでしょう。


別のアプローチとしては、運動量と力を考慮することだと思います。相対性理論では、運動量は単なる質量と速度の積ではなく、ガンマ係数が関係します。おそらく、これらの方程式を操作することで、E=mc² に到達できるでしょう。


あるいは、静止質量エネルギーについて考えるべきかもしれません。静止質量エネルギーとは、物体が静止質量によって持つエネルギーです。物体が動いていなくても、エネルギーを持っているので、これは自然に E=mc² につながります。


しかし、待ってください。アインシュタインはこの方程式をただ空想で作り出したわけではありません。時空の曲率が物質やエネルギーとどのように相互作用するかを何年も考え、計算した結果生まれたに違いありません。


等価原理を直接使ってそれを導き出せるかどうか疑問に思います。遠く離れた観測者と比較して重力場の中でより遅く進む時計を考えると、重力ポテンシャルと時間の遅れの間には関係があります。これは、質量が時空に曲率を生み出すことに関係している可能性があり、それが光の移動方法に影響し、エネルギーに影響を与えます。


だんだん複雑になってきましたが、重要な考え方は、質量が時空に影響を与え、この影響はエネルギーとして定量化できるということだと思います。したがって、E=mc² は、質量とエネルギーが同じ基本特性の異なる現れであるという関係をアインシュタインが表現した方法なのかもしれません。


しかし、それを本当に証明するには、特殊相対性理論の数学的定式化を使用する必要があるでしょう。おそらく、時空間隔から始めて、それをエネルギーと運動量に関連付けます。そこから、質量による時空の変化がエネルギーと同等になる可能性があることを示すことができます。


まだすべてのステップを完全に理解しているわけではありませんが、E=mc² は単なるランダムな方程式ではなく、質量とエネルギーが自然界の定数を通じてどのように関連しているかというアインシュタインの見解に深く根ざしていることがわかってきました。


おそらく別の視点としては、核反応を考慮することです。原子爆弾におけるエネルギーの放出は、少量の質量が大量のエネルギーに変換されるため、E=mc² に従っているように思われ、これは方程式と一致します。


しかし、これは証明というよりは応用です。基本原理に戻る必要があります。おそらく、アインシュタインの特殊相対性理論とその公理を使えば、第一原理から方程式を導き出せるでしょう。


まず時空の不変区間から始めて、それがエネルギーや質量とどのように関係するかを見ながら、重要な方程式を段階的に書き出そうと思います。


したがって、不変間隔は ds² = -c² dt² + dx² + dy² + dz² です。物体が一定の速度で移動する場合、この間隔はすべての観測者に対して一定のままです。


しかし、物体の質量がその運動や重力ポテンシャルによって変化する場合は、その質量の変化とそれに伴うエネルギーの間には関係があるはずです。


正確な手順はまだよく分かりませんが、アインシュタインは時空の曲率、質量、エネルギーという概念を 1 つの方程式に統合する方法を見つける必要があったことがわかります。


おそらく、物体の静止フレームが他の観察者に対するその動きとどのように関係しているかを考慮することで、方程式を操作して E=mc² に到達できるでしょう。


全体的に、E=mc² を証明するには、特殊相対性理論、等価原理、そして同じ実体の異なる形態としての質量とエネルギーの性質についての深い理解が必要であることは明らかです。これは複雑な導出ですが、現代物理学の基礎となります。


</考える>

DeepSeek R1の回答

E = mc² は、質量 (m) とエネルギー (E) の関係を表すアインシュタインの特殊相対性理論の方程式です。ここで c は光速です。次のように理解できます。


1. 特殊相対性理論の公理:

- 真空中の光の速度は、観測者の動きや基準フレームに関係なく、すべての観測者にとって一定です。

- 等価原理: 加速フレーム内の観測者は、静的重力場内の観測者と同じ重力効果を経験します。

2. 時空間間隔の不変性:

時空における不変間隔は \( ds² = -c² dt² + dx² + dy² + dz² \) で与えられます。この間隔は、参照フレームに関係なく、すべての観測者に対して一定のままです。

3. エネルギーと運動量の関係:

アインシュタインは等価原理から、質量とエネルギーは同じ実体の交換可能な形態であると結論付けました。

これにより、彼は物体の運動や重力ポテンシャルの変化が物体の質量とエネルギーにどのように影響するかを考えるようになりました。

4. 導出手順:

- 動く物体とその静止系が他の観測者に対するその動きとどのように関係するかを検討することにより、アインシュタインは特殊相対性理論の方程式を操作しました。

- 物体は静止しているときでも質量によるエネルギーを持っているという考えから、静止質量エネルギーという概念が生まれました。

- この静止質量エネルギーは物体の質量に比例し、\( E = mc² \) と表すことができます。

5. 応用と影響:

- この方程式は、少量の質量が大量のエネルギーに変換される核反応を説明するなど、深い意味を持っています。

- これは、以前は別々に考えられていた概念、つまり質量とエネルギーの統一を強調しています。


要約すると、アインシュタインの E=mc² の導出は特殊相対性理論、特に等価原理に根ざしており、質量とエネルギーは同じ基本的性質の異なる現れであるという認識につながりました。

付録: DeepSeek R1 をローカルで実行する方法

1. 最も簡単な方法は ollama を使うことです:

まず、コンピュータにollamaをダウンロードしてください

https://ollama.com/download


次に次のコマンドを実行します

ollama run deepseek-r1:8b

2. 少し難しいのはllama.cppを使うことです

まず、llama.cpp からソース コードをダウンロードします。

git clone https://github.com/ggerganov/llama.cppcd llama.cpp


cmakeを使用してバイナリをビルドする

cmake -B buildcmake --build build --config Release


HuggingFaceからモデルのウェイトをダウンロードする

https://huggingface.co/unsloth/DeepSeek-R1-Distill-Llama-8B-GGUF/blob/main/DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf


重みを llama.cpp の下のモデル ディレクトリに配置し、次のコマンドを実行します。

./llama-cli -m models//DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf --cache-type-k q8_0 --threads 16 -c 8192 -cnv --chat-template chatml

3. APIを使用してオリジナルのR1モデルにアクセスすることもできます

これは OpenAI の API とほぼ互換性があります。

https://api-docs.deepseek.com/