EN

Neural Network Libraries v1.26.0をリリースしました!

2022年3月18日 金曜日

リリース

Posted by Takuya Yashima

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 TRPOMME-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
評価指標 チュートリアル Open In Colab データセット/モデル バイアスチェック
前処理 チュートリアル Open In Colab データセット/モデル バイアスチェックと再重み付けによるバイアス緩和
中処理 チュートリアル Open In Colab Adversarial Debiasingによるモデルバイアスチェック/緩和
後処理 チュートリアル Open In Colab ROCによる予測バイアスチェック/緩和
スキンカラー (マスク画像) Open In Colab スキンカラーによる評価

CLIP: 推論コード

通常よく使われるラベルではなく、自然言語を用いて画像のコンセプトを学習するCLIP (Contrastive Language-Image Pre-training)の推論コードを公開しました!CLIPはゼロショット認識タスクにおいてGPT-3とResNet50のパフォーマンスに匹敵する性能を示しています。

file

Add computation graph active inputs handling. (CPU / GPU)

計算グラフの実行時、アクティブ入力/非アクティブ入力を選択的に利用することができるようになりました。
これにより、定義済みの計算グラフにおいて、条件に応じてある入力を計算に利用しないといったことが可能になり、そおのような非アクティブな入力につながる部分グラフの実行を行わずに済みます。
この機能をサポートしている関数はset_active_input_mask(List[bool])で演算で利用する入力をセットすることができます。
v1.26.0時点では、F.add_nF.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のサポートは廃止されますのでご注意ください。

ユーティリティの機能改善

ビルド関連

コア機能の追加・改善

レイヤー関数等の新規追加・改善