乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

AI

今回は最近話題の
ジェネレーティブAIについて
まとめてみました

解説動画はこちら



ジェネレーティブAIについて


英:Generative AI
ジェネレーティブAIとは
コンテンツやモノについてデータから学習し
それを使用して創造的で現実的なアウトプットを
生み出す機械学習手法を用いた「生成AI」のことです


主なコンテンツには
・文章
・画像
・音楽
などがあります


流行りの生成サービス

・画像生成
Artbreeder
DALL-E
Stable Diffusion
Midjourney

・文章生成
ChatGPT


ジェネレーティブAIの注意点

画像生成では、ごくたまに
元の画像と全く同じものを
生成してしまう可能性があるので
注意が必要です
(学習データが特定個人だったり
少なすぎた場合)

文章生成では、学習した単語間の
確率分布に従って答えを返すため
質問に対する回答が
必ずしも正しいとは限らないので
注意する必要があります

学習データによって偏った意見や
間違った知識を植えられて
しまっている場合があるため
見極める必要もあります


ChatGPTを賢く使う事例

次の様な用途でうまく使えます
1.文章の要約
2.ブレスト
3.ロールプレイング
4.クロスレビュー

「プロンプト」と呼ばれる
入力する文字列の内容が重要となるので
次の事を指定しておくと良い結果が得られます

1.前提情報を与えておく
2.役割を決めておく
3.品質を指定しておく


ChatGPTのプロンプトテンプレート

テンプレートを使うと
より良い結果にたどり着くのが早まります

# 命令書:
あなたは {役割} です
以下の制約条件をもとに
{用途} を出力してください

# 制約条件:
・文字数は {文字数} 文字程度にすること
・{提示する対象} にもわかりやすくすること
・重要なキーワードを取り残さないこと
・文章を簡潔にすること

追加の情報が必要な場合は
質問をしてください

こんな感じのテンプレートを作成しておき
用途によって変更すると良いでしょう

作成例はこんな感じです
# 命令書:
あなたは大企業のマーケター です
以下の制約条件をもとに
キャンプ用品のアイデアを出力してください

# 制約条件:
・文字数は 500文字程度にすること
・初めて使う人にもわかりやすくすること
・重要なキーワードを取り残さないこと
・文章を簡潔にすること

追加の情報が必要な場合は
質問をしてください



まとめ


今後はもっと生成AIが増えてくるので
流行りのAIの情報収集を行い
使いこなす方法を身につけておくのが
良いでしょう


まずは試してみる・・・
から始めてみるのが
良いと思いますね

今回はジェネレーティブAIを
取り上げてみました
それでは

今回は画像の美人度を判定できる
APIを用いて顔の美人度の
点数を判定していきたいと思います。

解説動画はこちら 


今回使用したのが
Face++ というアプリのAPIです。

これは顔の美人度を判定して
返すことができるので
これを見ていきたいと思います。

なお利用にはAPIキーを取得する必要があるので
先に登録をしておかないと動かせません。

やってみたい方は
こちらのリンクからゲットしておいて下さい。

Face++の登録先

さてサンプルプログラムを見ていきましょう。

先にキーを文字列で指定しておきます。
api_key = "先にAPIキーとかをゲットしてね"
api_secret = "先にAPIキーとかをゲットしてね"

サンプルプログラムはこちら

import requests
import base64
from collections import defaultdict
from pathlib import Path
import pickle
import time

endpoint = 'https://api-us.faceplusplus.com'

face_dict1 = defaultdict(str)

# 画像のフォルダを指定する
src1 = sorted(Path('img/1/').glob('*.png'))

# APIをつついて結果を取得する
for i, file in enumerate(src1):
    img_file = base64.encodestring(open(file, 'rb').read())
    response = requests.post(
        endpoint + '/facepp/v3/detect',
        {
            'Content-Type': 'multipart/form-data',
            'api_key': api_key,
            'api_secret': api_secret,
            'image_base64': img_file,
            'return_attributes': 'gender,age,headpose,facequality,eyestatus,emotion,ethnicity,beauty,mouthstatus'
        }
    )
    time.sleep(1.9)
    try:
        result = response.json()
        face_dict1[file.name[:-4]] = result
        print(i,file.name[:-4],'OK')
    except:
        print(i,file)

apiキーの部分はご自身ので差し替えて下さい。

あらかじめ画像を用意しておく必要があるので
ノートブックの配下のフォルダに
pngファイルを格納して下さい。

キーなどが揃っていればAPIは動きますが
画像によっては失敗することもあります。

成功したものだけ結果に残します。


結果を見るには次のコードで行います。
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
%matplotlib inline

result_1 = {}
for k,v in face_dict1.items():
    result_1[k] = v['faces'][0]['attributes']['beauty']['female_score']

for k,v in sorted(result_1.items(),reverse=True,key=lambda x:x[1]):
    im = Image.open("img/1/{0}.png".format(k))
    img_resize = im.resize((500, int(500*(im.height/im.width))))
    plt.imshow(np.asarray(img_resize))
    plt.text(0.4, 0.4, v, size=30)
    plt.axis("off")
    plt.show()

さて、誰がどんな点数になったでしょうか
点数に関しては動画の方をご覧ください。

上位と下位で判定してみましたが
納得感のある点数が出るのでは
ないでしょうか?!?!?!

自分の顔画像とかも送ってみれば
客観的に判断できるかもしれませんね。

興味がある方は
使ってみて下さい。

今日はここまでです
それでは

今回は最近出来た
AIによる音声合成サービスである
CoefontStudioのご紹介です


解説動画はこちら


さて
こちらは最近出来た音声合成のサービスのようです
coefont.studio


何も登録しなくても30文字までなら
音声を確認する事ができます
スクリーンショット 2021-05-02 17.27.20

せっかくなんで
もっと試したいですよね

Googleアカウントを持っていれば
そのままログインできますんで
YouTubeなんかみてる人は
Gアカウントでログインしましょう


ログインするとこんな感じです
スクリーンショット 2021-05-02 17.29.33

音声合成できるキャラクターは
「アリアル」と「ミリアル」の2種類で
「ミリアル」の方はプロトタイプの明記がありました。

テキストは1ブロック200文字まで入力でき
それ以上はブロックを分けるみたいです。
スクリーンショット 2021-05-02 17.31.51

ブロックごとに読み上げの設定が行えます
声のスピードや声の高さ
読みやアクセントの修正が行えるようです

スクリーンショット 2021-05-02 17.32.23

また、音声データのダウンロードも行えます。

かなり自然に読み上げている部分もあり
最近の音声合成サービスの質の高さには
おどろかされるばかりです。

このサービス自体は無料で利用できますが
合成した音声を利用する場合は
コピーライトを付けてください。

自分の声でフォントを作れるみたいな
明記もあったので
そっちは有料かもしれませんね

なかなか面白くて使えるサービスですので
音声読み上げの際は利用したいですね

今回はこれまでです
それでは。

令和の時代が始まり
AIによるリストラ計画が本格化してきました。

さて
どうすれば生き残ることができるでしょうか?

解説動画はこちら




キーとなるのはAIの仕組みです。

現在流行っているAIは
RPA

ロボティック・プロセス・オートメーション
と呼ばれるソフトウェアロボットです。

当然ソフトウェアのためコンピュータ上でしか
働きません。

ただし、PCで行なっていた
簡易な事務作業は
全てこれで代替できてしまいます。

そうなると
簡単な事務仕事をしていた人は

配置転換を余儀無くされるか
リストラの対象となってしまいます。

特に45才以上は
リストラの風が吹き荒れています。!!!

そのような時代に
どうすれば生き残ることができるでしょうか?

リストラされないためにはどうすれば良いかについては

こちらに解説動画を作りました。


参考にしていただけると
幸いです。





ディープラーニングを活用した
AIの社会実装事業を展開する株式会社ABEJAの主催する
カンファレンスイベント

ABEJA SIX 2019

こいつに行ってきました。

場所は品川駅徒歩五分くらいのところにある
グランドプリンスホテル新高輪の国際館パミール

会場には12:40分くらいに着いたものの
かなりの人で受付もすっごい並ぶ

基調講演はサテライト会場だったのだが
これもほぼ満員

まず最初は
株式会社ABEJA 緒方 貴紀 氏 

ABEJAのこれまでの振り返りと
今後のロードマップや展望について

2012年のディープラーニングの
ブレイクスルー以降
世界中でDL周りの研究開発が進み

今では主要な大会社では
ほぼほぼ実装が済んで
サービス展開されてる感があるが

様々な会社向けにAIの実装を手助けする
プラットフォームという印象のABEJA PLATFORM
を展開してますよ、ということだそうです。

近年のトピックの話

いくつかのワードが紹介された


イメージネットの分散学習による高速なモデルの生成
分散学習の民主化がなされたとのこと


3億枚の画像と512個のGPUで作られた
敵対的生成ネットワークだとか
生成された画像を見ても
区別がつかないな



2018年10月11日にGoogleからArxiv公開された論文で
汎用言語表現モデルだそう。

文中の単語の穴埋め問題などが解けるとか
自然言語処理の
デファクトスタンダードになるそう。

最近はこういうトピックが
ありましたとのことでした。

ここら辺はgithub にコード類も公開されているらしいので
情報はすぐ手に入りそうですね。

ABEJA PLATFORMでは
1.データ取得
2.データ蓄積
3.データ確認
4.教師データ作成
5.モデル設計
6.学習
7.評価
8.デプロイ
9.推論
10.再学習

ここら辺をサポートするよう
システム化したんだそうです。

いろいろ機械学習をする上では
手間のかかるところ多いですね。

学習はあっちゅうまだけど
データの整備と前処理で
死ぬほど時間かかってますから
それが軽減されると仕事は捗るよねーー。

リリースから6年ほど経つみたいで
現在では

600アカウント
データレイク 10TB
データセット170万
トレーニング 1万ジョブ
モデル500モデル 2千万バージョン
4000を超えるエンドポイントが
存在しているのだとか

うーーん、かなりのボリュームです。

スポンサーに
AWS , GCP , NVIDIA
とあるのでここら辺のクラウドやGPUで
達成されているのでしょう。

気になったのは
アノテーションの部分

ABEJA PLATFORM ANNOTATION

恐らくAI開発にとっては
アルゴリズムは民主化され、誰でも
同じアルゴリズムで学習や推論が行えるようになっているため

AIの差別化がはかられる部分としては
学習データの質とボリュームの部分での競争になる。

ゴミデータが大量に有っても
結果ゴミだし
そうなると質の高い学習データを揃えるのには
それなりのコストがかかる。

それをサポートするツールということで
UIも素早くアノテーションでき使い勝手がすごく良さそう。

これはAI関連サービスの中でも
いい所を突いたサービスだと思われる。

これにより、人間の目で補正をすることで
より質の高いデータを素早く生成できると・・・

画像や動画だけでなく
テキストや単語、文章へも対応と
よく出来ています。

ABEJA インサイト for リテール
店舗内行動のダッシュボード化
行動の定量化とデータドリブンな経営の支援をするためのツール

日々10TBトラフィック解析
700店舗のインストール
2億人のビジターを計測ということで
すでに我々もトラッキングされているでしょう。

雑貨、アパレル、商業施設の導入が多い。

顔認証によるリピート推定と
TOFセンサーによる店舗トラッキングの様子が
なかなか印象的だった。
店舗内回遊はこんな風に捕らえられているのね。


今後のロードマップ

データサイエンティストの不足で
初期検証を行えないというニーズに対して
初期検証の支援を行うmlaas
というのを出す?そうです。


あとは
アベコインとかいうものを作って
会場を巡ったりするともらえたりするそう。

深センへのツアーでの
キャッシュレス社会の体験をヒントに
コインを作ったそうで
今後このコインでいろいろ実験するそうです。

ここまでが基調講演



株式会社ディー・エヌ・エー 
AIシステム部 副部長
内田 祐介 氏 


DeNAの事業や組織、AI関連の研究成果の話

DeNAではkaggler制度があり
kaggleの成績が社内にも反映されるそうで
高成績を残せると、労働時間を多くkaggleにさけるそうです。

kaggleのメリットとしては
1 問解くだけで
1案件回した時と同じくらいの学習体験と
様々なお題に対応するために多様な手法、アプロート方法を
学ぶことによるスキルアップの効果が大きいということでした。

まあ、懸賞金付きのやつとかは
リクルーティングにも使われているわけで
kaggleマスターを抱えるているという
ブランディング効果も見込んでいるのだとか。

これはkaggle大好きな皆さんは
DeNA行くしかないですね。

DeNA社内は
データサイエンティスト
MLエンジニア
インフラエンジニア
AIエンジニアがいて
それぞれ作業分担されている組織構造

AIの検証、プロト開発から実装まで
行える体制が整っているのは大分強いですね。

DeNAでは
様々な事業基盤があり
そのなかでもAI開発が進んでいるのが
オートモーティブ事業

交通事故低減に向けた
AI技術活用の取り組みをしているだと。

レーン検出と危険運転察知アルゴリズムの開発
物体検出や消失点の計算
3D地図を用いたパスプランニング

自動運転系の技術は結構奥深いですよね。

次にゲーム事業

「逆転オセロニア」

におけるユーザーの離脱防止策についてのお話

ゲーム初期に離脱してしまう原因として
ゲームのデッキの組み方が分からないとかが有り、
おすすめデッキを導入したら比較的離脱が防げたと。

こういった序盤のサポート機能を追加する部分で
いろいろデータ分析と検証を進めているそうです。

最後が
アニメの生成技術への取り組み

GANを用いて
アニメのコマとコマの間を生成し
ぬるぬる動くように
中間コマを作ったのだとか。

従来のGANでは全身を作るのが難しかったが
パーツごとに少しづつ作ってゆく手法を取り
徐々に小さな画像からつなげるようなアプローチで
画像生成しているそうです。

確かにヌルヌル動きますね。


次の講演は
株式会社サイバーエージェント 
AI Lab Research Scientist
山口 光太 氏 


機械学習による広告クリエイティブの制作支援と生成

まあ同業者なので
同じようなことやってます。

デジタル広告は
マス広告と違って、同じ素材、同じ図柄ではなく
一人一人にカスタマイズした広告であることが求められる。

広告バナーそのものを
どれだけクリックされるのかを
事前予測して作ることができるとか。

手法としては
広告の画像そのものと
広告の配信条件を学習データとして
クリック率を出す単純な回帰のモデルを組む

これにより配信前に
ある程度の品質保証ができ
適切な入稿対象の選択と結果予測が可能になると・・・

まあ
みな考えることは一緒ですね。

面白かったのは配信メディアで
クリックに効く要素が違うということ

FBは画像やテキストの品質
TwitterとLINEは広告の配信設定だったと。

あとは機械学習のモデルも
画像とかを使わないのであればDLを用いずに
デシジョンツリーなどの方が結果が良いとか
逆にDLが効果を発揮するのは
高次元のデータを取り扱う際だとか。

ここら辺も広告業界では
共通認識ですね。

こういう予測を元に
クリエイティブ制作の支援として
ストック素材の画風変換
バナー人物の自動差し替え
レイヤーの配置予測や
キーワードの生成

などを行っているそうで
クリエーターの作業軽減につながっているそうです。

やはり、同じ業界だと
同じデータで同じ手法に収束するのだなーと
改めて感じた1日でした。


明日も開催されますが
行けないかなーー・・

松尾豊先生の講演は聞きたい。

このページのトップヘ