Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

DjangoCongress JP 2023のトーク応募は今日(8月21日)締切です

皆さんこんにちは。

DjangoCongress JP 2023トーク応募の締め切りは今日です!

Djangoの知見がある方、何か共有したいことがある方、会社を知ってほしい方、ぜひご応募ください。

forms.gle

あまりハードルは高く考えなくても大丈夫です!
この機会にカンファレンス登壇にデビュー!とかでも大歓迎です。

コミュニティは皆さんの力で作っていくものだと僕は考えています。
僕はイベントの主催者ですが、できることはほんの少しです。登壇してくれる方や、参加してくれる方がいてやっとイベントというのは成り立ちます。もちろん、あなたもその一員です。

勇気はたしかに必要ですが、もし少しでも興味があるなら、ぜひ傍観者でいる自分にさよならしてみませんか。

楽しいイベントになると思うので、ぜひ!

djangocongress.jp

執筆:Kiyohara Hiroki (@hirokiky)
Shodoで執筆されました

ChatGPTで御社(AIスタートアップ)は倒産しないの?という声に

弊社は倒産するのかい?!

すーーーーーーーーーない!!!

ハッ!(笑顔)

世界的に人工知能(AI)の話題が盛り上がっています。ChatGPTは爆発的に注目を集めていて、とくに次世代のGPT-4の登場が話題になり、ますます熱いAI分野です。

そこで「AI校正のShodoや御社(株式会社ゼンプロダクツ)は大丈夫なの?」 と心配していただきますので、お話したいと思います。

この記事は僕が会社について書いたメッセージですので、未来の予言であったりChatGPTに関する学術的な評価ではないことをご留意ください。

AIが役所で活用される未来

まず僕はこのGPTの流れがまだ始まりの1%にすぎないと思っています。

未来では、GPTのオープンなバージョンが出て利用しやすくなり、大企業や役所といったクローズドな環境でも活用されはじめるだろうと考えています。別にGPTに限らず、AIを活用してコミュニケーションやドキュメント、受付や問い合わせ業務を改善するのは急務です。日本衰退の原因はここにあるので、システム化やWeb化とともにAIにより改善されるべきです。

弊社の株式会社ゼンプロダクツは煩雑な仕事やペーパーワークをAIプロダクトで破壊し、人々の創造性や人間性を開花させることをミッションとしています。今の非効率な社会や仕事を変えることで、いわゆる「オワコン日本」から脱却できると僕は信じています。

現状ChatGPTに内部の情報を送信したり、手元で運用するのは難しいですが、大規模言語モデルがオープンになる未来は見えています。僕たちはGPTに限らず日本の事情やそれぞれの課題にあった解決策をAIプロダクトで提供したいということです。やっぱりその点は僕たち国産スタートアップの頑張るところかなと思っていますし、かなり大きな市場規模だとも思います。

なので、オープンな大規模言語モデルが出たタイミングこそ本当の世界的な「波」の始まりなのかなと思っています。

Shodoの価値は?

OpenAIに負けてることはたしかです。GoogleやDeepLすらOpenAIには負けていますからね。神と戦ってはいけません。

この文章も、負け犬の遠吠えなのかもしれません。

ですがShodoの価値はライティングや執筆、編集の仕事で必要になる機能を提供したり、企業向けにクローズドなAIを提供することにあると思います。GPTを使える環境ではそれも活かしつつ、クローズド向けのAIも提供できます。

たしかにChatGPTに依頼すれば校正もできますし、そもそもChatGPTに書かせれば済むかもしれません。ですが実際にはこういった機能も求められます

  • 固有名詞を数1000件設定し、1万文字の文章で表記ゆれをチェックしたい
  • クライアント企業から指定される表記ゆれシートに準拠したい
  • 1文の長さを100文字以内にしたい
  • 日本語的によくある間違い(敬語の間違いなど)を直したい

その点を解決するツールとしてもShodoは必要かなと思います。GPTへのプロンプトを工夫して解決できるかもしれませんが、速度の問題や、プロンプトの長さなど課題もあります。プロンプトが複雑なら、それをShodoが生成してChatGPTに聴いてあげるのも素敵です。

ですのでShodoはGPTを最大限活用しつつ、ShodoのAIや自然言語処理を活かした校正も提供するつもりです。実際に先日、ChatGPTで下書きを書く機能をリリースしました。

他にも、こういった利点もあります:

  • 国内稼働の校正APIを提供しており、ShodoのAIはクローズドな環境へのデプロイも可能
  • プラットフォームとして記事の相互レビューができ、Markdownの執筆がやりやすい

AI技術を広く活用して、ライティングや執筆、編集の仕事を大幅に改善するプロダクトを作りたいと思っています。

環境がどう変化しようが、僕たちがこの思いを持っていれば、GPTの登場すら好機というわけです。実際にShodoのユーザーさんはChatGPT登場後、むしろ増えています。

なぜ僕はライティングのAIを?

もともと僕は学生時代に、個人にニュースをレコメンドするようなWebサービスを作って卒論としました。そのころから自然言語処理やAI(当時は集合知機械学習)に興味があり、それを活かしたWebサービスを作りたいと思っていました。

ブログの名前にあるとおりここは「Make組ブログ」で、プロダクトを作ることばかり考えています。僕は貧乏な家庭で育ったので、Webのように誰でも参加・開発でき、情報やデータもオープンな世界に魅了されてしまったんですよね。

その点でこのクローズドGPTの世界は、嬉しい半分と寂しい半分です。でも大丈夫です。いつかオープンな世界は来るでしょうし、国産大規模言語モデルにも期待したいです(数十億円くれれば僕もやります)。

ですが本当に僕たちがやるべきことは、WebやAIの技術を使って仕事を楽にしていくことです。たぶん、最先端の仕事や技術を改善するのはOpenAIがやってくれるでしょう。僕たちはそうでなく、まだAIが導入できない世界や、改善すれば大きなインパクトを生む世界(たとえばライティングや執筆、ニュース)にAIプロダクトを提供して世の中を良くしたいわけです。

まとめ

結論から言うと、たしかに廃業の危機にも見えるが、逆に言えばGOGOチャンスであり日本を変える企業になるということです。これは投資家さんにも話していて、やばいサイコロにベッドしちゃいましたねと伝えています。

ポイントとしてはここです:

  • AIは今後、大企業や役所などでも使われてDXされるべき
  • 弊社は日本やある分野の課題を解決するAIプロダクトを提供している
  • 僕はずっと自然言語処理やAIでプロダクトを作っていたいし「オワコン日本」をなんとかしたい

というわけでスタートアップらしく倒産する危機とともに生きていますが、僕たちのミッションやすべきことは何も変わっておらず、むしろこれからが本番だというお話でした。

この話に興味がある人は、昨日配信されたばかりのポッドキャストもぜひ聴いてください

やっていく気持ち!!

執筆:Kiyohara Hiroki (@hirokiky)
Shodoで執筆されました

ChatGPTを非同期でPythonから利用する方法

ShodoがChatGPTに対応しましたね。

最近注目されている自然言語処理技術の一つChatGPT。本記事ではPythonからChatGPTを非同期で扱う方法についてご紹介します。

実はこの記事もChatGPTに書いてもらい、僕が加筆し、Shodoで校正しています。

ChatGPTと非同期で扱う話

ChatGPTとは、人工知能の一種であるGPTを用いた、対話型の自然言語処理技術のことです。

APIも公開されて最高!なわけですが、 いかんせんレスポンスが遅いため面倒です
通常、数ミリ秒の世界で生きているわけですが、ChatGPTのAPIは30秒以上ふつうにかかります。同期的なWebサーバーで返答を待ってしまうと、ワーカーが長時間待ってしまうのであまり嬉しくありません。

そこで非同期で扱うことが大事になります。

そう。PythonのAsyncです!Async最高!

ChatCompletion.acreateを使おう!

openaiというPythonライブラリを使うことで、ChatGPTをPythonで利用できます。openai.ChatCompletion.create という関数を使う例をよく見ますが、非同期の ChatCompletion.acreate という関数を使いましょう!

import openai

res = await openai.ChatCompletion.acreate({...})

オプションなどは create と同じです(参考 https://platform.openai.com/docs/guides/chat

また stream=True というオプションを渡すことで非同期ジェネレーターで受け取れます。すごい。ChatGPTのWeb版のように、文字がどんどん書かれるようなUIを作る場合に必須となります。

Djangoでの利用例

ChatGPTを非同期で扱う場合、FastAPIやDjangoといった非同期対応のWebフレームワークを使うのがおすすめです。以下はDjangoを用いてChatGPTを利用する例です。

class GPTView(View):
    async post(request):
        res = await openai.ChatCompletion.acreate({...})
        return JsonResponse({"text": res["choices"][0]["message"]["content"]})

これで uvicorn などで起動すれば、ちゃんと非同期で扱ってくれます。Django最高!
AsyncStreamResponseDjango 4.2からの対応のようですので、それも楽しみですね。

エラーハンドリングの仕方やDjangoRestFrameworkで非同期をやる方法などは今後気が向けば書きます。

まとめ

ChatGPTをPythonから利用する方法について、 ChatCompletion.acreate という非同期の関数を紹介しました。また、非同期をWebで扱う場合はFastAPIやDjangoがおすすめです。

この記事もChatGPTとShodoのAIのおかげで書きましたが、書き始めの下書きと誤字や間違いのチェックがあるだけで、気がすごく楽ですね。

執筆:Kiyohara Hiroki (@hirokiky)
Shodoで執筆されました

ロケットと、信じる話

(今日は雑記として、結論もない話を書きました)

H3ロケットの打ち上げが失敗してしまい、僕としては結構ショックでした。
いやー、残念。やる意義も大きくて、期待していました。

1号であり試験機なので今後、改善すれば良いと思います。もちろん失敗についてや大事な衛星の打ち上げに使われたことなど、再考すべき点はあると思っています。

でもそれを含めて、応援したい気持ちです。

そこでふと、もう少し日本に期待をして良いんじゃないかなと自分に対して思いました。やっぱりどこかで「日本はダメだ」、「アメリカが正義」と言いたい気持ちも見え隠れしてしまいます(自分の中に)。とくに、こういう機会はそうです。

それって結構、寂しいなと思います。

ちょっとここから、ロケットの話から飛躍した話になってしまいますが…。

「日本オワコン」論って、論理的に正しいかもしれませんが、自己成就予言に陥ってしまう気がしています。それってもったいなくて、「なんとか解決してしまう愚かさ」を失ってしまいます。

たしかに日本には少子化GDPの低下などの悪材料が多いですし、債権にしろ株式にしろアメリカを買うほうが結果は良いでしょう。でもそれも、僕たちがオワコンと思うことでオワコンの道を加速しているようにも思えます。結局は皆んなが変えれば、変わりそうな気もする。信じることをやめたら終わりなんですよね。でもまぁ大阪の都構想が頓挫したり、やっぱり変化したくない国なのかな、と思ってしまうこともあります。

でももう少し、日本というか、「自分たち」に期待しても良いんじゃないかなと思います。今の若い人たち、働いている世代の人たちですね。たぶんデータで見ればオワコンと言うほうが正しいんですが、これは正しさではなく、根拠のない自信みたいなものです。皆んながそう期待して何かを起こせば、案外、あっさりオワコンじゃなくなる可能性もあります。

不用意に悲観しないというか、目の前の信じれるところで頑張るということです。

ウォーレン・バフェットビル・ゲイツが成功したのは昔、アメリカに期待したからだとも言えます。悲観論であればウォーレン・バフェットのようになれないのは事実です(アメックスが傾いたときに株を買ったりしてますから)。

だから僕はもう少し日本の製品を買おうかなと今ちょっとだけ思いました。そして、個人の購買動機だけ少し変えてもあまり意味はないので、こんな記事を書いてみようかなと思いました。まぁ、買うときはもちろん製品として良ければですし、Sony信者になろうというわけでもないです。Apple製品は良いですからね。

ただもう少し僕自身や近い人たちを信じたり、そこにお金を使ったり、建設的に前へ進むアクションをしようと思いました。そして、H3ロケットのこれからを応援しようと思いました。

僕の税金でロケットを飛ばしてくれ。信じてるから。

そんな話でした。

執筆:清原 弘貴 (@hirokiky)
Shodoで執筆されました

31歳になりました

めでたい!

起業した会社で初めて資金調達を実施しました。 もう、前に進むだけです。

将来、国家公務員だなんて言うな 夢がないなあ

Keep Tryin' / 宇多田ヒカルより

open.spotify.com

30歳も超えると、もう何歳がどうとか関係なくなってくるので、楽でいいですね。

過去分

blog.hirokiky.org

blog.hirokiky.org

blog.hirokiky.org

blog.hirokiky.org

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

歳とともにコンテンツからの衝撃や感動が減ってきた?という話

雑記です。

最近はFANBOXにこういうことを書きがちですが、たまにはブログでも書こうと思います。 単なる思ったことの記事なので、ふーんとか、そういう気持ちで読んでください。

コンテンツからの衝撃

何というか最近、新しいコンテンツを摂取しても 「うわ!これは衝撃的だ」と思うことが減りました。これはコンテンツ批判などでなく、慣れや飽き、そして案外SNS依存のようなものが原因だと思われます。

どういうことでしょうか。

価値観が揺さぶられるというか、自分の人間全部で向かい合う体験が日に日に減っているということです。たとえば僕にとってはアニメエヴァバック・トゥ・ザ・フューチャーは人生の根本にあります。最近だと「人間の土地」というエッセイなどがそういう作品でしたが、そういった作品に出会う数がだんだん減っている気がします。

皆さんにも覚えはないでしょうか。

良く言えば価値観が定まってきた

ただ最近は新しい何かを見ても「あぁ、どこどこで見たあの感じね」と勝手に納得してしまいがちです。もちろん今でもメイドインアビスにはワクワクしますし衝撃を得ますが、そういう衝撃を与える何かは歳を重ねるごとに少なくなっています。

楽しんだり、ファンとして追いかけたりもできるのですが、「うわ!」と自分を揺さぶられることが減っています。むしろ揺さぶられないように見ようとしている節も自分に感じるのです。消化することや何か言おうとすることを考えていて、全力で見てないんですね。

良く言ってしまえば価値観が定まってきたという感じです。何とも30歳らしい悩みですね。この悩みすらも青臭く感じるときがくるのかもしれません。ただやはりそれに危機感を覚えるとともに、これが行き過ぎると何も楽しめなくなるのではという恐怖すらあります。

もちろんいつだって初心に帰ることは今すぐできます。ですがどうも自分にある引き出しに照らし合わせてしまうことが増えています。

深く潜る気持ちが減ったのはなぜ

もう一つ別の視点でいうと、深く作品に潜る体験を自ら避けているような気がします。

年齢的な問題や仕事、子育ての忙しさもありますが、それ以上にネットというものが受動的かつ刺激的になりすぎて、能動的なダイビングが難しくなっている感覚もあります。特にここ数年で国際社会や日常が不安定化したこともあってか、どことなく「何かが定まっていない感覚」があります。ニュースをどうしても追いかけてしまったり、受動的で「軽い」コンテンツになびきがちです。

要するにSNS依存症になっているということです。

陰謀論っぽくわざと言うと、僕たちの脳は知らず知らずのうちに疲弊させられていて、受動的になるようにTwitterYouTubeのAIに支配されているのかもしれません。これは極端な言い方ですが、SNSやニュースを1週間見ないという生活はもはや無理になっていると思います。

何というかその感覚のせいで、自分の深い部分と対話しながら作品にも触れられていない気がします。 前述したようにそもそも心ここにあらずで作品を見ていたり、「後でこう言おう」と考えながらコンテンツに触れている気もします。

まさに、今のあなたもそうだったりしませんか?

答えは分からないが

これは答えを求める記事ではないので、結論は用意できていません。

おそらく原因は複合的なものであり、社会情勢や育児の忙しさ、会社経営の大変さなど僕の中にも色々あると思います。でもそれで諦めてしまうのは少し寂しい気持ちがします。

改善する方針としてはこんなところでしょうか:

  • コンテンツの消費や消化、レビューでなく体験を重視する
  • SNSを眺める時間を減らして脳のスペースを空ける
  • 自分の引き出しは置いておいてなるべく純粋に全力で見る

この答えはちょっと安直かもしれません。

ともあれまずニュースに反応してしまうのが、自分を顧みても良くない気がしています。また、コンテンツの消化や今の価値観で考えることに意識が向いていて、その体験を軽視している(勝手に納得したり批判的に見る癖が付いている)傾向もありそうです。

意識していかないとできない気もしますね。 ふと思ったのですが、VRが良いのはスマホをイジれないことなのかもしれません。

もし皆さんのおすすめしたい作品があれば、ぜひ教えてください。 僕からは「コンテナ物語」、「竜の卵」あたりをおすすめしておきます。

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

イラストのAI学習禁止はできるのかをAIエンジニアが短く話します

こんにちは。 mimic(ミミック)というサービスがリリースされ、インターネットを騒がせています。 このサービスはアップロードされたイラストを学習して、類似されたイラストを生成できるというものです。

illustmimic.com

誰がこの文章を書いているか

ShodoというAI文章校正サービスを作って運営しているものです。@hirokikyといいます。 Shodoは皆さんがメールや記事を書くときに、変な日本語になっていないかや、二重敬語を使っていないかなどをチェックしてくれるサービスです。

この記事はざっくりAIエンジニアが書いていると思ってください。 「AIと著作権」というかなりセンシティブな問題について当事者でもありますので、今回の件をサービスの設計などを含めてざっくり話します。

私自身も勉強中の身ですので、ぜひ文章に改善点があれば教えてくれると嬉しいです。 そして実際に困ったことがあったときは、著作権に詳しい弁護士の方に相談してください

で、AI学習禁止はできるのか?

さっさと結論を言うと、あなたのイラストを「AI学習禁止」と確約することはできません。規約で明示することはできますが、ケースごとの判断となります。

そもそも今回の話ですが「自分の著作物を勝手にアップロードして利益を得るな」という意味ですでに悪意のあるユーザー(なりすましたい人など)は著作権法違反となり得ます。しかし非公開かつ私的利用の範囲では、単にアップロードだけされても著作権違反と言うのは難しいかもしれません(指摘があったので1文を追記しました)。

またあなたのイラストによく似た画像を作って不当に利益を得るのは著作権法違反になり得ます(これは議論が分かれるところで、詳細は下のリンクの「第4の1.そもそも著作権侵害に該当するのか」を読んでください)。「AI学習禁止」という文言を急いで追加しなきゃ!というわけでなく、今までの「無断転載・無断利用・アップロード禁止」という説明で十分と思われます。ただ将来、AIの発達に伴ってもう一度考える機会がくるでしょう。

追記: より著作権法を見ながら解説された記事が書かれました。法律と照らしてより深く知りたい方はこちらを参照してください。

Midjourney、Stable Diffusion、mimicなどの画像自動生成AIと著作権 | STORIA法律事務所

なぜAI学習禁止をできないのか

ざっくり言うと、平成30年の著作権法改正で著作権者の利益を不当に害しなければ、公開された著作物を大規模データの一部としてAIに学習させられるようになりました。ですので、世界に公開したイラストを普遍的な意味で「AIの学習を禁止する」とするのは難しいでしょう

利益を不当に害する場合そうではありません。あなたのイラストを意図して使い、表現が全く似た画像が生成されて困る場合には、ちゃんと著作権法違反となり得ます。クリエイターの権利は保護されていますが、まだ裁判での判例がないのも現状です。類似性をどう判断するかも難しいところで、画風レベルであれば著作権で保護されません。これから裁判やAIサービス開発者の倫理規定、イラストレーターの意見などを含めてコンセンサスを作っていく必要があります

著作権法のオーバーライドについて追記:個人の規約として掲示することはできますので、「機械学習やAI、解析しての利用を禁止します」と明示できます(「無断利用禁止」より明確)。その場合も絶対ではなくデータの用途やケースにより判断が個別に行われることになります。

mimicの問題はなんだったのか

今回のmimicについてはAI学習という以前の、サービス設計やコミュニケーションの問題があると思います。

改善するとして、たとえばpixivに公開アップロードされた自分の画像を、pixivと連携した本人だけが学習できるようにすれば問題はかなり小さくなります。連携できるpixivアカウントの登録日などで制限すれば、悪意のあるユーザーの大半を排除できるでしょう。ただこれは実装のコストもありますので、現状でも通報システムくらいは必要です。

実際にmimicも、他人の画像をアップロードすることを禁止しています。なので、「問題ないサービス設計か?はいかいいえで答えてください!」とひろゆきに聞かれると「うーん…、問題はありません」と言ってしまいそうです。ただユーザーを信頼しすぎている点や、それによって生まれる危険をスルーしすぎていると思います。

イラストレーターの人は悪意のあるユーザーを断罪していくコストが増える可能性はあります。mimicというサービス側で何かしらの対策は考えたほうが良いと思います。イラストレーターの人が心配しているのは、そこじゃないでしょうか。

サービス設計とはお客様や世界とのコミュニケーションです。利用される人や関係する人がどう幸せになるのかだけでなく、悪影響がないかも考えるべきでしょう。AIに関したサービスの開発者は私を含めて法律だけでなく、倫理観や権利への考え方、コミュニケーションも大切にしたほうが良いと思います。

改正された著作権法は悪法なのか

改正された著作権法は悪法なのでしょうか? そう結論づけるのは早計です。ただ、個々に議論の余地はあります。

デジタル技術の発展のためオープンなデータを活用できることは重要です。たとえばmidjourneyって便利ですごいですよね。あれは他人の著作物を勝手に学習しています(たぶんですが高確率でそう)。そしてGoogleTwitterもおそらくあなたの著作物を、ビッグデータの一部として学習していると思います。今日、大きなテックカンパニーはほとんどがAIを活用して、皆さんの生活に役立っているでしょう(望んだ結果を返してくれるGoogle検索やYouTubeのレコメンド、Google Photoにある僕の娘の写真とか)。

また、改正著作権法は大規模なデータや研究、技術開発のためという背景でAIへの学習を認めています。「表現や思想又は感情を自ら享受し又は他人に享受させることを目的としない場合のみOK」という条件がついているので、それを逸脱していればWebサービスやAIシステムなどとしても違反となります。

https://www.bunka.go.jp/seisaku/bunkashingikai/chosakuken/bunkakai/51/pdf/r1406118_08.pdf

意図して露骨な著作物を学習・生成させて使う場合は現行法でもアウトとなり得るでしょう。なので「改正された著作権法は悪だ」、「また我々の知らないところで法律を変えやがった」と反応しすぎるのはやめたほうが良いです。AIの利点を損ないすぎる法律を日本で通してしまうと、日本だけサービスの質が低く発展しない国になる可能性もあります。

個別のサービスには議論の余地がありますし、日本の著作権法も今後また改正されていくでしょう判例もまだありません。ですのでイラストレーターの皆さんの意見を出していくのは良いことだと思います。ですが、「悪法だ!」と反応的になる前に、少し落ち着いてから良い法律や権利について議論するほうが良いと思います。

おわりに

今回のような議論が深まることは、僕はとても良いことと思います。

ですがあまり過剰な反応は危ういと思います。本当にちゃんと進めるべき議論が進まないおそれがあるからです。とくにSNSの渦というのは、人間の心を乱してしまいます。僕も経験があります。

僕もなるべく公平かつ簡潔にこの記事を書いたつもりですが、もちろん立場としてAIエンジニアですのでAI側に優しいバイアスがありそうだとは念頭に置いてください。そして、間違いがあれば僕に教えてください。

大切なのは落ち着いて、世界を一つひとつ良くしていくことです。そしてAIを使ったサービスに問題があれば開発者は説明や謝罪をして、修正したほうが良いでしょう。私も法律家や弁護士ではありませんが、著作権法や今回の話に深く関わる人間の一員です。なので記事で助けになる説明をしたいと思いましたし、自身の仕事でも大切にしていきたいと思っています。

イラストレーターの方のことは、AIエンジニアの皆さんも、もしかしたらAIくんも大好きだと思います(そう信じたいです)。ただ、今回みたいなサービス側の失敗(というか不備や齟齬)があるのは少し残念で、同業者として申し訳なくも思います。でも改善すれば良いと思います。

僕の記事がなにかの助けになると嬉しいです。そして、世界をより良くする方法があれば、一緒に考えていけると嬉しいです。

良ければ僕のTwitterのフォローをよろしくお願いします。

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました