Open GENZITSU opened 1 year ago
時系列データに対するTransformerの適用方法および、事故教師あり学習の研究動向について語れている記事
ナイーブなTransformerだと時系列の長さの2乘に比例して計算量が増加するので、ボトルネックとなっているAttentionの効率化が研究されている。
Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting (@AAAI2021)という手法では重要なトークンはごく一部しかないという仮定の元、一部のトークンのみを選抜してAttentionの計算をするという方法をとっている
一方でPyraformer: Low-Complexity Pyramidal Attention for Long-Range Time Series Modeling and Forecasting (@ICLR2022)は元の特徴量を時間方向で段階的に要約し田植えで、Self Attentionを行うことで、効率的な長期依存性の表現を可能にしている。
Self-Supervised Contrastive Pre-Training For Time Series via Time-Frequency Consistency @NeurIPS2022では時間に関するデータ拡張とフーリエ変換などの周波数変換を加え、時間、周波数それぞれにおいて、Contrastive Learningを行う。加えて、時間に関する特徴と周波数に関する特徴を同じ空間にマッピングされるようにすることで、汎用的な特徴量の獲得を目指している。
注目すべき点はドメインAで事前学習したモデルをドメインBでファインチューニングした際に良い性能を出している点である。
時系列データに対する表現学習手法奥が深そうだ
TransformerやBERTなどの系列モデルでなぜBatch Normalizationではなく Layer Normalizationを用いることが多いかを解説している記事。
これらを解決しようとしたのがLayer Normalization
こいつはミニバッチごとの各レイヤーの統計量を求めるのではなく1サンプルごとの各レイヤーの統計量を求めるもの
Batch Normalizationを用いることでLSTMの収束も早くなっているが、Layer Normalizationによってさらに早くなっていることが確認できる。
改めて勉強になった
リスクや不確実性を低減させるための進捗把握方法が紹介されている。
・リスクを軽減する ・不確実性を減らす ・意思決定を支援する ・信頼を確立する ・情報を伝達する by Mike Cohn『アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~』、p29
次にやることは何ですか?/このあとは何をしますか?
またこの質問をキッカケに「そういえば〜の設計が難しそう」「〜について他チームに連絡する必要があるけどどうする?」など、目の前の課題が明確になることもよくあります。 一方で返答に詰まってしまう場合は、タスクが停滞していて進捗は出ていなかった可能性もあります。周りが積極的にサポートするべき場面だと感じます。
大変だったことはありますか?
相手の回答があれば「今後もときおり発生するものか」や「プロジェクト全体のリスクになりうるか」などを考えられる 具体的なタスクを取り出して「〜の実装は大変でしたか?」などのように聞いても良さそうです。
〜時点でどんな状態を目指しますか?
しかし「やることをやった」からと言って「進捗が出た」とは限りません。進捗とは変化であり、行動の集積ではないからです。 もし「〜という状態だ」と返答があれば、あとはその状態に到達できる可能性を上げるための工夫やリスク・不確実性についても意識を統一できるでしょう。
意外と認識が異なっているのが完了条件です。完了した結果どうなるかを深堀りしてみたり、具体的な成果物を定義してみたり、お互いのイメージが一致することが確認ところまで話してみると効果的です。
〜に伝えておかないといけないことはありますか?
この質問は「とくにないです」率が高いので、頻繁に利用するものではありません(ルーティンで質問すると無回答がルーティンになる)。ですが上手く利用できれば、チーム間のトラブルを解消できることが多くあります。
そんなときに「〜チームに連絡すべきことはありますか?」「〜さんに言っておいたほうがいいことはありますか?」などのネタ振りを適当なタイミングでしてみると、たとえば開発周辺の話や仕様・スコープの変更に関係する話など、質問者が気付いてなかったタスクや課題が出てくることがあります。
どうでもいいけど話しておきたいことはありますか?
それは理由があって「どうでもいい」という前提を設けることで、話し合いのテーマからズレてもよいこと、および発言者が責任を持たなくてもよいことを明らかに示せるからです。 「どうでもいい」話題が実はかなり重要である
個人的には「どうでもいい」情報というのは「その人がコントロールできない課題」が多い気がします
1 on 1とかで使っていけそうな質問集。 自分が進捗を確認される際も意識しておきたい。
AI系スタートアップに集中的に投資を行っているVCによる2022年のAI業界のトレンドをまとめた100p超のスライド
研究 / 産業 / 政治 / 安全性 の4軸に加えて、2023年の予想も綴られている。
印象的なスライドのみ抜粋
AIの生化学への応用がトレンドになっている。
Attentionの効率化は探索されているものの、実用には至っていない
モデルの大きさよりもデータの大きさが性能を支配しつつある
大規模モデルはモデルサイズに関する臨界点が存在する
モデルの訓練に必要な計算量は指数関数的に増加している
大規模言語モデルがロボティクス業界に大きな影響を与えている
AI創薬は一歩間違えると、生体兵器開発に転じうる
研究界隈での中国勢が躍進している
中国語論文を含めると、さらにわかりやすい
NVIDIAのチップがめちゃくちゃ使われている
どの企業がA100をたくさん持っているかのグラフ (Meta凄すぎる)
DeepMindやOpenAI, Google Brainなどのビッグテックの卒業生がスタートアップ起業する流れが
AIコード生成ツールが様々な企業で使われ始めている
AI創薬が実用化に近づいている
AI画像診断が初の承認を得る
スタートアップへの資金流入ペースは2021年に比べて減少中
世界の投資状況
分野別の投資状況: ロボティクスや半導体への資金流入が加速している
Exitや買収などは去年を超えるベースで増加している
大規模モデル開発において産業界と研究界隈でのギャップが生まれている
リサーチ共同体が大規模モデル開発を行うようになっている
AI x 防衛がかわらず熱い
半導体製造の技術力はアメリカよりも中国・台湾が勝るようになっている
これ受けて、アメリカは自国の半導体製造メーカーを支援する代わりに中国への技術提供をストップするよう求めている
AIの安全性を研究する動きは勃興しつつもまだ市民権を得ていない
人間のFBを元に大規模モデルをより安全にしていく取り組みが模索されている
音声の生成AIの発達やRedditなどのユーザー投稿サイトが大規模モデル開発に優勝データ提供を実施するとかは面白そう
2022年本当にいろいろありましたなという感じです。
Kubernetes上で動作するベクトル検索エンジンの紹介スライド
気になったスライドのみ抜粋
検索エンジンにLBとリソース監視機能も一緒についてきてくれるのは嬉しい helmで環境構築できるのも◎
LINEで開発されているデータの取得からデプロイまでを一気通貫でサポートするMLOpsプラットフォームMLUの紹介スライド
MLシステムを構成する要素
MLOpsシステムの一般的なフロー
MLU
MLOpsシステムの一例としてとても参考になる
クックパッドマートにおけるMLOpsの事例紹介スライド
気になったところだけ抜粋
こちらの例も参考になる。 便利OSS結構あるんだなー
書籍版を読んだので要点をまとめていく
たとえコメントを入れても、それが不適切なものであれば価値はゼロ(あるいはマイナス)である
- コメントがコードを読む人のノイズにになっては行けない
- コードと同様にコメントも時間と共に劣化する
勉強になる
書籍版を読んだので要点をまとめていく
Peter Norvigは、何かでエキスパートになるには約1万時間の訓練が必要と述べている。いわばこの1万時間というのが「マジックナンバー」ということになる。
Mary Poppendieckも、著書「リーンソフトウェア開発と組織改革」の中で「どんな専門的職業であれ、入念に計画された、集中的な訓練を最低10,000時間積み重ねることとで専門家になると言う」と書いている。
Mary Poppendieckは次のように述べている。専門家のパフォーマンスを研究している人たちの間では、もって生まれた才能はあるレベルを超えると大きな意味を持たなくなると意見の一致をみている。プロスポーツ選手になろうと思った場合、確かに最低限の才能は必要だ。だがその後、勝ち抜いていくのは、最も厳しい練習に耐えた人たちだ。
ただし、訓練とは自分にとって楽にできないことをやって初めて意味を持つ
大切なのは、外科医が身体を切ることを恐れずに病気を治すように、コードに変更を加えることを恐れず、積極的にシステムを改良していく姿勢です。
すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない
「APIを提供するときは、API自身のテストだけでなく、必ずそのAPIを利用するコードのユニットテストも書く」
どれほど優れたプログラマも彼らも他の人と同じように、論理的に考え、体系的に分析をしない限り、どんな問題も解決できない
どれほど素晴らしいプログラマであっても、はじめから十分な知識と技術を持っていたわけではありません。今は超人に見えるかもしれませんが、それは長い時間をかけて学び、自分を磨いてきたからです。賢い人が長い間、強い好奇心を持ち続けた結果、超人に見えるようになった
脳外科医や航空機のパイロットと同じく、プロのプログラマなら、知識と技術の研鑽を怠ってはならないのです。それには主に、帰宅後や休日などの時間を利用することになります。
脳外科医が週60時間も執刀していたとして、そんな医者にかかりたいと思うでしょうか?
プロはただ、がむしゃらに働けばいいというものではありません。プロの仕事には、入念な準備と効率化のための努力、そして日々の反省と絶え間ない変化が必要なのです。
勉強になる
書籍版を読んだので要点をまとめていく
勉強になる
書籍版を読んだので要点をまとめていく
1999年9月23日、火星探査機「マーズ・クライメイト・オーピター(MCO)」は火星を周回する軌道への突入に失敗し、燃え尽きました。3億2,730万ドルが失われた原因はソフトウェアのエラーでした。そのエラーは、具体的には「単位の混在」でした。
「ユーザーに入力して欲しいのはあくまで情報であり、データではない」
ルートヴィヒ・ウィトゲンシュタインは「哲学探究」中で、「私たちが互いに話をする際には言語を使うが、私たちの頭の中にある思考や発想、画像などが、そのまま言語に変換されて他人の頭に送られるわけではない」と言っている
テストをするということは、作るものに責任を持つということなのです。
勉強になる
書籍版を読んだので要点をまとめていく
アポロ11号の月着陸船のソフトウェア設計を指揮したAllan Klumppは、あるインタビューで、エンジンを制御するソフトウェアにバグがあったことを明かしています。そのバグのせいで、着陸船の動きが不安定になる恐れがあったというのです。しかし、結果的にそのバグは別のバグによって相殺されたため、発見も修正もされず、アポロ11号、12号の月着陸は無事成功しました。
Ubuntuは元々、ズールー語で「他者への思いやり」という意味です。
Ubuntuの理念は”Umuntu ngumuntu ngabantu”です。これもズール一語で、翻訳すると「人間は、他の人間がいるお陰で、人間になっている」という意味です。
いつも「このコードは生涯、自分がサポートし続けなくてはならない」と思ってコードを書く。
コードを1行書く度に、ユーザのこと、顧客のこと、そして自分のキャリアのことを考えるべきです。このコードは自分の今後の人生を決めるのだ、と思って書くべき
自分が扱ったコードは、必ず、自分が最初に見た時よりも少しでも良いコードにする
ネイテイブ・アメリカンの信仰に「すべての人物・事物には真の名前があり、その名前を知るものはそれを支配することができる」というものがある
適切な名前がつけられたものは実装の8割が完了している
適切な名前をつけられると言うことは、その機能が正しく理解されて、設計されているということ
勉強になる
LINEにおける大規模言語モデルの倫理的安全性のチェック方法の事例紹介
LINEでは大規模言語モデルの安全性チェックのためにEthicsRaderというツールを作成している。
テストケースの文章を入れてそこから出てくる文章の有害性をチェックするという流れ
意図的に有害なアウトプットを生成するためのadversarial triggerというものを作成している
adversarial triggerは事前に決めておいた有害な文章を勾配を用いて生成しやすくなるような単語の組み合わせを探索する手法である。
adversarial triggerを用いると普通に作ったテストケースよりも有害率が高まる
効率的にテストケースを生成するためにRed Teaming、Iterative Few-Shotという手法を取り入れている
Red Teamingとは言語モデルによる生成文を対象の言語モデルに入力し、事前に作成した判定機を用いてテストケースのペアを自動的に作成する方法
Iterative Few-Shotは詳細は不明不明だがかなり、効率的にテストケースを生成できる模様
![Uploading スクリーンショット 2022-11-22 10.44.42.png…]()
こちらは2グループを代表するキーワードを入力して生成した文章のセンチメントを元に測っている
テストケースを人手で用意するのもなかなか厳しいなと思っていたが、自動的に作成する手法が模索されているのが興味深かった
Gradioを使った機械学習モデルのデモンストレーションをAWS App Runnerでサービスする
Gradioを用いて作成してデモwebアプリをAWS Copilot CLIを用いることでDockerfileひとつでAWS App Runnerにデプロイする方法の紹介
コメント
とても簡単そうなので、どこかで使いたい
出典