gpt-tokenizer 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/cjs/BytePairEncodingCore.d.ts +30 -17
- package/cjs/BytePairEncodingCore.js +202 -134
- package/cjs/BytePairEncodingCore.js.map +1 -1
- package/cjs/GptEncoding.d.ts +6 -4
- package/cjs/GptEncoding.js +48 -14
- package/cjs/GptEncoding.js.map +1 -1
- package/cjs/encoding/cl100k_base.d.ts +1 -1
- package/cjs/encoding/o200k_base.d.ts +1 -1
- package/cjs/encoding/p50k_base.d.ts +1 -1
- package/cjs/encoding/p50k_edit.d.ts +1 -1
- package/cjs/encoding/r50k_base.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-0125.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-0301.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-0613.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-1106.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-16k-0613.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-16k.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-instruct-0914.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo-instruct.d.ts +1 -1
- package/cjs/model/gpt-3.5-turbo.d.ts +1 -1
- package/cjs/model/gpt-4-0125-preview.d.ts +1 -1
- package/cjs/model/gpt-4-0314.d.ts +1 -1
- package/cjs/model/gpt-4-0613.d.ts +1 -1
- package/cjs/model/gpt-4-1106-preview.d.ts +1 -1
- package/cjs/model/gpt-4-32k-0314.d.ts +1 -1
- package/cjs/model/gpt-4-32k-0613.d.ts +1 -1
- package/cjs/model/gpt-4-32k.d.ts +1 -1
- package/cjs/model/gpt-4-turbo-2024-04-09.d.ts +1 -1
- package/cjs/model/gpt-4-turbo-preview.d.ts +1 -1
- package/cjs/model/gpt-4-turbo.d.ts +1 -1
- package/cjs/model/gpt-4-vision-preview.d.ts +1 -1
- package/cjs/model/gpt-4.d.ts +1 -1
- package/cjs/model/gpt-4o-2024-05-13.d.ts +1 -1
- package/cjs/model/gpt-4o-2024-08-06.d.ts +1 -1
- package/cjs/model/gpt-4o-mini-2024-07-18.d.ts +1 -1
- package/cjs/model/gpt-4o-mini.d.ts +1 -1
- package/cjs/model/gpt-4o.d.ts +1 -1
- package/dist/cl100k_base.js +1 -1
- package/dist/cl100k_base.js.map +1 -1
- package/dist/o200k_base.js +1 -1
- package/dist/o200k_base.js.map +1 -1
- package/dist/p50k_base.js +1 -1
- package/dist/p50k_base.js.map +1 -1
- package/dist/p50k_edit.js +1 -1
- package/dist/p50k_edit.js.map +1 -1
- package/dist/r50k_base.js +1 -1
- package/dist/r50k_base.js.map +1 -1
- package/esm/BytePairEncodingCore.d.ts +30 -17
- package/esm/BytePairEncodingCore.js +201 -133
- package/esm/BytePairEncodingCore.js.map +1 -1
- package/esm/GptEncoding.d.ts +6 -4
- package/esm/GptEncoding.js +49 -15
- package/esm/GptEncoding.js.map +1 -1
- package/esm/encoding/cl100k_base.d.ts +1 -1
- package/esm/encoding/o200k_base.d.ts +1 -1
- package/esm/encoding/p50k_base.d.ts +1 -1
- package/esm/encoding/p50k_edit.d.ts +1 -1
- package/esm/encoding/r50k_base.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-0125.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-0301.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-0613.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-1106.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-16k-0613.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-16k.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-instruct-0914.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo-instruct.d.ts +1 -1
- package/esm/model/gpt-3.5-turbo.d.ts +1 -1
- package/esm/model/gpt-4-0125-preview.d.ts +1 -1
- package/esm/model/gpt-4-0314.d.ts +1 -1
- package/esm/model/gpt-4-0613.d.ts +1 -1
- package/esm/model/gpt-4-1106-preview.d.ts +1 -1
- package/esm/model/gpt-4-32k-0314.d.ts +1 -1
- package/esm/model/gpt-4-32k-0613.d.ts +1 -1
- package/esm/model/gpt-4-32k.d.ts +1 -1
- package/esm/model/gpt-4-turbo-2024-04-09.d.ts +1 -1
- package/esm/model/gpt-4-turbo-preview.d.ts +1 -1
- package/esm/model/gpt-4-turbo.d.ts +1 -1
- package/esm/model/gpt-4-vision-preview.d.ts +1 -1
- package/esm/model/gpt-4.d.ts +1 -1
- package/esm/model/gpt-4o-2024-05-13.d.ts +1 -1
- package/esm/model/gpt-4o-2024-08-06.d.ts +1 -1
- package/esm/model/gpt-4o-mini-2024-07-18.d.ts +1 -1
- package/esm/model/gpt-4o-mini.d.ts +1 -1
- package/esm/model/gpt-4o.d.ts +1 -1
- package/package.json +1 -1
- package/src/BytePairEncodingCore.ts +260 -173
- package/src/GptEncoding.ts +82 -20
|
@@ -4,28 +4,41 @@ export interface BytePairEncodingConfig {
|
|
|
4
4
|
specialTokenMapping?: Map<string, number>;
|
|
5
5
|
tokenSplitRegex: RegExp;
|
|
6
6
|
}
|
|
7
|
+
export declare const decoder: TextDecoder;
|
|
7
8
|
export declare class BytePairEncodingCore {
|
|
8
|
-
readonly
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
readonly mergeableBytePairRankCount: number;
|
|
10
|
+
/**
|
|
11
|
+
* an array where the index is the BPE rank,
|
|
12
|
+
* and the value is the string or the array of bytes that it decodes to
|
|
13
|
+
* it may contain holes if token is unused
|
|
14
|
+
*/
|
|
15
|
+
private bytePairRankDecoder;
|
|
16
|
+
private bytePairNonUtfRankDecoder;
|
|
17
|
+
private bytePairNonUtfSortedEncoder;
|
|
18
|
+
/**
|
|
19
|
+
* a reverse map of the bytePairRankDecoder,
|
|
20
|
+
* where the key is the string and the value is the rank
|
|
21
|
+
* values that cannot be represented as a string are present in `bytePairNonUtfSortedEncoder`
|
|
22
|
+
*/
|
|
23
|
+
private bytePairStringRankEncoder;
|
|
12
24
|
private tokenSplitRegex;
|
|
13
25
|
private specialTokensEncoder;
|
|
14
26
|
private specialTokensDecoder;
|
|
15
27
|
private specialTokenPatternRegex;
|
|
16
|
-
private stringDecoder;
|
|
17
28
|
private textEncoder;
|
|
18
29
|
constructor({ mergeableBytePairRanks: bytePairEncoder, specialTokenMapping: specialTokenEncoder, tokenSplitRegex, }: BytePairEncodingConfig);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
encodeNativeGenerator(text: string, allowedSpecial?: Set<string>): Generator<number[], number, undefined>;
|
|
31
|
+
encodeNative(text: string, allowedSpecial?: Set<string>): number[];
|
|
32
|
+
decodeNativeGenerator(tokens: Iterable<number>): Generator<Uint8Array | string, void, void>;
|
|
33
|
+
decodeNative(tokens: Iterable<number>): string;
|
|
34
|
+
decodeNativeAsyncIterable(tokens: AsyncIterable<number>): AsyncGenerator<Uint8Array | string>;
|
|
35
|
+
private getBpeRankFromString;
|
|
36
|
+
private getBpeRankFromStringOrThrow;
|
|
37
|
+
private getBpeRankFromBytes;
|
|
38
|
+
private getBpeRankFromBytesOrThrow;
|
|
39
|
+
private binarySearch;
|
|
40
|
+
private findNextSpecialStartIndex;
|
|
41
|
+
private tryDecodeToken;
|
|
42
|
+
private bytePairEncode;
|
|
43
|
+
private bytePairMerge;
|
|
31
44
|
}
|
|
@@ -1,50 +1,175 @@
|
|
|
1
1
|
/* eslint-disable no-continue */
|
|
2
2
|
import { compareUint8Arrays, isAscii, tryConvertToString } from './utfUtil.js';
|
|
3
3
|
import { escapeRegExp } from './util.js';
|
|
4
|
+
const emptyBuffer = new Uint8Array(0);
|
|
5
|
+
export const decoder = new TextDecoder('utf8');
|
|
4
6
|
export class BytePairEncodingCore {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
mergeableBytePairRankCount;
|
|
8
|
+
/**
|
|
9
|
+
* an array where the index is the BPE rank,
|
|
10
|
+
* and the value is the string or the array of bytes that it decodes to
|
|
11
|
+
* it may contain holes if token is unused
|
|
12
|
+
*/
|
|
13
|
+
bytePairRankDecoder;
|
|
14
|
+
bytePairNonUtfRankDecoder = new Map();
|
|
15
|
+
bytePairNonUtfSortedEncoder;
|
|
16
|
+
/**
|
|
17
|
+
* a reverse map of the bytePairRankDecoder,
|
|
18
|
+
* where the key is the string and the value is the rank
|
|
19
|
+
* values that cannot be represented as a string are present in `bytePairNonUtfSortedEncoder`
|
|
20
|
+
*/
|
|
21
|
+
bytePairStringRankEncoder;
|
|
9
22
|
tokenSplitRegex;
|
|
10
23
|
specialTokensEncoder;
|
|
11
24
|
specialTokensDecoder;
|
|
12
25
|
specialTokenPatternRegex;
|
|
13
|
-
stringDecoder;
|
|
14
26
|
textEncoder = new TextEncoder();
|
|
15
27
|
constructor({ mergeableBytePairRanks: bytePairEncoder, specialTokenMapping: specialTokenEncoder, tokenSplitRegex, }) {
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
28
|
+
this.bytePairRankDecoder = bytePairEncoder;
|
|
29
|
+
this.bytePairStringRankEncoder = new Map();
|
|
18
30
|
// size without array holes (which may be present in the encoder)
|
|
19
|
-
this.
|
|
31
|
+
this.mergeableBytePairRankCount = Object.keys(bytePairEncoder).length;
|
|
20
32
|
const binaryLookup = [];
|
|
21
33
|
// forEach skips array holes:
|
|
22
34
|
bytePairEncoder.forEach((value, rank) => {
|
|
23
35
|
if (typeof value === 'string') {
|
|
24
|
-
this.
|
|
36
|
+
this.bytePairStringRankEncoder.set(value, rank);
|
|
25
37
|
return;
|
|
26
38
|
}
|
|
27
39
|
const byteArray = new Uint8Array(value);
|
|
28
40
|
binaryLookup.push([byteArray, rank]);
|
|
29
|
-
this.
|
|
41
|
+
this.bytePairNonUtfRankDecoder.set(rank, byteArray);
|
|
30
42
|
});
|
|
31
|
-
this.
|
|
43
|
+
this.bytePairNonUtfSortedEncoder = binaryLookup.sort((a, b) => compareUint8Arrays(a[0], b[0]));
|
|
32
44
|
this.specialTokensEncoder = specialTokenEncoder ?? new Map();
|
|
33
45
|
this.specialTokensDecoder = specialTokenEncoder
|
|
34
46
|
? new Map([...specialTokenEncoder].map(([key, value]) => [value, key]))
|
|
35
47
|
: new Map();
|
|
36
48
|
this.tokenSplitRegex = tokenSplitRegex;
|
|
37
|
-
const
|
|
38
|
-
const
|
|
49
|
+
const escapedSpecialTokens = [...this.specialTokensEncoder.keys()].map(escapeRegExp);
|
|
50
|
+
const allSpecialTokensRegex = escapedSpecialTokens.join('|');
|
|
39
51
|
try {
|
|
40
|
-
this.specialTokenPatternRegex = new RegExp(
|
|
52
|
+
this.specialTokenPatternRegex = new RegExp(allSpecialTokensRegex);
|
|
41
53
|
}
|
|
42
54
|
catch {
|
|
43
55
|
throw new Error('Invalid regular expression pattern.');
|
|
44
56
|
}
|
|
45
57
|
}
|
|
58
|
+
*encodeNativeGenerator(text, allowedSpecial) {
|
|
59
|
+
let startIndex = 0;
|
|
60
|
+
let lastTokenLength = 0;
|
|
61
|
+
while (true) {
|
|
62
|
+
const nextSpecialStartIndex = this.findNextSpecialStartIndex(text, allowedSpecial, startIndex);
|
|
63
|
+
const endIndex = nextSpecialStartIndex !== undefined
|
|
64
|
+
? nextSpecialStartIndex
|
|
65
|
+
: text.length;
|
|
66
|
+
const textSegment = text.slice(startIndex, endIndex - startIndex);
|
|
67
|
+
for (const [match] of textSegment.matchAll(this.tokenSplitRegex)) {
|
|
68
|
+
const token = this.getBpeRankFromString(match);
|
|
69
|
+
if (token !== undefined) {
|
|
70
|
+
lastTokenLength = 1;
|
|
71
|
+
yield [token];
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const tokens = this.bytePairEncode(match);
|
|
75
|
+
lastTokenLength = tokens.length;
|
|
76
|
+
yield tokens;
|
|
77
|
+
}
|
|
78
|
+
if (nextSpecialStartIndex !== undefined) {
|
|
79
|
+
const specialToken = text.slice(Math.max(0, nextSpecialStartIndex));
|
|
80
|
+
const specialTokenValue = this.specialTokensEncoder.get(specialToken);
|
|
81
|
+
if (specialTokenValue === undefined) {
|
|
82
|
+
throw new Error(`Special token "${specialToken}" is not in the special token encoder.`);
|
|
83
|
+
}
|
|
84
|
+
yield [specialTokenValue];
|
|
85
|
+
startIndex = nextSpecialStartIndex + specialToken.length;
|
|
86
|
+
lastTokenLength = 0;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return lastTokenLength;
|
|
93
|
+
}
|
|
94
|
+
encodeNative(text, allowedSpecial) {
|
|
95
|
+
let startIndex = 0;
|
|
96
|
+
const tokensArray = []; // Flat list to collect the tokens
|
|
97
|
+
// eslint-disable-next-line no-constant-condition
|
|
98
|
+
while (true) {
|
|
99
|
+
const nextSpecialStartIndex = this.findNextSpecialStartIndex(text, allowedSpecial, startIndex);
|
|
100
|
+
const endIndex = nextSpecialStartIndex !== undefined
|
|
101
|
+
? nextSpecialStartIndex
|
|
102
|
+
: text.length;
|
|
103
|
+
const textSegment = text.slice(startIndex, endIndex - startIndex);
|
|
104
|
+
for (const [match] of textSegment.matchAll(this.tokenSplitRegex)) {
|
|
105
|
+
const token = this.getBpeRankFromString(match);
|
|
106
|
+
if (token !== undefined) {
|
|
107
|
+
tokensArray.push(token);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const tokens = this.bytePairEncode(match);
|
|
111
|
+
tokensArray.push(...tokens);
|
|
112
|
+
}
|
|
113
|
+
if (nextSpecialStartIndex !== undefined) {
|
|
114
|
+
const specialToken = text.slice(Math.max(0, nextSpecialStartIndex));
|
|
115
|
+
const specialTokenValue = this.specialTokensEncoder.get(specialToken);
|
|
116
|
+
if (specialTokenValue === undefined) {
|
|
117
|
+
throw new Error(`Special token "${specialToken}" is not in the special token encoder.`);
|
|
118
|
+
}
|
|
119
|
+
tokensArray.push(specialTokenValue);
|
|
120
|
+
startIndex = nextSpecialStartIndex + specialToken.length;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return tokensArray;
|
|
127
|
+
}
|
|
128
|
+
*decodeNativeGenerator(tokens) {
|
|
129
|
+
for (const token of tokens) {
|
|
130
|
+
const tokenBytes = this.tryDecodeToken(token);
|
|
131
|
+
if (tokenBytes) {
|
|
132
|
+
yield tokenBytes;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
decodeNative(tokens) {
|
|
137
|
+
let decoded = '';
|
|
138
|
+
let intBuffer = emptyBuffer;
|
|
139
|
+
for (const token of tokens) {
|
|
140
|
+
const tokenBytes = this.tryDecodeToken(token);
|
|
141
|
+
if (tokenBytes === undefined) {
|
|
142
|
+
throw new Error(`Token ${token} is not in the byte pair encoder.`);
|
|
143
|
+
}
|
|
144
|
+
if (typeof tokenBytes === 'string') {
|
|
145
|
+
if (intBuffer !== emptyBuffer) {
|
|
146
|
+
decoded += decoder.decode(intBuffer, { stream: true });
|
|
147
|
+
intBuffer = emptyBuffer;
|
|
148
|
+
}
|
|
149
|
+
decoded += tokenBytes;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const newBuffer = new Uint8Array(intBuffer.length + tokenBytes.length);
|
|
153
|
+
newBuffer.set(intBuffer);
|
|
154
|
+
newBuffer.set(tokenBytes, intBuffer.length);
|
|
155
|
+
intBuffer = newBuffer;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (intBuffer !== emptyBuffer) {
|
|
159
|
+
decoded += decoder.decode(intBuffer, { stream: true });
|
|
160
|
+
}
|
|
161
|
+
return decoded;
|
|
162
|
+
}
|
|
163
|
+
async *decodeNativeAsyncIterable(tokens) {
|
|
164
|
+
for await (const token of tokens) {
|
|
165
|
+
const tokenBytesOrString = this.tryDecodeToken(token);
|
|
166
|
+
if (tokenBytesOrString) {
|
|
167
|
+
yield tokenBytesOrString;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
46
171
|
getBpeRankFromString(key) {
|
|
47
|
-
return this.
|
|
172
|
+
return this.bytePairStringRankEncoder.get(key);
|
|
48
173
|
}
|
|
49
174
|
getBpeRankFromStringOrThrow(key) {
|
|
50
175
|
const value = this.getBpeRankFromString(key);
|
|
@@ -61,7 +186,7 @@ export class BytePairEncodingCore {
|
|
|
61
186
|
// Perform binary search on the binary keys
|
|
62
187
|
const index = this.binarySearch(key);
|
|
63
188
|
if (index !== -1) {
|
|
64
|
-
return this.
|
|
189
|
+
return this.bytePairNonUtfSortedEncoder[index][1];
|
|
65
190
|
}
|
|
66
191
|
return undefined;
|
|
67
192
|
}
|
|
@@ -75,13 +200,14 @@ export class BytePairEncodingCore {
|
|
|
75
200
|
// Binary search on the binary keys
|
|
76
201
|
binarySearch(key) {
|
|
77
202
|
let low = 0;
|
|
78
|
-
let high = this.
|
|
203
|
+
let high = this.bytePairNonUtfSortedEncoder.length - 1;
|
|
79
204
|
while (low <= high) {
|
|
80
205
|
// eslint-disable-next-line no-bitwise
|
|
81
206
|
const mid = (low + high) >>> 1;
|
|
82
|
-
const midKey = this.
|
|
207
|
+
const midKey = this.bytePairNonUtfSortedEncoder[mid][0];
|
|
83
208
|
let cmp = 0;
|
|
84
|
-
|
|
209
|
+
const maxLength = Math.min(midKey.length, key.length);
|
|
210
|
+
for (let i = 0; i < maxLength; i++) {
|
|
85
211
|
cmp = midKey[i] - key[i];
|
|
86
212
|
if (cmp !== 0)
|
|
87
213
|
break;
|
|
@@ -101,80 +227,28 @@ export class BytePairEncodingCore {
|
|
|
101
227
|
}
|
|
102
228
|
return -1;
|
|
103
229
|
}
|
|
104
|
-
|
|
105
|
-
let startIndex = 0;
|
|
106
|
-
let lastTokenLength = 0;
|
|
107
|
-
while (true) {
|
|
108
|
-
const nextSpecialStartIndex = this.findNextSpecialStartIndex(text, allowedSpecial, startIndex, this.specialTokenPatternRegex);
|
|
109
|
-
const endIndex = nextSpecialStartIndex !== undefined
|
|
110
|
-
? nextSpecialStartIndex
|
|
111
|
-
: text.length;
|
|
112
|
-
const textSegment = text.slice(startIndex, endIndex - startIndex);
|
|
113
|
-
for (const [match] of textSegment.matchAll(this.tokenSplitRegex)) {
|
|
114
|
-
const token = this.getBpeRankFromString(match);
|
|
115
|
-
if (token !== undefined) {
|
|
116
|
-
lastTokenLength = 1;
|
|
117
|
-
yield [token];
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
const tokens = this.bytePairEncode(match);
|
|
121
|
-
lastTokenLength = tokens.length;
|
|
122
|
-
yield tokens;
|
|
123
|
-
}
|
|
124
|
-
if (nextSpecialStartIndex !== undefined) {
|
|
125
|
-
const specialToken = text.slice(Math.max(0, nextSpecialStartIndex));
|
|
126
|
-
const specialTokenValue = this.specialTokensEncoder.get(specialToken);
|
|
127
|
-
if (specialTokenValue === undefined) {
|
|
128
|
-
throw new Error(`Special token "${specialToken}" is not in the special token encoder.`);
|
|
129
|
-
}
|
|
130
|
-
yield [specialTokenValue];
|
|
131
|
-
startIndex = nextSpecialStartIndex + specialToken.length;
|
|
132
|
-
lastTokenLength = 0;
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return lastTokenLength;
|
|
139
|
-
}
|
|
140
|
-
findNextSpecialStartIndex(text, allowedSpecial, startIndex, specialRegex) {
|
|
230
|
+
findNextSpecialStartIndex(text, allowedSpecial, startIndex) {
|
|
141
231
|
let searchIndex = startIndex;
|
|
142
232
|
// eslint-disable-next-line no-constant-condition
|
|
143
233
|
while (true) {
|
|
144
|
-
const nextSpecialMatch =
|
|
234
|
+
const nextSpecialMatch = this.specialTokenPatternRegex.exec(text.slice(Math.max(0, searchIndex)));
|
|
145
235
|
if (!nextSpecialMatch) {
|
|
146
236
|
return undefined;
|
|
147
237
|
}
|
|
148
|
-
const
|
|
238
|
+
const specialToken = nextSpecialMatch[0];
|
|
149
239
|
if (allowedSpecial?.has(specialToken)) {
|
|
150
240
|
return nextSpecialMatch.index + searchIndex;
|
|
151
241
|
}
|
|
152
242
|
searchIndex = nextSpecialMatch.index + searchIndex + 1;
|
|
153
243
|
}
|
|
154
244
|
}
|
|
155
|
-
*decodeNative(tokens) {
|
|
156
|
-
for (const token of tokens) {
|
|
157
|
-
const tokenBytes = this.tryDecodeToken(token);
|
|
158
|
-
if (tokenBytes) {
|
|
159
|
-
yield tokenBytes;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
async *decodeNativeAsync(tokens) {
|
|
164
|
-
for await (const token of tokens) {
|
|
165
|
-
const tokenBytesOrString = this.tryDecodeToken(token);
|
|
166
|
-
if (tokenBytesOrString) {
|
|
167
|
-
yield tokenBytesOrString;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
245
|
tryDecodeToken(tokenRank) {
|
|
172
|
-
const value = this.
|
|
246
|
+
const value = this.bytePairRankDecoder[tokenRank];
|
|
173
247
|
if (typeof value === 'string') {
|
|
174
248
|
return value;
|
|
175
249
|
}
|
|
176
250
|
if (typeof value === 'object') {
|
|
177
|
-
const fromBinary = this.
|
|
251
|
+
const fromBinary = this.bytePairNonUtfRankDecoder.get(tokenRank);
|
|
178
252
|
if (fromBinary) {
|
|
179
253
|
return fromBinary;
|
|
180
254
|
}
|
|
@@ -186,80 +260,74 @@ export class BytePairEncodingCore {
|
|
|
186
260
|
return [this.getBpeRankFromStringOrThrow(input)];
|
|
187
261
|
}
|
|
188
262
|
const inputBytes = this.textEncoder.encode(input);
|
|
189
|
-
return this.bytePairMerge(inputBytes
|
|
190
|
-
const key = inputBytes.subarray(start, end);
|
|
191
|
-
return this.getBpeRankFromBytesOrThrow(key);
|
|
192
|
-
});
|
|
263
|
+
return this.bytePairMerge(inputBytes);
|
|
193
264
|
}
|
|
194
265
|
bytePairMerge(
|
|
195
266
|
// Input array of bytes to process
|
|
196
|
-
piece
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
//
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
// 'skip' determines how far we look ahead (usually 0, for consecutive pairs).
|
|
207
|
-
const getRank = (startIndex, skip) => {
|
|
208
|
-
if (startIndex + skip + 2 >= partitions.length) {
|
|
209
|
-
// Avoid out-of-bounds errors, return undefined when no valid pair exists
|
|
210
|
-
return undefined;
|
|
267
|
+
piece) {
|
|
268
|
+
// 'starts' holds the start indices of each partition
|
|
269
|
+
const starts = [];
|
|
270
|
+
// 'ranks' holds the BPE ranks of each partition pair
|
|
271
|
+
const ranks = [];
|
|
272
|
+
// Helper function to get the rank of a byte pair starting at 'startIndex'
|
|
273
|
+
const getRank = (startIndex, pairStart = starts[startIndex], pairEnd = starts[startIndex + 2]) => {
|
|
274
|
+
if (pairEnd === undefined) {
|
|
275
|
+
// No valid pair exists
|
|
276
|
+
return Number.POSITIVE_INFINITY;
|
|
211
277
|
}
|
|
212
|
-
//
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return
|
|
278
|
+
// Extract the byte pair
|
|
279
|
+
const key = piece.subarray(pairStart, pairEnd);
|
|
280
|
+
// Retrieve the BPE rank of this byte pair (if it exists)
|
|
281
|
+
const rank = this.getBpeRankFromBytes(key);
|
|
282
|
+
return rank ?? Number.POSITIVE_INFINITY;
|
|
217
283
|
};
|
|
218
|
-
// Initialize the
|
|
219
|
-
for (let i = 0; i
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
284
|
+
// Initialize the 'starts' array with all possible start indices
|
|
285
|
+
for (let i = 0; i <= piece.length; i++) {
|
|
286
|
+
starts.push(i);
|
|
287
|
+
if (i < piece.length - 1) {
|
|
288
|
+
// Initialize the BPE values for all adjacent pairs
|
|
289
|
+
ranks.push(getRank(i, i, i + 2));
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
// Initialize BPE values to infinity for the last pair
|
|
293
|
+
ranks.push(Number.POSITIVE_INFINITY);
|
|
225
294
|
}
|
|
226
295
|
}
|
|
227
296
|
// Iteratively merge byte pairs until no more useful merges can be done
|
|
228
|
-
while (
|
|
229
|
-
let
|
|
230
|
-
let
|
|
231
|
-
// Find the partition with the minimum rank
|
|
232
|
-
let i = 0;
|
|
233
|
-
|
|
234
|
-
if (
|
|
235
|
-
|
|
236
|
-
|
|
297
|
+
while (starts.length > 1) {
|
|
298
|
+
let lowestRank = Number.POSITIVE_INFINITY;
|
|
299
|
+
let lowestPartitionIndex = -1;
|
|
300
|
+
// Find the partition with the minimum rank
|
|
301
|
+
for (let i = 0; i < ranks.length - 1; i++) {
|
|
302
|
+
const rank = ranks[i];
|
|
303
|
+
if (rank < lowestRank) {
|
|
304
|
+
lowestRank = rank;
|
|
305
|
+
lowestPartitionIndex = i;
|
|
237
306
|
}
|
|
238
|
-
i++;
|
|
239
307
|
}
|
|
240
308
|
// If no valid pair is left to merge, exit the loop
|
|
241
|
-
if (
|
|
309
|
+
if (lowestRank === Number.POSITIVE_INFINITY ||
|
|
310
|
+
lowestPartitionIndex === -1) {
|
|
242
311
|
break;
|
|
243
312
|
}
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
313
|
+
// Merge the pair at 'lowestPartitionIndex' by removing the next start index
|
|
314
|
+
starts.splice(lowestPartitionIndex + 1, 1);
|
|
315
|
+
// Remove the BPE value of the merged pair
|
|
316
|
+
ranks.splice(lowestPartitionIndex, 1);
|
|
317
|
+
// Update the current merged pair's rank
|
|
318
|
+
ranks[lowestPartitionIndex] = getRank(lowestPartitionIndex);
|
|
319
|
+
// Update the rank of the previous pair, if it exists
|
|
320
|
+
if (lowestPartitionIndex > 0) {
|
|
321
|
+
ranks[lowestPartitionIndex - 1] = getRank(lowestPartitionIndex - 1);
|
|
251
322
|
}
|
|
252
|
-
// Merge by removing the partition after the one we just merged
|
|
253
|
-
partitions.splice(minRankIdx + 1, 1);
|
|
254
323
|
}
|
|
255
324
|
// Create the final output by applying the transform function to each partitioned range
|
|
256
325
|
const output = [];
|
|
257
|
-
for (let i = 0; i <
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
partitions[i + 1].start));
|
|
326
|
+
for (let i = 0; i < starts.length - 1; i++) {
|
|
327
|
+
const pairStart = starts[i];
|
|
328
|
+
const pairEnd = starts[i + 1];
|
|
329
|
+
const bpeValue = this.getBpeRankFromBytesOrThrow(piece.subarray(pairStart, pairEnd));
|
|
330
|
+
output.push(bpeValue);
|
|
263
331
|
}
|
|
264
332
|
return output;
|
|
265
333
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BytePairEncodingCore.js","sourceRoot":"","sources":["../src/BytePairEncodingCore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BytePairEncodingCore.js","sourceRoot":"","sources":["../src/BytePairEncodingCore.ts"],"names":[],"mappings":"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"}
|
package/esm/GptEncoding.d.ts
CHANGED
|
@@ -20,17 +20,18 @@ export declare class GptEncoding {
|
|
|
20
20
|
static FimPrefix: string;
|
|
21
21
|
static FimSuffix: string;
|
|
22
22
|
modelName?: ModelName;
|
|
23
|
-
private decoder;
|
|
24
23
|
private bytePairEncodingCoreProcessor;
|
|
25
24
|
private specialTokenMapping;
|
|
26
25
|
private specialTokensSet;
|
|
27
26
|
private allSpecialTokenRegex;
|
|
27
|
+
private defaultSpecialTokenConfig;
|
|
28
28
|
private constructor();
|
|
29
29
|
static getEncodingApi(encodingName: EncodingName, getMergeableRanks: GetMergeableRanksFn): GptEncoding;
|
|
30
30
|
static getEncodingApiForModel(modelName: ModelName, getMergeableRanks: GetMergeableRanksFn): GptEncoding;
|
|
31
31
|
static getEncodingApiAsync(encodingName: EncodingName, getMergeableRanks: GetMergeableRanksAsyncFn): Promise<GptEncoding>;
|
|
32
32
|
static getEncodingApiForModelAsync(modelName: ModelName, getMergeableRanks: GetMergeableRanksAsyncFn): Promise<GptEncoding>;
|
|
33
|
-
|
|
33
|
+
private processSpecialTokens;
|
|
34
|
+
encodeGenerator(lineToEncode: string, encodeOptions?: EncodeOptions): Generator<number[], number, undefined>;
|
|
34
35
|
encode(lineToEncode: string, encodeOptions?: EncodeOptions): number[];
|
|
35
36
|
/**
|
|
36
37
|
* Progressively tokenizes an OpenAI chat.
|
|
@@ -52,7 +53,8 @@ export declare class GptEncoding {
|
|
|
52
53
|
* @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
|
|
53
54
|
*/
|
|
54
55
|
isWithinTokenLimit(input: string | Iterable<ChatMessage>, tokenLimit: number): false | number;
|
|
55
|
-
decodeGenerator(inputTokensToDecode: Iterable<number>): Generator<string, void>;
|
|
56
|
-
decodeAsyncGenerator(inputTokensToDecode: AsyncIterable<number>): AsyncGenerator<string, void>;
|
|
57
56
|
decode(inputTokensToDecode: Iterable<number>): string;
|
|
57
|
+
decodeGenerator(inputTokensToDecode: Iterable<number>): Generator<string, void, void>;
|
|
58
|
+
decodeAsyncGenerator(inputTokensToDecode: AsyncIterable<number>): AsyncGenerator<string, void>;
|
|
59
|
+
decodeAsync(inputTokensToDecode: AsyncIterable<number>): Promise<string>;
|
|
58
60
|
}
|