LoginSignup
0
0

More than 3 years have passed since last update.

BertをFinetuningしてStoryPointを読む

Posted at

概要

  • NLPで使えるものを作りたかった (動くものを作るのが最優先)
  • PreTrainedモデルを使ったチュートリアルを色々試して最後まで辿り着くことができた (バージョン管理はかなり重要だと思った)
  • 積み残しあり
  • それはそれとして

作ったもの

Storyを入れるとStoryPointを返す

使ったもの

[データ」
- trelloから落としてきたカード一覧

[学習]
- fugashi 1.0.5
- ipadic 1.0.0
- mecab-python3 1.0.3
- tensorflow 2.3.1
- tensorflow-estimator 2.3.0
- tensorflow-gpu 2.3.1
- transformers 3.4.0

[アプリ]
- django(3.1)

[環境]
- Ubuntu20.4
- docker 19.03
- docker-compose 1.27
- image tensorflow/tensorflow:latest-gpu-py3-jupyter(学習用)
- image python:3.8(アプリ用)

[参考にしたサイト」
- https://qiita.com/takubb/items/fd972f0ac3dba909c293

手順

参考にしたサイトを順番に実行してゆく
本件のために追加・修正した処理は以下

1. BertのFinetuning

transformerのソースを修正してタスクを足すタイプのチュートリアルは最後まで行きつかなかった、、参考サイトの方法で何とかアプリ作る所まで行きついた

1-1. trelloからデータの取得

  • trelloのAPIを使ってカードを取得
  • 取得したデータの名から学習用に使用できるデータを抽出
    (完了している、ストーリーポイント(SP)がついている、ストーリーが記載されている)

1-2. ラベルの設定、対応表の保存

  • SPは[0.5,1.0,2.0,3.0,,,]のようになっているが、マルチクラスの分類で使用できるラベルは[1,2,3,4,,,]なのでデータを修正してマッピング表{"0.5":0,"1.0":1,"2.0":2,,,}を作成しておく
  • token化する際のmax_lengthを調整(長すぎるとなぜか学習できない)

2. Djangoで呼び出す

2-1. 学習で作成したモデルを配置

  • staticに配置して読み込む

2-2. 学習時に作成した対応表を使用して結果をSPに変換

  • staticに変換表を配置して変換処理に使用

結果

  • 出来上がりは使ったものにある通り
  • データが少ないので精度は不安定、結果は以下 mlflow.png

今後やりたいこと

アプリまでいったので満足感は得た、、ジョークアプリとしては面白いと思う

  • 精度を上げたい(CVやってないし、GPUはmax_lenght=128以上はメモリのらないといわれたし、、)
  • Importanceを出したい、可視化したい

それはそれとして

諸々思いました

  1. プロジェクト単位でのデータ蓄積は厳しいかも
  2. 本当に使う場合は「上位3位以内を参考値としてみる」など運用の工夫が必要(精度を上げても100%にはならない。人がSPをつけても100%は無理だと思うし、、)
  3. 似たようなProbabilityが上位に並ぶ場合はストーリが不完全?ストーリー詳細化が必要となる指標になる?
  4. 最小単位のカードは「スプリントの中で一人がこなせる」大きさのSPに収束する?とするとSPを推測するよりも一定のSPに収まらないストーリーとその原因を出すほうが使える?
  5. チームに新しいメンバーが入った時も同じモデルでSPを出してよいのか?全体平均は上がるはず?そんなことが実際の案件で顧客に受け入れられるか?
  6. 同一タスクのSP平均増減が許容されない場合、メンバーはアプリやサービスが終わるまで固定せざるを得ない?
  • ご指摘、アドバイスなど是非お願いします!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0