しばらくLLMを触っていなかったのでLLM欲を抑えられませんでした。
こちらを見て試してみたくなりました。本当に、日常的にLLMが発表される世界になっていますね。
当社はビジネスにおける情報収集・分析をサポートするサービスを運営しており、そのために最新のWebデータの収集を日々行なっております。今回の事前学習では、一般にLLMの事前学習によく使われるCommon Crawl由来のデータだけでなく、当社が所有している独自のWebデータ(2023年6月まで)も含めて事前学習を行うことで、最近の話題にも詳しいモデルを開発しました。具体的には、事前学習に用いたデータセットはCC100の日本語サブセット、Wikipediaの日本語版、当社独自の日本語Webデータから構成されています。コーパス全体でのデータ量は約200億トークンで、そのうち当社独自のWebデータは約90億トークンほどです。モデルのアーキテクチャの詳細などは以下をご覧ください。
クラスターはg5.8xlarge(128GB, 1GPU)のクラスターを使います。
こちらのサンプルを動かします。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# Use torch.bfloat16 for A100 GPU and torch.flaot16 for the older generation GPUs
torch_dtype = torch.bfloat16 if torch.cuda.is_available() and hasattr(torch.cuda, "is_bf16_supported") and torch.cuda.is_bf16_supported() else torch.float16
model = AutoModelForCausalLM.from_pretrained("stockmark/gpt-neox-japanese-1.4b", device_map="auto", torch_dtype=torch_dtype)
tokenizer = AutoTokenizer.from_pretrained("stockmark/gpt-neox-japanese-1.4b")
inputs = tokenizer("自然言語処理は", return_tensors="pt").to(model.device)
with torch.no_grad():
tokens = model.generate(
**inputs,
max_new_tokens=128,
repetition_penalty=1.1
)
output = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(output)
自然言語処理は、人工知能(AI)や機械学習と密接な関係があります。例えば、Google翻訳の精度は年々向上しており、2017年11月には日本語を含む20カ国語に対応しました。また、Amazonの「Alexa」も音声による操作が可能になり、2018年には対応言語を50以上に増やす予定です。このように、機械が人間の言葉を理解する技術は日々進歩しています。しかし、その反面、人間が言葉の意味を理解できない場面も増えてきています。例えば、「Aという単語の意味はBだ」と理解していても、それが正しいとは限りません。「Aという単語の意味はCである」と説明されても、それは必ずしも正解ではないのです。このような問題を解決するために生まれたのが、自然言語処理
すごいですね。
関数化して色々試します。
def generate_text(input_text):
inputs = tokenizer(input_text, return_tensors="pt").to(model.device)
with torch.no_grad():
tokens = model.generate(
**inputs,
max_new_tokens=128,
repetition_penalty=1.1
)
output = tokenizer.decode(tokens[0], skip_special_tokens=True)
return output
print(generate_text("Databricksとは"))
若干微妙ですがDatabricksも理解しているようです。
Databricksとは、データレイクは、データを収集・分析するためのプラットフォームです。
「データレイク」と呼ばれることもあります。
データウェアハウスやデータ分析基盤などとも呼ばれます。
データの保存場所であるストレージを分散して配置し、複数のサーバーに格納されたデータを統合することで、高速な検索とアクセスを可能にします。
また、蓄積したデータは、BIツールで可視化したり、機械学習に活用することができま
print(generate_text("MLflowとは"))
Googleでは提供していないですし、途中からPythonの基本に行ってしまっていますが機械学習の自動化ツールというところは合っています。
MLflowとは、Googleが提供している機械学習の自動化ツールです。
「Python」はプログラミング言語の一つで、「AI」「データサイエンス」といった分野でも活用されています。
また、Webブラウザ上で動作するアプリケーションの開発やデータ分析など、幅広い用途で使われています。
今回は、そんな「Python」について、基本から学習方法まで詳しく解説します。
まずは、Pythonの基本を学びましょう。
Pythonには、大きく分けて3つの特徴があります。
1つ目は、シンプルで習得しやすいことです。
2つ目に、さまざまな分野で活用できる汎用性が高いことです。
3つ目は、他の言語に比べて少ないコード量で開発できることです。
ここからは、それぞれの特徴について詳しく解説していきます。
Pythonは、
時間見つけて色々試してみます。しかし、1.4bという軽量なモデル(Dollyは12b)でもこれだけのパフォーマンスが出るようになるとは、技術の進歩が恐ろしい(そして、楽しい)です。