|
--- |
|
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. |