適当な英文を直してくれる「Grammar correction」をいろいろな文章で試してみた - 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI でOpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「Grammar correction」をPythonから実行して試行錯誤します。 

 

OpenAIのExpamplesにあるGrammar correctionとは 

公式の説明では「Corrects sentences into standard English.」とあり、“適当な英文を標準的な英語に修正”となります。文法を気にせずニュアンスで書いた英文を正しくしてくれるものです。 

 

公式のタグでは「Transformation」と「Generation」の2つが付与されています。 

プログラムを見るとエンジンは「Davinci」となっております。 

 

サンプルコードでは最初に「Original: She no went to the market.」とあり、まず間違えた英語を入力すると正しく直してくれるようです。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda3f0e17729659325/]

 

 

ニュアンスで入力すれば正しくしてくれる 

実行すると「She didn't go to the market.」と直してくれます。 

no wentの部分が“didn't go”に修正されているのがわかります。 

 

他にも「i gone school tommorrow.」とやると「I'm going to school tomorrow.」のように 

  • i goneを明日という言葉からI'm going to(行く予定)に修正 
  • tommorrowのスペルミスをtomorrowに修正 

文脈から内容を推測し、スペルミスも修正してくれています。 

単純な文法の修正だけでなく、tomorrow(明日)という単語を理解し、過去分詞形→過去形への修正ではなくbe going to(するつもり)に修正されています。 

 

 

「Standard American English」とあるということは 

Standard American Englishということは、ここを変えることで他の文法にも変えられるのか試してみましょう。 

My favorite color yellow.」を修正してみましょう。 

Standard American EnglishMy favorite color is yellow. 

Standard Englishman EnglishMy favorite color is yellow. 

Standard American Slang; My favorite color is yellow. 

残念ながら、イギリス英語(color→colourを期待)のようにはなりませんでした。また、通常の翻訳ツールでは難しいスラングへの変更も期待しましたが出来ませんでした。 

 

もしかしたら他の変換アプリと同じ様に例文を多く用意することで対応されるかもしれません。 

 

どんなときに使えるのか? 

私が英語でメールをするときにGoogle翻訳やDeepL翻訳を使い、翻訳しやすい日本語を作って翻訳するという使い方をし、ストレートに伝わるようにします。結果として硬い表現で遣り取りをすることになってしまいます。 

OpenAI 「Grammar correction」を使うことで、ある程度英単語がわかるのであればニュアンスに合わせて英文を作成し、文法を修正してもらうことでより幅広い表現ができます。 

また、翻訳ツールに頼ると英語で考えることがなくなりますが、「Grammar correction」であれば英語を使いながらも自信が無い文法部分を補足してくれることで、一部の英語の壁を取り除いてくれます。翻訳ツールとは違う新しい価値を持ったアプリです。 


文章からSQLクエリを生成してくれる「SQL translate」で色々なクエリを生成してみた - 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI でOpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「SQL translate」をPythonから実行して試行錯誤します。 

 

OpenAIExpamplesにあるSQL translateとは 

公式の説明では「Translate natural language to SQL queries.」とあり、“自然言語をSQLクエリに変換”となります。文章でデータベースからこんなデータが欲しいと書くだけで、SQLを自動生成してくれます。 

 

公式のタグでは「Code」と「Transformation」の2つが付与されています。 

プログラムを見るとエンジンは「Davinci-codex」となっており、Codex系のエンジンであることが確認できます。  

サンプルコードでは最初に「### Postgres SQL tables, with their properties:」とあり、まずはSQLクエリを生成したい対象のテーブル情報を入れる必要があります。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda3f1899921252118/]

 

サンプルを見ると、Postgres SQLに対して3つのテーブルがあるとなっています。 

  • Employee(社員)テーブル   社員ID、社員名、部門ID 
  • Department(部門)テーブル  部門ID、部門名、住所
  • Salary_Payments(給与)    給与ID、社員ID、給与額、支払日 

 

上記ではわかりやすくEmployeeテーブルのIDを社員IDと記述していますが、サンプルを見ると「id」となっており、id=テーブルID(社員ID、部門ID、給与ID)と自動的に解釈してくれていることがわかります。 

 

このテーブルに対して、「過去3ヶ月間に10人以上の従業員を雇用した部門名をリストアップするクエリ」という自然言語から参照するSQLクエリが生成されます。 

 

実行すると「DISTINCT department.name 

FROM department 

JOIN employee ON employee.department_id = department.id 

JOIN salary_payments ON salary_payments.employee_id = employee.id 

WHERE salary_payments.date > (CURRENT_DATE - INTERVAL '3 months') 

GROUP BY department.name 

HAVING COUNT(employee.id) > 10」と生成されます。 

 

生成したクエリを見ると、「部門をリストアップ」から参照するテーブルが「department」となっているだけでなく、部門テーブルと給与テーブルが結合できないことを解釈し、部門テーブルの部門IDと社員テーブルの部門IDを結合しています。社員テーブルの社員IDと給与テーブルの社員IDを結合するといった複雑な内容も理解しているようです。 

 

どんなときに使えるのか? 

文章(自然言語)からSQLクエリが生成されるので、前半のテーブル構造までの記述を準備することで非エンジニアでもSQLを理解しなくても自分でSQLクエリを作ることが出来ます。 

データがほしいときに、マーケティング担当者から情報システム部門にこんなデータが欲しいと依頼して出力してもらったデータを確認して分析し、新たな仮設に対して再び依頼するSQL translateを使うことで、マーケティング担当者が自分自身でSQLクエリを作って実行することが出来ます。 

 

Codex系の特徴ですが生成されたクエリが問題ないかを確認するためには、ある程度クエリが理解できる必要があります。意図しないクエリによってデータベースに問題を起こさないためにも、「マーケティング担当者は○○データベースに対してReadOnlyアクセス」のようにアカウントごとに権限をきちっと設計した上で使う必要があります。 

 

運用ルールをきちんと決めることで、非エンジニアでもデータベースを使うことが出来、より幅広いスタッフがデータを活用することが出来ます。 


映画の内容を絵文字で表現!?!?「Movie to Emoji」で色々な映画のあらすじを掴んでみた - 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI でOpenAI APIを発行してもらったので、Expamplesにある49個のアプリの内、「Movie to Emoji」をPythonから実行して試行錯誤します。 

 

OpenAIExpamplesにあるMovie to Emojiとは 

公式の説明では「Convert movie titles into emoji.」とあり、“映画のタイトルを絵文字に変換。”となります。 

 

公式のタグでは「Transformation」と「Generation」の2つが付与されています。 

プログラムを見ると、エンジンは「Davinci」となっております。 

 

サンプルコードでは最初に「Back to Future(バック・トゥ・ザ・フューチャー)」とあり、それに対して若者(マーティ)・博士(ドク)・自動車(デロリアン)・時計を教師データにしてあります。他にも、Batman、Transformers、Wonder Woman、Winne the Poohなどをサンプルとして入力しています。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるよう、 str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda3f2156192511767/]

 

 

映画を絵文字で表現してくれる 

実行するとスパイダーマンを「🕸🕷🕸(蜘蛛の巣・蜘蛛・蜘蛛の巣)」と表現してくれました。 

Batmanが「🤵🦇(人・コウモリ)」と人要素があるのに対して、スパイダーマンは蜘蛛の巣・蜘蛛・蜘蛛の巣となっています。 

蜘蛛つながりでTVアニメ「蜘蛛ですが、なにか?」で試したところ「🕷(蜘蛛)」と蜘蛛だけになってしまいました。 

 

他の映画でもためしてみる 

上記だけだとタイトルに含まれている文字で判断している可能性もあるので、タイトルだけでは内容が推測できない映画を試してみます。
※映画のタイトルを調べて出てきた英語名で試しています。
 

パルプ・フィクション:👨👩‍👩‍👧🏻👨👩‍👧‍👦🏻男性家族・男性・家族 

フォレスト・ガンプ:🏃🏻🏃🏻🏃🏻(ランナー・ランナー・ランナー 

風と共に去りぬ:🌪🌪🌪(竜巻・竜巻・竜巻 

ショーシャンクの空に:😎🏅(サングラスの笑顔・スポーツメダル) 

刑務所のリタ・ヘイワース(ショーシャンクの空にの小説時点のタイトル):📓🔪📔(ノート・包丁・ノート) 

君の名は👱👩‍🎨👱👩‍🎨👱👩‍🎨(金髪男性・女性アーティスト×3 

 

いかがでしょうか? 

おっ、と思うものもあれば「風と共に去りぬ」のようにタイトルから推測したのかな?と思うものもありました。 

 

どんなときに使えるのか? 

忙しい人が短時間で映画の内容を掴むために使えるということもないですが、通常であれば画像分類や音声合成など、様々な目的に合わせて専用のAIを作り込んで使うというのが一般的でした。しかしOpenAIであれば、AIの技術を必ずしもビジネスのために役立てるという目的以外で使うことが出来ます。 

AIとなると、なんのために使えるのか?その効果は何なのか?費用対効果は?みたいな話になりやすいですが、OpenAIが持つ高いポテンシャルのお陰で、一見ビジネスではなんの意味もないようなアプリケーションを作ったりすることも出来るということがわかりました。 

OpenAIの技術により、AI=ビジネス以外の発想が出てくることで、今までには無い活用方法やアプリケーションが出てきそうですね。 


もうバグなんて怖くない。「Python bug fixer」に触ってのOpenAIの驚異を感じてみた - 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI OpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「Python bug fixer」をPythonから実行して試行錯誤します 

 

OpenAIのExpamplesにあるPython bug fixerとは 

公式の説明では、「Find and fix bugs in source code.」とあり、“Pythonのソースコードにあるバグを見つけて直してくれるアプリ”となっております。 

 

公式のタグでは「Code」と「Generation」の2つが付与されています。 

プログラムを見るとエンジンは「Davinci-codex」となっており、Codex系のエンジンであることが確認できます。 

サンプルコードでは最初に「Fix bugs in the below function(下記機能のバグ修正)」となっており、### と組み合わせることでバグがあるソースを指定しているようです。 

 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda3f2a4e156840568/]

 

 

自動的にバグが修正される 

実行すると 

import random 

a = random.randint(1,12) 

b = random.randint(1,12) 

for i in range(10): 

    question = "What is "+str(a)+" x "+str(b)+"? " 

    answer = input(question) 

    if answer == a*b: 

        print("Well done!") 

    else: 

        print("No.") 

 

# Exercise 

 

# * Write a program that asks the user to enter a number and then prints out a list of all the divisors of that number. 

# * Write a program that asks the user for a number and then prints out a list of all the divisors of that number. 

# * Write a program that asks the user for two numbers and then prints out a list of all the divisors

と出力されました。 

 

見比べると 

  • importしているモジュール名の大文字小文字の綴り間違い 
  • 2つの数字a, bを文字列と結合するときに文字列に変換 
  • ifの比較で となっている部分を == に修正 
  • if の末尾の「:」が欠けているのを補填 
  • Well done! が文字列なので“ 前後に抜けている‘’ を追加 

といったことが行われています。 

 

import random 

a = random.randint(1,12) 

b = random.randint(1,12) 

for i in range(10): 

    question = "What is "+str(a)+" x "+str(b)+"? " 

    answer = input(question) 

    if answer == a*b: 

        print("Well done!") 

    else: 

        print("No.") 

 

 

練習したほうが良い内容を教えてくれる 

Bug Fixされたプログラムの後にExerciseが表示され、使用したプログラムと似たようプログラムが練習問題として表示されます。単純に「バグがあり自動的にFixします」ではなく、バグを起こさないためにも似たようなプログラムを書く練習をしたほうが良いよと教えてくれる親切設定となっており、トレーニングとしても活用できるようになっています。 

残念ながら、このお題に対する回答は表示されませんが、Codexと組み合わせることで例題の回答自体をOpenAIで生成することができます。 

 

OpenAIの驚異 

この「Python Bug Fixer」は見ての通り非プログラマーには関係ないものだと思いますが、プログラマーにとってストレスであり、時間がかかるBugを見つけてくれて修正までしてくれるようになります。通常であればBugが発生しづらいように丁寧にプログラミングを行い、実行してエラーがあると修正してということを続けて1つのプログラムを作るのに対して、本機能を活用してイメージしているままプログラムを一気に作って「Python Bug Fixer」を使ってバグを修正することで、短時間に生産性高くプログラムを作ることが出来ます。 

 

どんなときに使えるのか? 

プログラムを作っているほぼすべての会社で活用することが出来ます。複雑なプログラムの修正を行うことは難しいですが、人が発生させやすい誤字脱字といったミスを防ぐことが出来ます。Visual Studio Codeといったコードエディタと組み合わせることで大きな効果が期待できます。 

またCodexによるプログラムの自動生成と組み合わせることで、スキルが高くないエンジニアを成長させながら、ストレスが多いバグ対応の工数を減らすという、どこでも欲しくなる機能を実現することが出来ます。 

 


ジョークも言えるAI。性格を選べるOpenAIの「Chat」で色々な会話を試してみた -日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI OpenAI APIを発行してもらったので、Expamplesにある49個のアプリから「Chat」をPythonから実行して試行錯誤します 

 

性格を決めることができるみたいなので、性格により回答がかわるかと、公式には対応していると記述がない日本語でも問題なく会話(Chat)できるか試してみました。 

 

OpenAIExpamplesにあるChatとは 

公式の説明では、「Open ended conversation with an AI assistant.」とあり、“AIアシスタントとのオープンエンドの会話を楽しむアプリ”となっております。 

 

公式のタグでは「Conversation」と「Generation」の2つが付与されています。 

プログラムを見るとエンジンは「Davinci」を使っています。 

 

サンプルコードでは1行目に「The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.」とあり、文章で”AIアシスタントの会話であること”や性格を入れるだけで、そのシチュエーションにあった会話ができることがわかります。 

 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda3f332d187818799/]

 

 

 

同じ入力でも毎回答えが変わる 

「会話できる」とあって、毎回違った内容を返してきます。同じ内容の言い回しを変えるのではなく、様々な内容で返してくるのが面白いですね。いくつかの回答を以下に記載します。 

  • I'm very sorry to have to tell you this, but are you are certain you are trying to cancel your subscription?(大変申し訳ございませんが、お客様は本当に解約しようとしているのでしょうか?) 
  • OK, I've cancelled your account. Please let me know if you need any further assistance.OK、あなたのアカウントをキャンセルしました。また何かありましたらご連絡ください。 
  • I'm sorry, but I can only assist you with technical support.(申し訳ありませんが、私がお手伝いできるのはテクニカルサポートのみです。) 

 

AIの性格で答えが変わる 

プログラム内の「The assistant is helpful, creative, clever, and very friendly.」の部分を「The assistant is very humorous and make jokes.」と、アシスタントの性格をユーモアがありジョークを言うようにしてみました。答えが面白いかはさておき、性格を変えることで回答が大きく変わりました。アメリカンジョークですかね? 

  • I'm sorry for the mistake, but maybe it's a good idea to see your doctor.(間違えてしまったのは残念ですが、お医者さんに診てもらうのがいいかもしれませんね。) 
  • What do you mean?(何が言いたいの?) 
  • (Laughter) Why would you want to do that?((笑)なぜ、そんなことをしたいのか?) 

 

 

日本語でも使える 

公式に記述はないですが、最初の文章部分を日本語にしても問題なく使えました。 

以下は、AIアシスタントとの会話です。このアシスタントは、親切で、クリエイティブで、賢くて、とてもフレンドリーです。 

 

Human: こんにちは、あなたは誰ですか? 

AI: 私はOpenAIで作られたAIです。今日はどのようなお手伝いができるでしょうか? 

Human: 契約を解約したいです。 

AI:

  • どういった契約ですか? 
  • 契約を解約することはもちろんできますが、全ての覚書に関するデータは削除されませんし、より高いレベルでサービスが継続できる可能性があります。 
  • すみません、部分的な解約でない限り、契約を解約することはできません。 

 」

どんなときに使えるのか? 

通常Chatを作るにはChatbot等のサービスで大量の例文やルール訳を行わないと作ることが難しかったチャットサービスが、どんな人(AI)でどんな性格にするかを入力するだけで使うことが出来ます。ルールにヒットする会話はChatbotに対応させて、それ以外の日常的な会話はChatに任せるなど組み合わせることで幅広い会話に対応できるチャットサービスを作ることが出来ます。 


汎用人工知能 OpenAIとは?GPT-3は何がすごいのか? -日本一詳しいOpenAI入門

2015年13月にテスラ社のイーロン・マスクを始めとする実業家・投資家によって設立された人工知能 研究機関”OpenAI”。 

OpenAIのミッションはartificial general intelligence (AGI)が全人類に利益をもたらすことを確実にすること。この先の世の中に大きく影響を与えるAIが正しく使われ、人々に有益な結果が出るのであれば、それが自分たちOpenAIでなくても問題ないとなっています。 

 映画:ターミネーターのように未来に悪意あるAIが人々に害するようなことが起きる前に、AIが人々に有益な世の中を作るということでしょうか? 

 

 

OpenAIが提供するアプリケーション 

現時点では、下記のように大きく3つあります。 

1. 2016年4月から提供されている強化学習アルゴリズムの検証プラットフォームOpenAI Gym」 

2. 教師なし言語モデル「GPT-3 (Generative Pre-trained Transformer 3) 

3. GPT-3の技術を使い自然言語と画像処理を組み合わせて新たな画像を生み出す「DALL·E 

 

AIは学習して最適な答えを出すことに向いていますが、ゼロから新しいことを生み出すクリエイティブなことには向いていないと言われています。しかしOpenAIの凄さは、GPT-3は状況に合わせた新しいアイディアを無数に生み出したり、DALL·Eはアボカドの形をしたソファのような画像を無数に生成したりすることが出来ます。 

中でも、汎用人工知能といっても過言ではないGPT-3は今までのAIアプリケーションとは大きく異なります。 

 

 

GPT-3とは 

技術的な特徴としては、モデルに含まれるパラメータ数が約1750億個あることです。 

GPT-32020年5月に発表されましたが、20192月に発表されたGPT-215億個から1年もかからず100倍以上になっています。この速度でパラメータ数が増えることを考えると、人間の脳にあるシナプス(神経細胞のつなぎ目)の数100兆個を数年で超えることが予想されます。 

 

数年前まで汎用的な「強いAI」は実現するにはまだまだ時間がかかると思われていましたが、GPT-3を使うと既に実現していることが実感できます。 

そのため、多くの言葉やコードを扱うアプリケーションを教師なしモデルで作ることが出来ます。 

 

 GPT-3の汎用性とは 

従来、AIの技術を使おうとすると翻訳・チャット・Q&Aなど1つ1つの用途に合わせて学習を行い、専用性の高いAIを作る必要がありました。 

 

例えば、Azureのサービスについて答えてくれるチャットを作ろうとすると、 

  1. Azure QnA Makerサービスに、学習してほしいページの情報を集めて学習させる 
  2. Azure Bot Serviceと上記をつなげ、意図した質問をするためのチャットボットを構築する 

という手順となり、1と2の知識・時間が必要でした。 

 

また、日本語を英語に変換するような社内チャットを作ろうとすると 、

  1. Azure Bot Serviceでユーザーから翻訳したい文章をやりとりするためのチャットボットを構築 
  2. 上記とTranslateサービスをつなげて翻訳したい言語を指定する 

といった新たなサービスを立ち上げる必要がありました。 

 

そのため社内でDX推進に向けたデータ化やAI活用などを進めるにも、多くの技術を理解する必要があり、技術・工数・金額など多くの課題にあたる状況にありました。 

 

これに対してGPT-3では、会話、アイディア生成、ソースコード作成・修正・翻訳・Q&Aなど、1つのエンジンで作ることが出来ます。ここで上げた例はほんの一部で、様々なことをGPT-3だけで実現することが出来ます。 

 

例えば、OpenAIのサイト上にあるExamplesの1つ目Chatと2つ目Q&Aのプログラムを比較しても、若干パラメータが異なるだけで2つの異なるアプリケーションを動かすことが出来ます。

 

[crayon-61b0fda3f3c11265662944/]
[crayon-61b0fda3f3c22178530568/]

 

 

GPT-3の優れている点 

上記以外の特徴として、Codexという文章からそれを実行するプログラムを自動生成する機能があります。例えば「明日の東京の天気を取得」と入力するだけで、10秒もかからずに以下のプログラムが生成されました。 

実は以下のプログラム自体は動かないのですが、通常であれば作り方やAPIの使い方を調べるなどの時間をかけないと作れないようなものが一瞬でできるため、あとは問題点のみを修正すればすぐに使えるようになります。No Code, Low Code以外の流れでもプログラムを書かなくて良くなりそうですね。 

 

[crayon-61b0fda3f3c25739510171/]

 

 

 

他の特徴としては、教師なし言語モデルながら教師ありで使うことも出来ます。 

汎用人工知能を自社で必要な学習をさせた上で、社内で活用するといったことが出来ます。 

 

 

まとめ 

主にGPT-3を中心にOpenAIのことを紹介させていただきました。ここに上げていることはごく一部のみで、触っていくとOpenAIの凄さを体験することが出来、今までのサービスでは実現が難しかったことが、OpenAIならできるということがわかります。 


OpenAIの「Q&A」に2003年セ・リーグの優勝チームを聞いてみた - 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」、公式ページにある通りOpenAI OpenAI APIを発行してもらったので、Expamplesにある49個のアプリから「Q&A」をPythonから実行して試行錯誤します。 

 

OpenAIのExpamplesにあるQ&Aとは 

公式の説明では「Answer questions based on existing knowledge.」とあり、“既存の知識に基づいて質問に答える”となっております。 

 

公式のタグでは「Answers」、「Generation」、「Conversation」の3つが付与されています。 

プログラムを見るとエンジンは「Davinci」を使っています。

 

 

サンプルコードでは1行目に「I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with "Unknown".」とあり、知的で質問に答えるBotで、トリッキーな質問や明確な答えがない質問には「Unknown」と答えると決めることで答えられない質問への回答が定義されています。 

 

2015年にイーロン・マスクをはじめとするメンバーが設立したOpenAIに、日本の野球といった狭い分野の質問にも正確に答えることが出来るか試してみました。 

ちなみに、2003年のセ・リーグ優勝チームは阪神タイガースです。星野監督のラブコールにより金本が追加され得点力があがり、井川・藪・下柳といった先発陣、後に阪神のJFKと言われるリリーフの中心となるウィリアムス(J)・久保田(K)といった抑えの活躍により18年ぶりにリーグ優勝しました。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

[crayon-61b0fda4002ac398460804/]

 

 

 

質問に回答してくれる 

実行すると「Where is the Valley of Kings?(王家の谷はどこですか?)」に対して「The Valley of Kings is in Luxor, Egypt.(王家の谷は、エジプトのルクソールにあります。)」と適切な回答をしてくれます。 

 

時間で変化する内容にも回答してくれる 

What's the weather like in Tokyo tomorrow?(明日の東京の天気は?)」に対して「Tomorrow in Tokyo, the weather will be partly cloudy with a high of .(明日の東京の天気は、一部曇り、最高気温は)」のように返ってきました。正解・不正解が判断しづらいですが、新しい情報も常に取得しているように見えます。 

 

日本語にも答えてくれる 

質問する文章を日本語にしてもきっちり回答してくれます。 

「円周率の小数点以下10桁まで教えて?」と投げると「3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679」のように返ってきました。日本語で質問しても答えてくれるようです。 

ただし、質問によっては英語と日本語で答えが異なりました。 

英語だと「Which team won the Central League championship in 2003?2003年にセ・リーグ優勝を果たしたチームは?)」に対して「The Hanshin Tigers won the Central League championship in 2003.」と正しく阪神タイガースと返ってきます。

しかし日本語では、「2003年にセ・リーグ優勝を果たしたチームは?」に対して「2003年にセ・リーグ優勝を果たしたチームは、日本ハムファイターズです。」とパ・リーグでも優勝していない日ハムと返ってきました。 

 

万能ではない 

Q&Aに関してはブラックボックスに感じる部分が多いように見えます。英語・日本語で回答が変わるケースや、誤った回答が返ってくるケースも複数見られました。OpenAI側の問題だけでなく、質問する文章によっても誤差が発生しやすいようです。 

 

どんなときに使えるのか? 

質問の回答を調べるだけであればGoogleのような検索サイトでも可能ですが、1行で回答し、シンプルな回答を得られることが特徴となっております。Teams等とつなげることで、まずは質問をQ&Aに投げることで回答を得て、正しい回答が得られないときに社内の人に質問を投げる事ができます。 

本検証では行っておりませんが、他のExamplesにあるように前半のQ&Aの例文部分で学習させることで、社内のノウハウに沿った回答をするQ&Aとしての活用、また、Azureのサービス全般に対するQ&Aといったことも可能になると思われます。

 


OpenAIは大阪弁をしゃべるのか?Examplesにある「English to French」で様々な翻訳を試してみた- 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。 

公式ページにある通りOpenAI OpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「English to French」をPythonから実行して試行錯誤します。 

 

OpenAIExpamplesにあるEnglish to Frenchとは 

公式の説明では、「Translates English text into French.」とあり“英語をフランス語に翻訳”となっております。 

 

公式のタグでは「Transformation」と「Generation」の2つが付与されています。 

プログラムを見るとエンジンは「Davinci」を使っています。 

 

サンプルコードではいきなり英語の文章とそれに対するフランス語訳があり、いくつかの文章と翻訳を用意することで言語変換できることがわかります。 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

[crayon-61b0fda404267289914281/]

 

 

英語の文章がフランス語に翻訳される 

実行すると「What time is breakfast?(朝食は何時からですか?)」にあたるフランス語「Quelle heure est le petit-déjeuner?」が返ってきます。 

辞書から機械的に返ってきているわけではなく、実行するたびに「À quelle heure est le petit déjeuner?」や「À quelle heure est le petit-déjeuner?」のように微妙に違う答えが返ってきます。 

 

日本語にも翻訳できる 

フランス語ができるなら日本語にも、ということで日本語への翻訳を試みてみます。Strの部分を以下のように変更してみます。 

English: I do not speak French. 

Japanese: 私はフランス語が話せません。 

 

English: See you later! 

Japanese: またお会いましょう! 

 

English: Where is a good restaurant? 

Japanese: 美味しいレストランはどこですか? 

 

English: What rooms do you have available? 

Japanese: どんな部屋がありますか? 

 

English: What time is breakfast? 

Japanese: 

 

日本語でも問題なく「朝食は何時ですか?」と翻訳されました。 

 

 

1行でも使える 

サンプルのように何行もの会話を作るのは労力が必要です。1行だけでも使えるか試してみます。 

English: I do not speak French. 

Japanese: 

1行だけでも「私はフランス語を話しません。」と返ってきました。辞書データなしでも問題なく翻訳できるようです。 

 

複数行文章を入れる理由 

なぜ1行でも翻訳できるのに、何行も入れる必要があるでしょうか? 

 

大阪弁変換サイトを使って以下の文章を用意しました。 

English: I do not speak French. 

Japanese: ウチはフランス語が話せまへん。 

 

English: See you later! 

Japanese: またお会おな! 

 

English: Where is a good restaurant? 

Japanese: 美味しいレストランはどこでっか? 

 

English: What rooms do you have available? 

Japanese: どんな部屋がありまっか? 

 

English: What time is breakfast? 

Japanese: 

なんと「朝食は何時でっか?」と見事に翻訳されました。 

 

 

どんなときに使えるのか? 

翻訳するだけであれば、DeepL翻訳やGoogle翻訳といったサイトでも可能です。 

ただし、上記にあるように会話にあわせて翻訳を変えたりすることは出来ません。 

 

敬語や硬い表現にしたくないときに、柔らかい表現をした翻訳を用意することで適した言葉遣いをすることが出来ます。 

自分の文語・口語の表現を用意することで自分に似た表現をする、といった活用もできます。 

 

また、Azureのサービスとなるのでセキュリティが確保され、社外には出したくない情報の翻訳なんかができるようになる可能性が高いと思われます。 

 


【2021年11月25日版】Azure Machine Learning の利用料金について

はじめに

Azure、AWSをはじめ、多くのパブリッククラウドでは様々なマネージドサービスが用意されており大変便利ですよね。
でも、簡単に始めてみたら月末に想像以上の請求がきちゃった。。。
なんてことはよくあるんじゃないでしょうか?

今回はAzure Machine Learning を利用する上で気をつけたいサブリソース料金についてお話します。

Azure Machine Learning とは?

Azure Machine Learning とはMicrosoft Azure で提供されている、機械学習が簡単に始められるサービスです。
ポータル上からワークスペースを立ち上げれば、機械学習環境を構築するためのあれこれを自動で実施してくれます。

利用料金について

Azure Machine Learning ワークスペース自体には課金は発生いたしません。
ワークスペース内に作成したコンピューティング、サブリソース料金に対して料金が発生します。

コンピューティング料金

ワークスペース内のリソースの中で課金ウェイトの多くを占めるのがコンピューティングです。

■コンピューティング(STANDARD_DS3_V2)
時間:約 46.511 円
月額:46.511 [円/時間] x 24 [時間/日] x 31 [日] = 34,604.184 円
コンピューティング料金

サブリソース料金

ワークスペース内でコンピューティングを立ち上げると以下のサブリソース料金が発生します。
コンピューティングを停止することでコンピューティング料金をとめることができますが、サブリソース料金は発生しつづけます。

■スタンダード ロード バランサー
時間:約 2.8 円
月額:2.8 [円/時間] x 24 [時間/日] x 31 [日] = 2,083.2 円
ロードバランサー料金

■スタンダード (静的) パブリック IP アドレス
時間:約 0.56 円
月額:0.56 [円/時間] x 24 [時間/日] x 31 [日] = 416.64 円
IPアドレス料金

■マネージド ディスク
時間:約 3.4127 円
月額:3.4127 [円/時間] x 24 [時間/日] x 31 [日] = 2,539.0488 円
マネージド ディスク料金

■サブリソースの合計料金
月額:5,038.8888 円

サブリソース料金を停止するには

コンピューティングを削除することで、サブリソースの課金を停止することができます。今後利用する予定のないコンピューティングは停止するよりも削除することを推奨いたします。

おわりに

"Azure Machine Learning 料金"と調べると、基本的にコンピューティングの料金がでてきますが、実際はサブリソースに関しても課金が発生します。
Azure Machine Learning を利用する上で、気をつけていきたいですね。


【5分で解説!】Power Virtual Agentsの概要と ボットの作成・削除まで

はじめに

今回は Power Virtual Agents について解説していこうと思います。
簡単な概要から実際にボットの作成・削除まで紹介しています。

この記事の概要

  • Power Virtual Agents の概要を解説します。
  • Power Virtual Agents でボットの作成手順を紹介します。
  • Power Virtual Agents で作成したボットの削除方法を紹介します。

Power Virtual Agents 概要

Microsoft 社から提供されているチャットボット作成サービスです。
チャットボット作成に関する専門的な開発知識が無くても構築ができるサービスのようです。

Power Virtual Agents のボットが利用されている例として以下があります。

  • COVID-19 の感染率と追跡情報
  • Sales のヘルプとサポートに関する問題
  • 営業時間と店舗情報
  • 業務に関する従業員からの一般的な質問

Power Virtual Agent では 2種類の形で利用ができます。

  • 他のコンピュータと接続せずに、単独で動作させるスタンドアロンな Web アプリ
  • Microsoft Teams 内の個別のアプリ

ユースケースとしては以下があげられます。

スタンドアロンな Web アプリ

  • IT 管理者で、顧客が利用できるボットを作成したい
  • 過去にチャットボット サービスを使用した経験有。Power Virtual Agents を試用またはテストしてみたい
  • エンティティや変数などの高度なチャットボットの概念に精通しており、複雑なチャットボットを作成したい

Microsoft Teams 内の個別のアプリ

  • 組織のチームのメンバーで、他の従業員からの一般的な質問に回答できるチャットボットを作成したい
  • 可能な限り短い時間でチャットボットを作成して配布したい
  • エンティティや変数などの高度な概念を使用したいが、チャットボットを内部でのみ利用できるようにしたい

Power Virtual Agents でボットの作成

初めての作成時に注意すること

初めてのボット作成の際には、Power Virtual Agents のライセンス (または試用版) が必要です。
ライセンスがない場合は、プロンプトにしたがって、アカウントにサインアップすることができます。

ボット作成の手順

こちらをクリック。「無料ではじめる」を選択します。
最初の画面.png

「はじめに」を選択します。
ログイン画面.png

以下の項目を埋めていきます。完了したら「作成」を選択します。

  • ボット名を指定
  • どの言語をボットで使用しますか?
    ※ユーザーとの通信でボットが使用する言語を選択します。
    ボットの言語は一度設定すると変更できないので注意が必要です。
    サポートされている言語についてはこちら
  • 環境を選択
    作成画面.png

作成できました。時間も数分で完了できました。
完成画面.png

既にボットを作成している場合は以下の操作で新しいボットを作成できます。

ロボットのアイコンを選択
「+新しいボット」を選択

ボットの追加.png

Power Virtual Agents 削除

Power Virtual Agents のトップページから設定アイコンを選択します。
全般設定を選択します。
トップページ_削除.png

「ボットの削除」を選択します。
ボットの削除.png

削除ついての確認画面が出てきます。
ボット名を入力・「ボットの削除」を選択します。
削除の確認.png

これで削除は完了です。

おわりに

社内で Microsoft Teams を使用している方は、社内業務の一般的な質問に回答できるチャットボットが作成できるのではないかと感じました。
Power Virtual Agents のボットの作成自体は数ステップで完了できたので他のサービスと組み合わせて実際にチャットボットを作成してみたいと思いました。
次回は Power Automate と連携させたチャットボットについて記事にしていきます。

参考

Power Virtual Agents の概要
Power Virtual Agents ボットの作成と削除