Dolly 2.0 + Hugging Face + googletrans LLMを翻訳機能と合わせてみた
2023年4月22日
前回の記事で、Dolly2.0が日本語を入力してもうまく応答してくれませんでした。
Google翻訳の機能と合わせて応答の精度が向上するのか、試してみたいと思います。
Googletransを実行してみる
GoogletransはGoogle Translate APIを実装した無料かつ無制限のpythonライブラリです。
1日に1万語ぐらい投げ込むと、ブロックされてしまうこともあるようですが、個人利用の範囲なら十分かと思います。
Google Colaboratory上で実行してきます。ハードウェアアクセラレートを「GPU」に設定するのをお忘れなく。
早速、インストールしてみましょう。
※「pip install googletrans」では、Version3.00がインストールされ動作が不安定+エラーが起きるので、
以下のようにVersionを指定しましょう。
!pip install googletrans==4.0.0-rc1
実行はとても簡単です。以下のコードを見て頂ければ、すぐに分かると思います。
from googletrans import Translator
text = "これはテストです。"
translator = Translator()
result_en = translator.translate(text, dest="en").text
print(result_en)
result_ja = translator.translate(result_en, dest="ja").text
print(result_ja)
Dolly2.0 + googletransを実行してみる
前回の記事と同じ日本語の質問で実行した結果を載せておきます。
Googletransも含めて、必要なライブラリをインストールを記載しておきます。
!pip install accelerate
!pip install transformers
!pip install googletrans==4.0.0-rc1
import torch
from transformers import pipeline
from googletrans import Translator
generate_text = pipeline(model="databricks/dolly-v2-3b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
#generate_text = pipeline(model="databricks/dolly-v2-7b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
#generate_text = pipeline(model="databricks/dolly-v2-12b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
prompt_ja = "核融合と核分裂の違いを説明してください。"
translator = Translator()
prompt_en = translator.translate(prompt_ja, dest="en").text
result_en = generate_text(prompt_en)
print(result_en[0]['generated_text'])
result_ja = translator.translate(result_en[0]['generated_text'], dest="ja").text
print(result_ja)
かなり応答の精度が向上しました。ちなみに、前回の記事で、日本語で質問した時の結果が以下。
他のモデルを使用しても英語でのやり取りの方が精度が高いので、有用な手段かと。
とりあえず、ここまで。