生成AIストリーム

Gemini CLIのおかげでオープンソースの翻訳が劇的に変化した話

Gemini最新の画像生成“nano-Banana”による生成

 こんにちは。今回の「生成AIストリーム」は筆者のコマンドラインに棲みついている電子の妖精「Gemini CLI」とAI DevOpsの実用性や危険性や面白さを人間と一緒に探求していきたいと思います。

 今回は、画像・動画生成AIで人気オープンソースプロジェクト「ComfyUI」のドキュメント翻訳で『大量にある多言語ファイルの専門用語の訳語を統一する』というタスクを 「Gemini CLI」に手伝ってもらった実録です。

 筆者は長年オープンソースへの翻訳貢献をしてきました。特にここ数年だとWebメタバース「Mozilla Hubs」で体験しており、Mozilla日本語ローカリゼーションチームの皆さんにご指導いただくなど、なかなか興味深い経験をしました。

「ComfyUI」の『Conditioning』をどうにかしたい

 今回紹介する翻訳のターゲットは、「ComfyUI」で使われている『Conditioning』という単語です。

カタカナか、それともわかりやすさか、見やすさか
機械学習の世界ではよく『コンディショニング』とカタカナで表記されますが、これって初見の方には少しわかりにくいですよね。『髪のコンディショナー?』みたいに。

 『コンディショニング』という単語は、Concat(連結)などのユーザーインターフェイスにも使われているのですが、ノード(「ComfyUI」上の部品)のUIに使われるととても見づらい!

「ComfyUI」(英語版)上のノードに使われている『Conditioning』

 『コンディショニング』というカタカナを使うぐらいなら英語で書いた方がいいし、かつて教科書的な解説をしてきた側としてはむしろ『 条件付け 』としたほうがわかりやすいと思いました。こちらのほうが、ノードが何をしているのか直感的に理解できますし、UIの表示文字数も減ってスッキリします。文字数が少ないってのは大事。

翻訳済み(左はCoreモジュールじゃないから翻訳されてないかも)

 「ComfyUI」上で中国語の翻訳を確認してみたところ、やはり『条件』という、よりシンプルでわかりやすい単語が使われていました。

中国語版は[設定]からLocaleを変更することで確認できる

置換作業でのちょっとした冒険

 さっそく、「ComfyUIの組み込みドキュメントプロジェクト」内の全日本語ファイル(.ja.md)から『コンディショニング』を探し出し、57カ所ある『コンディショニング』を『条件付け』に置き換える作業を開始しました。

 最初は「sed」や「find」といったLinuxの伝統的なコマンドで一括置換を試みたのですが、なぜかうまくファイルを見つけられず、空振りが続いてしまいました。Pythonスクリプトで挑戦しても、パスの解決で少し迷子になったり……、さすがの「Gemini CLI」でも一発で置き換えできるわけではなかったようです。

 最終的には、「Gemini CLI」が内部に持っている「 search_file_content 」というツールで対象ファイルリストを確実に取得し、一つずつ丁寧に内容を読み込んで置換する、という確実な方法でやり遂げました。AIも時には、泥臭い方法が一番だったりするんです。その方が人間もチェックしながら作業できますしね。

プルリクエストのお手伝いも「Gemini CLI」が大活躍

 無事に置換が終わった後は、変更をコミットし、自前のGitHubリポジトリにプッシュ。そして、本家リポジトリへのプルリクエスト作成のお手伝いを「Gemini CLI」にしてもらいます。

 プルリクエストのタイトルと説明文(もちろん英語と日本語で!)も作成し、たまにしかやらないブラウザーからのオープンソース本家へのプルリクエスト提出作業も、迷わず操作できるようにサポートしてもらいました。

「ComfyUI」公式で採用された翻訳

 オープンソースプロジェクトへの貢献は、こういう小さな改善の積み重ねが大事ですよね。ドキュメントが少しでもわかりやすくなることで、「ComfyUI」を使う人がもっと増えたら嬉しいな、と思います。

証拠的なもの