o
    5ti                     @   sT   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ edG dd deZdS )	    N)cached_property)tqdm)LM)register_modeldummyc                       s   e Zd ZdZdddeddf fddZedd	d
ZddefddZddefddZ	ddefddZ
edd Z	ddeeeef  dedefddZ  ZS )DummyLMzallenai/Olmo-3-32B-ThinkF)	write_outr   returnNc                   s   t    || _d S N)super__init__r   )selfr   argskwargs	__class__ H/home/ubuntu/.local/lib/python3.10/site-packages/lm_eval/models/dummy.pyr      s   

zDummyLM.__init__c                 C   s   |  S r
   r   )cls
arg_stringadditional_configr   r   r   create_from_arg_string   s   zDummyLM.create_from_arg_stringdisable_tqdmc                 C   s\   g }t ||dD ]#}|t  df | jr+td|jd   td|jd   q|S )NdisableFz	context: r   zcontinuation:    )r   appendrandomr   print	argumentsr   requestsr   resrequestr   r   r   loglikelihood   s   zDummyLM.loglikelihoodc                 C   sb   g }t ||dD ]&}|d | jr#t|jd  td|jd   |jd  dks.J q|S )Nr   lolr   zgen_kwargs:  )r   r   r   r   r   stripr    r   r   r   generate_until!   s   
zDummyLM.generate_untilc                 C   s*   g }t ||dD ]
}|t   q|S )Nr   )r   r   r   )r   r!   r   r"   _r   r   r   loglikelihood_rolling-   s   zDummyLM.loglikelihood_rollingc                 C   s   ddl m} || jS )Nr   )AutoTokenizer)transformersr+   from_pretrainedtokenizer_name)r   r+   r   r   r   	tokenizer5   s   zDummyLM.tokenizerTchat_historyadd_generation_promptc                 C   s   | j j|d|| dS )NF)tokenizer1   continue_final_message)r/   apply_chat_template)r   r0   r1   r   r   r   r4   ;   s   zDummyLM.apply_chat_templater
   )F)T)__name__
__module____qualname__r.   boolr   classmethodr   r$   r(   r*   r   r/   listdictstrr4   __classcell__r   r   r   r   r   
   s$    
r   )	r   	functoolsr   r   lm_eval.api.modelr   lm_eval.api.registryr   r   r   r   r   r   <module>   s    