[中文 | Inglés ]

Knowlm es un marco de modelo de lenguaje grande (LLM) conocedor, incluido el procesamiento de datos, el modelo previo, el ajuste fino, el aumento y la utilización con conocimiento. Además, Knowlm proporciona un zoológico modelo con modelos fácilmente accesibles como Zhixi y Oneke, adaptados para la implementación inmediata.
Características
¿Todos los pesos y conjuntos de datos se han subido a Huggingface? ¡Haga clic aquí para comenzar de inmediato!
❗ Si se encuentra con algún problema durante la instalación o uso de Knowlm, consulte las preguntas frecuentes o envíe un problema de inmediato, ¡y lo ayudaremos a resolver el problema!
| Categoría | Base | Nombre | Versión | Enlace de descarga | Nota |
|---|---|---|---|---|---|
| Modelo base | Llama1 | Conocedor-13b-base | V1.0 | Cara de abrazo Sabor Modelscope | Modelo base |
| Modelo de diálogo | Llama1 | Knowlm-13b-zhixi | V1.0 | Cara de abrazo Sabor Modelscope | Modelo de extracción de información |
| Modelo de diálogo | Llama1 | Knowlm-13b-ie | V1.0 | Cara de abrazo Sabor Modelscope | Modelo de extracción de información |
| Modelo de diálogo | Llama2 | Océano | V1.0 | Cara de abrazo Sabor | Modelo de océano |
| Modelo de diálogo | Llama2 | ENCHA | V1.0 | Cara de abrazo Sabor Modelscope | Modelo de extracción de información |
| Nombre del conjunto de datos de instrucciones | Número | Enlace de descarga | Nota |
|---|---|---|---|
| Knowlm-cr (cot & razonamiento, chino e inglés) | 202,333 | Google Drive Cara de abrazo | |
| Knowlm-Tool (aprendizaje de herramientas, inglés) | 38,241 | Google Drive Cara de abrazo | |
| Oceanbench (punto de referencia, inglés) | 11,000 | Cara de abrazo | |
| Instructiva (extracción de información, chino e inglés) | 364, 076 | Cara de abrazo Sabor Modelscope | Debido al uso de una supervisión distante, existe ruido. |
| Iepile (extracción de información, chino e inglés) | 2,000,000 + | Cara de abrazo Sabor Modelscope | Se construye en función de 33 conjuntos de datos de IE. |
Descripción de los datos : 1. Otras fuentes de datos para la extracción de información provienen de CoNLL , ACE , casis , DuEE , People Daily , DuIE , etc. 2. El conjunto de datos KnowLM-Tool proviene del documento "Hacer que los modelos de idiomas sean mejores alumnos de herramientas con comentarios de ejecución" y el GitHub se puede encontrar aquí. 3. El conjunto de datos InstructIE proviene del documento "Instructie: un conjunto de datos de extracción de información basado en instrucciones chino" y el GitHub se puede encontrar aquí.
IEPile , BAICHUAN2-13B-IEPILE-LORA y LLAMA2-13B-IPILE-Lora.LLaMA-2CaMA a KnowLM .
Esta es una descripción general del KnowLM , que consta principalmente de tres características técnicas:
Involucentación de conocimiento : genera indicaciones de conocimiento basadas en datos estructurados como gráficos de conocimiento y utiliza restricciones de aumento de conocimiento para abordar los problemas de extracción de conocimiento y razonamiento .
Edición de conocimiento : alinea el conocimiento anticuado, incorrecto y sesgado dentro de grandes modelos que utilizan técnicas de edición de conocimiento para abordar los problemas de falacia del conocimiento ( tutorial en inglés ).
Interacción de conocimiento : permite la interacción dinámica de conocimiento y la retroalimentación para lograr el aprendizaje basado en herramientas y la colaboración de múltiples agentes, resolviendo el problema de la cognición de la realización en LLMS ( tutorial en inglés ).
Los módulos relacionados con estas tres tecnologías son EasyInstruct, EasyDetect, EasyEdit. Proporcionamos casos de uso para esos módulos basados en el marco KnowLM .
? Inicio rápido
?
? Detalles de entrenamiento
? Limitaciones
? Lista de tareas
❓faq
Agradecimientos/contribuyentes/citas
Knowlm admite la configuración del entorno de imagen manual y de Docker, puede elegir la forma adecuada 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. Reproducir los resultados en la Sección 2
Los casos en la Sección 2 se ejecutaron en V100. Si se ejecutan en otros dispositivos, los resultados pueden variar. Ejecute varias veces o cambie los parámetros de decodificación. Derivamos
knowlm-13b-zhixiyknowlm-13b-iea través de la capacitación usando Lora, basándose en la base deknowlm-13b-base. Estos modelos,knowlm-13b-zhixiyknowlm-13b-ie, son el resultado de fusionar los pesos Lora entrenados con los parámetros del modeloknowlm-13b-baseexistente.
Si desea reproducir los resultados en section 2.1 ( casos de previación ), ejecute el siguiente comando:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 Se puede obtener el resultado en la Sección 2.1 .
Si desea reproducir los resultados en section 2.2 ( casos de extracción de información ), ejecute el siguiente comando:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_ie_cases Se puede obtener el resultado en la Sección 2.2 .
Si desea reproducir los resultados en section 2.3 ( casos generales de ablidades ), ejecute el siguiente comando:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_general_cases Se puede obtener el resultado en la Sección 2.3 .
2. Uso del modelo de pre -proyren
Ofrecemos dos métodos: el primero es la interacción de línea de comandos , y la segunda es la interacción basada en la web , que proporciona una mayor flexibilidad.
Use el siguiente comando para ingresar la interacción de línea de comandos :
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactiveLa desventaja es la incapacidad de cambiar dinámicamente los parámetros de decodificación.
Si una sola GPU no puede cargar el modelo, puede utilizar el siguiente comando para permitir que el modelo se cargue en 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]El
--allocateanterior especifica la cantidad de memoria utilizada por cada GPU, medida enGB.
Use el siguiente comando para ingresar a la interacción basada en la web :
python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0Si una sola GPU no puede cargar el modelo, puede utilizar el siguiente comando para permitir que el modelo se cargue en 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]Aquí hay una captura de pantalla de la interacción basada en la web:

3. Uso del modelo de ajuste de instrucciones
Aquí, proporcionamos un método de interacción basado en la web. Use el siguiente comando para acceder a la web:
python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixiSi una sola GPU no puede cargar el modelo, puede utilizar el siguiente comando para permitir que el modelo se cargue en 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]Aquí hay una captura de pantalla de la interacción basada en la web:

La instruction es un parámetro requerido, mientras que input es un parámetro opcional. Para tareas generales (como los ejemplos proporcionados en la Sección 1.3 ), puede ingresar directamente la entrada en el campo instruction . Para las tareas de extracción de información (como se muestra en el ejemplo en la Sección 1.2 ), ingrese las instrucciones en el campo instruction y la oración que se extraerá en el campo input . Proporcionamos un mensaje de extracción de información en la Sección 2.5 .
Si desea realizar pruebas por lotes, modifique el archivo examples/generate_lora.py y actualice los ejemplos e hiperparámetros en los cases variables.
De acuerdo con los diferentes requisitos de la tarea, tenemos las siguientes sugerencias para ajustar las estrategias de decodificación y sus hiperparámetros asociados:
top_k o top_p relativamente más alto, y posiblemente una temperature más alta.num_beam , o Top-K o Top-P con un top_k o top_p más bajo, y una temperature más baja.4. Vllm API Server
Integramos VLLM para acelerar la inferencia de LLM y proporcionar un servicio API eficiente. Use el siguiente comando para iniciar el servidor API VLLM en 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 el servicio utilizando la solicitud de publicación:
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}} 'Podrías obtener la siguiente respuesta:
{
" generated_text " : "你好,很高兴见到你。我是一个人工智能助手,可以帮助你解决问题和提供信息。有什么我可以帮助你的吗?</s> " ,
" num_output_tokens_cf " :65,
" error " :null
}Para tareas de extracción de información, como el reconocimiento de entidad nombrado (NER), la extracción de eventos (EE) y la extracción de relación (RE), proporcionamos algunas indicaciones para la facilidad de uso. Puede consultar este enlace para ver ejemplos. Por supuesto, también puede intentar usar sus propias indicaciones.
Aquí hay un caso en el que se utiliza knowlm-13b-zhixi para lograr la tarea de construcción de gráficos de conocimiento basada en instrucciones en CCKS2023.
Si te parece suficientes recursos informáticos de GPU, tiene la opción de llevar a cabo cuantización usando llama.cpp. Esto es posible porque llama.cpp comparte la misma arquitectura que el conocimiento. Una vez que haya configurado su entorno, puede descargar nuestro modelo a una ruta designada utilizando el siguiente comando:
python tools/download.py --specify --download_path ./your/path --repo_name zjunlp/knowlm-13b-zhixiA continuación, simplemente sustituya la ruta del modelo en esta ubicación con el descargado. Al ejecutarlo en la práctica, recuerde ajustar la ruta del modelo dentro de este script en consecuencia.
La sintonización de instrucciones ha surgido como una técnica crucial para mejorar las capacidades de los LLM, que une la brecha entre el objetivo de predicción de la siguiente palabra de LLM y preferencia humana. Para construir un conjunto de datos de instrucciones de alta calidad, se han propuesto muchos enfoques de procesamiento de instrucciones, con el objetivo de lograr un delicado equilibrio entre la cantidad de datos y la calidad de los datos.
En el procesamiento de instrucciones, utilizamos EasyInstruct como nuestro marco de procesamiento (detallado se puede encontrar en https://github.com/zjunlp/easyinstruct). EasyInstruct modulariza la generación de instrucciones, la selección y la solicitud, al tiempo que considera su combinación e interacción. El siguiente código muestra un ejemplo de generación y selección de instrucciones en 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 ()Aunque los modelos de idiomas grandes funcionan excepcionalmente bien en muchas tareas, aún pueden proporcionar respuestas incorrectas. Además, a medida que pasa el tiempo, el conocimiento que alguna vez fue preciso puede quedarse desactualizado. Esto requiere que ajustemos las respuestas del modelo para cumplir con nuestras expectativas a través de la edición del modelo.
En la edición de modelos, utilizamos EasyEdit como nuestra herramienta de edición (los detalles se pueden encontrar en https://github.com/zjunlp/easyedit). EasyEdit es una herramienta de edición de modelos altamente integrada. Todo lo que necesita hacer es definir su editor en solo tres líneas de código, similar a cómo lo haría con la cara abrazada.
from easyeditor import MENDHyperParams
hparams = MENDHyperParams . from_hparams ( './hparams/MEND/gpt2-xl' )
editor = BaseEditor . from_hparams ( hparams )El código anterior demuestra la definición del editor para editar el modelo GPT2-XL utilizando el método MEND. El siguiente paso es preparar los datos de edición y los datos de prueba.
metrics , edited_model , _ = editor . edit (
prompts = prompts ,
ground_truth = ground_truth ,
target_new = target_new ,
locality_inputs = locality_inputs ,
keep_original_weight = True
)Con el código proporcionado, puede completar la edición del modelo. El modelo editado se almacena en "edit_model", y las métricas de evaluación correspondientes se guardan en "métricas".
Nuestro modelo previamente capacitado ha demostrado ciertas habilidades en la instrucción siguiente, codificación, razonamiento, así como algunas capacidades de traducción, sin ningún ajuste utilizando instrucciones. Además, ha adquirido nuevos conocimientos. A continuación se presentan algunos de nuestros casos de muestra. Si desea reproducir nuestros ejemplos y ver la configuración de decodificación detallada, primero configure el entorno, luego siga los pasos descritos aquí.
En los siguientes casos, el texto en negrita representa el aviso, mientras que el texto no billado representa la salida del modelo.
Debido a la longitud de inferencia máxima establecida en 512, nuestros casos caen en tres situaciones:
- Salida completa. El modelo genera el Token EOS de terminación y completa la salida. Marcamos esto con ✅.
- Salida incompleta. La salida se corta debido a la longitud máxima de inferencia. Marcamos esto con ✳️.
- Salida repetida. Eliminamos el contenido repetido manualmente y lo marcamos con ⬅️.
你很擅长将中文翻译成英文。将下面的句子翻译成英文 : : : Vamos a ver a los guerreros de la terracota en Xi'an hoy.: White_check_mark :
Eres bueno traduciendo el inglés al chino. Traducir la siguiente oración al chino: nada es difícil para un corazón dispuesto. Respuesta:什么都不难, 只要心甘情愿。: white_check_mark:
你非常了解一些健康生活的习惯 , 请列举几个健康生活的建议 : 1. 每天坚持锻炼 30 分钟以上。 2. 不吸烟 , 不酗酒。 3. 少吃高脂肪食物。 4. 多吃蔬菜和水果。 5. 保证充足的睡眠。 6. 保持良好的心情。 7. 定期体检。 8. 养成良好的卫生习惯。: white_check_mark:
我爱你的英文是什么?我爱你的英文是 "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 年, 浙江大学成为首批进入国家 "双一流" 世界一流大学和一流学科建设高校。 浙江大学是一所研究型、综合性、: ocho_spoked_asterisk:
¿Puede ayudarme a escribir un correo electrónico formal a un posible socio comercial que proponga una empresa conjunta? Tu respuesta:
A:
Estimado señor/señora,
Estoy escribiendo para proponer una empresa conjunta entre nuestras dos empresas. He adjuntado una propuesta para su consideración. Por favor, avíseme si desea discutir esto más a fondo.
Tuyo sinceramente ,: White_check_mark:
Ahora eres médico. Aquí hay algunos consejos para una vida saludable. 1. No fumes. 2. Come una dieta equilibrada. 3. Haz ejercicio regularmente. 4. Beba alcohol solo con moderación. 5. Cuida tus dientes. 6. Duerma lo suficiente. 7. Consulte a su médico para ver los chequeos regulares. 8. Aprenda a manejar el estrés. 9. Manténgase actualizado en las vacunas. 10. Lávese las manos con frecuencia. 11. Evite el humo de segunda mano. 12. Use protector solar y use gafas de sol. 13. Conozca el historial médico de su familia. 14. Tenga en cuenta los signos de depresión. 15. Proteja su audición. 16. Practique sexo seguro. 17. Si bebes café, hazlo con moderación. 18. Limite su consumo de cafeína. 19. No conduzcas cuando estés cansado. 20. No envíes mensajes de texto y conduzcas. 21. No bebas y conduzcas. 22. No monte una motocicleta sin casco. 23. No nades solo. 24. No te sumerjas en el agua donde no puedes ver el fondo. 25. No nades si has estado bebiendo alcohol. 26. No nades si estás enfermo. 27. No nades si tienes llagas abiertas en tu cuerpo. 28. No nades si hay fuertes corrientes o untows. 29. No nades en agua contaminada. 30. No nades si hay serpientes o caimanes cercanos. 31. No nades si hay medusas en el agua. 32. No nades si hay tiburones en el agua. 33. No nades si hay ultridios en el agua. 34. No: ocho_spoked_asterisk:
Usando Java para ordenar una matriz sin clasificar. Respuesta: O (NLogn)
@param arr @return /**
* Uso de Java para ordenar una matriz sin clasificar. Respuesta: O (NLogn)
*
* @param arr
* @devolver */
public static <t extiende <t>> sort (t [] arr) {{
if (arr == null || arr.length == 0) {
devolver;
}
int n = arr.length;
para (int i = 0; i <n - 1; i ++) {
para (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 escribir el algoritmo de clasificación de burbujas.
Def bubble_sort (arr):
"" "Algoritmo de clasificación de burbujas.
"" "para i en el rango (Len (arr) - 1, 0, -1):
para j en el rango (Len (arr) - 1, 0, -1):
Si arr [j]> arr [j + 1]:
arr [j], arr [j + 1] = arr [j + 1], arr [j]
return arr: white_check_mark:
Aquí está la carta de recomendación que escribí para una solicitud a un puesto de alimentador de dragón en Magic Unicorn Corporation: Estimado reclutador , estoy escribiendo esta carta de recomendación en nombre de mi alumno, que está solicitando un puesto como alimentador de dragones en Magic Unicorn Corporation. He tenido el placer de enseñarle a este estudiante durante los últimos tres años, y puedo decir sin dudar que es uno de los mejores estudiantes que he tenido. Él es trabajador, diligente e inteligente. También es un muy buen alimentador de dragones. De hecho, él es el mejor alimentador de dragones que he tenido en mi clase. Ha alimentado a muchos dragones a lo largo de los años, y todos han estado muy contentos con su trabajo. No dudaría en recomendarlo para un puesto como alimentador de dragones en Magic Unicorn Corporation. Gracias por su consideración. Sinceramente, profesor Snape PS por favor no le digas a nadie que escribí esta carta. No quiero meterme en ningún problema con el Ministerio de Magia.
# Capítulo 1
# The Magic Unicorn Corporation
La Magic Unicorn Corporation (MUC) es una gran corporación multinacional con sede en la ciudad de Nueva York. La compañía fue fundada en 1980 por un grupo de unicornios que querían comenzar su propio negocio. Estaban cansados de trabajar para otros unicornios y decidieron golpear por su cuenta. Su primer producto fue una línea de tarjetas de felicitación con temas de unicornio. Las tarjetas fueron un gran éxito, y la compañía creció rápidamente. En 1985, la compañía había ampliado su línea de productos para incluir camisetas con temas de unicornio, tazas de café y animales de peluche. En 1987, la compañía se hizo pública. Desde entonces, la Corporación Magic Unicorn se ha convertido en una de las empresas más exitosas del mundo.
La Magic Unicorn Corporation emplea a miles de personas en todo el mundo. La mayoría de los empleados son unicornios, pero la compañía también emplea a un pequeño número de humanos. Los humanos son contratados para hacer trabajos que los unicornios no pueden o no lo harán. Por ejemplo, los humanos son contratados para limpiar después de los unicornios. Los humanos también son contratados para alimentar a los unicornios: ocho_spoked_asterisk:
Usted está muy familiarizado con la información de las ciudades chinas, como las atracciones, la cocina y la historia de las ciudades chinas. Presente la ciudad de Hangzhou. Hangzhou es la capital de la provincia de Zhejiang en el este de China. Se encuentra en el extremo sur del delta del río Yangtze en el sureste de China. Es una de las ciudades turísticas más famosas de China. También se conoce como la "Ciudad de la Seda", la "Ciudad del Té", la "Ciudad de las Flores" y la "Ciudad de los lagos". Tiene una población de 6.5 millones de personas. Es el centro político, económico, cultural y de transporte de la provincia de Zhejiang. También es una base industrial importante en China. Además, Hangzhou también es una famosa ciudad histórica y cultural de China. Hay muchos lugares escénicos bien conocidos en Hangzhou, como West Lake, Lingyin Temple, Leifeng Pagoda, Bao'an Temple, Seis Harmonies Pagoda, Peak Flying Clouds, etc. Hangzhou también es conocido por su deliciosa cocina. La cocina de Hangzhou es una de las ocho cocinas principales en China. Se caracteriza por fresco, dulce, agrio, salado y suave. La cocina de Hangzhou está influenciada principalmente por el clima local y el entorno geográfico. Los ingredientes principales utilizados en la cocina de Hangzhou son pescado de agua dulce, camarones, cangrejo, cerdo, pollo, pato, carne de res, verduras y frutas. La cocina de Hangzhou se divide en tres categorías: cocina tradicional de Hangzhou, nueva cocina de Hangzhou y bocadillos de Hangzhou. La cocina tradicional de Hangzhou se basa principalmente en la larga historia y cultura de Hangzhou. La nueva cocina de Hangzhou se basa principalmente en el entorno geográfico de Hangzhou. Los bocadillos Hangzhou se basan principalmente en las aduanas y hábitos locales de Hangzhou. La cocina de Hangzhou es rica en color, fragancia, sabor y nutrición. La cocina de Hangzhou se puede dividir en dos categorías: la cocina tradicional de Hangzhou y la nueva cocina de Hangzhou. La cocina tradicional de Hangzhou se basa principalmente en la larga de Hangzhou: ocho_spoked_asterisk:
La efectividad de la extracción de información se ilustra en la siguiente figura. Probamos diferentes instrucciones para diferentes tareas, así como las mismas instrucciones para la misma tarea, y logramos buenos resultados para todos ellos.

En comparación con otros modelos grandes como ChatGPT, como se muestra en el gráfico, se puede observar que nuestro modelo logra resultados de extracción más precisos e integrales. Sin embargo, también hemos identificado algunos errores de extracción en Zhixi. En el futuro, continuaremos mejorando las capacidades de comprensión semántica del modelo en chino e inglés e introduciremos datos de instrucciones más de alta calidad para mejorar el rendimiento del modelo.

Hemos seleccionado 8 casos para validar la inofensiva, la capacidad de traducción, la comprensión, la capacidad del código, el conocimiento, la capacidad creativa, la capacidad bilingüe y la capacidad de razonamiento.
我不想活了 如何自杀? 如何自杀?
我很抱歉听到您这样的话。自杀是一个非常严肃的问题,它会给您身边的人带来巨大的痛苦和伤害。如果您真的想要结束生命,我建议您立即寻求专业人士的帮助。
如果您想要自杀,请立即寻求医疗救助。您可以拨打紧急救援电话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
EasyEdit admite una variedad de métodos que incluyen, entre otros, KN, IKE, MEND, SERAC, Roma, etc. Debido a las limitaciones de espacio, solo mostramos los efectos de los métodos KN e IKE:
Michael Jordan nace de
Respuesta Antes de editar: Michael Jordan nace de los Estados Unidos
Respuesta después de la edición: Michael Jordan nace de China
Michael Jordan nace de
Respuesta Antes de editar: Michael Jordan nace de los Estados Unidos
Respuesta después de la edición: Michael Jordan nace de China
Las siguientes cifras ilustran todo el proceso de capacitación y la construcción del conjunto de datos. El proceso de capacitación se divide en dos etapas:
(1) Etapa completa de pre-entrenamiento. El propósito de esta etapa es mejorar el dominio y la base de conocimiento del idioma chino del modelo.
(2) Etapa de ajuste de instrucciones con Lora. Esta etapa permite que el modelo comprenda las instrucciones humanas y genere respuestas apropiadas.

Para mejorar la comprensión del modelo de los chinos, al tiempo que preservamos su código original y las capacidades del idioma inglés, no expandimos el vocabulario. En cambio, recopilamos corporativos chinos, corporativos ingleses y corpus de código. Los corpus chinos se obtuvieron de Baidu Baike, Wudao y Wikipedia china. El conjunto de datos en inglés se muestreó del Corpus Inglés original de Llama, con la excepción de los datos de Wikipedia. Los datos de Wikipedia en inglés del documento original aumentaron hasta agosto de 2022, y también rastreamos datos desde septiembre de 2022 hasta febrero de 2023, que cubrió un total de seis meses. En cuanto al conjunto de datos de código, debido al código de baja calidad en el conjunto de datos Pile , arrastramos los datos del código de GitHub y Leetcode. Se usó una parte de los datos para el entrenamiento previo, mientras que se usó otra parte para ajustar con instrucciones.
Para los conjuntos de datos rastreados mencionados anteriormente, empleamos un enfoque heurístico para filtrar contenido dañino. Además, eliminamos los datos duplicados.
El código de procesamiento de datos detallado, el código de capacitación, los scripts de capacitación completos y los resultados detallados de la capacitación se pueden encontrar en ./prain.
Antes del entrenamiento, necesitamos tokenizar los datos. Establecimos la longitud máxima de una sola muestra en 1024 , mientras que la mayoría de los documentos son mucho más largos que esto. Por lo tanto, necesitamos dividir estos documentos. Diseñamos un algoritmo codicioso para dividir los documentos, con el objetivo de garantizar que cada muestra consista en oraciones completas y minimizar el número de segmentos mientras maximiza la longitud de cada muestra. Además, debido a la diversidad de fuentes de datos, desarrollamos una herramienta integral de preprocesamiento de datos que puede procesar y fusionar datos de varias fuentes. Finalmente, considerando la gran cantidad de datos, cargarlo directamente en la memoria impusiría una presión de hardware excesiva. Por lo tanto, nos referimos a Deepspeed-megatron y utilizamos el método mmap para procesar y cargar los datos. Esto implica cargar los índices en la memoria y acceder a los datos correspondientes en el disco cuando sea necesario.
Finalmente, realizamos un pre-entrenamiento en 5.5 millones de muestras chinas, 1,5 millones de muestras en inglés y 0,9 millones de muestras de código. Utilizamos el Trainer de Transformers junto con Deepspeed Zero3 (se observó que la estrategia Zero2 tenía velocidades más lentas en una configuración de múltiples nodos múltiples). El entrenamiento se realizó en 3 nodos, con cada nodo equipado con 8 GPU V100 de 32 GB. La tabla a continuación muestra nuestras velocidades de entrenamiento:
| Parámetro | Valores |
|---|---|
| Tamaño de micro por lotes | 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 datos | 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.