ChatGPTで店舗名を固定したまま店舗情報を翻訳してみた

こんにちは。ぐるなびデータサイエンティストの閔(みん)です。普段は、検索システムの改善や、AIを活用した業務効率化に取り組んでいます。

LLMを翻訳機として使う

LLMの中には、GPTなどのように、生成に特化しているモデル *1 もありますが、そのようなモデルであっても、翻訳に使うことが可能です。しかも、翻訳に特化しているモデルとは違って、特別な指示を出して翻訳を行うことができます。

ここでは、英語の技術文書を日本語に翻訳する例を紹介します。まず、翻訳に特化したモデルを使って翻訳してみようと思います。

原文

The study on transformer architecture was published in 2017. It accelerated the speed and boosted accuracy of machine translation. Nevertheless, it occasionally mistranslates when there are no context around the source language. For example, it can misunderstand the meaning of a certain word in a button component on an website. However, contemporary large language models (LLMs) can handle isolated words if properly instructed. So, what enabled this?

日本語訳

トランスフォーマー アーキテクチャに関する研究は 2017 年に発表されました。これにより、機械翻訳の速度が向上し、精度が向上しました。それにもかかわらず、ソース言語の前後の文脈が存在しない場合、誤訳が発生することがあります。たとえば、Web サイトのボタン コンポーネント内の特定の単語の意味を誤解する可能性があります。ただし、現代の大規模言語モデル (LLM) は、適切に指示されていれば、孤立した単語を処理できます。では、何がこれを可能にしたのでしょうか?



LLMを使った翻訳

次は、LLMを使ってこの文を翻訳してみます。まず、ただ翻訳するよう指示を出してみます。添付画像は、社内で業務効率化に活用されているLLMツールの「ぐるなびConfidant」です。

ぐるなびConfidantとは

ぐるなび版ChatGPTであるぐるなびConfidantは、ぐるなびの社員が持つ豊富な情報を生成AIに活用することを目的としたアプリケーションです。このアプリは、社員同士がそれぞれのナレッジをシェアし合うことで、プロンプトの理解を深めると同時に、業務の効率化を図ることを目指しています。具体的には、日常的な業務の一部をAIによって置き換えることで、社員がより重要な業務に集中できるようにすることが目的です。

さらに、このアプリには社内情報(RAG:Retrieval-augmented generation)機能が搭載されており、社内のナレッジを効率的に検索・利用することも可能です。たとえば、過去のプロジェクトデータや専門知識、社内ドキュメントなど、さまざまな情報を簡単に検索して活用することができます。この機能により、社員は必要な情報を迅速に取得し、業務の質とスピードを向上させることが期待できます。

ぐるなび版ChatGPTは、これまでの業務プロセスを一新するだけでなく、社員のスキル向上にも寄与するため、企業全体の競争力を高める重要なツールとなります。

ぐるなびConfidantの中では、ChatGPTのモデルを使っています。

特定のキーワードが翻訳されないように翻訳する

単純な翻訳

次はもっと複雑なことをしてみましょう。なるべく技術用語は翻訳させたくないと感じたことも多いでしょう。今度は、”transformer”という用語だけを翻訳しないように指示してみます。

単語を固定した翻訳

指示通り、transformerを翻訳させないまま、他の部分は日本語に翻訳しています。

店舗名の表記方法を固定して店舗情報を英語で要約

英語表記と日本語表記を並列させた翻訳

プロンプト

次はある店舗の情報です。店舗の情報を英語で要約してもらいたいです。

●制限事項
 2文以内にしてください
 店舗名を翻訳する際は、英文名の横に(日本名)を表示してください。
英文の名前は、料理ジャンルなどを示した部分を除き、発音をそのまま英語に表記したものにしてください。
 例1) 店舗名: 鍋料理専門店 よしみ → Hot Pot Yoshimi (鍋料理専門店 よしみ)
 例2) 店舗名: かまたろー → Kamatarou (かまたろー)

※上記は架空の店舗名です。実在の企業や飲食店などとは関係ありません。

インプット

ここでは、店舗情報を英語で要約します。ただし、店舗名の表記方法は固定します。


 店舗名: 会席料理 和ダイニング ぐるなび
 説明: 【屋上×テラス席】
 星空の下でビアガーデンが楽しめる!
テラス席や店内で食べ飲み放題&ビアガーデンが堪能できます。 【2h飲み放題付き】肉&魚満喫コース 5,000円 【2h飲み放題付き】焼き鳥満喫コース 3,000円 広々としたテラスは最大70席ご用意しております。 大人数でのご利用も可能です。ぜひご利用ください! 駐車場: 有:専用無料15台
アウトプット

店舗名には、お料理のジャンル(鍋、おでん、中華など)が入っている場合もあれば、その他料理とは関係のない一般名詞などが入っている場合もあります。お料理のジャンルは翻訳したいですが、そうでなさそうな部分は翻訳をしない方がお店探しがしやすくなるので、多少複雑な指示を出しています。

指示が多少複雑な形となりましたが、ちゃんと次のような結果を出してくれています。


Kaiseki Cuisine Wa Dining Gurunabi (会席料理 和ダイニング ぐるなび) offers a rooftop beer garden with all-you-can-eat and drink courses, including a meat and fish course for 5,000 yen and a grilled chicken course for 3,000 yen. The spacious terrace can accommodate up to 70 people, making it ideal for large groups.


「懐石料理」が「Kaiseki Cuisine」となっていて、店舗名の「和ダイニング ぐるなび」がそのまま「Wa Dining Gurunabi」となっていて、店舗名の翻訳の仕方が指示通りになっていることがわかります。また、店舗名の横に日本語名も書いてあります。翻訳の指示をうまく工夫すれば、日本を訪れる観光客の皆さんの手助けにもなりそうです。

なぜこのようなことができるのでしょうか?

小さい言語モデルには、このような指示を下すことができません。しかし、モデルが大きくなると、具体例を出したり(few-shot) 出さなかったり(zero-shot) して、言語モデルを指示に従わせることができます。このような性質は、いわゆるLLMが登場する前のモデルでは見られなかったものです。

LLMに関する様々な研究結果をまとめて、この性質について考察したのが Emergent Abilities of Large Language Models *2です。この論文では、FLOPS *3が1022~1024 になると、指示に従う能力がいきなり向上することが多いことが示されています。
このように、いきなり何かができるようになることを「emergent ability」といいます。例えば、「1+1=2」という例を出しただけで「2+3=?」と入力すると、モデルが「5」と答えるなどのことができるようになるなどです。
この論文では、四則演算や文字の入れ替えなどの8つのタスクについて、どれぐらいのFLOPSでemergent abilityが現れるかをまとめています。この論文によると、どのタスクにおいてもFLOPSがこの範囲内になった時にemergent abilityが現れるとのことです。しかし、emergent abilityの現れ方は、モデルやタスクによって異なるようです。

実は、タスクやモデルの性能を評価する方法の選び方が原因で、今まではなかった性質が現れたかのように見えたのではないかという説もありますが *4、これでメカニズムがすべて解明された訳ではないかもしれません。しかし、LLMは、以前のモデルとは違って、複雑な指示も簡単に理解することができるので、タスクごとにモデルをチューニングする必要がなくてとても便利です。

今までは、分類タスクやキーワード抽出、翻訳、生成、要約など、タスクに応じてモデルをそれぞれ用意しなければなりませんでした。しかし、LLMのお陰で、さまざまなタスクを1つのモデルでできるようになったので、業務効率化はもちろん、アプリケーションの開発にもより活用しやすくなりました。モデルの構造が変わっていないのに、データやモデルの規模が大きくなっただけでモデルの汎用性が高まったのも面白いところです。

閔

ぐるなびのデータサイエンティスト。AIの気まぐれなところが好きです。好きな食べ物はカレーです。

*1:GPTは、transformerモデルから「デコーダ」と呼ばれる生成部分だけを切り取ってきた構造となっています。transformerは、言語をベクトル化する「エンコーダ」と、言語を生成する「デコーダ」の組み合わせとなっており、元々はこの両方があるモデルは翻訳などに向いていて、デコーダのみのモデルは生成に向いていると言われていました。ところが、今はデコーダのみでも、適切な指示を入れることでエンコーダとデコーダを組み合わせたモデルと同様のことができるようになっています。

*2:【参考文献】J. Wei et al., “Emergent Abilities of Large Language Models,” Transactions on Machine Learning Research, 2022.

*3:FLoating point Operations Per Second(FLOPS): 1秒間に処理可能な浮動小数点演算の回数

*4:【参考文献】R. Schaeffer, B. Miranda and S. Koyejo, “Are Emergent Abilities of Large Language Models a Mirage?”, Thirty-seventh Conference on Neural Information Processing Systems (NeurIPS), 2023.