CyberAgentLM2-7B-ChatをDatabricksで動かしてみる

最近、大規模言語モデル触ってなかったのでLLM欲が高まってました。

https://www.cyberagent.co.jp/news/detail/id=29479

> 今回公開したモデルは、日本語および英語データで事前学習を行なった70億パラメータのベースモデルであるCyberAgentLM2-7Bと、チャット形式でのチューニングを行ったCyberAgentLM2-7B-Chatの2種類です。CyberAgentLM2-7B-Chatは入出力の長さとして32,000トークンに対応しており、日本語の文章として約50,000文字を一度に処理することができます。
>
> モデルは商用利用可能なApache License 2.0で提供されており、以下のURLからご利用いただけます。


モデルはこちら。

https://huggingface.co/cyberagent/calm2-7b-chat

いつものGPUクラスターで。
![Screenshot 2023-11-02 at 21.16.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/fee45310-f93f-cb98-79b1-a19804460355.png)

transformerなどは最新の`4.34.1`でないと動かないのでアップグレードします。

```py
%pip install -U transformers accelerate flash_attn
dbutils.library.restartPython()
```

```py
import transformers
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer

assert transformers.__version__ >= "4.34.1"

model = AutoModelForCausalLM.from_pretrained("cyberagent/calm2-7b-chat", device_map="auto", torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained("cyberagent/calm2-7b-chat")
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

prompt = """USER: AIによって私達の暮らしはどのように変わりますか？
ASSISTANT: """

token_ids = tokenizer.encode(prompt, return_tensors="pt")
output_ids = model.generate(
    input_ids=token_ids.to(model.device),
    max_new_tokens=300,
    do_sample=True,
    temperature=0.8,
    streamer=streamer,
)
```
結果はストリーミングされて出力されます。
![Screenshot 2023-11-02 at 21.17.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d5c130ba-3243-8b52-184d-79494b1d2d8b.png)
![Screenshot 2023-11-02 at 21.17.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/30242c31-e672-b8cd-e5c9-4e0b329ceab2.png)

```
人工知能（AI）は、コンピューターシステムがタスクを自動化するプロセスです。 AIは、データとアルゴリズムを用いて、人間が直面する問題に対する解決策を自動的に生成します。 これにより、AIは人間の生活の多くの側面で影響を与える可能性があります。

以下は、AIが人間の生活にどのように影響するかの例です。

1. 仕事
AIによって自動化される仕事は増えています。 たとえば、データ入力や会計処理などの単純なタスクは、AIによって自動化することができます。 また、AIによって自動化されることで、人間はより高度なタスクに集中することができます。
2. 健康
AIは、医療分野でますます活用されています。 AIは、医療診断や治療法の選択を行うことができます。 AIによって、より正確な診断と治療法の選択ができるようになります。
3. 交通
AIによって、自動運転車が開発されており、人間が運転しなくても車が移動できるようになっています。 これにより、交通事故が減少すると期待されています。
4. エンターテインメント
AIによって、人間に近い音声や表情を持つロボットの開発が進んでいます。 これらのロボットは、人間とのコミュニケーションをより自然なものにします。
5. エンターテインメント
AIによって、音楽の制作やゲームの開発などが自動化されています。 これにより、音楽はより多く創造性があり、ゲームはよりエキサイティングなものになる可能性があります。

以上がAIによって人々の生活が変わる可能性のあるものの例です。 AIは、人間の生活の多くの側面で影響を与える可能性がありますが、AIはあくまでも人間によって
```

7Bでこれはすごいですね(肌感覚)。

他の質問も。

```py
prompt = """USER: 日本の少子高齢化にはどのように対策すべきですか？
ASSISTANT: """

token_ids = tokenizer.encode(prompt, return_tensors="pt")
output_ids = model.generate(
    input_ids=token_ids.to(model.device),
    max_new_tokens=300,
    do_sample=True,
    temperature=0.8,
    streamer=streamer,
)
```
```
少子高齢化により、労働力人口の減少と労働力不足が懸念されています。そこで、以下のような対策が考えられます。

1. 女性や高齢者の活用： 労働力人口の減少を補うため、女性や高齢者の活用が重要となります。女性がより働きやすく、高齢者がより活躍しやすい環境を整備することで、労働力人口の確保が図られます。
2. 外国人労働者の受け入れ： 労働力人口の減少を補うため、外国人労働者の受け入れも必要です。外国人の高度な技術や知識を活用することで、労働力不足を補うことができます。
3. ワーク・ライフ・バランスの推進： 子育てや介護との両立が可能となるよう、長時間労働を是正し、ワーク・ライフ・バランスを推進することで、働きやすく、働きがいのある環境を整備することが重要です。
4. 科学技術の活用： 人工知能やロボット等の先端技術を活用し、業務の効率化を図ることも必要です。これにより、労働力人口の減少を補うことができます。
5. 社会保障制度の充実： 高齢者の医療費や介護費が増大しているため、社会保障制度の充実が必要です。医療や介護にかかる費用の軽減を図ることも必要です。

以上のように、日本の少子高齢化に対しては、女性や高齢者の活用、外国人労働者の受け入れ、ワーク・ライフ・バランスの推進、科学技術の活用、社会保障制度の充実等、様々な対策が必要です。
```

```py
prompt = """USER: 日本で生成AIの活用は進みますか？
ASSISTANT: """

token_ids = tokenizer.encode(prompt, return_tensors="pt")
output_ids = model.generate(
    input_ids=token_ids.to(model.device),
    max_new_tokens=300,
    do_sample=True,
    temperature=0.8,
    streamer=streamer,
)
```
```
日本で生成AIの活用は進むことが予想されます。

生成AIは、データから学習して新しいデータを生成することができるAIです。この特性を活かして、さまざまな業界での活用が期待されています。

例えば、製造業では、生産ラインで生成AIを活用して、不良品の検出を行うことができます。これにより、不良品の混入率を大幅に下げることが可能になります。

また、AIによる自動翻訳技術も日々向上しており、翻訳業務の負荷を下げることができます。これにより、他の業務に時間を割けるようになり、生産性を高めることができます。

さらに、生成AIは、画像や動画など、テキスト以外のデータに対しても適用が可能です。そのため、マーケティングの施策立案や、医療画像の診断など、様々な業界での活用が進むことが予想されます。
```

いや、これすごいですね。ChatGPT的な使い方であれば十分のような。

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)