Team Ai
Apppublic

David310/Detect_AI-generated_Image

sourceHugging Faceupdated 2y agoView on Hugging Face
4likes
simple_tokenizer.cpython-310.pyc65 linesDownload Raw Back to __pycache__
1o

2�N�d�@s|ddlZddlZddlZddlmZddlZddlZe�dd��Ze�dd��Z	dd�Z3d	d4�Zdd�ZGd
d�de
�ZdS)�N)�	lru_cachecCstj�tj�tj�t��d�S)Nzbpe_simple_vocab_16e6.txt.gz)�os�path�join�dirname�abspath�__file__�r	r	�F/nobackup2/utkarsh/UniversalFakeDetect/models/clip/simple_tokenizer.py�default_bpe5srcCs�tttd�td�d��tttd�td�d��tttd�td�d��}|dd�}d	}td6�D]}||vrI|�|�|�d7|�|d7}q3dd�|D�}tt||��S)
a98    Returns list of utf-8 byte and a corresponding list of unicode strings.9    The reversible bpe codes work on unicode strings.10    This means you need a large # of unicode characters in your vocab if you want to avoid UNKs.11    When you're at something like a 10B token dataset you end up needing around 5K for decent coverage.12    This is a signficant percentage of your normal, say, 32K bpe vocab.13    To avoid that, we want lookup tables between utf-8 bytes and unicode strings.14    And avoids mapping to whitespace/control characters the bpe code barfs on.15    �!�~��¡�¬�®�ÿNr�cSsg|]}t|��qSr	)�chr)�.0�nr	r	r16�17<listcomp>"�z$bytes_to_unicode.<locals>.<listcomp>)�list�range�ord�append�dict�zip)�bs�csr�br	r	r18�bytes_to_unicodesN19�r"cCs6t�}|d}|dd�D]}|�||f�|}q
|S)zReturn set of symbol pairs in a word.20    Word is represented as tuple of symbols (symbols being variable-length strings).21    rrN)�set�add)�word�pairsZ	prev_char�charr	r	r22�	get_pairs&sr(cCs"t�|�}t�t�|��}|��S�N)�ftfyZfix_text�html�unescape�strip��textr	r	r23�basic_clean2s24r0cCst�dd|�}|��}|S)Nz\s+� )�re�subr-r.r	r	r25�whitespace_clean8sr4c@s8eZdZe�fdefdd�Zdd�Zdd�Zdd	�Zd26S)�SimpleTokenizer�bpe_pathcCst�|_dd�|j��D�|_t�|����d��d�}|dd�}dd�|D�}t	t��27��}|d	d�|D�}|D]28}|�d29�|��q;|�
ddg�tt|tt|����|_d
d�|j��D�|_tt|tt|����|_ddd�|_t�dtj�|_dS)NcS�i|]\}}||�qSr	r	�r�k�vr	r	r30�31<dictcomp>A�z,SimpleTokenizer.__init__.<locals>.<dictcomp>�utf-8�32ri��cSsg|]}t|����qSr	)�tuple�split)r�merger	r	r33rDsz,SimpleTokenizer.__init__.<locals>.<listcomp>cSsg|]}|d�qS)�</w>r	)rr:r	r	r34rFr��<|startoftext|>�
<|endoftext|>cSr7r	r	r8r	r	r35r;Kr<)rDrEz[<\|startoftext\|>|<\|endoftext\|>|'s|'t|'re|'ve|'m|'ll|'d|[\p{L}]+|[\p{N}]|[^\s\p{L}\p{N}]+)r"�byte_encoder�items�byte_decoder�gzip�open�read�decoder@r�valuesrr�extendrrr�len�encoder�decoder�	bpe_ranks�cacher2�compile�36IGNORECASE�pat)�selfr6ZmergesZvocabrAr	r	r37�__init__?szSimpleTokenizer.__init__c38sj|�jvr39�j|St|dd��|ddf}t|�}|s#|dS	t|�fdd�d�}|�jvr4nu|\}}g}d}|t|�kr�z|�||�}	|�|||	��|	}Wn|�||d��Yn3|||kr�|t|�dkr�||d|kr�|�||�|d	7}n|�||�|d7}|t|�ksBt|�}|}t|�dkr�nt|�}q$d40�	|�}|�j|<|S)N�����rBTcs�j�|td��S)N�inf)rR�get�float)�pair�rWr	r41�<lambda>Zsz%SimpleTokenizer.bpe.<locals>.<lambda>)�keyrr�r1)42rSr?r(�minrRrO�indexrNrr)43rW�tokenr%r&Zbigram�first�secondZnew_word�i�jr	r^r44�bpePsH454647,48��4950zSimpleTokenizer.bpecsng}tt|����}t��j|�D]#}d��fdd�|�d�D��}|��fdd���	|��51d�D��q|S)NrCc3��|]}�j|VqdSr))rF)rr!r^r	r52�	<genexpr>}��z)SimpleTokenizer.encode.<locals>.<genexpr>r=c3rjr))rP)rZ	bpe_tokenr^r	r53rk~rlr1)r4r0�lowerr2�findallrVr�encoderNrir@)rWr/Z54bpe_tokensrdr	r^r55roys&zSimpleTokenizer.encodecsDd��fdd�|D��}t�fdd�|D��jddd��dd	�}|S)56NrCc�g|]}�j|�qSr	)rQ)rrdr^r	r57r�r<z*SimpleTokenizer.decode.<locals>.<listcomp>crpr	)rH)r�cr^r	r58r�r<r=�replace)�errorsrBr1)r�	bytearrayrLrr)rW�tokensr/r	r^r59rL�s(zSimpleTokenizer.decodeN)	�__name__�60__module__�__qualname__r�strrXrirorLr	r	r	r61r5>s62)r5)rIr+r�	functoolsrr*�regexr2rr"r(r0r4�objectr5r	r	r	r63�<module>s6465