このシリーズでは自然言語処理の最先端技術である「Transformer」に焦点を当て、環境構築から学習方法までを紹介します。

今回の記事では、Huggingface Transformersを利用した日本語↔英語の翻訳の実装を分かりやすく解説していきます。

Google Colabを使用すれば、手軽に最新の自然言語処理モデルを実装できますので、これから自然言語処理を学びたい方や実践的なスキルを磨きたい方にも最適です。ぜひ最後までご覧ください(Google Colabの使い方はこちら

【ChatGPT】自然言語処理まとめ【Huggingface Transformers】

自然言語処理に関するおすすめの書籍 ChatGPT ChatGPTを中心とした、GPT系の関連技術を紹介します。 ChatGPTの概要 ・ChatGPTとは・ChatGPTができること・ChatGPTの問題点…

今回の内容

・Transformerとは

・Huggingface Transformersとは

・翻訳の実装(英語から日本語)

・翻訳の実装(日本語から英語)

Transformerとは

概要

「Transformer」は、2017年にGoogleが「Attention is all you need」という論文で発表された、画期的な深層学習モデルです。このモデルは、現在の自然言語処理における主要な手法となっています。

これまでの自然言語処理分野では、「RNN」(Recurrent Neural Network:再帰型ニューラルネットワーク)といったモデルが主に使用されていました。しかし、「Transformer」はそれらとは異なり、Attentionというメカニズムだけを活用したEncoder-Decoder型のモデルを採用しています。このため、より効率的で高速な学習が可能となりました。

「Transformer」が登場して以降、多くの自然言語処理モデルが再構築され、従来の手法を凌駕する成果が次々と報告されています。また、自然言語処理だけでなく、ViT(Vision Transformer)やDETR(DEtection TRansformer)など、画像認識分野にも応用されており、その幅広い活用性が注目されています。Transformerに関する詳細は以下の記事をご覧ください。

【🔰Huggingface Transformers入門⓪】自然言語処理とTransformers

このシリーズでは、自然言語処理において主流であるTransformerを中心に、環境構築から学習の方法までまとめます。 今回の記事ではHuggingface Transformersの入門の初回…

Huggingface Transformersとは

概要

「Hugging Face」とは米国のHugging Face社が提供している、自然言語処理を中心としたディープラーニングのフレームワークです。

「Huggingface Transformers」は、先ほど紹介したTransformerを実装するためのフレームワークであり、「自然言語理解」と「自然言語生成」の最先端の汎用アーキテクチャ(BERT、GPTなど)と、何十万もの事前学習済みモデルを提供しており、それらを活用することで自然言語処理のタスクを効率的に解決することができます。

Huggingface TransformersのソースコードはGitHub上で公開されており、誰でも無料で利用することができます。

Huggingface Transformersの使用方法

Huggingface Transformersには、自然言語処理タスクを簡単に実行するための「パイプライン」と呼ばれる機能があります。これは、タスクの種類や入力テキストを指定するだけで、わずか1行のコードで推論を行うことができる非常にシンプルな方法です。例えば、文章の要約や感情分析、質問応答などのタスクを瞬時に実行できます。しかし、このパイプライン機能は、カスタマイズ性が低く、日本語に対応する機能が限られているため、日本語での推論には適していません。

一方で、「トークナイザー」と呼ばれる機能があります。これは、入力テキストを深層学習モデルが理解できる形式に変換する役割を果たしています。具体的には、文章を単語やサブワードに分割し、それぞれのトークンに対応するIDに変換することで、モデルが処理しやすい形にしています。トークナイザーを使用することで、自然言語処理タスクのカスタマイズが可能となり、多言語対応のモデルを利用することができます。

パイプラインは簡単に実行できるもののカスタマイズ性や日本語対応が限られているのに対し、トークナイザーを利用することで、多言語対応のモデルを活用し、自由度の高い自然言語処理タスクの実行が可能になります。初心者にとっては、まずパイプラインを試してみて、その後トークナイザーを使用してより高度なタスクに挑戦することがおすすめです。

翻訳の実装(英語から日本語)

ここからは実装方法を紹介します。
まずは英語から日本語への翻訳です。

最初に必要なライブラリをインストールします。

!pip install transformers sentencepiece pysbd

単文の翻訳

This is a cat.という文章を日本語に翻訳します。

text = 'This is a cat.'

from transformers import pipeline
fugu_translator = pipeline('translation', model='staka/fugumt-en-ja')
fugu_translator(text)

実行結果:

[{'translation_text': 'これは猫です。'}]

英語を日本語に翻訳することができました。

複数文の翻訳

This is a cat. It is very cute.という文章を日本語に翻訳します。

text = 'This is a cat. It is very cute.'

import pysbd
seg_en = pysbd.Segmenter(language="en", clean=False)

from transformers import pipeline
fugu_translator = pipeline('translation', model='staka/fugumt-en-ja')
print(fugu_translator(seg_en.segment(text)))

実行結果:

[{'translation_text': 'これは猫です。'}, {'translation_text': 'とても可愛いです。'}]

複数の英文を日本語に翻訳することができました。

翻訳の実装(日本語から英語)

日本語から英語への翻訳です。

猫はかわいいです。という文章を英語に翻訳します。

text = '猫はかわいいです。'

from transformers import pipeline
fugu_translator = pipeline('translation', model='staka/fugumt-ja-en')
fugu_translator(text)

実行結果:

[{'translation_text': 'The cat is cute.'}]

日本語を英語に翻訳することができました。

まとめ

最後までご覧いただきありがとうございました。

今回の記事ではHuggingface Transformersによる日本語↔英語の翻訳の実装を紹介しました。

このシリーズでは、自然言語処理全般に関するより詳細な実装や学習の方法を紹介しておりますので、是非ご覧ください。

【ChatGPT】自然言語処理まとめ【Huggingface Transformers】

自然言語処理に関するおすすめの書籍 ChatGPT ChatGPTを中心とした、GPT系の関連技術を紹介します。 ChatGPTの概要 ・ChatGPTとは・ChatGPTができること・ChatGPTの問題点…