1
resposta

Quando defino os parametros TOP K e TOP P dá erro

O Python, pelo menos na atual versão (em abril de 2025) está gerando erro quando são definidos o TOP P e TOP K para os parâmetros, como se tais parâmetros não fizessem parte da configuração dos modelos (via codigo).

raceback (most recent call last):
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\proto\marshal\rules\message.py", line 36, in to_proto
    return self._descriptor(**value)
           ~~~~~~~~~~~~~~~~^^^^^^^^^
ValueError: Protocol message GenerationConfig has no "top-k" field.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\curso_gemini\main.py", line 29, in <module>
    resposta = llm.generate_content (pergunta)
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\google\generativeai\generative_models.py", line 305, in generate_content
    request = self._prepare_request(
        contents=contents,
    ...<3 lines>...
        tool_config=tool_config,
    )
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\google\generativeai\generative_models.py", line 165, in _prepare_request
    return protos.GenerateContentRequest(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        model=self._model_name,
        ^^^^^^^^^^^^^^^^^^^^^^^
    ...<6 lines>...
        cached_content=self.cached_content,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\proto\message.py", line 728, in __init__
    pb_value = marshal.to_proto(pb_type, value)
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\proto\marshal\marshal.py", line 235, in to_proto
    pb_value = self.get_rule(proto_type=proto_type).to_proto(value)
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\proto\marshal\rules\message.py", line 46, in to_proto
    return self._wrapper(value)._pb
           ~~~~~~~~~~~~~^^^^^^^
  File "C:\curso_gemini\curso_gemini\Lib\site-packages\proto\message.py", line 724, in __init__
    raise ValueError(
        "Unknown field for {}: {}".format(self.__class__.__name__, key)
    )
ValueError: Unknown field for GenerationConfig: top-k

Essa é a resposta dada.

1 resposta

Olá, Wladmir!

O erro indica que esses campos não são reconhecidos na configuração GenerationConfig.

Isso pode estar acontecendo por algumas razões:

  1. Versão da Biblioteca: Verifique se a versão da biblioteca google.generativeai que você está usando suporta esses parâmetros. É possível que a versão que você está utilizando não tenha implementado essas opções. Tente atualizar a biblioteca para a versão mais recente usando o comando pip install --upgrade google-generativeai.

  2. Documentação: Consulte a documentação oficial da biblioteca para confirmar quais parâmetros são suportados na configuração do modelo. Às vezes, as funcionalidades são alteradas ou removidas em atualizações de bibliotecas.

  3. Alternativas: Caso a versão atual da biblioteca não suporte top-k e top-p, você pode tentar ajustar outros parâmetros que influenciam a geração de texto, como temperature ou max_tokens, para alcançar resultados semelhantes.

Exemplo de ajuste de parâmetros:

from google.generativeai import generative_models

# Configuração do modelo sem top-k e top-p
model = generative_models.GenerativeModel(
    model_name="modelo-exemplo",
    temperature=0.7,
    max_tokens=150
)

Bons estudos!