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

機械学習

RAGのNLPにおける検索と生成の統一的な革新的アプローチ

イントロダクション AIの急速に進化する領域に、ゲームチェンジングなイノベーションが登場し、機械が人間の言語と関わる方法...

コンピュータサイエンス

認知的燃焼の引火:認知アーキテクチャとLLMの融合による次世代コンピュータの構築

「技術はシステムに統合されることで飛躍的な進展を遂げますこの記事では、言語モデルを統合したアーキテクチャの取り組みに...

人工知能

「ChatGPTを利用する5人のミリオネア」

「以下は、地球上で最も成功した人々がChatGPTをどのように活用しているかの方法です」

機械学習

「医療AIの基礎モデル」

「私たちはPLIPという医療AIの基盤モデルを説明しますPLIPは病理学のAIタスクをサポートするために構築されたビジョン言語モ...

機械学習

マルチモーダル医療AI

Google ResearchのHealth AI部門の責任者であるGreg Corradoと、Engineering and ResearchのVPであるYossi Matiasによって投...

機械学習

バイオメディカルインサイトのための生成AI

OpenBIOMLとBIO GPTを利用したGenerative AIを探求し、Large Language Models (LLMs)を使用して疾患の理解と治療に新たなアプ...