LLMにGroup Relative Policy Optimization (GRPO)をLoRAと組み合わせて、GPUリソースが少なくても学習させることができる手法をUnslothさんが提案されていたので、ためしてみます。サンプルのColabモデルでベースモデルをSakanaAI/TinySwallow-1.5B-Instructにし、あとはデフォルトままです。小型でありながら日本語能力が高いモデルです。8BモデルだとColab L4環境で(おそらくメモリーの関係で)学習ができなかったので、1.5Bでトライしました。
生成結果は下記となりました。日本語が破綻するかなもと思ったのですが、問題なく日本語で回答してくれました。色々と数の計算を問うて検証をする前に力尽きました。ともあれ、お手軽にColabで試すベースモデルとしては、TinySwallow-1.5Bはぴったりです。引き続き遊んでみます。
生成結果
円周率の近似値を計算してください。
円周率の近似値を計算する方法はいくつかあります。
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の値は間違っているようですが、だいたい合ってます。