Llama-3-ELYZA-JP-8BとDifyでRAGの性能評価をする

# はじめに

以前ここ [低スペックなマシンでLlama-3-ELYZA-JP-8BをDifyで動かす](https://qiita.com/bari8/items/87910c08de4f96d37f1b) で作ったローカルマシンでのRAG環境で、RAGによってどれくらい回答性能が向上するか検証してみました。

# 概要

以下のような事をしました

[1.参考にするpdfドキュメントを取得](#1-参考にするpdfドキュメントを取得)  
[2.pdfからChatGPT-4oで問題と回答を作成させる](#2-pdfからchatgpt-4oで問題と回答を作成させる)
[3.作った問題をRAGなしのLlama-3-ELYZA-JP-8Bで答えさせる](#3-作った問題をragなしのllama-3-elyza-jp-8bで答えさせる)
[4.取得pdfをナレッジとして追加してRAGとしてもう一度答えさせる](#4-取得pdfをナレッジとして追加してragとしてもう一度答えさせる)  

順に手順を説明していきます。

# 1. 参考にするpdfドキュメントを取得

今回は経産省の[バイオエコノミー戦略の本文](https://www8.cao.go.jp/cstp/bio/bio_economy.pdf)のpdfドキュメントを利用。選んだ理由は単に最近ライフサイエンスに興味があるからです。ドキュメント規模としては全58ページあります。


# 2. pdfからChatGPT-4oで問題と回答を作成させる  

ChatGPT-4oに上記pdfをアップロードし、そこから選択問題を10問作るように依頼しました。生成させた問題は以下の10問。

```
問題1:
バイオものづくりの主な期待される効果は何ですか？
化石資源からの脱却
労働力の削減
都市化の促進
教育の向上
答: 1. 化石資源からの脱却


問題2:
バイオエコノミーの市場拡大に向けて日本が有する強みの一つは何ですか？
大量の石油資源
多様な気候条件と豊富な生物資源
高い教育水準
世界最大の人口
答: 2. 多様な気候条件と豊富な生物資源


問題3:
バイオエコノミーが解決を目指す主な社会課題の一つは何ですか？
都市交通の改善
気候変動
教育の普及
芸術の振興
答: 2. 気候変動


問題4:
バイオエコノミー戦略で目指す2030年の市場規模目標は何兆円ですか？
50兆円
100兆円
200兆円
300兆円
答: 2. 100兆円


問題5:
米国のバイオエコノミー戦略に関する大統領令はいつ署名されましたか？
2019年9月
2020年12月
2022年9月
2023年3月
答: 3. 2022年9月


問題6:
日本のバイオエコノミー戦略はどの年に策定されましたか？
2015年
2017年
2019年
2021年
答: 3. 2019年


問題7:
バイオエコノミー市場拡大のために日本が注力すべき領域の一つは何ですか？
石油化学産業
バイオプラスチック
鉱業
観光業
答: 2. バイオプラスチック


問題8:
バイオエコノミーが特に寄与する分野の一つは何ですか？
宇宙開発
健康医療情報のデジタル化
観光の促進
農業機械の開発
答: 2. 健康医療情報のデジタル化


問題9:
バイオエコノミー戦略において、バイオ医薬品が目指す主な効果は何ですか？
費用削減
輸出の増加
健康的な生活の促進
教育の充実
答: 3. 健康的な生活の促進


問題10:
バイオエコノミーの戦略推進において重要なネットワーク機関の役割は何ですか？
資金の調達
法律の制定
連携・調整
教育プログラムの実施
答: 3. 連携・調整
```

# 3. 作った問題をRAGなしのLlama-3-ELYZA-JP-8Bで答えさせる


問題を一個ずつGUIで入力するのは面倒なので、API経由で以下のようなスクリプトで回答させていきます。

```python
import requests
import json

# URLとAPIキーの設定
url = "http://VMのIPアドレス/v1/chat-messages"
API_KEY = "APIキー"

headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json',
}

# 問題と選択肢のリスト
questions = [
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオものづくりの主な期待される効果は何ですか？",
        "options": ["1. 化石資源からの脱却", "2. 労働力の削減", "3. 都市化の促進", "4. 教育の向上"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミーの市場拡大に向けて日本が有する強みの一つは何ですか？",
        "options": ["1. 大量の石油資源", "2. 多様な気候条件と豊富な生物資源", "3. 高い教育水準", "4. 世界最大の人口"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミーが解決を目指す主な社会課題の一つは何ですか？",
        "options": ["1. 都市交通の改善", "2. 気候変動", "3. 教育の普及", "4. 芸術の振興"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミー戦略で目指す2030年の市場規模目標は何兆円ですか？",
        "options": ["1. 50兆円", "2. 100兆円", "3. 200兆円", "4. 300兆円"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。米国のバイオエコノミー戦略に関する大統領令はいつ署名されましたか？",
        "options": ["1. 2019年9月", "2. 2020年12月", "3. 2022年9月", "4. 2023年3月"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。日本のバイオエコノミー戦略はどの年に策定されましたか？",
        "options": ["1. 2015年", "2. 2017年", "3. 2019年", "4. 2021年"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミー市場拡大のために日本が注力すべき領域の一つは何ですか？",
        "options": ["1. 石油化学産業", "2. バイオプラスチック", "3. 鉱業", "4. 観光業"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミーが特に寄与する分野の一つは何ですか？",
        "options": ["1. 宇宙開発", "2. 健康医療情報のデジタル化", "3. 観光の促進", "4. 農業機械の開発"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミー戦略において、バイオ医薬品が目指す主な効果は何ですか？",
        "options": ["1. 費用削減", "2. 輸出の増加", "3. 健康的な生活の促進", "4. 教育の充実"]
    },
    {
        "question": "次の問題に回答の番号だけ簡潔に答えなさい。バイオエコノミーの戦略推進において重要なネットワーク機関の役割は何ですか？",
        "options": ["1. 資金の調達", "2. 法律の制定", "3. 連携・調整", "4. 教育プログラムの実施"]
    }
]

# 各問題をAPIに送信
for q in questions:
    options_text = "\n".join(q["options"])
    full_question = f"{q['question']}\n{options_text}"

    #print(full_question)

    data = {
        "inputs": {},
        "query": full_question,
        "response_mode": "streaming",
        "conversation_id": "",
        "user": "abc-123",
        "files": []
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    #print(f"Status Code: {response.status_code}")

    answers = []
    retriever_resources = []

    for line in response.iter_lines():
        if line:
            decoded_line = line.decode('utf-8')

            if decoded_line.startswith('data:'):
                try:
                    data = json.loads(decoded_line[5:])
                    if 'answer' in data:
                        answers.append(data['answer'].strip())
                    if data.get('event') == 'message_end':
                        retriever_resources.extend(data.get('metadata', {}).get('retriever_resources', []))
                except json.JSONDecodeError:
                    print("Failed to decode JSON from response line.")

    # 集約されたanswerを表示
    print("".join(answers))

    # retriever_resourcesが存在する場合、それを表示
    if retriever_resources:
        simplified_resources = [{
            "position": resource.get("position"),
            "document_name": resource.get("document_name"),
            "content": resource.get("content")
        } for resource in retriever_resources]
        print("Retriever Resources:", json.dumps(simplified_resources, indent=2, ensure_ascii=False))
    else:
        print("No retriever resources found.")
```

これでまずRAGなしのLlama-3-ELYZA-JP-8Bにまず回答させてみます。
回答結果は以下。

```:Llama-3-ELYZA-JP-8Bの回答
問1　2　×
問2　2　〇
問3　2　〇
問4　3　×
問5　3　〇
問6　3　〇
問7　2　〇
問8　2　〇
問9　3　〇
問10　3　〇
```

正答率は80%、実行時間は21分55秒でした。今の環境だと結構時間がかかりますね。

ちなみにOpenAIのgpt-3.5-turbo-0125に切り替えて同様の事をしてみました。

```:gpt-3.5-turbo-0125の回答
問1　〇
1.化石資源からの脱却
問2　〇
2.多様な気候条件と豊富な生物資源
問3　〇
2.気候変動
問4　×
3.200兆円
問5　×
1.2019年9月
問6　×
2.2017年
問7　〇
2.バイオプラスチック
問8　×
4.農業機械の開発
問9　〇
3.健康的な生活の促進
問10　〇
3.連携・調整
```

といった感じで正答率は60%でした。意外とGPTの方が正答率低いですね。
問題数が少ないので実行毎に正答率は揺らぎそうではあります。
なお実行時間は4分39秒。


# 4. 取得pdfをナレッジとして追加してRAGとしてもう一度答えさせる


今度は上記pdfをDify上でナレッジとして与えてRAGとしてLlama-3-ELYZA-JP-8Bに再度答えさせてみます。

RAGの設定は以下のようにローカルのデフォルトにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983698/6c02d6e0-31dc-4814-fa65-5dcf123e22ad.png)


ドキュメントのどこを参照したかも回答と同時に返させています（加工していないので見にくいですが）。

```:RAGありLlama-3-ELYZA-JP-8Bの回答
問1　1　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "表１ バイオものづくりへの期待\r\n社会課題 社会課題解決への期待 \n気候変動 ・プロセス転換による温室効果ガス（ＧＨＧ）排出量の\r\n削減\r\n・化石資源からバイオマス資源への原料転換による\r\n脱炭素化\r\n・ＣＯ₂を原料として化学合成する微生物等の活用による\r\nＣＯ₂吸収量の増加\r\n資源制約"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "12\r\nプラスチックについては、化石資源をはじめとする枯渇性資源の使用削減、温\r\n室効果ガスの排出抑制、海洋プラスチックごみ等による環境汚染への対応が世界\r\n的課題となっている。バイオプラスチックは、化石資源の使用削減やＧＨＧ排出\r\n削減、また海でＣＯ₂と水にまで生分解される性質をもつ海洋生分解性プラスチッ\r\nクは海洋汚染防止の効果も期待できる。我が国はプラスチックの適正処理・３Ｒ\r\n等のノウハウが豊富であるとともに、豊富に賦存するバイオマス資源・遺伝資源\r\nと競争力のある素材物性情報はバイオプラスチックの開発において有望な資源で\r\nある"
  }
]
問2　2　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "20\r\nマス活用推進基本計画」に基づく取組を推進する。また、食料安全保障の制約を\r\n受けない非可食バイオマスやＣＯ₂の直接利用、廃棄物等を原料とするバイオもの\r\nづくりを追求する。これは、バイオものづくりによって、気候変動や資源制約な\r\nどの社会課題解決を実現するための鍵でもある。\r\n③ 市場環境の整備に向けた取組\r\n市場環境の観点では、バイオ由来製品の市場創出・拡大に当たっての最大の課題\r\nはコスト競争力であり、市場原理に任せるのみでは企業の市場予見性が見通せない\r\n点にある"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "18\r\nくから日本が取り組んできた培養・発酵等の生産プロセスにも注力する。その上\r\nで、未利用資源の活用等によって原料制約の解消も並行して模索していく。\r\n市場環境の観点では、バイオ由来製品の市場創出・拡大に当たっての最大の課\r\n題はコスト競争力である。化石資源由来で化学プロセスによって生産されたコス\r\nト競争力に優れる製品をバイオ由来製品に代替するには、新規の設備投資に加え\r\nて生産性の低下等のプロセスコストの上昇が見込まれる。需要側に対してバイオ\r\n由来製品の付加価値の訴求が不十分な中、市場原理に任せるのみではバイオ由来\r\n製品の需要が見通せない"
  }
]
問3　2　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "原料やプロセスのバイオ転換を図り、\r\nバイオものづくりやバイオ由来製品9の利用を推進することは、こうした社会課題\r\nの解決への寄与と同時に、経済成長を実現しうるものとして期待が高まっている。\r\n特に、近年になって、遺伝子技術を活用して微生物や動植物の細胞等によって目\r\n的物質を生産する「バイオものづくり」は世界中で注目され、社会実装に向けた技\r\n術開発が急速に進んでいる。バイオものづくりとは、遺伝子技術を活用して微生物\r\nや動植物等の細胞によって物質を生産することであり、化学・素材、燃料、医薬品、\r\n動物繊維、食品等、様々な産業分野で利用される技術である"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "バイオものづくりは、グローバルな社会課題の解決に寄与す\r\nることが期待されるものの、産業領域ごとに対応が求められる社会課題や適切な\r\nバイオ利活用の在り方は異なる。以下、産業領域ごとの動向やバイオ利活用・転\r\n換に向けた見通しを示す。\r\n（化学・素材領域）\r\n化学産業は全産業のＣＯ₂排出量の 2 割程度を占め、カーボンニュートラルの実\r\n現が大きな課題となっている"
  }
]
問4　3　×
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "17\r\n４）2030 年に目指す姿\r\n① 市場規模目標\r\n53.3 兆円\r\n（関連指標）\r\n・2030 年までにバイオものづくりへの官民投資を年間３兆円規模へ拡大。\r\n・2030 年までにバイオマスプラスチック約 200 万トンを導入。\r\n② 具体的な姿\r\n中長期的に、国際社会でバイオエコノミーは大幅に拡大する見込み。その際\r\nに、日本が国際競争力を保持している状態を目指す。そのため、2030 年時点で、\r\n各産業でのバイオものづくりへの転換が進み、バイオものづくり拡大の初期段階\r\nとして、特に高付加価値な製品領域における市場獲得が活発化している状態を目\r\n指す"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "２）2030 年に目指す姿\r\n① 市場規模目標\r\n58.6 兆円の内数（国内：3.3 兆円、国外：55.3 兆円の内数）\r\n（関連指標）\r\n・再生医療等製品の承認・上市件数 ２件以上（2024 年度末時点）\r\n※2025 年度以降の目標は第３期健康・医療戦略に向けた議論において検討。\r\n② 具体的な姿\r\n日本発の抗体医薬品、核酸・中分子医薬品や再生・細胞医療・遺伝子治療製品\r\nがグローバル展開され、当該領域の本格的な産業化と巨大な新市場創出が進んで\r\nいる"
  }
]
問5　1　×
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "さらに、2023 年には、花粉症という社会問題の解決に向けて、花粉症に関する\r\n関係閣僚会議において「花粉症対策の全体像」などがとりまとめられ、発生源対策\r\nとしてスギ人工林の伐採・植替え等を加速化し、10 年後までに花粉発生源のスギ人\r\n工林を約 2 割減少、花粉の少ない苗木の生産割合をスギ苗木全体の９割以上に引き\r\n上げるとともに、スギ材需要を 1,710 万㎥（470 万㎥増）まで拡大すること等を目\r\n指すこととされている"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "（農林水産省）\r\n・「みどりの食料システム戦略実現技術開発・実証事業」において、2020 年度か\r\nら改質リグニンを使用した高付加価値の高機能プラスチック等の開発、2022 年\r\n度から針葉樹樹皮を使用したエシカルプラスチック等の開発を実施。\r\n・2021 年度から「戦略的技術開発・実証事業」において、木材や森林由来の成分\r\nを活用し、高機能・高付加価値化や化石資源由来のプラスチック代替に資する\r\nＣＮＦ等の木質系新素材の開発・実証を支援。"
  }
]
問6　3　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "4\r\n２．振り返りと主な課題 \n2019 年のバイオ戦略策定以降、戦略の更新・フォローアップも行いながら、バイオエ\r\nコノミー市場拡大に向けた取組、国内外から人材・投資を呼びこみ、市場に製品・サー\r\nビスを供給するバイオコミュニティの形成、研究開発・事業化に必要なデータ連携・利\r\n活用の取組を推進してきた。\r\n市場創出に向けた新たなプレイヤーの台頭として、バイオものづくりに関して、微生\r\n物・細胞設計プラットフォーム技術等の高いバイオ技術を有するスタートアップへの投\r\n資や大企業におけるバイオプロセス転換の動きが活発化するとともに、バイオファウン\r\nドリ事業を共同で推進するなどのスタートアップや大企業間の連携の動きが出てきて\r\nいる"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "また、基礎生命科学の研究力\r\nの強化やそれを支える人材育成等にも取り組んでいく必要がある。\r\n本戦略は、バイオエコノミー市場拡大に向けて、2019 年に策定した「バイオ戦略」\r\nから、「バイオエコノミー戦略」に名称を改め、最新の国内外の動向等を踏まえ、\r\n2030 年に向けた科学技術・イノベーション政策の取組の方向を取りまとめたものであ\r\nる。\r\n3 主なものとして、「グリーンイノベーション基金事業」、「バイオものづくり革命推進事業」、「革新的ＧＸ技術創出事\r\n業（ＧｔｅＸ）」、「ワクチン生産体制強化のためのバイオ医薬品製造拠点等整備事業」、「創薬ベンチャーエコシステム\r\n強化事業」。"
  }
]
問7　5　？
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "５）今後の取組の方向性\r\n① 全体\r\nバイオものづくりの領域は、既に米中で大規模投資が先行するなど国際競争が\r\n激化しているものの、市場が未成熟な新領域であり、支配的なプレイヤーも出て\r\nきていない。こうした認識の下、日本としては、原料の海外依存など日本が抱え\r\nる構造的な問題の解消を模索しながら、国内のプレイヤーが有する技術や産業構\r\n造の特性を踏まえた上で日本の強みとなりうる領域に注力していく。また、バイ\r\nオマス活用推進基本計画（令和４年９月６日閣議決定）に基づき、バイオマスの\r\n活用を推進する"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "18\r\nくから日本が取り組んできた培養・発酵等の生産プロセスにも注力する。その上\r\nで、未利用資源の活用等によって原料制約の解消も並行して模索していく。\r\n市場環境の観点では、バイオ由来製品の市場創出・拡大に当たっての最大の課\r\n題はコスト競争力である。化石資源由来で化学プロセスによって生産されたコス\r\nト競争力に優れる製品をバイオ由来製品に代替するには、新規の設備投資に加え\r\nて生産性の低下等のプロセスコストの上昇が見込まれる。需要側に対してバイオ\r\n由来製品の付加価値の訴求が不十分な中、市場原理に任せるのみではバイオ由来\r\n製品の需要が見通せない"
  }
]
問8　2　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "我が国の取組の方向性等について助言を受けるた\r\nめ「国際科学諮問委員会」等を開催するとともに、気候変動緩和と持続的農業の実\r\n現に貢献し、アジアモンスーン地域に応用可能な技術情報の収集、分析及び発信並\r\nびに現地実証試験を通じて、現地で実装可能な技術の実装促進を図る。ＣＧＩＡＲ\r\n13各研究センターと連携した持続可能な食料システムの構築に資する農業栽培技術\r\nの開発を推進する"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "高齢化による社会問題は、これからこそ本番であり、先回りした対応が必要であ\r\nる。「健康」が持つ多様な価値を明確化し、単なる「消費」ではなく、個々人の生活\r\nや経済社会を豊かにする「投資」として促進することが重要である。ヘルスケアに\r\nよってあらゆる産業分野の付加価値を高めるためのトランスフォーメーションを\r\n促すことが必要である。\r\n健康づくりは生活そのものであり、ヘルスケア分野特有の業種（医薬品、医療機\r\n器など）のみならず、生活関連産業と連携した市場環境整備が必要であり、個別領\r\n域の支援のみならず、産業全体の構造変化をもたらすようなデジタル化等を促進す\r\nる"
  }
]
問9　3　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "２）2030 年に目指す姿\r\n① 市場規模目標\r\n58.6 兆円の内数（国内：3.3 兆円、国外：55.3 兆円の内数）\r\n（関連指標）\r\n・再生医療等製品の承認・上市件数 ２件以上（2024 年度末時点）\r\n※2025 年度以降の目標は第３期健康・医療戦略に向けた議論において検討。\r\n② 具体的な姿\r\n日本発の抗体医薬品、核酸・中分子医薬品や再生・細胞医療・遺伝子治療製品\r\nがグローバル展開され、当該領域の本格的な産業化と巨大な新市場創出が進んで\r\nいる"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "高齢化による社会問題は、これからこそ本番であり、先回りした対応が必要であ\r\nる。「健康」が持つ多様な価値を明確化し、単なる「消費」ではなく、個々人の生活\r\nや経済社会を豊かにする「投資」として促進することが重要である。ヘルスケアに\r\nよってあらゆる産業分野の付加価値を高めるためのトランスフォーメーションを\r\n促すことが必要である。\r\n健康づくりは生活そのものであり、ヘルスケア分野特有の業種（医薬品、医療機\r\n器など）のみならず、生活関連産業と連携した市場環境整備が必要であり、個別領\r\n域の支援のみならず、産業全体の構造変化をもたらすようなデジタル化等を促進す\r\nる"
  }
]
問10　3　〇
Retriever Resources: [
  {
    "position": 1,
    "document_name": "bio_economy.pdf",
    "content": "55\r\nを推進する。また、バイオ分野特有のビジネスモデル、リスク、必要な人材・資金等\r\nの特性を意識しつつ、スタートアップ・エコシステム拠点都市等の他のイノベーショ\r\nン・エコシステムの機能の活用や、連携した取組を推進する。"
  },
  {
    "position": 2,
    "document_name": "bio_economy.pdf",
    "content": "さらに、バイオは横断的な領域であるため、省庁間で連携した規制・ルールの\r\n調整も事業環境整備の面で重要である。特に、バイオものづくりを推進する社会\r\n的意義にも直結する気候変動や循環経済、経済安全保障、自然資本や生物多様性\r\nの保全等に関する国際的な議論やルール形成の動きに対して、我が国として必要\r\nな対応を適切に講じていくことが必要である。さらに、最先端のバイオ技術や製\r\n品に適合しない定義や制度等が生じてくるため、社会実装に合わせた柔軟な定義\r\nや制度等の見直しを行っていくことが必要である。"
  }
]

```
正答率70%、下がっとるやないかーい。問7は5という選択肢外の回答をしていました。
実行時間は、33分32秒でした。検索時間が増えたので、時間も増えています。
適当に作っただけだとこんなものでしょうか。もう少しいろいろ調整が必要そうです。
おいおいやっていきます。それでは。