Open GENZITSU opened 3 years ago
cygamesのゲーム開発の現場で取り組まれた、制作現場の効率化に機械学習が用いられた事例の紹介。
SSDを用いてキャラクターの顔領域の検出を実施 タグ付けには既存のたタグ付き画像 + opencvのアニメ顔検出モジュールを使用
学習したモデルの精度
人物以外にも利用
デプロイ時
こちらはルールベースで機能開発
アルゴリズムの紹介
デプロイ
自社で誤字検出器をつくることで、外部ツールへのキャッシュアウトを抑止
検出方法
肝心の誤字の検出自体は、各単語ごとのBERTの穴埋め問題を解かせて、尤度(出現順位)を特徴量として機械学習で判定している。
デプロイ
現場の課題 → 解決策 (これをどう実行するか) → デプロイ
までの全ての工程が詳細に述べられていて、めちゃくち参考になる記事。
codexの評価には、コードの評価用データセットが用いられている。
codexで生成されたコードはなぜかちゃんと動くのだが、こういう背景があったようだ。
CodexはGPT-3言語モデルをベースとしている。GPT-3の0%と比較して、OpenAIの公開されているHumanEvalテストデータセットの問題の70%以上を解決できる。
これはオープンソースのテストデータセットで、モデルのプロンプトと、生成されたコードの有効性を確認するための一連の単体テストで構成される164のプログラミング問題である。 Codexが問題ごとに1つのソリューションを生成したときに、ユニットテストは問題の28.7%に合格した。問題ごとに100のソリューションを生成することを許可された場合に、Codexが少なくとも1つの正しい結果を生成したものは、問題の77.5%に至った。
非常に大量のコードを入れているのだが、注目すべきは「空白」を明示的に扱うようにしたこと。
ームは5,400万の公開GitHubリポジトリからPythonコードファイルを収集し、最終的なデータセットを159GBに絞り込んだ。モデルはGPT-3と同じテキストトークナイザーを使用する。コード内の単語の分布が自然言語と異なるため、研究者はこれが最適ではないことを発見した。さらに、Pythonコードには重要な空白が含まれているため、チームは空白の「実行」を表すトークンの追加セットを導入した。
文章生成系のタスクではbleuのようなファジーマッチでの評価がよく行われるが、OpenAIは正しく動作することを重視
この指標でみてみると、既存のツールでは機能性を持つコードが生成できないことが見て取れる。
OpenAIチームは、評価に機能的正当性を使用することを選んだ。これが人間の開発者がコードを判断する方法であると主張している。 使用される特定のメトリックはpass@kである。これは、モデルがk個のコードサンプルを生成し、いずれかのサンプルが単体テストに合格した場合、モデルは問題を解決したことを意味する。12BパラメータCodexモデルは、k=1で28.8%、k=100で72.31%のスコアを達成した。これに対し、TabNineの最大の無料モデルではそれぞれ2.58%と7.59%、GPT-Jでは11.6%と27.74%である。
モデル自体は強力なので、やはり評価の方法が大事になってくるようだ。
プログラム生成用にテストケースを作っているのがエンジニアっぽい。
今後テストケースを拡充したり、他言語用のものを用意すれば我々はコーディングから解き放たれるのだろうか...
試合の分析をするためには、プレーの切れ目を検出する必要があるが、サーブの検出だけでは不十分
というわけで、プレイヤー間の位置関係をもとにした検出を考案
プレイヤー間の位置関係はhomography変換を用いて、算出
サーブの認識は手前プレイヤーは楽だが、奥側のプレイヤーは困難
サーブの認識精度は手前側プレイヤーでも時々ブレる
精度評価スキームに難があるものの、プレイヤー間の座標を加えることで精度が向上
会場からはサーブ前のボールのバウンドも特徴量にいれてみては?という質問が上がっていた。
おもしろい!
centernet → 後処理 → 決定木 なのでリアルタイムでの処理は厳しいかもしれない。
手前側のプレイヤーの座標は正しく推定できそうだが、奥側のプレイヤーはどうなんだろうか?
vscodeのPython用拡張。
関数の定義文を読み取り、自動的にdocstringの雛形を生成してくれる。
めっちゃ便利
ことの発端: https://twitter.com/yu4u/status/1408416485442154505
というわけで、imagentのデータを用いて主成分 top 100を可視化したのがこちらのツイート。
単純なパターンから複雑なパターンまでが規則正しく並んでおり、興味深い。
実験結果: https://twitter.com/PierreAblin/status/1435356508242550790
CNNの浅い層が抽象的な図形の抽出に相当する的な話を思い出した。
AIの応用先が広がっている一方で、Aiを学習させるためのエネルギーや計算時にしようするエネルギーが肥大していることが問題となっている。
以下のレポートは記憶に新しい。
2019 年にマサチューセッツ大学の研究者は、最先端の自然言語処理アルゴリズムを学習させて人間のようなテキストを作成するのに必要なエネルギーが、アメリカの自動車の生涯排出量の 5 倍に相当する二酸化炭素や、サンフランシスコ・ニューヨーク間の往復航空券 300 回分に相当する二酸化炭素が発生するという成果を発表しました。
この傾向は機械学習のモデルサイズとそれに入力されるデータサイズが単調増加し続けている事が原因。
AI、特に機械学習とディープラーニングのエネルギー消費の上昇 (とそれに伴う CO2 排出量の上昇) は、環境負荷低減の観点から無視できなくなってきています。ディープラーニングの研究に必要とされる計算量は、数カ月ごとに倍増しているとも言われます。これは、モデルの学習に使用するデータセットのサイズが増大し続けていることに起因しています。
というわけでできるだけ効率的なAIを求めるいくつかの取り組みが以下
効率的なアルゴリズムの追求 効率的な学習方法やモデルの探究、はたまたNASの利用など
AI チップによる処理実行 AIの推論処理に特化した計算チップによって効率化を行う
再生可能エネルギーによる AI 処理の実行 ここからazureの宣伝 azureのクラウドデータセンターは再生可能エネルギーを使うようにされているらしい。 そして、最も環境負荷の低い地域での計算を実行できるようなAPIが提供されているとのこと。
パブリック クラウドのデータセンターは、可能な限り再生可能エネルギーで電力を賄うように改善がなされています。例えば、Azure は 2012 年の時点ですでに 100% カーボンニュートラルを達成していますが、2025 年までには 100% 再生可能エネルギーで稼働する予定です。したがって、AI 処理にパブリッククラウドを活用することは、そのまま CO2 排出量を削減することに繋がります。
Azure GreenAI Carbon-Intensity API という名称で、最も環境に優しいデータセンターを提案する以下の機能を提供しています。
後半がazureの宣伝になっててわらった。GPT-2を学習させるのに、自動車5台分のカーボンフィットプリントが発生するという記事は記憶に新しいが、
あれからさらにモデルがでかくなっていることを考えるとゾッとする...
顔, 服, 紙を分離するsegmentationモデルがMITライセンスで公開されている。
データセット自体は非公開だが、452枚の画像
自前で撮影した画像やインターネット上から収集した画像を合計452枚使用しています。
実行サンプルは以下。
まるで物語シリーズのようだ
使いどころは微妙かもしれないが、GANの生成品質を上げるために関節検出するみたいな話があるので、それ形に使えるかも?
2021/6/21に現在に公開されている日本語用モデルのまとめ
それぞれのモデルがどのように学習されているかやどのトークナイザーが用いられているかな共まとめられているので、とても助かる。
xlnetとlaboro.aiから公開されているdisiti bert知らなかった。
RGBD segmentationの精度表、論文とコードのリンクがまとめられている。
対象範囲は2013年から2021年8月末まで
メモ
MLシステムを現場のニーズに合わせて導入するには、というテーマのTJOさんのブログ
MLで到達可能な精度がそもそも人間の求めるレベルに達していないという側面もありつつも、精度上はマッチしているが、実装コストやオペレーション的に受け入れられないケースがある。
「実務上のニーズと機械学習の精度とは必ずしもマッチしない」という難しい現実を意味しているように思われます。そこで、今回の記事では「あえて精度勝負をしない機械学習」というテーマのもと、機械学習システムをいかにして現実のニーズに合わせて導入していくかについて論じてみます。
「そもそも機械学習モデルで達成可能な精度の上限が『現場の人間が考える十分かつ高いと感じられる精度』に達していない」 「学術・技術面でベスト」であっても「実務面ではベストとは限らない」アルゴリズムというのはそこかしこにあり
TJO氏が経験した事例
予測精度ではなく特徴量の寄与度などをアウトプットとして活用してもらう方向
「最適な広告クリエイティブを求めたい」という課題に対して「機械学習で直接予測(生成)する」のではなく、「ヒトがクリエイティブをデザインする参考となる材料を提供する」ことで解決策とする、というものです。
推論結果を出すサンプルを絞る方向。 精度が担保できるものだけに絞る。
ACC 0.8だと、ぶっちゃけ間違ったクラスに行ってしまうサンプルの数も馬鹿にならないわけで、それをいちいち人手で修正するのもしんどい話 「予測サンプル全てにクラス分類事後確率をつけて、一定値以上なら採用し、それに満たないものは捨てる」という運用 さらに、その「一定値」の閾値を何通りか用意しておいて、現場担当者の判断で「全部使う」から「信頼できるレベルのものだけ厳選して使う」まで選べるようにすることで、「捨てる」量もコントロールできるようにしたのでした*6。
「現場の感覚の活用」がキーワードになっていて、それが結果として「合目的性」の面でもacceptableだったので現場で受け入れてもらえたという側面 どちらかというと精度はともかく『使い勝手の良さ』を求める人間臭い現実社会に入っていく」ということであり、その点で「人間臭さと共存できる機械学習」が求められる
勉強になる。
予測精度ではなく解釈性を売っていくパターンに持っていくのは結構コミュニケーションの仕方に寄り添う。
相手側の業務オペレーションを深く観察して、落とし所を見つける必要がありそう。
imbalanced-learnとCleanLabを用いて、データの品質を上げていく方法の事例紹介。
農業では、データの一貫性があまりなく、データを得る事がそもそも困難かつ、失敗データが極端に少ない事が考えられる。
不均衡データの対策方法の代表的な対策方法の中でも、samplingとensembleに対応しているのが imbalanced-learn
SMOTE を使用する例
こちらはconfident learningの手法を取り入れたcleanlabを用いている
使い方はとても簡単
サンプルの結果
ラベルの誤分類確率がわかっていると、性能があがる
cleanlab気になっていたので、新たな事例がしれてよかった。
誤ったラベルが多すぎても、誤分類確率がわかっているとある程度対応できるのに驚いた。
表題の通り、
低音と高音の解像度が同じになるように調整
CQTをC++で実装し、それをpythonに変換して使いました。 その際に低音と高音の解像度が同じになるようにQfactorを調整しました。
1オクターブの分解能を36に設定。
librosaのデフォルト値は12だと思います。1オクターブが12音なので、12は1オクターブあたり1の解像度ということになります。
これ以上大きくしても精度にあまり変化は見られませんでした。
データを保存する際には、必ずコードチェンジの部分で切り取るようにします。 その理由は、適当な場所でデータを切ってしまうと、コードの開始位置ではなく、途中が開始位置になってしまうからです。 ほとんどの場合、コードチェンジの直後に構成音が演奏されます。ベースの場合も同様です。 コードの途中では、ベースの音が動いていたり、構成音が鳴っていなかったりします。
データ拡張のために周波数マスキング、時間マスキングを追加しています。 ピッチシフトをして、学習データを12倍に増やしています。
コードを予測する際には、いきなりコードを出力するのではなく、コード構成音ベクトルを予測し、それに基づいてコードを予測しています。 コードのデータはかなり不均衡 何百ものコードを予測するよりも、どの音が鳴っているのか、そのベクトルがどんなコードを表しているのかを予測する方が簡単です。
予測したコード構成音が不自然に途切れないように、平滑化を行う。
コードチェンジの瞬間を予測する
キーがわかっていれば、コード進行のルールや音の関係性のようなものを把握できるかもしれません。そうなることを期待して、キーを予測します。
コード遷移確率や調の損失関数にはfocallossを、コード構成音ベクトルにはfocallossとtverskylossを組み合わせたfocaltverskyを使用しました。
オリジナルなスペクトログラムの作成、オクターブの分割、不均衡データ対策あたりが鍵っぽく見える。
国土交通省は、全国の道路交通量調査で、調査員ら人手による観測を廃止する方向で検討に入った。交通監視カメラの映像を人工知能(AI)で解析する手法に転換し、業務の効率化やコスト削減を狙う。将来的には交通量を常時観測できる体制を構築し、渋滞対策などにデータを活用できるようにする。
データの収集は、調査区間に配置した調査員が走行する車を目視で確認するなどして行っているが、今秋の調査では、国が担当する区間に限り調査員による観測を廃止。AIがカメラ映像から車種などを解析する手法を導入する。
ですよねぇという感じだが、どこが受注することになるんだろうか?
Common Crawlから収集した4億枚の画像に対して、CLIPを用いてテキストと画像のペアの閾値(0.3)を設けた。
All images and texts in the LAION-400M dataset have been filtered with OpenAI‘s CLIP by calculating the cosine similarity between the text and image embeddings and dropping those with a similarity below 0.3 The threshold of 0.3 had been determined through human evaluations and seems to be a good heuristic for estimating semantic image-text-content matching. The image-text-pairs have been extracted from the Common Crawl web data dump and are from random web pages crawled between 2014 and 2021.
画像データには重複が存在するかもしれないとのこと。
There is a certain degree of duplication because we used URL+text as deduplication criteria. The same image with the same caption may sit at different URLs causing duplicates. The same image with different captions is not, however, considered duplicated.
提供されているサンプルを見た感じ閾値0.3は結構妥当そう
ライセンスは商用利用可能なCC-BY 4.0
We are distributing the metadata dataset (the parquet files) under the most open creative common CC-BY 4.0 license. It poses no particular restriction. The images are under their own copyright.
画像の収集方法の詳細も丁寧に書かれている。
image 2 captionなデータなので、pretrainモデルを作るのは難しいかもしれないが、このデータセットをもとに自己教師あり学習を使ってみるのもありかもしれない。
ACES社長によれば、AI技術はまだコモディティ化していると言えるほどバリューを出せていない。
、現状AI技術がコモデティ化しているというのは正直誤った見方だと思います。 むしろ、コモデティ化を議論するずっと前のステージにいると見ています。
そもそもAIの価値とは一個一個の知的処理の単価とそのトランザクション数ではかられるものだが、現状のAIは付加価値の高い知的処理がまだできていない。
「現状、産業に対して、AI技術を用いた高付加価値の創出がそもそもできているか?
AIの価値 = 知的処理単価×産業全体でのトランザクション数 で計算されます。そもそも単価が高く、かつトランザクション数が多い知的処理を、ソフトウェアで再現できることにAIの価値があります。
まだまだ解決するべきissueはたくさんある
さらに、コモデティ化されていると言われやすい物体検知などの認識技術も、論文にはなっていないけれども、社会実装におけるissueが様々存在していて、まだまだ研究余地があります。
アカデミア→実プロダクトまでを示した以下のバリューチェーンが、とても勉強になる。
アカデミアの技術を事業へ接続することができる能力は、大変な価値があります。
細かく分けると以下のようなスキルが重要となる。
- 研究・論文を取捨選択(場合によっては自ら論文化): 数多くあるAIの技術・論文から、産業で価値を生むアルゴリズムを選択し構造化する付加価値
- モジュール化/パッケージ化: モジュール化/パッケージ化することで、再現性を持って、かつ高速に仮説検証を実現する付加価値
- データ学習と仮説検証: 業界知見を取り込み、仮説検証を繰り返すことで人の知見を技術でソフトウェアで再現する付加価値
- 導入・運用: 「知見」を現場の価値に落とし込み運用する付加価値
このプロセスを回せる・担えるAI研究者/エンジニアは、自身の専門性や技術を社会の価値に落とし込むことができ、人材価値も高いです
アカデミア→現場導入までのバリューチェーンの図がとても印象的。
自分がどのスキルを売り物にしていくかを考える良い機会になる。 (全部できるのが一番いいけど)
OPENAIのCodexがホラーすぎる件について
openaiが発表した自動コーディングツールの入出力例。
以下のような入力をすることで...
以下のような出力を得るらしい...
コメント
これまじか...
すごいな
出典
元記事