Skip to content
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

[doc] Improve the Checkpoint Conversion Guide for Practical Usability #111

Open
tscholak opened this issue Jan 9, 2025 · 1 comment
Open
Labels
documentation Improvements or additions to documentation

Comments

@tscholak
Copy link
Collaborator

tscholak commented Jan 9, 2025

🧐 Problem Description

The current checkpoint conversion guide introduced in #98 is thorough and detailed, providing a strong reference for experienced users. However, it could be improved to better support newcomers who are unfamiliar with Fast-LLM's codebase. Key areas where the guide falls short include:

  • Lack of a Clear Entry Point:
    The guide doesn't provide an intuitive starting point or a step-by-step walkthrough for new contributors. Readers will find it challenging to navigate through the background information before reaching actionable content.

  • Abstract Example:
    The placeholder example, AwesomeModel, is quite generic and may feel disconnected from real-world applications. A more familiar, concrete example would help readers better understand and apply the concepts.

  • Linear Structure:
    The guide's current structure emphasizes background theory and detailed explanations before practical steps. This will delay users from achieving a "quick win" and hinder development momentum.

  • Empowering Users:
    After reading the guide, contributors can still feel unsure about how to start implementing a new converter. The abstractions make it harder to translate the concepts into actionable steps.

  • Efficiency Concerns:
    Without a more approachable structure, onboarding contributors will likely require additional support, which will slow adoption and productivity.

💡 Proposed Solution

To make the guide more accessible and actionable, we propose the following improvements:

  1. Add a Quick-Start Section:

    • Provide a step-by-step walkthrough for creating a converter using a real-world example, such as LlamaCheckpointFormat.
    • Focus on delivering a functional result quickly, giving users an early sense of accomplishment.
  2. Reorganize the Guide:

    • Introduce actionable content earlier in the guide.
    • Move detailed explanations and advanced topics to a later section, ensuring the main flow is streamlined and user-friendly.
  3. Use Real-World Examples:

    • Replace the abstract AwesomeModel placeholder with a concrete, familiar example like LlamaCheckpointFormat. This will make the guide more relatable and practical.

🔄 Alternatives Considered

  • Adding a "Getting Started" Subsection:
    A short "Getting Started" subsection could be added to the existing guide. While this might provide some immediate relief, it may not address the deeper structural issues fully.

📈 Potential Benefits

  • Faster Onboarding:
    Contributors can get started more quickly, reducing the learning curve and building confidence.

  • Streamlined Support:
    A more approachable guide will require less hand-holding, allowing teams to focus on higher-priority tasks.

  • Encouraging Adoption:
    By making the process easier and more intuitive, contributors are more likely to engage with the checkpoint conversion system.

  • Improved Usability:
    A structured, example-driven guide will appeal to contributors of varying experience levels and help them make meaningful progress.

📝 Additional Context

For further discussion, refer to the PR review here.

@tscholak tscholak added enhancement New feature or request documentation Improvements or additions to documentation and removed enhancement New feature or request labels Jan 9, 2025
@jlamypoirier
Copy link
Collaborator

Note that the doc I made is meant to be part of the in-depth reference section, so we do want detailed explanations. It should eventually be part of a more elaborate set of developer documentation, so some details are admittedly missing that would be described elsewhere. I considered using a real-world example, but doing so it would make it difficult to demonstrate all the features, and it would clutter the doc with unnecessary extra code and boilerplate.

I up for making it more accessible, but we should make sure not to obfuscate or drop the more advanced details that will be important for developers that need advanced features. I'd rather supplement this guide with a quick-start guide, either at the beginning of this section or in "Get started / cookbook". A real-world example would be more appropriate for this kind of section, though even a simple example is actually quite big already.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants