Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

O Qwen3-FineTuning-Playground é um projeto de código aberto que fornece uma base de código completa dedicada ao ajuste fino da família Qwen3 de grandes modelos de linguagem. A base desse projeto é fornecer exemplos de código de ajuste fino claros, profissionais e fáceis de ampliar, para que os desenvolvedores e pesquisadores possam praticar facilmente uma variedade de técnicas de ajuste fino convencionais. O código do projeto é claramente estruturado, modularizando diferentes funções, como ajuste fino supervisionado, aprendizado por reforço, destilação de conhecimento e inferência em diretórios separados. Todos os scripts de treinamento e inferência são compatíveis com a configuração por meio da passagem de parâmetros da linha de comando, o que significa que os usuários podem executar diferentes experimentos sem modificar o código-fonte. Além disso, o projeto fornece vários tutoriais detalhados de ponta a ponta para que até mesmo os iniciantes possam seguir a documentação passo a passo durante todo o processo, desde a configuração do ambiente, a preparação dos dados até o treinamento e a inferência do modelo.

Lista de funções

  • Vários programas de ajuste fino supervisionado (SFT)Suporte ao ajuste fino de parâmetros completos do modelo, bem como ao ajuste fino eficiente usando técnicas como LoRA (Low Rank Adaptation) para se adaptar a diferentes recursos de hardware e requisitos de treinamento.
  • Alinhamento de aprendizado por reforço (RL)Integração de vários algoritmos de aprendizagem por reforço baseados em feedback humano para melhorar a qualidade do diálogo do modelo e a capacidade de seguir instruções.
    • Algoritmo PPOImplementa um algoritmo clássico de otimização de política proximal que orienta o aprendizado do modelo por meio de um modelo de recompensa (RM).
    • Algoritmo ORPOAlgoritmo de alinhamento de preferências: fornece um algoritmo de alinhamento de preferências eficiente que simplifica o processo de treinamento sem a necessidade de modelos de recompensa adicionais.
  • Técnicas de otimização pós-treinamento:
    • Destilação de conhecimentoSuporte para migração de conhecimento de um modelo de professor maior e mais capaz (por exemplo, Qwen3-4B) para um modelo de aluno menor (por exemplo, Qwen3-1.7B) para obter um modelo mais leve, mas ainda poderoso.
  • Estrutura de código modularO projeto divide claramente o código em diferentes diretórios de acordo com sua função, por exemploSupervised_FineTuningeRL_FineTuningetc., tornando o código fácil de entender e manter.
  • Scripts de execução paramétricaTodos os scripts suportam a configuração por meio de parâmetros de linha de comando, permitindo que os usuários ajustem parâmetros de forma flexível, como caminhos de modelos, conjuntos de dados, diretórios de saída etc., sem modificar o código.
  • Tutorial de amostra de ponta a ponta: Emexample/O catálogo oferece vários tutoriais práticos completos que abrangem o processo completo de SFT a PPO, alinhamento de etapa única para ORPO, destilação de conhecimento e aplicativos específicos de domínio (por exemplo, ajuste fino de diálogos de várias rodadas em psicologia).

Usando a Ajuda

Essa base de código fornece um processo completo para ajudá-lo a começar rapidamente a fazer o ajuste fino do modelo Qwen3. A seguir, tomaremos como exemplo um ajuste fino de SFT-LoRA e descreveremos o procedimento em detalhes.

1. preparação: clonagem do projeto e configuração do ambiente

Primeiro, você precisa clonar o código do projeto do GitHub para o seu computador local e acessar o diretório do projeto.

git clone https://github.com/Muziqinshan/Qwen3-FineTuning-Playground.git
cd Qwen3-FineTuning-Playground

A próxima etapa é configurar o ambiente Python. Para evitar conflitos com bibliotecas já existentes em seu sistema, é altamente recomendável usar a opçãocondaCrie um ambiente autônomo totalmente novo. A versão 3.10 do Python é recomendada para este projeto.

# 创建一个名为 qwen3_ft 的新环境
conda create -n qwen3_ft python=3.10
# 激活这个新创建的环境
conda activate qwen3_ft

Depois que o ambiente for ativado, você precisará instalar todas as bibliotecas de dependência exigidas pelo projeto. No diretório raiz do projeto, a bibliotecarequirements.txtO arquivo já lista todas as bibliotecas necessárias. Execute o seguinte comando para instalá-las:

pip install -r requirements.txt

2. download de modelos e preparação de dados

Antes de fazer o ajuste fino, você precisa preparar o modelo básico e o conjunto de dados para treinamento.

Modelos para download
Recomendado para este projetomodelscopeA biblioteca baixa modelos Qwen3 pré-treinados da comunidade Magic Match.modelscopeA biblioteca está executando a etapa anteriorpip installfoi instalado.

Execute os seguintes comandos para fazer o download dos dois modelos básicos que serão usados neste exemplo de projeto:

# 下载Qwen3-1.7B模型,它将主要用于SFT、ORPO和PPO等微调任务
modelscope download --model Qwen/Qwen3-1.7B --local_dir ./Qwen3/Qwen3-1.7B
# 下载Qwen3-4B模型,它主要用作知识蒸馏任务中的教师模型
modelscope download --model Qwen/Qwen3-4B --local_dir ./Qwen3/Qwen3-4B

Depois que o comando é executado, os arquivos de modelo são automaticamente baixados e salvos no diretório raiz do projeto no diretório./Qwen3/Qwen3-1.7Bresponder cantando./Qwen3/Qwen3-4BCatálogo.

Preparar dados
Os dados usados neste projeto têm um formato JSON específico. Há um formato JSON específico para os dados usados no projetodata/que fornece um diretório chamadodirty_chinese_dpo.jsonarquivo de exemplo, que pode ser consultado para a formatação da preparação do seu próprio conjunto de dados.

3. início do ajuste fino da SFT-LoRA

Quando tudo estiver pronto, é hora de começar o treinamento. O comando a seguir iniciará uma tarefa de ajuste fino supervisionado (SFT) e usará a técnica LoRA para aumentar a eficiência.

python Supervised_FineTuning/train_sft_dirty.py \
--model_path ./Qwen3/Qwen3-1.7B \
--dataset_path data/dirty_chinese_dpo.json \
--sft_adapter_output_dir ./output/sft_adapter_demo
  • --model_pathEspecifica o caminho para o modelo básico que acabamos de baixar.
  • --dataset_pathConjunto de dados: Especifica o arquivo do conjunto de dados a ser usado para treinamento.
  • --sft_adapter_output_dirEspecifica o diretório em que os pesos do adaptador LoRA são salvos após a conclusão do treinamento.

O processo de treinamento dura um período de tempo que depende do desempenho de seu hardware. Ao final do processo de treinamento, você será./output/sft_adapter_demoLocalize o arquivo do adaptador de modelo gerado no diretório.

4. raciocínio com modelos ajustados

Depois que o modelo tiver sido treinado, a etapa mais importante é verificar sua eficácia. Você pode executar o seguinte script de inferência para ter um bate-papo interativo com o modelo que acabou de ajustar.

python inference/inference_dirty_sft.py \
--model_path ./Qwen3/Qwen3-1.7B \
--adapter_path ./output/sft_adapter_demo \
--mode interactive
  • --model_path:: Novamente, o caminho do modelo básico.
  • --adapter_pathAponta para o diretório onde está localizado o adaptador LoRA que treinamos na etapa anterior.
  • --mode interactiveBate-papo interativo: Indica que o modo de bate-papo interativo está ativado, no qual você pode inserir perguntas diretamente da linha de comando para conversar com o modelo.

Agora você está pronto para testar o desempenho do modelo em tarefas específicas. Se quiser experimentar outros métodos de ajuste fino, como ORPO ou destilação de conhecimento, você pode consultar a seçãoexample/A documentação detalhada do tutorial no diretório tem etapas semelhantes.

cenário do aplicativo

  1. Atendimento ao cliente inteligente específico do domínio
    O modelo genérico Qwen3 pode ser ajustado em uma base de conhecimento específica do setor (por exemplo, financeiro, médico, jurídico) para criar um robô inteligente de atendimento ao cliente capaz de responder com precisão a perguntas especializadas. O tutorial SFT fornecido no projeto é um ponto de partida ideal para a realização desse cenário.
  2. Assistente de criação de conteúdo personalizado
    Com o ajuste fino do modelo usando dados textuais em um estilo específico (por exemplo, o trabalho de um determinado autor, um estilo específico de texto de marketing), é possível criar um assistente que possa imitar esse estilo de escrita para uso como auxílio na criação de conteúdo, na escrita de poesia ou na geração de textos publicitários.
  3. Model Lightweighting e Private Deployment
    Para cenários com recursos aritméticos limitados, o recurso de destilação de conhecimento pode ser usado para migrar os recursos de um modelo grande (por exemplo, Qwen3-4B) para um modelo pequeno (por exemplo, Qwen3-1.7B). Isso preserva a maior parte do desempenho e reduz significativamente o custo de inferência, facilitando a implantação privada em dispositivos pessoais ou dispositivos de computação de borda.
  4. Aprimoramento da segurança e da consistência dos diálogos de modelos
    Os métodos de aprendizado por reforço (por exemplo, PPO ou ORPO) podem ser usados para alinhar o modelo com os dados de preferência humana, de modo que suas respostas de saída estejam mais alinhadas com os valores humanos, reduzindo a geração de conteúdo prejudicial ou inadequado e melhorando a confiabilidade e a segurança do diálogo.

QA

  1. Quais são os principais modelos da Qwen3 suportados por esse projeto?
    O projeto baseia-se principalmente na série de modelos Qwen3 para desenvolvimento e teste, e o código de amostra fornece acesso direto aos modelos Qwen3-1.7B e Qwen3-4B para download e uso. Teoricamente, a estrutura do código também é compatível com modelos de outros tamanhos da série Qwen3.
  2. Que tipo de configuração de hardware é necessária para realizar o ajuste fino?
    Os requisitos de hardware dependem do método de ajuste fino e do tamanho do modelo que você escolher. Para modelos pequenos, como o Qwen3-1.7B de ajuste fino SFT-LoRA, uma placa de vídeo de nível de consumidor (por exemplo, NVIDIA 3090 ou 4090) geralmente é suficiente. Entretanto, para o ajuste fino completo ou para o treinamento de modelos maiores, são necessários mais memória de vídeo e recursos computacionais.
  3. Qual é a diferença entre o ajuste fino de ORPO e PPO?
    O PPO é um algoritmo clássico de aprendizagem por reforço, que requer um modelo de recompensa separado e pré-treinado para pontuar o resultado do modelo, e o processo de treinamento é relativamente complexo. O ORPO, por outro lado, é um algoritmo mais recente que não exige um modelo de recompensa adicional e otimiza o modelo diretamente a partir dos dados de preferência, tornando o processo mais simples e eficiente.
  4. Posso usar meu próprio conjunto de dados?
    Totalmente. Você só precisa organizar seu conjunto de dados em itensdata/e, ao executar o script de treinamento, passe o--dataset_pathBasta especificar o caminho do arquivo com o parâmetro.
0Marcado
0Recomendado

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

Novos lançamentos

voltar ao topo

pt_BRPortuguês do Brasil