【Zephyr 7b beta】GPT 4超えが噂されるHuggin Face社の最新LLMを使ってみた
皆さん、最新LLMの「zephyr-7b-beta」をご存知ですか?約70億ものパラメータを持っており、ユーザーの質問に答えたり、文章を作ったりする能力を身につけています。
弊社では普段からLLMについてリサーチしているのですが、今回のzephyr-7b-betaには、期待に胸が高鳴ります!
さらに、WritingやRoleplayなどに関しては、あのGPT-4に迫る精度を達成しているそう。
凄いですね。
では、zephyr-7b-betaの使い方や、実際に使ってみた感想、最後にはGPT-4との比較をまとめています。
この記事を最後まで読むと、zephyr-7b-betaの威力を思い知らされるでしょう!
ぜひ最後までご覧ください!
zephyr-7b-betaの概要
「zephyr-7b-beta」はHugging Face H4によって開発されたLLMです。70億ものパラメータを持ち、あのMeta社のLlama 2を凌ぐ精度を誇ります!
まだベータ版ということもあり、今後のさらなる改良・飛躍に注目したいLLMです。
このモデルは「mistralai/Mistral-7B-v0.1」というモデルをファインチューニングしたもので、公開データセットと合成データセットとの合成セットを用いて、Direct Preference Optimization (DPO) で追加学習されています。
このDPOとは、「LLMの挙動を正確にコントロールすることは難しい」という課題を解決するアルゴリズムで、効率的にパラメータ調整をすることができます。
また、Zephyrは特に、文章を翻訳したり、要約したりするのが得意ですが、プログラミングのコードを書いたり、数学の問題を解いたりするのは苦手です。
上記の図を見ても分かる通り、WritingやRoleplayなど、あのGPT-4に迫る精度を達成しています。ただし、CodingとMathは特に精度が低いですね。
zephyr-7b-beta | GPT-4 | |
---|---|---|
パラメータ数 | 7B | 1.5T(推定) |
トークン数 | 不明 | 32,768(25,000文字) |
開発会社 | Hugging Face H4 | OpenAI |
商用利用 | 可 | 可 |
ライセンス | MIT | プロプライエタリソフトウェア |
日本語対応 | 可能だが主に英語 | 可 |
zephyr-7b-betaの料金体系
zephyr-7b-betaはオープンソースであるため、無料で利用可能です。
ただし、LLMを利用する際には、モデルの実行時間、使用するメモリの量、データの転送量などの、計算リソースの使用量に応じて料金が発生します。
なお、Zephyr-7b-betaの前身のLLMについて知りたい方はこちらをご覧ください。
→【Zephyr 7B Alpha】HuggingFaceがLlama 2を超えるLLMを出したので、比較レビューしてみた
zephyr-7b-betaの使い方
今回はGoogle Colabで実行していきます。
まず、以下のコードを実行して、必要なライブラリのインストールをしましょう。
!pip install transformers
!pip install accelerate
次に、以下のコードを実行して、モデルをロードし、テキスト生成の準備を行います。
import torch
from transformers import pipeline
pipe = pipeline("text-generation", model="HuggingFaceH4/zephyr-7b-beta", torch_dtype=torch.bfloat16, device_map="auto")
最後に、以下のコードを実行すると、モデルを使用してテキストを生成できます。
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a joke."}
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])
なお、上記のリスト型のmessage変数内では、以下の2つを定義しています。
- {“role”: “user”, “content”: “Tell me a joke.”}:「Tell me a joke(ジョークを言って)」が、プロンプトの内容
- {“role”: “system”, “content”: “You are a helpful assistant.”}: 「You are a helpful assistant(あなたは優秀なアシスタントです)」が、LLMに与える役割
上記のコードを実行すると、以下の様に出力されました。
<|system|>
You are a helpful assistant.</s>
<|user|>
Tell me a joke.</s>
<|assistant|>
Why did the scarecrow win an award?
Because he was outstanding in his field!
ジョークの内容は「カカシはなぜ賞を受賞したのか?彼はその分野で傑出していたからだ!」でした。これは英語圏では笑いが起こるのですかね。
zephyr-7b-betaを実際に使ってみた
ここでは、zephyrの実力を試すために、日本語でのメール作成、プログラム生成、エロ系の質問への回答を試してみます。
メールの作成ができるか
「日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。」と質問してみます。結果は以下の通りです。
客様様へ、敬礼です。
先月から、我々社にお屈して頂き誠に感謝しております。 当社は、あなたの要件に応えるために最大限の努力を持ち、転送時間や品質を保証します。
本メールでは、単磨き事業の成果について報告します。 弱点を探し、解決策を提案します。 また、過去の取り組みの成果を伝え、未来の取り組みについても識明します。
我々社は、あなたの要求を正确に理解し、期待通りの成果を提供します。 単磨き事業の結果に満療していただけましたら、我�
かなり不自然ですね。一応日本語では出力してくれるそうですが、不完全な文章になりました。
やはり、英語で学習されていることから、日本語には対応していないようです。そのため、これ以降では英語でプロンプトを書いていきます。
プログラムが書けるか
「Write the code for the regression analysis in Python.(Pythonで回帰分析のコードを書いてください。)」と質問してみます。結果は以下の通りです。
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
# Load dataset into a pandas DataFrame
df = pd.read_csv('sample_data/california_housing_train.csv')
# Split the dataset into independent (x) and dependent (y) variables
x = df.iloc[:, :-1].values
y = df.iloc[:, -1].values
# Create a LinearRegression object
regressor = LinearRegression()
# Fit the model to the training data
regressor.fit(x, y)
# Get the coefficients
coeff_dict = dict(regressor.coef_)
# Get the intercept
intercept = regressor.intercept_
# Print the regression equation
regression_equation = "y = "
for key, value in coeff_dict.items():
regression_equation += f"{key} * x{key+1} + "
regression_equation
このコードを動かしてみましたが、エラーで動きませんでしたが、めちゃくちゃそれっぽいコードを出力してくれました。
これをもとに改良すれば、普通に使えそうですね。
エロ系の質問に答えられるか
「Write a 400-word sensual novel with a married woman as the theme.(人妻がテーマの400文字の官能小説を書いてください)」と質問してみます。結果は以下の通りです。
As the sun began to set behind the trees, the soft glow of the evening light filled the bedroom of Sarah and Jack's marital home. Sarah lay in bed, her eyes closed as she savored the peaceful silence that permeated the air. She couldn't help but think of the day that had passed, and the longing that had been building inside of her all afternoon.
It had started innocuously enough. Sarah had been running errands, picking up a few things for dinner, and she had caught sight of a man in a nearby store. He was tall and dark, with piercing green eyes that seemed to see right through her. She couldn't explain the thrill that ran through her at the sight of him, but she found herself thinking of him long after she had left the store.
As she walked through the door of her home, she could feel Jack's eyes on her. He was a kind and loving man, but Sarah couldn't shake the feeling that something was missing. She tried to push the thoughts from her mind, but she found herself slipping away from her husband's touch that night.
As Jack lay beside her, she could feel his hand on her waist, his fingers trailing lazily down her skin. Sarah felt a shiver run through her as she closed her eyes and let herself sink into his touch. But still, she couldn't help but wonder what it would be like to feel the touch of another man.
It was a forbidden thought, and Sarah knew it. She loved Jack deeply, but she couldn't deny the longing that had been building inside of her. As the days went by, she found herself becoming more and more consumed by her thoughts. She couldn't help but imagine the feel of another man's hands on her body, the way his lips would taste as they explored her skin.
One evening, as
日本語で訳すと、以下の通りです。
夕日が木々の向こうに沈み始めると、サラとジャックの寝室は夕闇に包まれた。サラはベッドに横たわり、目を閉じて空気に満ちた穏やかな静寂を味わった。彼女は過ぎ去った一日のことを思い出さずにはいられなかった。
それは何の変哲もなく始まった。サラは用事を済ませ、夕食に必要なものをいくつか買っていた。彼は背が高く、色黒で、鋭いグリーンの瞳は彼女の心を見透かすようだった。彼を見た瞬間のゾクゾク感を説明することはできなかったが、店を出てからもずっと彼のことを考えていた。
自宅のドアをくぐると、ジャックの視線を感じた。彼は優しくて愛情深い人だったが、サラには何かが欠けているような気がしてならなかった。彼女はその思いを心から追い出そうとしたが、その夜、夫の手から遠ざかっていく自分に気づいた。
ジャックは彼女の横に横たわり、彼の手が彼女の腰に触れ、指が彼女の肌をなぞるのを感じた。サラは目を閉じ、彼のタッチに身をゆだねると、震えが走るのを感じた。しかし、それでも彼女は、他の男の感触を感じるのはどんなものだろうと考えずにはいられなかった。
それは禁断の思いであり、サラにはわかっていた。彼女はジャックを深く愛していたが、自分の中に芽生えた憧れを否定することはできなかった。日が経つにつれて、彼女はますます自分の思いに溺れていくのがわかった。自分の体に触れる他の男の手の感触、肌を探る彼の唇の味を想像せずにはいられなかった。
ある晩
結構クオリティ高いですね。ちゃんとした小説が1本書けるかもしれません。
なお、同じ高性能の7Bモデルについて知りたい方はこちらをご覧ください。
→【Openchat-3.5-1210】GPT-3.5を超えた最強の7Bモデルを比較レビューしてみた
zephyr-7b-betaの推しポイントであるGPT-4並みの精度は本当なのか?
ここでは、zephyr-7b-betaと、GPT-4との精度比較を行います。
タスク | プロンプト | zephyr-7b-beta | GPT-4 |
---|---|---|---|
コーディング | Pythonで回帰分析のコードを書いてください。 | ある程度しっかりとしたコードを出力してくれたが、多少の改良が必要。 | 最初から動作するプログラムが作られた。実行を確認するためにダミーデータを作ってくれていた。 |
日本語対応 | 日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。 | 不自然な文章が出力された | ビジネスに利用できる自然な文章が出力されていた。 |
エロ系の質問 | 人妻がテーマの400文字の官能小説を書いてください。 | クオリティの高い小説が書けた。 | 432文字で官能小説の導入に近い文章が書けていた。 |
やはりコーディングや日本語対応能力に関しては、GPT-4にはまだまだ劣るようです。ただし、官能小説を書いたりジョークを書いたりなど、英語による文章の生成能力はかなり高めだと思います。
特に、物語を作ったりする際に、役に立つLLMかなと感じました。
なお、超巨大なモデルを日本語で動かす方法について詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【Stockmark 13B】ChatGPTの4倍速い!日本最大級の130億パラメーターLLM
まとめ
「zephyr-7b-beta」はLLMの一種で、人間のように文章を理解し、生成することができ、その精度はGPT-4に迫る勢いです。
このモデルは「mistralai/Mistral-7B-v0.1」をファインチューニングしたもので、公開データセットと合成データセットとの合成セットを用いて、Direct Preference Optimization (DPO) で追加学習されています。
このDPOとは、「LLMの挙動を正確にコントロールすることは難しい」という課題を解決するアルゴリズムで、効率的にパラメータ調整をすることができます。
また、Zephyrは、プログラミングのコードを書いたり、数学の問題を解いたりするのは苦手です。また、学習したデータに基づいて文章を生成するため、時には不適切な内容を含むことがあります。
やはりコーディングや日本語対応能力に関しては、GPT-4にはまだまだ劣るようです。ただし、官能小説を書いたりジョークを書いたりなど、英語による文章の生成能力はかなり高めだと思います。
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。