このシリーズではChatGPTを中心とした最新の大規模言語モデル(LLM)に関する情報をまとめています。最新AI技術を使用した「ChatGPT」をはじめとした、自然言語処理技術の概要や活用方法について紹介しておりますので、ぜひ最後までご覧ください。

※大規模言語モデルは技術の進歩がとても速い分野となりますので、最新の情報もこちらからご確認ください。

今回の記事ではLLMの1つであるCerebras-GPT-13Bの実装を紹介します。
Google Colabを使用して簡単に実装できますので、ぜひ最後までご覧ください。

Cerebras-GPT-13Bの概要

Cerebras-GPT-13Bとは

Cerebras-GPTは2023年3月28日にセレブラス・システムズによって公開された大規模言語モデルです。非GPUベースのAIシステムであるAIスーパーコンピュータ「Cerebras Andromeda」を利用して、13BパラメーターまでのLLMを学習させ、業界標準のApache 2.0ライセンスを通じてモデル、重み、学習方法を共有しています。

スーパーコンピュータAndromeda上で111M、256M、590M、1.3B、2.7B、6.7B、13Bパラメーターの7つのGPTモデルを学習させ、通常数ヶ月かかる作業を数週間で完了することができました。これは、Cerebras CS-2システムの驚異的な速度と、分散コンピューティングの問題を解決するWeight Streamingアーキテクチャの能力によるものです。

なお、モデルはHugging Faceで公開されています。

詳細は以下のリンクからご覧ください。

導入

ここからはGoogle colabを使用して実装していきます。
(Google colabの使用方法はこちら⇨使い方

※今回紹介するコードは以下のリンクからもご覧いただけます。

Open In Colab

まずはGPUを使用できるように設定をします。

「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更・「GPUクラス」をプレミアムに変更・「ランタイムの仕様」をハイメモリに変更

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

!pip install transformers

以上で準備が完了しました。

英語の場合

例1

まずは公式にある通り、英語で試してみます。「Generative AI is~」に続く文章を生成します。

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("cerebras/Cerebras-GPT-13B")
model = AutoModelForCausalLM.from_pretrained("cerebras/Cerebras-GPT-13B")

text = "Generative AI is "
from transformers import pipeline

pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
generated_text = pipe(text, max_length=50, do_sample=False, no_repeat_ngram_size=2)[0]
print(generated_text['generated_text'])

出力結果:

a field of study that uses machine learning to create artificial intelligence.
It is a branch of artificial  intelligence that is concerned with the   creation of intelligent systems that learn from data.  The term is

# 日本語訳
Generative AIとは、機械学習を使って人工知能を作る研究分野です。
人工知能の一分野であり、データから学習する知的システムの作成に関係する。 この用語は

例2

同様に「Generative AI is~」に続く文章を生成します。

inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, num_beams=5, 
                        max_new_tokens=50, early_stopping=True,
                        no_repeat_ngram_size=2)
text_output = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(text_output[0])

出力結果:

Generative AI is generative in the sense that it is based on a generative model of the data. 
The model is used to generate new data, which is fed back into the model to improve its accuracy. 
Generative models are used in a wide variety of

# 日本語訳
ジェネレーティブAIはデータの生成モデルに基づいているという意味で、生成的です。
このモデルを用いて新しいデータを生成し、それをモデルにフィードバックすることで精度を向上させます。
生成モデルは、さまざまな分野で使用されています。

日本語の場合

次に日本語でも試してみます。「日本で有名な観光地は~」に続く文章を生成します。

text = "日本で有名な観光地は "

inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, num_beams=5, 
                        max_new_tokens=500, early_stopping=True,
                        no_repeat_ngram_size=2)
text_output = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(text_output[0])

出力結果:

日本で有名な観光地は 世界で初めてではないかと思います。

私たちにとっては、そういった場所を楽しんでもらいたいという人は多いでしょう。

同じ内容を英語で聞いてみる

text = 'Famous tourist destinations in Japan are'

inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, num_beams=5, 
                        max_new_tokens=500, early_stopping=True,
                        no_repeat_ngram_size=2)
text_output = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(text_output[0])

出力結果:

Famous tourist destinations in Japan are Tokyo, Osaka, Kyoto, Hiroshima, Nagasaki, Kobe, and Okinawa.

Japan is the world's third-largest country in terms of land area, with a population of over 127 million people. 
It is also one of the fastest-growing economies in the Asia-Pacific region. 
The country is home to a variety of ethnic groups, including the Japanese, Koreans, Chinese, Filipinos, Indonesians, Taiwanese, Thais, Vietnamese, Indians, Pakistanis, Nepalese, Sri Lankans, Bhutanese, Burmese and others. 
Japan is a member of numerous international organizations, such as the United Nations, the Asian Development Bank and the Group of 77.

# 日本語訳
日本の有名な観光地は、東京、大阪、京都、広島、長崎、神戸、そして沖縄です。

日本は、国土面積で世界第3位、人口は1億2700万人以上です。
また、アジア太平洋地域で最も経済成長が著しい国の一つでもあります。
日本人をはじめ、韓国人、中国人、フィリピン人、インドネシア人、台湾人、タイ人、ベトナム人、インド人、パキスタン人、ネパール人、スリランカ人、ブータン人、ビルマ人など、さまざまな民族が住んでいる。
日本は、国連、アジア開発銀行、77グループなど、数多くの国際機関に加盟しています。

文章を生成する場合は英語を使用したほうがよさそうであることがわかりました。

まとめ

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

今回の記事ではLLMの1つであるCerebras-GPT-13Bの実装を紹介しました。