liquidjumper Googleスプレッドシート Googleスプレッドシートと自然言語処理AI「GPT-3」を組み合わせてデータ作成を効率化

Googleスプレッドシートと自然言語処理AI「GPT-3」を組み合わせてデータ作成を効率化

googlespreadsheet_connect_to_gpt_3_topimage

2022年末に登場、一躍テクノロジー業界の話題を席巻したAIチャットボット「ChatGPT」

自然な文章で情報を提供するこの「ChatGPT」に対して、ビジネス、ブログ、プログラミング、など、様々な場での活用が期待されています。

OpenAIが開発、サービスを提供してるこの「ChatGPT」のベースとなっている技術が、同じくOpenAIが開発した、自然言語処理AI「GPT-3」です。

膨大なテキストデータを使った機械学習によって、生み出される「GPT-3」の文章は、人間が書いた物と判別できない程

そして、機械学習の訓練によって得た知識を元にして、質問に対し即座に答えを返してくれるので、知りたい事が有る度に、一々”ググる”必要も無い。

そこで一考、「GPT-3」とGoogleスプレッドシートを組み合わせたら、作業効率を向上できるんじゃないか。

本記事では、自然言語処理AI「GPT-3」をGoogleスプレッドシートで活用し、データ作成を効率化する方法を紹介したいと思います。



「GPT-3」とは


GPT-3(Generative Pre-trained Transformer 3)は、OpenAIが開発した自然言語処理(NLP)のためのプレトレーニング済みの機械学習モデルです。GPT-3は、膨大なテキストデータを使用して訓練され、自然言語処理タスクを自動的に実行することができます。GPT-3は、自然言語処理タスクを実行するための膨大なデータセットを必要とせず、自然言語処理タスクを実行するための膨大なコンピュータリソースも必要としません

以上が「GPT-3」に “GPT-3とは何?” と質問して生成された「GPT-3」の説明文です。

Googleスプレッドシートで「GPT-3」を使用する為の準備

「GPT-3」の技術は、開発したOpenAIのHP上でも試す事ができますが、OpenAI API としても公開されているので、多少プログラミングが出来る人であれば、様々なサービスと組み合わせたり、開発・運営するWEBサービスやアプリに利用することも出来ます。

今回、Googleスプレッドシートと組み合わせる方法として、Google Apps Script(GAS)でこのOpenAI API を呼び出し使用します。


■Googleスプレッドシートで「GPT-3」を使用する手順

・OpenAIのアカウント取得

・OpenAIのAPI Keyを取得

・Google Apps Script(GAS)で「GPT-3」のスクリプト作成

・作成した「GPT-3」の関数をGoogleスプレッドシートで使用する

OpenAIのアカウント取得

「GPT-3」を使用するには、開発したOpenAIのAPIが必要なので、まず、OpenAIのHPでアカウントを作成します。

>> OpenAI


OpenAIのHPに移動したら、右上の「SIGN UP」をクリック

OpneAI サインアップ


アカウント作成の画面が表示されるので、メールアドレスを入力し、「I’m not a robot」にチェックを入れて「Continue」をクリック、パスワードの入力、使用目的など簡単な質問に答えてアカウントを作成します。もしくは、Googleのアカウント OR Microsoftのアカウント でも登録できます。

アカウント作成

OpenAIのAPI Keyを取得

「GPT-3」など、OpneAIのサービスを利用するには、OpenAIの API Key を取得する必要があります。

作成したアカウントにサインインした状態で、右上のメニューから、「View API keys」を選択

API keys


取得済みのAPI Key(シークレットキー)は、前後数文字だけ表示されますが、セキュリティ上の理由から、OpenAIのアカウントから再び閲覧することはできません。

このシークレットキーを紛失した場合は、新しいキーを生成する必要があります。

シークレットキーを生成するには、「Create new secret key」をクリックします。

「Create new secret key」をクリック


ポップアップウィンドウが表示され、シークレットキーが生成されました。

このシークレットキーをコピーし、安全な場所に保存してください。

シークレットキーが生成されました

Google Apps Script(GAS)で「GPT-3」のスクリプト作成

次に、Googleスプレッドシートで「GPT-3」が使える様に、OpenAI API を呼び出すスクリプトをGoogle Apps Script(GAS)で書くわけですが、ありがたい事に下記サイト( lifearchitect )で、コピー&ペーストで使用できるスクリプトコードが公開されています。

参考にしたサイト: https://lifearchitect.ai/sheets/

今回は、このスクリプトコードを少しだけアレンジして使いたいと思います。

/**
* GPT-3 and Google Sheets
*
* @param {string} prompt Prompt.
* @param {number} temperature (Optional) Temperature.
* @param {string} model (Optional) GPT-3 Model.
* @return Response returned by GPT-3.
* @customfunction
*/

const SECRET_KEY = "sk-paste-your-API-secret-key-here";
//const MAX_TOKENS = 10;
const MODEL_NAME = "text-davinci-003"; // more structured and deterministic: for data
//const MODEL_NAME = "davinci"; // more flexible and creative: for stories, chatbots
const MODEL_TEMP = 0.3;

function GPT(prompt,max_tokens=30) {
const url = "https://api.openai.com/v1/completions";
const payload = {
model: MODEL_NAME,
prompt: prompt,
temperature: MODEL_TEMP,
//max_tokens: MAX_TOKENS,
max_tokens: max_tokens
};

const options = {
contentType: "application/json",
headers: { Authorization: "Bearer " + SECRET_KEY },
payload: JSON.stringify(payload),
};

const res = JSON.parse(UrlFetchApp.fetch(url, options).getContentText());
return res.choices[0].text.trim();
}


■解説

const MODEL_NAME = "text-davinci-003";

GPT-3は、主に4つの機械学習モデルを提供しており、それぞれのタスクに適した性能の違いがあります。

Davinciは最も高性能なモデル、対して、Adaは最も高速なモデルです。

モデル説明
text-davinci-003GPT-3の中で最も高性能なモデルです。他のモデルで可能なあらゆるタスクが可能で、
多くの場合、より高い品質、長い出力、より良い命令追従性が得られます。
また、テキストに補完記号を挿入することも可能です。
text-curie-001非常に高機能だが、Davinciより高速で低価格。
text-babbage-001素直な作業が可能で、非常に速く、低コスト。
text-ada-001非常にシンプルな作業が可能で、通常GPT-3シリーズの中で最も高速なモデルであり、
最も低価格です。

//const MAX_TOKENS = 10;
.
.
.


function GPT(prompt,max_tokens=30) {
const url = "https://api.openai.com/v1/completions";
const payload = {
model: MODEL_NAME,
prompt: prompt,
temperature: MODEL_TEMP,
//max_tokens: MAX_TOKENS,
max_tokens: max_tokens
};

[max_tokens]

生成される文章の文字数(正確にはトークン数)の上限を、関数の引数で指定できる様にアレンジしました。デフォルト値は30です。


■GASにスクリプトコードを貼り付け

1:Googleスプレッドシートのメニューから、[機能拡張] > [Apps Script] をクリック。GASのスクリプトウィンドウに移動します。

[機能拡張] > [Apps Script]


2:スクリプトウィンドウのテキストボックスに上記のスクリプトコードを貼り付けて、すべてのテキストを上書きします。

スクリプトコードを貼り付け


3:スクリプトコード内の「SECRET_KEY」に、OpenAIのHPで取得したAPI Key(シークレットキー)を入力します。

const SECRET_KEY = "sk-paste-your-API-secret-key-here";


4:[プロジェクトを保存]と[選択した関数を実行]のアイコンをクリック。スクリプトウィンドウを閉じて、スプレッドシートに移動します。

[プロジェクトを保存]をクリック

[プロジェクトを保存]をクリック


[選択した関数を実行]をクリック

[選択した関数を実行]をクリック


「権限を確認」をクリック。

「権限を確認」をクリック。


スクリプトを実行するアカウントを選択

スクリプトを実行するアカウントを選択


「詳細」をクリック

「詳細」をクリック


スクリプトを実行するスプレッドシートのページに移動

スクリプトを実行するスプレッドシートのページに移動


「許可」をクリック

「許可」をクリック

Googleスプレッドシート+「GPT-3」の使い方

貼り付けたスクリプトコードに問題がなければ、Googleスプレッドシートで、関数GPT() が使える様になっているはずです。


■GPT関数

GPT(“生成する文章の内容”,[オプション:MAXの文字数(正確にはトークン数)])

「GPT-3」を使って、都道府県名から都道府県庁所在地を作成

=IF(ISBLANK(A1),,GPT("一言で答える.  "&A1&" の都道府県庁所在地は:"))
とりあえず、この5つの道県に関しては正確ですね。


とりあえず、この5つの道県に関しては正確ですね。

「GPT-3」を使って、名所から住所を作成

=IF(ISBLANK(A1),,GPT("一言で答える. "&A1&" の住所は:",50))
名所から住所を作成


正確性に欠けますね。正直、実用には厳しいかな。もしかしたら調整次第で何とかなるか。

「GPT-3」を使って、小説のあらすじを作成

=IF(ISBLANK(A1),,GPT("小説 "&A1&" のあらすじは:",300))
小説のあらすじを作成

走れメロスは、古代ギリシャの小さな村の物語です。メロスは、自分の村を守るために、他の村から強大な王国によって支配されている町に行くことを決意します。彼は、町を襲う大軍を止めるために、自分の力だけで戦いに挑みます。しかし、彼は敵を倒すことができず、彼の村は攻撃を受けます。しかし、メロスは、彼の勇気と献身の精神によって、彼の村を守り、王国を倒すことができました。


メロス、王国を倒しちゃった。

「GPT-3」を使って、会社の事業内容文を作成

=IF(ISBLANK(A1),,GPT(" "&A1&" の事業内容は:",300))
会社の事業内容文を作成


SONYがプリンター?

「GPT-3」を使って、多言語翻訳

セルに入力した文章を「GPT-3」で、他の言語に変換、翻訳してみたいと思います。

セルに入力した英語「Anime goods are located on the third floor」を、1.フランス語、2.スペイン語、3.日本語 に翻訳します。

=IF(ISBLANK(A1),,GPT("Translate this into 1. French, 2. Spanish and 3. Japanese:"&A1&"",300))
「Anime goods are located on the third floor」を、1.フランス語、2.スペイン語、3.日本語 に翻訳


■「GPT-3」が生成した翻訳


1. Les produits d’anime se trouvent au troisième étage.

2. Los productos de anime se encuentran en el tercer piso.

3. アニメグッズは3階にあります。

生成された翻訳文をGoogle翻訳で確認すると、3カ国語とも合ってるようです。


今度は、セルに入力した日本語「新宿駅はここから30分かかります。」を、1.英語、2.中国語、3.韓国語 に翻訳します。

=IF(ISBLANK(A1),,GPT("Translate this into 1.  English, 2. Chinese and 3. Korean:"&A1&"",300))
「新宿駅はここから30分かかります。」を、1.英語、2.中国語、3.韓国語 に翻訳


■「GPT-3」が生成した翻訳


1. It takes 30 minutes from here to Shinjuku Station.

2. 從這裡到新宿站需要30分鐘。

3. 여기서 신주쿠역까지 30분 걸립니다.

こちらの文章も、Google翻訳で確認しましたが、一応合ってるみたいです。



ちなみに、Googleスプレッドシートで他言語に変換する場合は、関数 GOOGLETRANSLATE() を使えば「Google翻訳」の精度で翻訳してくれるので、わざわざ「GPT-3」を使う意味は無いのかなとは思います。


「GPT-3」の注意点

とてもAIとは思えない文章を生成する「GPT-3」ですが、必ずしも正しい答えが生成される訳では無い点には注意しなければなりません。

あくまでも、「GPT-3」が機械学習でトレーニングした知識と判断?で、生成した文章であって、正確か否かは、それを使う側の人間が確かめる必要があります。

便利な「GPT-3」ですが、指定する質問・概要・きっかけの文章の精度によっても、返答の正確性に違いがある事を踏まえると、利用する側も、使い方のトレーニングをする必要がありそう。

まとめ

Googleスプレッドシートと自然言語AI「GPT-3」を組み合わせた使い方でした。

凄くないですか?

本記事の “「GPT-3」とは” の項目の内容は、Google検索もしてないし、Wikipediaで調べてもいません。

それ以前に、筆者が書いた文字も無く、加筆修正も一切していません。

“GPT-3とは何?”  と質問して、生成された文章そのものです。

あれこれ検索して調べて、文章を考えて、ようやく書ける内容を、ものの数秒で生成してしまう訳ですから効率性の点で見ても活用しない手はありません。勿論、生成された内容の正確性には注意を払う必要はあります。

今回紹介した内容は、業務にAIを活用すると、作業効率が劇的に向上する一例ではありますが、今後ますますAIを取り入れる場面は多くなるでしょう。

そうなった時、周りに乗り遅れない様に、AIの活用法に関する情報は気にしておいた方が良いと思います。



 TechAcademy [テックアカデミー] は、選抜された現役エンジニアから学べるオンライン・プログラミングスクールです。

 自宅からでもWeb制作・プログラミング・アプリ開発などが習得できるさまざまなコースをラインナップ。

 非エンジニアでスキルを磨きたい方から、フリーランス、就職/転職を目指す方まで、専属のメンターがサポート。

 最近は副業ブームもありはじめての副業コース が人気です。









はてブ

おすすめの関連記事



あわせてよく読まれている記事