ホームページ  >  記事  >  テクノロジー周辺機器  >  すぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しました

すぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しました

WBOY
WBOY転載
2023-04-13 14:01:061119ブラウズ

GPT は、人工知能分野における「暴力の美学」の代表作として、一躍脚光を浴びたと言えます。GPT の誕生当初の 1 億 1,700 万個のパラメータから、 GPT-3 の 1,750 億パラメータへの道。 GPT-3 のリリースに伴い、OpenAI は商用 API をコミュニティに公開し、GPT-3 を使用してさらに実験を試みることを誰もが奨励しています。ただし、API の使用にはアプリケーションが必要であり、アプリケーションが無駄になる可能性があります。

リソースが限られている研究者が大規模なモデルで遊ぶ楽しさを体験できるようにするために、元 Tesla AI ディレクターの Andrej Karpathy 氏が、わずか約 300 行のコードで PyTorch に基づいてこのモデルを作成しました。小さな GPT トレーニング ライブラリが開発され、minGPT と名付けられました。このminGPTは加算演算や文字レベル言語モデリングが可能であり、精度も悪くありません。

2 年後、minGPT が更新され、Karpathy は NanoGPT という名前の新しいバージョンを開始しました。このライブラリは、中型 GPT のトレーニングと微調整に使用されます。発売からわずか数日で 2.5,000 個のスターを集めました。

すぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しました


プロジェクトアドレス: https://github.com/karpathy/nanoGPT

Karpathy 氏はプロジェクトの紹介で次のように書いています。「NanoGPT は、中規模 GPT のトレーニングと微調整のための最もシンプルかつ最速のライブラリです。minGPT は非常に複雑なので、これは minGPT を書き直したものです」 NanoGPT はまだ開発中であり、現在 OpenWebText データセット上で GPT-2 を再現することに取り組んでいます。

NanoGPT コード設計の目標 それはシンプルであり、読みやすく、そのうち train.py は約 300 行のコード、model.py は約 300 行の GPT モデル定義で、OpenAI から GPT-2 重みをロードすることを選択できます。」

すぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しました

データセットをレンダリングするには、ユーザーはまずいくつかのドキュメントを単純な 1D インデックス配列にトークン化する必要があります。

$ cd data/openwebtext
$ python prepare.py

これにより、train.bin と val.bin という 2 つのファイルが生成され、それぞれに GPT-2 BPE トークン ID を表す uint16 バイトの生のシーケンスが含まれます。このトレーニング スクリプトは、OpenAI が提供する GPT-2 の最小バージョン (124M バージョン) を複製しようとします。

$ python train.py

PyTorch 分散データ並列処理 (DDP) をトレーニングに使用する場合は、torchrun を使用してスクリプトを実行してください。

$ torchrun --standalone --nproc_per_node=4 train.py

コードをより効率的にするために、ユーザーはモデルからサンプリングすることもできます:

$ python sample.py

Karpathy 氏によると、プロジェクトは現在 1 です。 A100 40GB GPU での一晩のトレーニング損失は約 3.74、4 GPU でのトレーニング損失は約 3.60 です。 8 x A100 40GB ノードでのトレーニングは 400,000 反復 (約 1 日) で 3.1 atm まで低下しました。

新しいテキストで GPT を微調整する方法については、ユーザーは data/shakespeare にアクセスし、prepare.py を参照できます。 OpenWebText とは異なり、これは数秒で実行されます。微調整にかかる時間は非常に短く、たとえば 1 つの GPU でわずか数分です。以下は微調整の実行例です。

$ python train.py config/finetune_shakespeare.py

プロジェクトがオンラインになるとすぐに、誰かがすでに試し始めています:

すぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しました

試してみたい友達は、元のプロジェクトを参照してください。

以上がすぐに 2,500 個のスターを獲得した Andrej Karpathy は、minGPT ライブラリを書き直しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。