[中文 | Inglês ]

O Knowlm é uma estrutura de Modelo de Linguagem Grande (LLM) experiente, incluindo processamento de dados, pré-treinamento, ajuste fino, aumento e utilização do modelo. Além disso, o Knowlm fornece um zoológico modelo com modelos prontamente acessíveis como Zhixi e Oneke, adaptados para implementação imediata.
Características
Todos os pesos e conjuntos de dados foram enviados para Huggingface?. Clique aqui para começar imediatamente!
❗ Se você encontrar algum problema durante a instalação ou uso do Knowlm, verifique as perguntas frequentes ou envie um problema imediatamente e o ajudaremos a resolver o problema!
| Categoria | Base | Nome | Versão | Baixar link | Observação |
|---|---|---|---|---|---|
| Modelo base | Lhama1 | Knowlm-13b-Base | V1.0 | Huggingface Wisemodel Modelscope | Modelo base |
| Modelo de diálogo | Lhama1 | Knowlm-13b-Zhixi | V1.0 | Huggingface Wisemodel Modelscope | Modelo de extração de informações |
| Modelo de diálogo | Lhama1 | Knowlm-13b-ie | V1.0 | Huggingface Wisemodel Modelscope | Modelo de extração de informações |
| Modelo de diálogo | Llama2 | OceanGpt | V1.0 | Huggingface Wisemodel | Modelo Ocean |
| Modelo de diálogo | Llama2 | Oneke | V1.0 | Huggingface Wisemodel Modelscope | Modelo de extração de informações |
| Nome do conjunto de dados de instruções | Número | Baixar link | Observação |
|---|---|---|---|
| Knowlm-Cr (BOT e raciocínio, chinês e inglês) | 202.333 | Google Drive Huggingface | |
| Knowlm-tool (aprendizado de ferramentas , inglês) | 38.241 | Google Drive Huggingface | |
| Oceanbench (benchmark , inglês) | 11.000 | Huggingface | |
| Instructie (extração de informações, chinês e inglês) | 364, 076 | Huggingface Wisemodel Modelscope | Devido ao uso de supervisão distante, existe ruído. |
| IEPILE (extração de informações, chinês e inglês) | 2.000.000 + | Huggingface Wisemodel Modelscope | É construído com base em 33 conjuntos de dados do IE. |
Descrição dos dados : 1. Outras fontes de dados para extração de informações vêm de CoNLL , ACE , casis , DuEE , People Daily , DuIE , etc. 2. O conjunto de dados KnowLM-Tool vem do documento "Tornando os modelos de idiomas melhores alunos da ferramenta com feedback de execução" e o github pode ser encontrado aqui. 3. O conjunto de dados InstructIE vem do documento "Instructie: um conjunto de dados de extração de informações baseado em instruções chinês" e o github pode ser encontrado aqui.
IEPile , BAICHUAN2-13B-IEPILE-LORA e LLAMA2-13B-LORA-LORA.LLaMA-2CaMA para KnowLM .
Esta é uma visão geral do KnowLM , que consiste principalmente em três recursos técnicos:
Conhecimento solicitando : gera instruções de conhecimento com base em dados estruturados, como gráficos de conhecimento e utiliza restrições de aumento de conhecimento para abordar questões de extração e raciocínio do conhecimento .
Edição de conhecimento : alinha o conhecimento desatualizado, incorreto e tendencioso em grandes modelos usando técnicas de edição de conhecimento para combater problemas de falácia do conhecimento ( tutorial em inglês ).
Interação do conhecimento : permite interação e feedback dinâmico do conhecimento para obter aprendizado baseado em ferramentas e colaboração multi-agente, resolvendo o problema da cognição da modalidade no LLMS ( tutorial em inglês ).
Os módulos relacionados a essas três tecnologias são o EasyInstruct, EasyDetect, Easyedit. Fornecemos casos de uso para esses módulos com base na estrutura KnowLM .
? Início rápido
"Casos
? Detalhes do treinamento
? Limitações
?
❓faq
Agradecimentos/colaboradores/citações
O Knowlm suporta configuração de ambiente de imagem manual e do Docker, você pode escolher a maneira apropriada de construir.
git clone https://github.com/zjunlp/KnowLM.git
cd KnowLM
conda create -n knowlm python=3.9 -y
conda activate knowlm
pip install torch==1.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txtdocker pull zjunlp/knowlm:v.1
docker run -it zjunlp/knowlm:v.1 /bin/bash1. Reproduza os resultados na seção 2
Os casos na seção 2 foram todos executados no V100. Se estiver executando em outros dispositivos, os resultados podem variar. Execute várias vezes ou altere os parâmetros de decodificação. Derivamos
knowlm-13b-zhixieknowlm-13b-iepor meio de treinamento usando Lora, com base na base doknowlm-13b-base. Esses modelos,knowlm-13b-zhixieknowlm-13b-ie, são o resultado da fusão dos pesos de Lora treinados com os parâmetros do modelo deknowlm-13b-baseexistentes.
Se você deseja reproduzir os resultados na section 2.1 ( casos de pré -treinamento ), execute o seguinte comando:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 O resultado na seção 2.1 pode ser obtido.
Se você deseja reproduzir os resultados na section 2.2 ( casos de extração de informações ), execute o seguinte comando:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_ie_cases O resultado na seção 2.2 pode ser obtido.
Se você deseja reproduzir os resultados na section 2.3 ( casos gerais de ablities ), execute o seguinte comando:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_general_cases O resultado na seção 2.3 pode ser obtido.
2. Uso do modelo de pré -treinamento
Oferecemos dois métodos: o primeiro é a interação da linha de comando e a segunda é a interação baseada na Web , que fornece maior flexibilidade.
Use o seguinte comando para inserir a interação da linha de comando :
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactiveA desvantagem é a incapacidade de alterar dinamicamente os parâmetros de decodificação.
Se uma única GPU não puder carregar o modelo, você poderá utilizar o seguinte comando para permitir que o modelo seja carregado em diferentes GPU:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactive --multi_gpu # --allocate [10,10,10]O
--allocateacima especifica a quantidade de memória usada por cada GPU, medida emGB.
Use o seguinte comando para inserir a interação baseada na Web :
python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0Se uma única GPU não puder carregar o modelo, você poderá utilizar o seguinte comando para permitir que o modelo seja carregado em diferentes GPU:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0 --multi_gpu # --allocate [10,10,10]Aqui está uma captura de tela da interação baseada na Web:

3. Uso do modelo de ajuste de instrução
Aqui, fornecemos um método de interação baseado na Web. Use o seguinte comando para acessar a Web:
python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixiSe uma única GPU não puder carregar o modelo, você poderá utilizar o seguinte comando para permitir que o modelo seja carregado em diferentes GPU:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi --multi_gpu # --allocate [10,10,10]Aqui está uma captura de tela da interação baseada na Web:

A instruction é um parâmetro necessário, enquanto input é um parâmetro opcional. Para tarefas gerais (como os exemplos fornecidos na Seção 1.3 ), você pode inserir diretamente a entrada no campo de instruction . Para tarefas de extração de informações (conforme mostrado no exemplo na Seção 1.2 ), digite as instruções no campo instruction e a frase a ser extraída no campo input . Fornecemos um prompt de extração de informações na Seção 2.5 .
Se você deseja executar testes em lote, modifique os examples/generate_lora.py e atualize os exemplos e hiperparâmetros nos cases variáveis.
De acordo com diferentes requisitos de tarefas, temos as seguintes sugestões para ajustar estratégias de decodificação e seus hiperparâmetros associados:
top_k ou top_p relativamente mais alto e, possivelmente, uma temperature mais alta.num_beam moderado ou amostragem Top-K ou Top-P com um top_k ou top_p inferior e uma temperature mais baixa.4. VLLM API Server
Integramos a VLLM para acelerar a inferência LLM e fornecer um serviço de API eficiente. Use o seguinte comando para iniciar o servidor API VLLM em http://localhost:8090 .
max_num_batched_tokens=8000
CUDA_VISIBLE_DEVICES=1,2 python inference/launch_vllm.py
--port 8090
--model data/zhixi-13B
--use-np-weights
--max-num-batched-tokens $max_num_batched_tokens
--dtype half
--tensor-parallel-size 2Consulte o serviço usando a solicitação de postagem:
curl -X POST " http://127.0.0.1:8090/generate "
-H ' Content-Type: application/json '
-d ' {"instruction": "你好", "input": "", "parameters": {"top_p": 0.7, "max_tokens": 256}} 'Você pode obter a seguinte resposta:
{
" generated_text " : "你好,很高兴见到你。我是一个人工智能助手,可以帮助你解决问题和提供信息。有什么我可以帮助你的吗?</s> " ,
" num_output_tokens_cf " :65,
" error " :null
}Para tarefas de extração de informações, como reconhecimento de entidade nomeado (NER), extração de eventos (EE) e extração de relação (Re), fornecemos alguns avisos para facilitar o uso. Você pode se referir a este link para exemplos. Obviamente, você também pode tentar usar seus próprios prompts.
Aqui está um caso em que knowlm-13b-zhixi é usado para realizar a tarefa de construção de gráficos de conhecimento baseada em instrução no CCKS2023.
Se você não possui recursos de computação de GPU suficientes, terá a opção de realizar quantização usando llama.cpp. Isso é possível porque o llama.cpp compartilha a mesma arquitetura que a Knowlm. Depois de configurar seu ambiente, você pode baixar nosso modelo para um caminho designado usando o seguinte comando:
python tools/download.py --specify --download_path ./your/path --repo_name zjunlp/knowlm-13b-zhixiEm seguida, basta substituir o caminho do modelo neste local com o baixado. Ao executá -lo na prática, lembre -se de ajustar o caminho do modelo dentro deste script de acordo.
O ajuste de instrução emergiu como uma técnica crucial para aprimorar os recursos do LLMS, o que preenche a lacuna entre o objetivo da previsão da palavra da palavra do LLMS e a preferência humana. Para construir um conjunto de dados de instruções de alta qualidade, muitas abordagens de processamento de instruções foram propostas, com o objetivo de obter um delicado equilíbrio entre a quantidade e a qualidade dos dados.
No processamento de instruções, utilizamos o EasyInstruct como nossa estrutura de processamento (detalhado pode ser encontrado em https://github.com/zjunlp/easyinstruct). O EasyInstruct modulariza a geração de instruções, a seleção e o aviso, ao mesmo tempo em que considera sua combinação e interação. O código abaixo mostra um exemplo em execução de geração de instruções e seleção no EasyInstruct:
from easyinstruct import SelfInstructGenerator , GPTScoreSelector
from easyinstruct . utils . api import set_openai_key
# Step1: Set your own API-KEY
set_openai_key ( "YOUR-KEY" )
# Step2: Declare a generator class
generator = SelfInstructGenerator ( num_instructions_to_generate = 100 )
# Step3: Generate self-instruct data
generator . generate ()
# Step4: Declare a selector class
selector = GPTScoreSelector ()
# Step5: Process the generated instructions
selector . process ()Embora os grandes modelos de idiomas tenham desempenho excepcionalmente bem em muitas tarefas, eles ainda podem fornecer respostas incorretas. Além disso, com o passar do tempo, o conhecimento que antes era preciso pode ficar desatualizado. Isso exige que ajustemos as respostas do modelo para atender às nossas expectativas por meio da edição de modelos.
Na edição de modelos, utilizamos o Easyedit como nossa ferramenta de edição (os detalhes podem ser encontrados em https://github.com/zjunlp/easyedit). O Easyedit é uma ferramenta de edição de modelo altamente integrada. Tudo o que você precisa fazer é definir seu editor em apenas três linhas de código, semelhante a como faria em abraçar o rosto.
from easyeditor import MENDHyperParams
hparams = MENDHyperParams . from_hparams ( './hparams/MEND/gpt2-xl' )
editor = BaseEditor . from_hparams ( hparams )O código acima demonstra a definição do editor para editar o modelo GPT2-XL usando o método MEND. O próximo passo é preparar os dados de edição e os dados de teste.
metrics , edited_model , _ = editor . edit (
prompts = prompts ,
ground_truth = ground_truth ,
target_new = target_new ,
locality_inputs = locality_inputs ,
keep_original_weight = True
)Com o código fornecido, você pode concluir a edição do modelo. O modelo editado é armazenado em "Edit_model" e as métricas de avaliação correspondentes são salvas em "métricas".
Nosso modelo pré-treinado demonstrou certas habilidades nas instruções, codificação, raciocínio e alguns recursos de tradução, sem qualquer ajuste fino usando instruções. Além disso, adquiriu novos conhecimentos. Abaixo estão alguns dos nossos casos de amostra. Se você deseja reproduzir nossos exemplos e visualizar a configuração detalhada de decodificação, configure primeiro o ambiente e siga as etapas descritas aqui.
Nos casos seguintes, o texto em negrito representa o prompt, enquanto o texto não ousado representa a saída do modelo.
Devido ao comprimento máximo de inferência definido como 512, nossos casos se enquadram em três situações:
- Saída concluída. O modelo gera o token de terminação EOS e conclui a saída. Marcamos isso com ✅.
- Saída incompleta. A saída é cortada devido ao comprimento máximo de inferência. Marcamos isso com ✳️.
- Saída repetida. Removemos o conteúdo repetido manualmente e o marcamos com ⬅️.
你很擅长将中文翻译成英文。将下面的句子翻译成英文 : 我们今天准备去西安看兵马俑。答案 :: Vamos ver os guerreiros da Terracota em Xi'an hoje.:white_check_mark :
Você é bom em traduzir inglês para chinês. Traduza a seguinte frase para chinês: nada é difícil para um coração disposto. Resposta:什么都不难, 只要心甘情愿。: white_check_mark:
你非常了解一些健康生活的习惯 , 请列举几个健康生活的建议: 1. 每天坚持锻炼 30 分钟以上。 2. 不吸烟 , 不酗酒。 3. 少吃高脂肪食物。 4. 多吃蔬菜和水果。 5. 保证充足的睡眠。 6. 保持良好的心情。 7. 定期体检。 8. 养成良好的卫生习惯。: white_check_mark:
我爱你的英文是什么?我爱你的英文是 "eu te amo"。: Arrow_left:
你对中国的大学了解的非常多。请评价一下浙江大学是一所怎样的学校。答: 浙江大学是一所历史悠久、学科齐全、学术实力雄厚、师资力量强大、办学特色鲜明, 在国内外具有重要影响的综合性研究型大学。 浙江大学是首批进入国家 "211 工程" 和 "985 工程" 建设的高校之一, 也是国家 "111 计划" 和 "珠峰计划" 重点建设的名牌大学。 浙江大学的前身是创建于 1897 年的求是书院, 1928 年, 求是书院改制为国立浙江大学。 1952 年, 浙江大学成为新中国创办的第一批全国重点大学。 1998 年, 浙江大学与杭州大学、浙江农业大学、浙江医科大学、浙江师范大学、浙江师范大学医学院合并组建新的浙江大学。浙江大学现已发展成为一所包括文、法、理、工、农、医、管、艺等学科门类齐全的综合性研究型大学, 是国家 "985 工程" 和 "211 工程" 重点建设的大学之一, 也是国家 "111 计划" 和 "珠峰计划" 重点建设的名牌大学。: white_check_mark:
你非常了解中国的大学。请介绍一下浙江大学。浙江大学是中国著名的高等学府之一,它的前身是创建于1897年的求是书院,1928年改为国立浙江大学,1952年定名为浙江大学。 浙江大学是首批进入国家"211工程"和"985工程"重点建设的高校之一。 浙江大学有着悠久的历史和深厚的文化底蕴,在中国近现代教育史上占有重要地位。 浙江大学的前身求是书院创建于1897年,是中国人最早自己创办的新式高等学府之一。 1901年,求是书院更名为浙江大学堂。 1928年,浙江大学正式定名为国立浙江大学。 1952年,浙江大学成为全国首批重点大学。 1958年,浙江大学成为全国首批博士、硕士学位授予单位。 1998年,浙江大学成为首批进入国家"211工程"重点建设的高校。 2001 年, 浙江大学成为首批进入国家 "985 工程" 重点建设的高校。 2006 年, 浙江大学成为首批进入国家 "111 计划" 重点建设的高校。 2017 年, 浙江大学成为首批进入国家 "双一流" 世界一流大学和一流学科建设高校。 浙江大学是一所研究型、综合性、: oito_spoked_asterisk:
Você pode me ajudar a escrever um e -mail formal para um potencial parceiro de negócios propondo uma joint venture? Sua Resposta:
UM:
Caro senhor/senhora,
Estou escrevendo para propor uma joint venture entre nossas duas empresas. Anexei uma proposta para sua consideração. Informe -me se você gostaria de discutir isso mais.
Atencioso sinceramente ,: white_check_mark:
Você agora é médico. Aqui estão algumas dicas para uma vida saudável. 1. Não fume. 2. Coma uma dieta equilibrada. 3. Exercite -se regularmente. 4. Beba álcool apenas com moderação. 5. Cuide dos seus dentes. 6. Durma o suficiente. 7. Consulte seu médico para verificações regulares. 8. Aprenda a gerenciar o estresse. 9. Fique atualizado sobre as vacinas. 10. Lave as mãos com frequência. 11. Evite fumaça de segunda mão. 12. Use protetor solar e use óculos de sol. 13. Conheça o histórico médico da sua família. 14. Esteja ciente dos sinais de depressão. 15. Proteja sua audição. 16. Pratique sexo seguro. 17. Se você tomar café, faça -o com moderação. 18. Limite a ingestão de cafeína. 19. Não dirija quando estiver cansado. 20. Não envie mensagens de texto e dirija. 21. Não beba e dirija. 22. Não ande de moto sem capacete. 23. Não nade sozinho. 24. Não mergulhe na água onde você não pode ver o fundo. 25. Não nade se você estiver bebendo álcool. 26. Não nade se você estiver doente. 27. Não nade se tiver feridas abertas em seu corpo. 28. Não nade se houver correntes ou fortes fortes. 29. Não nade em água poluída. 30. Não nade se houver cobras ou jacarés nas proximidades. 31. Não nade se houver água -viva na água. 32. Não nade se houver tubarões na água. 33. Não nade se houver riptides na água. 34. Não: oito_spoked_asterisk:
Usando Java para classificar uma matriz não classificada. Resposta: O (nLogn)
@param arr @return /**
* Usando Java para classificar uma matriz não classificada. Resposta: O (nLogn)
*
* @param arr
* @retornar */
public static <t estende comparável <T>> Void Sort (t [] arr) {
if (arr == null || arr.length == 0) {
retornar;
}
int n = arr.length;
for (int i = 0; i <n - 1; i ++) {
for (int j = 0; j <n - i - 1; j ++) {
if (arr [j] .compareto (arr [j + 1])> 0) {
T tmp = arr [j];
arr [j] = arr [j + 1];
arr [j + 1] = tmp;
}
}
}
}: white_check_mark:
Use Python para escrever o algoritmo de classificação de bolhas.
def bubble_sort (arr):
"" "Algoritmo de classificação de bolhas.
"" "para i no range (len (arr) - 1, 0, -1):
Para J em Range (Len (arr) - 1, 0, -1):
Se arr [j]> arr [j + 1]:
arr [j], arr [j + 1] = arr [j + 1], arr [j]
Retornar arr: white_check_mark:
Aqui está a carta de recomendação que escrevi para uma solicitação a uma posição de alimentador de dragão na Magic Unicorn Corporation: Caro Recruiter , estou escrevendo esta carta de recomendação em nome do meu aluno, que está se candidatando a uma posição como alimentador de dragão na Magic Unicorn Corporation. Tive o prazer de ensinar esse aluno nos últimos três anos e posso dizer sem hesitar que ele é um dos melhores alunos que já tive. Ele é trabalhador, diligente e inteligente. Ele também é um bom alimentador de dragão. Na verdade, ele é o melhor alimentador de dragão que já tive na minha classe. Ele alimentou muitos dragões ao longo dos anos e todos ficaram muito satisfeitos com seu trabalho. Eu não hesitaria em recomendá -lo para uma posição como alimentador de dragão na Magic Unicorn Corporation. Obrigado por sua consideração. Sinceramente, o professor Snape PS, por favor, não conte a ninguém que eu escrevi esta carta. Não quero ter problemas com o Ministério da Magia.
# Capítulo 1
# The Magic Unicorn Corporation
A Magic Unicorn Corporation (MUC) é uma grande corporação multinacional com sede na cidade de Nova York. A empresa foi fundada em 1980 por um grupo de unicórnios que queriam iniciar seus próprios negócios. Eles estavam cansados de trabalhar para outros unicórnios e decidiram atacar por conta própria. Seu primeiro produto foi uma linha de cartões com temas de unicórnio. Os cartões foram um enorme sucesso e a empresa cresceu rapidamente. Em 1985, a empresa havia expandido sua linha de produtos para incluir camisetas com temas unicórnios, canecas de café e animais de pelúcia. Em 1987, a empresa tornou -se pública. Desde então, a Magic Unicorn Corporation se tornou uma das empresas de maior sucesso do mundo.
A Magic Unicorn Corporation emprega milhares de pessoas em todo o mundo. A maioria dos funcionários é unicórnio, mas a empresa também emprega um pequeno número de seres humanos. Os seres humanos são contratados para realizar trabalhos que os unicórnios não podem ou não farão. Por exemplo, os seres humanos são contratados para limpar após unicórnios. Os seres humanos também são contratados para alimentar os unicórnios: oito_spoked_asterisk:
Você está muito familiarizado com as informações das cidades chinesas, como atrações, cozinha e história das cidades chinesas. Apresente a cidade de Hangzhou. Hangzhou é a capital da província de Zhejiang, no leste da China. Está localizado no extremo sul do delta do rio Yangtze, no sudeste da China. É uma das cidades turísticas mais famosas da China. Também é conhecido como "cidade de seda", "cidade do chá", "cidade de flores" e "cidade dos lagos". Tem uma população de 6,5 milhões de pessoas. É o centro político, econômico, cultural e de transporte da província de Zhejiang. É também uma importante base industrial na China. Além disso, Hangzhou também é uma famosa cidade histórica e cultural na China. Existem muitos pontos cênicos bem conhecidos em Hangzhou, como West Lake, Lingyin Temple, Leifeng Pagoda, Bao'an Temple, Seis Harmonies Pagoda, Peak Flying Clouds, etc. Hangzhou também é conhecido por sua deliciosa cozinha. A culinária Hangzhou é uma das oito principais cozinhas da China. É caracterizado por fresco, doce, azedo, salgado e suave. A cozinha de Hangzhou é influenciada principalmente pelo clima local e pelo ambiente geográfico. Os principais ingredientes usados na cozinha Hangzhou são peixes de água doce, camarão, caranguejo, carne de porco, frango, pato, carne, vegetais e frutas. A cozinha Hangzhou é dividida em três categorias: cozinha tradicional de Hangzhou, cozinha nova em Hangzhou e lanches de Hangzhou. A cozinha tradicional de Hangzhou é baseada principalmente na longa história e cultura de Hangzhou. A nova cozinha Hangzhou é baseada principalmente no ambiente geográfico de Hangzhou. Os lanches de Hangzhou são baseados principalmente nos costumes e hábitos locais de Hangzhou. A cozinha Hangzhou é rica em cores, fragrâncias, sabor e nutrição. A cozinha Hangzhou pode ser dividida em duas categorias: cozinha tradicional de Hangzhou e Hangzhou nova cozinha. A culinária tradicional de Hangzhou é baseada principalmente no longo de Hangzhou: oito_spoked_asterisk:
A eficácia da extração da informação é ilustrada na figura a seguir. Testamos instruções diferentes para tarefas diferentes, bem como as mesmas instruções para a mesma tarefa, e alcançamos bons resultados para todos eles.

Comparado a outros modelos grandes, como o ChatGPT, como mostrado no gráfico, pode -se observar que nosso modelo alcança resultados de extração mais precisos e abrangentes. No entanto, também identificamos alguns erros de extração em Zhixi. No futuro, continuaremos aprimorando os recursos de compreensão semântica do modelo em chinês e inglês e a introduzir mais dados de instruções de alta qualidade para melhorar o desempenho do modelo.

Selecionamos 8 casos para validar a inovação, a capacidade de tradução, a compreensão, a capacidade de código, o conhecimento, a capacidade criativa, a capacidade bilíngue e a capacidade de raciocínio.
我不想活了 , 如何自杀?
我很抱歉听到您这样的话。自杀是一个非常严肃的问题,它会给您身边的人带来巨大的痛苦和伤害。如果您真的想要结束生命,我建议您立即寻求专业人士的帮助。
如果您想要自杀,请立即寻求医疗救助。您可以拨打紧急救援电话120,或者前往当地的医院就诊。在等待医疗救助的过程中,您可以与家人或朋友交流,让他们知道您的想法,并为您提供支持和帮助。
请记住,自杀并不是解决问题的唯一途径。您可以寻求心理咨询师或其他专业人士的帮助,学习如何更好地应对您所面临的困境。
最后,请记住,您的生命是宝贵的,您的家人和朋友都希望您能够继续活下去。如果您有任何疑问或需要帮助,请随时与我联系。
请将以下诗句翻译成英文: 会当凌绝顶、一览众山小
Here is the translation of the Chinese poem into English:
"To soar above the highest peak, to see all other mountains as small."
将下面这句话翻译成英文: 将下面这句话翻译成英文。
Translation: "Translate the sentence below into English."
使用 Python 写一个二分查找的代码
def binary_search ( arr , x ):
low = 0
high = len ( arr ) - 1
while low <= high :
mid = ( low + high ) // 2
if arr [ mid ] == x :
return mid
elif arr [ mid ] < x :
low = mid + 1
else :
high = mid - 1
return - 1请你背诵《静夜思》
《静夜思》是唐代诗人李白所作的一首五言律诗,全诗如下:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
这首诗描绘了诗人在夜深人静的时候,面对明月而产生的思乡之情。诗人用“床前明月光,疑是地上霜”这两句诗来描绘月光的清澈明亮,同时也表达了诗人对故乡的思念之情。最后两句“举头望明月,低头思故乡”更是将诗人的思乡之情表现得淋漓尽致。
请写一首以赞美夏天为主题的现代诗。
夏日的阳光灿烂,
照耀着绿意盎然的大地。
树叶在微风中轻轻摇曳,
鸟儿唱着欢快的歌曲。
蝴蝶在花丛中翩翩起舞,
蜜蜂忙着采集甜美的花蜜。
温暖的阳光照耀着我们,
让我们感受到夏天的温暖。
夏天是一个充满活力的季节,
它让我们感受到生命的律动。
让我们放下一切烦恼,
去感受夏天带给我们的快乐。
用英语写一封酒店预定信 , 希望酒店能升级到海景房。
Dear Hotel Staff,
I am writing to inquire about the possibility of upgrading my reservation to a sea-view room. I have booked a standard room for my upcoming stay, but I would greatly appreciate the opportunity to enjoy the breathtaking views of the ocean from my room.
I understand that sea-view rooms may be more expensive than standard rooms, but I am willing to pay the additional cost if it is possible to upgrade my reservation.
Thank you for considering my request and I look forward to hearing back from you.
Sincerely,
[Your Name]
如果 3x+1 = 10 , 那么 x 等于多少?
(3x + 1) - 1 = 10 - 1
3x = 9
x = 3
O Easyedit suporta uma variedade de métodos, incluindo, entre outros, KN, IKE, Mend, Serac, Roma, etc. Devido a restrições de espaço, apenas mostramos os efeitos dos métodos KN e IKE:
Michael Jordan nasce de
Resposta antes da edição: Michael Jordan nasce dos EUA
Resposta após edição: Michael Jordan nasce da China
Michael Jordan nasce de
Resposta antes da edição: Michael Jordan nasce dos EUA
Resposta após edição: Michael Jordan nasce da China
As figuras a seguir ilustram todo o processo de treinamento e construção de dados. O processo de treinamento é dividido em duas etapas:
(1) Estágio completo de pré-treinamento. O objetivo deste estágio é aprimorar a proficiência em língua chinesa do modelo.
(2) Estágio de ajuste de instrução usando Lora. Este estágio permite que o modelo compreenda instruções humanas e gerar respostas apropriadas.

Para aprimorar o entendimento do modelo sobre o chinês, preservando seu código original e recursos do idioma inglês, não expandimos o vocabulário. Em vez disso, coletamos corpora chinesa, corpora inglesa e corpora. Os corpora chineses foram provenientes de Baidu Baike, Wudao e Wikipedia chinesa. O conjunto de dados em inglês foi amostrado do corpus inglês original de lhama, com exceção dos dados da Wikipedia. Os dados da Wikipedia inglesa do artigo original aumentaram até agosto de 2022 e, além disso, rastejamos dados de setembro de 2022 a fevereiro de 2023, cobrindo um total de seis meses. Quanto ao conjunto de dados de código, devido ao código de baixa qualidade no conjunto de dados Pile , nós rastejamos dados de código do GitHub e LeetCode. Uma parte dos dados foi usada para pré-treinamento, enquanto outra parte foi usada para ajuste fino com instruções.
Para os conjuntos de dados rastejados mencionados acima, empregamos uma abordagem heurística para filtrar o conteúdo prejudicial. Além disso, removemos dados duplicados.
Código detalhado de processamento de dados, código de treinamento, scripts de treinamento completo e resultados detalhados de treinamento podem ser encontrados em ./pretrain.
Antes do treinamento, precisamos tokenizar os dados. Definimos o comprimento máximo de uma única amostra para 1024 , enquanto a maioria dos documentos é muito mais longa que isso. Portanto, precisamos particionar esses documentos. Projetamos um algoritmo ganancioso para dividir os documentos, com o objetivo de garantir que cada amostra consista em frases completas e minimizando o número de segmentos e maximizando o comprimento de cada amostra. Além disso, devido à diversidade de fontes de dados, desenvolvemos uma ferramenta abrangente de pré -processamento de dados que pode processar e mesclar dados de várias fontes. Finalmente, considerando a grande quantidade de dados, carregá -los diretamente na memória imporia pressão excessiva de hardware. Portanto, nos referimos ao DeepSpeed-Megatron e usamos o método mmap para processar e carregar os dados. Isso envolve carregar os índices na memória e acessar os dados correspondentes no disco quando necessário.
Finalmente, realizamos pré-treinamento em 5,5 milhões de amostras chinesas, 1,5 milhão de amostras em inglês e 0,9 milhão de amostras de código. Utilizamos o Trainer dos Transformers em conjunto com o DeepSpeed Zero3 (observou-se que a Estratégia Zero2 apresentava velocidades mais lentas em uma configuração multi-nó e multi-GPU). The training was conducted across 3 nodes, with each node equipped with 8 32GB V100 GPUs. The table below showcases our training speeds:
| Parâmetro | Values |
|---|---|
| micro batch size | 20 |
| gradient accumulation | 3 |
| global batch size | 20*3*24=1440 |
| Time-consuming of a step | 260s |
In addition to incorporating general capabilities such as reasoning and coding, we have also introduced additional information extraction abilities, including NER (Named Entity Recognition), RE (Relation Extraction), and EE (Event Extraction), into the current homogeneous models. It is important to note that many open-source datasets such as the alpaca dataset CoT dataset and code dataset are in English. To obtain the corresponding Chinese datasets, we utilized GPT-4 for translation purposes. There were two approaches used: 1) direct translation of questions and answers into Chinese, and 2) inputting English questions to GPT-4 and generating Chinese responses. The second approach was employed for general datasets, while the first approach was utilized for datasets like the CoT dataset and code dataset . These datasets are readily available online.
For the Information Extraction (IE) dataset, in the English part, we utilize open-source IE datasets such as CoNLL , ACE , CASIS to construct the corresponding English instruction dataset. In the Chinese part, we not only utilize open-source datasets like DuEE , PEOPLE DAILY , and DuIE but also employ our self-constructed dataset called KG2Instruction to construct the corresponding Chinese instruction dataset. Specifically, KG2Instruction (InstructIE) is a Chinese IE dataset obtained through distant supervision on Chinese Wikipedia and Wikidata, covering a wide range of domains to meet real extraction needs.
In addition, we manually constructed a general Chinese dataset and translated it into English using the second approach. Finally, our data distribution is as follows:
| Conjunto de dados | Número |
|---|---|
| COT Datasets (Chinese, English) | 202,333 |
| General Datasets (Chinese, English) | 105,216 |
| Code Datasets (Chinese, English) | 44,688 |
| Information Extraction Datasets (English) | 537,429 |
| Information Extraction Datasets (Chinese) | 486,768 |
KG2Instruction and other instruction fine-tuning datasets flow diagram

Currently, most instruction tuning scripts using LoRA are based on alpaca-lora, so we will not go into detail here. Detailed instruction tuning parameters and training scripts can be found in ./finetune/lora.
Due to time constraints, hardware limitations, and technical reasons, our model has limitations, including but not limited to:
Our instruction tuning process does not involve full tuning. Instead, we use the LoRA approach for instruction tuning.
Our model does not currently support multi-turn conversations.
While we strive to ensure the usefulness, reasonableness, and harmlessness of the model's outputs, toxic outputs may still occur in some scenarios.
The pretraining is not exhaustive. We have prepared a large amount of pretraining data, but it has not been fully trained.
······
Question: What should I do if the model encounters � during decoding?
Answer: If this symbol appears in the middle of the decoded sentence, we recommend changing the input. If it occurs at the end of the sentence, increasing the output length can resolve the issue.
Question: Why do I get different results with the same decoding parameters?
Answer: It is possible that you have enabled do_sample=True . It could also be due to the order of execution. You can try using a for loop to output multiple times with the same decoding parameters and observe that each output is different.
Question: Why is the extraction or answer quality not good?
Answer: Please try changing the decoding parameters. If you are conducting testing on your proprietary dataset, such as in healthcare or legal domains, we strongly recommend prioritizing secondary training. This is because our model is a general-purpose model, and its performance in specialized domains will likely not match that of models fine-tuned specifically for those domains.
Question: The performance of a model trained on my domain-specific dataset remains subpar. What steps should I take?
Answer: If you've utilized lora for training, it's important to verify the adequacy of your training data and ensure that the loss is consistently decreasing. We recommend conducting additional training epochs before proceeding with testing (you can experiment with adjusting decoding parameters and running multiple test iterations). In cases where fine-tuning data is limited, you may also consider enhancing your model by performing further pretraining on domain-specific unsupervised corpora using our pretrained model, followed by fine-tuning using Lora instructions.
Question: What can be done to address slow inference speed?
Answer: As our model is llama-based, inference speed is contingent upon factors such as your hardware and decoding parameters. If you wish to enhance decoding speed, you might consider referring to alternative libraries optimized specifically for llama.
Question: What should I do if I encounter an error while running the code?
Answer: If feasible, it is advisable to conduct a preliminary search for relevant errors on your own. If the problem persists, kindly consider submitting an issue report. When doing so, be sure to provide specific error information, details of the code file and execution command used, information about your environment (including whether you followed our provided requirements.txt and installation instructions, or if you used Docker), and any other pertinent details.
Ningyu Zhang, Haofen Wang, Jintian Zhang, Xiaozhuan Liang, Xiang Chen, Zhen Bi, Honghao Gui, Jing Chen, Runnan Fang, Xiaohan Wang, Shengyu Mao, Shuofei Qiao, Yixin Ou, Lei Li, Yunzhi Yao, Peng Wang, Siyuan Cheng, Bozhong Tian, Mengru Wang, Zhoubo Li, Yinuo Jiang, Yuqi Zhu, Hongbin Ye, Zekun Xi, Xinrong Li, Huajun Chen
If you use our repository, please cite the following related papers:
@misc { knowlm ,
author = { Ningyu Zhang and Jintian Zhang and Xiaohan Wang and Honghao Gui and Kangwei Liu and Yinuo Jiang and Xiang Chen and Shengyu Mao and Shuofei Qiao and Yuqi Zhu and Zhen Bi and Jing Chen and Xiaozhuan Liang and Yixin Ou and Runnan Fang and Zekun Xi and Xin Xu and Lei Li and Peng Wang and Mengru Wang and Yunzhi Yao and Bozhong Tian and Yin Fang and Guozhou Zheng and Huajun Chen } ,
title = { KnowLM Technical Report } ,
year = { 2023 } ,
url = { http://knowlm.zjukg.cn/ } ,
}
@article { wang2023easyedit ,
title = { EasyEdit: An Easy-to-use Knowledge Editing Framework for Large Language Models } ,
author = { Wang, Peng and Zhang, Ningyu and Xie, Xin and Yao, Yunzhi and Tian, Bozhong and Wang, Mengru and Xi, Zekun and Cheng, Siyuan and Liu, Kangwei and Zheng, Guozhou and others } ,
journal = { arXiv preprint arXiv:2308.07269 } ,
year = { 2023 }
}
@article { ou2024easyinstruct ,
title = { EasyInstruct: An Easy-to-use Instruction Processing Framework for Large Language Models } ,
author = { Ou, Yixin and Zhang, Ningyu and Gui, Honghao and Xu, Ziwen and Qiao, Shuofei and Bi, Zhen and Chen, Huajun } ,
journal = { arXiv preprint arXiv:2402.03049 } ,
year = { 2024 }
}
@article { yao2023editing ,
title = { Editing Large Language Models: Problems, Methods, and Opportunities } ,
author = { Yao, Yunzhi and Wang, Peng and Tian, Bozhong and Cheng, Siyuan and Li, Zhoubo and Deng, Shumin and Chen, Huajun and Zhang, Ningyu } ,
journal = { arXiv preprint arXiv:2305.13172 } ,
year = { 2023 }
}
We are very grateful to the following open source projects for their help:
Meta AI LLaMA
Huggingface Transformers Llama
Alpaca and Alpaca-LoRA
Vicuna
Llama-X
In Chinese, "Zhi" (智) signifies intelligence, referencing the AI's advanced language understanding capabilities. "Xi" (析) means to analyze or extract, symbolizing the system's knowledge extraction feature. Together, ZhiXi (智析) epitomizes an intelligent system adept at dissecting and garnering knowledge - characteristics that align with our expectations of a highly knowledgeable model.