Neural Network Libraries v1.26.0をリリースしました!
AIの公平性に関するチュートリアルやCLIPの推論コードを公開しました!また、 nnabla-rl
がアップデートされました!
Spotlight
nnabla-rl v0.11.0公開
nnabla-rl v0.11.0をリリースしました。v0.11.0ではAverage TRPOやMME-SAC等の最新アルゴリズムの他、LSTMやGRU等のRNNレイヤーを使うモデルのサポート、n-step Q学習のサポート拡充、便利な関数の追加がされました!
また、v0.11.0では複数のバグフィックスも実施されています。
$ pip install nnabla-rl
で、ダウンロード・インストール出来ますので、是非お試しください。
nnabla-rlのリリースの詳細はnnabla-rlのリリースノートも合わせてご覧ください。
Fairness Colab Demos
AIにおける公平性の重要性はますます大きくなっています。しかしながら、そのコンセプトを熟知している人はまだ多くはありません。そこで、私たちはAIにおける公平性がどのように扱われているのかを知ることができるチュートリアルを用意しました。
Name | Notebook | Task |
---|---|---|
評価指標 チュートリアル | データセット/モデル バイアスチェック | |
前処理 チュートリアル | データセット/モデル バイアスチェックと再重み付けによるバイアス緩和 | |
中処理 チュートリアル | Adversarial Debiasingによるモデルバイアスチェック/緩和 | |
後処理 チュートリアル | ROCによる予測バイアスチェック/緩和 | |
スキンカラー (マスク画像) | スキンカラーによる評価 |
CLIP: 推論コード
通常よく使われるラベルではなく、自然言語を用いて画像のコンセプトを学習するCLIP (Contrastive Language-Image Pre-training)の推論コードを公開しました!CLIPはゼロショット認識タスクにおいてGPT-3とResNet50のパフォーマンスに匹敵する性能を示しています。
Add computation graph active inputs handling. (CPU / GPU)
計算グラフの実行時、アクティブ入力/非アクティブ入力を選択的に利用することができるようになりました。
これにより、定義済みの計算グラフにおいて、条件に応じてある入力を計算に利用しないといったことが可能になり、そおのような非アクティブな入力につながる部分グラフの実行を行わずに済みます。
この機能をサポートしている関数はset_active_input_mask(List[bool])
で演算で利用する入力をセットすることができます。
v1.26.0時点では、F.add_n
とF.mul_n
がこの機能に対応しており、以下のようにして利用することができます。
input_shape = (2, 3, 4) # 入力VariableのShape
n_inputs = 4 # 入力Variableの数
n_active = 3 # 入力Variableのうち、アクティブな入力Variableの数
rng = np.random.RandomState()
inputs = [rng.randn(*input_shape).astype('f4') for _ in range(n_inputs)]
# アクティブ/非アクティブを示すbooleanのarrayを作成
active = np.random.permutation(n_inputs) < n_active # ex. array([ True, True, False, True])
# アクティブ/非アクティブによらずすべての入力を用いるグラフを作成
y = F.add_n(*[nn.Variable.from_numpy_array(inp).apply(need_grad=True)
for inp in inputs])
# y.parentでyを生成する関数(F.add_n)にアクセスし、set_active_input_maskを呼ぶ
y.parent.set_active_input_mask(active)
# 入力時点で非アクティブ入力を除外したグラフを参照用に作成
y_ref = F.add_n(*[nn.Variable.from_numpy_array(inp).apply(need_grad=True)
for (act, inp) in zip(active, inputs) if act])
y.forward()
y_ref.forward()
np.allclose(y.d, y_ref.d) # return True
python3.6 / CUDA10.0 / cuDNN7サポートの廃止
本v1.26.0以降、Python3.6とCUDA10.0とcuDNN7のサポートは廃止されますのでご注意ください。
ユーティリティの機能改善
ビルド関連
- Dockerfileの統合 (CPU / GPU)
- VC2019コンパイラのサポート (1 / 2)
- コンバータで利用するtensorflowをv2.5.1からv2.7.xにアップグレード
- Cランタイム: APIレベルの同期
- 一部関数内部の累乗処理を積に変更
- 動的なMPIのロードのサポート