The Encode and EncodeBatch methods methods unnecessarily require std::string instances
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- cpp
- Área
- backend-api-design
Línea de trabajo
Comienza con las declaraciones públicas de Encode y EncodeBatch descritas en el issue en la revisión acbdc5a2 y, a continuación, inspecciona las referencias de strings relacionadas en todo el repositorio. Revisa el parche adjunto tokenizers-cpp-0.1.1.patch y verifica que el proyecto se compile después de que los parámetros de la API usen string views sin requerir copias de strings.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In projects that use plain C strings or std::string_view, methods like Encode and EncodeBatch construct rather large strings, which increases memory allocations and copies. If these methods are declared to take string views, like shown below, then no extra allocation and copying will be performed.
- virtual std::vector<int32_t> Encode(const std::string& text) = 0;
+ virtual std::vector<int32_t> Encode(const std::string_view& text) = 0;
Seeing how some pull requests are sitting in the queue for over a year, I won't create one, but you can apply the patch attached to this post to change all string references to string views, which will work for both, strings and string views.
The source at the release tag is broken (see another issue I created), so this patch is against the hash acbdc5a2, and can be applied with this command, assuming it runs in a directory above tokenizers-cpp-0.0.1 (otherwise remove -d tokenizers-cpp-0.0.1).
patch --unified -p1 -d tokenizers-cpp-0.0.1 --input ../patches/tokenizers-cpp-0.0.1.patch
- Lenguaje dominante
- C++
- Estrellas
- 512
- Forks
- 132
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mlc-ai/tokenizers-cpp
-
Missing Cargo.lockAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mlc-ai/tokenizers-cpp#96 · 1 reacción ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
mlc-ai/tokenizers-cpp#88 · 2 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
mlc-ai/tokenizers-cpp#94 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
mlc-ai/tokenizers-cpp#91 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
mlc-ai/tokenizers-cpp#89 ·
Todos los issues de mlc-ai/tokenizers-cpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
hyprwm/aquamarine#426 ·
Los mantenedores suelen responder en 1 día
-
Winget hash mismatch for 5.0.3.0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
amnezia-vpn/amnezia-client#3222 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
valkey-io/valkey-search#1465 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
microsoft/onnxruntime-genai#2633 ·
Los mantenedores suelen responder en 1 día