【Llamaindex】ChatGPTを思い通りに改造できる!?月間20万ダウンロードツールの使い方から実践まで

Llamaindex ChatGPT 解説

皆さん、LlamaIndexというAIツールをご存知ですか?

LlamaIndexは月間20万ダウンロードを超える大人気ツールです。

自分が持っているオリジナルデータでChatGPTをカスタマイズできるツール、ということで注目を集めています。

LlamaIndexのフレームワークは、ChatGPTをテキストやPDFだけではなくNotionやSlack などのアプリやPostgresやMongoDBなどのデータベースにも接続ができるようにするツールなのです。

これって、すごくないですか?

まるで、映画『アイアンマン』で、トニー・スタークがジャービスというAIを使用して膨大な量のデータにアクセスし、問題を解決するようですよね。

今回は、そんなLlamaIndexの概要と実際に使ってみた感想を紹介していきます。
ぜひ最後までご覧いただき、お手元のPCでLlamaIndexを使ってみてください!

目次

Llamaindexの概要

LlamaIndexは、外部データとLLMを連携させるライブラリです。

テキストファイルやPDFなどの外部データを取り込み、インデックスファイルを生成します。このインデックスファイルを利用して、外部データのキーワードを含む問い合わせに対して解答を得ることができます。

これによって、ChatGPTのようなLLMを独自のデータで補完することができるのです。

開発会社LlamaIndex
特徴外部データとLLMを連携させて、カスタムQ&Aシステムを構築することができる。
機能データ統合:様々な外部データ(テキスト、PDF、アプリ、データベース)を大規模言語モデル(LLM)に組み込む。インデックス作成:外部データからインデックスを自動的に作成する。インデックスにはデータのキーワードや構造に関するデータが含まれる。質問応答:外部データを含むプロンプトをLLMに送信し解答を取得する。
料金プラン無料
サイトLlamaindex

自分のPCで安く簡単にLLMを利用したい方は以下の記事をご覧ください。

LlamaIndexとLangChainの違いについて

LlamaIndexとLangChainの違いについて、まとめてみました。

まず、そもそもLlamaIndexとLangChainは全くの別物です。

LlamaIndexはLLMに様々な外部データを追加することができるデータフレームワークで、いわゆるRetrieval-Augmented Generation(RAG)と呼ばれるものになります。

LlamaIndexを使えばチャットボット、QAボット、構造化データの抽出、半自律エージェントの作成などが可能です。

LangChainもLlamaIndexと同じようにLLMを拡張するためのライブラリですが、LlamaIndexもできることがよりも多いです。

例えば、外部データを取り込むRetrievalやAgentなどはLangChainにも搭載されています。

その他にも様々なモデルを組み合わせる事ができるModel I/Oや、複数のプロンプトを組み合わせて出力することができるChains、次にどのようなアクションを取るかを決定・実行・観測し、目的を完了するまで繰り返すことができるAgents、ChainsやAgentsの状態を保持することができるMemoryなどがあります。

以下にLlamaindexとLangChainの違いをまとめました。

特徴 / 機能LlamaIndexLangChain
目的LLMに様々なデータを取り込むことができるデータフレームワーク言語モデルを利用したアプリケーション開発のためのフレームワーク
主な使用法データを取り込み、構造化しアクセス可能にする言語モデルとのインターフェースを構築、管理する
機能データコネクタ、インデックス、エンジンなどチェーン、LCEL、メモリシステムなど
アプリケーションデータ集約や解析アプリケーション会話型アプリケーション、自然言語処理タスク
技術的焦点データの取り込みとアクセス言語モデルの柔軟な利用と統合

なお、Llamaindexを活用した開発について知りたい方はこちらをご覧ください。
Llamaindexを使った開発とは?流れ、費用相場、開発事例を紹介

Llamaindexの料金体系

LlamaIndexはOSSであり、誰でも無料で利用できます。

しかし、LlamaIndexを利用するには、OpenAIの APIが必要です。OpenAIのAPIを使用する際は、入力のプロンプトと出力のアウトプットテキストに応じた料金が課金されます。

なお、課金対象は入力プロンプトのトークンだけでなく、文章生成AIがAPIで返却する応答文のトークンも含まれます。英語の場合、1単語が1トークンです。カンマ(,)やピリオド(.)、クエスチョンマーク(?)も1トークンとしてカウントされます。

日本語の場合、トークンの計算が複雑で、おおよそ1文字あたり1.5トークン程度に相当します。ChatGPTのAPIの料金は1000トークン当たり0.0020ドルです。

Llamaindexの使い方

ここからは、Llamaindexの使い方を解説します。

なお、LlamaindexはOSSプロジェクトなので、ソースコードは以下のGitubページから取得できます。

GitHub
GitHub - run-llama/llama_index: LlamaIndex is a data framework for your LLM applications LlamaIndex is a data framework for your LLM applications - run-llama/llama_index

環境設定

まずはインストールです。Llamaindexはpipコマンドでインストールできます。

pip install llama-index

学習データを準備

次に、外部データを用意します。今回使用するデータは内閣府の令和5年度年次経済財政報告です。

PDFファイルをそのまま使っても良いのですが、このファイルは大容量なので、そのままだと処理に時間がかかってしまいます。そこで、1ページから12ページまでのテキストをコピーしてテキストファイルとして保存します。

今回は下記の場所に保存しました。

C:\gpt_index\examples\JapaneseEconomy\data\1shou.txt

サンプルプログラムを作成

データの準備ができたら、いよいよLlamaindexを組み込んだプログラムを作ります。

以下の場所にサンプルプログラム「Test.py」を新規作成します。

C:\gpt_index\examples\JapaneseEconomy\Test.py

「Test.py」のコードの中身は以下のとおりです。

この際、Opne AIのAPIキーが必要になります。OpenAI platformのページから取得が可能です。

試しに、「今後、日本の景気は良くなりますか?」という質問を投げかけてみました。

# Open AIのAPIキーを設定

import os

os.environ["OPENAI_API_KEY"] = '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'

# LlamaIndexのインポート

from llama_index import SimpleDirectoryReader

from llama_index import ListIndex

# ---------------------------------------------------------

# 手順1(インデックスを用意)

# ---------------------------------------------------------

# dataフォルダ内の学習データを使い、インデックスを生成する

documents = SimpleDirectoryReader(input_dir="./data").load_data()

list_index = ListIndex.from_documents(documents)

# ---------------------------------------------------------

# 手順2(インデックスを使って質問)

# ---------------------------------------------------------

# 質問を実行

query_engine = list_index.as_query_engine()

response = query_engine.query("今後、日本の景気は良くなりますか?")

for i in response.response.split("。"):

    print(i + "。")

サンプルプログラムの実行

プログラムができたら、さっそく実行してみましょう。

コマンドプロンプトを起動し、サンプルプログラムの場所に移動します。

cd C:\gpt_index\examples\JapaneseEconomy

※これを忘れた場合、サンプルプログラム内の相対パスが正しく参照されないので注意してください。

カレントディレクトリを確認したら、下記のコマンドでサンプルプログラムを実行します。

python Test.py

実行結果

プログラム実行後、下記の結果が返ってきました。

学習データの「内需」や「個人消費」などのキーワードが回答に含まれているので、指定したデータの内容を参照していることが見てとれます。

ChatGPTが持っているデータは基本的に2021年9月までのものですが、正しく回答が返ってきていることから、2021年9月以降のデータが出力できたことになります。

ChatGPT超えのLLMについて知りたい方は以下の記事をご覧ください。

なお、Llamaindexと同様に生成AIの機能を強化するツールを知りたい方はこちらをご覧ください。
【Langchain】何ができるのかや日本語での使い方、GPT-4との連携方法を解説

LlamaindexとChatGPTを比べてみた

先ほど述べたように、ChatGPTの学習データは、無料版(GPT-3.5)が2021年9月まで、有料版(GPT-4.0)が2022年8月までです。したがって、それ以降の学習データをソースとして使用するにはLlamaindexのようなツールが必要になります。

試しにChatGPT(GPT-3.5)に直接同じ質問を投げてみましょう。

以下の回答が返ってきました。

ChatGPTは質問に答えられていません。

この結果と比較すると、Llamaindexの有用性は明らかでしょう。

質問ChatGPTのみLlamaIndex
今後、日本の景気は良くなりますか?答えられない答えられる

Llamaindexを使用した結果をみると、「内需」「個人消費」「設備投資」「外需」といった質問に関係しているキーワードを学習データから検索して、リアルタイムの情報を、自然な日本語で生成しています。

用意した学習データからちゃんと情報を取得できていることがよくわかります。

既に超高性能なGPT4には無数のプラグインが存在します。もし詳細が気になった方はこちらの記事をご覧ください。

Llamaindexがマルチモーダルに対応したので試してみた

今までLlamaindexはテキストがベースになっていましたが、2023年11月11日にマルチモーダルに対応した試験的なチャットボットが発表されました。

GPT-4-visionを実験的にサポートしており、アップロードした画像に対して質問をすれば答えてくれるとのことです!

誰でもすぐに使えるようなので早速使ってみましょう!

Chat LlamaIndexを使ってマルチモーダルを試す

まず、下記URLにアクセスします。
https://chat.llamaindex.ai/

ChatLlamaIndexのページの左メニューにて「GPT-4 Vision Preview」を選択します。

その後、下のボックスに画像とテキストを入力して送信するだけです!

今回用意した画像はChatGPTに「満月の夜、海辺で散歩している画像を作って」とお願いしました。

プロンプトは「What’s this a picture of?(これは何の写真ですか?)」と入力しました。

回答は下記の通りです。

This is an artistic or conceptual image showing a person standing on a beach at night with an oversized, luminous full moon hovering very close to the horizon, casting a reflection on the water. The scene is serene and has a surreal or dreamlike quality due to the exaggerated size of the moon and the calmness of the water. The image is likely digitally manipulated or created to achieve this fantastical effect, as the moon is never this large in appearance from Earth's perspective.

ChatGPTに訳してもらいました。

これは、夜のビーチに立つ人物と、地平線に非常に近い位置で浮かぶ大きく光る満月を描いた芸術的または概念的な画像です。満月が水面に反射しています。シーンは静かで、月の誇張された大きさと水の静けさにより、非現実的または夢のような質感があります。このファンタジックな効果を得るために、画像はデジタルで操作されたり作成されたりした可能性が高いです。地球から見たときに、月がこれほど大きく見えることはありません。

すごい・・・!

シーンの説明が詳しいのにも驚きましたが、後半部分の「画像はデジタルで操作されたり作成されたりした可能性が高いです」という箇所を見て鳥肌がたちました。

まさかそこまで見抜かれていたとは・・・。

GPT-4-visionは実験的な運用ということでしたが、そんなことは微塵も感じさせない精度でした。

CogVLMと比較してみた

同じ画像、プロンプトをCogVLMに入力してみました!

結果は下記のとおりです。

This is a picture of a lone figure walking on a beach with a massive, luminous moon in the background. The moon appears to be very close to the horizon, casting a bright light over the scene.

これは、背景に巨大で輝く月があるビーチを歩く一人の人物の写真です。月は地平線に非常に近く見え、シーン全体に明るい光を投げかけています。

画像の説明としては100点満点の回答ですね。

ただ、Llamaindexの方がプラスアルファのテキストがあり、より精度が高い回答を生成してくれました。

サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

まとめ

Llamaindex の概要、使ってみた感想、そして、推しポイントの検証結果をまとめます。

Llamaindex の概要

LlamaIndexは、外部データとChatGPTのようなLLMを連携させるライブラリです。テキストファイルやPDFなどの外部データを読み込んで質問に答えるシステムを構築できます。

Llamaindexを実際に使ってみた

内閣府発表の「年次経済財政報告」から日本の景気を予測してみました。

ちゃんと学習データを参照して答えを返してくれました。Llamaindex を使って経済アナリストのようなQAボットができてしまうかもしれません。

推しポイントの検証結果

ChatGPTに直接同じ質問をした場合の結果と比較してみました。

質問ChatGPTのみLlamaIndex
今後、日本の景気は良くなりますか?答えられない答えられる

Llamaindexの推しポイントは本当でした!

LlamaIndexを使うと、オリジナルの知識を持ったQAボットを作ることができますので、ぜひどんどん活用してみてください。

あなただけのジャービスが出来上がる日が近いのかもしれませんね!

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • Hiromi Sai

    ChatGPTメディア運営 / テクニカルライター リベラルアーツ専攻。大学休学中は、Webマーケティング会社のマネージャーとしてライター、ディレクター100名のマネジメントをする。南米のチリとタイでの長期居住歴を持つ。

  • URLをコピーしました!
  • URLをコピーしました!
目次