私は数十冊の本を手作業で要約し始めましたが、要約ごとに数週間かかることがわかりました。それから私は、この AI 革命が起こっていることを思い出し、これらの領域に飛び込む予定はとうの昔に過ぎていたと決心しました。 。 大きなテキストを要約するためにラージ言語モデル (LLM) の使用を検討し始めたとき、その方法について明確な指示が見つかりませんでした いくつかのページでは、要約したい本の内容を魔法のように知ってくれるという考えのもと、GPT4 に与えるためのプロンプトの例が示されています。 (ない) テキスト全体を一度に処理できる大規模なコンテキストを備えたモデルを見つける必要があると提案する人もいます。 (まだ) ドキュメントをデータベースにアップロードし、そのデータベースの内容に基づいて質問に回答できるオープン ソース ツールがいくつかあります。 (近くなってる) 最初に本をいくつかのセクションに分割し、それらを一度に 1 つずつ要約するために LLM に入力する必要があると提案する人もいます。 (今、話しています) その決定を行う以外にも、特定の LLM を実装するときに考慮する必要がある変数が多数あります。 推奨事項やモデルのランキングが利用可能であるにもかかわらず、他の人が得ているものとは異なる結果が得られていることにすぐに気づきました。私のユースケース、モデル形式、量子化、圧縮、プロンプト スタイルなど?わからない。 私が知っているのは、独自の作業条件の下で独自のモデルのランキングを行うことだけです。オンラインで読んだグラフをただ信じないでください。 このガイドでは、上記の変数の詳細を決定しテストする私のプロセスについて具体的に説明します。 。 完全なランキング データ、ウォークスルー、結果の概要は GitHub でご覧ください 背景 重要な用語 これらの用語の一部は、文脈に応じて異なる方法で使用されます (駄洒落ではありません)。 : (別名モデル) 人間の言語を理解し、生成するために大規模なデータセットに基づいてトレーニングされた人工知能の一種。 大規模言語モデル (LLM) :世界を席巻したOpenAIのGPT3.5とGPT4。 (私たちの場合は、オープンソースまたは にある無料でダウンロード可能なモデルの中から選択しています。) 例 Hugging Face : 、LLM が特定のユーザー クエリ (ドキュメント Q/A) に対する回答を見つけるためにドキュメントをデータベースに保存する技術。 Retrieval Augmented Generation (RAG) Meta AI によって開発された (別名プロンプト、またはコンテキスト) は、ユーザーが提供するクエリです。 ユーザー指示: 例: 「次のテキストを要約します: 」 { text } ユーザー プロンプトの前に与えられる特別な指示。アシスタントの性格を形成するのに役立ちます。 システム プロンプト: 例: 「あなたは役に立つ AI アシスタントです。」 ユーザーの指示、場合によってはシステム プロンプト、場合によっては以前の質問と回答のペア。 (以前の Q/A ペアは、単にコンテキストとも呼ばれます)。 コンテキスト: : これらは、ユーザーの指示、システム プロンプト、および前の質問のコンテキストの違いを認識するために LLM がトレーニングされる特殊文字の組み合わせです。 プロンプト スタイル 例: <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST] 特定のモデル内のパラメーターの数を示します (一般に、大きいほど優れています)。パラメーターは、モデルがトレーニング中に学習し、予測を行うために使用される内部変数です。私の目的では、7B モデルは 12GB VRAM を搭載した GPU に適合する可能性があります。 7B: これは、コンシューマ ハードウェア (CPU/GPU) 向けに設計された LLM に特有の形式です。興味のあるモデルが何であれ、PrivateGPT で使用するには、その GGUF バージョン (通常は によって作成されています) を見つける必要があります。 GGUF: TheBloke GGUF リポジトリのファイルを参照すると、同じモデルの異なるバージョンが表示されます。数値が大きいほど、圧縮率が低くなり、品質が高くなります。 K_M の M は「中」を意味し、K_S の S は「小」を意味します。 Q2-Q8 0、K_M または K_S: これは GPU のメモリ容量です。 GPU に完全にロードするには、利用可能な VRAM よりも小さいサイズのモデルが必要になります。 VRAM: これは、LLM が言語を評価する指標です。各トークンはおよそ 4 文字で構成されます。 トークン: PrivateGPTとは何ですか? PrivateGPT (pgpt) は、ユーザーが自宅で自分のハードウェアで LLM を使用できるようにするユーザー インターフェイスとプログラム可能な API を提供する です。これにより、RAG がサポートするドキュメント Q/A のドキュメントを独自のローカル データベースにアップロードできます。 オープン ソース プロジェクト : PrivateGPT ドキュメント - 概要 PrivateGPT は の構築に必要なすべての構成要素を含む を提供します。この API は OpenAI API 標準に従って拡張しており、通常の応答とストリーミング応答の両方をサポートします。つまり、ツールの 1 つで OpenAI API を使用できる場合、 モードで privateGPT を実行している場合は、コードを変更することなく、代わりに独自の PrivateGPT API を 使用できます。 、プライベートなコンテキスト認識 AI アプリケーション API local 無料で 概要 私は、 UI\RAG を使用して、章を予約するために質問することから始めました。 PrivateGPT 次に、要約用のテキストを事前に選択してみました。これは、ラウンド 1 のランキングのインスピレーションであり、私の結果がどれほど大きな違いを示すかを確認するためのものでした。 (事前に選択されたセクションの要約。) 次に、どのモデルがこのタスクに最も適しているかを調べたかったのですが、これがラウンド 2 のランキングにつながり、 が明確な勝者となりました。 Mistral-7B-Instruct-v0.2 次に、プロンプト スタイルをランク付けし、期待どおりのプロンプト スタイルを取得するコードを作成することで、このモデルから最良の結果を得たいと考えました。 もちろんその後は、さまざまな をテストして、どれが最もパフォーマンスが高いかを確認する必要がありました。 システム プロンプト 次に、いくつかのユーザー プロンプトを試して、後処理が最小限で済む要約を生成するための正確な最適なプロンプトは何かを判断しました。 最終的には、この種のテストは LLM ごとに、またプロセスの改良の有効性を判断するために実施する必要があります。私の意見では、各モデルがその最も理想的な条件をターゲットにして初めて、相互に適切にランク付けできるようになります。 ランキング 私がさまざまな LLM バリアントのテストを開始したとき、 は PrivateGPT のデフォルト セットアップ (CPU 上で実行するように作られている) の一部として付属していました。ここでは、Q8_0 バリアントを好みます。 mistral-7b-instruct-v0.1.Q4_K_M.gguf 同じタスクに対して 50 以上の異なる LLM を試してきましたが、Mistral-7B-Instruct が依然として最高の部類に入ります。特に v0.2 がリリースされて以来、これより優れたものは見つかりませんでした。 TLDR: - 要約タスクの現在のリーダーです。 Mistral-7B-Instruct-v0.2 ラウンド 1 - Q/A と概要 Q/A を行うときに、小さいデータの塊をデータベースにアップロードし、毎回白紙の状態から開始すると、はるかに良い結果が得られることがすぐにわかりました。そこで、Q/A を目的として PDF を章に分割し始めました。 最初の分析では、次のタスクに対して 5 つの異なる LLM をテストしました。 70 ページの本の章に対して同じ 30 の質問をします。 同じ 70 ページの本の章を 30 のチャンクに分割して要約したものです。 質問・回答ランキング - これらのテスト中は私のお気に入りでしたが、実際に要約を編集するときに冗長すぎると判断しました。 ヘルメス・トリスメギストス・ミストラル 7b - このラウンドでテストしたモデルの中で私のお気に入りになりました。 SynthIA 7B V2 - 期待したほど良くありません。 Mistral 7b Instruct v0.1 大量のフィラーがあり、すべての中で最も長い時間がかかりました。品質と有用性の点ではミストラルよりも少し高いスコアを獲得しましたが、つなぎ目の量が多すぎて読むのが楽しくなくなりました。 CollectiveCognition v1.1 Mistral 7b 回答が短すぎたので、BS をもう少し目立たせました。良いモデルですが、本の詳細な要約には適していません。 KAI 7b 指示の モデルごとに表示 答えを生成するのに必要な秒数 主観的な有用性\品質評価の合計 何文字生成されましたか? ターゲット範囲内で見つかったコンテキスト コンテキスト チャンクの合計。 生成されたテキストで見つかった以下の品質の数: フィラー (価値の低い余分な単語) 短い (短すぎるため、作業するには十分ではありません。) BS (この本の内容ではないので役に立ちません。) Good BS (対象セクションからのものではありませんが、有効です。) モデル 評価 検索精度 キャラクター 秒 BS フィラー 短い 良いBS ヘルメス・トリスメギストス・ミストラル-7b 68 56 62141 298 3 4 0 6 シンシア-7b-v2.0 63 59 28087 188 1 7 7 0 ミストラル-7b-命令-v0.1 51 56 21131 144 3 0 17 1 集団認知-v1.1-ミストラル-7b 56 57 59453 377 3 10 0 0 kai-7b-指示 44 56 21480 117 5 0 18 0 まとめランキング この最初のラウンドでは、章の内容をさまざまなセクションに分割しました。 それぞれ 900 ~ 14000 文字 (または 225 ~ 3500 トークン)。 注: 数多くの大規模なコンテキスト モデルがリリースされているにもかかわらず、今のところ、私は依然としてコンテキストを小さくした方がより良い要約が得られると信じています。私は、要約タスクごとに 2750 トークン (11000 文字) を超えることを好みません。 - まだリードしています。冗長ですが、補足がいくつかあります。これらの結果を使用できます。 ヘルメス トリスメギストス ミストラル 7b - かなり良いですが、簡潔すぎます。答えの多くは完璧でしたが、7 つは短すぎて使用するには不完全でした。 SynthIA 7B - 短すぎます。 ミストラル 7b 命令 v0.1 - 短すぎます。 KAI 7b 指示 - ゴミがたくさんあります。いくつかの要約は非常に詳細で完璧でしたが、回答の半分以上は要約ではなく、テキストに基づいた一連の質問でした。 CollectiveCognition v1.1 Mistral 7b 驚くことではないが、概要は Q/A よりもパフォーマンスがはるかに優れていましたが、より細かく対象を絞ったコンテキストも含まれていました。 名前 スコア 生成される文字 OG との差異 (%) 生成までの秒数 短い ごみ BS 埋める 質問 詳細 ヘルメス・トリスメギストス・ミストラル-7b 74 45870 -61 274 0 1 1 3 0 0 シンシア-7b-v2.0 60 26849 -77 171 7 1 0 0 0 1 ミストラル-7b-命令-v0.1 58 25797 -78 174 7 2 0 0 0 0 kai-7b-指示 59 25057 -79 168 5 1 0 0 0 0 集団認知-v1.1-ミストラル-7b 31 29509 -75 214 0 1 1 2 17 8 完全なデータとランキングについては、 または GitHub ( 、 でご覧ください。 Google ドキュメント QA スコア 概要ランキング) ラウンド 2: まとめ - モデルのランキング 繰り返しますが、私は 7B モデルの Q8 バージョンの方が好きです。 リリースされたことを発見したことは、新たなテスト ラウンドを行う価値がありました。 Mistral 7b Instruct v0.2 が プロンプトスタイルもテストしてみることにしました。 PrivateGPT は Mistral プロンプトには同梱されておらず、Mistral プロンプトは Llama2 プロンプトに似ていますが、デフォルト (llama-index) プロンプトの方がパフォーマンスが優れているようです。 - このモデルは私のお気に入りになっていたので、ベンチマークとして使用しました。 SynthIA-7B-v2.0-GGUF (Llama-index プロンプト) ここでのショーの主役、非常に印象的です。 Mistral-7B-Instruct-v0.2 (Llama2 プロンプト) まだ良好ですが、llama-index プロンプトを使用するほど はありません Mistral-7B-Instruct-v0.2 で - Synthia v2 と同じ作成者による別のバージョン。良いですが、 良くはありません。 Tess-7B-v1.4 それほど - llama-index プロンプトでは正常に動作しましたが、動作が遅くなりました。 llama2 プロンプトではダメです。 (Llama2 の「命令のみ」スタイルで再度テストする必要があります) Llama-2-7B-32K-Instruct-GGUF まとめランキング 要約のみ、Q/A は本の要約としては効率が低いだけです。 モデル % 違い スコア コメント シンシア 7b V2 -64.43790093 28 良い ミストラル 7b 命令 v0.2 (デフォルトのプロンプト) -60.81878508 33 Vグッド ミストラル 7b 命令 v0.2 (Llama2 プロンプト) -64.5871483 28 良い テス 7b v1.4 -62.12938978 29 あまり構造化されていない ラマ 2 7b 32k 指示 (デフォルト) -61.39890553 27 あまり構造化されていない。遅い 完全なデータとランキングについては、 または でご覧ください。 Google ドキュメント GitHub ラウンド 3: プロンプト スタイル 前回のラウンドでは、 デフォルトのプロンプトで llama2 よりもはるかに優れたパフォーマンスを示していることに気付きました。 Mistral 7b Instruct v0.2 が 実際、mistral プロンプトは llama2 に非常に似ていますが、まったく同じではありません。 ラマ_インデックス (デフォルト) system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}} ラマ2: <s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST] ミストラル: <s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST] 私は スタイルで 、次に プロンプトスタイルでテストしました。次に、 に取り掛かりました。 default 出力のテストを開始し llama2 ミストラル テンプレートのコーディング そのランキングの結果により、私は正しくコーディングできたという自信が得られました。 プロンプトスタイル % 違い スコア 注記 ミストラル -50% 51 完璧! デフォルト (ラマインデックス) -42% 43 不適切な見出し ラマ2 -47% 48 構造がありません 完全なデータとランキングについては、 または でご覧ください。 Google ドキュメント GitHub ラウンド 4: システム プロンプト プロンプト スタイルを設定したら、いくつかの異なるシステム プロンプトを試してみましたが、その結果には驚きました。 名前 システムプロンプト 変化 スコア コメント なし -49.8 51 完璧 デフォルトのプロンプト あなたは親切で、礼儀正しく、誠実なアシスタントです。 \n常にできるだけ親切に回答し、与えられたすべての指示に従ってください。 \n情報を推測したりでっちあげたりしないでください。 \n指定された指示やコンテキストを参照しないでください。」 -58.5 39 あまり良くない マイプロンプト1 「あなたは愛されています。要約、概要、構造化の専門家として行動してください。\nあなたの文章のスタイルは有益で論理的でなければなりません。」 -54.4 44 あまり良くない 単純 「あなたは役立つ AI アシスタントです。出力の一部としてユーザーの指示やシステム コンテキストを含めないでください。」 -52.5 42 あまり良くない 結局のところ、システム プロンプトを使用せずに要約を作成するには、 が最適であることがわかりました。 Mistral 7b Instruct v0.2 おそらく、別のタスクでは異なる結果が得られるか、あるいはより適切なプロンプトが表示されるかもしれませんが、これはうまく機能するので、私はそれをいじりません。 完全なデータとランキングについては、 または でご覧ください。 Google ドキュメント GitHub ラウンド 5: ユーザープロンプト 私がすでに疑い始めているのは、プロンプト内の単語を減らすことでより良い結果が得られるということです。 の最適なシステム プロンプトを見つけたので、どのユーザー プロンプトがそれに最も適しているかもテストしました。 Mistral 7b Instruct v0.2 プロンプト vs OG スコア 注記 Propmt0 次の文章を要約した、簡潔かつ包括的なメモを書きます。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。外部情報を追加せずに、このテキストの重要な知識に焦点を当てます。 43% 11 プロンプト1 次の文章を要約した、簡潔かつ包括的なメモを書きます。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。外部情報を追加せずに、このテキストの重要な知識に焦点を当てます。 46% 11 追加メモ プロンプト2 次の文章を要約した包括的なメモを書きます。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。 58% 15 プロンプト3 次のテキストの重要な部分を要約した簡潔な箇条書きメモを作成します。ネストされた箇条書きを使用し、見出しの用語と主要な概念を太字にし、読みやすさを確保するために空白を含めます。繰り返しを避けてください。 43% 10 プロンプト4 次の文章を要約した簡潔なメモを書きます。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。 41% 14 プロンプト5 次のテキストを要約した、包括的かつ簡潔なメモを作成します。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。 52% 14 追加メモ 完全なデータとランキングについては、 または でご覧ください。 Google ドキュメント GitHub おそらく、11b または 30b モデルをサポートできる強力なハードウェアがあれば、より説明的なプロンプトでより良い結果が得られるでしょう。 Mistral 7b Instruct v0.2 であっても、創造的な命令を試すことに前向きですが、今のところは既存のプロセスを改良することに満足しています。 プロンプト 2: 勝ちます! 次の文章を要約した包括的なメモを書きます。ネストされた箇条書きを使用します。見出し、用語、主要な概念を太字で示します。 この場合、包括的は「簡潔」よりもパフォーマンスが良く、さらには「包括的だが簡潔」よりも優れています。 ただし、これはユースケースによって異なることに注意してください。私が探しているのは、重要な知識を網羅した、非常に凝縮された読みやすいメモです。 基本的に、原作を読んでいなくても、特定の詳細すべてではないにしても、そこからどのような情報が伝えられているかはわかるはずです。原作を読んだとしても、後からはほとんど覚えていないでしょう。これらのメモは、主要なトピックへのクイックリファレンスです。 結果 これらのテストから得た知識を使用して、539 ページの私の最初の完全な本を 5 ~ 6 時間で要約しました。信じられない! 要約ごとに何週間も費やす代わりに、最初の 9 冊の本の要約をわずか 10 日で完了しました。 盗作 ここで、公開されたテキストごとに以下の の結果を確認できます。 CopyLeaks 特にこれが営利目的ではなく教育目的であることを考慮すると、この数字は許容範囲であると思います。 本 モデル 性格の違い 同一 マイナーな変更 言い換え 一致した合計 東洋の身体 西洋の心 シンシア 7Bv2 -75% 3.5% 1.1% 0.8% 5.4% 治癒力 迷走神経 ミストラル-7B-命令-v0.2; SynthIA-7B-v2.0 -81% 1.2% 0.8% 2.5% 4.5% アーユルヴェーダと心 ミストラル-7B-命令-v0.2; SynthIA-7B-v2.0 -77% 0.5% 0.3% 1.2% 2% トラウマ生存者の断片化された自己を癒す ミストラル-7B-命令-v0.2 -75% 2% 安全な基地 ミストラル-7B-命令-v0.2 -84% 0.3% 0.1% 0.3% 0.7% 体がスコアを記録する ミストラル-7B-命令-v0.2 -74% 0.1% 0.2% 0.3% 0.5% チャクラの完全な本 ミストラル-7B-命令-v0.2 -70% 0.3% 0.3% 0.4% 1.1% 愛着理論の50年 ミストラル-7B-命令-v0.2 -70% 1.1% 0.4% 2.1% 3.7% 成人の愛着障害 ミストラル-7B-命令-v0.2 -62% 1.1% 1.2% 0.7% 3.1% 心理学専攻の仲間 ミストラル-7B-命令-v0.2 -62% 1.3% 1.2% 0.4% 2.9% あなたの人生における心理学 ミストラル-7B-命令-v0.2 -74% 0.6% 0.4% 0.5% 1.6% 完成した本の要約 括弧内はオリジナルのページ数です。 要約ごとに何週間も費やす代わりに、最初の 9 冊の本の要約をわずか 10 日で完了しました。 アノディア ジュディス (436 ページ) イースタン ボディ ウエスタン マインド ・ローゼンバーグ (335 ページ) 迷走神経の治癒力 スタンリー ・フローリー博士 (181 ページ) アーユルヴェーダと心 デビッド ジャニナ・フィッシャー (367 ページ) トラウマ生存者の断片化した自己を癒す ジョン・ボウルビー (133 ページ) 安全な基地 ベッセル・ファン・デル・コルク (454 ページ) 身体はスコアを守る (37 ページ) ヨガとポリヴェーガル理論、『ポリヴェーガルの安全性』スティーブン・ポージスより シンシア・デイル (999 ページ) ルウェリンのチャクラ全書 セクション 1. チャクラの基礎と基本的な実践 セクション 2: チャクラの詳細。歴史的、科学的、異文化間の理解 (54 ページ) 愛着理論の 50 年: ドナルド・ウィニコット記念講演 (477 ページ) 成人の愛着障害 ダナ・S・ダン、ジェーン・S・ハロネン (308ページ) 心理学専攻の仲間 (5 ページ) ・ウィンク 救いの暴力の神話 ウォルター サラ・ギソンとマイケル・S・ガザニガ (1072 ページ) あなたの人生における心理学 ウォークスルー 私の手順を詳しく知りたい場合は、スクリプトと例が含まれている を確認してください。 GitHub のウォークスルー 結論 プロセスを改良し、自信を持ってプロンプト形式を使用できるようになったので、さらにテストを実施します。実際、私はすでにさらなるテストとランキングを実施しました (それらは次に公開します) が、もちろん、さらに多くのテストを再度実施し、学習を続けます。 AI を使用して実行するどのようなタスクでも最高の結果を得たい場合は、自分で実験を行って何が最も効果的かを確認する必要があると私は今でも信じています。人気モデルのランキングだけに頼るのではなく、ご自身の調査の参考にしてください。 追加リソース ( ) 最も人気のあるオープンソース LLM (大規模言語モデル) の長期コンテキスト想起機能についてプレッシャー テストを実施しました u/ramprasad27 パート 2 / - 💢 開いている LLM のコンテキスト ウィンドウのプレッシャー テスト LeonEricsson llmcontext チャットボックスアリーナのリーダーボード u/ウルフラムレイブンウルフ 🐺🐦⬛ LLM 比較/テスト: 10 の新しいモデル (最高の 7B) でランキングが更新されました! を使用した Mixtral 8x7B 命令 u/WolframRavenwolf 🐺🐦⬛ LLM プロンプト形式の比較/テスト: 17 の異なる命令テンプレート Vectara 幻覚リーダーボード にも登場します。 ここ