File size: 3,906 Bytes
db3c9f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
---
license: mit
language:
- ja
- en
base_model:
- microsoft/phi-4
pipeline_tag: text-generation
library_name: transformers
tags:
- autoawq
---
# kishizaki-sci/phi-4-AWQ-4bit-EN-JP
## model information
[phi-4](https://huggingface.co./microsoft/phi-4)を[AutoAWQ](https://github.com/casper-hansen/AutoAWQ)で4bit 量子化したモデル。量子化の際のキャリブレーションデータに日本語と英語を含むデータを使用。
A model of phi-4 quantized to 4 bits using AutoAWQ. Calibration data containing Japanese and English was used during the quantization process.
## usage
### transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
tokenizer = AutoTokenizer.from_pretrained("kishizaki-sci/phi-4-AWQ-4bit-EN-JP")
model = AutoModelForCausalLM.from_pretrained("kishizaki-sci/phi-4-AWQ-4bit-EN-JP")
model.to("cuda")
chat = [
{"role": "system", "content": "あなたは日本語で応答するAIチャットボットです。ユーザをサポートしてください。"},
{"role": "user", "content": "plotly.graph_objectsを使って散布図を作るサンプルコードを書いてください。"}
]
prompt = tokenizer.apply_chat_template(
chat,
tokenize=False,
add_generation_prompt=True
)
inputs = tokenizer(prompt, return_tensors="pt")
inputs = inputs.to("cuda")
streamer = TextStreamer(tokenizer)
output = model.generate(**inputs, streamer=streamer, max_new_tokens=1024)
```
このコードはA100インスタンスの[Google Colab](https://colab.research.google.com/drive/1gt0jy1LstgX7orMbT_3MUcJJNak4vy5i?usp=sharing) でも動かせます。
This code can also run on Google Colab with an A100 instance.
### vLLM
```python
from vllm import LLM, SamplingParams
llm = LLM(
model="kishizaki-sci/phi-4-AWQ-4bit-EN-JP",
tensor_parallel_size=1,
gpu_memory_utilization=0.97,
quantization="awq"
)
tokenizer = llm.get_tokenizer()
messages = [
{"role": "system", "content": "あなたは日本語で応答するAIチャットボットです。ユーザをサポートしてください。"},
{"role": "user", "content": "plotly.graph_objectsを使って散布図を作るサンプルコードを書いてください。"},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
sampling_params = SamplingParams(
temperature=0.6,
top_p=0.9,
max_tokens=1024
)
outputs = llm.generate(prompt, sampling_params)
print(outputs[0].outputs[0].text)
```
Google Colab A100インスタンスでの実行はこちらの[notebook](https://colab.research.google.com/drive/1GB3xXDmd7C2Cx9rdNEhmIxWr9fUubSiH?usp=sharing)をご覧ください。
Please refer to this google colab notebook for execution on the A100 instance.
## calibration data
以下のデータセットから512個のデータ,プロンプトを抽出。1つのデータのトークン数は最大350制限。
Extract 512 data points and prompts from the following dataset. The maximum token limit per data point is 350.
- [TFMC/imatrix-dataset-for-japanese-llm](https://huggingface.co./datasets/TFMC/imatrix-dataset-for-japanese-llm)
- [meta-math/MetaMathQA](https://huggingface.co./datasets/meta-math/MetaMathQA)
- [m-a-p/CodeFeedback-Filtered-Instruction](https://huggingface.co./datasets/m-a-p/CodeFeedback-Filtered-Instruction)
- [kunishou/databricks-dolly-15k-ja](https://huggingface.co./datasets/kunishou/databricks-dolly-15k-ja)
- その他日本語版・英語版のwikipedia記事から作成したオリジナルデータ,有害プロンプト回避のためのオリジナルデータを使用。 Original data created from Japanese and English Wikipedia articles, as well as original data for avoiding harmful prompts, is used.
## License
[MIT License](https://opensource.org/license/mit)を適用する。
The MIT License is applied. |