git clone https://github.com/QuentinWach/image-ranker.git
cd image-ranker
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
pip install flask trueskill
python app.py
.http://localhost:5000
. Cada imagem é representada por dois valores:
Novos itens começam com um μ padrão (geralmente 25, mas 0 aqui) e σ alto (geralmente 8,33). Quando dois itens são comparados, seus valores μ e σ são usados para calcular o resultado esperado. O resultado real é comparado a essa expectativa. O μ do vencedor aumenta, o do perdedor diminui. O σ de ambos os itens normalmente diminui (representando maior certeza). A magnitude das mudanças depende de:
Ele usa distribuições gaussianas para modelar níveis de habilidade e emprega gráficos de fatores e passagem de mensagens para atualizações eficientes. Os itens são normalmente classificados por μ - 3σ (uma estimativa conservadora).
É importante ressaltar que o algoritmo atualiza todos os itens classificados anteriormente simultaneamente a cada comparação, em vez de atualizar apenas as novas imagens. Isto significa que o algoritmo pode levar em conta todas as informações disponíveis nas comparações, em vez de apenas as comparações aos pares.
Assim, no geral, este sistema permite uma classificação eficiente com dados de comparação incompletos, tornando-o adequado para grandes conjuntos de itens onde comparações exaustivas entre pares são impraticáveis!
Você tem a opção de ativar a eliminação sequencial para classificar
Você pode embaralhar manualmente os pares de imagens a qualquer momento clicando no botão aleatório ou embaralhar automaticamente a cada três comparações. Isto é útil se você quiser minimizar a incerteza da classificação o mais rápido possível. Imagens que foram classificadas apenas algumas vezes e apresentam alta incerteza σ serão priorizadas. Dessa forma, você não perde mais tempo classificando imagens sobre as quais já tem certeza, mas pode obter uma classificação mais precisa de imagens com pontuações muito semelhantes com mais rapidez.
O Image Ranker faz parte do esforço geral para permitir que qualquer pessoa crie seus próprios modelos de base personalizados, adaptados às suas necessidades específicas.
Os modelos básicos pós-treinamento são o que os torna realmente úteis. Por exemplo, grandes modelos de linguagem podem nem conversar com você sem pós-treinamento. O mesmo se aplica às imagens. Para fazer isso, uma técnica comum é o RLHF, que utiliza um modelo de recompensa para recompensar ou punir o resultado do modelo de base generativo com base nas preferências do usuário. Para criar este modelo de recompensa, precisamos conhecer as preferências do usuário que requerem um conjunto de dados, aqui imagens. Portanto, seja para fazer algumas mudanças radicais em um modelo já existente, como Stable Diffusion ou Flux, ou para treinar seu próprio modelo, é importante ser capaz de classificar as imagens de alguma forma para saber quais imagens são melhores. É aqui que entra este aplicativo.
Se você tiver alguma dúvida, abra um problema no GitHub! E fique à vontade para fazer um fork neste projeto, para sugerir ou contribuir com novos recursos. O arquivo OPEN_TODO.md
contém uma lista de recursos que estão planejados para serem implementados. A ajuda é muito apreciada! Dito isto, a maneira mais fácil de apoiar o projeto é dar a este repositório um !
Obrigado!