1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM-jp-13B v2.0をDatabricksで動かしてみる

Last updated at Posted at 2024-04-30

GWもLLMに勤しみます。

こちらを見ると、Pre-trainedとtunedがありますね。

おお、dollyの文字が。

Instruction tuningでdatabricks-dolly-15k-jaが使われています。(私が作ったわけではないですが)嬉しい。DollyはDatabricksが一年前に公開したオープンソースLLMであり、databricks-dolly-15kはファインチューニングの際に用いたテキストコーパスです。Databricks社員が作成しました(私はサボって作成しませんでした)。

ということで、Databricksで動かします。GPUクラスターを準備。
Screenshot 2024-04-30 at 16.38.06.png

モデルカードに記載されているライブラリのバージョンではうまく動かなかったのですが、Databricksランタイム 14.3 LTS MLデフォルトのライブラリで動きました。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("llm-jp/llm-jp-13b-instruct-full-dolly-ichikara_004_001_single-oasst-oasst2-v2.0")
model = AutoModelForCausalLM.from_pretrained("llm-jp/llm-jp-13b-instruct-full-dolly-ichikara_004_001_single-oasst-oasst2-v2.0", device_map="auto", torch_dtype=torch.bfloat16)
chat = [
    {"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
    {"role": "user", "content": "自然言語処理とは何か"},
]
tokenized_input = tokenizer.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
with torch.no_grad():
    output = model.generate(
        tokenized_input,
        max_new_tokens=100,
        do_sample=True,
        top_p=0.95,
        temperature=0.7,
        repetition_penalty=1.05,
    )[0]
print(tokenizer.decode(output))

以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。

指示:

自然言語処理とは何か

応答:

自然言語処理(NLP)は人工知能とコンピュータサイエンスの一分野であり、自然言語におけるコンピュータと人間の相互作用に焦点を当てている。コンピュータが人間の言語を理解、解釈、生成できるようにするアルゴリズム、モデル、ツールの開発を扱う。

NLPでは、人間が言語を処理する方法と同様の方法で、人間の言語を分析、理解、反応するようにコンピュータを訓練する。

自然です。トークン数を増やして他も試してみます。

chat = [
    {"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
    {"role": "user", "content": "江戸時代の流れを簡潔に説明せよ"},
]
tokenized_input = tokenizer.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
with torch.no_grad():
    output = model.generate(
        tokenized_input,
        max_new_tokens=500,
        do_sample=True,
        top_p=0.95,
        temperature=0.7,
        repetition_penalty=1.05,
    )[0]
print(tokenizer.decode(output))

以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。

指示:

江戸時代の流れを簡潔に説明せよ

応答:

江戸時代(1603年~1867年)は、日本の歴史において260年以上続いた時代である。この時代には、社会階級、文化、政治、経済など多くのことが変化した。江戸時代の始まりは、徳川家康が征夷大将軍に任命され、江戸に幕府を開いたときに訪れた。徳川家による支配は264年間続いた。

江戸時代の後半には、日本は大きく発展し、世界でも有数の先進国となった。江戸は、現在の東京の首都として機能する、大都市および経済的中心地となった。江戸時代の人口は約100万人で、世界最大の人口を擁していた。

江戸時代には、政治、経済、社会のさまざまな側面で多くの革新的な出来事があった。税金や法律は、現在も使われているモデルの基礎を築いた。教育制度も確立され、世界でも有数の識字率を誇っていた。

農業、製造業、商業、文化活動など、さまざまな分野で繁栄した。しかし、江戸時代の大きな問題のひとつは、失業問題、特に参勤交代の藩士たちの不満だった。江戸時代の社会的、経済的構造は、明治維新の役人たちが近代化を推進する際のモデルとなった。

言語特化にすることで軽量なモデルでも高いパフォーマンスを示すというのは納得です。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?