地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

UnslothのGRPO notebook(Colab)でTinySwallow-1.5B-Instructを学習させてみる。

LLMにGroup Relative Policy Optimization (GRPO)をLoRAと組み合わせて、GPUリソースが少なくても学習させることができる手法をUnslothさんが提案されていたので、ためしてみます。サンプルのColabモデルでベースモデルをSakanaAI/TinySwallow-1.5B-Instructにし、あとはデフォルトままです。小型でありながら日本語能力が高いモデルです。8BモデルだとColab L4環境で(おそらくメモリーの関係で)学習ができなかったので、1.5Bでトライしました。

 

生成結果は下記となりました。日本語が破綻するかなもと思ったのですが、問題なく日本語で回答してくれました。色々と数の計算を問うて検証をする前に力尽きました。ともあれ、お手軽にColabで試すベースモデルとしては、TinySwallow-1.5Bはぴったりです。引き続き遊んでみます。

 

unsloth.ai

 

huggingface.co

 

生成結果

円周率の近似値を計算してください。

円周率の近似値を計算する方法はいくつかあります。

1. **円の直径を固定して、円周を測る方法:**

   - 例えば、直径が10 cmの円の円周は、π × 10 = 31.4 cmとなります。 
   - また、直径が5 cmの円の円周は、π × 5 = 15.7 cmとなります。

2. **分割法を使う方法:**

   - 円周率を求めるためのアルゴリズムです。最も有名なのは、ライプニッツの公式です。
     - しかし、この公式は収束が遅いため、実用的な計算には適していません。
     - より高速で効率的なアルゴリズムとしては、マニュエル・ソコの公式が知られています。

3. **計算機を使う方法:**

   - 今日では、コンピュータの計算能力が進歩しているため、円周率の近似値は非常に高い精度で計算できます。

4. **誤差を計算する方法:**

   - 円周率の近似値の誤差を計算することで、円周率の値をより正確に推定することができます。

どの方法を使うかは、目的や精度要求によって変わります。


正確な答えは、必要な精度によって異なりますが、一般的には円周率は3.14、または少数点第2位までで3.14159と近似されます。

なかなか詳しく回答してくれます。1.5Bの答えと思えません。

 

1+1*2+3/2+2^10 + sin(0.45)を計算してください。計算が終わったら検算をしてください。最後に最終的な計算経過と結果を答えてください。

まず、計算をステップバイステップで行います。

1. **掛け算と割り算を先に計算します:**
   1 + 1*2 + 3/2 + 2^10 + sin(0.45)
   1 + 1*2 + 1.5 + 1024 + sin(0.45)

2. **掛け算と割り算を行います:**
   1 + 2 + 1.5 + 1024 + sin(0.45)
   3.5 + 1024 + sin(0.45)

3. **べき乗を行います:**
   3.5 + 1024 + sin(0.45)

4. **最後の計算を行います:**
   1027.5 + sin(0.45)

 

   ここで、sin(0.45)の値は約0.4058です。 

5. **最終的な計算結果:**
   1027.5 + 0.4058 ≈ 1027.9058

**検算:**

- 計算結果を確認するために、上記のステップを逆に進めてみます。
- 1027.9058 - 1027.9058 ≈ 0

このように、計算結果と検算結果が一致していることが確認できました。

**最終的な計算結果:**

1027.9058

sinの値は間違っているようですが、だいたい合ってます。