BigQuery MLのML.GENERATE_TEXT関数を使ってテキストデータを要約してみた

こんにちは。SCSKの江木です。

Google Cloud Generative AI Summit Osakaでも紹介されていた、BigQuery MLのML.GENERATE_TEXT関数を使って、テキストのデータセットを要約してみたので、実装方法を紹介します。

Google Cloud Generative AI Summit Osakaでの詳しい内容は過去の記事をご確認いただけますと幸いです。

BigQuery MLとは?

BigQuery MLとは、Google Cloudの機械学習サービスで、BigQuery上で機械学習モデルを作成、評価、実行することができます。BigQuery MLを利用することで、機械学習の専門知識がなくても、BigQueryで蓄積されたデータから機械学習モデルを作成することができます。

より詳しい内容は公式ドキュメントを参照ください

 

実装

文章データの準備

データをCSVファイルに変換

json形式の要約用のデータセットを用いました。csvファイルとして扱いたかったので、以下のプログラムを用いて、テキスト部分を抽出したdataset.csvファイルを作成します。

import pandas as pd
import json
from pandas.io.json import json_normalize

#変換したいJSONファイルを読み込む
df = pd.read_json('./japanese_test.jsonl',orient='records', lines=True)

# read_jsonした結果だとネストしたjsonを展開できないのでnormalizeで展開させる
df_json = df['text'].iloc[:20]

#csvファイルで出力
df_json.to_csv("dataset.csv", encoding='utf-8')

Cloud Storageにアップロード

  1. ロケーション、ストレージクラスを指定し、Cloud Storageのバケットを作成します。
  2. バケットにdataset.csvをアップロードします。

文章データをBigQueryへインポート

データセットの作成

BigQueryにテキストデータをインポートするためにデータセットを作成します。

  1. BigQuery Studioのエクスプローラでプロジェクトの右側にある[︙]→[データセットを作成]を選択します
  2. データセットIDとリージョンを指定して、データセットを作成します。

テーブルの作成

データをインポートするためのテーブルをデータセットの中に作成します。

  1. 作成したデータセットの右側にある[︙]→[テーブルを作成]を選択します
  2. テーブルの作成元にはGoogle Cloud Storageを選択します。dataset.csvファイルを選択し、プロジェクト、データセットおよびテーブルを指定し、設定を行います。
  3. 作成したデータセットをプレビューすると以下の通りです。
  4. 余計な行と列ができてしまったので、データセットを整形します。また、データの数が多すぎるので、データの数を調整します。以下のクエリで整形しつつ、先頭から20個のデータのテーブルを作成します。
SELECT string_field_1 FROM `プロジェクト名.データセット名.テーブル名` LIMIT 20 OFFSET 1

 

上記のクエリを実行するためにクエリ作成画面を開きます。エクスプローラにある[+]を押下します。

 

先ほどのクエリを入力し、[実行]を押下し、データ整形を行います。

 

整形したデータをテーブルに保存します。[クエリ結果]→[結果を保存]→[BigQueryテーブル]を選択します。

 

データセットを選択し、テーブル名を入力した後、[エクスポート]を選択します。

整形した結果を出力したテーブルが以下の通りです。

これでデータの準備ができました。このデータに対して、ML.GENERATE_TEXT関数を使って要約していきます。

ML.GENERATE_TEXT関数を使うための準備

APIの有効化

Google CloudコンソールからBigQuery API,BigQuery Connection API,Vertex AI APIを有効にします。

  1. コンソールの[APIとサービス]→[有効なAPIとサービス]→[APIとサービスの有効化]を選択します。
  2. APIライブラリが開くので、🔍の検索欄で有効にするAPIの検索を行います。
  3. 検索一覧から有効にするAPIを選択することで、以下のような画面(図はBigQuery APIの場合)に遷移するので、[有効にする]を選択します。

 

接続の作成

Cloudリソース接続を作成し、サービスアカウントを取得します。

  1. BigQueryコンソールのエクスプローラの右側にある[︙]→[+追加]を選択します。
  2. [一般的なソース]→[外部データソースへの接続]を選択します。
  3. 接続IDを決め、接続タイプ、リージョンを設定し、[接続を作成]を選択します。
  4. 接続情報を確認するため、エクスプローラの[外部接続]から作成した接続を選択します。
  5. 接続のサービスアカウントを確認し、コピーしておきます。

 

サービスアカウントにVertex AIへのアクセス権を付与

先ほどコピーしたサービスアカウントにVertex AIユーザロールを付与します。

  1. コンソールの[IAMと管理]→[IAM]→[権限]→[アクセス権を付与]を選択します。
  2. 新しいプリンシパルに先ほどコピーしたサービスアカウントを入力、ロールにVertex AI ユーザーを選択し、[保存]を押下します。

モデルの作成

以下のクエリを実行することで、要約文章を生成するためのモデルを作成します。

CREATE OR REPLACE MODEL
`プロジェクト名.データセット名.llm_model`
REMOTE WITH CONNECTION `プロジェクト名.接続のロケーション.接続名`
OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_LARGE_LANGUAGE_MODEL_V1');

 

エクスプローラで作成したデータセットの中にモデルが出来ていることを確認できます。

これで準備は完了です。

 

ML.GENERATE_TEXT関数を使って文章データを要約

ML.GENERATE_TEXT関数を使った要約クエリは以下の通りです。

SELECT *
FROM
  ML.GENERATE_TEXT(
    MODEL `データセット名.llm_model`,
    (
      SELECT CONCAT('文章を要約してください。', string_field_1) AS prompt
      FROM `データセット名.整形後のテーブル名`
    ),
    STRUCT(
      0.2 AS temperature, 650 AS max_output_tokens, 0.2 AS top_p,
      15 AS top_k, TRUE AS flatten_json_output));

今回は要約させたいので、上記クエリの6行目のCONCAT内の第一引数を「’文章を要約してください。’」としています。文章のタイトルをつけたい場合は「’文章のタイトルをつけてください。’」とします。(いわゆるプロンプトエンジニアリングです。)

STURCT以下はモデルのパラメータです。詳しい設定は公式ドキュメントを参照ください。

 

要約結果は以下の通りです。ml_generate_text_llm_result列が要約結果を表しています。

 

データの先頭3つの元の文章と要約結果を表にしてみました。

元の文章 要約結果
トム・エッジントン BBCリアリティー・チェック(ファクトチェック)チーム かつて労働党党首も務めたブレア氏は、BBCラジオ4の番組「Today」で、「議会は行き詰まった。議会が決められないなら、国民が決める形に戻ろう」と語った。 労働党の公式な立場は、テリーザ・メイ英首相が欧州連合(EU)と合意した離脱協定案が議会で否決された場合、解散総選挙の圧力をかけるというもの。もし総選挙が実現しなかった場合は、再度の国民投票を支持するのも選択肢になりうると、労働党は表明している。 しかしメイ首相は、再国民投票の予測を否定している。メイ氏は下院議員らに対し、2016年に実施した国民投票の結果が「尊重されるべきだ」と繰り返し語ってきた。 だが、もしブレア氏が求めている通り、下院がブレグジットをめぐる膠着(こうちゃく)状態を打ち破るために2度目の国民投票を実施すると決定したら、どうなるのだろうか? 英選挙管理委員会はBBCニュースに対し、「適切な対応策」を有しており、「あらゆる予定外の投票に迅速に対応する」準備ができていると語った。 期限は迫っている イギリスのEU離脱予定日は、2019年3月29日。残り100日を切り、時間が最も差し迫った問題だ。 英議会が2度目の国民投票実施を採択した場合、投票規則や選挙運動規則を定める法律にも上下両院の支持が必要になる。 2016年の国民投票では、投票日の7カ月前に関連法案が議決された。 しかし、今回はもっと早い法制化が可能なのだろうか? 法制化の速度を上げるため、前回の国民投票に関する諸規則を定めた2015年国民投票法をひな型にし、実質的に大部分を写してしまうのが、あり得る選択肢の1つだ。 英ユニヴァーシティー・コレッジ・ロンドン公共政策大学院憲法ユニットのアラン・レンウィック副ユニット長は、「理論上、このやり方は非常に素早く完了できる」と話す。 もしこのやり方が採用されても、法案の議会通過はおよそ11週間かかるとレンウィック氏は推計している。 この予定表を基にすると、法案通過は2月後半になると予想される。ただし、法制過程を今開始すればの話だ。 投票用紙の選択肢を、2016年の国民投票における「離脱」か「残留」かの2択ではなくし、複数の選択肢を含めるよう下院が要求した場合、かかる時間はもっとずっと長くなると、レンウィック氏は付け加える。 2016年の国民投票でEU残留派として活動したトニー・ブレア元首相は、2度目の国民投票が議会の膠着状態を解消する可能性があると主張する 何を問うのか あり得る選択肢の範囲からどんな質問を選ぶかは、最終的には英議会の決定に委ねられる。 離脱協定の最終合意に国民投票を求める「People’s Vote (人民の投票)」運動の見解では、テリーザ・メイ首相の離脱協定とEU残留のどちらかを選ぶのが推奨される選択肢だが、投票参加者に3つの選択肢から選ばせる可能性も除外しないという。 再び国民投票が実施されるなら、投票用紙に「残留」の選択肢はあるべきでなく、メイ首相の離脱協定か、合意なしでのEU離脱かの二者択一であるべきとの主張もある。 他の選択肢もある。デイヴィッド・キャメロン内閣で運輸相や国際開発相、メイ内閣で教育相や女性・平等担当相を歴任し、2度目の国民投票を支持しているジャスティーン・グリーニング氏は以前、3つの選択肢を求めた――。 複数の選択肢がある場合、下院はどんな投票制度を使うかも決定する必要がある。たとえば、選択肢を1つ選ぶのか、望ましいほうから順番をつけるのか、というように。 選挙管理委員会は、提案された質問を試験し、それらが「明白に、単純に、そして中立に」示されていると確認する必要もある。 選挙運動を行う公認団体の選定も必要だ。 選挙管理委員会はそれから、国民投票の参加方法を有権者に情報提供する必要がある。また、全国で開票担当者の確保も必要だ。 これらの準備が終わると、選挙運動期間が始まる。運動期間は、通常4週間続く。そしてやっと、投票そのものが実施される。 ジャスティーン・グリーニング氏は2度目の国民投票案を支持し、国民には3つの選択肢が与えられるべきだと主張する 選管はBBCニュースに対し、2000年制定の政党、選挙、国民投票法で定められている法案通過から投票当日までの全ての手順には、最短でも10週間かかると説明した。 このことから、法案通過と選挙過程の両方が、イギリスがEUを離脱する予定期日である2019年3月29日までに終わる可能性は極めて低いと示唆される。 発表から10日での国民投票 しかし、非常に厳しい時期内に国民投票を実施した前例が他国にないわけではない。 3年前、ギリシャは1週間ほどの準備期間で国民投票をとりまとめた。有権者はこの国民投票で、同国の経済危機に対する国際債権団の救済案を否決した。 しかし、国民投票をあまりに早急に実施してしまうと、「通常の手続きに従っていない」との印象を与え、有権者が最終結果を非合法なものとみてしまう可能性があると、レンウィック氏は語る。 たとえば、2015年のギリシャと似た準備期間で国民投票をすると、郵送による投票を受け付けたり、投票用紙に書かれる質問を評価したりする十分な時間の確保が許されないことになる。 リスボン条約50条で定められた期間の延長 イギリスはEUに対し、EU基本条約(リスボン条約)第50条で定められた離脱交渉期間を延長するよう求める可能性もある。リスボン条約は、メイ首相が第50条を発動した2017年3月29日から2年間を、離脱条件の合意に必要な期間として定めている。この期間が延長されれば、新たな国民投票を実施するための時間が増える。 しかし、英ケンブリッジ大学で欧州法を研究するキャスリン・バーナード教授によると、2019年3月29日という離脱期限を延長するあらゆる試案には、他のEU加盟27カ国の全会一致での支持が必要になる。 EUは、イギリスの離脱延期を認める可能性があると示唆している。ただし、たとえば総選挙もしくは新たな国民投票が実施されるなど、政局が変化した場合のみだという。すでに合意された離脱協定について、単に再交渉するための追加時間の確保は認められない。 また、期間延長にはイギリス議会の同意も必要になる。 <関連記事> さらに欧州司法裁判所(ECJ)は先に、イギリスは他国の承認を得ずにリスボン条約第50条の発動を完全に取り消す権限を持つとの判断を下した。 しかしこれは、ブレグジットの過程全体を中止できるという意味だ。単に延期するという意味ではない。 なので結局、イギリスが2度目の国民投票実施を望むなら、まずは第50条で定められた離脱期間の延長を模索することになるだろう。 そして、投票の結果に従って、イギリスは投票後に第50条の発動を撤回するかどうか決められる。 イギリスのEU離脱予定日後に国民投票を実施するのも代替案かもしれない。しかし、この案はかなり現実的な困難を引き起こしかねない。特に、既に離脱したにもかかわらず、イギリス国民がEUの一員であり続ける選択をした場合には。 (英語記事 Brexit: How could another referendum on leaving the EU work?) トニー・ブレア元首相は、イギリスのEU離脱をめぐる行き詰まりを打開するため、2度目の国民投票を実施すべきだと主張しています。しかし、2度目の国民投票を実施するためには、多くの課題があります。

まず、2度目の国民投票を実施するための法律を制定する必要があります。この法律には、投票のルールや選挙運動のルールなどが定められます。2016年の国民投票では、投票日の7カ月前に関連法案が議決されましたが、今回はもっと早い法制化が可能なのでしょうか?

次に、2度目の国民投票で何を問うのかを決める必要があります。2016年の国民投票では、「離脱」と「残留」の2択でしたが、今回は複数の選択肢を含めることも検討されています。

また、2度目の国民投票を実施するための費用も問題です。2016年の国民投票では、約1億2,000万ポンド(約170億円)の費用がかかりました。

さらに、2度目の国民投票を実施した場合、イギリスのEU離脱が遅れる可能性があります。イギリスは2019年3月29日にEUを離脱する予定ですが、2度目の国民投票を実施した場合、この期限が延長される可能性があります。

このように、2度目の国民投票を実施するためには、多くの課題があります。しかし、ブレア元首相は、2度目の国民投票が議会の膠着状態を解消する可能性があると主張しています。

イングランドWTBメイは2分間で2つのトライを決めた 前回大会で1次リーグ敗退の屈辱を味わったイングランドにとっては、3大会ぶりの準決勝進出。 26日に横浜で開かれる準決勝で、大会3連覇を狙う世界王者ニュージーランドと対戦する。ニュージーランドはこの日、準々決勝の2試合目でアイルランドを破って4強入りした。 イングランドは3勝無敗(1試合は雨天引き分け)で1次リーグC組を1位突破。一方、オーストラリアは、D組を3勝1敗で2位通過していた。 イングランドは1次リーグ最終戦が台風の影響で中止となり、5日以来2週間ぶりの試合だった。たっぷりと休養を取った一方、すぐに本来の動きを発揮できるのか不安視する声もあったが、無用の心配だった。 トライですぐ逆転 先制点はオーストラリアが挙げた。 前半11分、イングランドが危険なハイタックルの反則を犯すと、オーストラリアのSOクリスチャン・リアリーファノがペナルティゴール決めた。 しかし、イングランドの反撃は早かった。 前半17分、イングランドは右サイドから左サイドへと大きくパスをつなぎ、最後はWTBジョニー・メイが左サイドに飛びこんで逆転。SOオウエン・ファレルがコンバージョンキックを決めた。 その3分後、メイが再びトライを決める。オーストラリアのパスをインターセプトしたCTBヘンリー・スレイドが駆け上がり、前方にゴロのキックを蹴り出した。それをメイがつかみ、またも左サイドに滑り込んだ。 コンバージョンキックも決まり、イングランドは14-3とリードを広げた。この日、キッカーのファレルは抜群の安定性を見せた。 トライ狙わず確実に得点 前半25分、イングランドは自陣ゴールから10メートル足らずの場所で反則を犯す。オーストラリアはこの好機に、迷わずペナルティキックを選択。トライに固執せず着実に点差を詰める、決勝トーナメントらしい戦術をとった。 これをリアリーファノが確実に決め、6-14に点差を縮めた。 イングランドは前半29分、ファレルが相手反則から約30メートルのペナルティゴールを成功させた。 しかし前半終了間際、オーストラリアのリアリーファノもペナルティゴールを決め返し、9-17の8点差でハーフタイムを迎えた。 猛追を予感させたが 1次リーグの試合では後半に得点を集中させ、スロースターターぶりを見せたオーストラリアは、この日も後半、猛追を予感させる見事な動きから再始動した。 後半2分、WTBマリカ・コロイベティが見事なスピードとステップでディフェンスをかわすと、一気にゴールエリアまで駆け込んだ。 コンバージョンキックも成功。1点差に詰め寄った。 しかし、イングランドは落ち着きを失わず、自分たちのペースを乱さなかった。 イングランドのPRシンクラーのトライは、反撃ムードのオーストラリアにとって痛手となった 後半5分、パスを受けたPRカイル・シンクラーが相手ディフェンスラインのすき間を突破し、ゴール中央部分にトライ。コンバージョンキックも決め、再び8点差に戻した。 後半10分にはファレルがゴールポスト正面からペナルティゴールに成功。リードを27-16に広げた。 勝負決めた攻防 一方、オーストラリアは後半18分、ゴール目前のマイボールのスクラムから波状攻撃を展開。フォワード陣の突進でゴール2メートルまで迫る場面もあったが、イングランドは体を張って押し戻し続け、ついにはボールを奪うことに成功した。 オーストラリアにとっては大きなチャンスを逃した場面だった。これで気落ちしたのか、オーストラリアは以降、見せ場をほとんど作れなかった。 反対にイングランドは、後半25分と33分に、ファレルがこの試合3つ目と4つ目のペナルティゴールをともに成功させ、オーストラリアを突き放した。 後半35分には、オーストラリアが左に放った長いパスをイングランドのWTBアントニー・ワトソンがインターセプトし、ゴールまで駆け上がってダメ押しのトライを決めた。 オーストラリアは後半37分、コロイベティが再び快足を飛ばし、ディフェンスを振り切ってゴールエリアまで駆け込んだ。しかし、その前のプレーでパスがスローフォワードの反則と判断され、トライは無効になった。 直後、試合終了の鐘が鳴った。 <関連記事> イングランドのエディ・ジョウンズ監督は試合後、「最初の20分間は相手にボールを75%支配されていたが、選手たちは見事に粘った。うまく守り、流れを取り戻した」と選手たちを称えた。 さらに、「後半、相手が反撃してきて、『かかってこい』となったが、うまく対応できた」と振り返った。 「準決勝進出に、みんなすごく盛り上がっている。まだ最高潮になっていないので、その状態にどうやってたどりつくかが課題だ」 21歳のイングランドのFLカリーは終始素晴らしい動きを見せ続けた この試合の最優秀選手:トム・カリー(イングランド) この試合の最優秀選手には、16回のタックルをするなど、終始見事なプレーを見せたイングランドのFLトム・カリーが選ばれた。 (英語関連記事 England beat Australia to make semis) イングランドは、26日に横浜で行われる準決勝で、大会3連覇を狙う世界王者ニュージーランドと対戦する。イングランドは、オーストラリアとの準々決勝で、前半に2トライを挙げてリードを広げ、後半はオーストラリアの猛追を振り切って27-19で勝利した。
このワクチンは複数の動物実験で、安全性や、効果的な免疫反応を引き起こすことが示されている。 今回の第1段階の後には、6000人を対象とした別の臨床試験が今年10月に予定されている。 インペリアル・コレッジ・ロンドンのチームは、2021年の早い時期からイギリスや海外でワクチンを配布できるようにしたいとしている。 <関連記事> 世界中では約120のワクチンの開発が進められている。英オックスフォード大学の専門家たちはすでに臨床試験を開始している。 新しいアプローチ 多くの従来のワクチンは、弱体化させたウイルスや改変したウイルスなどがもとになっている。しかし今回のワクチンは新しいアプローチに基づいたもので、遺伝子のRNA(リボ核酸)を使う。 筋肉に注射すると、RNAは自己増殖し、新型ウイルスの表面にみられるスパイクタンパク質のコピーをつくるよう、体内の細胞に指示を出す。 この方法で、COVID-19(新型ウイルスによる感染症)を発症することなく新型ウイルスを認識して戦うための免疫システムを訓練できるという。 シャトック教授は、「我々はゼロからワクチンを製造し、わずか数カ月で臨床試験に持ち込むことができた」と述べた。 「我々のアプローチがうまくいって、ワクチンがこの病気を効果的に防御できれば、将来的なアウトブレイク(大流行)への対応方法に革命をもたらす可能性がある」 主任研究員のカトリーナ・ポロック博士は、ワクチンの効果に期待している この研究の主任研究員、カトリーナ・ポロック博士は、「参加者に大きな免疫反応がみられるだろうと、慎重ながらも楽観的に感じられなかったら、私はこの臨床試験に取り組んでいなかっただろう」と付け加えた。 「前臨床データは非常に期待がもてるものだった。感染から保護しておきたい免疫反応である中和抗体応答は確認できているが、このワクチンを評価するにはまだ道のりは長い」 この研究は英政府から4100万ポンド(約54億5500万円)の資金提供を受けている。ほかにも500万ポンド(約6億6500万円)の寄付が寄せられている。 「ウイルスを倒すのに協力したくて志願」 金融業界で働くキャシーさん(39)は、インペリアル・コレッジ・ロンドンの臨床試験に参加している最初のボランティアの1人だ。 新型ウイルスとの戦いの一端を担いたくて志願したという。 「自分に何ができるのかあまりよく分かっていなかったけど、これが私にできることだったと分かった」 「それに、ワクチンができるまで日常に戻れる可能性は低いことを理解したことで、ワクチン開発の一端を担いたいと思った」 キャシーさんは、インペリアル・コレッジ・ロンドンの臨床試験に参加している最初のボランティア300人の1人 こうした中、ケンブリッジ公爵ウィリアム王子はオックスフォード大学の臨床試験に参加しているボランティアたちと、オックスフォード市内のチャーチル病院で面会した。 ウィリアム王子はボランティアに対し、「みなさん全員が参加しているのは、信じられないくらい胸が躍る、非常に待ち望まれたプロジェクトだ。だからみんなが心を奪われている」と述べた。 初日の被験者は1人だけ BBCのファーガス・ウォルシュ医療担当編集委員によると、すべての臨床試験は安全性のリスク軽減のために慎重に、ゆっくり開始される。オックスフォード大学で4月に臨床試験が開始された際には、初日に接種を受けたのはボランティア2人だけで、1週間以内に100人に接種された。 これに対して、インペリアル・コレッジ・ロンドンの臨床試験では初日には1人だけにワクチンを接種する。その後48時間ごとに3人に接種し、徐々に被験者を増やしていく。 また、1回分の投与量を使用するオックスフォード大学とは異なり、インペリアル・コレッジ・ロンドンの臨床試験では4週間の間隔をあけて、2回の接種を行うという。 シャトック教授らのチームは、慎重に進めている理由について、ワクチンに特段の安全性の懸念があるからではなく、単にアプローチが新しいからだと説明している。 新型コロナウイルス特集 感染対策 在宅勤務・隔離生活 (英語記事 Human trial of new coronavirus vaccine starts in UK) インペリアル・カレッジ・ロンドンは、新型コロナウイルスに対する新しいワクチンの第1段階の臨床試験を開始しました。このワクチンは、遺伝子のRNA(リボ核酸)を使用しており、筋肉に注射すると、自己増殖して新型ウイルスの表面にみられるスパイクタンパク質のコピーをつくるよう、体内の細胞に指示を出します。この方法で、COVID-19(新型ウイルスによる感染症)を発症することなく新型ウイルスを認識して戦うための免疫システムを訓練できるという。

このワクチンは複数の動物実験で、安全性や、効果的な免疫反応を引き起こすことが示されている。今回の第1段階の後には、6000人を対象とした別の臨床試験が今年10月に予定されている。インペリアル・カレッジ・ロンドンのチームは、2021年の早い時期からイギリスや海外でワクチンを配布できるようにしたいとしている。

文章がかなり短くなっているので、要約自体は成功であると思われます。しかし、うまく要約できていない箇所があるので、そこはプロンプトエンジニアリングの腕の見せ所であると考えています。

終わりに

今回はBigQuery MLのML.GENERATE_TEXT関数を使った要約について紹介させていただきました。今回は要約でしたが、プロンプト次第で様々なタスクが可能となります。

最後まで読んでいただき、ありがとうございました!

タイトルとURLをコピーしました