gpu-sankhya 0.3.2 → 0.3.3
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 +4 -4
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -218,12 +218,12 @@ spans) — evaluated against the shipped int8-quantized weights:
|
|
|
218
218
|
|
|
219
219
|
| gold set | examples | spans | value accuracy | span precision | span recall | span F1 |
|
|
220
220
|
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
221
|
-
| gold.jsonl (romanised) | 220 | 194 | 0.
|
|
222
|
-
| gold_deva.jsonl (Devanagari) | 182 | 151 | 0.
|
|
223
|
-
| combined | 402 | 345 | 0.
|
|
221
|
+
| gold.jsonl (romanised) | 220 | 194 | 0.9536 | 0.9585 | 0.9536 | 0.9561 |
|
|
222
|
+
| gold_deva.jsonl (Devanagari) | 182 | 151 | 0.9801 | 0.9867 | 0.9801 | 0.9834 |
|
|
223
|
+
| combined | 402 | 345 | 0.9652 | 0.9708 | 0.9652 | 0.9680 |
|
|
224
224
|
|
|
225
225
|
Negatives (zero-gold-span examples, 73 total): 0 false positives.
|
|
226
|
-
Miss summary: missed
|
|
226
|
+
Miss summary: missed 3, spurious 0, wrong value 0, wrong boundary 9.
|
|
227
227
|
Per-category value accuracy: digits 0.967, words 0.940, prefix 0.926,
|
|
228
228
|
range 0.917, currency 1.0, multi_unit 0.952, symbol_unit 0.970,
|
|
229
229
|
mixed_script 1.0, long 0.80.
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function zA(A){return A.version===2&&Array.isArray(A.conv)}function TA(A){return A.quantized!==void 0}function kA(A){let e=atob(A),n=new Int8Array(e.length);for(let B=0;B<e.length;B++)n[B]=e.charCodeAt(B)<<24>>24;return n}function z(A){let e=kA(A.data_b64),n=new Float32Array(e.length);for(let B=0;B<e.length;B++)n[B]=e[B]*A.scale;return{shape:A.shape,data:n}}function T(A){return{shape:A.shape,data:Float32Array.from(A.data)}}function wA(A,e){return A*(e-1)/2}function N(A){return{w:T(A.w),b:Float32Array.from(A.b.data)}}function X(A){return{w:z(A.w),b:Float32Array.from(A.b)}}function PA(A){let e=TA(A);if(zA(A)){let s=A.conv.map(t=>{let g=wA(t.dilation,t.k);if(e){let P=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:g,w:z(P.w),b:Float32Array.from(P.b)}}let o=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:g,w:T(o.w),b:Float32Array.from(o.b.data)}});return{version:2,charset:A.charset,classes:A.classes,embed:e?z(A.embed):T(A.embed),conv:s,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}let n=A.layers??3,B=A.dilation??2,f=[{name:"conv1",k:3,dilation:1},{name:"conv2",k:5,dilation:1},{name:"conv3",k:3,dilation:B}];n===4&&f.push({name:"conv4",k:3,dilation:4});let r=f.map(s=>{let t=wA(s.dilation,s.k);if(e){let w=A[s.name];if(!w)throw new Error(`missing ${s.name} in weights JSON`);return{k:s.k,dilation:s.dilation,residual:!1,padding:t,w:z(w.w),b:Float32Array.from(w.b)}}let o=A[s.name];if(!o)throw new Error(`missing ${s.name} in weights JSON`);return{k:s.k,dilation:s.dilation,residual:!1,padding:t,w:T(o.w),b:Float32Array.from(o.b.data)}});return{version:A.version??1,charset:A.charset,classes:A.classes,embed:e?z(A.embed):T(A.embed),conv:r,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}function xA(A){return Math.ceil(A/8)*8}function R(A){return xA(A+24)}var O=R(128),pA=/[०-९]/g;function k(A){return A.normalize("NFC").replace(pA,e=>String(e.charCodeAt(0)-2406)).toLowerCase()}function CA(A){let e=new Map;for(let n=0;n<A.length;n++)e.set(A[n],n);return e}function x(A,e,n,B){let f=e.get("<unk>")??1,r=e.get("<pad>")??0,s=B??A.length,t=n?n.subarray(0,s):new Int32Array(s);for(let g=0;g<A.length;g++)t[g]=e.get(A[g])??f;for(let g=A.length;g<s;g++)t[g]=r;return t}function eA(A){if(A<=128)return[{offset:0,length:A}];let e=[],n=112,B=0;for(;B<A;){let f=Math.min(128,A-B);if(e.push({offset:B,length:f}),B+f>=A)break;B+=n}return e}var j=class{buffers;padded;bioBuf;clsBuf;constructor(e){let n=e.conv,B=Math.max(e.embed.shape[1],...n.map(r=>r.w.shape[0]));this.buffers=[new Float32Array(B*O),new Float32Array(B*O)];let f=n.length?Math.max(...n.map(r=>r.padding)):0;this.padded=new Float32Array(B*(O+2*f)),this.bioBuf=new Float32Array(e.bio.w.shape[0]*O),this.clsBuf=new Float32Array(e.cls.w.shape[0]*O)}buf(e){return this.buffers[e%2]}paddedBuf(){return this.padded}};function mA(A,e,n,B,f,r){let[s,t,g]=B.w.shape;if(t!==e)throw new Error(`channel mismatch: expected ${e}, got ${t}`);let o=B.w.data,P=B.b,w=B.padding,C=B.dilation,D=n+2*w;for(let u=0;u<e;u++)r.fill(0,u*D,u*D+w),r.set(A.subarray(u*n,u*n+n),u*D+w),r.fill(0,u*D+w+n,u*D+D);for(let u=0;u<s;u++){let Q=u*n,l=P[u],I=u*e*g;if(g===3){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*3,d=o[i],M=o[i+1],E=o[i+2];for(let c=0;c<n;c++){let a=H+c;f[Q+c]+=d*r[a]+M*r[a+C]+E*r[a+2*C]}}}else if(g===5){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*5,d=o[i],M=o[i+1],E=o[i+2],c=o[i+3],a=o[i+4];for(let h=0;h<n;h++){let F=H+h;f[Q+h]+=d*r[F]+M*r[F+1]+E*r[F+2]+c*r[F+3]+a*r[F+4]}}}else{for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*g;for(let d=0;d<g;d++){let M=o[i+d],E=d*C,c=H+E;for(let a=0;a<n;a++)f[Q+a]+=M*r[c+a]}}}if(B.residual)for(let v=0;v<n;v++){let H=f[Q+v];f[Q+v]=(H>0?H:0)+A[Q+v]}else for(let v=0;v<n;v++){let H=f[Q+v];f[Q+v]=H>0?H:0}}return s}function DA(A,e,n,B,f){let[r,s]=B.w.shape;if(s!==e)throw new Error(`head channel mismatch: expected ${e}, got ${s}`);let t=B.w.data,g=B.b,o=e-e%4;for(let P=0;P<n;P++){let w=P*r;for(let C=0;C<r;C++){let D=g[C],u=C*e,Q=0;for(;Q<o;Q+=4)D+=t[u+Q]*A[Q*n+P]+t[u+Q+1]*A[(Q+1)*n+P]+t[u+Q+2]*A[(Q+2)*n+P]+t[u+Q+3]*A[(Q+3)*n+P];for(;Q<e;Q++)D+=t[u+Q]*A[Q*n+P];f[w+C]=D}}return r}function S(A,e,n){let B=e.length,f=A.embed,r=f.shape[1],s=n.buf(0);for(let w=0;w<B;w++){let D=e[w]*r;for(let u=0;u<r;u++)s[u*B+w]=f.data[D+u]}let t=r,g=n.paddedBuf(),o=1;for(let w of A.conv){let C=n.buf(o);t=mA(s,t,B,w,C,g),s=C,o++}DA(s,t,B,A.bio,n.bioBuf);let P=DA(s,t,B,A.cls,n.clsBuf);return{bioLogits:n.bioBuf,clsLogits:n.clsBuf,length:B,nCls:P}}function BA(A,e,n,B){let f=-1/0;for(let s=0;s<n;s++)f=Math.max(f,A[e+s]);let r=0;for(let s=0;s<n;s++){let t=Math.exp(A[e+s]-f);B[s]=t,r+=t}for(let s=0;s<n;s++)B[s]/=r;return B}function p(A,e,n){let B=0,f=-1/0;for(let r=0;r<n;r++){let s=A[e+r];s>f&&(f=s,B=r)}return B}var yA=["PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE"],YA=Array.from({length:99},(A,e)=>`CARD_${e+1}`),NA=["UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],XA=["O","SEP","RANGE","DIGITS","DOT","COMMA"],L=["O",...XA.filter(A=>A!=="O"),...yA,...YA,...NA],U=Object.fromEntries(L.map((A,e)=>[A,e])),vA={UNIT_SAU:100,UNIT_HAZAAR:1e3,UNIT_LAKH:1e5,UNIT_MILLION:1e6,UNIT_CRORE:1e7,UNIT_BILLION:1e9,UNIT_ARAB:1e9,UNIT_KHARAB:1e11},J={UNIT_SAU:"sau",UNIT_HAZAAR:"hazaar",UNIT_LAKH:"lakh",UNIT_MILLION:"million",UNIT_CRORE:"crore",UNIT_BILLION:"billion",UNIT_ARAB:"arab",UNIT_KHARAB:"kharab"},nA={PFX_PAAV:{standalone:.25,op:null},PFX_AADHA:{standalone:.5,op:null},PFX_PAUNE:{standalone:.75,op:"sub25",min_n:2},PFX_SAVA:{standalone:1.25,op:"add25",min_n:2},PFX_DEDH:{standalone:1.5,op:null},PFX_DHAI:{standalone:2.5,op:null},PFX_SAADHE:{standalone:.5,op:"add5",min_n:3}};function QA(A){return A in nA}function uA(A){return A.startsWith("CARD_")}function cA(A){return A in vA}function aA(A){return parseInt(A.split("_",2)[1],10)}function K(A){return vA[A]}var SA=new Set(["SEP","RANGE","DOT","COMMA"]),EA=new Set([...SA,"O"]),fA=["PFX_","CARD_","UNIT_"],JA=["PFX_","CARD_","UNIT_"],KA=new Set(["-","\u2013","\u2014","/"]),_A=new Set(["k","K","l","L"]),iA=/['’]([A-Za-zऀ-ॿ]{1,2})(?![A-Za-zऀ-ॿ])/g;function WA(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function VA(A){return JA.some(e=>A.startsWith(e))}var W=U.O,_=U.SEP,rA=U.RANGE,qA=U.DIGITS,ZA=U.DOT,$A=U.COMMA,Ae=/\p{L}|\p{M}/u;function m(A){return Ae.test(A)?"letter":/[0-9]/.test(A)?"digit":/\s/.test(A)?"space":"punct"}function ee(A){let e=[],n=0,B=A.length;for(;n<B;){let f=m(A[n]),r=n+1;for(;r<B&&m(A[r])===f;)r++;e.push({type:f,start:n,end:r}),n=r}return e}function Be(A,e,n){let B=new Map;for(let o=e;o<n;o++){let P=A[o];VA(L[P])&&B.set(P,(B.get(P)??0)+1)}if(B.size===0)return W;let f=-1;for(let o of B.values())o>f&&(f=o);let r=[...B.entries()].filter(([,o])=>o===f).map(([o])=>o);if(r.length===1)return r[0];let s=-1,t=1/0,g=r[0];for(let o of r){let P=0,w=0,C=1/0;for(let D=e;D<n;D++)A[D]===o?(C===1/0&&(C=D),P++,P>w&&(w=P)):P=0;(w>s||w===s&&C<t)&&(s=w,t=C,g=o)}return g}function bA(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=Be(A,e,n),s=[];for(let t=0;t<B.length;t++){let g=B[t];if(g.end-g.start>=3){s.push([g.start,g.end,g.cls]);continue}let P=t>0?B[t-1]:null,w=t<B.length-1?B[t+1]:null,C=P!==null&&P.end-P.start>=3,D=w!==null&&w.end-w.start>=3,u;if(C&&D){let Q=P.end-P.start;u=w.end-w.start>Q?w.cls:P.cls}else C?u=P.cls:D?u=w.cls:u=r;s.push([g.start,g.end,u])}return s}function ne(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function lA(A,e,n,B){if(A==="digit")return"DIGITS";if(A==="letter"){let f=bA(B,e,n),r=new Map;for(let[g,o,P]of f)r.set(P,(r.get(P)??0)+(o-g));let s=-1,t=-1;for(let[g,o]of r)o>t&&(t=o,s=g);return s>=0?L[s]:null}return null}function IA(A,e,n){let B=e+n;if(B<0||B>=A.length||A[B].type==="space"&&(B+=n,B<0||B>=A.length))return null;let f=A[B];return f.type==="digit"||f.type==="letter"?f:null}function re(A,e,n){let B=IA(A,e,-1),f=IA(A,e,1);if(!B||!f)return!1;let r=lA(B.type,B.start,B.end,n),s=lA(f.type,f.start,f.end,n);return!r||!s||!ne(r)?!1:s==="DIGITS"||s.startsWith("CARD_")||s.startsWith("PFX_")}function te(A,e){let n=A.length,B=new Array(n),f=ee(A);for(let r=0;r<f.length;r++){let s=f[r],{type:t,start:g,end:o}=s;if(t==="digit"){for(let D=g;D<o;D++)B[D]=qA;continue}if(t==="space"){let D=!1;for(let Q=g;Q<o;Q++)if(e[Q]===rA){D=!0;break}let u=D?rA:_;for(let Q=g;Q<o;Q++)B[Q]=u;continue}if(t==="letter"){for(let[D,u,Q]of bA(e,g,o))for(let l=D;l<u;l++)B[l]=Q;continue}let P=r>0?f[r-1].type:null,w=r<f.length-1?f[r+1].type:null,C=_;if(o-g===1){let D=A[g];(D==="."||D===",")&&P==="digit"&&w==="digit"?C=D==="."?ZA:$A:KA.has(D)&&re(f,r,e)?C=rA:C=_}for(let D=g;D<o;D++)B[D]=C}return B}function fe(A,e){let n=Array.from({length:e},(B,f)=>A[f]);for(let B=1;B<e-1;B++)A[B]===0&&(A[B-1]===1||A[B-1]===2)&&A[B+1]===2&&(n[B]=2);return n}function HA(A){return A!==void 0&&A>="0"&&A<="9"}function se(A,e,n){if(n<=e||!HA(A[n-1]))return n;let B=n;for(;B<A.length&&HA(A[B]);)B++;return B}var ge=24;function oe(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=[];for(let t=0;t<B.length;t++){let g=B[t];if(g.end-g.start>=3){r.push(g.cls);continue}let o=t>0?B[t-1]:null,P=t<B.length-1?B[t+1]:null,w=o!==null&&o.end-o.start>=3,C=P!==null&&P.end-P.start>=3;if(w&&C){let D=o.end-o.start,u=P.end-P.start;r.push(u>D?P.cls:o.cls)}else if(w)r.push(o.cls);else if(C)r.push(P.cls);else return null}return new Set(r).size===1?r[0]:null}function we(A,e,n){let B=A.length,f=Array.from({length:B},(r,s)=>A[s]);for(let[r,s]of n){let t=s-r;if(t===0||t>ge)continue;let g=!1,o=!0;for(let w=r;w<s;w++)A[w]===1||A[w]===2?g=!0:o=!1;if(!g||o)continue;let P=oe(e,r,s);if(!(P===null||!tA(L[P]))){for(let w=r;w<s;w++)f[w]=2;f[r]=1}}return f}function Pe(A){let e=[],n=0,B=A.length;for(;n<B;)if(m(A[n])==="letter"){let f=n+1;for(;f<B&&m(A[f])==="letter";)f++;e.push([n,f]),n=f}else n++;return e}function tA(A){return fA.some(e=>A.startsWith(e))&&A!=="DIGITS"}function Ce(A,e,n,B,f){let r=Array.from({length:B.length},(s,t)=>B[t]);for(let[s,t]of f){if(t<=e||s>=n)continue;let g=Math.max(s,e),o=Math.min(t,n),P=s>=e&&t<=n;if(P){for(let w=s;w<t;w++)if(!tA(L[r[w]])){P=!1;break}}if(P){t-s===1&&L[r[s]].startsWith("UNIT_")&&_A.has(A[s])&&t<A.length&&m(A[t])==="letter"&&(r[s]=W);continue}for(let w=g;w<o;w++)tA(L[r[w]])&&(r[w]=W)}return r}function De(A,e,n,B){let f=Array.from({length:B.length},(t,g)=>B[g]),r=A.slice(e,n);iA.lastIndex=0;let s;for(;s=iA.exec(r);)for(let t=e+s.index;t<e+s.index+s[0].length;t++)f[t]=W;return f}function hA(A,e,n,B){let f=A.length,r=Pe(A),s=fe(e,f);s=we(s,n,r);let t=[],g=null;for(let w=0;w<f;w++){let C=s[w];C===1?(g!==null&&t.push([g,w]),g=w):C===2||g!==null&&(t.push([g,w]),g=null)}g!==null&&t.push([g,f]);for(let w=0;w<t.length;w++)t[w]=[t[w][0],se(A,t[w][0],t[w][1])];let o=Array.from({length:f},(w,C)=>n[C]),P=[];for(let[w,C]of t){let D=A.slice(w,C),u=Array.from({length:C-w},(c,a)=>o[w+a]),Q=te(D,u);for(let c=w;c<C;c++)o[c]=Q[c-w];o=Ce(A,w,C,o,r),o=De(A,w,C,o);let l=w,I=[];for(let c=w+1;c<=C;c++)(c===C||o[c]!==o[l])&&(I.push([o[l],l,c]),l=c);let v=0,H=I.length;for(;v<H&&EA.has(L[I[v][0]]);)v++;for(;H>v&&EA.has(L[I[H-1][0]]);)H--;let i=I.slice(v,H);if(i.length===0)continue;let d=i[0][1],M=i[i.length-1][2];if(!i.some(([c])=>WA(L[c])))continue;let E=null;if(B){let c=[];for(let a=d;a<M;a++)c.push(Math.max(...B[a]));if(E=c.length?c.reduce((a,h)=>a+h,0)/c.length:0,E<.5)continue}P.push({start:d,end:M,text:A.slice(d,M),tokens:i.map(([c,a,h])=>[c,A.slice(a,h)]),confidence:E})}return P}function ve(A){let e=[],n="",B=!1,f=()=>{if(B){let r=n.replace(/,/g,""),s=parseFloat(r);e.push(["NUM",Number.isNaN(s)?0:s])}n="",B=!1};for(let[r,s]of A)r!=="SEP"&&(r==="DIGITS"||r==="DOT"||r==="COMMA"?(n+=s,B=!0):(f(),e.push([r,s])));return f(),e}function Qe(A,e){if(e!==null){let n=nA[e];if(n===void 0)return A!==null?A:1;if(A!==null&&n.op){if(n.op==="sub25")return A-.25;if(n.op==="add25")return A+.25;if(n.op==="add5")return A+.5}return n.standalone}return A!==null?A:1}function ue(A){let e=ve(A),n=0,B=null,f=null,r=null,s=null;function t(g){let o=Qe(r,s);if(g===null)n+=o*1;else{let P=K(g);B!==null&&P>B?n=n*P:n=n+o*P,B=P,(f===null||P>K(f))&&(f=g)}r=null,s=null}for(let[g,o]of e)if(g==="NUM")r!==null&&t(null),r=o;else if(uA(g)){r!==null&&t(null);try{r=aA(g)}catch{}}else if(QA(g))s!==null&&t(null),s=g;else if(cA(g))t(g);else continue;return(r!==null||s!==null)&&t(null),[n,f]}function y(A){let e=Math.round(A),n=Math.max(1e-6,Math.abs(A)*1e-9);return Math.abs(A-e)<n?e:Math.round(A*1e6)/1e6}function ce(A){let e=[],n=0;for(;n<A.length;){let[B,f]=A[n];if(B.startsWith("PFX_")){let r=f,s=n+1;for(;;){let t=s;if(t<A.length&&A[t][0]==="SEP"&&t++,t<A.length&&A[t][0]===B){for(let g=s;g<=t;g++)r+=A[g][1];s=t+1;continue}break}e.push([B,r]),n=s}else e.push(A[n]),n++}return e}function dA(A){try{let e=A.map(C=>C[0]),n=ce(A),B=[[]];for(let[C,D]of n){if(C==="RANGE"){B.length<2&&B.push([]);continue}B[B.length-1].push([C,D])}let f=B.filter(C=>C.length>0).map(C=>ue(C));if(f.length===0)return{value:0,range:null,unit:null,classes:e,currency:null};if(f.length===1){let[C,D]=f[0];return{value:y(C),range:null,unit:D?J[D]??null:null,classes:e,currency:null}}let[r,s]=f[0],[t,g]=f[1];if(s!==null&&g!==null&&r>t)return{value:y(r+t),range:null,unit:J[s]??null,classes:e,currency:null};let o;s===null&&g!==null?(r=r*K(g),o=g):o=s!==null?s:g;let[P,w]=r<=t?[r,t]:[t,r];return{value:y(P),range:[y(P),y(w)],unit:o?J[o]??null:null,classes:e,currency:null}}catch{return{value:0,range:null,unit:null,classes:A.map(e=>e[0]),currency:null}}}function ae(A){let e=!1;for(let[n]of A)if(n==="DIGITS")e=!0;else if(n.startsWith("UNIT_")||n.startsWith("PFX_")||n.startsWith("CARD_"))return!1;return e}function FA(A){if(!ae(A))return!1;let e=0,n=!1;for(let[B,f]of A)B==="DIGITS"?e+=f.length:B==="COMMA"&&(n=!0);return e<=4&&!n||e>=10}function LA(...A){let e=(B,f)=>f.length-B.length,n=B=>[...new Set(B.flat())].sort(e);return{currency_markers_before:n(A.map(B=>B.currency_markers_before??[])),currency_words_after:n(A.map(B=>B.currency_words_after??[]))}}function MA(A,e,n,B){let f=A.slice(Math.max(0,e-8),e),r=A.slice(n,n+8),t=f.replace(/\s+$/,"").toLowerCase(),g=[...B.currency_markers_before??[]].sort((C,D)=>D.length-C.length);for(let C of g){let D=C.replace(/\.+$/,"").toLowerCase();if(t.endsWith(C.toLowerCase())||t.endsWith(D))return"INR"}let P=r.replace(/^\s+/,"").toLowerCase(),w=[...B.currency_words_after??[]].sort((C,D)=>D.length-C.length);for(let C of w){let D=C.toLowerCase();if(P.startsWith(D))return"INR"}return null}var OA={currency_markers_before:["\u20B9","Rs","Rs.","rs","INR","Re"],currency_words_after:["rupaye","rupay","rupees","rupiya","rupya","/-"]};var UA={currency_markers_before:["\u20B9","\u0930\u0941","\u0930\u0941.","Rs","Rs.","INR"],currency_words_after:["\u0930\u0941\u092A\u092F\u0947","\u0930\u0941\u092A\u090F","\u0930\u0942\u092A\u092F\u0947","\u0930\u0941\u092A\u092F\u093E","/-"]};var Ee=`
|
|
1
|
+
function TA(A){return A.version===2&&Array.isArray(A.conv)}function OA(A){return A.quantized!==void 0}function kA(A){let e=atob(A),n=new Int8Array(e.length);for(let B=0;B<e.length;B++)n[B]=e.charCodeAt(B)<<24>>24;return n}function T(A){let e=kA(A.data_b64),n=new Float32Array(e.length);for(let B=0;B<e.length;B++)n[B]=e[B]*A.scale;return{shape:A.shape,data:n}}function O(A){return{shape:A.shape,data:Float32Array.from(A.data)}}function wA(A,e){return A*(e-1)/2}function N(A){return{w:O(A.w),b:Float32Array.from(A.b.data)}}function X(A){return{w:T(A.w),b:Float32Array.from(A.b)}}function PA(A){let e=OA(A);if(TA(A)){let g=A.conv.map(t=>{let s=wA(t.dilation,t.k);if(e){let P=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:s,w:T(P.w),b:Float32Array.from(P.b)}}let o=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:s,w:O(o.w),b:Float32Array.from(o.b.data)}});return{version:2,charset:A.charset,classes:A.classes,embed:e?T(A.embed):O(A.embed),conv:g,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}let n=A.layers??3,B=A.dilation??2,f=[{name:"conv1",k:3,dilation:1},{name:"conv2",k:5,dilation:1},{name:"conv3",k:3,dilation:B}];n===4&&f.push({name:"conv4",k:3,dilation:4});let r=f.map(g=>{let t=wA(g.dilation,g.k);if(e){let w=A[g.name];if(!w)throw new Error(`missing ${g.name} in weights JSON`);return{k:g.k,dilation:g.dilation,residual:!1,padding:t,w:T(w.w),b:Float32Array.from(w.b)}}let o=A[g.name];if(!o)throw new Error(`missing ${g.name} in weights JSON`);return{k:g.k,dilation:g.dilation,residual:!1,padding:t,w:O(o.w),b:Float32Array.from(o.b.data)}});return{version:A.version??1,charset:A.charset,classes:A.classes,embed:e?T(A.embed):O(A.embed),conv:r,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}function GA(A){return Math.ceil(A/8)*8}function U(A){return GA(A+24)}var R=U(128),pA=/[०-९]/g;function k(A){return A.normalize("NFC").replace(pA,e=>String(e.charCodeAt(0)-2406)).toLowerCase()}function DA(A){let e=new Map;for(let n=0;n<A.length;n++)e.set(A[n],n);return e}function G(A,e,n,B){let f=e.get("<unk>")??1,r=e.get("<pad>")??0,g=B??A.length,t=n?n.subarray(0,g):new Int32Array(g);for(let s=0;s<A.length;s++)t[s]=e.get(A[s])??f;for(let s=A.length;s<g;s++)t[s]=r;return t}function eA(A){if(A<=128)return[{offset:0,length:A}];let e=[],n=112,B=0;for(;B<A;){let f=Math.min(128,A-B);if(e.push({offset:B,length:f}),B+f>=A)break;B+=n}return e}var j=class{buffers;padded;bioBuf;clsBuf;constructor(e){let n=e.conv,B=Math.max(e.embed.shape[1],...n.map(r=>r.w.shape[0]));this.buffers=[new Float32Array(B*R),new Float32Array(B*R)];let f=n.length?Math.max(...n.map(r=>r.padding)):0;this.padded=new Float32Array(B*(R+2*f)),this.bioBuf=new Float32Array(e.bio.w.shape[0]*R),this.clsBuf=new Float32Array(e.cls.w.shape[0]*R)}buf(e){return this.buffers[e%2]}paddedBuf(){return this.padded}};function yA(A,e,n,B,f,r){let[g,t,s]=B.w.shape;if(t!==e)throw new Error(`channel mismatch: expected ${e}, got ${t}`);let o=B.w.data,P=B.b,w=B.padding,D=B.dilation,C=n+2*w;for(let u=0;u<e;u++)r.fill(0,u*C,u*C+w),r.set(A.subarray(u*n,u*n+n),u*C+w),r.fill(0,u*C+w+n,u*C+C);for(let u=0;u<g;u++){let Q=u*n,l=P[u],I=u*e*s;if(s===3){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let b=v*C,i=I+v*3,d=o[i],L=o[i+1],E=o[i+2];for(let c=0;c<n;c++){let a=b+c;f[Q+c]+=d*r[a]+L*r[a+D]+E*r[a+2*D]}}}else if(s===5){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let b=v*C,i=I+v*5,d=o[i],L=o[i+1],E=o[i+2],c=o[i+3],a=o[i+4];for(let H=0;H<n;H++){let M=b+H;f[Q+H]+=d*r[M]+L*r[M+1]+E*r[M+2]+c*r[M+3]+a*r[M+4]}}}else{for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let b=v*C,i=I+v*s;for(let d=0;d<s;d++){let L=o[i+d],E=d*D,c=b+E;for(let a=0;a<n;a++)f[Q+a]+=L*r[c+a]}}}if(B.residual)for(let v=0;v<n;v++){let b=f[Q+v];f[Q+v]=(b>0?b:0)+A[Q+v]}else for(let v=0;v<n;v++){let b=f[Q+v];f[Q+v]=b>0?b:0}}return g}function CA(A,e,n,B,f){let[r,g]=B.w.shape;if(g!==e)throw new Error(`head channel mismatch: expected ${e}, got ${g}`);let t=B.w.data,s=B.b,o=e-e%4;for(let P=0;P<n;P++){let w=P*r;for(let D=0;D<r;D++){let C=s[D],u=D*e,Q=0;for(;Q<o;Q+=4)C+=t[u+Q]*A[Q*n+P]+t[u+Q+1]*A[(Q+1)*n+P]+t[u+Q+2]*A[(Q+2)*n+P]+t[u+Q+3]*A[(Q+3)*n+P];for(;Q<e;Q++)C+=t[u+Q]*A[Q*n+P];f[w+D]=C}}return r}function S(A,e,n){let B=e.length,f=A.embed,r=f.shape[1],g=n.buf(0);for(let w=0;w<B;w++){let C=e[w]*r;for(let u=0;u<r;u++)g[u*B+w]=f.data[C+u]}let t=r,s=n.paddedBuf(),o=1;for(let w of A.conv){let D=n.buf(o);t=yA(g,t,B,w,D,s),g=D,o++}CA(g,t,B,A.bio,n.bioBuf);let P=CA(g,t,B,A.cls,n.clsBuf);return{bioLogits:n.bioBuf,clsLogits:n.clsBuf,length:B,nCls:P}}function BA(A,e,n,B){let f=-1/0;for(let g=0;g<n;g++)f=Math.max(f,A[e+g]);let r=0;for(let g=0;g<n;g++){let t=Math.exp(A[e+g]-f);B[g]=t,r+=t}for(let g=0;g<n;g++)B[g]/=r;return B}function p(A,e,n){let B=0,f=-1/0;for(let r=0;r<n;r++){let g=A[e+r];g>f&&(f=g,B=r)}return B}var mA=["PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE"],YA=Array.from({length:99},(A,e)=>`CARD_${e+1}`),NA=["UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],XA=["O","SEP","RANGE","DIGITS","DOT","COMMA"],F=["O",...XA.filter(A=>A!=="O"),...mA,...YA,...NA],x=Object.fromEntries(F.map((A,e)=>[A,e])),vA={UNIT_SAU:100,UNIT_HAZAAR:1e3,UNIT_LAKH:1e5,UNIT_MILLION:1e6,UNIT_CRORE:1e7,UNIT_BILLION:1e9,UNIT_ARAB:1e9,UNIT_KHARAB:1e11},K={UNIT_SAU:"sau",UNIT_HAZAAR:"hazaar",UNIT_LAKH:"lakh",UNIT_MILLION:"million",UNIT_CRORE:"crore",UNIT_BILLION:"billion",UNIT_ARAB:"arab",UNIT_KHARAB:"kharab"},nA={PFX_PAAV:{standalone:.25,op:null},PFX_AADHA:{standalone:.5,op:null},PFX_PAUNE:{standalone:.75,op:"sub25",min_n:2},PFX_SAVA:{standalone:1.25,op:"add25",min_n:2},PFX_DEDH:{standalone:1.5,op:null},PFX_DHAI:{standalone:2.5,op:null},PFX_SAADHE:{standalone:.5,op:"add5",min_n:3}};function QA(A){return A in nA}function uA(A){return A.startsWith("CARD_")}function cA(A){return A in vA}function aA(A){return parseInt(A.split("_",2)[1],10)}function J(A){return vA[A]}var SA=new Set(["SEP","RANGE","DOT","COMMA"]),EA=new Set([...SA,"O"]),fA=["PFX_","CARD_","UNIT_"],KA=["PFX_","CARD_","UNIT_"],JA=new Set(["-","\u2013","\u2014","/"]),_A=new Set(["k","K","l","L"]),iA=/['’]([A-Za-zऀ-ॿ]{1,2})(?![A-Za-zऀ-ॿ])/g;function WA(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function VA(A){return KA.some(e=>A.startsWith(e))}var W=x.O,_=x.SEP,rA=x.RANGE,qA=x.DIGITS,ZA=x.DOT,$A=x.COMMA,Ae=/\p{L}|\p{M}/u;function y(A){return Ae.test(A)?"letter":/[0-9]/.test(A)?"digit":/\s/.test(A)?"space":"punct"}function ee(A){let e=[],n=0,B=A.length;for(;n<B;){let f=y(A[n]),r=n+1;for(;r<B&&y(A[r])===f;)r++;e.push({type:f,start:n,end:r}),n=r}return e}function Be(A,e,n){let B=new Map;for(let o=e;o<n;o++){let P=A[o];VA(F[P])&&B.set(P,(B.get(P)??0)+1)}if(B.size===0)return W;let f=-1;for(let o of B.values())o>f&&(f=o);let r=[...B.entries()].filter(([,o])=>o===f).map(([o])=>o);if(r.length===1)return r[0];let g=-1,t=1/0,s=r[0];for(let o of r){let P=0,w=0,D=1/0;for(let C=e;C<n;C++)A[C]===o?(D===1/0&&(D=C),P++,P>w&&(w=P)):P=0;(w>g||w===g&&D<t)&&(g=w,t=D,s=o)}return s}function hA(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=Be(A,e,n),g=[];for(let t=0;t<B.length;t++){let s=B[t];if(s.end-s.start>=3){g.push([s.start,s.end,s.cls]);continue}let P=t>0?B[t-1]:null,w=t<B.length-1?B[t+1]:null,D=P!==null&&P.end-P.start>=3,C=w!==null&&w.end-w.start>=3,u;if(D&&C){let Q=P.end-P.start;u=w.end-w.start>Q?w.cls:P.cls}else D?u=P.cls:C?u=w.cls:u=r;g.push([s.start,s.end,u])}return g}function ne(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function lA(A,e,n,B){if(A==="digit")return"DIGITS";if(A==="letter"){let f=hA(B,e,n),r=new Map;for(let[s,o,P]of f)r.set(P,(r.get(P)??0)+(o-s));let g=-1,t=-1;for(let[s,o]of r)o>t&&(t=o,g=s);return g>=0?F[g]:null}return null}function IA(A,e,n){let B=e+n;if(B<0||B>=A.length||A[B].type==="space"&&(B+=n,B<0||B>=A.length))return null;let f=A[B];return f.type==="digit"||f.type==="letter"?f:null}function re(A,e,n){let B=IA(A,e,-1),f=IA(A,e,1);if(!B||!f)return!1;let r=lA(B.type,B.start,B.end,n),g=lA(f.type,f.start,f.end,n);return!r||!g||!ne(r)?!1:g==="DIGITS"||g.startsWith("CARD_")||g.startsWith("PFX_")}function te(A,e){let n=A.length,B=new Array(n),f=ee(A);for(let r=0;r<f.length;r++){let g=f[r],{type:t,start:s,end:o}=g;if(t==="digit"){for(let C=s;C<o;C++)B[C]=qA;continue}if(t==="space"){let C=!1;for(let Q=s;Q<o;Q++)if(e[Q]===rA){C=!0;break}let u=C?rA:_;for(let Q=s;Q<o;Q++)B[Q]=u;continue}if(t==="letter"){for(let[C,u,Q]of hA(e,s,o))for(let l=C;l<u;l++)B[l]=Q;continue}let P=r>0?f[r-1].type:null,w=r<f.length-1?f[r+1].type:null,D=_;if(o-s===1){let C=A[s];(C==="."||C===",")&&P==="digit"&&w==="digit"?D=C==="."?ZA:$A:JA.has(C)&&re(f,r,e)?D=rA:D=_}for(let C=s;C<o;C++)B[C]=D}return B}function fe(A,e){let n=Array.from({length:e},(B,f)=>A[f]);for(let B=1;B<e-1;B++)A[B]===0&&(A[B-1]===1||A[B-1]===2)&&A[B+1]===2&&(n[B]=2);return n}function bA(A){return A!==void 0&&A>="0"&&A<="9"}function ge(A,e,n){if(n<=e||!bA(A[n-1]))return n;let B=n;for(;B<A.length&&bA(A[B]);)B++;return B}var se=24;function oe(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=[];for(let t=0;t<B.length;t++){let s=B[t];if(s.end-s.start>=3){r.push(s.cls);continue}let o=t>0?B[t-1]:null,P=t<B.length-1?B[t+1]:null,w=o!==null&&o.end-o.start>=3,D=P!==null&&P.end-P.start>=3;if(w&&D){let C=o.end-o.start,u=P.end-P.start;r.push(u>C?P.cls:o.cls)}else if(w)r.push(o.cls);else if(D)r.push(P.cls);else return null}return new Set(r).size===1?r[0]:null}function we(A,e,n){let B=A.length,f=Array.from({length:B},(r,g)=>A[g]);for(let[r,g]of n){let t=g-r;if(t===0||t>se)continue;let s=!1,o=!0;for(let w=r;w<g;w++)A[w]===1||A[w]===2?s=!0:o=!1;if(!s||o)continue;let P=oe(e,r,g);if(!(P===null||!tA(F[P]))){for(let w=r;w<g;w++)f[w]=2;f[r]=1}}return f}function Pe(A){let e=[],n=0,B=A.length;for(;n<B;)if(y(A[n])==="letter"){let f=n+1;for(;f<B&&y(A[f])==="letter";)f++;e.push([n,f]),n=f}else n++;return e}function tA(A){return fA.some(e=>A.startsWith(e))&&A!=="DIGITS"}function De(A,e,n,B,f){let r=Array.from({length:B.length},(g,t)=>B[t]);for(let[g,t]of f){if(t<=e||g>=n)continue;let s=Math.max(g,e),o=Math.min(t,n),P=g>=e&&t<=n;if(P){for(let w=g;w<t;w++)if(!tA(F[r[w]])){P=!1;break}}if(P){t-g===1&&F[r[g]].startsWith("UNIT_")&&_A.has(A[g])&&t<A.length&&y(A[t])==="letter"&&(r[g]=W);continue}for(let w=s;w<o;w++)tA(F[r[w]])&&(r[w]=W)}return r}function Ce(A,e,n,B){let f=Array.from({length:B.length},(t,s)=>B[s]),r=A.slice(e,n);iA.lastIndex=0;let g;for(;g=iA.exec(r);)for(let t=e+g.index;t<e+g.index+g[0].length;t++)f[t]=W;return f}function HA(A,e,n,B){let f=A.length,r=Pe(A),g=fe(e,f);g=we(g,n,r);let t=[],s=null;for(let w=0;w<f;w++){let D=g[w];D===1?(s!==null&&t.push([s,w]),s=w):D===2||s!==null&&(t.push([s,w]),s=null)}s!==null&&t.push([s,f]);for(let w=0;w<t.length;w++)t[w]=[t[w][0],ge(A,t[w][0],t[w][1])];let o=Array.from({length:f},(w,D)=>n[D]),P=[];for(let[w,D]of t){let C=A.slice(w,D),u=Array.from({length:D-w},(c,a)=>o[w+a]),Q=te(C,u);for(let c=w;c<D;c++)o[c]=Q[c-w];o=De(A,w,D,o,r),o=Ce(A,w,D,o);let l=w,I=[];for(let c=w+1;c<=D;c++)(c===D||o[c]!==o[l])&&(I.push([o[l],l,c]),l=c);let v=0,b=I.length;for(;v<b&&EA.has(F[I[v][0]]);)v++;for(;b>v&&EA.has(F[I[b-1][0]]);)b--;let i=I.slice(v,b);if(i.length===0)continue;let d=i[0][1],L=i[i.length-1][2];if(!i.some(([c])=>WA(F[c])))continue;let E=null;if(B){let c=[];for(let a=d;a<L;a++)c.push(Math.max(...B[a]));if(E=c.length?c.reduce((a,H)=>a+H,0)/c.length:0,E<.5)continue}P.push({start:d,end:L,text:A.slice(d,L),tokens:i.map(([c,a,H])=>[c,A.slice(a,H)]),confidence:E})}return P}function ve(A){let e=[],n="",B=!1,f=()=>{if(B){let r=n.replace(/,/g,""),g=parseFloat(r);e.push(["NUM",Number.isNaN(g)?0:g])}n="",B=!1};for(let[r,g]of A)r!=="SEP"&&(r==="DIGITS"||r==="DOT"||r==="COMMA"?(n+=g,B=!0):(f(),e.push([r,g])));return f(),e}function Qe(A,e){if(e!==null){let n=nA[e];if(n===void 0)return A!==null?A:1;if(A!==null&&n.op){if(n.op==="sub25")return A-.25;if(n.op==="add25")return A+.25;if(n.op==="add5")return A+.5}return n.standalone}return A!==null?A:1}function ue(A){let e=ve(A),n=0,B=null,f=null,r=null,g=null;function t(s){let o=Qe(r,g);if(s===null)n+=o*1;else{let P=J(s);B!==null&&P>B?n=n*P:n=n+o*P,B=P,(f===null||P>J(f))&&(f=s)}r=null,g=null}for(let[s,o]of e)if(s==="NUM")r!==null&&t(null),r=o;else if(uA(s)){r!==null&&t(null);try{r=aA(s)}catch{}}else if(QA(s))g!==null&&t(null),g=s;else if(cA(s))t(s);else continue;return(r!==null||g!==null)&&t(null),[n,f]}function m(A){let e=Math.round(A),n=Math.max(1e-6,Math.abs(A)*1e-9);return Math.abs(A-e)<n?e:Math.round(A*1e6)/1e6}function ce(A){let e=[],n=0;for(;n<A.length;){let[B,f]=A[n];if(B.startsWith("PFX_")){let r=f,g=n+1;for(;;){let t=g;if(t<A.length&&A[t][0]==="SEP"&&t++,t<A.length&&A[t][0]===B){for(let s=g;s<=t;s++)r+=A[s][1];g=t+1;continue}break}e.push([B,r]),n=g}else e.push(A[n]),n++}return e}function dA(A){try{let e=A.map(D=>D[0]),n=ce(A),B=[[]];for(let[D,C]of n){if(D==="RANGE"){B.length<2&&B.push([]);continue}B[B.length-1].push([D,C])}let f=B.filter(D=>D.length>0).map(D=>ue(D));if(f.length===0)return{value:0,range:null,unit:null,classes:e,currency:null};if(f.length===1){let[D,C]=f[0];return{value:m(D),range:null,unit:C?K[C]??null:null,classes:e,currency:null}}let[r,g]=f[0],[t,s]=f[1];if(g!==null&&s!==null&&r>t)return{value:m(r+t),range:null,unit:K[g]??null,classes:e,currency:null};let o;g===null&&s!==null?(r=r*J(s),o=s):o=g!==null?g:s;let[P,w]=r<=t?[r,t]:[t,r];return{value:m(P),range:[m(P),m(w)],unit:o?K[o]??null:null,classes:e,currency:null}}catch{return{value:0,range:null,unit:null,classes:A.map(e=>e[0]),currency:null}}}function ae(A){let e=!1;for(let[n]of A)if(n==="DIGITS")e=!0;else if(n.startsWith("UNIT_")||n.startsWith("PFX_")||n.startsWith("CARD_"))return!1;return e}function MA(A){if(!ae(A))return!1;let e=0,n=!1;for(let[B,f]of A)B==="DIGITS"?e+=f.length:B==="COMMA"&&(n=!0);return e<=4&&!n||e>=10}function FA(...A){let e=(B,f)=>f.length-B.length,n=B=>[...new Set(B.flat())].sort(e);return{currency_markers_before:n(A.map(B=>B.currency_markers_before??[])),currency_words_after:n(A.map(B=>B.currency_words_after??[]))}}function LA(A,e,n,B){let f=A.slice(Math.max(0,e-8),e),r=A.slice(n,n+8),t=f.replace(/\s+$/,"").toLowerCase(),s=[...B.currency_markers_before??[]].sort((D,C)=>C.length-D.length);for(let D of s){let C=D.replace(/\.+$/,"").toLowerCase();if(t.endsWith(D.toLowerCase())||t.endsWith(C))return"INR"}let P=r.replace(/^\s+/,"").toLowerCase(),w=[...B.currency_words_after??[]].sort((D,C)=>C.length-D.length);for(let D of w){let C=D.toLowerCase();if(P.startsWith(C))return"INR"}return null}var RA={currency_markers_before:["\u20B9","Rs","Rs.","rs","INR","Re"],currency_words_after:["rupaye","rupay","rupees","rupiya","rupya","/-"]};var xA={currency_markers_before:["\u20B9","\u0930\u0941","\u0930\u0941.","Rs","Rs.","INR"],currency_words_after:["\u0930\u0941\u092A\u092F\u0947","\u0930\u0941\u092A\u090F","\u0930\u0942\u092A\u092F\u0947","\u0930\u0941\u092A\u092F\u093E","/-"]};var Ee=`
|
|
2
2
|
struct Params { batch: u32, length: u32, embedDim: u32, vocab: u32, stride: u32 };
|
|
3
3
|
@group(0) @binding(0) var<uniform> p: Params;
|
|
4
4
|
@group(0) @binding(1) var<storage, read> charIds: array<i32>;
|
|
@@ -76,4 +76,4 @@ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
|
|
|
76
76
|
}
|
|
77
77
|
out[(b * p.length + t) * p.nOut + o] = acc;
|
|
78
78
|
}
|
|
79
|
-
`;function sA(){return typeof navigator<"u"&&!!navigator.gpu}var V=null;function gA(){return V||(V=(async()=>{if(!sA())return!1;try{return await navigator.gpu.requestAdapter()!==null}catch{return!1}})(),V)}var q=class{weights;state=null;constructor(e){this.weights=e}async init(){if(this.state)return this.state;if(!sA())throw new Error("WebGPU is not available in this environment");let e=await navigator.gpu.requestAdapter();if(!e)throw new Error("No WebGPU adapter available");let n=await e.requestDevice(),B=(t,g)=>{let o=n.createBuffer({size:Math.max(4,t.byteLength),usage:g,mappedAtCreation:!0});return new Float32Array(o.getMappedRange()).set(t),o.unmap(),o},f=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,r=this.weights,s=r.conv.map(t=>({w:B(t.w.data,f),b:B(t.b,f)}));return this.state={device:n,embedModule:n.createShaderModule({code:Ee}),convModule:n.createShaderModule({code:ie}),headModule:n.createShaderModule({code:le}),embedBuf:B(r.embed.data,f),convBufs:s,bioBuf:{w:B(r.bio.w.data,f),b:B(r.bio.b,f)},clsBuf:{w:B(r.cls.w.data,f),b:B(r.cls.b,f)}},this.state}async run(e,n,B){let f=await this.init(),{device:r}=f,s=this.weights,t=s.embed.shape[1],g=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC,o=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,P=r.createBuffer({size:e.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});new Int32Array(P.getMappedRange()).set(e),P.unmap();let w=E=>{let c=r.createBuffer({size:E.byteLength,usage:o,mappedAtCreation:!0});return new Uint32Array(c.getMappedRange()).set(E),c.unmap(),c},C=r.limits?.maxComputeWorkgroupsPerDimension??65535,D=E=>{let c=Math.max(1,Math.ceil(E/64)),a=Math.min(c,C),h=Math.ceil(c/a);return{x:a,y:h,stride:a*64}},u=(E,c,a)=>{let h=r.createBindGroup({layout:E.getBindGroupLayout(0),entries:c}),F=r.createCommandEncoder(),b=F.beginComputePass();b.setPipeline(E),b.setBindGroup(0,h),b.dispatchWorkgroups(a.x,a.y),b.end(),r.queue.submit([F.finish()])},Q=r.createBuffer({size:n*t*B*4,usage:g});{let E=D(n*B),c=w(new Uint32Array([n,B,t,s.embed.shape[0],E.stride])),a=r.createComputePipeline({layout:"auto",compute:{module:f.embedModule,entryPoint:"main"}});u(a,[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:P}},{binding:2,resource:{buffer:f.embedBuf}},{binding:3,resource:{buffer:Q}}],E)}let l=t,I=s.conv,v=r.createComputePipeline({layout:"auto",compute:{module:f.convModule,entryPoint:"main"}});for(let E=0;E<I.length;E++){let c=I[E],[a,,h]=c.w.shape,F=c.dilation,b=c.padding,G=r.createBuffer({size:n*a*B*4,usage:g}),Y=D(n*a*B),GA=w(new Uint32Array([n,B,l,a,h,b,F,1,c.residual?1:0,Y.stride]));u(v,[{binding:0,resource:{buffer:GA}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:f.convBufs[E].w}},{binding:3,resource:{buffer:f.convBufs[E].b}},{binding:4,resource:{buffer:G}}],Y),Q=G,l=a}let H=r.createComputePipeline({layout:"auto",compute:{module:f.headModule,entryPoint:"main"}}),i=async(E,c)=>{let a=r.createBuffer({size:n*B*c*4,usage:g}),h=D(n*B*c),F=w(new Uint32Array([n,B,l,c,h.stride]));u(H,[{binding:0,resource:{buffer:F}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:E.w}},{binding:3,resource:{buffer:E.b}},{binding:4,resource:{buffer:a}}],h);let b=r.createBuffer({size:n*B*c*4,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),G=r.createCommandEncoder();G.copyBufferToBuffer(a,0,b,0,n*B*c*4),r.queue.submit([G.finish()]),await b.mapAsync(GPUMapMode.READ);let Y=new Float32Array(b.getMappedRange().slice(0));return b.unmap(),Y},d=await i(f.bioBuf,s.bio.w.shape[0]),M=await i(f.clsBuf,s.cls.w.shape[0]);return{bio:d,cls:M}}};var RA={version:2,quantized:"int8_symmetric_per_tensor",charset:["<pad>","<unk>"," ","!",'"',"#","%","'","(",")","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":","=","?","@","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","}","~","\u0901","\u0902","\u0903","\u0905","\u0906","\u0907","\u0908","\u0909","\u090A","\u090F","\u0911","\u0913","\u0914","\u0915","\u0916","\u0917","\u0918","\u091A","\u091B","\u091C","\u091D","\u091F","\u0920","\u0921","\u0922","\u0923","\u0924","\u0925","\u0926","\u0927","\u0928","\u092A","\u092B","\u092C","\u092D","\u092E","\u092F","\u0930","\u0932","\u0935","\u0936","\u0937","\u0938","\u0939","\u093C","\u093E","\u093F","\u0940","\u0941","\u0942","\u0947","\u0948","\u0949","\u094B","\u094C","\u094D","\u20B9"],classes:["O","SEP","RANGE","DIGITS","DOT","COMMA","PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5","CARD_6","CARD_7","CARD_8","CARD_9","CARD_10","CARD_11","CARD_12","CARD_13","CARD_14","CARD_15","CARD_16","CARD_17","CARD_18","CARD_19","CARD_20","CARD_21","CARD_22","CARD_23","CARD_24","CARD_25","CARD_26","CARD_27","CARD_28","CARD_29","CARD_30","CARD_31","CARD_32","CARD_33","CARD_34","CARD_35","CARD_36","CARD_37","CARD_38","CARD_39","CARD_40","CARD_41","CARD_42","CARD_43","CARD_44","CARD_45","CARD_46","CARD_47","CARD_48","CARD_49","CARD_50","CARD_51","CARD_52","CARD_53","CARD_54","CARD_55","CARD_56","CARD_57","CARD_58","CARD_59","CARD_60","CARD_61","CARD_62","CARD_63","CARD_64","CARD_65","CARD_66","CARD_67","CARD_68","CARD_69","CARD_70","CARD_71","CARD_72","CARD_73","CARD_74","CARD_75","CARD_76","CARD_77","CARD_78","CARD_79","CARD_80","CARD_81","CARD_82","CARD_83","CARD_84","CARD_85","CARD_86","CARD_87","CARD_88","CARD_89","CARD_90","CARD_91","CARD_92","CARD_93","CARD_94","CARD_95","CARD_96","CARD_97","CARD_98","CARD_99","UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],embed_dim:16,channels:48,embed:{shape:[115,16],scale:.029206380248069763,data_b64:"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"},conv:[{k:5,dilation:1,residual:!1,w:{shape:[48,16,5],scale:.005528415087610483,data_b64:"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"},b:[-.42246,-.0030015,-.39637,-.5094,-.31567,-.0066605,-.2116,-.14381,-.45926,.032123,.1051,-.068757,-.176,-.24408,-.22495,.14888,-.34372,-.015254,-.075969,-.38499,-.55512,-.42426,-.53993,.33177,-.20909,-.010612,-.25817,-.36655,-.6817,-.27189,-.46838,-.20614,.24502,.23912,-.50761,-.14509,-.035654,-.67123,-.2002,-.26759,-.13114,-.07664,-.34302,-.3735,-.44522,-.18075,-.079652,-.066312]},{k:3,dilation:1,residual:!0,w:{shape:[48,48,3],scale:.02171662636101246,data_b64:"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"},b:[.10809,.26585,.094204,.14064,-.0069209,.14709,.023642,.17102,.12289,-.1588,.0013055,.11863,.42029,.21744,.085736,-.042563,.014954,-.16326,-.1126,-.0021493,-.1829,.13248,.12985,.64143,.41735,.43393,-.014888,-.21078,-.12343,.10631,.17523,-.34975,.20128,.043467,.29196,-.066172,.40999,.11899,.089091,-.099698,.46059,-.13938,.18717,.065401,.11365,.23228,.71649,1.0244]},{k:3,dilation:2,residual:!0,w:{shape:[48,48,3],scale:.011372479610145092,data_b64:"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"},b:[-.045669,.365,.16298,.056926,.061365,.17121,.31628,.60688,.23114,.09403,-.40148,.18148,.75038,.50584,.15352,.29074,.44291,.12645,-.18931,.47873,-.38551,.28317,.55262,.39227,.38131,1.2725,-.064018,-.040631,-.09375,.14131,.44183,-.048867,-.17769,-.10518,.14749,-.22889,.65898,-.10786,.25988,.064485,.74896,.57062,.44417,.27367,.70502,.078341,.99578,.91641]},{k:3,dilation:4,residual:!0,w:{shape:[48,48,3],scale:.016013650223612785,data_b64:"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"},b:[.12815,.87146,.33192,.44547,-.007632,.33449,.31869,.91658,.61102,-.0034602,.26675,.65376,.12435,.4758,1.1636,.0035353,1.2932,.70309,.076384,.048984,-.051782,.23859,.012983,-.050207,-.0084905,1.0506,-.22662,.24729,.0080632,.80607,.092929,.38957,-.21694,.15222,.59882,-.020806,.97913,.055986,.054323,.3747,1.1563,.82255,1.5244,.31746,.042843,-.28672,1.1229,1.0624]},{k:3,dilation:8,residual:!0,w:{shape:[48,48,3],scale:.014567811042070389,data_b64:"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"},b:[-.10209,-.4862,-1.2464,-1.1972,-.10959,.017397,1.2648,.77302,.52286,.84262,-.029006,1.8643,.13893,1.5804,.15474,-.31713,1.4025,-1.4027,.18632,.012404,-.076322,1.1977,1.2403,-.041636,.28303,1.1963,-1.6589,.0090801,-.069721,.38039,-.11284,1.349,-2.4128,.26607,.66346,.65388,.017525,-.3425,-.0726,.3579,.22987,.2369,-.15815,.018548,.89442,.070234,2.0972,-1.0126]}],bio:{w:{shape:[3,48],scale:.004168502055108547,data_b64:"7/sUIBkCDfPuy/0QBkbd9yMICfLwBPDvEfo37vHv+PuB9g6gDvn9+kHvB+7vzgBSJDsbaN4CDfLwxCAVB9X++AwdCt/1Btv+E8TI2fjw2/cC+g4ND/n2/OPvCPDu2wEqKOLO7e8CDfPwSwEOCL8I9/zkCh0XBu0bEyXrGADxLPti+w4sD/n5+7bwB+8WNgGo"},b:[.18046,-.7663,.072858]},cls:{w:{shape:[120,48],scale:.00567670026794076,data_b64:"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"},b:[2.0027,1.2945,-.28072,.72027,-1.0331,-1.6638,-.21735,-.33161,.086345,.29916,-.3261,.078574,.90926,-.83461,-.84115,-.14665,-.044583,-.19085,-.13869,-.49243,-.88449,-.34868,-.53668,.09578,-.53226,-.35943,-.89781,-1.058,-.73711,.094275,-.77523,-.35261,.21741,-.54233,-.3885,-.46544,-.68879,-.67397,-.68836,-.77007,-.76595,-.36312,.41362,-.58424,-.8435,-.67918,-.70729,-.65979,-.77047,-.37647,-.49488,-63573e-8,-.5059,-.98657,-.52866,-.51039,-.17223,-.27703,.16426,-.05408,-.22805,.055086,-.31279,-.3578,-.98577,-.075522,-.5297,-.32323,-.058951,-.59986,-.063719,-.49272,-.49078,.38117,-.28573,-.33333,-.19816,-.64504,-.40924,-.19423,-.30237,-.27751,-.21272,-.32228,-.26795,-.53006,.055159,-.45349,-.11935,-.46747,-.57663,-.23346,.39296,-.80921,-.67229,-.56665,-.5278,-.84155,-.27958,-.94085,-.59683,-.74172,-.57104,-.29101,-.54431,-.79465,-.13767,-.62478,.014713,-.50479,-.36415,-.42477,.77882,.7003,.8939,.0061365,.66724,.0084922,-.13957,-.83726]}};var $=class{weights;charToId;gpu=null;defaultBackend;scratch;idsScratch=new Int32Array(O);bioIdsScratch=new Int32Array(128);clsIdsScratch=new Int32Array(128);bioProbsScratch=Array.from({length:128},()=>new Float32Array(3));constructor(e={}){this.weights=PA(e.weights??RA),this.charToId=CA(this.weights.charset),this.defaultBackend=e.backend??"cpu",this.scratch=new j(this.weights)}parse(e,n={}){if(typeof e!="string")return[];let B=e;e=k(e);let f=B.length===e.length,r,s=eA(e.length);if(s.length===1&&s[0].length===e.length){let t=R(e.length),g=x(e,this.charToId,this.idsScratch,t),o=S(this.weights,g,this.scratch);r=this.decodeForward(e,o,0,e.length)}else{let t=[],g=new Set;for(let o of s){let P=e.slice(o.offset,o.offset+o.length),w=R(P.length),C=x(P,this.charToId,this.idsScratch,w),D=S(this.weights,C,this.scratch),u=this.decodeForward(P,D,o.offset,P.length);for(let Q of u){let l=`${Q.start}:${Q.end}`;g.has(l)||(g.add(l),t.push(Q))}}t.sort((o,P)=>o.start-P.start),r=t}if(f)for(let t of r)t.span=B.slice(t.start,t.end);return r}decodeForward(e,n,B,f=n.length){let r=f,s=r<=128,t=s?this.bioIdsScratch:new Int32Array(r),g=s?this.clsIdsScratch:new Int32Array(r),o=s?this.bioProbsScratch:Array.from({length:r},()=>new Float32Array(3));for(let C=0;C<r;C++)t[C]=p(n.bioLogits,C*3,3),g[C]=p(n.clsLogits,C*n.nCls,n.nCls),BA(n.bioLogits,C*3,3,o[C]);let P=hA(e,t.subarray(0,r),g.subarray(0,r),o),w=[];for(let C of P){let D=C.tokens.map(([l,I])=>[L[l],I]),u=MA(e,C.start,C.end,He);if(FA(D)&&u===null)continue;let Q=dA(D);w.push({span:C.text,start:C.start+B,end:C.end+B,value:Q.value,...Q.range?{range:Q.range}:{},unit:Q.unit??null,currency:u,confidence:C.confidence??0,classes:Q.classes})}return w}inspect(e){let n=performance.now();typeof e!="string"&&(e="");let B=k(e),f=eA(B.length),r=new Array(B.length),s=new Array(B.length).fill(!1);for(let o of f){let P=B.slice(o.offset,o.offset+o.length),w=R(P.length),C=x(P,this.charToId,this.idsScratch,w),D=S(this.weights,C,this.scratch);for(let u=0;u<P.length;u++){let Q=o.offset+u;if(s[Q])continue;s[Q]=!0;let l=p(D.bioLogits,u*3,3),I=new Float32Array(3);BA(D.bioLogits,u*3,3,I);let v=p(D.clsLogits,u*D.nCls,D.nCls);r[Q]={ch:P[u],bio:l,bioProb:[I[0],I[1],I[2]],cls:L[v],clsId:v}}}let t=this.parse(e),g=performance.now()-n;return{text:B,chars:r,spans:t,ms:g}}modelInfo(){let e=this.weights,n=e.embed.data.length;for(let f of e.conv)n+=f.w.data.length+f.b.length;n+=e.bio.w.data.length+e.bio.b.length,n+=e.cls.w.data.length+e.cls.b.length;let B=e.conv.length?Math.max(...e.conv.map(f=>f.w.shape[0])):e.embed.shape[1];return{version:e.version,params:n,channels:B,embedDim:e.embed.shape[1],vocab:e.embed.shape[0],classes:e.classes.length,layers:e.conv.map(f=>({k:f.k,dilation:f.dilation,residual:f.residual}))}}async parseBatch(e,n={}){e=e.map(P=>typeof P=="string"?P:"");let B=n.backend??this.defaultBackend;if(!(B==="webgpu"||B==="auto"&&e.length>=32&&await gA()))return e.map(P=>this.parse(P,{backend:"cpu"}));let r=e,s=e.map(k),t=new Array(e.length),g=[],o=[];for(let P=0;P<s.length;P++)s[P].length<=128?g.push(P):o.push(P);for(let P of o)t[P]=this.parse(r[P],{backend:"cpu"});if(g.length>0){this.gpu||(this.gpu=new q(this.weights));let P=Math.max(...g.map(v=>s[v].length),1),w=R(P),C=g.length,D=new Int32Array(C*w),u=this.charToId.get("<pad>")??0;D.fill(u);for(let v=0;v<C;v++){let H=s[g[v]],i=x(H,this.charToId);D.set(i,v*w)}let{bio:Q,cls:l}=await this.gpu.run(D,C,w),I=this.weights.cls.w.shape[0];for(let v=0;v<C;v++){let H=g[v],i=s[H],d=r[H],M=d.length===i.length,E=i.length,c=new Float32Array(E*3),a=new Float32Array(E*I);for(let b=0;b<E;b++)c.set(Q.subarray((v*w+b)*3,(v*w+b)*3+3),b*3),a.set(l.subarray((v*w+b)*I,(v*w+b)*I+I),b*I);let h={bioLogits:c,clsLogits:a,length:E,nCls:I},F=this.decodeForward(i,h,0,E);if(M)for(let b of F)b.span=d.slice(b.start,b.end);t[H]=F}}return t}},oA=null;function AA(){return oA||(oA=new $),oA}function Se(A,e={}){return AA().parse(A,e)}function Je(A,e={}){return AA().parseBatch(A,e)}function Ke(A){return AA().inspect(A)}function _e(){return AA().modelInfo()}function We(A={}){return new $(A)}var He=LA(OA,UA);export{L as CLASSES,$ as Parser,We as createParser,Ke as inspect,sA as isWebGPUAvailable,_e as modelInfo,k as normalizeText,Se as parse,Je as parseBatch,gA as probeWebGPU};
|
|
79
|
+
`;function gA(){return typeof navigator<"u"&&!!navigator.gpu}var V=null;function sA(){return V||(V=(async()=>{if(!gA())return!1;try{return await navigator.gpu.requestAdapter()!==null}catch{return!1}})(),V)}var q=class{weights;state=null;constructor(e){this.weights=e}async init(){if(this.state)return this.state;if(!gA())throw new Error("WebGPU is not available in this environment");let e=await navigator.gpu.requestAdapter();if(!e)throw new Error("No WebGPU adapter available");let n=await e.requestDevice(),B=(t,s)=>{let o=n.createBuffer({size:Math.max(4,t.byteLength),usage:s,mappedAtCreation:!0});return new Float32Array(o.getMappedRange()).set(t),o.unmap(),o},f=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,r=this.weights,g=r.conv.map(t=>({w:B(t.w.data,f),b:B(t.b,f)}));return this.state={device:n,embedModule:n.createShaderModule({code:Ee}),convModule:n.createShaderModule({code:ie}),headModule:n.createShaderModule({code:le}),embedBuf:B(r.embed.data,f),convBufs:g,bioBuf:{w:B(r.bio.w.data,f),b:B(r.bio.b,f)},clsBuf:{w:B(r.cls.w.data,f),b:B(r.cls.b,f)}},this.state}async run(e,n,B){let f=await this.init(),{device:r}=f,g=this.weights,t=g.embed.shape[1],s=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC,o=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,P=r.createBuffer({size:e.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});new Int32Array(P.getMappedRange()).set(e),P.unmap();let w=E=>{let c=r.createBuffer({size:E.byteLength,usage:o,mappedAtCreation:!0});return new Uint32Array(c.getMappedRange()).set(E),c.unmap(),c},D=r.limits?.maxComputeWorkgroupsPerDimension??65535,C=E=>{let c=Math.max(1,Math.ceil(E/64)),a=Math.min(c,D),H=Math.ceil(c/a);return{x:a,y:H,stride:a*64}},u=(E,c,a)=>{let H=r.createBindGroup({layout:E.getBindGroupLayout(0),entries:c}),M=r.createCommandEncoder(),h=M.beginComputePass();h.setPipeline(E),h.setBindGroup(0,H),h.dispatchWorkgroups(a.x,a.y),h.end(),r.queue.submit([M.finish()])},Q=r.createBuffer({size:n*t*B*4,usage:s});{let E=C(n*B),c=w(new Uint32Array([n,B,t,g.embed.shape[0],E.stride])),a=r.createComputePipeline({layout:"auto",compute:{module:f.embedModule,entryPoint:"main"}});u(a,[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:P}},{binding:2,resource:{buffer:f.embedBuf}},{binding:3,resource:{buffer:Q}}],E)}let l=t,I=g.conv,v=r.createComputePipeline({layout:"auto",compute:{module:f.convModule,entryPoint:"main"}});for(let E=0;E<I.length;E++){let c=I[E],[a,,H]=c.w.shape,M=c.dilation,h=c.padding,z=r.createBuffer({size:n*a*B*4,usage:s}),Y=C(n*a*B),zA=w(new Uint32Array([n,B,l,a,H,h,M,1,c.residual?1:0,Y.stride]));u(v,[{binding:0,resource:{buffer:zA}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:f.convBufs[E].w}},{binding:3,resource:{buffer:f.convBufs[E].b}},{binding:4,resource:{buffer:z}}],Y),Q=z,l=a}let b=r.createComputePipeline({layout:"auto",compute:{module:f.headModule,entryPoint:"main"}}),i=async(E,c)=>{let a=r.createBuffer({size:n*B*c*4,usage:s}),H=C(n*B*c),M=w(new Uint32Array([n,B,l,c,H.stride]));u(b,[{binding:0,resource:{buffer:M}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:E.w}},{binding:3,resource:{buffer:E.b}},{binding:4,resource:{buffer:a}}],H);let h=r.createBuffer({size:n*B*c*4,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),z=r.createCommandEncoder();z.copyBufferToBuffer(a,0,h,0,n*B*c*4),r.queue.submit([z.finish()]),await h.mapAsync(GPUMapMode.READ);let Y=new Float32Array(h.getMappedRange().slice(0));return h.unmap(),Y},d=await i(f.bioBuf,g.bio.w.shape[0]),L=await i(f.clsBuf,g.cls.w.shape[0]);return{bio:d,cls:L}}};var UA={version:2,quantized:"int8_symmetric_per_tensor",charset:["<pad>","<unk>"," ","!",'"',"#","%","'","(",")","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":","=","?","@","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","}","~","\u0901","\u0902","\u0903","\u0905","\u0906","\u0907","\u0908","\u0909","\u090A","\u090F","\u0911","\u0913","\u0914","\u0915","\u0916","\u0917","\u0918","\u091A","\u091B","\u091C","\u091D","\u091F","\u0920","\u0921","\u0922","\u0923","\u0924","\u0925","\u0926","\u0927","\u0928","\u092A","\u092B","\u092C","\u092D","\u092E","\u092F","\u0930","\u0932","\u0935","\u0936","\u0937","\u0938","\u0939","\u093C","\u093E","\u093F","\u0940","\u0941","\u0942","\u0947","\u0948","\u0949","\u094B","\u094C","\u094D","\u20B9"],classes:["O","SEP","RANGE","DIGITS","DOT","COMMA","PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5","CARD_6","CARD_7","CARD_8","CARD_9","CARD_10","CARD_11","CARD_12","CARD_13","CARD_14","CARD_15","CARD_16","CARD_17","CARD_18","CARD_19","CARD_20","CARD_21","CARD_22","CARD_23","CARD_24","CARD_25","CARD_26","CARD_27","CARD_28","CARD_29","CARD_30","CARD_31","CARD_32","CARD_33","CARD_34","CARD_35","CARD_36","CARD_37","CARD_38","CARD_39","CARD_40","CARD_41","CARD_42","CARD_43","CARD_44","CARD_45","CARD_46","CARD_47","CARD_48","CARD_49","CARD_50","CARD_51","CARD_52","CARD_53","CARD_54","CARD_55","CARD_56","CARD_57","CARD_58","CARD_59","CARD_60","CARD_61","CARD_62","CARD_63","CARD_64","CARD_65","CARD_66","CARD_67","CARD_68","CARD_69","CARD_70","CARD_71","CARD_72","CARD_73","CARD_74","CARD_75","CARD_76","CARD_77","CARD_78","CARD_79","CARD_80","CARD_81","CARD_82","CARD_83","CARD_84","CARD_85","CARD_86","CARD_87","CARD_88","CARD_89","CARD_90","CARD_91","CARD_92","CARD_93","CARD_94","CARD_95","CARD_96","CARD_97","CARD_98","CARD_99","UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],embed_dim:16,channels:48,embed:{shape:[115,16],scale:.031428899616003036,data_b64:"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"},conv:[{k:5,dilation:1,residual:!1,w:{shape:[48,16,5],scale:.006290150806307793,data_b64:"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"},b:[-.17364,-.38739,-.2607,-.45207,-.18537,.080982,-.17033,-.093565,-.14781,97265e-8,-.20138,.12032,-.32839,-.31072,-.077194,.20015,-.21796,-.7154,.010095,-.9235,-.26263,.13311,-.10266,-.55403,-.25231,-.6246,-.60348,31976e-8,-.63929,-.65831,.041219,-.36931,-.15309,-.059742,-.37661,-.37382,-.38717,-.27458,-.14118,.0038513,-.11354,.014295,-.33004,-.37157,.31551,-.65493,.013061,-.27978]},{k:3,dilation:1,residual:!0,w:{shape:[48,48,3],scale:.01307241152971983,data_b64:"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"},b:[.12728,.23057,-.049862,-.12345,.051526,.16247,.038686,.31777,-5044e-7,.45052,.2731,-.034255,.21069,.33912,.37254,.35973,-.03793,.49118,.20192,.23636,.074086,-.096358,.044678,.088321,.012345,.099132,.1955,.041173,-.11149,-.076147,-.11371,.22511,.059769,.059321,-.065647,.48298,-.17765,.29159,-.28504,.24442,.21738,.17888,-.18307,.052557,.15735,-.38273,-.15942,.015911]},{k:3,dilation:2,residual:!0,w:{shape:[48,48,3],scale:.012118758633732796,data_b64:"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"},b:[.42526,-.018646,-.046902,.085615,-.097236,.043131,.26146,.52447,-.15482,.89498,.85283,-.070978,.9454,.34617,.5114,.49209,.021658,.7805,.90902,.58875,-.18753,.24967,-.24721,-.1591,-.18904,-.1032,-.058184,.71993,.44409,.20453,.12519,.26645,.032874,-.16234,.52653,1.2787,.1312,.79518,-.26286,.88507,.0070287,.38067,.10993,.39889,-.023762,.38479,-.38521,-.13663]},{k:3,dilation:4,residual:!0,w:{shape:[48,48,3],scale:.02247241884469986,data_b64:"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"},b:[.25465,.30112,22528e-8,.25806,-.3583,-.17637,.3427,.72967,.010093,.73045,1.2951,-.0064023,.94117,.26018,.34947,.61163,-.16288,2.3975,.67294,.52789,.32498,-1.1242,.1412,.020151,1.2105,-.087648,.32267,.5233,-.056027,-.0055481,1.0103,.96197,-.13409,.60131,.60142,1.9709,.11829,1.0262,1.8891,.27538,-.073567,.64638,.23707,-.059397,-.15365,1.5563,-.036813,.42758]},{k:3,dilation:8,residual:!0,w:{shape:[48,48,3],scale:.01787199079990387,data_b64:"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"},b:[.91862,.65436,-.13312,.65764,.92847,-.037449,.013942,1.5821,.81311,.11236,1.6626,.66674,-.11374,.40245,.38364,.041558,-2.1116,.73693,1.5589,.16456,.12314,.24958,.24521,.26361,.013116,.66216,.013609,.39799,-.18088,1.4454,.55458,.02579,.19249,.40514,1.2981,.97078,.063668,.62026,1.1519,.60559,-1.4828,.021215,.29938,.35468,.31701,-.24198,.028639,.29068]}],bio:{w:{shape:[3,48],scale:.004835921339690685,data_b64:"9AkM/gnx+g3/GB3lDff3xqvwNP8DOAP4G6PhBPULBgLz9hcG8BAJBH8FCfoS+/UV9Q8K/hDu+f8BEQjPAfj4FRvK6/8A8An8Hiz8BvnpCAb19hP57RENBf4UCv8V7xgW8wwN/Qzw+tX/FcpA9vn3HmkP3P8A1Qz7BDIHBvf+BwX09//l7xEUBKsaB/0U9RQV"},b:[.36122,-.65132,-.16829]},cls:{w:{shape:[120,48],scale:.006135262083262205,data_b64:"BP0KAP8EBB0EACjuEQsHpo1BPQQEQgL/B4HuA/kNCP4CBw40BQQUBm30CPwAGegB8wkUB+gCENYjAeUQEuoLLFolz/oIz+sFCEjpGfwA3QXlE/QA+/0g8Z3s8Qn2/BL89fUR8P/5/gAX6AAv/hgGKQ72/Pz3/1IF9ffu6vzyCxIM9A4CBAoM/+ny/Qf2CdMGG/sX9vsCCvDeBQIQ6gnyH0Lv0RH+3PUIFEAd/QLTAOr0BwUVAgLxBrnfDwEDAg3/EPYE/wv99REQ8urq5/sK6f34CwANCAsJ9RUM/vgDCO4H/AndAAUMEP0BDvwK/0T9/wYHCPsIChMNCRALCAIH5uEABwQBB///9fL4Cv/3BAP+CwzqDf72AzD4BgH8AggDAfsID/P2DfwtCgcA/PfwEPf0DAcADvcEC+cSFP/WAhj/KRLvDvn/CRX7AvEFExYKBygE/+4YBwcPHPDcBPrt5Brw9uv03RD2DB71FAHX+PIGLwH6A+IMEPoTGP37+x0FDfgAEfMCBfv9CNMTAfj9NyHv9xkE0xcDBw5H/PoL7ub44v4uDQTtAOsUAf0F7uQDA+AJC+sGCwT8+wEEAQsLBh3+6yUG6/wD6Q7iAvje/wb3Bg/pFvoRB+o1DxH8/SHy/h0SCCEDFgIN/vQA9BQKB/z5DAgUAP39AQkK8/QH/QX1AwIDC+7d/Pz5BfMe6/r2C/35BwAQ9gMI4egTAAr4IRb5AAT99g0NAQfs+/8M8/8GJQD9+xnu+fMd6g0G/PYD7Cb+CP0DAQjXEdIZ0AUADyIG6g8A2g/8+z4EAg0g7Rf+1P8bDgnjBtERBQD02gPs+voAFQT4AggS4AP1Av346gTm//sGBQkLAhUSAjQDJfL2CQniGwz4B+4HDPrz/d4K/QAJ9xfz+gsf8SPxAhQf0vv78/UGBfICAAr3Gwfd/fT9FxLqBf0TA/oGEgj3HegBDu/5/vHy+P/40OgK+QcGDBkX+e8Z+gEI7wwZFRYg6/kJDAj0AfoKCe4d+fgKA/AVCvwhMwP98v0H7g37/Q0n9QcB7/P6Cfvu9RkMAAD7AfD9+gzpDf3vF/T6/QP+A+4L/QUQ7ecCBvcG4uUL/B8JHS0P8hUK6v0E+wr4Bh0GBQH+/f4SHQvkCfP/A/fv+jD19wMF9vLrC/j2/fYO/A8mGQb5/+gK8QQHFAEn6QEBAwrtAQ8VAgcGAAb6BQz0AhwpEQDu6//8/Qr8+u39+RMT8w8i+SMM9QH/9gP/APUSA/QO/QL4EgEG/gb1Bwz7+9sbH/4KGfP6EgT65AXw/AAY4Qsb8e358vn99xcXEv0EHQMHAQf0BwkUA/YTCPTz+P36DBUUFvUFDgIY+hLi+for1wf69QT8+f3z+QQB/gjqBAH99AP6Egb/BRP6G/4IBvzx+/7x8fgT+gkJMgX8ASL79wDz9Qj+/fkD7AX5Bff9IfIIEP7hFPfvDAD7BBMIDgkP9gz+IP4B9Akg4QL0APIK9g3x9vwMAhMFGw/2C/79CPkQAwb4/vTvB/cPAyn69BT+BwgfKfkDEQEN6g/nBgQG2wsB8PLs/QIZ+RAGAA3tCgH9CgjuAhPz/v8NFvP6AA30EBMM9QYTCwMAFfX7BQMCBgz59wT6+hEKAAP+8e4A8vr8Av/39e31+QMIAB8L9PMc/gQbHeQIE/P98eYN+P0HKgD4C/QEAQgREfH1BQMnCv3pDf4SBPj7HBcBAQn95QIB+vkLA/Pu/v0F0OgI9CAAIhP//g0S+f0bCPQYDvMgAf72AwkXBA0JCgoJBAwE8dX7ADT6+PoP+AwM8+gAAwkHDhDmAvbw9wIRCvj4/gYKD+0XBgECEgQFDQcLCe0G7Af+/g8DEgEB+gMO9gH3Ae//9Qj7+RH8ABIV+QH/+wX77gYCCgn4AfP7CwsI+/kVBAQKHiL9AQICFPMFCPYN/QIGIAz0AggCAPcEA/j4/wb97gz5BQH6A/Pz+gf2+hr1Ag3/+/vt/PcA/AEGD+0P6vwIGQjy/vT4+voeBf8KHQQM/AcVBQX2+w39/wn9AAfyA/0ED/sQ//f8FvD5LvsJ+hwJHgf4+wEE8PsG9wQLEuXr+hD9AAj6+AD0/wTwBfz2ChQDBP/2/A0HAw0F+/f1Av8F5/wHCR0FAhIH9APz7woHGwQG+wL5E/gAAwkDAg8S/PP5GP0MBwf7CfoKIfkD9PsWBPUEBAv2BRMO/Pns+fwFAPb5BgX8APTyBRTu/w34BP4DAwoLCu4TAvsNDPcMAgIKEwP8BgTzCAUG9u/h9BUBAgMMBPz1DAnjBRH+BAoGBhf8/xIN+vYO+v8GIPMB/AQcDQH3BPgD+PwFB/n7BPXyAvvyAAMMAfsMGxACAwIFAwEEAwUIAPj8//T0Ee8G/xMKFgj9Ag0K9Q7++O8A9RAF9Pv3BAUYDfUEFB32A/gTBf379AcLARIMCv8IGwYC/AoICQbs9/7y+QoVEAHp//TpCBr5BQj69wIH+QT8AQv3/yAEDQsZ+/8WAgEKJ/YD/QcACAL/ABrj+v0K+Pbm//Pt+P4FAAEKBA/5AxX4B/UCAgn8/gcWAQAIBPcDJfgJ/gcOGQT1/f/d/w4GCPMAAvX5CPryCQIBDw3uBhHrDRXy/Q0DAAECDgD7FfcOIP0E9Pv3DP36/w8WAPX6Dfj8HAr3+A/7CAUCA/bp+xHvCRH8Awf8FfoaE+0TAgANJQDoBAD46P/3+vv3ARIE9AP/+gvzDuz////kAQH0DhAACv8DBgIX9AIcC/YMBwEE9/j6AgMOA/35A/n6AgENB/b9Cv0JFQLyCAEKAQ/+DBULDAUN+AHxBfz98xEAAgcOIu7+7vr9AQABABb//hAU+/r4EfYE/Pz9CQb5Fe3yBw31BP0L9/gCAAojGgcEBfoRDwf//PkFAQHy+vvvBAP/+AL3Ewrl8gsDCAvrBPTuCQn5B/cGBQXyExb8+gEOGv8OMAH99wUE/PjzAwsC9/v/CfXqAQvvAwL//AD/DfkI/Rj4CPv2AvsD9wYD9wv0AfwEHPYE+fsFCvr5BQf7ABULEfEIHQj9DP3sDQoG/P0MERbnCgjyA+//9/0P+xT+CAQKIQf0/f4E6//7+Af8+QgKCQASBAfgAQbpAAz/DA8C/Qn8EO8GBgkK+gEFAfcH+gkTDPX38gYFA/zyAAgCAwIFCv7wHPAIFf8VDAX9B/v+ERL9AfMG+v8CFgcOCvoLAPwHDuwC/AENFgT/BgoRAQz5A+/xCPQH9ev79f4NAwLwChgIBQ8M+ffzDfP++wX3DAMCEv738Q4H+Qj/8w4T9AkCBQoK+PH6BQIB8goGEPEI+wT+CB73+wULBvv5JgMHAQMJIfr89/UD/Qf/9QX09f8N/gMD//r5AP8H+wP7Cwnv/AT/CA8N+gX6DQ0QAe8MAf4G+wb5BgsT+/8BA/Ty/gn7Avb7+fXw+P8LAwUKAgIbBxwJCAwDEfUF/vT8EQP1/gEF/fkJBgH+Bvn+AwYXA/wZ//4JBw4UB+/7Cgb+E/zvCgoG/fj+/QADBf4k+wMP9wcQDPP89g7+AAoC9wb2AwUO8P7k+/z+B/YBEATrGPb7EQT5CgEC9gMD/wPy/wz9/QgHEvv69AcO9QAA9wD19/cFDAQFEvQGDf8IIAcDFwUIAgztBfb7AfsHCxMSAhL4CgD/JP0B/f8EAPv2+vz69PISAf4gBPfx+PjoDQ3++fcQBQ/zCP36/vUNBPMFC/ABDQcK8v/u8An86gQF+gIF+gwIAAcHBP0FDQ0bAAYKFwsCAA0QCOEL9wT3EwwLCfwH+QMSAfsC9gj9DAXv/QASAvsNAPruBAH39fgW+wf/9AENBwkP//X/BAD8/Q8C+voIAP8GBP0ICw8PCgP7AQgG/PcM++759wkCCPLxBv8DGRP8BhT/CwsBCvz+BwcKCAgT/f0EG/oHCfz6Awv4/gD6/f8D+wQB+xfm9vT2/gHxAPz+BPoBCRj5DA8HCQIRHv/9FO/+FhT+FBn4BhH77hX/8gboAwwN8wDbAAL1/ggCDfPu/Pn3BxnwDDcDCPoaDwj4HPn95AUAAv8D/gD3BP8R/QUIBwYOBBP5+A7u9Az+9QUK9QoUBQD5+/b0C/gH+/0K/QgM6fHx8wAQ8wMEA/0BBBkZEvnnE/wVBe0I/f8R/BARBBYQEAn4++f39QQW9vj6DfQBCwIIBgsMEgfy+gPv+Q8e9v8U9QX9BwPs+wcEFfrxBwAFBQsBCfgE/RUKDAgUB/4B6///EwYfCQfuAQEK/gz4Fv7m+QUMB/LyAfoMCQL3/w0IBRUA+f/7DPUN9wAHBP7v7/v7CRwB+QQM//wDAgoX/gIe8f0WDez9/P8OABINAAcSBPn6BvsL+fv89AQG/QcQ8f75/v8A+Qf8/ALrABQbCAP2AQT/CwUGDgYFG/8RBP4OAf7+CRIM+fQXBw0CB/kKAQICAv4JDP/4/wsABgQHFALyH/P28wTyDwj89fz7/wv8AQ7yCAkL9vUPIQz++wEF2g3zB/oR7xD49PT6ABr6BxcOFQL2BgAEAwzwFP78CfYXA/n/+wzx9fkQEf8EBf4C6vcNAAb9Fwn6/vYeAfMJAwETHP0MBAP5CwT2/gbwBf8KA/oB9gn6Eg0a7/AKE/4MFf72BRL8/QIA/hDsAgoM/fjw+vvzF/7yDgTvC/gNDQz1CQHwBAUe9RQeDPz7Bfn95wz4DxEa/v/u//EF/wD1EQsYCPz3GfnyAwwLAwAKEQUGCAH3BAX7D/z/DAIRCwQRAgPvBfnx6QgD/hQQ/xQJ9QLoBQzv/v8HAP7lAQD2+gsEDAkACgz++gAiDO7/BPcH+AoDEA8JCQf7+QAP/AH2+P8KAgDu+QDyBwv5EvL4EQgKAfsICv0OAAX3+vob+QwQ//H//wb1Agn4Ag4X/QL+A//hBwAAA/4KDP3xEfUCDQkM/gUH+QkKAxUYAggYCv4CCPX6DgLyBA7+/gr0+w4I/gIBDPr4Cfr5Dfz4/QL1CAP7CfcC+gz2DQAYCwYUBAQQBAvtAgvx6g/w8P78+Q76Axjy9Qfg/P0HBAjkBPsN+vcKBf7xBQsg+w/98P38BwAI/gb3AgsJ9v/0/QIn+v8LCvsKBQb1/fzvCQgC7gUTBBEECwX/Fv8PFhQKB/r+CPsI7AP2AwoJ/Qn3//8V/xPx//0G/gv4+/gE/wcAE/EIDQ4KBPEDBff6+fsCAwEMAwD+DfQBBgb7AxID9w3y8vgA/REDG/f3B/30EgLuGfP2Cfj4Ch70/AkE+wECJg4ADgEIEQ7uDvf/5QH+9B3z/PoEAxUFFwLvFQf0CwXuDALh/ADuBQX7AQMB8gPzBhjwBQL85wf2A/0Y9gL9/v0T+wMAFAsfGPP9BAz1CgwH9ggN+wT8BxYGCP36GvQOHv4QAP4J/fkAAgr1AQwC/RDsAgAD5RDsBgv8//0TAQLiIfrpAvgI+vcAA+/58+8MAvoCBwAH6gH+BQkI/QUK/g72BgUF+P0GB/oDBxT+DwTwHQvs/gr6BgkOBwIKAQoSGOcZBQQJ+wD4Dgb99QP6AgPl/Pn3/v3uBwrwEPz8Dv/0KAkGFxUGC/b7+wYBCgYPFQASAf/55wbyDhoG8hEE9PcB9/npAA3/FPb4//gNCwL4AAISBQQPBvcDBgH3/ff6Fv33FAUE7RPkAv0B3AT29Pj/8RAADBYnBPrnBx4ADhHsBgQZ+gMJBPQHBvkZABQICwEH/f0M/AL/Cv4EBAT5APb4APAHCPgLGwXr8AL+FAT4+BgFAQ79Bu4CGP0IDg74/wEC/gAE9fX1AQoD/w4AAAzz/gz0Bf4EEgQJBfUSBwACHQv4Aw70CwD/Afv1DQQI/wAF/gABFgH4+xAP9gf79f0c+gLx+AwS/f/2/PcM/gX29fH7BgT9BAgECfoKCg79+/YDEwADCO/59wwFBwL+Awca/BAHBvYB+P8aIf/7B/3/AwD4BxL1CAUA7/8AAvgIBvQL/QoH/gTmAgv92gYE9gbz/QgCAg8BCP/zHwAPEQXyBg4LCAj+DQnyBfwI/PYHIAj6DP4E+gj1AvkT7gIC9wEd/A0BAQoGCfz/AgnzEQjx+fnwAAv7BQoGAP79A/oXCecOBfwA3PMIBxQJGhH8APwT+wb+Bf72/P0N//8J+/8DAhbw/QoSBhD99wX///3zFe/7+P//7vT/+wUODgjvAvog+f/4FP4SDgYLB/UAAAYMBxMMEhAHBgf8+/z+Dv8OKQ0ECP8EEwfwB+rv3wcK9Av29Anx/xEKDwre+QH7FQj0//kBBAL3Cfn8BQ/7+fwNGgP5/P4M9A709/0R8Ar18+4D+g7+Dw4JDAvl/RILCBH+8xcL/gICB/D6DAcABPsaDwT/EPkBAgYDAwsHBPoAABMVBvsG//sCAAMCDQLt+gQE+xfy/g/5Bvr7BAb6/P8M/QvvDvT5/fsM9QsAFwwB+/0X/xMACPkrBAIJ/RLsDQkEABD0/QTpBwT7/v4FAAsE+AsGEPwAIBXzCgcT6gn/7xX98w318g0P/PLfBhb4EQbqB/T2AQLuAgMJEQ8G8/4D8wIMDwwQEAro+g0K2QgG8RME9PYX/Q8JCvDpERf+AgPxAhD59wACEQQDBQoACPYF/Pr0BP0B8foF+QTvBgcA/hIFAwwD+/8PCQoB7g8NFg0AAPQBAg37AAz9Ce8I+f0J8gT/AQH56+0ICQkjDQEGCQAI/gQi+PQM/fYhD+/uD/8BAhP7Bw8CBv8M/OkABfYaEusFFfgB/AH/AA8KCAf++Pzt/Ar/+woD//cHDAoLCgP7FvXn/wYEAwn5+QgCBwj09uIHAAH72+b8+hYUEgv1CfYG/gn/A/wK/f4sEfMTDPsIIvQKGRMLAQMH8u8CAQT79RIB/wT84+4ACPv+/AgKBhMN/gsKBfoDBhIU/vnwHwAEBQMJBg73BP4B//sC/wgDBwT5FvoK3wP9+AQTBQb1/wMEAw8FCQTtBgkMCRsKFAj3Bvz++gf4/vr+AQX6B/wdBA/2/voA3f4DAQsVDgwB/BsBBgwF+AkC/u8G+QMF/gsNCvjyBv0D+vkHAgbw+QcUDwjz//n03wADCwgXCA//9PP4/gT//AgrBf0MBPvvHgv+E/n2Dv39AwAH/ggAAwIREQER+QYB3QH2CwgM7BL99v37APgJ6BMQ/g8FBPkRCADhCQ30BfYVA+0PA/P57PcJFCD5/fj97ukN9QT3KRPr//QB/g0DAesVDwcZ8+cLAv/7Bw3/7gbrOAL++wT/Ieoe9ULo5Ab++u8GJQYAEhXV6RsU5PoMAhMZ7AUH8CPZ7xIm/v7z/eUZ+AoG8OYCAfgDEEDv99oCCdA8vfoPb0ka4e8S6/oD/AYO++8ADvP67Akc+P7m280R3f8BER30AAH0ERMI//bvDwIdRgf8HAsEAgb55gT2BQsMB/Xk+/AeAP77Bvnp6+4O9PwBEyACAfz98SHxCfoHBQgE+AP/CSH33BcM5xIP8w0RCfzs7NYCAwkD9Av7It4Q+wf9FhAA3/sKCeP9+Pny5PEOMQcKDwYVFP4B+Q0CBvYWEwTyChb+GAEFEAf+IQjxEPwICg/+GQQWAu0VHfQIDekO5AntHBQO/QT5+v3+6vX4/Ab+9TEIDPzyAgX39QjuBPcEAfkC/fwL+PkD4wgX9vvz1AH78CgG4QD0/xoH5BYDDAXr/hcMGBPlCvUXKeL8/v8KDuoK"},b:[2.0723,1.0607,-.24934,1.0107,-.080326,-1.2843,-.85037,-.32558,.030327,-.018597,-.45833,.23256,.43774,-.02813,-.80853,.19507,-.28852,.22684,-.55874,-.44662,-.83283,-.86144,-.43801,-.299,-.57308,-.15609,-.95885,-.37369,-.33408,-.36452,.13161,.014104,-.10553,-.92234,-.64867,-.5208,-1.1172,-.74943,-.69722,-.93611,-.50387,-.45246,-.57126,-1.1437,-.19268,-.007911,-.9375,-.78199,-.88571,-.78928,-.74557,-.46453,-.55509,-1.452,-.54216,-.056653,-.83677,-.51795,-.99961,-.53138,-.85038,-.41498,-.59241,-.41867,-1.3204,-.20875,-1.0603,-1.3353,-.93781,-.63768,-.28795,-.1241,-.89149,-1.0132,-.39317,-.37804,-.41038,-.5451,-.28891,-.77723,-.51958,-.0060439,-.62825,-.86789,.021334,-.43327,-1.0298,-.90527,-.60219,-.73554,-.53358,-.28367,-.60228,-.98779,-.45318,-.34428,-.70306,-.72602,-.68318,-1.0351,-.19452,-.38778,-.79516,-.22651,-.67388,-.36044,-.51191,-.67856,-.34167,-.37624,-.15197,-.09546,.3639,.33022,1.4654,-.45574,.38083,-1.189,.10367,.2199]}};var $=class{weights;charToId;gpu=null;defaultBackend;scratch;idsScratch=new Int32Array(R);bioIdsScratch=new Int32Array(128);clsIdsScratch=new Int32Array(128);bioProbsScratch=Array.from({length:128},()=>new Float32Array(3));constructor(e={}){this.weights=PA(e.weights??UA),this.charToId=DA(this.weights.charset),this.defaultBackend=e.backend??"cpu",this.scratch=new j(this.weights)}parse(e,n={}){if(typeof e!="string")return[];let B=e;e=k(e);let f=B.length===e.length,r,g=eA(e.length);if(g.length===1&&g[0].length===e.length){let t=U(e.length),s=G(e,this.charToId,this.idsScratch,t),o=S(this.weights,s,this.scratch);r=this.decodeForward(e,o,0,e.length)}else{let t=[],s=new Set;for(let o of g){let P=e.slice(o.offset,o.offset+o.length),w=U(P.length),D=G(P,this.charToId,this.idsScratch,w),C=S(this.weights,D,this.scratch),u=this.decodeForward(P,C,o.offset,P.length);for(let Q of u){let l=`${Q.start}:${Q.end}`;s.has(l)||(s.add(l),t.push(Q))}}t.sort((o,P)=>o.start-P.start),r=t}if(f)for(let t of r)t.span=B.slice(t.start,t.end);return r}decodeForward(e,n,B,f=n.length){let r=f,g=r<=128,t=g?this.bioIdsScratch:new Int32Array(r),s=g?this.clsIdsScratch:new Int32Array(r),o=g?this.bioProbsScratch:Array.from({length:r},()=>new Float32Array(3));for(let D=0;D<r;D++)t[D]=p(n.bioLogits,D*3,3),s[D]=p(n.clsLogits,D*n.nCls,n.nCls),BA(n.bioLogits,D*3,3,o[D]);let P=HA(e,t.subarray(0,r),s.subarray(0,r),o),w=[];for(let D of P){let C=D.tokens.map(([l,I])=>[F[l],I]),u=LA(e,D.start,D.end,be);if(MA(C)&&u===null)continue;let Q=dA(C);w.push({span:D.text,start:D.start+B,end:D.end+B,value:Q.value,...Q.range?{range:Q.range}:{},unit:Q.unit??null,currency:u,confidence:D.confidence??0,classes:Q.classes})}return w}inspect(e){let n=performance.now();typeof e!="string"&&(e="");let B=k(e),f=eA(B.length),r=new Array(B.length),g=new Array(B.length).fill(!1);for(let o of f){let P=B.slice(o.offset,o.offset+o.length),w=U(P.length),D=G(P,this.charToId,this.idsScratch,w),C=S(this.weights,D,this.scratch);for(let u=0;u<P.length;u++){let Q=o.offset+u;if(g[Q])continue;g[Q]=!0;let l=p(C.bioLogits,u*3,3),I=new Float32Array(3);BA(C.bioLogits,u*3,3,I);let v=p(C.clsLogits,u*C.nCls,C.nCls);r[Q]={ch:P[u],bio:l,bioProb:[I[0],I[1],I[2]],cls:F[v],clsId:v}}}let t=this.parse(e),s=performance.now()-n;return{text:B,chars:r,spans:t,ms:s}}modelInfo(){let e=this.weights,n=e.embed.data.length;for(let f of e.conv)n+=f.w.data.length+f.b.length;n+=e.bio.w.data.length+e.bio.b.length,n+=e.cls.w.data.length+e.cls.b.length;let B=e.conv.length?Math.max(...e.conv.map(f=>f.w.shape[0])):e.embed.shape[1];return{version:e.version,params:n,channels:B,embedDim:e.embed.shape[1],vocab:e.embed.shape[0],classes:e.classes.length,layers:e.conv.map(f=>({k:f.k,dilation:f.dilation,residual:f.residual}))}}async parseBatch(e,n={}){e=e.map(P=>typeof P=="string"?P:"");let B=n.backend??this.defaultBackend;if(!(B==="webgpu"||B==="auto"&&e.length>=32&&await sA()))return e.map(P=>this.parse(P,{backend:"cpu"}));let r=e,g=e.map(k),t=new Array(e.length),s=[],o=[];for(let P=0;P<g.length;P++)g[P].length<=128?s.push(P):o.push(P);for(let P of o)t[P]=this.parse(r[P],{backend:"cpu"});if(s.length>0){this.gpu||(this.gpu=new q(this.weights));let P=Math.max(...s.map(v=>g[v].length),1),w=U(P),D=s.length,C=new Int32Array(D*w),u=this.charToId.get("<pad>")??0;C.fill(u);for(let v=0;v<D;v++){let b=g[s[v]],i=G(b,this.charToId);C.set(i,v*w)}let{bio:Q,cls:l}=await this.gpu.run(C,D,w),I=this.weights.cls.w.shape[0];for(let v=0;v<D;v++){let b=s[v],i=g[b],d=r[b],L=d.length===i.length,E=i.length,c=new Float32Array(E*3),a=new Float32Array(E*I);for(let h=0;h<E;h++)c.set(Q.subarray((v*w+h)*3,(v*w+h)*3+3),h*3),a.set(l.subarray((v*w+h)*I,(v*w+h)*I+I),h*I);let H={bioLogits:c,clsLogits:a,length:E,nCls:I},M=this.decodeForward(i,H,0,E);if(L)for(let h of M)h.span=d.slice(h.start,h.end);t[b]=M}}return t}},oA=null;function AA(){return oA||(oA=new $),oA}function Se(A,e={}){return AA().parse(A,e)}function Ke(A,e={}){return AA().parseBatch(A,e)}function Je(A){return AA().inspect(A)}function _e(){return AA().modelInfo()}function We(A={}){return new $(A)}var be=FA(RA,xA);export{F as CLASSES,$ as Parser,We as createParser,Je as inspect,gA as isWebGPUAvailable,_e as modelInfo,k as normalizeText,Se as parse,Ke as parseBatch,sA as probeWebGPU};
|