大規模言語モデル(LLM)の時代

2024年06月11日 火曜日


【この記事を書いた人】
Dimitrios Giakatos

I am working in the IIJ Research Laboratory, focusing on bridging the gap in Internet data knowledge for people from various domains and non-technical users.

「大規模言語モデル(LLM)の時代」のイメージ

この記事は、人気上昇中の大規模言語モデル(Large Language Models:LLM)の多様な使い方を探る3部構成のシリーズの第1部です。このシリーズでは、コンピュータサイエンスやプログラミングの予備知識がない方でも理解できるよう、LLMの活用方法を分かりやすく解説します。

はじめに…

現在、大規模言語モデル(Large Language Models:LLM)は世界的にかなり注目度が高く、新しいLLMが発表されるたびに、検索エンジンのトップ検索ワードになっています。なぜ LLM がここまで注目を集めているのでしょうか?その大きな理由の一つが、LLMが現在、商業的にも個人的にも、さまざまなタスクに広く使われているからです。例えば、「Code Llama」と呼ばれる LLM を利用することで、アプリケーションプログラムの開発者は、コードと英語のプロンプトの両方からコードとコードに関するテキストを自動で生成することができます。

LLMのパワー

LLMは、共通のテーマに基づいた文書の整理(テキスト分類)、メール返信の自動化(コンテンツ生成)、有害なコンテンツを除外する投稿のフィルタリング(毒性分類)など、言語に関連する作業を支援し、高速化するツールとして開発されました。企業のさまざまなタスクを自動化し、経費の最小化、生産性の最大化、顧客への革新的で改善されたサービスの提供を支援します。

LLMの有用性を示す例として、韓国テレコム(KT)のユースケースが挙げられます。サポートセンターでは日々多くの問い合わせを受け、通常、それらを解釈・分類するには多くの人手と時間がかかります。ですが、KT では顧客からの問い合わせ対応にLLMを採用することで、回答プロセスの多くを自動化しました。さらに同社が効果的に製品キャンペーンを行うために必要な顧客の傾向を抽出し把握することも容易になりました。

LLMは簡単に試すことができます!

現在ではAIモデルを圧縮し、個人が利用するようなコンピューターでも実行できる、ディープ・ラーニング・モデルに特化した優れたライブラリがいくつか公開されています。例えば、「Llama 2 7B」は16GBのメモリを搭載したノートパソコンで動作します(Llama 2 7Bについて詳しく知りたい方は、論文「Llama 2: Open Foundation and Fine-Tuned Chat Models」をご覧ください)。LLMの実行に使えるライブラリのひとつに「llama.cpp」があります。その接尾辞からわかるように、このライブラリはハードウェアの能力を最大限に活用するためにC++で書かれています。以下では、Llama 2 7Bを動かしてチャットを始める方法を紹介します!

ステップ①

まず、次のコマンドを使ってLlama 2 7Bモデルをダウンロードします:

wget https://huggingface.co/TheBloke/Llama-2-7B-GGUF/resolve/main/llama-2-7b.Q5_K_M.gguf

モデルがダウンロードされるのを待っている間に、そのモデルの概要を説明します。ここでは、アーキテクチャやモデルが実際にどのように機能するかについては割愛します。

Llama 2 は2023年7月18日にMeta から発表されました。このモデルはオープンソースで、研究・商用を問わず無料で使用できます。公式にはパラメータが70億、130億、700億の3つのモデルサイズがあり、これらは2兆の事前学習済みトークンを持ち、チャットのユースケース向けに微調整されています。公式から公開されているものは数種類のバリエーションしかありませんが、コミュニティから様々な調整を施されたモデルを無料で簡単に見つけることができます。

モデルのダウンロードに使ったURLを見ると、プロバイダーはMetaではなくHugging Faceであることがわかります。これはなぜかというと、Hugging FaceがGitHubのような、訓練済みのディープ・ラーニング・モデルを共有するための主要なコミュニティサイトだからです(Hugging Faceについてもっと知りたい人は、「Hugging Face Pipelineを使ったお手軽AIプログラミング」の記事をご参照ください)。Google、Meta、Microsoft、IBMなどの最新のLLMと、それに対応する実行手順が入手できます。

ステップ②

モデルのダウンロードが完了したら、次にLLMを実行するために必要なライブラリをダウンロードします。冒頭で述べたように、今回のデモではllama.cppライブラリを使います(コミュニティではかなり人気があります!)。このライブラリはmacOS、Linux、Windowsで使用できますが、それぞれのプラットフォームでライブラリのコンパイル方法が異なります。ここでは、macOSまたはLinuxを使用するものとします(Windowsについては、ライブラリのドキュメントの該当セクションを参照してください)。ライブラリをダウンロードしてコンパイルするには、以下のコマンドを実行します:

wget https://github.com/ggerganov/llama.cpp/archive/refs/tags/b2589.zip && unzip b2589.zip && rm b2589.zip && make -C llama.cpp-b2589

ステップ③

最後のステップは、LLMモデルを実行し、対話を開始することです。次のコマンドで実行できます:

./llama.cpp-b2589/main -ngl 32 -m llama-2-7b.Q5_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -i -ins

以上です!さあ、LLMとおしゃべりを始めましょう!

The image shows a terminal in which the user interacts with Llama 2 7B in chat mode.

Llama 2 7B とのチャット

Llama 2 7Bとチャットしていると、簡単な質問であっても時々間違いをすることに気づくかもしれません。これは、この例で利用したモデルが他の最先端のモデルと比べると比較的小さい70億のパラメータしか含まれていないことによります(その代わりに、小さいコンピューター・リソースで実行できるようになっています)。

新しい時代の到来です

LLMはAI業界における新しく大きな波であり、多くの利益をもたらします。しかし、この技術には大きな課題もあります。第一に、LLMの作成や微調整には多くの時間とコンピューター・リソースが必要です。第二に、すでに訓練済みのLLMを利用しても、そのタスクの知識量が限られているため、特殊なタスクでは高い精度が得られない可能性があります。しかし、この技術が2018年に初めて知られるようになり、たった6年間でここまで大きな進歩を遂げていることを鑑みるに、今後も短い期間で大きな発展が見込まれます。

次回は、「日本の童話を作る」という簡単な例を使って、コンテンツの生成と微調整の方法を説明します。ぜひ、ご期待ください!

Dimitrios Giakatos

2024年06月11日 火曜日

I am working in the IIJ Research Laboratory, focusing on bridging the gap in Internet data knowledge for people from various domains and non-technical users.

Related
関連記事