O EduChat é um modelo de diálogo educacional de código aberto desenvolvido pela equipe do ICALK na East China Normal University. Ele se concentra em cenários educacionais, suporta diálogos em inglês e chinês e tem como objetivo fornecer ferramentas de diálogo inteligentes para alunos, professores e pesquisadores. O modelo é baseado em estruturas de código aberto, como LLaMA e Qwen, ajustado por uma grande quantidade de dados no domínio da educação, e tem a capacidade de lidar com diálogos genéricos, consultas psicológicas e diálogos de ensino socráticos. O EduChat é compatível com implantações de GPU, o que o torna adequado para uso em pesquisa educacional ou ensino real. Ele também oferece uma ferramenta de limpeza de dados, a CleanTool, para ajudar os usuários a otimizar os dados de treinamento. O projeto é de código aberto no GitHub e ganhou força generalizada, com 748 estrelas em 2024.
Lista de funções
- Oferece suporte a diálogos educacionais em inglês e chinês, adequados para o ensino em sala de aula, discussões acadêmicas e aconselhamento psicológico.
- Vários tamanhos de modelos estão disponíveis, incluindo versões com parâmetros de 1,8B, 7B, 13B e 14B.
- Oferece suporte ao diálogo socrático para orientar os usuários a pensar profundamente.
- Oferece diálogo sobre tópicos de psicologia, recomenda livros relevantes ou oferece apoio emocional.
- Ferramenta de limpeza de dados de código aberto CleanTool para otimizar os conjuntos de dados de treinamento.
- Oferece suporte a implementações aceleradas por GPU e é compatível com hardware como o A100/A800.
- O código de amostra é fornecido para que os desenvolvedores invoquem rapidamente o modelo.
Usando a Ajuda
Instalação e implementação
O EduChat é um projeto de código aberto que precisa ser baixado via GitHub e implantado localmente. Veja a seguir as etapas detalhadas de instalação:
- Preparação ambiental
Certifique-se de que o Python 3.8+ e o PyTorch estejam instalados em seu sistema. Recomenda-se um ambiente de GPU (por exemplo, NVIDIA A100/A800) para dar suporte à operação de precisão FP16, que requer aproximadamente 15 GB de memória de vídeo. Instale as dependências de biblioteca necessárias:pip install torch transformers
- Modelos para download
Acesso aos repositórios do GitHubhttps://github.com/ECNU-ICALK/EduChat
clone o projeto localmente:git clone https://github.com/ECNU-ICALK/EduChat.git
Os arquivos de modelo devem ser baixados do Hugging Face. Recomendado
educhat-sft-002-7b
para operação de GPU de placa única. Comando de download:huggingface-cli download ecnu-icalk/educhat-sft-002-7b
- Modelos de carregamento
Carregue o modelo usando o código de amostra fornecido. As seguintes chamadas para oeduchat-sft-002-7b
Código Python:from transformers import LlamaForCausalLM, LlamaTokenizer tokenizer = LlamaTokenizer.from_pretrained("ecnu-icalk/educhat-sft-002-7b") model = LlamaForCausalLM.from_pretrained("ecnu-icalk/educhat-sft-002-7b", torch_dtype=torch.float16).half().cuda() model = model.eval()
- Geração de diálogo
Configure um prompt do sistema que defina as funções e os recursos do EduChat. Por exemplo:system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Disable. 对话主题 - General: Enable. - Psychology: Disable. - Socrates: Disable.</s>" query = system_prompt + "<|prompter|>你好</s><|assistant|>" inputs = tokenizer(query, return_tensors="pt", padding=True).to(0) outputs = model.generate(**inputs, do_sample=True, temperature=0.7, top_p=0.8, repetition_penalty=1.02, max_new_tokens=256) response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) print(response)
Exemplo de saída:
你好!我是EduChat,有什么我可以帮助你的吗?
- Operação da função em destaque
- Diálogo psicológicoQuando o tópico Psicologia está ativado, o EduChat pode recomendar livros de psicologia ou fornecer apoio emocional. Por exemplo, digite "Recommend me some psychology-related books" (Recomende-me alguns livros relacionados à psicologia) e o modelo retornará:
当然,以下是一些关于心理学的经典书籍: 1.《人性的弱点》(Dale Carnegie):介绍人际关系技巧,帮助建立良好沟通。 2.《心理学与生活》(Richard J. Gerrig):全面介绍心理学基础知识,适合初学者。
Diálogo sobre a psicologia da configuração:
system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Enable. 对话主题 - General: Disable. - Psychology: Enable. - Socrates: Disable.</s>"
- Diálogo socráticoMétodos de ensino: conduz o usuário a uma reflexão mais profunda por meio de perguntas, adequadas para cenários de ensino. Métodos de capacitação:
system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Disable. 对话主题 - General: Disable. - Psychology: Disable. - Socrates: Enable.</s>"
Exemplo de entrada: "O que é justiça?" O modelo orientará o pensamento do usuário fazendo perguntas retóricas como: "O que você acha que é o cerne da justiça? É o mesmo resultado ou oportunidades iguais?"
- Ferramentas de limpeza de dados CleanToolRun CleanTool: Para otimizar os dados de treinamento, com suporte para desduplicação e filtragem de dados de baixa qualidade. Execute o CleanTool:
python clean_tool.py --input data.json --output cleaned_data.json --gpu True
- Diálogo psicológicoQuando o tópico Psicologia está ativado, o EduChat pode recomendar livros de psicologia ou fornecer apoio emocional. Por exemplo, digite "Recommend me some psychology-related books" (Recomende-me alguns livros relacionados à psicologia) e o modelo retornará:
- Aplicativo de teste interno
Se precisar de acesso aos modelos ou dados mais recentes, você pode enviar um e-mail paradan_yh@stu.ecnu.edu.cn
O título do e-mail deve ser "EduChat internal test application + unit" (Aplicativo de teste interno do EduChat + unidade), e o e-mail deve indicar a finalidade.
Precauções de uso
- Verifique se você tem memória suficiente na GPU. Os modelos 7B exigem cerca de 15 GB de memória, enquanto os modelos 13B exigem mais.
- Os modelos não suportam pesquisas em rede em tempo real e exigem dados configurados localmente.
- Verifique regularmente o repositório do GitHub para obter atualizações dos modelos e da documentação mais recentes.
cenário do aplicativo
- Material didático em sala de aula
Os professores usam o recurso Socratic Dialogue do EduChat para orientar os alunos a explorar questões em profundidade. Por exemplo, em uma aula de filosofia, digite "o que é a verdade" e o modelo ajudará os alunos a analisar o conceito fazendo perguntas. - Suporte de aconselhamento psicológico
Estudantes ou pesquisadores recebem apoio emocional ou recomendações de livros por meio do recurso Psychology Dialogue, adequado para cenários de pesquisa ou educação em saúde mental. - Pesquisa de dados educacionais
Os pesquisadores usam o CleanTool para limpar conjuntos de dados do domínio educacional e melhorar a qualidade do treinamento de modelos para pesquisas acadêmicas. - Teste de desenvolvimento de IA
Os desenvolvedores usam o código-fonte aberto do EduChat para criar rapidamente sistemas de diálogo educacional e testar a geração de diálogo.
QA
- Quais idiomas são suportados pelo EduChat?
O EduChat suporta diálogos em chinês e inglês, e os dados de treinamento contêm cerca de 4 milhões de comandos e diálogos em chinês e inglês, o que é adequado para cenários educacionais em vários idiomas. - Como faço para escolher a versão correta do modelo?
Os modelos de 1,8B e 7B são adequados para dispositivos de baixa potência de computação, enquanto os modelos de 13B e 14B são adequados para GPUs de alto desempenho, que são mais potentes, mas consomem muitos recursos. - Preciso estar conectado à Internet para usá-lo?
Não. O EduChat é um modelo implantado localmente com a função de pesquisa na Web desativada, e os modelos e dados precisam ser baixados com antecedência. - Como posso me envolver no desenvolvimento do projeto?
Você pode enviar problemas ou pull requests no repositório do GitHub para participar da otimização do modelo ou do desenvolvimento de recursos.