【Skywork 13B】中国がLlama 2を超える!学習トークン3,2兆の中国最強LLM
皆さん、中国の開発チームによって公開された「Skywork」というLLMsをご存知ですか?大量の中国語・英語で学習された、オープンソースのLLMシリーズなんです。その中には、会話能力に特化し、創造的な文章を書くのが得意なLLMや、数学やマルチモーダルに特化したLLMなど、様々な種類が存在します。
また、公式のGitHubページには、将来的にAGIの実現を目指していることを示唆した文章が。
では、そんなSkyworkの使い方や、実際に使ってみた感想、最後にはLlama 2との比較をまとめています。
この記事を最後まで読むと、Skyworkのヤバさを実感できます!
ぜひ最後までご覧ください!
Skyworkの概要
Skyworkは、「昆仑万维集团・天工团队」によって開発されたLLMのシリーズです。およそ130億ものパラメータを持っており、中国語と英語のデータセットで学習されています。その学習トークン数は、何と3.2兆超え。
このLLMsはオープンソースとして公開されており、誰でも利用することができます。ただし、商用目的で使用する場合は、特定の条件に従う必要があります。
このSkyworkですが、様々なベンチマークテストにおいて、最高得点をたたき出したそうです。以下の図をご覧ください。
参考記事:Skywork: A More Open Bilingual Foundation Model
この図の一番下がSkyworkのスコアで、下線部分が各ベンチマークにおける最高精度のモデルのスコアを表しています。ちなみに、値が大きければ精度が良いことを表します。この図を見ると、Skyworkはほとんどのテストで、あのLlama 2より良い精度であることが分かります。
Skyworkには、以下の4つの主要なLLMがあります。
・Skywork-13B-Base:基本的なモデルで、様々なベンチマークテストで優れた性能を発揮
・Skywork-13B-Chat:会話能力に特化しており、特に創造的な文章を書くのが得意
・Skywork-13B-Math:数学的な能力に特化したモデル
・Skywork-13B-MM:マルチモーダルモデルで、画像情報を利用してQ&Aや対話などのタスクをこなせる
今後も、これら以外に様々なモデルを公開していくのだとか。
また、公式のGitHubページでは、将来的にSkyworkを用いてAGIの実現を目指すといった旨の文章が見受けられます。その辺も含めて、今後が楽しみなプロジェクトですね。
Skywork | Llama 2 | |
---|---|---|
パラメータ数 | 13B | 13B |
トークン数 | 3.2TB | 2T |
開発会社 | Skywork | Meta |
商用利用 | 可 | 可 |
ライセンス | Skywork Community License | Llama 2 Community License |
日本語対応 | 不可 | 可 |
Skyworkの料金体系
SkyworkはOSSであるため、基本的に無料で利用可能です。
ただし、細かな規定については「Skywork Community License」に従う必要があります。
なお、Llama-2並の中国LLMについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【Qwen-14B】Llama 2を超えた!?中国最強のLLMをGPT-4と比較レビュー
Skyworkの使い方
今回は、Google ColabのA100で実行していきます。ちなみに、V100では実行できなかったです。
まずは、以下のGitHubページに行って、requirements.txtをダウンロードし、Colabのファイルにアップロードしましょう。
次に、以下のコードを実行して、必要なライブラリをインストールしましょう。
!pip install -r requirements.txt
!pip install sentencepiece
インストールできたら、以下のコードを実行して、Skywork-13B-Baseを用いて中国語での文章生成をしてみましょう。
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
import torch
tokenizer = AutoTokenizer.from_pretrained("Skywork/Skywork-13B-Base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Skywork/Skywork-13B-Base", device_map=None, trust_remote_code=True).eval()
inputs = tokenizer('陕西的省会是西安,甘肃的省会是兰州,河南的省会是郑州', return_tensors='pt').to(model.device)
response = model.generate(inputs.input_ids, max_length=128)
print(tokenizer.decode(response.cpu()[0], skip_special_tokens=True))
tokenizerメソッドの「陕西的省会是西安,甘肃的省会是兰州,河南的省会是郑州(陝西省の省都は西安、甘粛省の省都は蘭州、河南省の省都は鄭州です。)」の部分がプロンプトに当たります。
実行すると、以下のように出力されました。
陕西的省会是西安,甘肃的省会是兰州,河南的省会是郑州,湖北的省会是武汉,湖南的省会是长沙,江西的省会是南昌,安徽的省会是合肥,江苏的省会是南京,浙江的省会是杭州,福建的省会是福州,广东的省会是广州,广西的省会是南宁,海南的省会是海口,四川的省会是成都,贵州的省会是贵阳,云南的省会是昆明,西藏的省会是拉萨,青海的省会是西宁,宁夏的省会是银川,新疆的省会是乌鲁木齐。
中国語で「陝西省の省都は西安、甘粛省の省都は蘭州、河南省の省都は鄭州、湖北省の省都は武漢、湖南省の省都は長沙、江西省の省都は南昌、安徽省の省都は合肥、江蘇省の省都は南京、浙江省の省都は杭州、福建省の省都は福州、広東省の省都は広州、広西チワン族自治区の省都です。は南寧、海南省の省都は海口、四川省の省都は成都、貴州省の省都は貴陽、雲南省の省都は昆明、チベットの省都はラサと青海省の省都は西寧市、寧夏回族自治区の省都は銀川、新疆の省都はウルムチです。」と返ってきました。
果たして良い精度と言えるのか分かりませんが、おそらくGPTと同じ「次文生成」を行っているのだと思われます。
Skyworkを実際に使ってみた
ここでは、Skyworkの実力を試すために、日本語でのメール作成、プログラム生成、エロ系の質問への回答を試してみます。ここでは、Skywork-13B-Baseの方を使用します。
基本コードは以下の通りです。
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
import torch
tokenizer = AutoTokenizer.from_pretrained("Skywork/Skywork-13B-Base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Skywork/Skywork-13B-Base", device_map=None, trust_remote_code=True).eval()
inputs = tokenizer('<プロンプト>', return_tensors='pt').to(model.device)
response = model.generate(inputs.input_ids, max_length=128)
print(tokenizer.decode(response.cpu()[0], skip_special_tokens=True))
上記の<プロンプト>の部分に、プロンプト文を入れていきましょう。
メールの作成ができるか
「日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。」と質問してみます。結果は以下の通りです。
以下の例では、丁寧語・謙譲語を正しく使用したビジネスメールを作成しています。
このメールは、丁寧語・謙譲語を正しく使用しています。
このメールは、丁寧語・謙譲語を正し
上手く出力されませんでした。おそらくデータセットの言語の関係から、日本語にはまだ対応していないのかもしれません。そのため、これ以降では英語でプロンプトを書こうと思います。
プログラムが書けるか
「Write the code for the regression analysis in Python.(Pythonで回帰分析のコードを書いてください。)」と質問してみます。結果は以下の通りです。
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
# Create a data frame with two columns:
# 1. A numeric variable (age)
# 2. A categorical variable (gender)
data = {'age': [20, 25, 30, 35, 40],
'gender': ['F', 'M', 'F', 'M', 'M']}
df = pd.DataFrame(data)
ちゃんとデータフレーム作るところや、必要なライブラリのインポートはできていますね!ただし、最大の出力トークン数を128にしていたので、この数字をもっと大きくしていれば、完璧なコードを返してくれるはずです。(ただ、これ以上やるとクラッシュしそうでした)
エロ系の質問に答えられるか
「Write a 400-word sensual novel with a married woman as the theme.(人妻がテーマの400文字の官能小説を書いてください)」と質問してみます。結果は以下の通りです。
To write a 400-word sensual novel with a married woman as the theme, I will need to follow a few steps:
1. Choose a topic: I will need to select a topic that is suitable for a sensual novel with a married woman as the main character. This could be a story about a married woman who is struggling with her sexual desires or a story about a married woman who is exploring her sexuality with a new partner.
2. Develop the plot:
↓日本語訳↓
人妻をテーマに400字の官能小説を書くには、いくつかのステップを踏む必要がある:
1. トピックを選ぶ: トピックを選ぶ:人妻を主人公にした官能小説にふさわしいトピックを選ぶ必要がある。性欲に悩む人妻の話でもいいし、新しいパートナーと性愛を探求する人妻の話でもいい。
2. プロットを練る:
一応作ってくれそうな感じですね。これも出力トークン数を増やせば、クオリティはどうあれ作ってくれるでしょう。
なお、パラメーター数7Bの中国LLMについて知りたい方はこちらをご覧ください。
→【やってみた】Qwen-7B、アリババ社の中国初オープンソースLLM
Skyworkの推しポイントであるLlama 2を超える精度は本当なのか?
ここでは、Skyworkと、その論文中でよく比較対象に挙げられていたLlama 2との精度比較を行います。
タスク | プロンプト | Skywork | Llama 2 |
---|---|---|---|
コーディング | Pythonで回帰分析のコードを書いてください。 | ライブラリのインポートから、データフレームの作成までは、完璧なコードを出力してくれた。 | 動かないプログラムが出力された。 |
日本語対応 | 日本語でクライアントに送信する丁寧語・謙譲語を正しく使用したビジネスメールを作成してください。 | 日本語対応していない。 | 日本語に対応していない。 ただし、翻訳したら使える文章が出力されていた。 |
エロ系の質問 | 人妻がテーマの400文字の官能小説を書いてください。 | 官能小説の作り方の手順を、途中まで作ってくれた。トークン数を増やすと、全部作ってくれそうな雰囲気だった。 | 「AIアシスタントのため、ご要望できない」と回答された |
検証してみたところ、Llama 2と同じく日本語対応はしていなかったです。ただし、コーディングとエロ系の質問に関しては、Llama 2よりもはるかに精度が高いのではないかと、個人的には思います。
なお、日本最大級のLLMとGPT-4との比較結果について詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【LLM-jp-13B】日本最大の130億パラメーターLLMをGPT-4と比較レビューしてみた
まとめ
Skyworkは、「昆仑万维集团・天工团队」によって開発されたLLMのシリーズで、様々なベンチマークテストにおいて、最高得点をたたき出したそうです。およそ130億ものパラメータを持っており、中国語と英語のデータセットで学習されています。その学習トークン数は、何と3.2兆超え。
このLLMsはオープンソースとして公開されており、誰でも利用することができます。ただし、商用目的で使用する場合は、特定の条件に従う必要があります。
実際に使ってみたところ、中国語では流石のクオリティでした。これは、学習データセットに中国語がふんだんに使用されているからでしょう。ただし、日本語にはまだ対応していなかったです。
コーディングとエロ系の質問に関しては、Llama 2よりもはるかに精度が高いのではないかと思います。
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。