GENZITSU / UsefulMaterials

34 stars 0 forks source link

almost weekly useful materials - 11/23 - #118

Open GENZITSU opened 1 year ago

GENZITSU commented 1 year ago

Gradioを使った機械学習モデルのデモンストレーションをAWS App Runnerでサービスする

Gradioを用いて作成してデモwebアプリをAWS Copilot CLIを用いることでDockerfileひとつでAWS App Runnerにデプロイする方法の紹介

コメント

とても簡単そうなので、どこかで使いたい

出典

GENZITSU commented 1 year ago

時系列データの汎用的な表現学習の研究動向

時系列データに対するTransformerの適用方法および、事故教師あり学習の研究動向について語れている記事

時系列へのトランスフォーマーの適用

ナイーブなTransformerだと時系列の長さの2乘に比例して計算量が増加するので、ボトルネックとなっているAttentionの効率化が研究されている。

Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting (@AAAI2021)という手法では重要なトークンはごく一部しかないという仮定の元、一部のトークンのみを選抜してAttentionの計算をするという方法をとっている

スクリーンショット 2022-11-18 18 01 21

01

一方でPyraformer: Low-Complexity Pyramidal Attention for Long-Range Time Series Modeling and Forecasting (@ICLR2022)は元の特徴量を時間方向で段階的に要約し田植えで、Self Attentionを行うことで、効率的な長期依存性の表現を可能にしている。

スクリーンショット 2022-11-18 18 04 13

スクリーンショット 2022-11-18 18 04 43

時系列データの表現学習

Self-Supervised Contrastive Pre-Training For Time Series via Time-Frequency Consistency @NeurIPS2022では時間に関するデータ拡張とフーリエ変換などの周波数変換を加え、時間、周波数それぞれにおいて、Contrastive Learningを行う。加えて、時間に関する特徴と周波数に関する特徴を同じ空間にマッピングされるようにすることで、汎用的な特徴量の獲得を目指している。

スクリーンショット 2022-11-18 18 11 27

スクリーンショット 2022-11-18 18 12 08

注目すべき点はドメインAで事前学習したモデルをドメインBでファインチューニングした際に良い性能を出している点である。

スクリーンショット 2022-11-18 18 12 45

スクリーンショット 2022-11-18 18 12 56

コメント

時系列データに対する表現学習手法奥が深そうだ

出典

GENZITSU commented 1 year ago

Layer Normalizationを理解する

TransformerやBERTなどの系列モデルでなぜBatch Normalizationではなく Layer Normalizationを用いることが多いかを解説している記事。

Batch Normalizationの短所

Layer Normalization

これらを解決しようとしたのがLayer Normalization

こいつはミニバッチごとの各レイヤーの統計量を求めるのではなく1サンプルごとの各レイヤーの統計量を求めるもの

スクリーンショット 2022-11-15 23 15 41

比較結果 (論文より)

Batch Normalizationを用いることでLSTMの収束も早くなっているが、Layer Normalizationによってさらに早くなっていることが確認できる。

スクリーンショット 2022-11-15 23 18 15

コメント

改めて勉強になった

出典

GENZITSU commented 1 year ago

だれかの進捗をうまく把握できないときのフレーズ集

リスクや不確実性を低減させるための進捗把握方法が紹介されている。

進捗を確認する目的

・リスクを軽減する ・不確実性を減らす ・意思決定を支援する ・信頼を確立する ・情報を伝達する by Mike Cohn『アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~』、p29

効果的な確認方法

次にやることは何ですか?/このあとは何をしますか?

またこの質問をキッカケに「そういえば〜の設計が難しそう」「〜について他チームに連絡する必要があるけどどうする?」など、目の前の課題が明確になることもよくあります。 一方で返答に詰まってしまう場合は、タスクが停滞していて進捗は出ていなかった可能性もあります。周りが積極的にサポートするべき場面だと感じます。

大変だったことはありますか?

相手の回答があれば「今後もときおり発生するものか」や「プロジェクト全体のリスクになりうるか」などを考えられる 具体的なタスクを取り出して「〜の実装は大変でしたか?」などのように聞いても良さそうです。

〜時点でどんな状態を目指しますか?

しかし「やることをやった」からと言って「進捗が出た」とは限りません。進捗とは変化であり、行動の集積ではないからです。 もし「〜という状態だ」と返答があれば、あとはその状態に到達できる可能性を上げるための工夫やリスク・不確実性についても意識を統一できるでしょう。

意外と認識が異なっているのが完了条件です。完了した結果どうなるかを深堀りしてみたり、具体的な成果物を定義してみたり、お互いのイメージが一致することが確認ところまで話してみると効果的です。

〜に伝えておかないといけないことはありますか?

この質問は「とくにないです」率が高いので、頻繁に利用するものではありません(ルーティンで質問すると無回答がルーティンになる)。ですが上手く利用できれば、チーム間のトラブルを解消できることが多くあります。

そんなときに「〜チームに連絡すべきことはありますか?」「〜さんに言っておいたほうがいいことはありますか?」などのネタ振りを適当なタイミングでしてみると、たとえば開発周辺の話や仕様・スコープの変更に関係する話など、質問者が気付いてなかったタスクや課題が出てくることがあります。

どうでもいいけど話しておきたいことはありますか?

それは理由があって「どうでもいい」という前提を設けることで、話し合いのテーマからズレてもよいこと、および発言者が責任を持たなくてもよいことを明らかに示せるからです。 「どうでもいい」話題が実はかなり重要である

個人的には「どうでもいい」情報というのは「その人がコントロールできない課題」が多い気がします

コメント

1 on 1とかで使っていけそうな質問集。 自分が進捗を確認される際も意識しておきたい。

出典

だれかの進捗をうまく把握できないときのフレーズ集

GENZITSU commented 1 year ago

State of AI Report 2022

AI系スタートアップに集中的に投資を行っているVCによる2022年のAI業界のトレンドをまとめた100p超のスライド

研究 / 産業 / 政治 / 安全性 の4軸に加えて、2023年の予想も綴られている。

印象的なスライドのみ抜粋

研究

スクリーンショット 2022-11-17 16 18 48

AIの生化学への応用がトレンドになっている。

スクリーンショット 2022-11-17 16 20 21

Attentionの効率化は探索されているものの、実用には至っていない

スクリーンショット 2022-11-17 16 22 04

モデルの大きさよりもデータの大きさが性能を支配しつつある

スクリーンショット 2022-11-17 16 23 03

大規模モデルはモデルサイズに関する臨界点が存在する

スクリーンショット 2022-11-17 16 23 20

モデルの訓練に必要な計算量は指数関数的に増加している

スクリーンショット 2022-11-17 16 25 58

大規模言語モデルがロボティクス業界に大きな影響を与えている

スクリーンショット 2022-11-17 16 26 49

AI創薬は一歩間違えると、生体兵器開発に転じうる

スクリーンショット 2022-11-17 16 28 04

研究界隈での中国勢が躍進している

スクリーンショット 2022-11-17 16 29 32

中国語論文を含めると、さらにわかりやすい

スクリーンショット 2022-11-17 16 30 05

産業

NVIDIAのチップがめちゃくちゃ使われている

スクリーンショット 2022-11-17 16 31 30

どの企業がA100をたくさん持っているかのグラフ (Meta凄すぎる)

スクリーンショット 2022-11-17 16 32 44

DeepMindやOpenAI, Google Brainなどのビッグテックの卒業生がスタートアップ起業する流れが

スクリーンショット 2022-11-17 16 55 39

スクリーンショット 2022-11-17 16 56 35

AIコード生成ツールが様々な企業で使われ始めている

スクリーンショット 2022-11-17 16 57 23

AI創薬が実用化に近づいている

スクリーンショット 2022-11-17 16 59 16

AI画像診断が初の承認を得る

スクリーンショット 2022-11-17 16 59 51

スタートアップへの資金流入ペースは2021年に比べて減少中

スクリーンショット 2022-11-17 17 02 13

世界の投資状況

スクリーンショット 2022-11-17 17 03 31

分野別の投資状況: ロボティクスや半導体への資金流入が加速している

スクリーンショット 2022-11-17 17 04 35

Exitや買収などは去年を超えるベースで増加している

スクリーンショット 2022-11-17 17 20 00

スクリーンショット 2022-11-17 17 20 09

政治

大規模モデル開発において産業界と研究界隈でのギャップが生まれている

スクリーンショット 2022-11-17 17 22 25

リサーチ共同体が大規模モデル開発を行うようになっている

スクリーンショット 2022-11-17 17 23 54

AI x 防衛がかわらず熱い

スクリーンショット 2022-11-17 17 24 53

半導体製造の技術力はアメリカよりも中国・台湾が勝るようになっている

スクリーンショット 2022-11-17 17 25 42

これ受けて、アメリカは自国の半導体製造メーカーを支援する代わりに中国への技術提供をストップするよう求めている

スクリーンショット 2022-11-17 17 25 57

安全性

AIの安全性を研究する動きは勃興しつつもまだ市民権を得ていない

スクリーンショット 2022-11-17 17 28 12

人間のFBを元に大規模モデルをより安全にしていく取り組みが模索されている

スクリーンショット 2022-11-17 17 29 57

スクリーンショット 2022-11-17 17 30 05

未来予想

音声の生成AIの発達やRedditなどのユーザー投稿サイトが大規模モデル開発に優勝データ提供を実施するとかは面白そう

スクリーンショット 2022-11-17 17 31 28

コメント

2022年本当にいろいろありましたなという感じです。

出典

State of AI Report 2022

GENZITSU commented 1 year ago

Vald: OSS ANN Nearest Neighbor Dense Vector Search Engine - Introduction and Case Studies -

Kubernetes上で動作するベクトル検索エンジンの紹介スライド

気になったスライドのみ抜粋

スクリーンショット 2022-11-18 21 32 29

スクリーンショット 2022-11-18 21 32 38

スクリーンショット 2022-11-18 21 32 54

スクリーンショット 2022-11-18 21 33 01

スクリーンショット 2022-11-18 21 33 34

スクリーンショット 2022-11-18 21 33 42

スクリーンショット 2022-11-18 21 35 54

スクリーンショット 2022-11-18 21 36 17

スクリーンショット 2022-11-18 21 36 34

コメント

検索エンジンにLBとリソース監視機能も一緒についてきてくれるのは嬉しい helmで環境構築できるのも◎

出典

GENZITSU commented 1 year ago

End-To-End MLOps Platform at LINE

LINEで開発されているデータの取得からデプロイまでを一気通貫でサポートするMLOpsプラットフォームMLUの紹介スライド

MLシステムを構成する要素

スクリーンショット 2022-11-18 21 57 30

MLOpsシステムの一般的なフロー

スクリーンショット 2022-11-18 21 58 44

MLU

スクリーンショット 2022-11-18 22 00 16

スクリーンショット 2022-11-18 22 02 00

スクリーンショット 2022-11-18 22 02 11

コメント

MLOpsシステムの一例としてとても参考になる

出典

End-To-End MLOps Platform at LINE

GENZITSU commented 1 year ago

20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps

クックパッドマートにおけるMLOpsの事例紹介スライド

気になったところだけ抜粋

スクリーンショット 2022-11-18 22 47 14

スクリーンショット 2022-11-18 22 47 37

スクリーンショット 2022-11-18 22 47 53

スクリーンショット 2022-11-18 22 48 02

スクリーンショット 2022-11-18 22 48 12

スクリーンショット 2022-11-18 22 48 26

スクリーンショット 2022-11-18 22 48 40

コメント

こちらの例も参考になる。 便利OSS結構あるんだなー

出典

20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps

GENZITSU commented 1 year ago

プログラマが知るべき97のこと (1 ~ 20)

書籍版を読んだので要点をまとめていく

1. 分別のある行動

3. ユーザが何をするかを観察する(あなたはユーザではない)

4. コーディング規約を自動化する

5. 美はシンプルさに宿る

6. リファクタリングの際に注意すべきこと

7. 共有は慎重に

8. ボーイスカウト・ルール

11. ドメインの言葉を使ったコード

12. コードは設計である

13. コードレイアウトの重要性

14. コードレビュー

15. コードの論理的検証

16. コメントについてのコメント

17. コードに書けないことのみをコメントにする

19. 誰にとっての「利便性」か

20. すばやくデプロイ、こまめにデプロイ

コメント

勉強になる

出典

GENZITSU commented 1 year ago

プログラマが知るべき97のこと (21 ~ 40)

書籍版を読んだので要点をまとめていく

21. 技術的例外とビジネス例外を明確に区別する

22. 1万時間の訓練

24. 変更を恐れない

25. 見られて恥ずかしいデータは使わないこと

27. 死ぬはずのプログラムを無理に生かしておいてはいけない

28. 「魔法」に頼りすぎてはいけない

29. DRY原則

30. そのコードに触れてはならない!

31. 状態だけでなく「ふるまい」もカプセル化する

32. 浮動小数点数は実数ではない

34. API設計の黄金律

35. 超人の神話

36. ハードワークは報われない

37. バグレポートの使い方

38. 余分なコードは決して書かない

40. プロセス間通信とアプリケーションの応答時間の関係

コメント

勉強になる

出典

GENZITSU commented 1 year ago

プログラマが知るべき97のこと (41 ~ 60)

書籍版を読んだので要点をまとめていく

41. 無駄な警告を排除する

44. IDEを知る

45. 限界を知る

46. すべきことは常に明確に

48. いろいろな言葉を学ぶ

49. 見積りとは何か

51. プロジェクト自身にしゃべらせる

52. 「その場しのぎ」が長生きしてしまう

53. 正しい使い方を簡単に、誤った使い方を困難に

54. 見えないものを見えるように

56. 未来へのメッセージ

58. テスト担当者はプログラマの友人

59. バイナリは常に1つ

60. 真実を語るはコードのみ

コメント

勉強になる

出典

GENZITSU commented 1 year ago

プログラマが知るべき97のこと (61 ~ 80)

書籍版を読んだので要点をまとめていく

61. ビルドをおろそかにしない

62. プリミティブ型よりドメイン固有の型を

63. ユーザの操作ミスを防止する

64. プロのプログラマとは?

67. コードを読む

68.「人間」を知る

70. シングルトンパターンの誘惑に負けない

72. シンプルさは捨てることによって得られる

74. 「イエス」から始める

77. 偶然の仕様ではなく本物の仕様のためのテストを書く

79. テストのないソフトウェア開発はあり得ない

80. 1人より2人

コメント

勉強になる

出典

GENZITSU commented 1 year ago

プログラマが知るべき97のこと (81 ~ 107)

書籍版を読んだので要点をまとめていく

81. エラーがエラーを相殺してしまう

82. 他者への思いやりを意識したコーディング

86. WETなシステムはボトルネックが見つかりにくい

88. コードは生涯サポートするつもりで書く

89. 関数の「サイズ」を小さくする

90. コードを見る人のためにテストを書く

91. 良いプログラマになるには

92. 顧客の言葉はそのまま受け取らない

96. テストは正確に、具体的に

98. 命を吹き込む魔法

100. ルーチンワークをフローのきっかけに

102. 快適な環境を追求する

103. 見知らぬ人ともうまくやるには

104. 不具合にテストを書いて立ち向かう

105. 育ちのよいコード

106. Noといえることの大事さ

107. 名前重要

コメント

勉強になる

出典

GENZITSU commented 1 year ago

Assessing AI Trustworthiness Through Stress Tests

LINEにおける大規模言語モデルの倫理的安全性のチェック方法の事例紹介

LINEでは大規模言語モデルの安全性チェックのためにEthicsRaderというツールを作成している。

安全性チェックの流れ

テストケースの文章を入れてそこから出てくる文章の有害性をチェックするという流れ

スクリーンショット 2022-11-22 10 37 12

スクリーンショット 2022-11-22 10 37 23

安全性 + α のチェック項目

スクリーンショット 2022-11-22 10 38 02

有害性チェック

スクリーンショット 2022-11-22 10 38 25

スクリーンショット 2022-11-22 10 39 23

意図的に有害なアウトプットを生成するためのadversarial triggerというものを作成している

adversarial triggerは事前に決めておいた有害な文章を勾配を用いて生成しやすくなるような単語の組み合わせを探索する手法である。

スクリーンショット 2022-11-22 10 39 40

スクリーンショット 2022-11-22 10 59 50

スクリーンショット 2022-11-22 10 40 50

adversarial triggerを用いると普通に作ったテストケースよりも有害率が高まる

スクリーンショット 2022-11-22 10 41 31

情報匿名性

スクリーンショット 2022-11-22 10 41 43

スクリーンショット 2022-11-22 10 42 33

スクリーンショット 2022-11-22 10 42 03

効率的にテストケースを生成するためにRed TeamingIterative Few-Shotという手法を取り入れている

Red Teamingとは言語モデルによる生成文を対象の言語モデルに入力し、事前に作成した判定機を用いてテストケースのペアを自動的に作成する方法

スクリーンショット 2022-11-22 11 03 43

Iterative Few-Shotは詳細は不明不明だがかなり、効率的にテストケースを生成できる模様

スクリーンショット 2022-11-22 11 06 14

スクリーンショット 2022-11-22 10 44 30

![Uploading スクリーンショット 2022-11-22 10.44.42.png…]()

公平性

こちらは2グループを代表するキーワードを入力して生成した文章のセンチメントを元に測っている

スクリーンショット 2022-11-22 10 45 12

スクリーンショット 2022-11-22 10 45 36

コメント

テストケースを人手で用意するのもなかなか厳しいなと思っていたが、自動的に作成する手法が模索されているのが興味深かった

出典