O Melhor Modelo de IA
Treinando Desafios de Códigos com IAs Generativas - 2/3
Descrição
Neste desafio, o objetivo ajudar na escolha do modelo de inteligência artificial mais adequado com base em critérios específicos definidos pelo cliente, utilizando as inovações recentemente anunciadas pela Amazon Web Services (AWS). Os modelos de IA disponíveis são da família Claude 3, desenvolvidos pela Anthropic, que foram anunciados como disponíveis na plataforma Amazon Bedrock. Esses modelos de última geração foram projetados para oferecer um equilíbrio entre precisão, desempenho, velocidade e custo, atendendo às demandas de clientes de todos os tamanhos.
Atenção: Alguns dados que utilizados são simulados e podem não representar situações reais.
Entrada
A entrada consiste em quatro linhas, cada uma representando uma característica do modelo de inteligência artificial:
- Desempenho: um número inteiro indicando a capacidade de desempenho do modelo.
- Velocidade: um número inteiro representando a velocidade de processamento do modelo.
- Custo: um número inteiro que reflete o custo associado ao modelo.
- Capacidades: uma lista de capacidades específicas separadas por vírgulas.
Saída
O programa fornecerá a recomendação do modelo mais adequado com base nas características fornecidas. A saída incluirá uma explicação detalhada sobre por que esse modelo específico foi escolhido com base nos critérios estabelecidos pelo cliente, utilizando informações sobre os modelos Claude 3 disponíveis na plataforma Amazon Bedrock. Se nenhum modelo atender aos critérios, o programa informará que nenhum modelo foi encontrado.
Exemplos
A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.
Entrada | Saída |
---|---|
9 | |
10 | O Claude 3 Opus é o modelo recomendado. |
5 | |
Pesquisa, Desenvolvimento Acelerado |
Entrada | Saída |
---|---|
8 | |
5 | O Claude 3 Sonnet é o modelo recomendado. |
7 | |
Codificação, Recuperação de informações |
Entrada | Saída |
---|---|
7 | |
9 | O Claude 3 Haiku é o modelo recomendado. |
6 | |
Velocidade, Resumo de dados não estruturados |
Entrada | Saída |
---|---|
1 | |
5 | Nenhum modelo encontrado. |
9 | |
Viagem interplanetária, Autoconhecimento |
Resolução
class ModeloIA:
def __init__(self, nome, desempenho, velocidade, custo, capacidades):
self.nome = nome
self.desempenho = desempenho
self.velocidade = velocidade
self.custo = custo
self.capacidades = capacidades
def __str__(self):
return self.nome
def recomendar_modelo(caracteristicas):
modelos = [
ModeloIA("Claude 3 Opus", 9, 10, 5, ["pesquisa", "desenvolvimento acelerado"]),
ModeloIA("Claude 3 Sonnet", 8, 5, 7, ["codificação", "recuperação de informações"]),
ModeloIA("Claude 3 Haiku", 7, 9, 6, ["velocidade", "resumo de dados não estruturados"])
]
modelo_recomendado = None
capacidades_usuario = [capacidade.lower() for capacidade in caracteristicas['Capacidades']]
for modelo in modelos:
capacidades_modelo = [capacidade.lower() for capacidade in modelo.capacidades]
if all(capacidade in capacidades_usuario for capacidade in capacidades_modelo):
if modelo_recomendado is None or modelo.desempenho > modelo_recomendado.desempenho:
modelo_recomendado = modelo
return modelo_recomendado if modelo_recomendado else "Nenhum modelo encontrado."
def gerar_explicacao(modelo, caracteristicas):
if isinstance(modelo, ModeloIA):
explicacao = f"O {modelo.nome} é o modelo recomendado."
return explicacao
else:
return modelo
def obter_caracteristicas():
caracteristicas = {}
caracteristicas['Desempenho'] = int(input())
caracteristicas['Velocidade'] = int(input())
caracteristicas['Custo'] = int(input())
capacidades = input().split(',')
caracteristicas['Capacidades'] = [capacidade.strip() for capacidade in capacidades]
return caracteristicas
caracteristicas_entrada = obter_caracteristicas()
melhor_modelo = recomendar_modelo(caracteristicas_entrada)
explicacao = gerar_explicacao(melhor_modelo, caracteristicas_entrada)
print(explicacao)
Para encontrar outras soluções, verifique aqui.
Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.