JM-Lee commited on
Commit
3ad581d
β€’
1 Parent(s): 3d7512c

self_reward_lucidrains

Browse files
.DS_Store ADDED
Binary file (6.15 kB). View file
 
checkpoints/1.sft.ckpt.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e28ed41c19f72462937313b1dd7cb49d3af067c1370030889a0acd41ba5dc796
3
+ size 15751266
preference_seq.memmap.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:485e64e2c452343bd06df0478ff695fb67a91a0e928b75f61fe089ab681fa1d4
3
+ size 113737856
prompt_len.memmap.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:37d094b627895d66d2d2e67b672dc9f2472e16ab96085223f155b1477504d5e9
3
+ size 55664
self_reward.memmap.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:855e2cc56f47b2e911ab2beafedec88088ee7ab44b1eaf755b8decc3882aeb57
3
+ size 55664
self_rewarding_test.ipynb ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 4,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import torch\n",
10
+ "from torch import Tensor\n",
11
+ "\n",
12
+ "from self_rewarding_lm_pytorch import (\n",
13
+ " SelfRewardingTrainer,\n",
14
+ " create_mock_dataset\n",
15
+ ")\n",
16
+ "\n"
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": 5,
22
+ "metadata": {},
23
+ "outputs": [
24
+ {
25
+ "name": "stderr",
26
+ "output_type": "stream",
27
+ "text": [
28
+ "sft fine-tuning: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 9/9 [00:03<00:00, 2.91it/s]\n",
29
+ "generating dpo dataset with self-rewarding: 0it [00:00, ?it/s]"
30
+ ]
31
+ }
32
+ ],
33
+ "source": [
34
+ "from x_transformers import TransformerWrapper, Decoder\n",
35
+ "transformer = TransformerWrapper(\n",
36
+ " num_tokens = 256,\n",
37
+ " max_seq_len = 1024,\n",
38
+ " attn_layers = Decoder(\n",
39
+ " dim = 512,\n",
40
+ " depth = 1,\n",
41
+ " heads = 8\n",
42
+ " )\n",
43
+ ")\n",
44
+ "\n",
45
+ "sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1))) # length, output(callable function) -> return class instance\n",
46
+ "prompt_dataset = create_mock_dataset(100, lambda: 'mock prompt')\n",
47
+ "\n",
48
+ "def decode_tokens(tokens: Tensor) -> str:\n",
49
+ " decode_token = lambda token: str(chr(max(32, token))) # chr(i) : return ASCII code correspoding to i\n",
50
+ " return ''.join(list(map(decode_token, tokens)))\n",
51
+ "\n",
52
+ "def encode_str(seq_str: str) -> Tensor:\n",
53
+ " return Tensor(list(map(ord, seq_str))) # ord('c') : return the ASCII code of 'c'\n",
54
+ "\n",
55
+ "trainer = SelfRewardingTrainer(\n",
56
+ " transformer,\n",
57
+ " finetune_configs = dict(\n",
58
+ " train_sft_dataset = sft_dataset,\n",
59
+ " self_reward_prompt_dataset = prompt_dataset,\n",
60
+ " dpo_num_train_steps = 1000\n",
61
+ " ),\n",
62
+ " tokenizer_decode = decode_tokens,\n",
63
+ " tokenizer_encode = encode_str,\n",
64
+ " accelerate_kwargs = dict(\n",
65
+ " cpu = True\n",
66
+ " )\n",
67
+ ")\n",
68
+ "trainer(overwrite_checkpoints = True)\n",
69
+ "\n",
70
+ "\n",
71
+ "# checkpoints after each finetuning stage will be saved to ./checkpoints"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "code",
76
+ "execution_count": null,
77
+ "metadata": {},
78
+ "outputs": [],
79
+ "source": []
80
+ }
81
+ ],
82
+ "metadata": {
83
+ "kernelspec": {
84
+ "display_name": "Python 3",
85
+ "language": "python",
86
+ "name": "python3"
87
+ },
88
+ "language_info": {
89
+ "codemirror_mode": {
90
+ "name": "ipython",
91
+ "version": 3
92
+ },
93
+ "file_extension": ".py",
94
+ "mimetype": "text/x-python",
95
+ "name": "python",
96
+ "nbconvert_exporter": "python",
97
+ "pygments_lexer": "ipython3",
98
+ "version": "3.11.7"
99
+ }
100
+ },
101
+ "nbformat": 4,
102
+ "nbformat_minor": 2
103
+ }