著者 | SCORPIL 編纂者:岳陽 🚢🚢🚢AIテクノロジーソフトウェアと技術交流グループへのご参加をお待ちしております!最新のトレンドを把握し、一緒に技術的な課題を探求しましょう! 近年の生成AIの進歩は、AI支援アプリケーションの開発パラダイムを大きく変えました。わずか5年前までは、AIをアプリケーションに統合するには、基本的な技術的専門知識だけでなく、ニューラルネットワークアーキテクチャの設計、トレーニング、モデルの微調整を行うコンピューターサイエンティストのチームが必要でした。つまり、素人には理解しにくい膨大な作業が必要でした。しかし、1年も経たないうちにChatGPTがリリースされて以来、言語モデルは十分にインテリジェントになり、丁寧に尋ねるだけで(必ずしも丁寧に尋ねる必要はない)、その動作を変更できるようになりました。制限事項。この多くは、ある程度、LLMを制御するためにLLMを適用するというアイデアに依存しています(このシリーズの後半でより深く検討する状況)。この種の作業は、従来のソフトウェアエンジニアリングとは大きく異なっているように感じますが、その理由の一部は、その経験的性質(つまり、このアプローチは、純粋に理論や仮定ではなく、実際の経験と経験的データに基づいている)と、この分野がまだ比較的新しいためです。 今日では、人工知能を利用するのにニューラルネットワーク、機械学習、自然言語処理に関する深い知識は必ずしも必要ではありません。同様に、Web開発にコンパイラやアセンブリ言語の習得は不要です。しかし、どちらの場合も、技術の根底にある仕組みを理解することは非常に有益であり、優秀なエンジニアとそうでないエンジニアを区別する重要な要素となることがよくあります。 目次 01 人工知能モデルの本質はアプリケーションです。 02テキスト自動補完システムの設計 03.言葉の定義と処理について 01 人工知能モデルの本質はアプリケーションです。多くのソフトウェアエンジニアは、生成型人工知能(GAI)に初めて出会ったとき、戸惑うかもしれません。長年の専門経験から、機械の能力に一定の期待を抱いており、誤解を招くような外観がないかと疑念を抱くかもしれません。それが良いか悪いかは別として、現実はあらゆるAIモデルが単なるアプリケーション(あるいは、より厳密な定義を好むなら、アプリケーションの中核部分)に過ぎないということです。モデルのトレーニング方法は、ほとんどのアプリケーションをゼロから設計する方法とは異なりますが、それでもAIモデルは入力と出力を持つ単なるアプリケーションです。 このアプリケーションは、入力テキストを人間の文章に似た方法で拡張するように設計されています。これは、現在のすべてのLLMが行っていることです。大規模なモデルが入力を「理解」できるかどうかは、哲学的に非常に議論されているテーマです。しかし、ほとんどの専門家は、現在のLLMがテキストを作成する際に、人間のように入力テキストを真に理解しているわけではないことに同意しています。もちろん、「人間のように物事を理解する」とはどういうことなのか、誰も真に理解していません。誰にも分かりません。もしかしたら、私たちは非常に高度なデータ理解マシンなのかもしれません。 しかし、哲学的な問いにとらわれすぎないようにしましょう。では、このようなテキスト補完アプリケーションは(理論的にだけでも)どのように設計すべきでしょうか? 02 自動テキスト補完システムの設計テキストオートコンプリートシステムは数十年前から存在していましたが、最も有用な用途が登場したのは携帯電話の普及後です。携帯電話での入力は確かに不便であるため、ユーザーの意図を予測し、入力候補を提示する機能は、非常に求められる機能となりました。 「New York」と入力すると、テキストオートコンプリートシステムはおそらく次の単語を「City」と予測するでしょう。このようなシステムを構築する比較的簡単な方法は、単純な統計手法を用いることです。大規模なテキストデータセットにおいて、「New York」が登場するすべてのテキストサンプル(および他のすべての単語ペアのサンプル)を記録し、これらの単語ペアに続く単語(例えば「New York」)を記録します。こうして、テキストのパターンを学習します。 このようなシステムを設計する場合、明らかなトレードオフはコンテキストのサイズ、つまりテキスト自動補完システムが入力で一緒に評価できる単語の数です。
小さなコンテキストウィンドウしかないテキスト自動補完システムは、直前に言った内容をすぐに忘れてしまいます。明らかな限界はあるものの、このようなシステムには成熟したLLMよりも優れた点があります。動作が軽く、テキストメッセージの補助に適していると言えるでしょう。最新のスマートフォンに搭載されている「予測入力」機能と「自動修正」機能は、LLMよりもテキスト自動補完に近いと言えるでしょう(少なくともこの記事の執筆時点では。成熟した生成AIにすぐに取って代わられるかもしれません)。このことを実際に体験してみましょう。モバイルデバイスでこの記事のコメント欄にアクセスし、いくつかの単語を入力し(何も思いつかない場合は「将来のAIは」と入力してください)、デバイスが最初に提示する入力候補を選択し続けてください。私は「映画は」から始めて、最終的に次の文になりました。
この文の各単語は、前の単語と自然に繋がっています。この文の一部だけを取り出すと、それ自体は納得できるかもしれません。「この映画は良い映画だ」「でも、私はそれが十分良いとは思わない」「なぜなら、それは良い映画だからだ」など。しかし、文全体は意味をなさない。文と文をつなぐ意味のある手がかりがないのだ。 比較しやすいように、「The movie was」に基づいて GPT-3 が完成させたテキストを以下に示します。
このシンプルなヒントから、GPT-3は話題から逸れ、「トゥモローランド」という映画について話し始めたようです。素晴らしいですが、正直なところ、これはスマートフォンのテキスト自動補完機能から期待される結果ではないかもしれません。 この例は、LLMが少数の単語だけに頼るのではなく、より多くの情報と文脈に基づいてテキストを予測・生成できることを示しています。結局のところ、2番目の文で「Disney」を正しく発音するには、前の文全体を考慮する必要があります。 さて、テキスト自動補完の話に戻りましょう。この単純な統計手法を機能させるには、まず統計データを取得する必要があります。そのためには、ユーザー入力に含まれるフレーズの頻度を計算するプログラムを作成し、その統計情報をデータベースに保存して、後でテキスト自動補完アプリケーションで使用できるようにする必要があります。最終的には、テキストデータの入力が増えるほど、テキスト自動補完プログラムの出力の精度は向上するはずです。 この二段階アプローチは、人工知能(そして機械学習全般)の仕組みを反映しています。(訳者注:ここでの二段階とは、まずデータの収集と処理(モデルのトレーニング)を行い、次にそのデータを適用して予測や結果の生成を行う(モデルの実行)ことを指していると考えられます。)このアナロジーでは、統計データがモデル、そのデータの計算がトレーニング、そしてテキストの自動補完がモデルの実行にあたります。開発者は、アプリケーションの動作を定義するコードを直接記述するのではなく、大規模な言語モデルに似た中間プロセスを作成し、それを通してアプリケーションの動作を指定します。 03 言葉の定義と処理について私たちの理論的なテキスト自動補完プログラムは、単語を言語の原子要素として暗黙的に処理します。これは当然の選択ですが、以下の理由から最適な選択ではありません。
これらの課題に対処するため、LLMの入力は単語ではなく「トークン」に分割されます。LLMにおいて、トークンとは本質的に「テキスト内の一般的な文字の並び」であり、厳密なルールや言語的意味論に制約されません。LLMでは、統計分析プロセスによって入力テキストに基づいて、何がトークンで何がトークンでないかを判断します。そのため、このアプローチにより、あらゆる言語(文法に関わらず)の自動トークン化が可能になります。さらに、トークンには文字だけでなく、あらゆる記号を含めることができます。トークナイザーは、句読点、数字、空白文字、さらには絵文字など、テキスト内の各文字にトークンを割り当てます。 上記の方法はLLMの入力をトークン化する最も一般的な方法ですが、唯一の方法ではないことに注意することが重要です。「トークン化」という用語は、自然言語処理の他の文脈で使用される、より高度な手順を指す場合もあります。 LLM 単語分割ツールは微妙なバランスを維持する必要があります。
トークナイザーが計算効率を維持しながらテキストを効果的に表現するには、適切なバランスを見つけることが重要です。GPTはカスタムトークナイザーを使用しており、その仕組みを理解することができます[1]。このトークナイザーは先頭のスペースを次の単語トークンの一部として扱うことに注意してください。「GPT」は「tokenizer」という単語と同様に、2つのトークンで構成されています。 トークナイザーは大規模だが有限なトークン集合を定義するため、それらを列挙し、そのインデックスをデジタルテキスト表現として使用することができます。これは現在、LLM(Large Language Model)で使用されている形式です。トークンテキストはバイナリ形式であっても長さが可変であるため処理が困難ですが、トークンIDは単なる数字です。LLMの観点からは、「テキスト文字」というものは存在しません。興味深いことに、人間もテキストを同様に認識し、個々の記号よりも単語の塊に基づいて認識していることを示唆する研究があります[2]。 ここまでで、LLM作成における学習ステップの重要性、コンテキストウィンドウサイズの重要性、そして単語分割がテキストをニューラルネットワークと互換性のある形式に変換する上で重要な役割を果たすことについて、しっかりと理解していただけたと思います。さあ、学んだことを現実世界に適用してみましょう。OpenAIのLLM価格ページ[3]を閲覧する際には、以下の重要なポイントを念頭に置いておくことをお勧めします。
トークンベースの価格設定ルールを使用する目的を理解することで、実際のシナリオで LLM をより賢く使用できます。 終わり
|