Beanslabo
Tech Blog

技術ブログ

日本語大規模言語モデルrinna3.6bのinstruction版を用いて情報抽出、要約を試す。

2023.10.3

こんにちは!ビーンズラボでAI開発をしている岩永です。
今回の検証では、rinna株式会社様が公開しているrinna/japanese-gpt-neox-3.6b-instruction-ppoを使用した、情報抽出と要約の可能性を探ってみます。

rinna/japanese-gpt-neox-3.6b-instruction-ppoとは?

rinna/japanese-gpt-neox-3.6b-instruction-ppoは、このモデルは、指示に従う会話型エージェントとして機能するように調整されており、教師あり微調整 (SFT) と PPO ベースの強化学習 (RL) の 2 段階でトレーニングされています。モデル アーキテクチャは、36 層、2816 隠れサイズのトランスフォーマー ベースの言語モデルです。ヒューマン フィードバックからの強化学習 (RLHF) が、モデルの動作を入力命令に合わせて調整するために適用されています。このモデルはHugging Faceで入手可能です。

(AI検索エンジン Perplexity Aiを和訳した結果)

このようにPerplexity Ai先生は教えてくれましたが、超ざっくりいうと、rinna社発の、人間の評価を使って会話用に調整された日本語言語モデルって感じですね!ちなみにこの「人間の評価を使って会話用に調整」というのは、上記にも説明のある通りRLHF※(Reinforcement Learning from Human Feedback)と言って、ChatGPTの学習にも使われた手法です。

※ChatGPTの仕組みやRLHFについて、詳しくは以下の記事がわかりやすくて好きです! https://chatgpt-lab.com/n/n418d3aa56f0b

RLHFが実装された日本語の商用可能オープンソースLLMは、2023年9月現在このモデルしか発表されておらず、累計で360万回以上DLされているほど注目されています。

今回はそんなrinna3.6の会話モデルで、実務においてどの程度性能が出せそうか、情報抽出と要約をメインに可能性を探ってみようかと思います。

検証コード

実行コードは、岩永の尊敬している方の1人である、npakaさんの検証コードを参考にさせていただきました! https://note.com/npaka/n/ne4a38239f420

(npakaさんは新しい大規模言語モデルやその周辺技術がリリースされる度に、リリース後の数時間以内に試行と結果の共有をしてくださる方で、岩永はこの方の行動力に憧れています!)

検証はGoogleColab ProのA100 GPUを用いて実行、 今回は、精度確認のため1つの質問あたり5回の応答結果をみております! 出力されるトークン数はmodel.generateのmax_new_tokensパラメータで調整できるので、 質問の内容に合わせて程よい数値に設定して検証していきます。 温度パラメータ[^1]もtemperatureで設定できるので、今回の検証でもところどころ変更して結果を見てみました!

[^1]温度パラメータ(Tempperature)は、出力の多様性やランダム性を調整するパラメータで、温度が高いほど出力は多様でランダムになります。

パッケージのインストール

  1. !pip install transformers sentencepiece
  2. import torch from transformers import AutoTokenizer, AutoModelForCausalLM

トークナイザーとモデルの準備

  1. tokenizer = AutoTokenizer.from_pretrained( "rinna/japanese-gpt-neox-3.6b-instruction-ppo", use_fast=False )
  2. model = AutoModelForCausalLM.from_pretrained( "rinna/japanese-gpt-neox-3.6b-instruction-ppo" ).to("cuda")

プロンプトの準備

  1. prompt = """ ここにプロンプトを入力 """

推論

  1. for i in range(5):
  2. token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
  3. with torch.no_grad():
  4. output_ids = model.generate( token_ids.to(model.device), do_sample=True, max_new_tokens=100, temperature=0.7, repetition_penalty=1.1)
  5. # 追加 pad_token_id=tokenizer.pad_token_id, bos_token_id=tokenizer.bos_token_id, eos_token_id=tokenizer.eos_token_id
  6. output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1):]) output = output.replace("<NL>", "\n")
  7.    print(i+1)
  8.    print(output)

プロンプト

公式がexampleとして出しているプロンプトは以下のものです。
引用:https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-ppo

  1. "ユーザー: コンタクトレンズを慣れるにはどうすればよいですか?
  2. <NL>システム: これについて具体的に説明していただけますか?何が難しいのでしょうか?
  3. <NL>ユーザー: 目が痛いのです。
  4. <NL>システム: 分かりました、コンタクトレンズをつけると目がかゆくなるということですね。思った以上にレンズを外す必要があるでしょうか?
  5. <NL>ユーザー: いえ、レンズは外しませんが、目が赤くなるんです。
  6. <NL>システム:

ユーザーとシステムの会話が続くような形のプロンプトになっており、<NL>は改行を示していています。 最後に「システム:」と記述することで、その後に来るであろう回答文を予測する感じですね!

今回は、この形に倣って作成したプロンプトで検証していきます!

検証結果と考察

〜情報抽出〜

手始めに以下のプロンプトで結果を見てみます。 メール内の情報を箇条書きで、One-shot手法で生成させようとしています。

プロンプト①

  1. ユーザー: 次のメール文の情報を元に情報を抽出し、箇条書きにしてください。
  2. <NL>##メール文 スタバでコーヒーを飲むためPCの持ち出しを申請いたします。対象の端末はSl2442で使用者は岩永です。121日から124日まで使用できるとありがたいのですが可能でしょうか?
  3. <NL>システム:
  4. <NL>・PC番号はSl2442
  5. <NL>・PCユーザーは岩永
  6. <NL>・PC持ち出し開始日時は121
  7. <NL>・PC持ち出し終了日は124
  8. <NL>・PC持ち出しの理由はスタバでコーヒーを飲むため
  9. <NL> ユーザー: 次のメール文の情報を元に情報を抽出し、箇条書きにしてください。
  10. <NL> ##メール文 お疲れ様です。松田です。コロナの影響により当面在宅勤務のため、PC(DS3213)の持ち出しをいたします。<期限>2022/3/1〜2022/3/4<使用者>田中
  11. <NL>システム:

結果

  1. 結果
  2. 1
  3. こんにちは、スタバでコーヒーを飲みながら仕事をするためのPCの持ち出しを申請したいと思います。対象の端末はDS3213で、使用者は田中です。121日から124日まで使用できるとありがたいです。また、パソコンの持ち出し許可証も取得しておきます。よろしくお願いします。」</s>
  4. 2
  5. PC愛称はDS3213です。期間は202111月から20223月までです。 ・持ち物を持ち出すためには、従業員証が必要です。持ち物を持ち出す期間は、202231日から202234日までとなります。 ・持ち物を持ち出す際には、身分証明書が必要です。また、USB充電器も必要になります。持ち物を持ち出す期間には、リモートワーク用のソフトウェアやツールを使用する必要があります。持ち物を持ち出すためには、
  6. 3
  7. PC番号はDS3213 PCユーザーは田中さん PC持ち出し開始日時は202231 PC持ち出し終了日は202234 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク中、自宅から仕事に接続するために使用する予定です。 ・また、自宅でビデオ会議もできるようにしたいと考えています。 ・ご質問があればお知らせください。よろしくお願いいた
  8. 4
  9. こんにちは、岩永です。メールありがとうございます。今後、スタバでコーヒーを飲みながら仕事ができるようになりとても嬉しいです。引き続き、よろしくお願いいたします。良い一日を!Sl2442より。」</s>
  10. 5
  11. リモートワークにおいて、コミュニケーションや生産性を維持するために重要な役割を果たすのがノートパソコンです。ノートパソコンを持ち出すことで、オフィス内だけでなく社外での業務も容易になります。リモートワークの生産性を向上させるためには、高品質なノートパソコンを選ぶこと、また作業用のスペースを確保することが重要です。そのために、画面サイズや重量などの重要な要素を考慮して選ぶ必要があります。また、自宅や会社内のさまざまな場所で快適に使える耐久性の高いモデルを選ぶことも重要です。</s>

うーん…箇条書きっぽく頑張っている回答もありますが、到底実務には使えなさそうですね…

次は温度パラメータをデフォルトの0.7から0.1にして試してみます。

  1. 1
  2. PC番号はDS3213 PCユーザーは田中 PC持ち出し開始日時は2022/3/12022/3/4 PC持ち出し終了日は2022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3/12022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間は2週間程度になる
  3. 2
  4. PC番号はDS3213 PCユーザーは田中 PC持ち出し開始日時は2022/3/12022/3/4 PC持ち出し終了日は2022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3/12022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3
  5. 3
  6. PC番号はDS3213 PCユーザーは田中 PC持ち出し開始日時は2022/3/12022/3/4 PC持ち出し終了日は2022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3/12022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間は2週間程度になる
  7. 4
  8. PC番号はDS3213 PCユーザーは田中 PC持ち出し開始日時は2022/3/12022/3/4 PC持ち出し終了日は2022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3/12022/3/4 PC持ち出し期間は3か月間 PC持ち出しの理由:スタバでコーヒーを飲む
  9. 5
  10. PC番号はDS3213 PCユーザーは田中 PC持ち出し開始日時は2022/3/12022/3/4 PC持ち出し終了日は2022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間:2022/3/12022/3/4 PC持ち出しの理由はスタバでコーヒーを飲むため ・リモートワーク期間は2週間程度になる

それっぽいかも!!…と思いましたが、PC持ち出しの理由は「コロナの影響により当面在宅勤務のため」ですし、「リモートワーク期間:2022/3/1〜2022/3/4」などの定義していない物も出力されています。惜しい。

岩永の感覚では、ChatGPT含むLLMに多くのことを定義するとパンクしてしまう傾向にあると思っていて、 この子もそうだろうな…と思ったので、次は「PC番号だけ抽出して!」と簡単なタスクをお願いしました。 One-shotから、もう一つ例を足してFew-shotに…これならどうだろう?

プロンプト②

  1. ユーザー: メール文の情報からPCの端末番号を抽出し、出力してください。
  2. <NL>##メール文 スタバでコーヒーを飲むためPCの持ち出しを申請いたします。対象の端末はSl2442で使用者は岩永です。121日から124日まで使用できるとありがたいのですが可能でしょうか?
  3. <NL>システム: Sl2442
  4. <NL>ユーザー: メール文の情報からPCの端末番号を抽出し、出力してください。
  5. <NL>##メール文 お疲れ様です。佐藤です。コロナの影響により当面在宅勤務のため、PCDS3213)の持ち出しをいたします。<期限>2022/3/12022/3/4<使用者>奥間
  6. <NL>システム: DS3213
  7. <NL>ユーザー: メール文の情報からPCの端末番号を抽出し、出力してください。
  8. <NL>##メール文 夜間勤務のため、PCを持ち出したいです。PC番号 SK2223 終了日 1998331 開始日 1997311 ユーザー名:坂本 .よろしくお願いします。
  9. <NL>システム:

結果

  1. 1
  2. SK2223 さん、お仕事がんば
  3. 2
  4. SK2223 さん、こんにちは。この情報
  5. 3
  6. SK2223 さん、了解しました
  7. 4
  8. SK2223 さん、了解しました
  9. 5
  10. SK-2223
  11. <N

おお!いい感じ!ちゃんとSK2223という値をとってこれています。ただ、その後にいろいろおしゃべりしちゃってますね… 値だけ求めるにはMax-tokenの調整やルールベースでの取り出しなど調整が必要そう。 (プロンプトで値以外出力しないように指示してみましたが、あまり効果はありませんでした…)

端末番号のような値は取ることができましたが、人名はどうでしょうか? 以下のプロンプトで試してみます。

プロンプト③

  1. ユーザー: メール文の情報からPCの使用者の名前を抽出し、返答してください。また、PCの使用者の名前以外は返答しないでください。
  2. <NL>##メール文 スタバでコーヒーを飲むためPCの持ち出しを申請いたします。対象の端末はSl2442で使用者は岩永です。121日から124日まで使用できるとありがたいのですが可能でしょうか?
  3. <NL>システム: 岩永
  4. <NL>ユーザー: メール文の情報からPCの使用者の名前を抽出し、返答してください。また、PCの使用者の名前以外は返答しないでください。
  5. <NL>##メール文 お疲れ様です。佐藤です。コロナの影響により当面在宅勤務のため、PCDS3213)の持ち出しをいたします。<期限>2022/3/12022/3/4<使用者>奥間
  6. <NL>システム: 奥間
  7. <NL>ユーザー: メール文の情報からPCの使用者の名前を抽出し、返答してください。また、PCの使用者の名前以外は返答しないでください。
  8. <NL>##メール文 夜間勤務のため、PCを持ち出したいです。PC番号 SK2223 終了日 1998331 開始日 1997311 ユーザー名:坂本 .よろしくお願いします。
  9. <NL>システム:

結果

  1. 1
  2. 坂本 さん、こんにちは。業務上、持ち出す必要があるとのこと、了解しました。現在
  3. 2
  4. 坂本.了解しました。お役に立てれば嬉しいです。良い一日
  5. 3
  6. 坂本さん、こんにちは! Sl2442は、Windowsオペレーティングシステム用のMicrosoft Portal Serverソフトウェアであり
  7. 4
  8. 坂本 さん、こんにちは。了解しました。明日、12:00にスタバで会って
  9. 5
  10. 坂本さん、こんにちは。現在、リモートワーク中のため、お力になれず、申し訳あり

名前もいい感じですね!PC使用者が坂本さんであることはわかっていそうです! (ただ、名前の抽出であっても、値のみ抽出は厳しそう…)

プロンプト①〜④の結果で、一つの情報を文章の中から抽出するのは可能そうだとわかりました。

次は情報抽出の応用で、社内資料を元にした問い合わせ対応をさせてみようと思います。 弊社ビーンズラボのホームページの情報(2023年7月時点での情報)を引用情報としています。
引用:https://beanslabo.co.jp/

プロンプト④

  1. ユーザー: あなたはIT企業のコールセンタースタッフです。以下の資料の内容をもとに、問い合わせに対しての返答を行なってください。
  2. <NL>##資料 株式会社ビーンズラボは、「IT技術」 ✖️ 「人間力」を基盤にお客様にご満足頂けるシステム構築、サービスを実現します!
  3. <NL>主なサービスは以下のとおりです。
  4. <NL>・AIプログラミング ( 機械学習・DeepLearning )
  5. <NL>・AIの運用業務 ( AIに学習させるための教育 )
  6. <NL>・RPA ( ロボットによる業務自動化・保守運用 )
  7. <NL>・データ抽出・集計・分析業務 ( BIツール作成 )
  8. <NL>・IoTデバイス開発
  9. <NL>・サービス運用 ( 問合せ対応・アカウント発行・運用改善 )
  10. <NL>・アプリケーション開発
  11. <NL>・システム保守運用
  12. <NL>・インフラ運用
  13. <NL>・サイト運営
  14. <NL>・WEBデザイン制作
  15. <NL>・監査業務
  16. <NL>設立日は2011929日、代表取締役は柴田 剛人です。
  17. <NL>特にIT基礎研修には力を入れており、入社後に約3ヶ月の研修を実施し、ITに関する基礎的な知識を学べます。技術の習得以外にも、配属先で円滑に仕事ができるようなスキルも身につけていきます。
  18. <NL>##問い合わせ 株式会社ビーンズラボが力を入れていることはなにですか?
  19. <NL>システム:

まずは、以上の問い合わせから。ITの研修に力を入れている!と答えてほしいですね。結果は…

結果

  1. 1
  2. IT技術 ✖️ 「人間力」を基盤にお客様にご満足頂けるシステム構築、サービスを実現します! 主なサービスは以下のとおりです。
  3. AIプログラミング ( 機械学習・DeepLearning ) - クラウドコンピューティング - IoTデバイス開発 - RPA ( ロボットによる業務自動化・保守運用 ) - データ抽出・集計・分析業務 ( BIツール作成 ) -
  4. 2
  5. コールセンタースタッフとして、重要な仕事を任せられています。顧客とやり取りすることが多いため、コミュニケーション能力や問題解決能力が重要です。また、チームワークを重視しているため、協調性があり、周囲と協力して働くことが得意な人に向いています。</s>
  6. 3
  7. IT基礎研修には力を入れており、入社後に約3ヶ月の研修を実施し、ITに関する基礎的な知識を学べます。技術の習得以外にも、配属先で円滑に仕事ができるようなスキルも身につけていきます。</s>
  8. 4
  9. IT基礎研修には力を入れており、入社後に約3ヶ月の研修を実施し、ITに関する基礎的な知識を学べます。技術の習得以外にも、配属先で円滑に仕事ができるようなスキルも身につけていきます。</s>
  10. 5
  11. 当社は「IT技術」と「人間力」を基盤に、お客様にご満足いただける高品質なシステムを構築し、提供することを理念としています。主なサービスは以下のとおりです。
  12. AIプログラミング ( 機械学習・DeepLearning ) AIの運用業務 ( AIに学習させるための教育 ) RPA ( ロボットによる業務自動化・保守運用 ) AIの運用業務 (

求める回答は3.4で取れていますが、安定しなさそう…コールセンターのスタッフとしてのロール付けはうまく行っている印象です。

続いて、以下の質問。抽象的な質問ではなく、質問を具体的にしてみます。

プロンプト⑤

  1. <NL>##問い合わせ 株式会社ビーンズラボの設立日は?

回答はこちら。

結果

  1. 1
  2. この質問に答えるためには、次のことを考慮してください。設立日は2011929日、代表取締役は柴田 剛人です。したがって、答えは2011929日です。</s>
  3. 2
  4. 上記の質問に答えるために必要な情報は次のとおりです。
  5. 創立日は2011929日です。
  6. 主なサービスは以下のとおりです。
  7. AIプログラミング ( 機械学習・DeepLearning )
  8. AIの運用業務 ( 教育 )
  9. RPA ( ロボットによる業務自動化・保守運用 )
  10. IoTデバイス開発 <
  11. 3
  12. 設立日は2011929日です。 主な業務内容は、顧客向けのITサービスの提供と、企業内のIT運用業務です。 主なサービスとしては、AIプログラミングや、クラウドコンピューティング、ビッグデータ分析などがあります。また、RPABIツールなどの自社製品の開発にも積極的に取り組んでいます。</s>
  13. 4
  14. 設立日は2011929日です。代表者は柴田剛人であり、本社は東京にあります。また、本社以外にも、中部地方を中心に東日本や西日本にも拠点があります。主な事業内容は、インターネットを通じて顧客に対する様々なサポートサービスの提供と、それらを効果的に管理するためのシステムおよびソリューションの開発です。</s>
  15. 5
  16. 設立日2011929日、代表取締役社長は柴田 剛人です。</s>

日にちは正しく取れていますね!やはり具体的、単純な情報の抽出であれば良い精度を出せそうです。

〜要約〜

続いて要約のタスクをさせてみます!

プロンプトは、論文の内容を与えて要約をしてもらうように指示しました。

要約対象とした論文:平野,鈴木,坂地(2023)llm-japanese-dataset v0: 大規模言語モデルのための日本語チャットデータセット構築,https://jxiv.jst.go.jp/index.php/jxiv/preprint/view/383/

プロンプト⑥

  1. ユーザー: 次に与えられた論文の一部を要約してください。
  2. <NL>##論文 大規模言語モデル(LLM)は,近年,著しい性能向上と汎化が進んでいる.
  3. 特に,Transformer [1]ベースの大規模言語モデルであるBERT [2]やRoBERTa [3],GPTシリーズ[4]~[6]を始めとして様々なモデルが事前学習由来の高い性能を発揮している.
  4. また2022年以降,モデルサイズをよりスケーリングさせより高い性能を示すモデルとして,
  5. OPT [7],GPT-NeoX-20B [8],UL2 [9],PaLM [10],BLOOM [11],Pythia [12],LLaMA [13]など非常に多くのモデルが登場している.
  6. 言語モデルが乱立している一方で,多様な指示の入力への対応にはまだまだ難しさがある.
  7. そんな中,事前学習を行ったこれらのLLMの能力を特定の目的に応じて更に適応させるための取り組みがなされている.
  8. LLMを対話形式で活用するための(注††):責任著者アプローチとしてインストラクションチューニング(Instructiontuning) [14]がある.
  9. インストラクションチューニングは,自然言語で様々なタスクを解かせることで,未知の課題の性能を向上させる学習方法である.
  10. これは特定のタスクで学習し,そのタスクでの推論精度を向上させるFinetuningとは異なる.公開されているモデルでは,Dolly [15]はPythiaに,Vicuna [16]やAlpaca [17]はLLaMAに対してインストラクションチューニングを施したモデルとなっている.
  11. しかしながら,これらのモデルでは,英語以外の言語への対応は不完全である.
  12. 上述のDollyAlpaca, Vicunaでのインストラクションチューニングを行うデータセットは英語のみであり,英語以外の言語でこれらのモデルのメリットを享受することは難しい.
  13. 本研究では,日本語ベース,英語ベースの大規模言語モデルに対してそれぞれインストラクションチューニングを行う.
  14. さらに,構築したモデルに対し,日本語のデータセットでの評価を行う.
  15. 構築した学習済みモデルや本研究で用いた実装はオー— 1 —プンソースとして公開している.
  16. •学習や評価のための実装:https://github.com/retarfi/jallm•チューニング済みモデル(stormy 10 epochs):https://huggingface.co/izumi-lab/stormy-7b-10ep•チューニング済みモデル(LLaMA 7B 5 epochs):https://huggingface.co/izumi-lab/llama-7b-japanese-lora-v0-5ep詳細については,後述する。

論文読むのも時間がかかりますから、うまく要約してほしいですね…結果はこちら。(文章長が長いので3回答のみお見せします。)

結果

  1. 1
  2. 大規模言語モデル(LLM)は、近年、著しい性能向上と汎化が進んでいる。特に、Transformer [1]ベースの大規模言語モデルであるBERT [2]やRoBERTa [3]、GPT-NeoX-20B [4]~[6]を始めとして様々なモデルが登場している。また、2022年以降、モデルサイズをよりスケーリングさせより高い性能を発揮するモデルとして、OPT [5],GPT-NeoX-20B [8],UL2 [9],PALM [10],LLaMA [4]など非常に多くのモデルが登場している。言語モデルが乱立している一方で、多様な指示の入力への対応にはまだまだ難しさがある。そんな中、高度な学習機能を活用したインストラクションチューニング(Instructiontuning)が行われるようになり、日本語ベース、英語ベースの大規模言語モデルに対してそれぞれインストラクションチューニングを行うことができた。これにより、構築された学習済みモデルや
  3. 2
  4. 大規模言語モデル(LLM)は、近年、著しい性能向上と汎化が進んでいる。特に、Transformer [1]ベースの大規模言語モデルであるBERT [2]やRoBERTa [3]、GPT-NeoX-20B [4]、UL2 [5]、Pythia [6]、BLOOM [7]、PaLM [8]、LLaMA [9]などが非常に多くのモデルが登場している。言語モデルが乱立している一方で、多様な指示の入力への対応にはまだまだ難しさがある。そんな中、事前学習を行ったこれらのLLMの能力を特定の目的に応じて更に適応させるための取り組みが行われている。LLMを対話形式で活用するための(注†††):責任著者アプローチとしてインストラクションチューニング(Instructiontuning) [14]がある。インストラクションチューニングは、自然言語で様々なタスクを解かせることで、未知の課題の性能を向上させる
  5. 3
  6. 大規模言語モデル(LLM)は、近年、著しい性能向上と汎化が進んでいる。特に、Transformer [1]ベースの大規模言語モデルであるBERT [2]やRoBERTa [3]、GPT-NeoX-20B [4]、UL2 [5]、Pythia [6]を始めとした様々なモデルが登場している。言語モデルが乱立している一方で、多様な指示の入力への対応にはまだまだ難しさがある。そんな中、多様な指示の入力への対応に向け、インストラクションチューニングが行われるようになっている。本研究では、日本語ベース、英語ベースの大規模言語モデルに対してそれぞれインストラクションチューニングを行う。さらに、構築した学習済みモデルや本研究で用いた実装はオー プンソースとして公開している。
  7. 大規模言語モデル(LLM)は、近年、著しい性能向上と汎化が進んでいる。特に、Transformer [1]ベースの大規模言語モデルである

うーん…うまく文意を理解して要約しているというよりは、そのままの文章を無理やりくっつけて文章長を短くした印象ですね… プロンプトも何回か変更・工夫して試してみましたがこの論文のうまい要約は得られませんでした…

続いてはビーンズラボのホームページから得たデータを要約してもらいます。(引用元

プロンプト⑦

  1. ユーザー: 次に与えられる文章を100字程度で要約してください。
  2. <NL>##文章
  3. <NL>タイトル:株式会社ビーンズラボの先輩社員インタビュー「未経験でもステップアップできる環境が整っている」
  4. <NL>【質問】現在のお仕事を教えてください
  5. <NL>Webアプリケーションの開発を行っています。大手企業のお客様とともに、これから日本中で使われるであろうアプリケーションを作りあげている最中で、とてもやりがいがある仕事です。開発業務では、プログラミングやデータベース、インフラなどの幅広い知識が要求されます。大変な部分もありますが、困ったときはすぐにチームメンバーに相談でき、私のような実務未経験の新人でも徐々にステップアップできる環境が十分に整っています。
  6. <NL>【質問】就職活動において大事にしたポイントは?
  7. <NL>2つあります。1つ目は「スキルアップできる環境が整っていること」です。社会の変化する速度がどんどんと加速していく中で、若いうちからさまざまな経験ができたり、スキルアップできる環境が整えられていると、自分の人生の可能性を大きく広げることができると思ったからです。2つ目は「会社の雰囲気が良いこと」です。仕事というのは人生の中でとても大きな割合を占めることになります。しかし、必ずしも自分がやりたい仕事に取り組めるとは限りません。したがって、何をして働くかよりもどう働くかを大事にしていました。
  8. <NL>【質問】ビーンズラボに入社をきめた理由を教えてください
  9. <NL>私は沖縄から県外の大学に進学し、就職でまた沖縄に戻ってきました。いわゆるUターン就職と呼ばれるジャンルです。県外からの就職活動だったため、主にインターネットを活用して情報を集めることになりました。そこで、さまざまな就活サイトでビーンズラボが高い評価を受けているのを発見し、ワークショップに参加してみたことがきっかけです。ワークショップを通じて、風通しがよく主体性を持って仕事に取り組める雰囲気に強く魅力を感じ、入社するならここしかない!!と決断しました。迷っている方はぜひワークショップや座談会などのイベントに参加し、自分の肌でビーンズラボの雰囲気を味わってみることをオススメします!
  10. <NL>システム:

「ビーンズラボの先輩社員が質問に対して答えており、現在の仕事は〜で、就職活動で大事にしたポイントは〜で…」といったような回答が欲しいですね! 以下が結果です。

結果

  1. 1
  2. ビーンズラボには、主体的で活発な社風があり、若手エンジニアにとって最適な職場環境を提供しています。</s>
  3. 2
  4. ビーンズラボで働く魅力について、3つの重要なポイントがあります。まず、同社はエンジニアを中心に、様々な分野の専門家が集まり、革新的な技術を開発しています。第二に、同社は非常に柔軟なワークスタイルを持ち、リモートワークやフレックスタイムなどが可能です。最後に、同社は非常に充実した福利厚生があり、安定した雇用とワークライフバランスを両立することができます。</s>
  5. 3
  6. ビーンズラボは、沖縄から県外への就職活動において高い評価を得ています。主な理由としては、風通しがよく主体性を持って仕事に取り組むことができる雰囲気があります。</s>

ビーンズラボについての情報を抜き取ってきて書いているだけのような感じがしますね… 文章全体がどういう流れで、全体を把握できるように説明する力は低いように感じます。

まとめ

rinna3.6bモデルの情報抽出の精度は良いように見えます!ただ、出力の形を一定の形に縛るのための方法が必要となります。

要約の精度はChatGPTに及びそうもなく、内容を要点をまとめて要約するというよりかは、内容を無理やり短くしたような印象です。

今回検証に使ったモデルは独自データでチューニングしての使用もできるので、チューニング後の精度も気になります!

今後もrinna社含めて多くの日本語オープンソースLLMが出てくると思うので、比較してみたいです!
以上、日本語大規模言語モデルrinna3.6bのinstruction版を用いた情報抽出と要約の検証結果について報告しました!


本記事は2023年10月3日現在の情報をもとに執筆しています。

Related

関連記事

Recommend

おすすめ記事