オープンソースの代替モデルであるFalconモデルが紹介され、OpenAIのDaVinci 3モデルとのテキスト要約タスクで比較されています。デモンストレーションでは、この実験でOpenAIのモデルの方が優れた性能を示しています。ビデオでは、特定のユースケースに基づいてモデルを理解し比較することの重要性が強調されています。
公開日:2023年6月9日
※動画を再生してから読むのがオススメです。
さて、大規模な言語モデルの扱い方を真剣に学ぶのであれば、これは必須のスキルなのです。
さまざまなモデルを扱うことができるようにならなければなりません。
もしあなたが大規模な言語モデルを使ってアプリケーションを作ることに興味があるなら、現在のゴールデンスタンダードは、OpenAIのモデルを使い、それをLangChainのようなフレームワークと組み合わせて、すべてをフックアップしてアプリケーションを作ることだと知っているはずです。
これは、私のYouTubeチャンネルで取り上げているものです。
たくさんの事例があります。
しかし、OpenAIのモデルだけを使うには、いくつかの欠点があります。
まず、APIにお金がかかることです。
これが1つ目です。
そしてもうひとつは、大規模な言語モデルに送信するすべてのデータをOpenAIと共有したくない場合があることです。
機密性の高い個人情報や、秘密にしておきたい企業情報などです。
そのため、これにどう対抗すればいいのか、どうすればいいのか、という質問もたくさん受けています。
そこで、このビデオでは、オープンソースの大規模言語モデルとも連携できる方法を紹介します。
特に、Falconモデルには、最近多くの注目とハイプが集まっています。なぜなら、現在存在する他のオープンソースモデルすべてを上回るパフォーマンスを発揮しているからです。これはHugging Faceのリーダーボードを見ると明らかです。
そこで、皆さんのために例を用意しましたので、一緒に実行しましょう。
説明書もありますし、アクセスできるコードもありますが、これから行うのはファルコンのテスト、特に70億パラメータのテストです。
400億のパラメータを持つ完全に訓練されたものではないのですが、これは質問するのに時間がかかり、ロードに本当に長い時間がかかるからです。
70億のパラメータ、特にInstructバージョンは、私が提供するコードを使って、とてもうまく動作させることができることがわかりました。
そこで、OpenAIのテキスト・ダヴィンチ3モデルと比較し、タスクの要約タスクでテストする実験を行う予定です。
これはかなり面白いことになりそうですね。
Hugging Faceのオープンソースの大規模言語モデルの使い方を学び、それをどのように設定し、OpenAIのモデルと比較するのかを学びます。
そして、このビデオのボーナスとして、LangChainとそこに含まれる要約メソッドを使って、大きなテキストを要約する方法も学びます。
というわけで、AIの時代が進むと他のオープンソースモデルが出てくるので、これは非常に重要なビデオになると思います。
OpenAIが現在そのモデルであるところとオープンソースモデルとの間のギャップは、おそらくますます小さくなり、多くの人がこれが事実だと信じていますが、オープンソースモデルはOpenAIが現在提供しているものよりも優れているでしょう。
ですから、もしあなたが大規模な言語モデルの扱い方を真剣に学びたいと考えているならば、これは必須のスキルだと言えるでしょう。
様々なモデル、有料モデル、様々なAPI、そしてオープンソースのモデルを扱う方法を知ることです。
例えば、Hugging Faceで利用可能なオープンソースのモデルです。そして、特定のユースケースに最も適したモデルを選ぶために、すべてのモデルとその結果を比較・検証する簡単な実験を設定します。
このビデオでは、そのようなことを行います。
では、さっそくやってみましょう。
だから、この手順に従うためには、まずこのリポジトリへのアクセスが必要です(リンクは説明欄にあります)。そして、ここにあるモデルのディレクトリから作業を開始し、例となるもの、そして使用するPythonファイルを見ていきます。
さて、この作業を進めるには、PythonのインストールとLangChainに関する基本的な理解が必要です。
もしまだ持っていないのであれば、LangChainを使った作業に関する私の以前のビデオを見ることをお勧めします。
このビデオでセットアップができ、すべての動作が説明されます。
しかし、もしあなたがすでにこのことを理解しているのであれば、私たちはまっすぐにこのことに飛び込むことができます。
まず、このリポジトリをクローンしてください。
そして、より具体的には、お気に入りのIDE(つまり、あなたのIDE、私の場合はVSCodeです)の中にあるmodelsフォルダに入ります。ここでファイルを開き、falconmodel.Pi.に入っています。
ここでPythonの対話型セッションを読み込むと(これについてもたくさんの質問をいただいています、VSCodeで設定するためのリンクは説明の中にあります)、基本的なインポートを行うことができます。
そして、すべてを設定するために、Hugging Faceのオープンソースモデルを実行したい場合に必要なものは、Hugging Face APIトークンだけです。
huggingface.coに行き、ログインしてアカウントを作成し(まだ持っていない場合は無料です)、設定からアクセストークンを開くと、ここで新しいAPIキーを作成することができます。
だから、ご覧の通り、私は既にLangChain用のものを持っていて、それは読み取り可能です。しかし、新しいものを作成することもできます。それが何のためのものかを述べ、そして読み取りまたは書き込み(読み取りで十分)を選択し、トークンを生成します。それを表示し、それをコピーします。
そして、次のステップとして、環境ファイルに設定する必要があります。
だから、GitHubのリポジトリ内にはすでに例があります(空のものですが)、あなたができることは、この名前をここに見られるように.endに変更したり、Hugging Face API AIのトークンをあなたが生成したトークンに変更するだけです、それからスタートできます。
これで基本的にできることは、.endライブラリを使って環境変数のキーをこちらの変数にロードすることで、Hugging Faceと通信することができるようになります。
このプロジェクトにはrequirements.txtがあり、依存関係やPIPライブラリがすべてインストールされていることを確認することができますが、.end、LangChain、これだけです。
さて、以上の説明で、Hugging Faceのモデルを使い始めることができるようになりました。
まず、load.f、anyfine.endで、先ほど設定した環境変数を読み込み、トークンにアクセスできることを確認します。
そして、実際に面白い部分に進みます。
LangChainのHugging Faceハブを使用します。
このハブをインポートして、このモデルとのインタラクションをお見せします。
まず、リポジトリIDから始めます。
Hugging Faceに戻ると、今見ている各モデルには基本的にリポジトリがあり、それをコピーして、それを使ってモデルと対話できることがわかります。
さて、私が言ったように、400億のものは試してみましたが、ロードには永遠に時間がかかります。
APIでできるのか、それとも重いサーバーに設置する必要があるのかは分かりませんが。
でも、70億の方は、さっき言ったように、Instructの方はすごくよく動くんです。
だから、それをコピーすることになります。
すでにあるものですが、基本的にはここに入れても大丈夫です。
でも、それをハギング・フェイスやリーダーボードにある他のモデルと入れ替えることもできるので、そこは本当に面白いところです。
そして、LangChainオブジェクトで大規模な言語モデルを作成し、通常行うように、モデル・パラメータを与えます。
これにより、基本的にあなたのリポジトリのIDを指定しました。そして今のところ、かなり低い温度を設定し、最大新トークン数を500に設定しました。これは、モデルから得られるレスポンスが最大で500トークンを追加することを意味します。
それでは、これを実行し、インタラクティブ・セッション内に保存しましょう。
LangChainのドキュメントにあるHugging Face HOPのドキュメントを参照すると、この仕組みが少し理解できると思いますが、基本的には今説明した例と同じです。
しかし、これはオリジナルのドキュメントで、この例ではGoogleのモデルを使っていることがわかります。
次のステップは、プロンプトテンプレートと大規模な言語モデルチェーンを作成することで、LangChainのサンプルに従います。
テンプレートは、「質問です」、そして実際のプロンプトを後で記入し、「この質問に答えてください」と言います。
基本的には、ステップバイステップで考えていきましょう。
そこで、プロンプトのテンプレートを作成し、次に大きな言語モデルチェーンを作成します。
もし、これらの概念が初めてで理解できない場合は、以前のLangChainを使った作業の基本についてのビデオを参照してください。
すでに理解していると仮定して、このチェーンを実行することにします。
まずこのコードを素早く完成させるか保存して、それから質問をさせてください。
ではまず、とても興味深く、とても難しい質問から始めます: サンドイッチを作るにはどうしたらいいのでしょうか?
そして、ファルコン70億のモデルはこれにどう対応するのか、ということを確認することになります。
という質問です。
基本的には、まず回答を得て、かなり早い段階で、それをラッピングします。
これは、印刷するときにきれいに仕上げるためのもので、これで最初の回答ができたことになります。
では、材料を集める必要があります。
パン、肉、チーズ、調味料、トッピングが必要です。
材料が揃ったら、パンを一切れ取ってください。
なるほど、サンドイッチの作り方をしっかり教えてくれているようですね。
これはかなりクールでしょう?
クレジットカードも必要なく、OpenAIとデータを共有することもない、完全に無料のモデルなのですから。
あまり面白い質問ではありませんが、私たちはまだ始めたばかりです。
たった数行のコードですでに稼働しているわけですから、私にとっては、これでもすごいことなんです。
オープンソースのモデルが利用可能になり、それがうまく機能すれば、数行のコードでアクセスでき、基本的には完全に無料で、それを使ってクールなアプリケーションを作ることができるのです。
このようなモデルが時間とともにどのように発展し、いつオープンソースのモデルがOpenAIのモデルよりも優れたクロスポイントになるのか、私はとても楽しみにしています。
しかし、ここでさらに一歩踏み込んで、ちょっとした実験をセットアップしてみましょう。
私のYouTubeの動画から、特に最近Flowwiseで行ったこの動画のトランスクリプトを1つダウンロードします。
LangChainのYouTubeローダーを使って、ビデオのURLを入力し、トランスクリプトを取得します。
この仕組みは、私の以前のビデオでも紹介しました。
しかし、トランスクリプトを基本的にロードすることができます。そしてここでは、そのビデオの全トランスクリプトを見ることができます。これはYouTubeによって自動的に生成されます。
つまり、すべての動画について、これは一般に公開されている情報なのです。
URLを入力すれば、YouTubeのアルゴリズムに基づいたトランスクリプションを得ることができます。
そして、これを異なる文書に分割することになります。なぜなら、大規模な言語モデルとこれらのAPIを使用するとき、あなたがこれらのAPIに送信できるトークンの量に制限があることをご存知かもしれません。
そこで、テキストスプリッターを設定します。基本的には、この文書全体、つまりトランスクリプト全体をさまざまな文書に分割して、ここで見てみましょう。
全部で6つの文書がありますね、そうですね、6つの分割が基本です。
つまり、この原稿を全部、切り刻んだわけです。
そして、次の部分が非常に興味深いのですが、これは要約です。
APIに送信できるトークンの量に制限があるため、大規模な言語モデルで苦労している点です。
LangChainには、load_summarize_chainという小さな組み込みメソッドがあり、これを使えば、要約を反復的に行うことができます。
つまり、まずトランスクリプト全体を分割し、分割したそれぞれのトランスクリプトについて、要約を作成します。
そして、それをまた1つの山に放り込み、最終的な要約を作成するために、基本的にそれを繰り返していくのです。
これで、ファルコン70億のパラメータモデルをテストし、OpenAIと比較し、そのパフォーマンスを確認することができます。
さて、ドキュメントを分割しましたので、次はこのチェーンを読み込むことになります。
プロンプト・テンプレートとコンバイン・テンプレートを印刷すると、LangChainがどのようにこれを処理しているかがわかりますよ。
これは基本的にプロンプトで、例えば「次の内容を簡潔にまとめてください」と書いて、テキストを入れると、簡潔にまとめたものが表示されます。
そして、デフォルトでは、ご覧のように、このテンプレートは、最初に最初の要約を作成するときと、すべてを組み合わせて深さのある要約を作成するときとで、基本的に同じプロンプト・テンプレートが使用されます。
しかし、パラメータを使って変更することができます。コメント欄に書いてありますが、ここにマッププロンプトを追加して、それを変更するだけです。
つまり、マッププロンプトがイコールで、ここにマッププロンプトを指定し、組み合わせたプロンプトを変更することも可能です。
つまり、このような方法で行います。
しかし今のところ、私たちはデフォルトのままにしておきます。そしてドキュメントを実行し、両方をtrueに設定します。そうすれば、何が進行中かを見ることができます。
だから、ここではすべてのチャンクを見ることができます。基本的には、まず以下の要約を簡潔に書きます。そしてこれが私が基本的に始める最初の紹介文、そしてこれがビデオの後半部分で、という具体的なことを続けます。
そして、基本的にそのすべてを組み合わせます。最後に、出力の概要を見ると、ここにテキストの文字列があり、それを印刷すると1行にまとまります。
このような流れで、大規模な言語モデルアプリを数分で構築できるビジュアルUIビルダーが完成しました。
これは良いものですね、基本的にはこのような感じでビデオを始めています。
チュートリアルでは、無料のAPIキーの設定とFlowwiseのリポジトリのクローンについて説明しています。
私たちが使っているのは、...ではなく、...なので、これも正しいと思っています。
というのも、私たちは無料のPinecone APIキーを使っていますが、OpenAI APIキーも使っているからです。
Flowwiseのリポジトリをクローンして、Lang Chainの実験でプロジェクトをクローンしていますね。
プロジェクトはターミナルで開いています、これも正しいです。
チュートリアルの最後には、Chip GPTを会社のデータと統合する方法について、ステップバイステップで説明しています。
これは、私が現在フリーランスの仕事で取り組んでいるプロジェクトの一種を説明する例であり、完全に正しいわけではありませんが、まあ、少なくともスタートはかなり正確であるようです。
これは完全に自由なモデルであり、また、この方法によるテキストの要約はかなり困難です。なぜなら、基本的にすべての文脈を分割してしまうからです。
なぜなら、基本的にすべての文脈を分割しているからです。また、カットや分割がトーキングポイントのちょうど真ん中である場合、他のチャンクの終わりと始まりは本当に意味を成しません。
だから、それを別々に要約すると、混乱する可能性があります。
ですから、このモデルを比較するのは、かなり面白い作業です。
では、OpenAIを使うとどうなるかを見てみましょう。
ここには別のテキストスプリッターがありますが、私たちは同じものを使っているので、それはちょっと冗長です。しかし、今回は「ねえ、新しい大規模言語モデルオブジェクト、基本的に新しいLLMを作成しますが、今回はOpenAIを使用します」と言います。
.envファイルにOpenAIのAPIキーを入れる必要があるので、セットアップには無料で1つ必要ですが、クエリを実行すると課金されます。
モデルをセットアップし、別のチェーンを作成し、ここにOpenAI LLMを接続します。
他はすべて同じように動作します。これがラングチェーンを使う良いところです。
モデルを指定するだけで、あとはそのオブジェクトが出来上がるという形で統一されているのです。
コードを完全にコピーすることができるんです。
これは本当にすごいことです。
では、再び出力サマリーを作成し、実行すると、基本的に同じものが表示されます。
これでモデルはアクションに移行し、OpenAI APIに繰り返し問い合わせ、すべてのチャンクのサマリーを取得します。
ここで、テキストを再びラップして、印刷することができます。
さて、ここで何があるのでしょうか?
この記事では、Flowwise AIと、大規模な言語モデルアプリを素早く構築できるオープンソースのビジュアルUIビルダーについて説明しています。
最初の文章は同じようなものですが、これは記事と書いてありますが、Flowwiseについて述べており、大規模な言語モデルアプリを素早く作成するためのオープンソースのビジュアルUIビルダーであることを認識しているようです。
だから、それらは同じであり、そして、記事のようなものを参照し、それがビデオである。
Flowwiseをデータにつなげて、会話型AIを構築する方法を説明しています。
このビデオでやっていることは本当にその通りなので、これはもうかなり良いと言っていいでしょう。
また、大規模な言語モデルを搭載したアプリケーションを開発するための包括的なフレームワークであるLang Chainの使い方も解説しています。
つまり、これはLang Chainを使ったものなのです。
そうそう、ある意味、言語について、そしてFlowwise AIを使ってAIプロジェクトを素早くプロトタイプ化する方法について話しているんだ。
最後に、Flowwise AIを使って、フリーランサーとしてクライアントにAIサービスを販売する方法が紹介されています。
このビデオのメインメッセージは、Flowwiseを使ってAIプロジェクトを素早くプロトタイプ化する方法でしたから。
そして、このビデオの最後には、「私はフリーランサーとして働いています。
このビデオは、デモやプロトタイプを素早く作成し、そこから進めていくためのツールとして使用することができます。
全体としては、やはりOpenAIのモデルが明らかに勝者です。
しかし、ワークフローと得られるものを比較すれば、近いものがあると思います。
では、見てみましょう。
温度はかなり低めに設定していますが、もう1回だけ走らせて見ましょう。
これがどの程度決定論的なのかも見てみましょう。
ということで、もう一度ファルコンモデルをロードしてみます。
もう一回サマリーを作ってみます。
それを調べてみてください。
しかし本当に速いですね、なかなか興味深いです。
今は確実にOpenAIより速いです。
さて、どうでしょうか?
同じような答えがあるでしょうか?
FlowwiseのビジュアルUIビルダーは、そうですね、同じような感じです。
0.1というかなり低い温度に設定したので、それは良いことです。
ですから、ここでは基本的にクリエイティブなスタイルは期待せず、ただ結果を出してくれることを期待しています。
基本的に、その意味では良いことだと思います。
しかし、少なくともこの小さな実験では、今のところOpenAIのモデルの能力には遠く及ばないというのが私の意見です。
でも、これを使ってもっと実験をすることは間違いないでしょう。
また、これは70億パラメータのモデルであり、大騒ぎになっているのは140億パラメータのモデルであることも覚えておいてください。
もし、このモデルをローカルマシンやサーバーで効果的に実行する方法をご存知でしたら、ぜひコメントで教えてください!このモデルで実験してみたいのです。
さて、これでHugging Faceのオープンソースモデルの扱い方がわかったと思いますが、大規模言語モデルの扱い方を真剣に学びたいのであれば、非常に価値のあるスキルです。
私たちは、Falcon 70億パラメータ・モデルを見てきました。
簡単な実験を行い、テキストの要約を作成しました。全体的に、さまざまなモデルをどのように扱うべきか、どのように比較できるかを理解し、良いアイデアを得るためのものです。
どのようなモデルが最適かは、実際に使用するケースに応じて判断してください。
予算はあるのか?
OpenAIとデータを共有できるか?
モデルはどれくらいのスピードが必要なのか?
これらはすべて、大規模な言語モデルを使ったプロジェクトに取り組む場合に、自問自答しなければならない質問です。
さて、今回の動画はここまでです。
このビデオでは、大規模言語モデルとAIに関する最新情報をお届けします。
そして、もしあなたがこれらのスキルを使って、フリーランサーとして潜在的なクライアントにサービスとして売ることに興味があるけれど、何から始めたらいいかわからないなら、説明文の最初のリンクにあるData Freelancerをチェックしてみてください。
それでは、また次回にお会いしましょう。
ありがとうございました。