-
Notifications
You must be signed in to change notification settings - Fork 27.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[docs] Spanish translate chat_templating.md & yml addition #29559
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @njackman-2344. Well done with the translation of es/chat_templating.md
, is a good one, just a few feedback.
On the other hand. Seems like you are pushing again your changes of your past PR in this new one, I thinks is better to wait to @stevhliu coments.
# Plantillas para Modelos de Chat | ||
|
||
## Introducción | ||
Un caso de uso cada vez más común para LLMs es **el chat**. En un contexto de chat, en lugar de continuar una única cadena de texto (como es el caso con un modelo de lenguaje estándar), el modelo continúa una conversación que consta de uno o más **mensajes**, cada uno de los cuales incluye un **rol**, como "usuario" o "asistente", así como el texto del mensaje. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember to add a empty line between paragraph. Also in line 177 and 178, and 357 and 358
docs/source/es/chat_templating.md
Outdated
|
||
## ¿Cómo uso las plantillas de chat? | ||
|
||
Como puedes ver en el ejemplo anterior, las plantillas de chat son fáciles de usar. Simplemente construye una lista de mensajes, con claves de `rol` y `contenido`, y luego pásala al método [`~PreTrainedTokenizer.apply_chat_template`]. Una vez que hagas eso, ¡obtendrás una salida lista para usar! Al utilizar plantillas de chat como entrada para la generación de modelos, también es una buena idea usar `add_generation_prompt=True` para agregar una [indicación de generación](#what-are-generation-prompts). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change the local link (#what-are-generation-prompts)
to (#¿Qué son los "generation prompts"?)
. Also in line 328.
docs/source/es/chat_templating.md
Outdated
|
||
## ¿Existe un pipeline automatizado para chats? | ||
|
||
Sí, lo hay! Nuestras canalizaciónes generalizadas del texto apoyan los aportes del chat, cual facilita más facíl utilizar los modelos de chat. En el pasado, solíamos utilizar una clase dedicada "ConversationalPipeline", pero ahora [`TextGenerationPipeline`]. Este pipeline está diseñado para facilitar el uso de modelos de chat. Intentemos el ejemplo de `Zephyr` de nuevo, pero esta vez utilizando el pipeline: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change " Nuestras canalizaciónes generalizadas del texto apoyan los aportes del chat" to "Nuestros canales de generación de texto admiten entradas de chat" for sound more natural.
And also translate and add the sentence about the deprecated of "ConversationalPipeline" that is missing in the paragraph.
docs/source/es/chat_templating.md
Outdated
}, | ||
{"role": "user", "content": "How many helicopters can a human eat in one sitting?"}, | ||
] | ||
print(pipe(messages)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line of the example code this different that the original English version. Same in line 130.
docs/source/es/chat_templating.md
Outdated
assistant: Matey, I'm afraid I must inform ye that humans cannot eat helicopters. Helicopters are not food, they are flying machines. Food is meant to be eaten, like a hearty plate o' grog, a savory bowl o' stew, or a delicious loaf o' bread. But helicopters, they be for transportin' and movin' around, not for eatin'. So, I'd say none, me hearties. None at all. | ||
``` | ||
|
||
La canalización se encargará de todos los detalles de tokenización y llamar a `apply_chat_template` por ti. Una vez que el modelo tenga una plantilla de chat, ¡todo lo que necesitas hacer es inicializar el pipeline y pasarle la lista de mensajes! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change "de tokenización y llamar a" to "de la tokenización y de llamar a"
docs/source/es/chat_templating.md
Outdated
"{% for message in messages %}{% if message['role'] == 'user' %}{{ ' ' }}{% endif %}{{ message['content'] }}{% if not loop.last %}{{ ' ' }}{% endif %}{% endfor %}{{ eos_token }}" | ||
``` | ||
|
||
¡Es un poco intimidante! Vamos a agregar algunas líneas nuevas e indentación para que sea más legible. Ten en cuenta que la primera línea nueva después de cada bloque, así como cualquier espacio en blanco precedente antes de un bloque, se ignoran de forma predeterminada, utilizando las banderas `trim_blocks` y `lstrip_blocks` de Jinja. Sin embargo, ¡ten cuidado! Aunque el espacio en blanco inicial en cada línea se elimina, los espacios entre bloques en la misma línea no lo son. ¡Te recomendamos encarecidamente que verifiques que tu plantilla no esté imprimiendo espacios adicionales donde no debería estarlo! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change “líneas nuevas e indentación” to “líneas nuevas y sangria”.
Change “así como cualquier espacio en blanco precedente antes de un bloque” to “así como cualquier espacio en blanco anterior a un bloque”. For sound more natural.
And remove “lo son” in “los espacios entre bloques en la misma línea no lo son.”
docs/source/es/chat_templating.md
Outdated
``` | ||
|
||
Efectivamente, la plantilla hace tres cosas: | ||
1.Para cada mensaje, si el mensaje es un mensaje de usuario, añade un espacio en blanco antes de él, de lo contrario no imprime nada. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add the space after the number of the list: 1.Para
-> 1. Para
docs/source/es/chat_templating.md
Outdated
|
||
Antes de la introducción de las plantillas de chat, el manejo del chat estaba codificado en el nivel de la clase del modelo. Por razones de compatibilidad con versiones anteriores, hemos conservado este manejo específico de la clase como plantillas predeterminadas, también establecidas a nivel de clase. Si un modelo no tiene una plantilla de chat establecida, pero hay una plantilla predeterminada para su clase de modelo, la clase `TextGenerationPipeline` y métodos como `apply_chat_template` usarán la plantilla de clase en su lugar. Puedes averiguar cuál es la plantilla predeterminada para tu tokenizador comprobando el atributo `tokenizer.default_chat_template`. | ||
|
||
Esto es algo que hacemos puramente por razones de compatibilidad con versiones anteriores, para evitar romper cualquier flujo de trabajo existente. Incluso cuando la plantilla de clase es apropiada para tu modelo, recomendamos encarecidamente anular la plantilla predeterminada estableciendo explícitamente el atributo `chat_template` para dejar claro a los usuarios que tu modelo ha sido configurado correctamente para el chat, y para futurizar en caso de que las plantillas predeterminadas alguna vez se alteren o se eliminen. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change “y para futurizar en caso de que las plantillas” to “y para estar preparados para el futuro en caso de que las plantillas”. To sound more natural
docs/source/es/chat_templating.md
Outdated
|
||
Cuando establezcas la plantilla para un modelo que ya ha sido entrenado para chat, debes asegurarte de que la plantilla coincida exactamente con el formato de mensajes que el modelo vio durante el entrenamiento, o de lo contrario es probable que experimentes degradación del rendimiento. Esto es cierto incluso si estás entrenando aún más el modelo; probablemente obtendrás el mejor rendimiento si mantienes constantes los tokens de chat. Esto es muy análogo a la tokenización: generalmente obtienes el mejor rendimiento para la inferencia o el ajuste fino cuando coincides precisamente con la tokenización utilizada durante el entrenamiento. | ||
|
||
Si estás entrenando un modelo desde cero o ajustando finamente un modelo de lenguaje base para chat, por otro lado, ¡tienes mucha libertad para elegir una plantilla apropiada! Los LLM son lo suficientemente inteligentes como para aprender a manejar muchos formatos de entrada diferentes. Nuestra plantilla predeterminada para modelos que no tienen una plantilla específica de clase sigue [el formato ChatML](https://github.com/openai/openai-python/blob/main/chatml.md), y esta es una buena elección flexible para muchos casos de uso. Se ve así: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link to ChatML format is generate a 404 error in both version en/ and es/. Seems like the file has been remove from that repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's remove the link to it since it's been removed from the openai-python
repo and hasn't been updated. WDYT @Rocketknight1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, agreed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM and kudos all around for the translation and review! 👏
I think you can rebase your PR on main
so that you're only making changes to chat_templating.md
.
docs/source/es/chat_templating.md
Outdated
|
||
Cuando establezcas la plantilla para un modelo que ya ha sido entrenado para chat, debes asegurarte de que la plantilla coincida exactamente con el formato de mensajes que el modelo vio durante el entrenamiento, o de lo contrario es probable que experimentes degradación del rendimiento. Esto es cierto incluso si estás entrenando aún más el modelo; probablemente obtendrás el mejor rendimiento si mantienes constantes los tokens de chat. Esto es muy análogo a la tokenización: generalmente obtienes el mejor rendimiento para la inferencia o el ajuste fino cuando coincides precisamente con la tokenización utilizada durante el entrenamiento. | ||
|
||
Si estás entrenando un modelo desde cero o ajustando finamente un modelo de lenguaje base para chat, por otro lado, ¡tienes mucha libertad para elegir una plantilla apropiada! Los LLM son lo suficientemente inteligentes como para aprender a manejar muchos formatos de entrada diferentes. Nuestra plantilla predeterminada para modelos que no tienen una plantilla específica de clase sigue [el formato ChatML](https://github.com/openai/openai-python/blob/main/chatml.md), y esta es una buena elección flexible para muchos casos de uso. Se ve así: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's remove the link to it since it's been removed from the openai-python
repo and hasn't been updated. WDYT @Rocketknight1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! My final comments would be:
-
In
Introducción
section, add an empty line between paragraphs and the title. -
In line 113: Change “cual facilita más facíl utilizar los modelos de chat” to “el cual facilita utilizar los modelos de chat”. And change “pero ahora la ha sido hecho obsoleta y se une con la nueva clase [TextGenerationPipeline].” to “pero ahora ha quedado obsoleta y su funcionalidad se ha fusionado en [TextGenerationPipeline].”
-
Remove the extra “de” in “de de la tokenización” in line 134.
Thank you @aaronjimv @stevhliu !! |
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
* torchscript and trainer md es translation * corrected md es files and even corrected spelling in en md * made es corrections to trainer.md * deleted entrenamiento... title on yml * placed entrenamiento in right place * translated es chat_templating.md w/ yml addition * requested es changes to md and yml * last es changes to md
What does this PR do?
Translates chat_templating.md to Spanish and _toctree.yml addition to include local and title
Fixes # docs (can input new issue since last one was merged)
Before submitting
Pull Request section?
to it if that's the case.
documentation guidelines, and
here are tips on formatting docstrings.
Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.
@stevhliu @aaronjimv
Thanks again! Let me know of anymore changes.