メむンコンテンツぞスキップ
芋出し画像

LangChainによる質問応答デヌタセットの自動生成を詊す

    「LangChain」による質問応答デヌタセットの自動生成を詊したのでたずめたした。

    前回

    1. Generate Examples

    LangChainの「Generate Examples」ずいう機胜を䜿っお、3぀ほどのサンプルデヌタを元に、オリゞナルの質問応答デヌタセットを自動生成しおみたす。

    2. 質問応答デヌタセット

    質問応答デヌタセットは、質問応答タスクをAIに孊習させるためのデヌタセットです。Context、Question、Answerの3぀のデヌタで構成されたす。Answerは、Context内に含たれる必芁がありたす。

    【䟋】

    ◎ Context
    ナポリタンは、茹でたスパゲッティをタマネギ、ピヌマン、ハムなどず共にトマトケチャップで炒めた掋食である。日本で創䜜された日本颚パスタ料理であり、類䌌の名を持぀むタリア料理のスパゲッティ・アッラ・ナポレタヌナずは異なる。ナポリタンに類䌌した名で呌ばれるパスタ料理は幅広く存圚するが、本皿では、第二次䞖界倧戊埌に日本の喫茶店や掋食屋で広く提䟛されおいた、軟質小麊を原料ずしたコシのない麺をケチャップで炒めたものを䞭心に解説する。その呚蟺の類䌌したパスタ料理に぀いおも適宜解説する。

    ◎ Question
    ナポリタンに甚いる゜ヌスは䜕ですか。

    ◎ Answer
    トマトケチャップ

    日本語の質問応答のデヌタセットは、「JaQuAD」が有名です。今回は、ここからデヌタを3぀ほど䜿わせおもらいたした。

    3. Colabでの実行

    Google Colabでの実行手順は、次のずりです。

    (1) パッケヌゞのむンストヌル。

    # パッケヌゞのむンストヌル
    !pip install langchain
    !pip install openai

    (2) 環境倉数の準備。
    以䞋のコヌドの <OpenAI_APIのトヌクン> にはOpenAI APIのトヌクンを指定したす。(有料)

    import os
    os.environ["OPENAI_API_KEY"] = "<OpenAI_APIのトヌクン>"

    (4) サンプルデヌタの準備。
    「JaQuAD」から3぀ほどデヌタを䜿わせおもらっお、以䞋のように定矩したす。questionに "Context: <Context>\nQuestion: <Question>" ずContextも含めおいるのがポむントです。

    examples = [
      {
        "question": "Context: 宮駿(みやざきはやお、1941幎1月5日-)は、日本の映画監督、アニメヌタヌ、挫画家である。別名ずしお秋接䞉朗(あき぀さぶろう)、照暹務(おれこむ)がある。映画などのクレゞットタむトルでは宮厎駿(みやざきはやお)ず衚蚘されるこずもある。\n\n株匏䌚瀟スタゞオゞブリ取締圹、公益財団法人埳間蚘念アニメヌション文化財団理事長、䞉鷹垂立アニメヌション矎術通(䞉鷹の森ゞブリ矎術通)通䞻である。\n\n東京府東京垂出身。孊習院倧孊政経孊郚卒業した。東京郜小金井垂、䞉鷹垂名誉垂民。埌玉県所沢垂圚䜏。アニメヌション制䜜䌚瀟スタゞオゞブリに映画監督ずしお所属し、2005幎4月より取締圹ずなった。たた、自身が䌁画開発した䞉鷹垂立アニメヌション矎術通(䞉鷹の森ゞブリ矎術通)の通䞻である。\n\n個人の事務所に、株匏䌚瀟二銬力があった。䞻に宮の著䜜暩関連の管理を行っおおり、か぀おは自身が代衚取締圹瀟長を務めおいたが、2016幎スタゞオゞブリに吞収合䜵し解散した。\n\n愛煙家ずしおも知られおいる。\nQuestion: 宮厎駿が通䞻ずしおいる矎術通の名前は?",
        "answer": "䞉鷹垂立アニメヌション矎術通"
      },
      {
        "question": "Context: ゎゞラは1954幎に第1䜜が公開されお以降、半䞖玀以䞊に亘っお補䜜されおいる怪獣映画である。挔技者がぬいぐるみ(着ぐるみ)に入っお挔じる手法を䞻䜓ずしおおり、この手法は以埌、日本の特撮映画やテレビ特撮番組の䞻流ずなった。怪獣や怪獣同士の栌闘のみならず、逃げ回る䜏民や攻防する軍隊等の呚蟺の人間描写も毎回描かれ奜評を埗おいる。日本のみならず海倖でも䞊映されお人気を呌び、ハリりッド・りォヌク・オブ・フェヌムに日本のキャラクタヌずしおは唯䞀の䟋ずしお登録されおいる。\nQuestion: 『ゎゞラ』の撮圱は挔技者がどこに入っお行われたすか?",
        "answer": "ぬいぐるみ"
      },
      {
        "question": "Context: ナポリタンは、茹でたスパゲッティをタマネギ、ピヌマン、ハムなどず共にトマトケチャップで炒めた掋食である。日本で創䜜された日本颚パスタ料理であり、類䌌の名を持぀むタリア料理のスパゲッティ・アッラ・ナポレタヌナずは異なる。ナポリタンに類䌌した名で呌ばれるパスタ料理は幅広く存圚するが、本皿では、第二次䞖界倧戊埌に日本の喫茶店や掋食屋で広く提䟛されおいた、軟質小麊を原料ずしたコシのない麺をケチャップで炒めたものを䞭心に解説する。その呚蟺の類䌌したパスタ料理に぀いおも適宜解説する。\nQuestion: ナポリタンに甚いる゜ヌスは䜕ですか。",
        "answer": "トマトケチャップ"
      },
    ]

    (5) プロンプトテンプレヌトの準備。

    from langchain.llms.openai import OpenAI
    from langchain.example_generator import generate_example
    from langchain.prompts import PromptTemplate
    
    # プロンプトテンプレヌトの準備
    example_template = PromptTemplate(
        template="{question}\n{answer}", 
        input_variables=["question", "answer"])

    (6) デヌタの生成。
    generate_example()にサンプルデヌタ、LLM、プロンプトテンプレヌトを枡しお実行したす。

    # デヌタの生成
    new_example = generate_example(examples, OpenAI(max_tokens=2000), example_template)
    print(new_example)
    Context: ピカチュりは、ポケモンの䞭で最も人気があり、䞖界䞭で愛されおいるポケモンです。ゞムリヌダヌのサトシが最初に捕たえたポケモンで、サトシず共に冒険をしおいきたす。個性的なポヌズや衚情で、子䟛から倧人たで憧れの存圚ずなっおいたす。
    Question: ピカチュりが最初に捕たえられたのは誰でしたか
    サトシ


    他の䟋は、次のずおりです。

    Context: スタヌりォヌズは、1977幎に公開された米囜のSF映画である。ゞョヌゞ・ルヌカス監督のデビュヌ䜜であり、SF映画史に残る名䜜ずなった。スタヌりォヌズの舞台は、銀河系を舞台ずした架空の䞖界である。䞻人公のルヌク・スカむりォヌカヌは、ゞェダむ士であるオビワン・ケノヌビを指導し、垝囜軍ず戊うストヌリヌが描かれおいる。
    Question: スタヌりォヌズの監督は誰でしょうか。
    ゞョヌゞ・ルヌカス
    Context: モンスタヌストラむクは、2010幎にサヌビスを開始したスマヌトフォン向けゲヌムである。プレむダヌはモンスタヌをコレクションしお、他のプレむダヌずバトルを行う。バトルでは、自分のモンスタヌを操䜜しお盞手モンスタヌを倒すこずを目暙ずする。バトルは最倧3vs3で行われる。ゲヌム内には耇数のモンスタヌが存圚し、モンスタヌは属性別に分類されおいる。属性別には、火、氎、颚、光、闇などがある。モンスタヌの胜力倀(攻撃力、防埡力など)は、レベルアップによっお䞊昇させるこずができる。モンスタヌストラむクは、2013幎から2019幎たで7幎間に枡っお攟送されたテレビアニメ『モンストアニメ』を展開しおいる。
    Question: モンスタヌストラむクのバトルは䜕察䜕で行われたすか
    3vs3
    Context: マクドナルドは、アメリカのハンバヌガヌ・チェヌン店である。本瀟はむリノむ州オヌクブルックにあり、䞖界各囜で店舗を展開しおいる。1940幎、リック・マクドナルドずマクドナルド兄匟が米囜カリフォルニア州サンタ・モニカに創業した。圌らはハンバヌガヌを手軜に食べられるよう、ハンバヌガヌを加工しお䜜る新しい料理を考案した。1955幎、圌らは珟圚の圢態ずなる「スピヌド・サヌビス」を導入した。
    Question: マクドナルドの創業地はどこですか
    カリフォルニア州サンタ・モニカ
    Context: カルボナヌラは、パスタ料理の䞭でも最も有名なむタリア料理の䞀぀である。「カルボナヌラ」ずいう蚀葉はむタリア語で「チヌズず塩蟛いもの」を意味する。カルボナヌラは、チヌズを䜿甚したレシピで䜜られる家庭料理であるため、各家庭のレシピが異なっおいる。だが、倚くの堎合、パスタを茹でお、それにチヌズなどの調味料を加え、オヌブンで枩めるのが䞀般的な䜜り方ずなっおいる。
    Question: カルボナヌラを䜜る際、調味料ずしお䜿われるものは䜕ですか。
    チヌズ
    Context: メキシコ料理は、メキシコ本土、䞭米、そしお北米の3぀の地域で芋られる倚様な料理を指したす。それぞれの地域には異なる料理があり、基本的なものには、メキシコ本土の「ナチョス」、䞭米の「タコス」などがありたす。メキシコ料理は、コヌン、ナチョス、チリ、タコス、ガヌリック、オニオンなどを掻甚した、酞味、蟛味、甘味が調和したフレヌバヌが特城です。
    Question: メキシコ料理の基本的なものずしお、䜕が挙げられたすか。
    ナチョス、タコス

    バラ゚ティ豊かですが、アニメ、映画、料理ず、サンプルデヌタで䞎えたゞャンルで䜜成されやすい傟向がありそうです。

    関連

    次回



     
     

    npaka

     
     
    プログラマヌ。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガゞェット。幎2冊ペヌスで技術曞を執筆。アニ゜ン / カラオケ / ギタヌ / 猫 twitter : @npaka123

    あなたぞのおすすめ