OpenMythosからPytorchと熟考ループへ移行しました

1.概要

OpenMythosの環境構築や実行試験をしていたのですが、処理ロジックを呼び出すだけでは中身がわかりません。AIでは大規模なテンソルを利用するのでデータの追跡がとても難しく、ロジックが明確なことが大切だと思います。難しい部分はGoogleAI(Gemini)に手助けを依頼して、少し処理を追跡をしてみました。

OpenMythosで利用されている熟考ループの汎用的なサンプルコードを参照して、Pytorchのforward処理部分にbackwardを伴わない数回のループを追加して代替できると知りました。これを知って、OpenMythosはPytorchで実現でき、Pytorchのみに移行しました。これでnvidia-1050Tiでも実行可能になりました。

2.詳細

CNNを利用したTensorflowの勉強を以前していたので、テンソルを利用した学習と学習成果を利用した新しいデータによる検証の手順は理解していました。しかし、LLMの領域は初めてで良くわかりません。こんなときはLLMの基礎を学習することが一番良いことであり、LLMの基礎事例を勉強することにしました。

かれのなまえはたろうです。かれのいぬはぽちです。

私には初めての文書でしたが、LLM分野の方はご存知の文書だと思います。
LLMは、この文書を学習して、「かれのなまえは」と問い合わせると、「たろうです」と答えるロジックを作ります。

LLMは文字列から次の1文字を学習結果を利用して推測します。上記例文では、「かれのな」から「ま」を推測します。これは正解がある学習を利用するのでCNNと似ています。ニューラルネットの定義があり、forwardとbackwardと評価関数と損失計算をする部分も同じです。データ量がある程度必要だったCNNと比較すると、LLMは単純な文書でも実行できます。

この勉強を進める中で、OpenMythosも熟考ループを利用していると知りました。勾配計算によるテンソル修正をforwardとbackwardのペアで実現する部分を変更して、複数回のforwardと1回のbackwardにすることで実現できました。そうであるならば、OpenMythosでなく、Pytorchだけでもできると考えてサンプルコードで勉強しています。

わかったことは、学習時に熟考ループを採用すると、学習成果を利用した新しいデータの検証時も熟考ループが必要なことです。これは学習時に巨大な計算リソースが必要であった従来手順に加えて、新しいデータの検証時にも大きな計算リソースが必要になります。データセンターの設備増強はこれが影響しているのかもしれません。

3.所見

表面だけの勉強では応用ができません。何故、と考えて一歩踏込むことで本質を知る機会になります。ネットを利用して豊富な情報から必要な知識を得られる現在の環境は、沢山の知る機会を与えてくれる貴重なものだと感じています。

コメント

このブログの人気の投稿

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

LinuxMint 21.3にWinBoat導入を試してみました

Ubuntu 22.04へWinBoat導入をチャレンジしました