GENZITSU / UsefulMaterials

34 stars 0 forks source link

almost weekly useful materials - 01/25 - #125

Open GENZITSU opened 1 year ago

GENZITSU commented 1 year ago

令和最新版エンジニアのリーダーシップ論

エンジニアリングチームの構成員が相互にリーダーシップを発揮し合うためのtipsがまとめられている

ボールを浮かさない

事を進める担当者をはっきりさせておく

ボールをとにかく誰かに持たす。 自分が持つならシンプルに「この件、私が宿題にしますね」(ここでSlackのブックマークボタン打つの忘れずに!) 誰かに持ってもらうなら「私や開発チームでは今できることはなさそうです。〇〇さん、ご調整をお願いできますでしょうか。」 誰に持ってもらうかも決めづらければ「どなたか本件を持てませんか?」でも100点です。 ボールが浮いていることの認識を人々が共有できただけで有益ですし、次のステップは適切な担当者を決めることだとはっきりしました。大収穫です。チームは一歩進みました。

解散の目安をはっきりさせる

会話例

「今夜のところは〇〇して出血を止めるところまでして、ログを確保したらあとは明日ってことでいいですかね?」 「今夜中にどこまでやります?」 「〇〇決めるところまで同期でできたら、あとは非同期で続けます?」 「今どこまで決めます?」

見えているゴールがあってこそ有効な手を考えられる局面は多いです。チーム、動かせています。

たしかに、終わりどきがわからないのはストレスなことがおおいな...

関連部署に伝達する、ただ騒ぐ

なるべく広く騒いでトラブル対応の責任を担当者一人に抱え込ませない、これで担当者は相当心が楽になります。もっと適任な担当者に交代できるかもしれない。チーム、動かせています。

絶賛する&なぐさめる

何かチームのための一手を放ってくれた人にはすかさず 「すごい」「仕事早い」「神」「やはり天才か」「さすが〇〇さん」「圧倒的感謝」「🎉」 大絶賛を浴びせます。

反対に失敗してしまった人には⋯⋯? 「ドンマイ」「無問題」「仕事たくさんしてる証拠!」

ドキュメントを書く

職場で誰かに何かを説明したなら、それはすでにドキュメント化不足だということです。説明しないでも読んでおいてもらえばいいドキュメントが本来必要だったということです。だったらそれを書く、今書く。それは単なる作業ではなくて非同期のチーム内コミュニケーションでしょう。

ドキュメントを書くにあたって私が心がけているのは、「2方向から書く」ことです。

  • それが何物なのかを理解するための体系的な解説。概要から始まり詳細へ進む解説。whatだけでなく、それができた背景にあたるwhyやwhy notも重要です。
  • いまどうしていいかわからなくて困っている人のためのハウツー。正常系の操作手順、あとはよくある対応のケーススタディを。

チケットを立てる

話の中で「あれ、問題ですよね」「はい、本当に」となることがあります。 それをシュッとチケットにします。 いまチケットにしなければ、秒速で揮発してその問題認識は忘れ去られていました。

全然わからないと言う

「全然わかりません。気になりますね」 とお返事するだけで相談者にとっては全然意味があります。無視されているのではなく、少なくとも一人は同様にわからない、それだけで重要な情報です。

コードレビュー、しにくいことを伝える

後回しにするのは一回ぐらいしてもいいですが、もう一回見たとき後回しにしたくなったら、言いづらいけれど勇気を持ってコード書いた人に「難しすぎて読解できずにいます」とお伝えすべきでしょう。 本人だって、コードレビュー依頼を無視されているのと、してもらえているけど難渋中なのとでは状況がぜんぜん違うので、それがわかるだけで大いに有益です。

コメント

名文すぎる。100回読め枠

出典

令和最新版エンジニアのリーダーシップ論

GENZITSU commented 1 year ago

FaissをソースコードからビルドしてGPUで利用する

表題の通り

実験設定

単語ベクトル:chiVe Version v1.2 mc5 語彙数 3,197,456 次元数: 300 求める近傍の点: 10個 Faissのインデックス: IndexFlatL2 つまり、約319万のベクトルのANNのインデックスに対して、約319万回の近似最近傍探索の操作を行って各10件の近傍点を求めるという操作を行います。

結果

約160倍の高速化というギャグ

スクリーンショット 2023-01-18 13 59 16

コメント

GPUの強さがよくわかる...

出典

FaissをソースコードからビルドしてGPUで利用する

GENZITSU commented 1 year ago

超高精度で商用利用可能な純国産の日本語音声認識モデル「ReazonSpeech」を無償公開

株式会社レアゾンホールディングスがwisper large v2相当の日本語音声認識モデルを公開

性能が頭おかしいのにapach-2.0で公開してくれるという神仕様...

スクリーンショット 2023-01-18 23 58 14

技術的な話

半教師あり的にアライメントを適用することで、ワンセグ放送録画データから教師データを作成したとのこと

「ReazonSpeech」では、ワンセグ放送の録画データから音声コーパスを自動抽出しています。 録画データから音声コーパスを構築するためには、発話単位で音声と字幕テキストを対応付ける処理(アラインメント処理と呼びます)が必要になります。 「ReazonSpeech」では、まず最初に小規模ではあるものの自由なライセンスで利用可能な Mozilla Common Voiceという音声コーパスから構築した音声認識モデルでアラインメント処理を行い、そこで得られた音声コーパスを元にして再度アラインメント処理を実行する、という過程を幾世代も重ねることによって少しずつ音声コーパスのサイズを増やしました。現在のサイズは19,000時間ですが、今後さらに規模を拡大する予定です。

コメント

頭が上がらん...

出典

GENZITSU commented 1 year ago

karakuri-ai / gptuber-by-langchain

OpenAI, Google Text-to-Speech API, Google YouTube Data API, serpapiを用いてAIVtuberっぽいことをするコード

demoわりとすごい

コメント

メモ

出典

karakuri-ai / gptuber-by-langchain

GENZITSU commented 1 year ago

データサイエンティスト向け性能問題対応の基礎

システムパーフォマンスのボトルネックとなる、プロセッサ、ネットワーク、ディスクの負荷をどのように調査し対応するかを解説しているスライド

コメント

ありがたや

出典

データサイエンティスト向け性能問題対応の基礎

GENZITSU commented 1 year ago

GPT-3 (text-davinci-003) を使って JCommonsenseQA を解く

日本げ言語理解ベンチマークJGLUEの中で、常識が必要とされる問題を集めたJCommonsenseQAをGPT3で解いてみると、正答率 85.4%を達成できたとのこと

人間の正答率や強強モデル達には及ばないものの、日本語に特化していないモデル & JGLUEで学習しているわけではない(本当にそうかはわからないが)ことを考えると割とすごいのかも

人間の正答率は(devデータにおいて)98.6% ですが、モデルの正答率は早稲田大学 RoBERTa (large) で 90.7%、LINE の HyperCLOVA でも 93.6% です

コメント

オープンデータですごい結果がでても、学習データに入ってるかもなという疑心暗鬼に陥ってしまうのがLLMの悪いところ…

出典

GPT-3 (text-davinci-003) を使って JCommonsenseQA を解く

GENZITSU commented 1 year ago

Kaggleで学んだBERTをfine-tuningする際のTips⑤〜ラベルなしデータ活用編〜

少量の教師データ + 大量のラベル無しデータという設定でBERTを学習させる際のtipsを紹介

少量の教師データでモデル学習 → pseudo Label という王道から、大量のラベル無しデータを活用したMLM、Teacher-Studentの枠組みでpseudo labelの蒸留を行うMeta Pseudo Labelsの3つを紹介している。

スクリーンショット 2023-01-20 15 10 45

コメント

今回の実験設定ではMPLが最も良かったがこいつはチューニングが難しいので、現実的にはpsedo label or MLMの2択になってくるか

出典

Kaggleで学んだBERTをfine-tuningする際のTips⑤〜ラベルなしデータ活用編〜

GENZITSU commented 1 year ago

fastapi-best-practices

その名の通りFastAPIでアプリケーション開発をする際のベストプラクティス集

コメント

まだ全部読めてないが、一旦メモ

出典

fastapi-best-practices

GENZITSU commented 1 year ago

【PyTorch】GPTをPrompt-tuningしてみた

大規模言語モデルから望ましい回答を得るためのpromp を自動的に探索するための手法 prompt-tuningを実装付きで紹介している記事

prompt-tuningには大きく分けて以下のような種類がある

  • 既存のボキャブラリーからPromptに最適なトークン列を探索する方法
  • Promptを固定長のトークン列とし,そのトークン列に対する埋め込みベクトルを最適化する方法
  • Promptに対する学習パラメタを言語モデルの各層が保持し,それらを最適化する方法

今回は2番目の埋め込みベクトルを学習させる方法を試している。この方法では埋め込みベクトルに対しての学習パラメータのみを保持しているので普通のGPUで学習が可能

学習させたさせた結果。

かなり低いものの、prompt tuningの可能性は感じさせる結果

スクリーンショット 2023-01-20 23 09 36

tuningの結果えられたpromptはなかなかにカオスだったとのこと (生成されたembegging列の最近傍の単語をとっているからかもしれないが)

スクリーンショット 2023-01-20 23 10 28

コメント

prompt-tuningの話ほとんど知らなかったので勉強になった。今後さらに発展しそうだ

出典

GENZITSU commented 1 year ago

ABEMAにおけるサムネイル検証とOPE活用

動画配信サービスにおけるインプレッション向上のためのサムネイル選定にOff Policy Evaluationを活用した事例の紹介

今回は、過去の配信ログ(ランダム)を用いて、アルゴリズムの選択と配信ログの選択が同じ時だけ評価に利用するというReplay Methodを用いてアルゴリズムを学習させ、CTRを改善させた。

ただ単にReplay Methondを適用しただけでは、精度が低下し、コンテンツ未視聴郡と視聴済み郡に分けてバンディットを学習させたところ大きく指標を改善させたところが面白い。

スクリーンショット 2023-01-23 20 31 00

スクリーンショット 2023-01-23 20 31 09

コメント

とても深く事象を分析した上で、結果を出しているのが良い。

出典

ABEMAにおけるサムネイル検証とOPE活用

GENZITSU commented 1 year ago

makcedward/ nlpaug

自然言語処理用のaugmentationライブラリ

実装されているaugmentation種類が約20種類以上あり、単純無文字の置き換えから、BERTによる類似語置き換え、逆翻訳、タイプミス、OCRエンジンの誤りなどが容易されている。

そして、言語関係ということで、信号に対するaugmentationや音声に対するaugmentationなどまでサポートされている ...

実装されているaugmentation達 (言語系のみ)

コメント

transformers系のモデルを手軽に扱えるaugmentationライブラリを探していたのでとても助かる

出典

GENZITSU commented 1 year ago

画像入力のみでマルチモーダルモデル構築、画像分類精度を改善する

単一画像から、画像特徴量 + OCR結果 + 画像サイズ のマルチモーダル情報を抜き出すことで、広告審査モデルの精度を改善した事例の紹介

審査対象の広告には文字列が多く含まれており、文字列情報も審査対象であることからOCR結果を活用することを思いついたとのこと

全ての情報を使うことで、単一の画像特徴のみを用いるより+7%ほど精度が向上したとのこと

スクリーンショット 2023-01-24 14 01 29

スクリーンショット 2023-01-24 14 01 39

コメント

面白いアイデア

出典

画像入力のみでマルチモーダルモデル構築、画像分類精度を改善する

GENZITSU commented 1 year ago

pkshatech/simcse-ja-bert-base-clcmlp

PAKSHAが公開したsentence transformerモデル

SimCSEをもちいてcl-tohoku/bert-base-japanese-v2JSNLI データセットにて学習させたもの

コメント

メモ

出典

pkshatech/simcse-ja-bert-base-clcmlp

GENZITSU commented 1 year ago

sinpcw / showcase-optimizer

Metaから発表された学習率の調整が不要な学習理論 d-adaptationを犬の分類データセット(dog-breed-identification)で検証した記録

このデータについて言えば、adam-sam > adam > d-adaptaion adamの順になった

スクリーンショット 2023-01-24 15 55 28

ちなみに d-adaptation adamはこんな感じ

スクリーンショット 2023-01-24 15 56 29

論文上の結果 (難しそうなデータのやつだけ抜粋)

スクリーンショット 2023-01-24 16 01 01

スクリーンショット 2023-01-24 16 00 49

スクリーンショット 2023-01-24 16 01 09

コメント

論文の実験結果の方をみたところ、物によっては対して変わらなさそうなので、一旦静観がよさそう

出典

GENZITSU commented 1 year ago

日本語ビジネスニュースコーパスを学習したBART事前学習済モデルの紹介

文章生成が可能なBARTモデルをビジネスニュースドメインで学習させたものをMITライセンスで公開

約3年間半分(2019-01-01~2022-07-12)の約2100万のニュース記事(約2.9億文)を事前学習データに使い、BART-baseサイズのモデルを事前学習しました。 事前学習の期間は、Google TPU v2-8(64 GiBメモリ)で約45日間です。

コメント

メモ

出典