File size: 1,866 Bytes
37f88f6
 
69385ad
 
 
 
 
 
 
 
 
 
 
37f88f6
 
69385ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
library_name: transformers
tags:
- reasoning
- merge
- llama
- deepseek
license: llama3.1
language:
- en
- ja
base_model:
- tokyotech-llm/Llama-3.1-Swallow-8B-v0.2
---

# Llama-3.1-Swallow-8B-v0.2-reasoningvector-deepseek-r1

DeepSeekの蒸留モデルから推論能力を抽出した重みの差分を、日本語モデルにマージしたモデルです。  
つまり、This Model = Japanese Model + (Reasoning Model - Base Model)

- **Base Model**: [meta-llama/Llama-3.1-8B](https://huggingface.co/meta-llama/Llama-3.1-8B)
- **Reasoning Model**: [deepseek-ai/DeepSeek-R1-Distill-Llama-8B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B)
- **Japanese Model**: [tokyotech-llm/Llama-3.1-Swallow-8B-v0.2](https://huggingface.co/tokyotech-llm/Llama-3.1-Swallow-8B-v0.2)

## 使用方法

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# モデルとTokenizerの取得
model_name = "HachiML/Llama-3.1-Swallow-8B-v0.2-reasoningvector-deepseek-r1"
jp_model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)
jp_tokenizer = AutoTokenizer.from_pretrained(model_name)

# チャットメッセージの準備
chat = [
    {"role": "user", "content": "\[p = \sum_{k = 1}^\infty \frac{1}{k^2} \quad \text{および} \quad q = \sum_{k = 1}^\infty \frac{1}{k^3}\]と定義する。  \[\sum_{j = 1}^\infty \sum_{k = 1}^\infty \frac{1}{(j + k)^3}\]を \( p \) および \( q \) を用いて表す方法を求めよ。"},
]

# 推論の実行
with torch.no_grad():
    token_ids = jp_tokenizer.apply_chat_template(chat, return_tensors="pt")
    output_ids = jp_model.generate(
        token_ids.to(jp_model.device),
        temperature=0.0,
        max_new_tokens=2048,
    )
output = jp_tokenizer.decode(output_ids[0][token_ids.size(1) :])
print(output)
```