📖

DeepLearningについて、最近作ったもの、書いたもの、勉強したこと

2023/04/05に公開

こんにちは!逆瀬川 ( @gyakuse ) です。
今日は最近作ったもの、書いたもの、勉強したことを備忘録的にまとめていきたいと思います。

なぜ書くのか、なぜ学ぶのか

DeepLearningの普及以降、Attention Is All You Need以降、Hugging Faceでの民主化以降、そしてStable DiffusionやChatGPTの登場以降、どんどんAGIへの距離が短くなってきています。未来は想定より大きく変わりそうです。どったんばったん大騒ぎのときはみんなが分かっておくべきことは効率的に共有すべきで、そのために書いています。書くためには論文等を読む必要があります。そしてそのためには基礎からしっかり学ぶことが大事です。次の一歩をみんなで歩んでいくために、学び、書いています。

間違ったことを言うかもしれませんが、それでも誰かのためになれば嬉しいです。あと、個人的にはこんな面白いお祭りの場面では、自分もそのお祭りの中心まで行きたいです。今遊べるのは、OpenAIやMicrosoft、そしてMetaやGoogleなど限られたプレイヤーですが、わたしは英語がニガテなので、日本語圏でもいい感じになるといいなぁと思っています。その助けにほんの少しでもなることを願ってます。

最近作ったもの (主に2023/2〜)

英語論文翻訳機 (2023/2/10)


https://qiita.com/sakasegawa/items/f50aae7f3acf475411aa

ArXivの論文を読む際に日本語対訳があると嬉しいです。レイアウト検出modelを使ってreportlabで書き込むことで達成できました。

英語スライド翻訳機 (2023/2/11)


https://qiita.com/sakasegawa/items/78c66fc83eda03b784da

文字埋め込みのない英語スライドを読むときも日本語対訳があると嬉しいです。こちらではAzureのFormRecognizerを用いてOCRをしました。また、文字を置換する際には背景を考慮してフォントカラーを決定する必要があります。これを工夫することで綺麗に置き換えすることができました。

英語論文要約機 (2023/2/12)


https://qiita.com/sakasegawa/items/1d906d66330a09b6939f

GPT-3.5系のAPIを用いて要約システムを作りました。英語論文は全部を一度に要約するのはトークン数制限に引っかかります。英語論文翻訳機の際に使ったレイアウト検出modelと組み合わせてセクション単位で要約することで、全文要約を気軽にすることができました。

Whisper + GPT-3による議事録書き起こし+サマリ自動生成 (2023/2/15)


https://qiita.com/sakasegawa/items/3855472a8566ea302a99

Whisperで音声の文字起こしが民主化されました。このシステムでは、文字起こしを対象にGPT-3で要約やネクストアクションを抽出することで、より仕事で使えそうなものを気軽に作れるようになったことを確かめることができました。

1ワードからのスライド自動生成 (2023/2/20)


https://qiita.com/sakasegawa/items/abd0e5efac2969898878

海外ではGPT-3を使ったスライドを自動生成するシステムが人気を博しています。こうしたシステムは気軽に作ることができる反面、意外にも日本ではまだチャレンジする人があまりいません。作り込めば、結構いいものができるはずです。というわけでGPT-3とStable Diffusionによる画像生成を組み合わせて簡単なものを作ってみました。

契約書の自動差分比較システム (2023/2/21)


https://qiita.com/sakasegawa/items/836a30730a2421774354

GPT-3 (とここまでは呼称してきましたが、GPT-3.5などのシリーズを実際には使っています) の知識を使うとゼロショットでもいい感じの文章の差分比較を行ってくれます。ここではレイアウト検出のmodelを比較した上で、Google Document AIを使うことにしました。検出されたレイアウトをパラグラフとして扱い、levenshtein距離 (編集距離) で条項を対応付けして変更ポイントを見ました。

CSVからのレポート自動生成 (2023/3/6)

https://qiita.com/sakasegawa/items/7bde39583a1c076ba526

GPT-3 は賢く、短い系列を与えるだけでそのデータの内容を予測することができます。また、その系列に対してどのようなアルゴリズムを使えば、良い解析ができるかということも提案してくれます。このシステムではグラフの自動生成も行いました。

長文からの質問応答 (2023/3/8)

https://qiita.com/sakasegawa/items/16714fa132e874cab069

ChatGPTの主な欠点は、短い文章の要約や解説しかできないことです。長い文章系列をそのまま読み込ませることは当分叶いません (とはいえ、GPT-4-32kが使えるようになれば、かなりの長文をそのまま扱えます)。この実装ではVector Storeとembeddingsを使うことで長文のテキストからQAを行うことを可能にしています。

BingGPT クローン (2023/3/9)

https://qiita.com/sakasegawa/items/f52bd94549c59f1ebaf4

BingGPT (New Bing) のように検索結果を参照して回答してくれると嬉しみがあります。BingGPTには回数制限等があるため、自前で実装しました。

Magic Generator (2022/10/26)


https://magics.work/

画像生成AIにおけるタグを決めるのは面倒な作業です。
髪型、髪色、背景などの各要素を簡単に指定することができるサイトをReactを使って1週間くらいかけて作りました。

ちなみに実装開始1日目からリリースしていましたが、初期はデザインがメチャクチャあれだったりします。とりあえずリリースするのが正義。

https://twitter.com/gyakuse/status/1581936494998040576

また、Gigazineさんに掲載していただいたおかげで、かなりユーザー数が増えました。

https://gigazine.net/news/20221025-magic-generator/

技評さんでの記事

ChatGPTのおさらいと、プログラミングに活用するための第一歩 (2023/3/23)

https://gihyo.jp/article/2023/03/programming-with-chatgpt-01

技術評論社さんにお誘いいただき、連載しています。ふだんは1時間くらいでやっつけ記事ばかり書いているのですが、こちらは編集が入っているので読める文章になっているのではないかと思います。@k_takaさんは最高の編集者です。

まとめ系

ChatGPT使い方総まとめ、メモ書き (2022/12/1)

https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e
https://qiita.com/sakasegawa/items/e13e29c96fc711cf84bb

ChatGPT以前に少し言語モデルを触っていたので情報共有目的で書きました。

スポーツAIのすごさ (2022/12/2)

https://qiita.com/sakasegawa/items/a3fe631497892686d1ab

ちょうどUWBに興味関心があったので、VARなどの仕組みについて書きました。

ChatGPT APIを使ってAIキャラクターを作ってみる! (2023/3/2)

https://qiita.com/sakasegawa/items/db2cff79bd14faf2c8e0

ChatGPT APIが公開された後20分くらいで作って書いたお気軽記事です。たまに速さが正義になるので、タイムアタック的に実装したり文章を書いてみるのも大事です。

Google の FLAN-20B with UL2 を動かしてChatGPT APIのように使ってみる! (2023/3/4)

https://qiita.com/sakasegawa/items/7394fe68eb0087b3c4a5

推し研究者はみなさんはいますか?わたしの推しはYi Tayさんです。かれらがGoogle BrainでリリースしたFLAN-20B with UL2は非常に面白いモデルで、もっと使われるべきと思いChatGPT APIのように扱うためのwrapperを書きました。また、この記事を参考にしていただいたgyumaruyaさんによるアプリケーションでは3090で動かせるようになっています。

https://qiita.com/gyumaruya/items/1079612c2c3aa6aabd1d

ChatGPTを使ったサービスにおいて気軽にできるプロンプトインジェクション対策 (2023/3/8)

https://qiita.com/sakasegawa/items/09d9f6a485108f5a618a

GPT APIを使ったサービスはプロンプトインジェクション対策が必要になります。どんなアプローチがあるかを紹介しました。

LangChainまとめ (2023/3/10)

https://qiita.com/sakasegawa/items/d01dafdf0c77da133f24
https://qiita.com/sakasegawa/items/9b6c79dc11bc3a1bc0ed

LangChainは「なぜその機能があるべきか」を考えるとわりとシンプルなものですが、とりあえず使ってみようと見てみると、混乱しがちです。道標になればいいなと思って書きました。

AIの進歩とつらみについて (2023/3/14)

https://qiita.com/sakasegawa/items/70d3ddaa5ce9edbccc54

真面目なポエムです。

GPT-4のすごさとその影響範囲について (2023/3/15)

https://qiita.com/sakasegawa/items/4c6b9c3f703e89ec1c4d

GPT-4がリリースされ、実際どんな感じで使えそう?みたいなのをまとめました。

ChatGPT Pluginって何ができるの? (2023/3/24)

https://qiita.com/sakasegawa/items/5a5bb4beca0a435d8535

ChatGPT Pluginがリリースされ、実際どんな感じで使えそう?みたいなのをまとめました。

その他

GPT-4に無理やり画像を認識させてみるテスト (2023/3/18)

https://qiita.com/sakasegawa/items/3b28dc5d62a0d1691df1

GPT-4がどの程度までincontext learningできるか、ということを考えるのは面白いです。その限界を考えるために小さいテストを行いました。言語モデルごとのincontext learning能力をうまく比較できるベンチマーク群があると良さそうです。

読んだ本など (2023/2〜)

Intro to Machine Learning (Kaggle)

https://www.kaggle.com/learn/intro-to-machine-learning

古典的?な機械学習の復習をするために読みました。tutorialでありつつ、modelがoverfitするつらみ等も体験的に理解できる構成になっていて、めちゃくちゃよい資料です。

ディープラーニングを支える技術

https://www.amazon.co.jp/dp/4297125609

PFNの岡野原さんの書籍です。とても素晴らしく、この後の書籍を読んだ際も、何度も立ち返るような内容でした。

深層学習改訂第2版

https://www.amazon.co.jp/gp/product/B0BC8JRBPG/

ナイーブベイズやRandom Forest等で遊んだことしかなかったので、DeepLearningをちゃんと理解するために読みました。全結合層や畳み込みニューラルネットワークなど歴史を追っていくような構成で、Optimizerや自動微分についてもしっかり書かれています。写経しまくりました。分からない部分はCVMLエキスパートガイドが非常に役立ちました。このあたりのツイートで苦しんでいる様子が見えます。

https://twitter.com/nyosegawa/status/1622341529166811136

Vision Transformer入門

https://www.amazon.co.jp/dp/4297130580

TransformerやViTについてちゃんとわかりたい!と思って読んだのですが、メチャクチャわかりやすく書かれています。colabで部分的に実装を動かしながらtensorの形状見たりして理解を深めました。

Kaggleに挑む深層学習プログラミングの極意

https://www.amazon.co.jp/dp/4065305136

ここまで学んだDeepLearningをpytorchで実装することができます。サンプルが素晴らしく、colabで動かして、条件を変えてみたりnetwork構造を変えたりして、精度がどうなるか見てみることでより感触がわかるようになっています。

lucidrainsさんの実装群

https://github.com/lucidrains?tab=repositories

pytorch等で機械学習modelを作る際は、優秀な人のコードを読むことが欠かせません。lucidrainsさんは恐ろしいほど手が早く、かつ綺麗なコードを書き、ReadMe.mdも美しいです。写経しまくりました。

音声対話システム

https://www.amazon.co.jp/dp/B0BJ6DFXRG/

傾聴対話について研究されている井上、河原さんによる書籍です。紹介ツイート↓

https://twitter.com/gyakuse/status/1631793405373317120

会話の科学 あなたはなぜ「え?」と言ってしまうのか

https://www.amazon.co.jp/gp/product/B0BZD3C3XY/

AIキャラクターを考えるとき、間投詞や良いレスポンス間隔を知ることは有用です。紹介ツイート↓

https://twitter.com/gyakuse/status/1640748179976249350

音声に未来はあるか?

https://www.amazon.co.jp/gp/product/B07DL5GGW5/

AIキャラクターや音声対話システムにおける必要要素についてほとんどすべて検討されている素晴らしい書籍です。

Pythonで学ぶ画像認識

https://www.amazon.co.jp/dp/B0BZ7NC764/

画像認識系のタスクについてとても丁寧に実装つきで説明されています。物体検知におけるアンカーボックスの実装はあんまり良くわかっていなかったので非常によかったです。

Pythonで学ぶ音声認識

https://www.amazon.co.jp/dp/429501138X

Transformer以前の音声系タスクの手法を歴史的に知ることができる本当に良い書籍です。ちょうど話者分離タスクのときに話者埋め込みのmodelのアーキテクチャを見ていて混乱したので助けになりました。事前学習modelをただ使うだけなら、中身を知る必要はそこまでありませんが、特徴量がどのように取られていて、どのような損失関数を取って学習が行われたかを知ることはそのmodelの強み/弱みの理解に役立ちます。

Pythonで学ぶ音声合成

https://www.amazon.co.jp/dp/B09CYMH48K

ちょうどLINE京都に行く機会があったので、読んでみたのですがこれが本当によかったです。ちょうどText-to-Speechの自分のmodelをtacotron2を用いて作ってみようとしていたところだったので、本書で詳細な解説がされていて神!!!ってなりました。

プロダクトマネジメントのすべて

https://www.amazon.co.jp/dp/B08W51KLQJ/

プロダクトマネジメントについて書かれた書籍は世の中に大量にありますが、現代的かつシンプルに書かれたものはそう多くはありません。この書籍ではプロダクトにかんするほとんどすべてのことが簡潔に書かれていました。

INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント

https://www.amazon.co.jp/gp/product/B0814STTHV/

プロダクトマネジメントのすべてとセットで読むのめちゃくちゃよい、みたいなあれです

アサーティブ・コミュニケーション

https://www.amazon.co.jp/gp/product/B0B6H86G6W/

尊敬し・かつ尊重するの本当にたいへんみたいなあれで読みました。大事。

漫画等

Kindle Unlimitedで1巻無料だと2巻以降スッと読んでしまいます。

  • 帝乃三姉妹は案外、チョロい。
  • 暴食のベルセルク~俺だけレベルという概念を突破する~
  • 婚約破棄を狙って記憶喪失のフリをしたら、素っ気ない態度だった婚約者が「記憶を失う前の君は、俺にベタ惚れだった」という、とんでもない嘘をつき始めた
  • 最強魔法師の隠遁計画-ジ・オルターネイティブ-
  • 最凶の魔王に鍛えられた勇者、異世界帰還者たちの学園で無双する
  • 悪役令嬢の中の人~断罪された転生者のため嘘つきヒロインに復讐いたします~
  • 片田舎のおっさん、剣聖になる~ただの田舎の剣術師範だったのに、大成した弟子たちが俺を放ってくれない件〜
  • 仮面ライダー (石ノ森章太郎デジタル大全)
  • 異世界でチート能力を手にした俺は、現実世界をも無双する
  • 真の安らぎはこの世になく -シン・仮面ライダー SHOCKER SIDE-
  • 解雇された暗黒兵士(30代)のスローなセカンドライフ
  • 人間不信の冒険者たちが世界を救うようです
  • All You Need Is Kill
    • じつは漫画版読んだことなかった。面白い
  • チチチチ
    • クール教信者先生は本当に最高です
  • スーパーの裏でヤニ吸うふたり
    • タバコ切らしても落ち着いてるのでフェイクです

Tweet (論文読み)

チート検出等 (2023/1/3)

https://twitter.com/gyakuse/status/1610236762668011521

VALL-E (2023/1/6)

https://twitter.com/gyakuse/status/1611364936193830917

D3VAE (2023/1/10)

https://twitter.com/gyakuse/status/1612657054430416896

Wi-Fi版DensePose (2023/1/13)

https://twitter.com/gyakuse/status/1613639244446322690

音響測定を用いた部屋の形状推定 (2023/1/13)

https://twitter.com/gyakuse/status/1613824220479516672

Laser-NV (2023/1/18)

https://twitter.com/gyakuse/status/1615550635587563520

AdA: Adaptive Agents (2023/1/19)

https://twitter.com/gyakuse/status/1615953585455661063

MusicLM (2023/1/27)

https://twitter.com/gyakuse/status/1618926546168987648

SPEAR-TTS (2023/2/8)

https://twitter.com/gyakuse/status/1623255393203015680

LLaMA論文 (2023/2/25)

https://twitter.com/gyakuse/status/1629250093311463424

NLP2023 (2023/3/17)

https://twitter.com/gyakuse/status/1636655034984460290

GPT are GPTs (2023/3/22)

https://twitter.com/gyakuse/status/1638458977586651136

Discussion