From d225cf9162ed48d5232d1b20986795ddd8123ca5 Mon Sep 17 00:00:00 2001
From: Ikko Eltociear Ashimine
- Japanese document maintainer: Ikko Eltociear Ashimine + 日本語ドキュメントメンテナー: Ikko Eltociear Ashimine
+
Qwen-7B 🤖 | 🤗  | Qwen-7B-Chat 🤖 | 🤗  | Qwen-7B-Chat-Int4 🤗
@@ -32,10 +33,10 @@ Qwen-7B は、アリババクラウドが提唱する大規模言語モデルシ
以下のセクションには、参考になる情報が記載されています。特に、issue を立ち上げる前に FAQ セクションをお読みになることをお勧めします。
@@ -64,7 +65,6 @@ Qwen-7B は、アリババクラウドが提唱する大規模言語モデルシ
さらに、[OpenCompass](https://opencompass.org.cn/leaderboard-llm) が実施した大規模言語モデルの第三者評価によると、Qwen-7B と Qwen-7B-Chat は 7B パラメータモデルのトップになります。この評価は、言語理解・生成、コーディング、数学、推論などの評価のための大量の公開ベンチマークで構成されています。
より詳細な実験結果(より多くのベンチマークデータセットでの詳細なモデル性能)や詳細については、[こちら](tech_memo.md)をクリックして技術メモを参照してください。
-
-## Deployment
+## デプロイ
-CPU上でモデルを実行するのは簡単で、以下のようにデバイスを指定する必要がある:
+CPU 上でモデルを実行するのは簡単であり、以下のようにデバイスを指定する必要があります:
```python
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="cpu", trust_remote_code=True).eval()
```
-```
-メモリ不足に悩まされ、複数のGPUにモデルをデプロイしたい場合は、``utils.py`で提供されているスクリプトを使うことができます:
+メモリ不足に悩まされ、複数の GPU にモデルをデプロイしたい場合は、`utils.py` で提供されているスクリプトを使うことができます:
```python
from utils import load_model_on_gpus
model = load_model_on_gpus('Qwen/Qwen-7B-Chat', num_gpus=2)
```
-7Bチャットモデルの推論を2GPUで実行できます。
+7B チャットモデルの推論を 2GPU で実行できます。
- 日本語ドキュメントメンテナー: Ikko Eltociear Ashimine
+ 日本語ドキュメントメンテナー: Ikko Eltociear Ashimine & Junyang Lin
From 0393da1773c88766d5da277dbf8d932e36dc948b Mon Sep 17 00:00:00 2001
From: Junyang Lin
-さらに、[OpenCompass](https://opencompass.org.cn/leaderboard-llm)が実施した大規模言語モデルの第三者評価によると、Qwen-7BとQwen-7B-Chatは7Bパラメータモデルのトップである。この評価は、言語理解・生成、コーディング、数学、推論などの評価のための大量の公開ベンチマークで構成されている。
+さらに、[OpenCompass](https://opencompass.org.cn/leaderboard-llm) が実施した大規模言語モデルの第三者評価によると、Qwen-7B と Qwen-7B-Chat は 7B パラメータモデルのトップになります。この評価は、言語理解・生成、コーディング、数学、推論などの評価のための大量の公開ベンチマークで構成されています。
より詳細な実験結果(より多くのベンチマークデータセットでの詳細なモデル性能)や詳細については、[こちら](tech_memo.md)をクリックして技術メモを参照してください。
@@ -195,7 +195,7 @@ print(f'Response: {response}')
## トークナイザー
-tiktoken に基づくトークナイザーは、他のトークナイザー、例えばセンテンスピーストークナイザーとは異なります。特にファインチューニングの際には、特殊なトークンに注意を払う必要があります。トークナイザに関する詳細な情報や、ファインチューニングにおける使用方法については、[ドキュメント](tokenization_note.md)を参照してください。
+tiktoken に基づくトークナイザーは、他のトークナイザー、例えばセンテンスピーストークナイザーとは異なります。特にファインチューニングの際には、特殊なトークンに注意を払う必要があります。トークナイザに関する詳細な情報や、ファインチューニングにおける使用方法については、[ドキュメント](tokenization_note_ja.md)を参照してください。
## 量子化
@@ -218,14 +218,14 @@ Windows ユーザは、[bitsandbytes-windows-webui](https://github.com/jllllll/b
```python
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
-# NF4(4ビット)の量子化設定
+# NF4(4 ビット)の量子化設定
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type='nf4',
bnb_4bit_compute_dtype=torch.bfloat16
)
-# Int8(8ビット)の量子化設定
+# Int8(8 ビット)の量子化設定
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForCausalLM.from_pretrained(
@@ -245,49 +245,49 @@ model = AutoModelForCausalLM.from_pretrained(
| Int8 | 52.8 | 10.44G |
| NF4 | 48.9 | 7.79G |
-注:上表のGPUメモリ使用量プロファイリングは、シングルA100-SXM4-80G GPU、PyTorch 2.0.1、CUDA 11.8、フラッシュアテンション使用で実行されています。
+注: 上表の GPU メモリ使用量プロファイリングは、シングル A100-SXM4-80G GPU、PyTorch 2.0.1、CUDA 11.8、flash attention 使用で実行されています。
## 推論効率
### 推論スピード
-BF16精度、量子化レベルInt8またはNF4で、それぞれ2Kトークンを生成する平均推論速度を測定した。
+BF16 精度、量子化レベル Int8 または NF4 で、それぞれ2Kトークンを生成する平均推論速度を測定しました。
-| Quantization Level | Inference Speed with flash_attn (tokens/s) | Inference Speed w/o flash_attn (tokens/s) |
+| 量子化レベル | flash_attn による推論速度(トークン/秒) | flash_attn を使用しない場合の推論速度(トークン/秒) |
| ------ | :---------------------------: | :---------------------------: |
| BF16 (no quantization) | 30.06 | 27.55 |
| Int8 (bnb) | 7.94 | 7.86 |
| NF4 (bnb) | 21.43 | 20.37 |
-詳細には、プロファイリングの設定は、1コンテクスト・トークンで2048の新しいトークンを生成している。プロファイリングは、PyTorch 2.0.1とCUDA 11.8を搭載したシングルA100-SXM4-80G GPUで実行される。推論速度は生成された2048個のトークンの平均です。
+詳細には、プロファイリングの設定は、1 コンテクスト・トークンで 2048 の新しいトークンを生成している。プロファイリングは、PyTorch 2.0.1 と CUDA 11.8 を搭載したシングル A100-SXM4-80G GPU で実行される。推論速度は生成された 2048 個のトークンの平均です。
-### GPUメモリ使用量
+### GPU メモリ使用量
-また、BF16またはInt8/NF4量子化レベルの下で、2048個のトークンをコンテキストとしてエンコードした場合(および単一のトークンを生成した場合)と、8192個のトークンを生成した場合(単一のトークンをコンテキストとして生成した場合)のGPUメモリ使用量のピーク値をそれぞれプロファイリングしました。結果を以下に示す。
+また、BF16 または Int8/NF4 量子化レベルの下で、2048 個のトークンをコンテキストとしてエンコードした場合(および単一のトークンを生成した場合)と、8192 個のトークンを生成した場合(単一のトークンをコンテキストとして生成した場合)の GPU メモリ使用量のピーク値をそれぞれプロファイリングしました。結果を以下に示す。
-Flash attentionを使用した場合のメモリ使用量は以下の通りである:
+Flash attention を使用した場合のメモリ使用量は以下の通りである:
-| Quantization Level | Peak Usage for Encoding 2048 Tokens | Peak Usage for Generating 8192 Tokens |
+| 量子化レベル | 2048 トークンをエンコードする際のピーク使用量 | 8192 トークン生成のピーク使用量 |
| --- | :---: | :---: |
| BF16 | 18.11GB | 23.52GB |
| Int8 | 12.17GB | 17.60GB |
| NF4 | 9.52GB | 14.93GB |
-Flash attentionを使用しない場合、メモリ使用量は次のようになる:
+Flash attention を使用しない場合、メモリ使用量は次のようになる:
-| Quantization Level | Peak Usage for Encoding 2048 Tokens | Peak Usage for Generating 8192 Tokens |
+| 量子化レベル | 2048 トークンをエンコードする際のピーク使用量 | 8192 トークン生成のピーク使用量 |
| --- | :---: | :---: |
| BF16 | 18.11GB | 24.40GB |
| Int8 | 12.18GB | 18.47GB |
| NF4 | 9.52GB | 15.81GB |
-上記のスピードとメモリーのプロファイリングは、[このスクリプト](https://qianwen-res.oss-cn-beijing.aliyuncs.com/profile.py)を使って行われた。
+上記のスピードとメモリーのプロファイリングは、[このスクリプト](https://qianwen-res.oss-cn-beijing.aliyuncs.com/profile.py)を使って行われました。
## デモ
### ウェブ UI
-ウェブUIデモを構築するためのコードを提供します(@wysaidに感謝)。始める前に、以下のパッケージがインストールされていることを確認してください:
+ウェブ UI デモを構築するためのコードを提供します(@wysaid に感謝)。始める前に、以下のパッケージがインストールされていることを確認してください:
```
pip install -r requirements_web_demo.txt
@@ -307,7 +307,7 @@ python web_demo.py
### CLI デモ
-`cli_demo.py` に CLI のデモ例を用意しています。ユーザはプロンプトを入力することで Qwen-7B-Chat と対話することができ、モデルはストリーミングモードでモデルの出力を返します。以下のコマンドを実行する:
+`cli_demo.py` に CLI のデモ例を用意しています。ユーザはプロンプトを入力することで Qwen-7B-Chat と対話することができ、モデルはストリーミングモードでモデルの出力を返します。以下のコマンドを実行する:
```
python cli_demo.py
@@ -321,28 +321,28 @@ python cli_demo.py
## API
-OpenAI APIをベースにローカルAPIをデプロイする方法を提供する(@hanpenggitに感謝)。始める前に、必要なパッケージをインストールしてください:
+OpenAI API をベースにローカルAPIをデプロイする方法を提供する(@hanpenggit に感謝)。始める前に、必要なパッケージをインストールしてください:
```bash
pip install fastapi uvicorn openai pydantic sse_starlette
```
-それから、APIをデプロイするコマンドを実行する:
+それから、API をデプロイするコマンドを実行します:
```bash
python openai_api.py
```
-チェックポイント名やパスには `-c` 、CPU デプロイメントには `--cpu-only` など、引数を変更できます。APIデプロイメントを起動する際に問題が発生した場合は、パッケージを最新バージョンに更新することで解決できる可能性があります。
+チェックポイント名やパスには `-c`、CPU デプロイメントには `--cpu-only` など、引数を変更できます。API デプロイメントを起動する際に問題が発生した場合は、パッケージを最新バージョンに更新することで解決できる可能性があります。
-APIの使い方も簡単だ。以下の例をご覧ください:
+API の使い方も簡単です。以下の例をご覧ください:
```python
import openai
openai.api_base = "http://localhost:8000/v1"
openai.api_key = "none"
-# create a request activating streaming response
+# ストリーミングレスポンスを有効化するリクエストを作成する
for chunk in openai.ChatCompletion.create(
model="Qwen-7B",
messages=[
@@ -353,7 +353,7 @@ for chunk in openai.ChatCompletion.create(
if hasattr(chunk.choices[0].delta, "content"):
print(chunk.choices[0].delta.content, end="", flush=True)
-# create a request not activating streaming response
+# ストリーミングレスポンスを有効化しないリクエストを作成する
response = openai.ChatCompletion.create(
model="Qwen-7B",
messages=[
@@ -373,7 +373,6 @@ print(response.choices[0].message.content)
## ツールの使用
Qwen-7B-Chat は、API、データベース、モデルなど、ツールの利用に特化して最適化されており、ユーザは独自の Qwen-7B ベースの LangChain、エージェント、コードインタプリタを構築することができます。ツール利用能力を評価するための評価[ベンチマーク](eval/EVALUATION.md)では、Qwen-7B は安定した性能に達しています。
-[](https://)
| Model | Tool Selection (Acc.↑) | Tool Input (Rouge-L↑) | False Positive Error↓ |
|:------------|:----------------------:|:----------------------:|:----------------------:|
@@ -423,7 +422,7 @@ ReAct プロンプトの書き方や使い方については、[ReAct の例](ex
## FAQ
-問題が発生した場合は、[FAQ](FAQ.md)やissueを参照し、新しいissueを立ち上げる前に解決策を探してください。
+問題が発生した場合は、[FAQ](FAQ_ja.md) や issue を参照し、新しい issue を立ち上げる前に解決策を探してください。
## ライセンス契約
From 7625bf9c8864504c1446b86be393186f6b287d47 Mon Sep 17 00:00:00 2001
From: Ikko Eltociear Ashimine
+
+
+
+## デモと推論
+
+#### デモはありますか?CLI と Web UI のデモはありますか?
+
+はい、Web デモは `web_demo.py` を、CLI デモは `cli_demo.py` を参照してください。詳しくは README を参照してください。
+
+
+
+#### CPU のみを使うことはできますか?
+
+はい、`python cli_demo.py --cpu_only` を実行すると、CPU のみでモデルと推論をロードします。
+
+#### Qwen はストリーミングに対応していますか?
+
+`modeling_qwen.py` の `chat_stream` 関数を参照してください。
+
+#### chat_stream() を使用すると、結果に文字化けが発生します。
+
+これは、トークンがバイトを表し、単一のトークンが無意味な文字列である可能性があるためです。このようなデコード結果を避けるため、トークナイザのデフォルト設定を更新しました。コードを最新版に更新してください。
+
+#### インストラクションとは関係ないようですが...
+
+Qwen-7B ではなく Qwen-7B-Chat を読み込んでいないか確認してください。Qwen-7B はアライメントなしのベースモデルで、SFT/Chat モデルとは挙動が異なります。
+
+#### 量子化はサポートされていますか?
+
+はい、量子化は `bitsandbytes` でサポートされています。私たちは改良版の開発に取り組んでおり、量子化されたモデルのチェックポイントをリリースする予定です。
+
+#### 量子化モデル実行時のエラー: `importlib.metadata.PackageNotFoundError: No package metadata was found for bitsandbytes`
+
+Linux ユーザの場合は,`pip install bitsandbytes` を直接実行することで解決できます。Windows ユーザの場合は、`python -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui` を実行することができます。
+
+#### 長いシーケンスの処理に時間がかかる
+
+この問題は解決しました。コードを最新版に更新することで解決します。
+
+#### 長いシーケンスの処理で不満足なパフォーマンス
+
+NTK が適用されていることを確認してください。`config.json` の `use_dynamc_ntk` と `use_logn_attn` を `true` に設定する必要があります(デフォルトでは `true`)。
+
+
+
+
+## ファインチューニング
+
+#### Qwen は SFT、あるいは RLHF に対応できますか?
+
+今のところ、ファインチューニングや RLHF のコードは提供していません。しかし、[FastChat](**[https://github.com/lm-sys/FastChat](https://github.com/lm-sys/FastChat))、[Firefly]([https://github.com/yangjianxin1/Firefly](https://github.com/yangjianxin1/Firefly))、[**LLaMA Efficient Tuning**]([https://github.com/hiyouga/LLaMA-Efficient-Tuning](https://github.com/hiyouga/LLaMA-Efficient-Tuning))など、いくつかのプロジェクトではファインチューニングをサポートしています。近日中に関連コードを更新する予定です。
+
+
+
+
+## トークナイザー
+
+#### bos_id/eos_id/pad_id が見つかりません。
+
+私たちのトレーニングでは、セパレータとパディングトークンとして `<|endoftext|>` のみを使用しています。bos_id、eos_id、pad_id は tokenizer.eod_id に設定できます。私たちのトークナイザーについて詳しくは、トークナイザーについてのドキュメントをご覧ください。
+
From 2f2ddeb581205c17080eb392641cfc13ebeafc0c Mon Sep 17 00:00:00 2001
From: Ikko Eltociear Ashimine
-## ニュース
+## ニュースとアップデート
-* 2023.8.21 Qwen-7B-Chat 用 Int4 量子化モデル(**Qwen-7B-Chat-Int4**)をリリースしました。メモリコストは低いが、推論速度は向上している。また、ベンチマーク評価において大きな性能劣化はありません。
-* 2023.8.3 Qwen-7B と Qwen-7B-Chat を ModelScope と Hugging Face で公開。また、トレーニングの詳細やモデルの性能など、モデルの詳細についてはテクニカルメモを提供しています。
+* 2023.8.21 Qwen-7B-Chat 用 Int4 量子化モデル **Qwen-7B-Chat-Int4** をリリースしました。また、ベンチマーク評価においても大きな性能低下は見られませんでした。
+* 2023.8.3 ModelScope と Hugging Face 上で **Qwen-7B** と **Qwen-7B-Chat** をリリースしました。また、トレーニングの詳細やモデルの性能など、モデルの詳細については技術メモを提供しています。
@@ -43,18 +44,18 @@ Qwen-7B は、アリババクラウドが提唱する大規模言語モデルシ
一般的に、Qwen-7B は、MMLU、C-Eval、GSM8K、HumanEval、WMT22、CMMLU など、自然言語理解、数学的問題解決、コーディングなどに関するモデルの能力を評価する一連のベンチマークデータセットにおいて、同程度のモデルサイズのベースラインモデルを凌駕しており、さらには 13B 程度のパラメータを持つより大規模なモデルをも凌駕しています。以下の結果をご覧ください。
-| Model | MMLU | C-Eval | GSM8K | HumanEval | WMT22 (en-zh) | CMMLU |
-| :---------------- | :------------: | :------------: | :------------: | :------------: | :------------: |:------------: |
-| LLaMA-7B | 35.1 | - | 11.0 | 10.5 | 8.7 | - |
-| LLaMA 2-7B | 45.3 | - | 14.6 | 12.8 | 17.9 | - |
-| Baichuan-7B | 42.3 | 42.8 | 9.7 | 9.2 | 26.6 | 44.4 |
-| ChatGLM2-6B | 47.9 | 51.7 | 32.4 | 9.2 | - | 48.8 |
-| InternLM-7B | 51.0 | 52.8 | 31.2 | 10.4 | 14.8 | - |
-| Baichuan-13B | 51.6 | 53.6 | 26.6 | 12.8 | 30.0 | 55.8 |
-| LLaMA-13B | 46.9 | 35.5 | 17.8 | 15.8 | 12.0 | - |
-| LLaMA 2-13B | 54.8 | - | 28.7 | 18.3 | 24.2 | - |
-| ChatGLM2-12B | 56.2 | **61.6** | 40.9 | - | - | - |
-| **Qwen-7B** | **56.7** | 59.6 | **51.6** | **24.4** | **30.6** | **58.8** |
+| Model | MMLU | C-Eval | GSM8K | HumanEval | WMT22 (en-zh) | CMMLU |
+| :------------- | :--------: | :--------: | :--------: | :---------: | :-------------: | :--------: |
+| LLaMA-7B | 35.1 | - | 11.0 | 10.5 | 8.7 | - |
+| LLaMA 2-7B | 45.3 | - | 14.6 | 12.8 | 17.9 | - |
+| Baichuan-7B | 42.3 | 42.8 | 9.7 | 9.2 | 26.6 | 44.4 |
+| ChatGLM2-6B | 47.9 | 51.7 | 32.4 | 9.2 | - | 48.8 |
+| InternLM-7B | 51.0 | 52.8 | 31.2 | 10.4 | 14.8 | - |
+| Baichuan-13B | 51.6 | 53.6 | 26.6 | 12.8 | 30.0 | 55.8 |
+| LLaMA-13B | 46.9 | 35.5 | 17.8 | 15.8 | 12.0 | - |
+| LLaMA 2-13B | 54.8 | - | 28.7 | 18.3 | 24.2 | - |
+| ChatGLM2-12B | 56.2 | **61.6** | 40.9 | - | - | - |
+| **Qwen-7B** | **56.7** | 59.6 | **51.6** | **24.4** | **30.6** | **58.8** |
## 必要条件
@@ -72,7 +72,6 @@ Qwen-7B は、アリババクラウドが提唱する大規模言語モデルシ
* python 3.8 以上
* pytorch 1.12 以上、2.0 以上を推奨
* CUDA 11.4 以上を推奨(GPU ユーザー、フラッシュアテンションユーザー向けなど)
-
## クイックスタート
@@ -206,30 +205,29 @@ print(f'Response: {response}')
## トークナイザー
tiktoken に基づくトークナイザーは、他のトークナイザー、例えばセンテンスピーストークナイザーとは異なります。特にファインチューニングの際には、特殊なトークンに注意を払う必要があります。トークナイザに関する詳細な情報や、ファインチューニングにおける使用方法については、[ドキュメント](tokenization_note_ja.md)を参照してください。
-
## 量子化
### 使用方法
-**注:[AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ)に基づく新しい解決策を提供し、Qwen-7B-Chat用のInt4量子化モデル[ここをクリック](https://huggingface.co/Qwen/Qwen-7B-Chat-Int4)をリリースしました。このモデルは、従来の解決策と比較して、ほぼ無損失のモデル効果を達成しつつ、メモリコストと推論速度の両方で性能が向上しています**。
+**注: [AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ) に基づく新しい解決策を提供し、Qwen-7B-Chat 用の Int4 量子化モデル[ここをクリック](https://huggingface.co/Qwen/Qwen-7B-Chat-Int4)をリリースしました。このモデルは、従来の解決策と比較して、ほぼ無損失のモデル効果を達成しつつ、メモリコストと推論速度の両方で性能が向上しています。**
-ここでは、量子化されたモデルを推論に使用する方法を示します。始める前に、AutoGPTQの要件を満たしていることを確認し、ソースからインストールしてください(一時的にQwenのコードは最新版のPyPIパッケージではまだリリースされていません):
+ここでは、量子化されたモデルを推論に使用する方法を示します。始める前に、AutoGPTQ の要件を満たしていることを確認し、ソースからインストールしてください(一時的に Qwen のコードは最新版の PyPI パッケージではまだリリースされていません):
```bash
git clone https://github.com/PanQiWei/AutoGPTQ.git && cd AutoGPTQ
pip install .
```
-そうすれば、以下のように簡単に量子化モデルを読み込むことができる。
+そうすれば、以下のように簡単に量子化モデルを読み込むことができます:
```python
from auto_gptq import AutoGPTQForCausalLM
model = AutoGPTQForCausalLM.from_quantized("Qwen/Qwen-7B-Chat-Int4", device_map="auto", trust_remote_code=True, use_safetensors=True).eval()
```
-推論を実行するには、上で示した基本的な使い方に似ているが、generation configurationを明示的に渡すことを忘れないこと:
+推論を実行するには、上で示した基本的な使い方に似ていますが、generation configuration を明示的に渡すことを忘れないで下さい:
```python
from transformers import GenerationConfig
@@ -239,50 +237,49 @@ response, history = model.chat(tokenizer, "Hi", history=None, generation_config=
### 性能
-ベンチマークにおけるBF16モデルとInt4モデルの性能について説明する。結果を以下に示します:
+ベンチマークにおける BF16 モデルと Int4 モデルの性能について説明します。その結果は以下に示します:
-| Quantization | MMLU | CEval (val) | GSM8K | Humaneval |
-| ------------- | :--------: | :----------: | :----: | :--------: |
-| BF16 | 53.9 | 54.2 | 41.1 | 24.4 |
-| Int4 | 52.6 | 52.9 | 38.1 | 23.8 |
+| Quantization | MMLU | CEval (val) | GSM8K | Humaneval |
+| -------------- | :----: | :-----------: | :-----: | :---------: |
+| BF16 | 53.9 | 54.2 | 41.1 | 24.4 |
+| Int4 | 52.6 | 52.9 | 38.1 | 23.8 |
### 推論スピード
-BF16の精度とInt4の量子化レベルの下で、それぞれ2048個と8192個のトークンを生成する平均推論速度(tokens/s)を測定した。
+BF16 の精度と Int4 の量子化レベルの下で、それぞれ 2048 個と 8192 個のトークンを生成する平均推論速度(tokens/s)を測定しました。
-| Quantization | Speed (2048 tokens) | Speed (8192 tokens) |
-| ------------- | :------------------:| :------------------:|
-| BF16 | 30.34 | 29.32 |
-| Int4 | 43.56 | 33.92 |
+| Quantization | Speed (2048 tokens) | Speed (8192 tokens) |
+| -------------- | :-------------------: | :-------------------: |
+| BF16 | 30.34 | 29.32 |
+| Int4 | 43.56 | 33.92 |
-詳細には、プロファイリングの設定は、1コンテクスト・トークンで8192個の新しいトークンを生成している。プロファイリングは、PyTorch 2.0.1とCUDA 11.4を搭載したシングルA100-SXM4-80G GPUで実行される。推論速度は生成された8192個のトークンの平均値です。
+詳細には、プロファイリングの設定は、1 コンテクストトークンで 8192 個の新しいトークンを生成しています。プロファイリングは、PyTorch 2.0.1 と CUDA 11.4 を搭載したシングル A100-SXM4-80G GPU で実行されました。推論速度は生成された 8192 個のトークンの平均値となります。
### GPU メモリ使用量
また、BF16またはInt4の量子化レベルで、それぞれ2048トークンをコンテキストとしてエンコードした場合(および単一のトークンを生成した場合)と、8192トークンを生成した場合(単一のトークンをコンテキストとして生成した場合)のGPUメモリ使用量のピーク値をプロファイリングしました。その結果を以下に示します。
-| Quantization Level | Peak Usage for Encoding 2048 Tokens | Peak Usage for Generating 8192 Tokens |
-| ------------------ | :---------------------------------: | :-----------------------------------: |
-| BF16 | 17.66GB | 22.58GB |
-| Int4 | 8.21GB | 13.62GB |
+| Quantization | Peak Usage for Encoding 2048 Tokens | Peak Usage for Generating 8192 Tokens |
+| -------------- | :-----------------------------------: | :-------------------------------------: |
+| BF16 | 17.66GB | 22.58GB |
+| Int4 | 8.21GB | 13.62GB |
上記のスピードとメモリーのプロファイリングは、[このスクリプト](https://qianwen-res.oss-cn-beijing.aliyuncs.com/profile.py)を使用しています。
-
## デモ
### ウェブ UI
-ウェブ UI デモを構築するためのコードを提供します(@wysaid に感謝)。始める前に、以下のパッケージがインストールされていることを確認してください:
+ウェブ UI デモを構築するためのコードを提供します(@wysaid に感謝)。これを始める前に、以下のパッケージがインストールされていることを確認してください:
-```
+```bash
pip install -r requirements_web_demo.txt
```
-そして、以下のコマンドを実行し、生成されたリンクをクリックする:
+そして、以下のコマンドを実行し、生成されたリンクをクリックします:
-```
+```bash
python web_demo.py
```
@@ -336,6 +333,7 @@ for chunk in openai.ChatCompletion.create(
{"role": "user", "content": "你好"}
],
stream=True
+ # ストリーミング出力形式でのストップワードの指定はまだサポートされておらず、開発中です。
):
if hasattr(chunk.choices[0].delta, "content"):
print(chunk.choices[0].delta.content, end="", flush=True)
@@ -346,7 +344,8 @@ response = openai.ChatCompletion.create(
messages=[
{"role": "user", "content": "你好"}
],
- stream=False
+ stream=False,
+ stop=[] # 例えば、stop=["Observation:"] (ReAct プロンプトの場合)。
)
print(response.choices[0].message.content)
```
@@ -357,45 +356,44 @@ print(response.choices[0].message.content)
## ツールの使用
Qwen-7B-Chat は、API、データベース、モデルなど、ツールの利用に特化して最適化されており、ユーザは独自の Qwen-7B ベースの LangChain、エージェント、コードインタプリタを構築することができます。ツール利用能力を評価するための評価[ベンチマーク](eval/EVALUATION.md)では、Qwen-7B は安定した性能に達しています。
-| Model | Tool Selection (Acc.↑) | Tool Input (Rouge-L↑) | False Positive Error↓ |
-|:------------|:----------------------:|:----------------------:|:----------------------:|
-| GPT-4 | 95% | **0.90** | 15% |
-| GPT-3.5 | 85% | 0.88 | 75% |
-| **Qwen-7B** | **99%** | 0.89 | **9.7%** |
+| Model | Tool Selection (Acc.↑) | Tool Input (Rouge-L↑) | False Positive Error↓ |
+| :------------ | :-----------------------: | :----------------------: | :----------------------: |
+| GPT-4 | 95% | **0.90** | 15% |
+| GPT-3.5 | 85% | 0.88 | 75% |
+| **Qwen-7B** | **99%** | 0.89 | **9.7%** |
ReAct プロンプトの書き方や使い方については、[ReAct の例](examples/react_prompt.md)を参照してください。ツールを使用することで、モデルがよりよいタスクを実行できるようになります。
-さらに、エージェントとしての能力を示す実験結果を提供する。詳細は [Hugging Face Agent](https://huggingface.co/docs/transformers/transformers_agents) を参照。Hugging Face が提供するランモードベンチマークでの性能は以下の通りです:
+さらに、エージェントとしての能力を示す実験結果を提供する。詳細は [Hugging Face Agent](https://huggingface.co/docs/transformers/transformers_agents) を参照して下さい。Hugging Face が提供するランモードベンチマークでの性能は以下の通りです:
-| Model | Tool Selection↑ | Tool Used↑ | Code↑ |
-|:---------------|:---------------:|:-----------:|:---------:|
-|GPT-4 | **100** | **100** | **97.41** |
-|GPT-3.5 | 95.37 | 96.30 | 87.04 |
-|StarCoder-15.5B | 87.04 | 87.96 | 68.89 |
-| **Qwen-7B** | 90.74 | 92.59 | 74.07 |
+| Model | Tool Selection↑ | Tool Used↑ | Code↑ |
+| :---------------- | :----------------: | :-----------: | :---------: |
+| GPT-4 | **100** | **100** | **97.41** |
+| GPT-3.5 | 95.37 | 96.30 | 87.04 |
+| StarCoder-15.5B | 87.04 | 87.96 | 68.89 |
+| **Qwen-7B** | 90.74 | 92.59 | 74.07 |
@@ -424,17 +422,17 @@ ReAct プロンプトの書き方や使い方については、[ReAct の例](ex
-
+
## 再現
-ベンチマークデータセットでのモデル性能の再現のために、結果を再現するスクリプトを提供しています。詳しくは [eval/EVALUATION.md](eval/EVALUATION.md) を確認してください。なお、再現の結果、我々の報告結果と若干異なる場合がある。
+ベンチマークデータセットでのモデル性能の再現のために、結果を再現するスクリプトを提供しています。詳しくは [eval/EVALUATION.md](eval/EVALUATION.md) を確認してください。なお、再現の結果、我々の報告結果と若干異なる場合があります。
## FAQ
-問題が発生した場合は、[FAQ](FAQ_ja.md) や issue を参照し、新しい issue を立ち上げる前に解決策を探してください。
+問題が発生した場合は、まずは [FAQ](FAQ_ja.md) や issue を参照し、新しい issue を立ち上げる前に解決策を探してください。
From 860321a069e9bdb70e9ce743fe4a6145359768be Mon Sep 17 00:00:00 2001
From: Junyang Lin
From 226961558739da7ec7e0eaac62bbb5a11c859911 Mon Sep 17 00:00:00 2001
From: Junyang Lin