GPTとBERT:どちらが優れているのか?

GPT vs BERT Which is superior?

大規模言語モデルの比較:アプローチと例

Image created by DALLE and PPT by author ( https://labs.openai.com/s/qQgpAQbLi0srYlZHOHQjGKWh )

生成AIの人気が高まるにつれて、大規模言語モデルの数も増加しています。この記事では、OpenAIによって開発されたGPTとGoogleによって開発されたBERTの2つを比較します。GPT(Generative Pre-trained Transformer)は、デコーダーのみのアーキテクチャに基づいています。一方、BERT(Bidirectional Encoder Representations from Transformers)は、エンコーダーのみの事前学習モデルです。

両者は技術的に異なりますが、自然言語処理タスクを実行するために類似した目的を持っています。多くの記事では、技術的な観点から2つを比較しています。しかし、この記事では、自然言語処理の品質に基づいて比較します。

比較アプローチ

完全に異なる2つの技術アーキテクチャをどのように比較しますか? GPTはデコーダーのみのアーキテクチャであり、BERTはエンコーダーのみのアーキテクチャです。したがって、デコーダーのみ対エンコーダーのみのアーキテクチャの技術的比較は、フェラーリとランボルギーニを比較するのと同じです。両方とも素晴らしいですが、シャシーの下には完全に異なる技術があります。

しかしながら、両方ができる共通の自然言語タスクの質に基づいて比較することができます。それは埋め込みの生成です。埋め込みとは、テキストのベクトル表現です。埋め込みは、すべての自然言語処理タスクの基礎となります。したがって、埋め込みの品質を比較できれば、自然言語処理の品質を判断するのに役立ちます。

以下に、私が取る比較アプローチが示されています。

Comparison approach (image by author)

GPTで始めましょう

コイントスをし、GPTが勝ちました!では、まずGPTから始めましょう。AmazonのFine Food Reviewsデータセットからテキストを取得します。レビューは、自然言語で表現され、非常に自発的です。顧客の気持ちを包括し、あらゆる種類の言語-良い、悪い、醜い言語を含むことができます。さらに、多くのつづり間違い、絵文字、よく使われるスラングが含まれることがあります。

以下は、レビューのテキストの例です。

Example of a customer review (image by author)

GPTを使用してテキストの埋め込みを取得するには、OpenAIにAPIコールを行う必要があります。結果は、各テキストのサイズが1540の埋め込みまたはベクトルです。以下は、埋め込みを含むサンプルデータです。

Embeddings obtained from model (image by author)

次のステップは、クラスタリングと可視化です。埋め込みベクトルをクラスタリングするためにKMeansを使用し、2つの次元に1540の次元を削減するためにTSNEを使用できます。以下は、クラスタリングと次元削減後の結果です。

GPT embedding clustering (image by author)

クラスターは非常によく形成されていることが観察できます。クラスターの意味を理解するのに、一部のクラスターにマウスを重ねると役立ちます。例えば、赤いクラスターは犬の食品に関連しています。さらなる分析により、GPTの埋め込みが単語「Dog」と「Dawg」が類似していると正しく識別し、同じクラスターに配置したことがわかります。

全体的に、クラスタリングの質によって示されるように、GPTの埋め込みは良い結果を与えます。

今度はBERTの番です

BERTはより良い結果を出すことができるのでしょうか。複数のBERTモデルがあり、bert-base-case、bert-base-uncasedなどがあります。基本的に、異なる埋め込みベクトルサイズを持っています。ここでは、埋め込みサイズが768のBert baseに基づく結果が示されています。

BERT embedding (768) clustering (image by author)

緑色のクラスターは犬の食品に対応しています。しかし、GPTと比較して、クラスターは広がっており、非常にコンパクトではありません。主な理由は、768の埋め込みベクトル長がGPTの1540の埋め込みベクトル長に劣るためです。

幸いにも、BERTは1024のより高い埋め込みサイズも提供しています。以下はその結果です。

BERT embedding (1024) clustering (image by author)

ここでは、オレンジ色のクラスターが犬の食品に対応しています。クラスターは比較的コンパクトであり、768の埋め込みと比較して良い結果が得られています。ただし、中心から遠く離れた点がいくつかあります。これらの点は誤って分類されたものです。例えば、コーヒーのレビューがあり、その中に「Dog」という単語があるため、誤って犬の食品に分類されています。

結論

明らかに、GPTはBERTよりも優れた、より高品質の埋め込みを提供します。ただし、比較には他の側面があるため、GPTにすべてのクレジットを与えたくありません。以下はサマリーテーブルです

GPTは、より高い埋め込みサイズによって提供される埋め込みの品質においてBERTに勝ります。ただし、GPTには有料APIが必要であり、BERTは無料です。さらに、BERTモデルはオープンソースで、ブラックボックスではないため、より詳細な分析が可能です。OpenAIのGPTモデルはブラックボックスです。

結論として、ウェブページや書籍などのキュレーションされたテキストを含むVoAGI複雑なテキストにはBERTを使用することをお勧めします。完全に自然言語でキュレーションされていない顧客レビューなどの非常に複雑なテキストにはGPTを使用できます。

技術的実装

ここに、ストーリーで説明されたプロセスを実行するPythonコードの断片が示されています。例として、GPTのコードを示しています。BERTのものも同様です。

##パッケージのインポートimport openaiimport pandas as pdimport reimport contextlibimport ioimport tiktokenfrom openai.embeddings_utils import get_embeddingfrom sklearn.cluster import KMeansfrom sklearn.manifold import TSNE##データの読み込みfile_name = 'path_to_file'df = pd.read_csv(file_name)##パラメータの設定embedding_model = "text-embedding-ada-002"embedding_encoding = "cl100k_base"  # this the encoding for text-embedding-ada-002max_tokens = 8000  # the maximum for text-embedding-ada-002 is 8191top_n = 1000encoding = tiktoken.get_encoding(embedding_encoding)col_embedding = 'embedding'n_tsne=2n_iter = 1000##OpenAIから埋め込みを取得するdef get_embedding(text, model):  openai.api_key = "YOUR_OPENAPI_KEY"  text = text.replace("\n", " ")  return openai.Embedding.create(input = [text], model=model)['data'][0]['embedding']col_txt = 'Review'df["n_tokens"] = df[col_txt].apply(lambda x: len(encoding.encode(x)))df = df[df.n_tokens <= max_tokens].tail(top_n)df = df[df.n_tokens > 0].reset_index(drop=True) ##トークンがない場合は削除する、たとえば空白行の場合df[col_embedding] = df[col_txt].apply(lambda x: get_embedding(x, model='text-embedding-ada-002'))matrix = np.array(df[col_embedding].to_list())##クラスタリングを実行するkmeans_model = KMeans(n_clusters=n_clusters,random_state=0)kmeans = kmeans_model.fit(matrix)kmeans_clusters = kmeans.predict(matrix)#TSNEtsne_model = TSNE(n_components=n_tsne, verbose=0, random_state=42, n_iter=n_iter,init='random')tsne_out = tsne_model.fit_transform(matrix)

データセットの引用

このデータセットは、CC0パブリックドメインのライセンスで利用可能です。商用利用と非商用利用の両方が許可されています

Amazon Fine Food Reviews

Amazonから約50万件のフードレビューを分析する

www.kaggle.com

新しい記事を公開するたびに通知を受け取るには、購読してください。

Pranay Daveが公開するたびにメールを受け取る

Pranay Daveが公開するたびにメールを受け取る。サインアップすると、VoAGIアカウントが作成されます(まだ持っていない場合)…

pranay-dave9.medium.com

私の紹介リンクでVoAGIに参加することもできます

VoAGIメンバーとして、読んだライターに会費の一部が支払われ、すべてのストーリーにフルアクセスできます…

pranay-dave9.medium.com

その他のリソース

ウェブサイト

コーディング不要で分析を行うために私のウェブサイトを訪問することができます。https://experiencedatascience.com

YouTubeチャンネル

デモを使用したデータサイエンスやAIのユースケースを学ぶために私のYouTubeチャンネルを訪問してください

データサイエンスの実演

デモを通じてデータサイエンスを学ぶ。あなたがどの職業であっても、くつろいでビデオを楽しんでください。私の名前は…

www.youtube.com

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

「野心的なAI規制に対する力強いプロセス:オックスフォード研究からの3ステップソリューション」

「もしアカウンタブルマネージャーやプロダクトオーナー、プロジェクトマネージャー、もしくはデータサイエンティストで、AI...

AI研究

初心者のための2023年の機械学習論文の読み方

「私は数十の機械学習の論文を読み、論文の勉強方法がだいたい分かってきました まず最初に、特定の論文を読む目的を理解する...

機械学習

量子AI:量子コンピューティングの潜在能力を機械学習で解き明かす

この記事では、量子機械学習について、現在の課題、機会、評価、成熟度、およびタイムリーさについて、読者がより詳しく学ぶ...

データサイエンス

「拡散を通じた適応学習:先進のパラダイム」

イントロダクション 教育と機械学習のダイナミックな風景において、適応学習を通じた拡散はパラダイムシフトを示しています。...

AI研究

UCSDとMicrosoftの研究者がColDecoを導入:計算されたカラムのためのノーコード検査ツール

UCSDとMicrosoftの研究チームが開発した「COLDECO:AIによって生成されたコードのエンドユーザ用スプレッドシート検査ツール...

AIニュース

「AIサイバーセキュリティのスタートアップ企業、ヨーロッパと今度はアメリカからも、参集!」

新しいGoogle for Startups成長アカデミーの開始:ヨーロッパとアメリカに拠点を置く企業のためのAIセキュリティプログラムの...