Llama 2 ChatとChatGPTの比較:質問応答でのパフォーマンス

AIコミュニティは、Meta AIが最近リリースしたLlama 2に興奮している。クローズドソースのChatGPTとは異なり、Llama 2はオープンソースであり、商用アプリケーションで無料で使用することができます。その印象的な規模と競争力のある回答品質により、Llama 2は人工知能に大きな波を起こすだろう。
この投稿では、Llama 2を簡単に紹介し、ChatGPTと比較した質問に対する回答のパフォーマンスを評価します。
Llama 2とは?
Llama 2はMeta AIの最新のオープンソース大規模言語モデル(LLM)で、OpenAIのGPTモデルとGoogleのPaLM 2モデルに対抗して開発されました。Llama 2は、研究・商用目的であれば誰でも無料で使用することができます。
Llama 2には3つのサイズがあり、700億、1300億、7000億のパラメータを誇ります。この多様性により、開発者はプロジェクトの要件に最も適したモデルを選択することができます。Llama 2の訓練済みモデルは、2兆個のトークンで訓練され、GPT-3に相当する4096個までのコンテキスト長をサポートします。Llama 2の微調整されたモデルであるLlama Chatは、100万以上の人間のアノテーションで訓練されており、会話AIシナリオ用に特別に調整されています。このモデルは、チャットボットやバーチャルアシスタント、あるいはAIを活用した会話システムの構築を目指す人々にとって魅力的です。
ラマ2幻覚とRAG
他の多くのLLMと同様に、Llama 2は一般に入手可能なデータで事前に訓練されており、より関連性の高い知識が必要なときに幻覚の問題に直面する。AIコミュニティはこのような課題に対処するため、RAG(Retrieval Augmented Generation)というコンセプトを導入した。RAGは、外部から検索された知識をコンテキストとして活用し、モデルが生成する応答の精度を高める。
TowheeパイプラインとRAGの連携方法
LLMを外部知識で強化するための多くのツールが市場に出回っている。Towheeは主要な例の一つである。これはオープンソースの機械学習パイプラインで、Llama 2とアーキテクチャが統合されており、柔軟なデータ処理をサポートしています。このセクションでは、Towheeパイプラインの小さな例を用いて、RAGソリューションがどのように機能するかを示す。
Llama 2に "Towheeのインストール方法 "を尋ねると、Llama 2はTowheeについて何も知らないので、事実と異なる、無関係な、あるいは無意味な答えを提供するでしょう。
この問題に対処するために、私たちはTowheeパイプラインを使用して、Towheeとチャット履歴に関する追加情報をLlama 2の元の質問に組み合わせます。そして、ラマ2はそのニュースに基づいて、より正確な答えを提供します。
以下は、ラマ2のための増強されたプロンプトです。
from towhee import pipe, ops
p = (
pipe.input('question', 'docs', 'history')
.map(('question', 'docs', 'history'), 'prompt', ops.prompt.question_answer())
.map('prompt', 'answer', ops.LLM.Llama_2('llama-2-13b-chat'))
.output('answer')
)
# チャットの履歴と追加知識を取得します。
history=[('Towheeとは', 'TowheeはLarge Language Model (LLM)ベースのパイプラインオーケストレーションを使って非構造化データの処理を効率化するために設計された最先端のフレームワークです。]
knowledge = ['`pip install towhee`でtowheeをインストールできます。]
# 取得した情報でクエリを実行する
question = 'どのようにインストールしますか?
answer = p(質問, 知識, 履歴).get()[0].
# 回答例
Towhee をインストールするには、ターミナルか # コマンドプロンプトで以下のコマンドを実行します。
Towhee をインストールするには、ターミナルで以下のコマンドを実行するか、 # コマンドプロンプトで以下のコマンドを実行します。
Towheeを使った複雑なRAGベースのチャットボットの構築についてもっと知りたい方は、Akcio をチェックしてください。Akcio は、検索拡張生成のためのオープンソースのデモプロジェクトです。
Llama 2とChatGPTの評価
このセクションでは、2つのチャットボットモデルを評価します:Llama 2 Chat (13B)は、13Bパラメータをチャット指示用に微調整したLlama 2モデルで、ChatGPTはGPT-3.5を搭載しています。いくつかの一般的なシナリオで同じプロンプトを使用して両方のモデルをテストします。
注意:* Llama 2とChatGPTで提供する外部知識は長いです。したがって、このブログではプロンプト全体を表示しません。完全なプロンプトに興味がある方は、別ドキュメントのLlama2とChatGPTに提供される外部知識を参考にしてください。
ケース 1: 関連する知識が提供されたら質問に答える
我々はLlama2とChatGPTにフォルクスワーゲンのXPENGへの投資に関する財務ニュースを提供した。そして、両モデルに提供された情報に基づいて質問に答えるよう求めた。
プロンプト
あなたは情報収集家です。質問に答えるためには[知識]の内容を利用する必要がありますが、その知識が自分の知識と異なる場合は[知識]の方が優先されます。
[知識スタート]:
フォルクスワーゲンは水曜日、中国のEVメーカーXpengと中国向けに2つの新しい電気自動車を共同開発する契約を締結したと発表した。この契約の一環として、フォルクスワーゲンはXpengに約7億ドルを投資し、4.99%の株式を取得する。
[ナレッジエンド]
フォルクスワーゲンはXpengにいくら投資したのですか?
回答
ChatGPTです:フォルクスワーゲンはXpengに約7億ドルを投資し、中国のEVメーカーの4.99%の株式を取得しました。
ラマ2チャットナレッジセクションの情報によると、フォルクスワーゲンはXpengに約7億ドルを投資し、約4.99%の株式を取得した。
どちらのモデルも提供された知識に基づいて質問に正確に答えています。
ケース2:無関係な情報が提供されても質問に答える
検索された情報が質問と無関係なシナリオをシミュレートし、両モデルが "I don't know "と正直に答えられるかどうかをテストしました。フォルクスワーゲンのXPeng Motorsへの投資に関する情報を両モデルに提供しましたが、アウディがXPengにいくら投資したかという無関係な質問をしました。
プロンプト
あなたは情報収集家です。質問に答えるためには[知識]の内容を利用する必要がありますが、その知識が自分の知識と異なる場合は[知識]の方が優先されます。
[知識スタート]:
フォルクスワーゲンは水曜日、中国のEVメーカーXpengと中国向けに2つの新しい電気自動車を共同開発する契約を締結したと発表した。この契約の一環として、フォルクスワーゲンはXpengに約7億ドルを投資し、4.99%の株式を取得する。
[ナレッジエンド]
アウディはXpengにいくら投資したのですか?
回答
ChatGPTです:
提供された知識では、アウディが直接Xpengに投資するという話はありません。情報によると、アウディの親会社であるフォルクスワーゲンは、長年の中国合弁パートナーである上海汽車と、中国市場向けにアウディブランドの新型EVを共同開発するための別個の契約を締結したとのことです。しかし、アウディがXpengに直接投資するという情報はない。Xpengへの約7億ドルの投資は、アウディではなくフォルクスワーゲンが行った。
ラマ2-チャット
提供された情報によると、アウディはXpengに資金を投資していない。Xpengに約7億ドルを投資し、中国のEVメーカーの株式4.99%を取得したのはフォルクスワーゲンだ。
Llama 2とChatGPTは知識のギャップを正しく認識し、正直に答えた。
ケース3: 読めない情報が提供されても質問に答える
実際のビジネスシーンでは、テキスト文書は様々な形式で提供されます。そのため、このケースでは、GitHub上のTailwind CSSに関するフォーマットされていない読みにくいテキストを両モデルに提供しました。そして、関連する質問に答えてもらいました。
プロンプト
あなたは情報収集家です。質問に答えるためには[知識]の内容を利用する必要がありますが、その知識が自分の知識と異なる場合は[知識]の方が優先されます。
[知識スタート]
[Q: Tailwind CSSを使っているサイトの例を教えてください。
[ナレッジエンド]
Tailwindを使っているサイトを教えてください。
回答
チャットGPT
もちろんです!提供された[知識]に基づいて、Tailwind CSSを使用しているウェブサイトをいくつか紹介します:
Tailwind CSS 3 クラッシュコース(https://www.youtube.com/watch?v=LyRWNJK8I6U&ab_channel=codedamn)
100秒でわかるTailwind(https://www.youtube.com/watch?v=mr15Xzb1Ook&ab_channel=Fireship)
Bartikの再構築(https://www.oliverdavies.uk/articles/rebuilding-bartik-with-vuejs-tailwind-css)- Bartik(Drupalのデフォルトテーマ)をVue.jsとTailwind CSSで再構築。
Airbnbのホームページの再構築(https://web-crunch.com/re-create-airbnbs-home-page-with-tailwind-css)- AirbnbのホームページをTailwind CSSで再構築。
Tailwind CSSの組版デフォルト(https://www.themes.dev/blog/typographic-defaults-in-tailwind-css/)
Tailwind CSSでレスポンシブナビゲーションメニューを作成(https://www.themes.dev/blog/responsive-navigation-menu-tailwind-css/)
Laracasts Weekly Stream:追い風(https://www.youtube.com/watch?v=HIPgzWS-Bxg)
Tailwind CSSのさらなる実験(https://www.youtube.com/watch?v=nBzfVK3QUzM)
Spotifyの再構築(https://youtu.be/SLGb2RLie9w)
これらのウェブサイトでは、Tailwind CSSを使って構築されたウェブサイトの様々な使用例や例を紹介しています。
Llama2-chat:
確かに、Tailwind CSSを使っているウェブサイトの例をいくつか紹介しましょう:
GitHub - GitHubのドキュメントとマーケティングページでは、スタイリングにTailwind CSSが使われています。
Shopify - Shopify は Tailwind CSS を管理ダッシュボードやその他の内部ツールのスタイリングに使用しています。
Atlassian - Atlassian の Confluence 製品は、レスポンシブレイアウトとスタイリングに Tailwind CSS を使用しています。
React Magazine - React Magazine のウェブサイトは Tailwind CSS を使用して構築されており、クリーンでモダンなデザインが特徴です。
The Verge - The Verge の記事ページは、タイポグラフィとスペーシングに Tailwind CSS を使用しています。
Dribbble - Dribbble のウェブサイトは、グリッドシステムとタイポグラフィに Tailwind CSS を使用しています。
Smashing Magazine - Smashing Magazineのウェブサイトは、2020年にTailwind CSSを使ってリニューアルされました。
Laracasts - 人気のLaravelチュートリアルサイトであるLaracastsは、スタイリングにTailwind CSSを使用しています。
Statamic - 静的サイトジェネレーターの Statamic は、デフォルトのセットアップの一部として Tailwind CSS を使用しています。
Figma - Figma のブログとドキュメントページでは、タイポグラフィとスペーシングに Tailwind CSS を使用しています。
これらは、Tailwind CSS を使用しているウェブサイトのほんの一例です。他にも多くのウェブサイトやアプリケーションが Tailwind CSS を使用しており、このフレームワークのパワーと柔軟性をより多くの開発者が知るにつれて、そのリストは増え続けています。
ChatGPTは、複雑なMarkdownマークアップで表示された場合でも、テキスト情報を正確に理解し、高品質の回答を提供します。対照的に、Llama2-chatは提供された情報を理解することができず、知識のみに基づいた質の低い回答を提供します。
上記の3つのケースに加え、私たちはLlama2とChatGPTを、ドメイン固有の知識と再フォーマットされた情報を用いた質問応答でテストしました。詳しくは、Llama2とChatGPTに提供された外部知識を参照してください。
キーポイント
Llama2とChatGPTは、どちらも実世界の知識に基づいた質問に答えることに優れています。
どちらのモデルも、提供された知識が質問に対する特定の答えをサポートしているかどうかを判断することができます。
ChatGPTはLlama2よりもフォーマットされていない読みにくい情報を理解するのが得意ですが、フォーマットされていない情報を整理するとLlama2の方がより正確な答えを提供できます。
ラマ2のパフォーマンスを評価する
このセクションでは、Llama 2 (13b)モデルの性能と導入コストを評価します。llama.cpp`上で実行し、サンプリングされたプロンプトを繰り返し実行することで、4ビットと8ビットの整数量子化による推論性能を測定する。最新のTowheeフレームワークのLlama 2演算子を使用する。この演算子は、わずか数行のコードでLlama 2を呼び出し、データを前処理してプロンプトを簡便に組み立てることを可能にする。
from towhee import ops
chat = ops.LLM.Llama_2('path/to/model_file.bin', max_tokens=2048, echo=True)
message = [{"question": "ウェブサイトを作るには10の簡単なステップがあります。]
answer = chat(メッセージ)
テスト結果
80GBのメモリを搭載したハイエンドGPU A100と、12GBのメモリを搭載した標準的なデスクトップグレードGPU 2080を使用して、Llama 2 (13b)モデルをテストしました。
8ビット整数量子化によるLlama 2 (13b)の推論パフォーマンス
| 1 x NVIDIA A100 (80G) | 1 | 87% | 19G | 37トークン/秒 1 x NVIDIA A100 (80G) | 2 | 100% | 38G | 45 tokens/s || GeForce RTX 1 x NVIDIA A100 (80G) | 2 | 100% | 38G | 45 tokens/s
| 2 x GeForce RTX 2080 (12G) | 1 | 40%,40% | 8G + 8G | 18トークン/秒
<br
4ビット整数量子化によるLlama 2 (13b)の推論性能
| -------------------------- | ---------------- | ---------------------- | ---- | ----------- | | 1 x NVIDIA A100 (80G) | 1 | 80% | 11G | 45トークン/秒 1 x NVIDIA A100 (80G) | 2 | 100% | 22G | 56 tokens/s | | NVIDIA A100 (80G) | 2 | 100% | 22G | 56 tokens/s 1 x GeForce RTX 2080 (12G) | 1 | 86% | 9.3G | 37 tokens/s || GeForce RTX 2080 (12G) | 1 | 86% | 9.3G | 37 tokens/s
キーポイント
低ビット量子化を使用することで、デスクトップグレードのGPU1つでLlama 2 (13b)モデルをスムーズに実行することができます。このアプローチにより、コストを削減しながらLlama 2のパワーを最大化することができます。
A100上でLlama 2(13b)モデルを展開した場合、GPUメモリの使用量は低く抑えられます。
Llama 2 (13b)をA100 GPUで実行しても2080 GPUで実行しても性能に大きな差はありませんが、デスクトップ用GPUはサイズが小さいため、小さなモデルしか1枚のカードにロードできません。
まとめ
この投稿では、RAG領域におけるLlama 2 Chat (13b)の能力と、llama.cpp
デプロイメント・モードにおけるパフォーマンスについて掘り下げてきました。
Llama 2は知識テキストを効果的に理解し、ChatGPTに匹敵する簡単な質問に正確に回答します。しかし、複雑なテキストフォーマットに直面した場合、回答の品質を維持することが難しくなります。
Llama 2はハイエンドGPUを必要としないことが特徴です。デスクトップレベルのGPUでスムーズに動作し、特に低ビット量子化を行った後は、NVIDIA A100カード1枚で驚異的なスループットを達成します。さらに、1つのGPUで複数のモデルを実行することで、パフォーマンスを高めることができます。
Llama 2のテキスト情報処理能力は、様々なRAGシナリオに適しています。Milvusのような知識データベースと組み合わせることで、高品質の回答を提供することができます。
結論として、Llama 2やその他のオープンソースのAIモデルは、AIの世界に革新をもたらすと期待されている。ユーザーや開発者に卓越した質問応答体験を提供する可能性を秘めており、AI言語モデルの世界にエキサイティングな付加価値を与えている。
読み続けて

Zero-Downtime Migration Now Available in Zilliz Cloud Private Preview
Zero-Downtime Migration enables seamless cluster-to-cluster migrations within Zilliz Cloud while maintaining full service availability.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.

Building a RAG Application with Milvus and Databricks DBRX
In this tutorial, we will explore how to build a robust RAG application by combining the capabilities of Milvus, a scalable vector database optimized for similarity search, and DBRX.