前回は、初めてデコード結果が劇的によくなったときのお話をしました。今回は、100万センテンスのパラレル・コーパスを扱ったときのお話です。
計画変更
当初の予定では、2010年12月からはMosesで行なう複数の処理を連続して行なえるように自動化したり、足りない機能を補うために、某I社独自のシステムを構築しようと計画していました。11月末までに、基本的な処理の流れを理解し、かつ、パフォーマンス測定するという目標は達成できていましたが、様々な工夫を施すも、BLEUスコアがちっとも向上しなかったのは、これまで連載してきた通りです。前回、語順の制限を解除してデコードすることでBLEUスコアが大幅に改善されたと書きましたが、あくまでも翻訳モデルに含まれている原文をデコードしたときの話であって、当時は、翻訳モデルに含まれていない原文をデコードしたときの実力は未知数でした。
プロジェクトのメンバーと議論をするうち、実際に利用してもらえる機械翻訳という視点に立てば、システム化よりも更なる品質向上を優先すべきだという結論に達しました。品質向上に関して、試してみたいことがたくさんあったということもあり、品質面において実用化の目処を立てることに目標を切換え、12月以降もこれまでのように実験を続けることにしました。
そんな背景もあり、まずは、かき集められる翻訳資産をできる限り多く集め、現時点で最高と思われる言語モデルと翻訳モデルを作ろうということになりました。こうして、上司のGさんに集めてもらったパラレル・コーパスは、ついに大台の100万センテンスに達しました。つい1ヶ月前に1万センテンスで稼動確認したばかりなのに、早くも100倍のセンテンス数です。
動かない
直前まで使っていた30万センテンスのパラレル・コーパスと比較しても、実に3倍の量です。予想してたとは言え、とにかく処理に時間がかかりました。前処理や言語モデルの作成は、10分前後で完了しましたが、翻訳モデルの作成とチューニングはご覧の通りです。
翻訳モデルの作成 | 4時間15分 |
---|---|
チューニング (1,000センテンス) | 8時間30分 |
この頃の感覚では、翻訳モデルはなるべく昼までに作り始めて夕方に確認、チューニングは帰宅前に始めて翌朝に確認という状態でした。なので、途中でミスに気付いてやり直しになると、半日とか1日のロスになってしまいます。
ま、ここまでは許容範囲でした。肝心なデコードを始めたところで、ついにPCの限界を超えてしまいました。30分かけて何とか言語モデルと翻訳モデルを読み込んだものの、既にswapが4.7GBもあり、HDDのランプは点灯しっぱなし。マウスを動かしてもカクカクで、画面描画ももっさり。ほとんど無応答状態になってしまいました。完全にメモリ不足です。。
当時は、どれくらいのスペックのPCが必要なのかが全くわからなかったということもありますが、試験運用の段階でいきなり新しいPCを買うわけにもいかず、何とか確保できた予備のPC 3台を使って、Mosesのセットアップをしました。
購入 | 2006年6月 |
---|---|
CPU | Pentium D 2.8GHz (内部的にはPentium 4を2個くっつけたデュアルコア) |
RAM | 2GB |
今こうやって振り返ると、確かにちょっと古過ぎたかなと思いますが、それにしても、まさか無応答状態になるとは思ってもいませんでした。
しかし、このままだと先へ進めません。無応答になったときのswapが4.7GBで、物理的なメモリが2GBということは、単純に足し合わせた6.7GBより多くのメモリが必要ということになります。ちょっと余裕を持たせてとなると、8GBは必要じゃん。。
いやぁ、困りました。某I社でメモリが8GBのPCなんて、現役で24時間稼動させてるPCサーバーくらいです。散々考えた挙句、何とか別の予備のPCを2台確保し、無応答になってしまったPCのパーツと組み合わせて、100万センテンスに耐えられるPC 1台に変身させました。
購入 | 2009年10月 |
---|---|
CPU | Pentium Dual-Core 2.6GHz (Core 2 Duoの廉価版) |
RAM | 8GB |
さすがにメモリを8GBにすると、100万センテンスでもメモリ不足になることはなくなりました。また、CPUが新しくなって処理時間が半減したこともあり、快調になりました。ハードウェアを変えるだけで、こんなに違うの? って感じです。
しかし、100万センテンスで8GBも必要だとすると、この先、200万センテンス、300万センテンスと増やすに連れ、安価に調達できるPCのスペックでは対応できなくなってしまいます。品質向上と並び、ハードウェア環境をどうするかという、新たな課題が発生しました。
次回はメモリ不足を解消せよです。
[注] この回顧録は、かつて勤めていた会社で書いた連載を復元したもので、某I社の現在の状況を反映している訳ではありません。