Open GENZITSU opened 1 year ago
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。
定期的に読み返したい。 特にプロフェショナルであることは常に意識していきたいところ。
開発者のポテンシャルを台無しにする10の方法を紹介
どれもやられるとゲンナリするやつであるが、よく見かけるものな気がする。 逆にこれの反対のことを地道に積み重ねていけば生産性はかなり上がるのだろうか
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。
やっぱブログって大事なんだなぁ
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。
10ステッププロセスという学習方法は早速取り入れてみたい
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。
自分が毎日やっていることが時間と共にあなたを形作る
目標を実現するためには、その目標に一歩ずつ近づくようなルーチンを確立する必要がある
大きな目標をたて、それを週/月単位の小さな目標まで分解し、定期的に実行するようにする
秀逸とは一つの行動ではなく習慣である by アリストレス
習慣とは引き金とルーチンと報酬の3つの要素に分解できる
悪い習慣の改め方
新しい習慣の作り方
マインドセット系の話が大半であったが、常日頃から意識しておきたいことばかりである。
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。 第五部 (資産形成) は特に面白いところがなかったので割愛する。
あまり特筆すべきことも多くないので少なめ
SOFT SKILLSを読んだので重要なところを簡単にまとめておく。
忍耐という重要なスキルがなければ全てが台無しになってしまう
失敗は成功への唯一の道である
降りかかる失敗はコントロールできないが、それにどう対処するかはあなたがコントロールできる
人生で達成する価値のあるもので失敗なくして得られるものは無い
「成功するか学ぶか」である。
失敗を求めるようになればもっと成長することができる
ナポレオン・ヒルはこう綴っている
他人にどう思われるかを気にしないようにする
何かをうまくできるようになるためにはやり続けることだ
少しずつ前進するようにする
おすすめです。
ソフトウェア開発者にとってはこの上ない自己啓発書だと思います。
Flan-PaLMという大規模言語モデルで使用された Instruction finetuning を参考に、AIに効果的に褒めてもらう方法を検証した記事
instruction finetuningとは以下のようなイメージ
以下は実験結果
ただし、ドメインを変更すると打率が下がるらしい
以下を意識してプロンプトを生成
命令:序盤の場面設定と、私の発言内の「褒めてください」 例示:1つ目の昇進試験の褒め事例 思考の連鎖プロンプト:「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね」の部分(Let's think step by stepのイメージ)
ジェンダーにちゃんと配慮される文が生成されやすくなり、褒める文字数も増える効果があったとのこと
モデルのサイズに応じて性能が線形に伸びる
Chain of Thoughtは60 billion以上のパラメータがあって初めて効果を持つ傾向にある
最近提案されたprompt手法をまとめて知れて非常に勉強になった。
LightGBMを用いて区間予測する方法として分位点回帰と事後的な予測誤差の推定を試みている記事
NGBoostというライブラリで区間予測をすることも可能らしいが、こちらは正則化や大規模データへの対応、GPUができないなどの制約がありあまり現実的ではないとのこと。
メリット: 誤差分布に対する仮定をおく必要がない デメリット: 予測したいα%タイルごとにモデルを作成する必要がある
lightgbmで用意されているquantileを用いることで実現可能で、理論的にはPinBall ossに基づいている
# from https://zenn.dev/joanofarc/articles/gradient-boosting-interval-prediction
lower_quantile = 0.025
upper_quantile = 0.975
predict_dict = {}
for quantile in [lower_quantile, upper_quantile]:
quantile_params = {
"objective": "quantile", # quantile を指定することで分位点予測となる。
"alpha": quantile # alpha には分位点の値を指定する。
}
quantile_regressor = lgbm.train(
quantile_params,
lgbm.Dataset(x_for_lgbm, y_for_lgbm),
)
quantile_predict = quantile_regressor.predict(x_for_lgbm)
predict_dict[quantile] = quantile_predict
いい感じの予測結果が得られる
メリット: パーセントタイルごとにモデルを作成する必要がない デメリット:
理論 (誤差に正規分布を仮定した場合)としては以下のような感じ
# from https://zenn.dev/joanofarc/articles/gradient-boosting-interval-prediction
# 次に、分散推測モデルを構築し、分散の推測を行う。
def grad_hess_for_logvar(log_var: np.ndarray, data: lgbm.Dataset):
'''
推測された分散対数値に対する損失の一階微分及び二階微分を導出する
y_pred については引数としてではなくグローバル変数として与えていることに注意。
'''
y_true = data.get_label()
grad = 1/2 - 1/2 * (y_true - y_pred)**2 / np.exp(log_var)
hess = 1/2 * (y_true - y_pred)**2 / np.exp(log_var)
return grad, hess
log_var_reg_params = {
"objective": "regression"
}
log_var_regressor = lgbm.train(
log_var_reg_params,
lgbm.Dataset(x_for_lgbm, y_for_lgbm),
fobj=grad_hess_for_logvar # fobj 引数に自作の grad, hess 導出関数を定義する。
)
# 推測された標準偏差を導出する。
log_var_pred = log_var_regressor.predict(x_for_lgbm)
std_pred = np.sqrt(np.exp(log_var_pred))
これもいい感じの予測結果が出せる
これだけ見ると使い勝手の良い分位点回帰をつかっちゃいそうだが、こっちは学習に必要なデータがおおいのだろうか?
text-to-speechを活用してゲーム内の異世界言語音声を開発する取り組みが紹介されている。
以下面白かったところの抜粋
ゲームで用いられている異世界言語の開発には言語学に対する深い知識が必要で開発に時間と労力が必要である
架空言語をしっかりと作るには,言語学の専門的な知識に加え,新たな言語体系を組み立てるための膨大な手間が必要になる。これを言語学の知識なしで作り出し,なおかつ,演者の音声を収録するのではなく,プレイした結果に応じてリアルタイムに生成できれば,ゲーム開発において非常に役立つことは間違いない。
現状のTTSの精度はエンタメのカスタマー環境ではやや精度不足、なぜならユーザーの母国語に対する分解能が高すぎるため
ちょっとした不自然さを敏感に感じ取ってしまうのは,それが自分の母語だからという理由が大きい。普段,人間による流ちょうで自然な喋りに慣れているからこそなのだ。
TTSタスクは言語依存性があるため、通常日本語のTTSには日本語用の音声特徴量変換器(encoder)と音声変換器(vocoder)が必要になるが、あえて、この組み合わせはあべこべにする
ここで生成される言語の正解は誰も知らないため、違和感なく受け入れられるという
面白いことに,この英語風架空言語にはテキスト音声合成特有の不自然さを感じることがない。誰にとっても未知の言語であるため,聞き慣れた母語の音声合成を聞く時のような違和感がなく,「そういう言語」として受け取れる。
またこのencoderとvocoderの組み合わせを考えることで、プレイヤーごとのローカライズやゲーム内の方言などを作ることも可能だという。
まだ商用化には至っていないようだが、今後インディーズゲームなどでの活用が見込まれそうとのこと
もちろんこの手法は,言語学の知識を用いるような伝統的手法での架空言語作りと置き換わるものではない。しかし,架空言語をゲームに取り入れる場合には,かなり有望な手法であると感じられた。
この手法は現時点で商品化されているわけではないため,導入にどの程度のコストがかかるかは不明だが,個人的には,演者を頼む余裕のない予算の限られたインディーズゲームや,友達とのTRPGセッションなどにおいて,異世界的リアリティを出す際に活用できるぐらい手軽なものを期待したいところだ。
decoderとvocoderの組み合わせをあべこべにするおいうアプローチが斬新であった。
[CEDEC+KYUSHU]テキストから架空言語のボイスを作り出す手法が解説されたセッションをレポート。意味が分からないからこそ,リアルになる
Token Merging: Your ViT but Faster
facebook researchが発表したViTの推論速度向上手法に関する論文
学習済みViTの推論時に類似パッチをマージすることで精度劣化をに抑えながら最大2倍程度の高速化が可能
入力画像サイズが大きいときほど精度劣化は少ない傾向にある
精度表
学習してる最中からToMeを使うと学習が早くなり、精度劣化を少し抑えられる。
パッチの削減数ごとの精度表
224x224サイズだとr=10くらいから怪しくなってくるが、384x384だとr=23でもなかなか精度劣化が少ない。
とはいえ現実的に使う範囲だとr=8くらいで1.3倍の高速化を狙う感じになるか
ビデオや音声などでも同様の効果を発揮している
定性的な評価
パッチのマージは人間の直感に整合している
マージ方法のablation
コメント
transformer blockには手を加えず入力する系列長を短くすることで推論時間を高速化させるアイデアが良い
また、timmに簡単に組み合わせられるように実装されているのもポイントが高い 現状はtimmで実装されているvit または deitのみに対応しているようなので今後に期待。
出典