|
出典: Big Fishのデータライフ
ChatGPTの登場以来、関連性と相違点の両方を持つAI概念が数多く登場し、人々を混乱させています。最近、DaYuがGPT関連の概念を明確化しましたので、ここでご紹介します。 1) トランスフォーマー 2) GPT 3) インストラクGPT 4) チャットGPT (GPT3.5/GPT4.0) 5) 大型モデル 6) AIGC(人工知能生成コンテンツ) 7) AGI(汎用人工知能) 8) LLM(大規模言語モデル) 9) アルパカ 10) 微調整 11) 自己教師学習 12) 自己注意メカニズム 13) ゼロショット学習 14) AIアライメント 15) 単語埋め込み 16) 位置エンコーディング 17) 中国のLangChain Transformerは、自己注意メカニズムに基づくディープラーニングモデルであり、元々は機械翻訳などのシーケンス間タスク向けに設計されました。優れた性能と柔軟性により、現在では様々な自然言語処理(NLP)タスクで広く利用されています。Transformerモデルは、Vaswaniらが2017年に発表した論文「Attention is All You Need」で初めて提案されました。 Transformer モデルは主に次の部分で構成されます。Transformerモデルの核となるのは、自己注意です。これにより、モデルはシーケンスを処理する際にシーケンス内のすべての単語を考慮し、重要度に基づいて異なる重みを割り当てます。このメカニズムにより、モデルはシーケンス内の長距離の依存関係を捉えることができます。Transformerモデルにはシーケンス順序を扱うための明示的なメカニズムがないため、シーケンス内の単語の位置情報を提供するために位置エンコーディングが必要になります。位置エンコーディングは、入力単語の埋め込みベクトルに追加され、モデルに入力されるベクトルです。Transformerモデルは、複数のエンコーダーとデコーダーが積み重ねられた層で構成されています。エンコーダーは入力シーケンスを処理し、デコーダーは出力シーケンスを生成します。エンコーダーとデコーダーはどちらも、自己注意メカニズムとフィードフォワードニューラルネットワークで構成されています。Transformerモデルは、自己注意を扱う際に、単一の注意分布に満足せず、複数の注意分布を生成します。これはマルチヘッド注意と呼ばれます。マルチヘッド注意により、モデルは入力シーケンスの表現を複数の異なる表現空間で学習できます。自己注意に続いて、Transformerモデルはフィードフォワードニューラルネットワークを通じてシーケンスをさらに処理します。このネットワークは、2つの完全結合層とReLU活性化関数で構成されています。Transformerモデル(自己注意ニューラルネットワークとフィードフォワードニューラルネットワーク)の各サブレイヤーには残差接続があり、その出力はレイヤーごとに正規化されます。これにより、モデルは深層ネットワークでよく見られる勾配消失問題や勾配爆発問題を処理できるようになります。左側がEncoderブロック、右側がDecoderブロックです。赤枠で囲まれた部分がMulti-Head Attentionで、複数のSelf-Attention機構で構成されています。EncoderブロックにはMulti-Head Attention機構が1つ、DecoderブロックにはMulti-Head Attention機構が2つ(うち1つはマスキングを使用)含まれていることがわかります。Multi-Head Attention機構の上にはAdd & Normレイヤーがあります。AddはResidual Connection(残差接続)の略で、ネットワークの劣化を防ぐために用いられます。NormはLayer Normalization(レイヤー正規化)の略で、各レイヤーの活性化値を正規化するために用いられます。 Transformerモデルの利点は、シーケンス内のすべての単語を並列処理できることです。これにより、長いシーケンスを処理する際に、リカレントニューラルネットワーク(RNN)よりも効率的になります。さらに、自己注意メカニズムにより、シーケンス内の長距離依存関係をモデルが捕捉できます。これはRNNでは困難です。 GPT(Generative Pre-training Transformer)は、OpenAIが開発したTransformerをベースとした大規模な自然言語生成モデルです。GPTモデルは自己教師学習を採用し、まず大量のラベルなしテキストデータで事前学習を行い、その後、タスク固有のデータで微調整を行います。 GPTモデルの基本構造は多層Transformerデコーダーですが、Transformerデコーダーの一部のみを使用し、エンコーダー-デコーダー構造は採用していません。さらに、生成されたテキストの統語的および意味的な一貫性を保証するために、GPTモデルは因果マスク(自己回帰マスクとも呼ばれます)を使用します。これにより、各単語は先行する単語のみを認識し、後続の単語は認識しません。 GPTモデルは事前学習フェーズにおいて、「マスク言語モデル」(MLM)と呼ばれるタスクを使用します。これは、文中のマスクされた部分を予測するものです。事前学習の目標は、文中の各位置における単語の条件付き確率を最大化することです。条件付き確率は、モデルによって生成された分布と実際の単語の分布とのクロスエントロピーによって計算されます。ファインチューニングフェーズでは、GPTモデルは感情分類や質問応答といったタスク固有のデータを用いて学習されます。ファインチューニングの目的は、分類タスクにおけるクロスエントロピー損失関数など、タスク固有の損失関数を最小化することです。 GPTモデルの利点は、事前学習による微調整戦略と、様々なタスクへの容易な適応性により、大量のラベルなしデータから効果的に学習できることにあります。さらに、Transformerベースの構造により、入力シーケンス内のすべての単語を並列処理できるため、リカレントニューラルネットワークに基づくモデルよりも効率的です。 GPT は次の 3 つのバージョンに進化しました。 (1) GPT-1は、自己教師あり事前学習+教師あり微調整、5Gドキュメント、1億パラメータを採用しています。この2段階言語モデルは、比較的限られた機能しか備えていません。つまり、翻訳モデルは翻訳のみ、空欄補充モデルは空欄補充のみ、要約モデルは要約のみといった具合です。実際のタスクで使用するには、各モデルを独自のデータで微調整する必要があり、これは明らかにあまりインテリジェントではありません。 (2) GPT-2は純粋な自己教師あり事前学習を採用しており、GPT-1と比較して教師なし学習が可能です。つまり、手動でラベル付けされた学習データを必要とせず、大量のラベルなしテキストから言語パターンを学習できます。これにより、GPT-2は学習においてより柔軟かつ効率的に機能します。40GBのドキュメントと15億のパラメータを用いて、事前学習のためのタスクを多く導入し、下流のタスクに対して特別な学習をすることなく良好なパフォーマンスを発揮します。 (3) GPT-3はGPT-2の純粋な自己教師あり事前学習を採用しましたが、データは570GBの文書と1750億のモデルパラメータと、桁違いに膨大でした。GPT-3は強力なゼロショット学習および少数ショット学習能力を示しました。これは、例が全くないか非常に少ない場合でも、新しいタスクを理解して完了できることを意味します。より一貫性があり、自然で人間らしいテキストを生成でき、テキスト理解、常識の獲得、複雑な概念の理解においてGPT-2よりも優れた性能を発揮します。GPT-3 は、さまざまな NLP タスクとテキスト生成にわたる機能において優れていますが、実際のアプリケーションでは次のような制限がしばしば見られます。つまり、人間が好む方法で表現されないことが多いのです。
(1)無効な回答を提供する:ユーザーの明示的な指示に従わず、間違った質問に答えること。 (2)捏造された内容:言葉の確率分布のみに基づいて不合理な内容が捏造される。 (3)解釈可能性の欠如:モデルがどのようにして特定の決定に到達したのかを理解し、その答えの正確さを確かめることは困難である。 (4)コンテンツの偏りは有害である:モデルはデータから偏りを抽出し、不公平または不正確な予測につながる。 (5)継続的インタラクション能力が弱い:長いテキストの生成能力が弱く、コンテキストを連続させることができない。 この文脈において、OpenAIは「アライメント」という概念を提唱しました。これは、モデルの出力を人間の意図や好みに合わせることを意味します。そのため、InstructGPTプロジェクトは、モデルの出力をユーザーの意図にさらに合わせるために開発されました。
InstructGPTがGPTに対して最も優れている点は、人間のフィードバックを伴う強化学習(RLHF:Reinforcement Learning with human feedback)を用いてGPT-3を微調整していることです。この手法は、人間の好みをインセンティブシグナルとして利用し、モデルを微調整します。上の図に示すように、要約生成タスクを例にとると、この図は人間のフィードバックに基づいて強化学習がどのように実行され、最終的にInstructGPTモデルが学習されるかを詳細に示しています。これは主に3つのステップで構成されます。 1.人間のフィードバックを収集する: 初期化モデルを使用して、サンプルに対して複数の異なる要約を生成し、その複数の要約をその有効性に応じて手動で並べ替えて、並べ替えられた要約サンプルのバッチを取得します。 2.報酬モデルをトレーニングする: 手順 1 で取得したサンプル セットを使用して、入力が記事と対応する要約であり、出力が要約のスコアであるモデルをトレーニングします。 3.ポリシー モデルのトレーニング: 初期化されたポリシー モデルを使用して記事の要約を生成し、報酬モデルを使用して要約にスコアを付け、最後にスコアと PPO アルゴリズムを使用してポリシー モデルを再度最適化します。 InstructGPTはユーザーの意図をより深く理解できます。指示と応答のマッチングデータセットと指示と評価のマッチングデータセットを使用することで、InstructGPTは様々な指示に基づいて、より有用で現実的かつユーザーフレンドリーな出力を生成する方法を学習できます。 4. チャットGPT(GPT3.5/GPT4.0) ChatGPTは、OpenAIによって2022年11月30日にリリースされました。同じくOpenAIが開発したGPT-3.5モデルをベースに、ChatGPTは教師なし学習と強化学習の手法を用いて微調整されており、クライアントインターフェースを備えているため、ユーザーは質疑応答セッションを通じてモデルと対話できます。ChatGPTはオープンソースではありませんが、WebUIを通じてユーザーに無料サービスを提供しています。
OpenAIはChatGPTに関する論文や関連する学習・技術詳細を発表していません(GPT-3.5はオープンソースではありません)。しかし、兄弟モデルであるInstructGPTやオンラインで入手可能な断片的な情報から、その実装に関する手がかりを見つけることができます。OpenAIによると、ChatGPTがInstructGPTに対して主に改善されている点は、ラベル付きデータの収集方法にあり、学習プロセス全体はほぼ同じです。したがって、ChatGPTの学習プロセスはInstructGPTのそれと似ており、大まかに以下の3つのステップに分かれていると推測できます。 1. 非常に大規模な言語モデルを事前トレーニングする。 2. 人間のスコアリングデータを収集し、報酬モデルをトレーニングします。 3. 強化学習手法を使用して、言語モデルを微調整し、最適化します。 GPT-3と比較して、GPT-3.5には3つのバリエーションがあり、それぞれ13億、60億、1750億のパラメータを備えています。現在のChatGPTバージョンはGPT-4をベースにしており、GPT-3.5と比較して1兆個のパラメータを持つと言われています。GPT-4はマルチモーダルモデルであり、画像とテキストの両方を入力および出力テキストとして受け入れることができます。一方、GPT-3.5はテキストのみを入力および出力テキストとして受け入れます。これにより、GPT-4は画像キャプションの作成、画像への質問応答、画像からテキストへの変換など、視覚情報を扱うより複雑なタスクを処理できます。
大規模モデルについては、一部の学者はそれを「大規模な事前学習済み言語モデル」と呼んでおり、さらに「基礎モデル」という概念を提唱する学者もいます。
2021年8月、李飛飛、梁慧(パーシー・リャン)をはじめとする約100名の学者が共同で論文「基礎モデルの機会とリスクについて」[1]を発表し、「基礎モデル」という概念を提唱しました。自己教師学習に基づくモデルは、学習プロセスにおいて様々な能力を発揮し、これらの能力は下流の応用への推進力と理論的基盤を提供します。こうした大規模なモデルは「基礎モデル」と呼ばれます。 「小規模モデル」 :これらは特定のアプリケーションシナリオ向けにトレーニングされており、特定のタスクを完了できますが、他のアプリケーションシナリオには適さない可能性があり、再トレーニングが必要になります(現在使用されているモデルのほとんどはこれに該当します)。これらのモデルのトレーニングは基本的に「手作り」であり、大量のラベル付きデータを必要とします。一部のアプリケーションシナリオのデータ量が少ない場合、トレーニング済みモデルの精度は不十分になります。 「大規模モデル」 :大規模なラベルなしデータセットで学習し、一連の特徴とルールを学習します。この大規模モデルに基づいてアプリケーションを開発する際には、(下流の小規模なラベル付きデータセットで二次学習を行うことで)微調整することも、微調整を行わないことも可能です。これにより、複数のアプリケーションシナリオにおけるタスクを遂行し、汎用的なインテリジェント機能を実現します。これらは次のように分類できます。機械学習は同種学習アルゴリズム(ロジスティック回帰など)を使用し、ディープラーニングは同種モデル構造(CNNなど)を使用し、ベースモデルは同種モデル自体(GPT-3など)を使用します。
人工知能の発展は、「大規模モデル構築」の段階から「大規模モデルの構築」の段階へと徐々に移行しています。ChatGPTはあくまでも出発点に過ぎず、その背後にある基盤モジュールの長期的な価値はさらに期待に値します。大規模モデル開発の初期段階は「事前学習済みモデル」と呼ばれ、事前学習技術の根底にある考え方は転移学習です。対象シナリオのデータが不足している場合、まずモデルを大規模な公開データセットで学習させ、その後、対象シナリオに転送し、対象シナリオ内の小規模なデータセットを用いて微調整することで、所望の性能を実現します。このプロセスにおいて、公開データセットで学習されたディープネットワークモデルは「事前学習済みモデル」と呼ばれます。事前学習済みモデルを用いることで、下流のタスクモデルに必要なラベル付きデータ量が大幅に削減されるため、大量のラベル付きデータの取得が困難な新しいシナリオにも効果的に対応できるようになります。 2018年に登場した大規模な自己教師ありニューラルネットワークは、まさに革命的でした。これらのモデルの本質は、自然言語文から次の単語の予測やマスクされた単語やフレーズの予測といった予測タスクを作成することです。この場合、大量の高品質なテキストコーパスとは、膨大な量のラベル付きデータを自動的に取得することを意味します。モデルは10億回以上の予測誤差から学習することで、徐々に豊富な言語的知識と世界知識を蓄積し、質問応答やテキスト分類といったより意味のあるタスクで優れた結果を達成できるようになります。そうです、BERTやGPT-3のような大規模な事前学習済み言語モデル、つまりいわゆる大規模モデルについて話しているのです。
2022年8月、Googleはモデルのパフォーマンスとモデルサイズの関係を再検証した論文を発表しました。その結論は、モデルサイズが一定の閾値に達すると、特定の問題の処理におけるモデルのパフォーマンスが急激に向上するというものでした。著者らはこの現象を「Emergent Abilities(創発的能力)」と名付けました。
大規模モデルの典型的なアーキテクチャはTransformerアーキテクチャであり、2018年以降NLP分野を席巻し、NLPの進歩を飛躍的に加速させています。なぜ事前学習済みのTransformerはこれほど強力なのでしょうか?最も重要なアイデアは、前述のAttention(注意)メカニズムです。これは、文中の各位置の表現(通常は稠密ベクトル)が、他の位置の表現の重み付き和によって得られることを意味します。
なぜこのような単純な構造とタスクでこのようなパワーを実現できるのでしょうか?その理由は、その普遍性にあります。次の単語を予測するようなタスクは非常に単純かつ普遍的であるため、文の構造や意味の拡張から基本的な事実に至るまで、ほぼあらゆる言語学や世界知識が、このタスクのパフォーマンス向上に役立ちます。大規模モデルはトレーニング中にこの情報も学習するため、単一のモデルでわずか数個の指示だけで様々なNLP問題を解くことができます。おそらく、大規模モデルは「シンプルさこそ究極の洗練」という言葉を最も的確に表現していると言えるでしょう。大規模モデルには通常、モデルの複雑さと学習能力を定義する多数のパラメータが含まれます。大規模モデルの実装は、主に以下の手順で行われます。 (1)モデルアーキテクチャ設計:大規模モデルは通常、より深いネットワークアーキテクチャ(層数の増加)および/またはより広い層(ニューロン数の増加)を有します。この設計により、モデルはより強力な表現能力を持ち、Transformerアーキテクチャのようなより複雑なパターンを学習・記憶することが可能になります。 (2)データ準備:大規模モデルの学習には大量のデータが必要です。このデータはモデルに学習機会を提供し、データ内の潜在的なパターンを捉えることを可能にします。また、大量の学習データは、ディープラーニングモデルがしばしば直面する問題である過学習を防ぐのにも役立ちます。 (3)計算リソース:大規模モデルの学習には、強力なGPUや十分なメモリなど、大量の計算リソースが必要です。大規模モデルの学習では、通常、多数の計算タスクを処理するために並列化と分散コンピューティングが必要です。 (4)最適化アルゴリズム:大規模モデルの学習には、効率的な最適化アルゴリズムが必要です。これらのアルゴリズム(確率的勾配降下法やその派生法など)は、モデルのパラメータを調整して予測誤差を最小化するために使用されます。 (5)正則化手法:大規模モデルは複雑であるため、学習データに過適合しやすくなります。そのため、大規模モデルの学習では、過適合を防ぐため、通常、正則化手法(重み減衰、ドロップアウトなど)を使用する必要があります。 (6)モデル並列性とデータ並列性:大規模モデルの場合、学習プロセスを複数のGPUまたは複数のマシンで実行する必要があることがよくあります。モデル並列性とデータ並列性は、一般的に用いられる2つの戦略です。前者はモデルの異なる部分を異なるデバイスに分散させ、後者はデータを異なるデバイスに分散させます。これらは大規模モデルを実装するための一般的な手順と要件です。しかし、これにより計算リソースの要件の増加、学習時間の増加、過学習のリスクなど、いくつかの課題も生じます。したがって、パフォーマンスと効率のバランスをとるために適切なモデルサイズを選択することは、ディープラーニングにおいて重要なタスクです。 GPT-3、GPT-3.5、GPT-4以外にも、BERT、RoBERTa、T5、XLNetといった大規模モデルが存在します。これらのモデルはそれぞれ異なる企業や組織によって開発されており、それぞれに長所と短所があります。以下では、これらのモデルについて簡単に紹介します。 (1) BERT:BERTはGoogleが開発した学習済み言語モデルであり、自然言語処理の分野で大きな成功を収めています。BERTには340Mと1.1Bの2つのバージョンがあり、バージョン1.1Bは33億のパラメータを備えています。 (2) RoBERTa:RoBERTaは、Facebook AI Researchが開発した学習済み言語モデルであり、自然言語処理分野で大きな成功を収めています。RoBERTaには、125M、250M、500M、1.5B、2.7Bの5つのバージョンがあり、そのうち2.7Bバージョンは27億のパラメータを備えています。 (3) T5:T5はGoogleが開発した学習済み言語モデルであり、自然言語処理の分野で大きな成功を収めています。T5にはバージョン11Bと22Bの2つのバージョンがあり、バージョン22Bは220億個のパラメータを備えています。 (4) XLNet:XLNetは、CMUとGoogle Brainによって開発された学習済み言語モデルです。自然言語処理の分野で大きな成功を収めています。XLNetには、XLNet-LargeとXLNet-Baseの2つのバージョンがあり、XLNet-Largeは18億個のパラメータを備えています。 (5) GShard:GShardはGoogleが開発した学習済み言語モデルであり、自然言語処理の分野で大きな成功を収めています。GShardにはGShard-LargeとGShard-Baseの2つのバージョンがあり、GShard-Largeは6億個のパラメータを備えています。 (6) Switch Transformer:Switch TransformerはCMUが開発した学習済み言語モデルであり、自然言語処理分野で大きな成功を収めています。Switch Transformerには、Switch Transformer-LargeとSwitch Transformer-Baseの2つのバージョンがあります。Switch Transformer-Largeは1億6000万個のパラメータを備えています。 AIGC(Artificial Intelligence Generated Content)は、一般的にPCG(Professionally Generated Content)やUCG(User Generated Content)と対比して提唱される概念と考えられています。狭義には、AIを活用してコンテンツを自動生成するコンテンツ制作手法を指します。広義には、AIGCは人間と同様の生成能力と創造能力を備えたAI技術、すなわち生成AIと捉えることができます。学習データと生成アルゴリズムモデルに基づき、テキスト、画像、音楽、動画、3Dインタラクティブコンテンツなど、様々な形態の新しいコンテンツやデータを自律的に生成・創造し、新たな科学的発見を促したり、新たな価値や意味を創造したりする活動を行います。AIGC技術の中で最もよく知られているのは、Transformer、GPT、Diffusion、CLIP、Stable Diffusionです。以下では、Diffusion、CLIP、Stable Diffusionについて簡単に説明します。「拡散」という概念は物理現象に由来します。インクを水に落とすと、インクは均一に広がります。このプロセスは通常は不可逆ですが、AIは可能です。インクを水に落とした直後は、インクと水の区別がつきます。つまり、情報は非常に濃縮されているということです。インクが広がるにつれて、インクと水の区別がつかなくなり、情報は分散していきます。このインクの拡散プロセスは、画像が徐々にノイズに変わっていくようなものです。情報が集中した画像を、情報が分散したノイズの多い画像に変えるのは簡単ですが、このプロセスを逆転させるにはAIの支援が必要です。研究者たちは画像にノイズを加え、徐々に純粋なノイズ画像へと変化させました。そしてAIに逆のプロセス、つまりノイズ画像から情報を得て高解像度画像を導き出す方法を学習させました。このモデルは、Disco DiffusionやStable Diffusionといった様々なAIペイントアルゴリズムにおける拡散モデルに似ています。
(2)CLIP(Contrastive Language-Image Pre-Training、大規模事前学習済み画像・テキスト表現モデル)左側の3つの画像と右側の3つの文を一致させるように求められた場合、タスクは簡単に完了できます。しかし、AIにとって画像は単なるピクセルの集合であり、テキストは単なる文字列であるため、このタスクははるかに複雑になります。
大規模な事前学習済み画像-テキスト表現モデルは、インターネット上の4億件の画像-テキストペアのデータセットを用いて学習され、テキストは画像ラベルとして使用されます。このモデルは、対照学習を通じて画像とそれに対応するテキスト記述の対応関係を学習します。CLIPは、自然言語の抽象概念をコンピュータービジョンに持ち込むことで、CV研究者にとって広大な新世界を切り開きました。Diffusionアルゴリズムは、任意のノイズ画像をノイズ除去した後、制御不能な画像を生成します。もしDiffusionアルゴリズムがテキストプロンプトを受け入れて目的の画像を生成できれば、AIGCにおける新たなホットトピックであるAIペインティングになるでしょう。これにより、テキスト記述を入力するだけで、様々な画像を自動生成できるようになります。その中核となるアルゴリズムであるStable Diffusionは、前述のテキストから画像へのマルチモーダルアルゴリズムCLIPと画像生成アルゴリズムDIffusionを組み合わせたものです。CLIPはテキストプロンプトとして機能し、DIffusionに目的の画像を生成するよう指示します。以下のコアアルゴリズムロジックの図を参照すると、安定拡散におけるデータは、ピクセル空間、潜在空間、条件空間の3つの部分間を流れます。アルゴリズムロジックは、おおよそ以下のステップに分けられます。1. 画像エンコーダーは、画像をピクセル空間からより次元の小さい潜在空間に圧縮して、画像に関するより重要な情報を取得します。そうしないと、次元が多すぎると計算量が多すぎてしまいます。 2. 潜在空間の画像にノイズを追加し、拡散処理を実行します。 3. 入力された記述は、CLIP テキスト エンコーダーを使用してノイズ除去プロセスの条件に変換されます。 4. 特定の条件に基づいて画像のノイズを除去し、生成された画像の潜在的な表現を取得します。ノイズ除去ステップは、テキスト、画像、その他の形式(テキスト条件の場合はtext2img、画像条件の場合はimg2img)に応じて柔軟に条件付けできます。 5. 画像デコーダーは、画像を潜在空間からピクセル空間に変換して最終画像を生成します。 AGIは、人工知能(Artificial General Intelligence)の略称で、知識を包括的に理解、学習、応用する能力を持つ人工知能の理論的な形態を指します。その能力は、多くの面で人間の知能に匹敵するか、あるいは凌駕します。このタイプのAIは、ある領域で学習した知識を他のあらゆる領域に理解、学習、応用することができます。汎用人工知能(AGI)は、現在の人工知能(しばしば弱いAIまたは限定AIと呼ばれる)とは大きく異なります。現在のAIシステムは、囲碁、言語翻訳、画像認識といった非常に特定のタスク、あるいは一連のタスクにおいて、超人的なパフォーマンスを発揮することが一般的ですが、あるタスクで学習した知識を他のタスクに適用する能力が欠けており、また、自分が何をしているのかを真に理解しているわけでもありません。現在普及しているGPTなどの大規模モデルは、依然として狭義のAI、あるいは特化型AIの一形態です。特定のタスク(この場合はテキスト生成)を実行するように訓練されており、AGIの特徴である広範な理解能力や新しいタスクへの適応能力を備えていません。
しかし、GPTとAGIの関連性は、GPTがAGIの実現を目指した現在のAI研究の一部であるという事実にあります。GPTは事前学習済みモデルの潜在能力を示し、モデルの規模と複雑さを継続的に増加させることでAGIに近づくための可能性を示しています。しかし、これは未解決の問題であり、これが実現可能かどうか、そしてこの目標を安全かつ効果的に達成するにはどうすればよいかを判断するには、さらなる研究が必要です。 GPTはテキスト生成において優れた性能を示してきましたが、テキストが何を言っているかを理解しているわけではありません。GPTは意識、理解、意志を持たず、人間の言語パターンを模倣する統計モデルを学習するだけです。これが、GPTを含む現在のすべてのAIシステムとAGIの重要な違いです。汎用人工知能の実現には、まだ程遠い道のりがあります。この目標を達成するには、意味理解、共有学習と転移学習、推論と計画、自己認識と自己理解など、多くの主要な科学技術的課題を解決する必要があります。大規模言語モデル(LLM)は、人間の言語を理解し、生成するために設計された人工知能モデルです。膨大な量のテキストデータで学習することで、テキスト要約、翻訳、感情分析など、幅広いタスクを実行できます。LLMは、数十、数百、あるいは数兆ものパラメータを含む膨大な規模を特徴としています。これらのモデルは、構文、意味、文脈情報といった言語の複雑なパターンを捉え、一貫性があり意味のあるテキストを生成することができます。 GPT3、ChatGPT、BERT、T5、Wenxin Yiyan はすべて、典型的な大規模言語モデルです。 ChatGPTの人気は、対話、文脈理解、そしてコード生成におけるその強力な能力を証明しています。しかし、GPT-3以降のモデルとChatGPT自体がオープンソースではないという事実、そして高いトレーニングコストが乗り越えられない障壁となっているため、一般の人々や企業にとってChatGPTはアクセスしにくいものとなっています。 2023年3月、Metaは70億から650億のパラメータ数を持つ新たな大規模モデルファミリー、LLaMA(Large Language Model Meta AI)をオープンソース化しました。130億パラメータのLLaMAモデルは、ほとんどのベンチマークにおいて1750億パラメータのGPT-3を上回り、単一のV100 GPUで実行可能です。数日後、スタンフォード大学はLLaMA 7Bをベースに70億のパラメータを持つ新しいモデル「Alpaca」を微調整しました。彼らはSelf-Instruct論文で説明されている手法を用いて52Kの指示データを生成し、いくつかの修正を加えました。人間による初期評価では、Alpaca 7BモデルはSelf-Instruction評価においてtext-davinci-003(GPT-3.5)モデルと同等のパフォーマンスを示しました。その後、スタンフォード大学の研究者たちは、CMU、カリフォルニア大学バークレー校などと共同で、130億のパラメータを持つ全く新しいモデル「Vicuna」を開発しました。これは通称「アルパカ」と呼ばれています。Vicunaは、ShareGPTによって収集されたユーザー共有の会話に基づいてLLaMAを微調整することで学習され、学習コストは約300ドルでした。研究者たちは、数学、作文、コーディングを含む8つの質問カテゴリーを設計し、Vicuna-13Bを他の4つのモデルと比較テストしました。テストではGPT-4をベンチマークとして使用し、その結果、Vicuna-13Bは90%以上のケースでChatGPTおよびBardに匹敵するパフォーマンスを達成しました。同時に、LLaMAやスタンフォード大学のAlpacaなどの他のモデルを90%以上のケースで上回りました。ファインチューニングとは、事前学習済みモデルを新しいタスクに合わせて調整する機械学習技術です。事前学習済みモデルは、大規模なデータセット(インターネット全体のテキストなど)で学習され、そのデータから多くの基本パターンを学習しています。これらのモデルは、特定のタスクに適応させるために、より小規模で具体的なデータセットで追加学習、つまりファインチューニングを行うことができます。例えば、大量の英語テキストで事前学習済みのモデル(英語の文法と多くの単語を学習済み)を、医療テキストを含む小規模なデータセットで微調整することができます。微調整されたモデルは、医療分野に適応しているため、医療関連テキストをより適切に理解・生成できるようになります。前述のGPT-1は、この微調整技術を採用していました。ファインチューニングの主な利点は、事前学習済みモデルが既に多くの有用な基本パターンを学習しているため、比較的小規模なデータセットでファインチューニングを実行できることです。これにより、特にデータが限られている場合、より迅速かつ効率的なモデルトレーニングが可能になります。自监督学习是从数据本身找标签来进行有监督学习。 无监督学习没有标拟合标签的过程,而是从数据分布的角度来构造损失函数。自监督学习的代表是语言模型,无监督的代表是聚类。自监督不需要额外提供label,只需要从数据本身进行构造。这种方法的一个常见示例是预测文本中的下一个单词或缺失的单词。模型的输入可能是一个句子中的一部分,目标或标签是句子中的下一个单词或缺失的单词。通过这种方式,模型可以在大量未标记的文本数据上进行训练,并学习语言的语法和语义。自监督学习的一个主要优点是可以利用大量的未标记数据进行训练。在许多情况下,获取未标记的数据要比获取标记的数据容易得多。例如,互联网上有大量的文本数据可以用来训练语言模型,但只有一小部分数据有人工标记。下图示例了基于自监督学习的图像修复示例,我们可以通过随机去掉图像中的某个部分来生成训练数据,原数据作为训练标签来进行预训练,对于下游任务,生成器学到的语义特征相比随机初始化有10.2%的提升,对于分类和物体检测有<4%的提升。
请注意,虽然自监督学习可以学习数据的内在模式,但它可能需要额外的监督学习步骤(例如,fine-tuning)来执行特定的任务。例如,预训练的语言模型(如GPT-3)首先使用自监督学习来学习语言的模式,然后可以在特定任务的标记数据上进行微调。 12、自注意力机制(Self-Attention Mechanism)自注意力机制,也被称为自我注意力或者是转换模型(Transformers)中的注意力机制,是一种捕获序列数据中不同位置之间相互依赖性的技术。这种机制使得模型可以在处理一个元素(例如一个词)时,考虑到序列中其他元素的信息。在自注意力机制中,每一个输入元素(例如一个单词)都会被转换为三种向量:查询向量、键向量(Key vector)和值向量(Value vector)。在自注意力机制中,计算一个词的新表示的步骤如下:
(1)计算查询向量与所有键向量(即输入元素)的点积,以此来获取该词与其他词之间的相关性。 (2)将这些相关性得分经过softmax函数转化为权重,以此使得与当前词更相关的词获得更高的权重。 (3)用这些权重对值向量进行加权平均,得到的结果就是当前词的新表示。举个例子,我们考虑英文句子"I love my dog." 在自注意力机制处理后,每个词的新表示会是什么样的。我们将关注"I"这个词。原始的词嵌入向量"I" 可能只包含了"I" 这个词本身的信息,比如它是一个代词,通常用于表示说话者自己等。但在自注意力机制处理后,"I" 的新表示将包含与其有关的上下文信息。比如在这个句子中,"I"后面跟着的是"love my dog",所以新的表示可能会包含一些与“喜爱”和“狗”有关的信息。通过这种方式,自注意力机制可以捕获到序列中长距离的依赖关系,而不仅仅是像循环神经网络(RNN)那样只能捕获相邻词之间的信息。这使得它在处理诸如机器翻译、文本生成等需要理解全局信息的任务中表现得尤为优秀。 13、零样本学习(Zero-Shot Learning)
前面讲过,GPT-3表现出了强大的零样本(zero-shot)和少样本(few-shot)学习能力,那么何谓零样本学习呢?零样本学习是一种机器学习的范式,主要解决在训练阶段未出现但在测试阶段可能出现的类别的分类问题。这个概念通常用于视觉物体识别或自然语言处理等领域。在传统的监督学习中,模型需要在训练阶段看到某类的样本,才能在测试阶段识别出这一类。然而,在零样本学习中,模型需要能够理解和识别在训练数据中从未出现过的类别。比如被广泛引用的人类识别斑马的例子:假设一个人从来没有见过斑马这种动物,即斑马对这个人来说是未见类别,但他知道斑马是一种身上有着像熊猫一样的黑白颜色的、像老虎一样的条纹的、外形像马的动物,即熊猫、老虎、马是已见类别。那么当他第一次看到斑马的时候, 可以通过先验知识和已见类,识别出这是斑马。
在零样本学习中,这些未出现过的类别的信息通常以一种形式的语义表示来提供,例如词嵌入、属性描述等。总的来说,零样本学习是一种非常有挑战性的任务,因为它需要模型能够推广并将在训练阶段学习到的知识应用到未见过的类别上。这种任务的成功需要模型具备一定的抽象和推理能力。
在人工智能领域,对齐( Alignment )是指如何让人工智能模型的产出,和人类的常识、认知、需求、价值观保持一致。往大了说不要毁灭人类,往小了说就是生成的结果是人们真正想要的。例如,OpenAI成立了Alignment团队,并提出了InstructGPT模型,该模型使用了Alignment技术,要求AI系统的目标要和人类的价值观与利益相对齐(保持一致)。 GPT3会一本正经的告诉你,你需要找一个坚硬的物体来撞门,或者找看看哪个窗户没有锁。而InstructGPT会跟你说,闯入他人的房子是不对的,如果有纠纷请联系警察。嗯,看起来InstructGPT要善良多了。词嵌入(Word Embeddings)是一种将词语或短语从词汇表映射到向量的技术。这些向量捕捉到了词语的语义(含义)和语法(如词性,复数形式等)特征。词嵌入的一个关键特点是,语义上相近的词语在向量空间中通常会靠得很近。这样,计算机就可以以一种更接近人类语言的方式理解和处理文本。举个例子,假设我们有四个词:"king", "queen", "man", "woman"。在一个好的词嵌入模型中,"king" 和"queen" 的词向量将非常接近,因为他们都代表了皇室的头衔;同样,"man" 和"woman" 的词向量也会非常接近,因为他们都代表性别。此外,词嵌入模型甚至可以捕获更复杂的关系。例如,从"king" 的词向量中减去"man" 的词向量并加上"woman" 的词向量,结果会非常接近"queen" 的词向量。这表示出了性别的差异:"king" 对于"man" 就像"queen" 对于"woman"。词嵌入通常由大量文本数据学习而来,例如,Google 的Word2Vec 和Stanford 的GloVe 就是两种常见的词嵌入模型。这些模型能够从大量的文本数据中学习到词语之间的各种复杂关系。 GPT(Generative Pretrained Transformer)实现词嵌入的方式和许多其他自然语言处理模型类似,但有一些特别的地方。下面是一些关于GPT 如何实现词嵌入的基本信息。 GPT 首先将文本分解为子词单位。这个过程中用到的算法叫做Byte Pair Encoding (BPE)。BPE 是一种自底向上的方法,通过统计大量文本数据中的词汇共现情况,将最常见的字符或字符组合合并成一个单元。BPE 能够有效处理词形变化、拼写错误和罕见词汇。具体来说,例如英文单词"lowering" 可能被BPE 分解为"low", "er", "ing" 这三个子词单元。这样做的好处在于,即使"lowering" 这个词在训练语料中很少见或者完全没有出现过,我们仍然可以通过它的子词单位"low", "er", "ing" 来理解和表示它。每个子词单元都有一个与之关联的向量表示,也就是我们所说的词嵌入。这些词嵌入在模型的预训练过程中学习得到。通过这种方式,GPT 能够捕捉到词汇的语义和语法信息。当需要获取一个词的嵌入时,GPT 会将该词的所有子词嵌入进行加和,得到一个整体的词嵌入。例如,对于"lowering",我们将"low", "er", "ing" 的词嵌入相加,得到"lowering" 的词嵌入。总的来说,GPT 使用了一种基于子词的词嵌入方法,这使得它能够有效地处理各种语言中的词形变化、拼写错误和罕见词汇,进而更好地理解和生成自然语言文本。
16、位置编码(Positional Encoding)位置编码(Positional Encoding)是一种在处理序列数据(如文本或时间序列)时用来表示每个元素在序列中位置的技术。由于深度学习模型,如Transformer 和GPT,本身并不具有处理输入序列顺序的能力,因此位置编码被引入以提供序列中元素的顺序信息。 Transformer 和GPT 使用一种特别的位置编码方法,即使用正弦和余弦函数生成位置编码。这种方法生成的位置编码具有两个重要的特性:一是不同位置的编码是不同的,二是它可以捕捉到相对位置关系。假设我们有一个英文句子"I love AI",经过词嵌入处理后,我们得到了每个词的词向量,但这些词向量并不包含位置信息。因此,我们需要添加位置编码。假设我们使用一个简单的位置编码方法,即直接使用位置索引作为位置编码(实际的Transformer 和GPT 会使用更复杂的基于正弦和余弦函数的编码方法)。这样,"I" 的位置编码为1,"love" 的位置编码为2,"AI" 的位置编码为3。然后,我们将位置编码加到对应词的词向量上。这样,模型在处理词向量时就会同时考虑到它们在序列中的位置。位置编码是GPT 和Transformer 中的重要组成部分,它允许模型理解词语在序列中的顺序,从而理解语言中的句法和语义。
17、中文LangChain
中文LangChain 开源项目最近很火,其是一个工具包,帮助把LLM和其他资源(比如你自己的领域资料)、计算能力结合起来,实现本地化知识库检索与智能答案生成。
LangChain的准备工作包括:
1、海量的本地领域知识库,知识库是由一段一段的文本构成的。
2、基于问题搜索知识库中文本的功能性语言模型。
3、基于问题与问题相关的知识库文本进行问答的对话式大语言模型,比如开源的chatglm、LLama、Bloom等等。
其主要工作思路如下:
1、把领域内容拆成一块块的小文件块、对块进行了Embedding后放入向量库索引(为后面提供语义搜索做准备)。
2、搜索的时候把Query进行Embedding后通过语义检索找到最相似的K个Docs。
3、把相关的Docs组装成Prompt的Context,基于相关内容进行QA,让chatglm等进行In Context Learning,用人话回答问题。
|