shimejii/visualization_tools_meliad

入力トークンのnpyファイルかhtmlのテーブルへ変換する

Closed this issue · 3 comments

入力トークンのnpyファイルかhtmlのテーブルへ変換する

入力

  1. npyファイル
    入力トークンの配列 shape (batch, seq_len)
    配列はsentencepieceのトークンidを保持
  2. デコードの単位指定
    tokenごと or batchごと
  3. sentencePieceのモデルファイルへのパス

機能

  1. tokenごとにデコード
  2. batchごとにまとめてデコード

出力

  1. token単位でデコードされた配列のhtmlのtable出力
  • shape (batch, seq_len, 1) <-- original
  • shape (batch * num_head, seq_len, 1) <-- head数分複製
  1. batch単位でデコードされた配列のhtmlのtalbe出力
  • shape (batch, 1)
  • shape (batch * num_head, 1)
  1. トークンidのまま、htmlのtable出力
  • shape (batch, seq_len, 1)
  • shape (batch * num_head, 1)

実行コマンド

  1. token単位でデコードされた配列のhtmlのtable出力
  • shape (batch, seq_len, 1) <-- original

python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --decodeUnit token --spFilePath "file/path/to/sentence/piece/model"

  • shape (batch * num_head, seq_len, 1) <-- head数分複製
    python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --decodeUnit token --spFilePath "file/path/to/sentence/piece/model" --duplicate 8
  1. batch単位でデコードされた配列のhtmlのtalbe出力
  • shape (batch, 1)
    python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --decodeUnit batch --spFilePath "file/path/to/sentence/piece/model"

  • shape (batch * num_head, 1)
    python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --decodeUnit batch --spFilePath "file/path/to/sentence/piece/model" --duplicate 8

  1. トークンidのまま、htmlのtable出力
  • shape (batch, seq_len, 1)
    python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --noDecode

  • shape (batch * num_head, seq_len, 1)
    python main.py npy2tablehtml WORKDIR EXPERIMENT_MODE DATABASE_NAME STEP MEMORY_INDEX DEVICE_INDEX TABLE_LABEL --isInputToken --noDecode --duplicate 8

追加するオプショナル引数

  • isInputToken
    bool
    npyファイルに保存されているデータがtokenであるか

  • decodeUnit
    str
    tokenのデコードを行う単位を指定
    batch or token

  • duplicate
    int
    batchを何倍に複製するか
    通常transformerはヘッドの数だけ線型変換を行う

  • noDecode
    bool
    Trueの時、デコードせず、htmlのtableとして出力する

--spFilePath
str
sentencepeiceのモデルファイルへのパス