OpenAIの共同創設者Karpathyがアルパカに恋をする: 赤ちゃんLlama2を実装する純粋なCコード、MacBookが動作可能、1.6kの星を獲得

OpenAIの共同創設者Karpathyがアルパカに恋をする: 赤ちゃんLlama2を実装する純粋なCコード、MacBookが動作可能、1.6kの星を獲得

今週、Meta のオープンソース Llama2 が AI コミュニティ全体で人気を博しました。

その結果、今年初めにOpenAIに復帰したテスラの元AIディレクター、アンドレイ・カルパシー氏でさえも黙ってはいられない状況になっている。彼は週末の時間を利用して、Llama2 に関する興味深いプロジェクト「llama2.c」を作成しました。

写真

GitHub アドレス: https://github.com/karpathy/llama2.c

それは正確には何ですか?彼によると、「llama2.c」を使用すると、PyTorch でベビー Llama2 モデルをトレーニングし、依存関係のない純粋な C で約 500 行のファイルを使用して推論を実行できるとのことです。さらに、この事前トレーニング済みモデルは、M1 チップを搭載した MacBook Air で fp32 浮動小数点精度を使用して 18 tok/s の速度でストーリーをサンプリングできます。

Karpathy 氏は、「llama2.c」は、上級オープンソース コミュニティ開発者の Georgi Gerganov 氏によって作成され、MacBook で 4 ビット量子化を使用して第 1 世代の LLaMA モデルを実行できるllama.cpp触発されたものであると紹介しました。

「llama2.c」の場合、そのトレーニング コードはnanoGPTから変更されており、Llama2 アーキテクチャのモデルをトレーニングするために使用されます。コアは、以下に示すように run.c で記述された C 推論エンジンですが、現時点では製品レベルのライブラリではありません。以下は推論コードです。

写真

完全なコードアドレス: https://github.com/karpathy/llama2.c/blob/master/run.c

この結果に Karpathy 氏は驚きました。それは、(M1) CPU 上の純粋なシングルスレッド C で、fp32 トランザクション レートでより小さな (O (~10MB)) モデルを推論できるという点です。

もちろん、彼は最小のLlama2モデル(70億パラメータ)で推論を実行しようとはしなかったが、非常に遅くなることは予想していたという。

写真

現在、Karpathy は、M1 MacBook Air 上で、fp32 浮動小数点精度と 100tok/s の速度で、15M パラメータを持つ 288 6 層 6 ヘッド モデルの推論を実行できます。

その後、Karpathy 氏はプロジェクトを更新し、「-O3」でコンパイルしました。これにより、M1 MacBook Air の tok/s が 18 から 98 に増加しました。これだけではありません。「-funsafe-math-optimizations」でコンパイルすると、tok/s が 315 に増加します。 gcc コマンドに文字を追加するだけで、速度が 17.5 倍に向上する可能性があるとのことです。

このプロジェクトの意義は何かと疑問に思うかもしれません。 Karpathy 氏の見解では、非常に小さなトランスフォーマーを使って興味深いことができる、より狭い領域 (ストーリーの生成など) がいくつかあるとのことです。

したがって、このような移植可能な純粋な C 実装は、適度なサイズのモデル (数千万のパラメータ) を簡単な方法で高いトランザクション レートで実行できるため、非常に便利です。

一部のネットユーザーは「llama2.c」の開発プロセスに非常に興味を持っています。多くの人がそのような考えを持っていますが、適切な時期を待っているだけです。彼らは、多くの作業が数日で完了できることに気づいていません。

Karpathy 氏は、float32 重みブロックとその上にある小さな推論コードを使用してストーリーを生成することに非常に興味があると答えました。そこで彼は土曜日の一日中(起きてから寝るまで)コードを書いてプロジェクトを機能させることに費やしました。

写真

さらに、カルパシー氏は解説ビデオも出す予定だと語った。

写真

プロジェクトの詳細

これまでのところ、「llama2.c」プロジェクトは GitHub で 1.6k スターを獲得しており、急速に成長しています。

写真

以下はプロジェクトの運用手順の簡単な紹介です。

純粋な C でベビー Llama2 モデルを実行するには、次のモデル チェックポイントが必要です。 TinyStories データセットでトレーニングされた 15M パラメータ モデル (約 58MB) をダウンロードし、デフォルトのチェックポイント ディレクトリに配置します。

 wget https://karpathy.ai/llama2c/model.bin -P out

次に、C コードをコンパイルして実行します。

 gcc -O3 -o run run.c -lm ./run out/model.bin

これは単なる生のトークンのストリームであることに注意してください。残念ながら、C コード (30 行のみ) を単純な変換ラッパーで実行する必要があります。

 pip install sentencepiece python run_wrap.py

最後にテキスト ストリームが表示されます。 Karpathy の M1 MacBook Air では約 100 tok/s で動作しますが、これはスーパーネイティブ fp32 シングルスレッド C コードとしては悪くありません。サンプル出力を以下に示します。

写真

<<: 

>>:  フォレスター:生成型AIと会話型AIが2023年のトップ10新興テクノロジーを独占

推薦する

...

掃除機はいくらかかりますか?掃除ロボットの原理とハードウェア構成の詳細な説明

時代の発展とともに、掃除ロボットは多くの家庭にとって必需品となりました。掃除ロボットは、ベッドの下を...

今後10年間で、人間の仕事の約50%が人工知能に置き換えられるでしょうか?

人工知能と聞いて真っ先に思い浮かぶのは、手を自由にすることですが、絶対的に正しいものはありません。手...

Adobe は GAN をステッチされたモンスターに変え、1024 解像度の全身ポートレートを空中から作り出した

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

AI 開発の世界では、自然言語処理を真に習得することはどれほど重要ですか?

人工知能開発の分野で最も重要な目標は、自然言語処理 (NLP) を真に習得したシステムを作成すること...

動画注釈が機械学習モデルのパフォーマンスを向上させる方法

機械学習は近年、特にコンピュータービジョンとビデオ分析の分野で目覚ましい進歩を遂げています。この進歩...

2020年に注目すべき8つのAIトレンド

自動化、ハードウェア、モデル開発などの新たな開発が、2020 年の AI を形作るでしょう。 O&#...

DeepFMアルゴリズムを使用して推奨システムを設計する方法

[[239303]] [51CTO.com クイック翻訳] 10年以上の開発を経て、推奨システムはイ...

AIエージェントは動物の進化の法則を学ぶ: Fei-Fei Liらが深層進化RLを提案

インテリジェントエージェントは人工知能分野の主要な研究テーマであり、非身体型知能と身体型知能に分けら...

AIはデザインにおいて具体的にどのように使用されるのでしょうか?

人工知能は、過去数十年で最も大きな技術進歩の一つになりました。可能性は刺激的で無限であり、さまざまな...

2年後には「ロボット」が人間の活動の80%以上をこなすようになるのでしょうか? AIに関する専門家の見解を聞く

写真:人工知能カンファレンスフォーラム 撮影:新民晩報主任記者 劉欣 「私は生産性を変革し、新しい...

Suning製品セマンティックリコールにおけるDSSMテキストマッチングモデルの適用

【51CTO.comオリジナル記事】 1. 背景テキスト マッチングは、自然言語処理における中核的な...

...

すべてを圧縮するだけです! OpenAIの主任科学者イリヤ・スツケバーが教師なし学習に注目

最近、OpenAI の主任科学者 Ilya Sutskever 氏が、計算理論の研究に重点を置く S...

あなたたちは AI を大々的に宣伝していますが、AI はまだ 4 歳児ほど賢くありません。

研究によると、人工知能は強力に聞こえますが、現在の高度な人工知能は、人間の 4 歳児が簡単に解決でき...