29 lines
		
	
	
		
			834 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			834 B
		
	
	
	
		
			Python
		
	
	
	
	
	
class LLaVABasePostProcessor:
 | 
						|
    """Base post processor for LLaVA on MMBench."""
 | 
						|
 | 
						|
    def __init__(self) -> None:
 | 
						|
        pass
 | 
						|
 | 
						|
    def __call__(self, outputs: str, stop_str: str) -> str:
 | 
						|
        outputs = outputs.strip()
 | 
						|
        if outputs.endswith(stop_str):
 | 
						|
            outputs = outputs[:-len(stop_str)]
 | 
						|
        output_text = outputs.strip()
 | 
						|
        return output_text
 | 
						|
 | 
						|
 | 
						|
class LLaVAVSRPostProcessor(LLaVABasePostProcessor):
 | 
						|
    """VSR post processor for LLaVA on MMBench."""
 | 
						|
 | 
						|
    def __init__(self) -> None:
 | 
						|
        super().__init__()
 | 
						|
 | 
						|
    def __call__(self, outputs: str, stop_str: str) -> str:
 | 
						|
        output_text = super().__call__(outputs, stop_str)
 | 
						|
        if 'yes' in output_text.lower():
 | 
						|
            return 'yes'
 | 
						|
        elif 'no' in output_text.lower():
 | 
						|
            return 'no'
 | 
						|
        else:
 | 
						|
            return 'unknown'
 |