消えゆく記憶とは
消すと判断した情報が本当に消えた時に残った情報。インターネットアーカイブに昔のWebサイトの情報って残ってますよね。こう言うやつです。
「消えゆく記憶」を見つけるには
誰かが「消す」と宣言してインターネットにアップロードした情報はその可能性が高いと言えるのではないでしょうか。
どこでどう探す?
どこで
消すことを宣言しながら情報が上がる場所というと色々あるかと思いますが、検索機能がないとそもそも見つけられない。では検索方法があるサービスを上げるべき。
どう探す
検索機能があるサービスを候補にするとしたが、今現在プログラムから呼べる形でAPIを無料公開しているような情報アップロードサービスは中々ない。その中で以下のWebサービスを見つけた。アクセスしてみて欲しい。
JSON形式で取得できた情報があるだろう。GETパラメータでキーワードを渡すと紐づいた結果が取得できるようだ。
どこでどう探す? の回答は一旦 上記APIでGETパラメータにキーワードをたわして探すで考えようと思う。
import requests
import json
keyword = "xxxxx"
r = requests.get(f"https://search.yahoo.co.jp/realtime/api/v1/pagination?p={keyword}")
j = json.loads(r.text)
jsonのフォーマットなどは詳しく解析していないがどうやら画像など取れるよう。
一旦ここで今回は終わり。
残課題
課題1 「人格」の元になる情報の確定と作成方法
とりあえず二つあげる。一つ目はやはり人物像と言われる画像だろうか。そして二つ目は発言(人格を感じる文章) ではないかと感じる
人物像と言われる画像へのアプローチ
二つ考える。
- 取得した画像に対しTensorFlowおよびTensorFlow Hubを使用し画像が「人物」であるか判定して使えるものを使う
- FaceAPPのような仕組みを用意し、取得した画像を全て「人物」に変換する。まあこれは「そもそもAIで人物像を作れよ」って声もありそうですけど。
発言(人格を感じる文章)へのアプローチ
マルコフ連鎖やword2vecであったり、前回のアドベントカレンダーでも扱ったSeqGANなど候補はあるものの、2023年の今ならChatGPTにサンプル文章渡して喋らせるのが手っ取り早そう。トークンとシークレット取得すればAPIも動いた気する。
でもどうやって問いかけるかはコツがいりそうで 「ChatGPTを〇〇になり切らせる」 という試行錯誤一つで記事がいっぱいできそう。
課題2 「消えゆく記憶」が本当に消えたと確認するには
jsonからURL取れるし、これに定期的にrequestを投げて404が帰ってきた時点で「消えた」と判断すると良いのでは。
課題3 そもそも「消えゆく記憶」をどこに蓄積するのか
これは悩みどころ。サーバを用意すれば如何様にもなるが。
サーバレスでやった方が後世の再現性が高いと考えるが費用が気になる。
AWSに固めればストレージはS3とdynamoDBの組み合わせが王道な気がするし、LambdaとStepFunctionsで全部やってくれる様にもできそうではあるが、TensorFlowなど前提にしてしまうとLambdaじゃGPU使えないからインスタンス借りてそこでプログラム動かす必要があり料金が爆上がりしてしまいそう。
しかしなーGPUがなー、趣味でやるシステムにGPUインスタンスの料金とか払いたくないしVPSなどでやるべきなのかな(それも金はかかるんですけど)
その1って書いたけど続き考えたらやるのめんどくさくなってきちゃった
後続研究をやってくれる人がいたら大歓迎