今日の『研究データエコシステム構築事業シンポジウム2025』でも話したのだが、私(安岡孝一)のグループがHuggingFaceHubで公開しているbert-base-russian-uposは、Protect AIによって「unsafe」の烙印が押されていた。ただ、8月15日の記事にも書いたとおり、bert-base-russian-uposはロシア語の係り受け解析でダントツの解析性能を示しており、捨てるには忍びない。
このbert-base-russian-uposを設計した時点では、pytorchのバージョンは1.11で、torch.load
はpickle(あるいはdill)で実装されていた。パラメータとプログラムを一体化して、言語モデルに埋め込むことがアタリマエだった時代である。ところが3年後のpytorch 2.6では、この機能は非推奨(weights_only=True
に変更)となり、プログラムを言語モデル内部に埋め込むのは「unsafe」とみなされるようになった。セキュリティの立場からは仕方ない変更だが、既存の言語モデルが「unsafe」とみなされる事態となったわけである。
ただし、「unsafe」とみなされたからといって、いきなりbert-base-russian-uposが使えなくなったわけではない。しかも、HuggingFaceHubはGitで実装されているので、過去の履歴は残すことができる。ならば、過去のモデルを履歴に残しつつ、最新のcommitは「safe」となるよう言語モデル(とプログラム)を改造すれば、研究の再現性はギリギリ維持される(ように思える)。でもそれは、研究者としての立場を優先しすぎていて、セキュリティ屋としてはマズイ態度なのではないか。いっそ、過去のcommitを破棄すべきなのではないか。もっとヤバイ事態になったら、一体どうすべきなのか。どうにも悩ましいところだったりする。