From Fedora Project Wiki

(First draft , but needs some additional editing to clean up the artifacts.)
 
(Include Activity Diagram in the Project Objective)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[Original Proposal by Amita Sharma](https://docs.google.com/document/d/18ynOb9CB8tRa37L2tJUiW1J06F2lQ3Thhy5MCZ5Xqs0/edit?usp=sharing)
[https://docs.google.com/document/d/18ynOb9CB8tRa37L2tJUiW1J06F2lQ3Thhy5MCZ5Xqs0/edit?usp=sharing Original Proposal by Amita Sharma]


**Initiative Title:** Fedora AI Chatbot Development Using InstructLab   
* '''Initiative Title''': Fedora AI Chatbot Development Using InstructLab   
**Community Initiative Leads:** Amita Sharma, David Duncan (davdunc@amazon.com)   
* '''Community Initiative Leads''': Amita Sharma, David Duncan (davdunc@amazon.com)   
**Executive Sponsor:** \[To be determined\] [Matthew Miller](mailto:mattdm@redhat.com)?   
* '''Executive Sponsor''': \[To be determined\] [mailto:mattdm@redhat.com Matthew Miller]?   
**Timeframe:** 9-12 months
* '''Timeframe''': 9-12 months


---


### **1\. Project Objective**
== Project Objective ==


The primary objective of this initiative is to develop an AI-powered chatbot for the Fedora community using InstructLab. The chatbot will be integrated into the \#introductions.im channel, offering quick, accurate responses to user inquiries and automatically tagging discussion posts based on content. Additionally, the chatbot will suggest relevant Fedora documentation and wiki articles. The project aims to use the smallest model that ensures optimal performance, focusing on efficiency and scalability.
The primary objective of this initiative is to develop an AI-powered chatbot for the Fedora community using InstructLab. The chatbot will be integrated into the \#introductions.im channel, offering quick, accurate responses to user inquiries and automatically tagging discussion posts based on content. Additionally, the chatbot will suggest relevant Fedora documentation and wiki articles. The project aims to use the smallest model that ensures optimal performance, focusing on efficiency and scalability.


### **2\. Scope of Work**
[[File:Chatbot activity.png|frameless|alt=Activity Diagram|Proposed Chatbot Activity in #introductions channel]]
== Scope of Work ==


**In-Scope:**
=== In-Scope ===


* **Model Customization:** Fine-tune a small AI model with Fedora-specific datasets using InstructLab to create a customized chatbot.   
* '''Model Customization''': Fine-tune a small AI model with Fedora-specific datasets using InstructLab to create a customized chatbot.   
* **System Integration:** Integrate the chatbot with Fedora’s communication channels (IRC/Matrix), documentation, and wiki databases.   
* '''System Integration''': Integrate the chatbot with Fedora’s communication channels (IRC/Matrix), documentation, and wiki databases.   
* **Tagging and Content Recommendation:** Develop a system for automatic tagging of discussion posts and recommending related content.   
* '''Tagging and Content Recommendation''': Develop a system for automatic tagging of discussion posts and recommending related content.   
* **Deployment and Monitoring:** Deploy the chatbot in Fedora’s production environment with robust monitoring and continuous improvement protocols.
* '''Deployment and Monitoring''': Deploy the chatbot in Fedora’s production environment with robust monitoring and continuous improvement protocols.


**Out-of-Scope:**
=== Out-of-Scope ===


* Development of a new large-scale AI model.   
* Development of a new large-scale AI model.   
* Multilingual support beyond English (unless required later).
* Multilingual support beyond English (unless required later).


### **3\. Deliverables**
=== Deliverables ===


* **AI Chatbot:** A fully functional, InstructLab-based chatbot deployed in the \#introductions
* '''AI Chatbot:''' A fully functional, InstructLab-based chatbot deployed in the ''\#introductions.im'' channel.   
  .im channel.   
* '''Tagging System:''' An automated system for tagging discussion posts and suggesting relevant Fedora documentation.   
* **Tagging System:** An automated system for tagging discussion posts and suggesting relevant Fedora documentation.   
* '''Documentation:''' Comprehensive technical and user documentation, covering deployment, usage, and maintenance procedures.
* **Documentation:** Comprehensive technical and user documentation, covering deployment, usage, and maintenance procedures.


### **4\. Assumptions**
=== Assumptions ===


* Access to Fedora’s existing documentation, wiki, and discussion archives will be granted. Plan is to use 80% data to train the model and 20% to test.   
* Access to Fedora’s existing documentation, wiki, and discussion archives will be granted. Plan is to use 80% data to train the model and 20% to test.   
Line 39: Line 38:
* InstructLab will integrate with Fedora’s infrastructure with minimal modifications.
* InstructLab will integrate with Fedora’s infrastructure with minimal modifications.


### **5\. Constraints**
=== Constraints ===


* The chatbot must be lightweight, using the smallest possible model that ensures adequate performance.   
* The chatbot must be lightweight, using the smallest possible model that ensures adequate performance.   
* The project must adhere to Fedora’s security and compliance standards, particularly in terms of data privacy.
* The project must adhere to Fedora’s security and compliance standards, particularly in terms of data privacy.


### **6\. Risks**
=== Risks ===


* **Technical Risk:** The selected model may not meet performance expectations, necessitating further optimization or an alternative approach.   
* '''Technical Risk:''' The selected model may not meet performance expectations, necessitating further optimization or an alternative approach.   
* **Operational Risk:** Lack of engagement from the Fedora community may limit the feedback necessary for refining the chatbot.   
* '''Operational Risk:''' Lack of engagement from the Fedora community may limit the feedback necessary for refining the chatbot.   
* **Integration Risk:** Potential challenges in integrating the chatbot with Fedora’s existing systems, particularly the documentation and discussion platforms.   
* '''Integration Risk:''' Potential challenges in integrating the chatbot with Fedora’s existing systems, particularly the documentation and discussion platforms.   
* **Model Choice:** We may not have a lot of choices in terms of models as InstructLab only supports 3 models as of now. [https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-instructlab.html?context=wx\&locale=tr](https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-instructlab.html?context=wx\&locale=tr)
* '''Model Choice:''' We may not have a lot of choices in terms of models as InstructLab only supports 3 models as of now. See [https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-instructlab.html?context=wx InstructLab-compatible foundation models].


### **7\. Stakeholders**
=== Stakeholders ===


* **Fedora Community:** Primary users who will interact with the chatbot and benefit from its capabilities.   
* '''Fedora Community:''' Primary users who will interact with the chatbot and benefit from its capabilities.   
* **Development Team:** Responsible for the technical implementation, including model customization, system integration, and deployment.   
* '''Development Team:''' Responsible for the technical implementation, including model customization, system integration, and deployment.   
* **Fedora Documentation Team:** Ensures that the chatbot effectively links to relevant documentation and wiki pages.
* '''Fedora Documentation Team:''' Ensures that the chatbot effectively links to relevant documentation and wiki pages.


### **8\. Project Milestones**
=== Project Milestones ===


1. **Project Initiation:** Finalize project goals, assemble the project team, and establish success criteria.   
1. '''Project Initiation:''' Finalize project goals, assemble the project team, and establish success criteria.   
   *Estimated Timeline: 1-2 weeks
   Estimated Timeline: 1-2 weeks
2. **Requirements Gathering:** Define user stories, gather Fedora-specific data, and finalize model specifications.   
2. '''Requirements Gathering:''' Define user stories, gather Fedora-specific data, and finalize model specifications.   
   *Estimated Timeline: 2-3 weeks*  
   Estimated Timeline: 2-3 weeks   
3. **InstructLab Customization:** Fine-tune the model with Fedora-specific content and develop required skills.   
3. '''InstructLab Customization:''' Fine-tune the model with Fedora-specific content and develop required skills.   
   *Estimated Timeline: 3-4 weeks
   Estimated Timeline: 3-4 weeks  
4. **System Integration:** Integrate the chatbot with Fedora’s communication channels, documentation, and discussion systems.   
4. '''System Integration:''' Integrate the chatbot with Fedora’s communication channels, documentation, and discussion systems.   
   *Estimated Timeline: 3-4 weeks*  
   Estimated Timeline: 3-4 weeks   
5. **Testing and Iteration:** Conduct testing, collect feedback, and make necessary adjustments to improve performance.   
5. '''Testing and Iteration:''' Conduct testing, collect feedback, and make necessary adjustments to improve performance.   
   *Estimated Timeline: 4-6 weeks*  
   Estimated Timeline: 4-6 weeks   
6. **Deployment:** Deploy the chatbot and tagging system in Fedora’s production environment.   
6. '''Deployment:''' Deploy the chatbot and tagging system in Fedora’s production environment.   
   *Estimated Timeline: 1-2 weeks*  
   Estimated Timeline: 1-2 weeks   
7. **Post-Deployment Support:** Provide ongoing monitoring, support, and continuous improvements based on user feedback.   
7. '''Post-Deployment Support:''' Provide ongoing monitoring, support, and continuous improvements based on user feedback.   
   *Ongoing*  
   Ongoing   
8. **Project Closure:** Document lessons learned, transition to maintenance, and officially close the project.   
8. '''Project Closure:''' Document lessons learned, transition to maintenance, and officially close the project.   
   *Estimated Timeline: 1 week*
   Estimated Timeline: 1 week


### **9\. Success Criteria**
=== Success Criteria ===


* **Performance:** The chatbot provides accurate responses in the \#introductions.im channel with minimal latency.   
* '''Performance''': The chatbot provides accurate responses in the \#introductions.im channel with minimal latency.   
* **User Satisfaction:** Positive feedback from the Fedora community, with high engagement and effective utilization of the chatbot.   
* '''User Satisfaction''': Positive feedback from the Fedora community, with high engagement and effective utilization of the chatbot.   
* **System Integration:** Successful integration with Fedora’s communication channels, documentation, and wiki databases, enabling seamless tagging and content recommendation.
* '''System Integration''': Successful integration with Fedora’s communication channels, documentation, and wiki databases, enabling seamless tagging and content recommendation.

Latest revision as of 17:48, 4 October 2024

Original Proposal by Amita Sharma

  • Initiative Title: Fedora AI Chatbot Development Using InstructLab
  • Community Initiative Leads: Amita Sharma, David Duncan (davdunc@amazon.com)
  • Executive Sponsor: \[To be determined\] Matthew Miller?
  • Timeframe: 9-12 months


Project Objective

The primary objective of this initiative is to develop an AI-powered chatbot for the Fedora community using InstructLab. The chatbot will be integrated into the \#introductions.im channel, offering quick, accurate responses to user inquiries and automatically tagging discussion posts based on content. Additionally, the chatbot will suggest relevant Fedora documentation and wiki articles. The project aims to use the smallest model that ensures optimal performance, focusing on efficiency and scalability.

Activity Diagram

Scope of Work

In-Scope

  • Model Customization: Fine-tune a small AI model with Fedora-specific datasets using InstructLab to create a customized chatbot.
  • System Integration: Integrate the chatbot with Fedora’s communication channels (IRC/Matrix), documentation, and wiki databases.
  • Tagging and Content Recommendation: Develop a system for automatic tagging of discussion posts and recommending related content.
  • Deployment and Monitoring: Deploy the chatbot in Fedora’s production environment with robust monitoring and continuous improvement protocols.

Out-of-Scope

  • Development of a new large-scale AI model.
  • Multilingual support beyond English (unless required later).

Deliverables

  • AI Chatbot: A fully functional, InstructLab-based chatbot deployed in the \#introductions.im channel.
  • Tagging System: An automated system for tagging discussion posts and suggesting relevant Fedora documentation.
  • Documentation: Comprehensive technical and user documentation, covering deployment, usage, and maintenance procedures.

Assumptions

  • Access to Fedora’s existing documentation, wiki, and discussion archives will be granted. Plan is to use 80% data to train the model and 20% to test.
  • The Fedora community will provide ongoing feedback for the continuous improvement of the chatbot. It will be better to open the model to get it trained on use feeds by skills and knowledge like InstructLab.
  • InstructLab will integrate with Fedora’s infrastructure with minimal modifications.

Constraints

  • The chatbot must be lightweight, using the smallest possible model that ensures adequate performance.
  • The project must adhere to Fedora’s security and compliance standards, particularly in terms of data privacy.

Risks

  • Technical Risk: The selected model may not meet performance expectations, necessitating further optimization or an alternative approach.
  • Operational Risk: Lack of engagement from the Fedora community may limit the feedback necessary for refining the chatbot.
  • Integration Risk: Potential challenges in integrating the chatbot with Fedora’s existing systems, particularly the documentation and discussion platforms.
  • Model Choice: We may not have a lot of choices in terms of models as InstructLab only supports 3 models as of now. See InstructLab-compatible foundation models.

Stakeholders

  • Fedora Community: Primary users who will interact with the chatbot and benefit from its capabilities.
  • Development Team: Responsible for the technical implementation, including model customization, system integration, and deployment.
  • Fedora Documentation Team: Ensures that the chatbot effectively links to relevant documentation and wiki pages.

Project Milestones

1. Project Initiation: Finalize project goals, assemble the project team, and establish success criteria.

  Estimated Timeline: 1-2 weeks

2. Requirements Gathering: Define user stories, gather Fedora-specific data, and finalize model specifications.

  Estimated Timeline: 2-3 weeks  

3. InstructLab Customization: Fine-tune the model with Fedora-specific content and develop required skills.

  Estimated Timeline: 3-4 weeks 

4. System Integration: Integrate the chatbot with Fedora’s communication channels, documentation, and discussion systems.

  Estimated Timeline: 3-4 weeks  

5. Testing and Iteration: Conduct testing, collect feedback, and make necessary adjustments to improve performance.

  Estimated Timeline: 4-6 weeks  

6. Deployment: Deploy the chatbot and tagging system in Fedora’s production environment.

  Estimated Timeline: 1-2 weeks  

7. Post-Deployment Support: Provide ongoing monitoring, support, and continuous improvements based on user feedback.

  Ongoing  

8. Project Closure: Document lessons learned, transition to maintenance, and officially close the project.

  Estimated Timeline: 1 week

Success Criteria

  • Performance: The chatbot provides accurate responses in the \#introductions.im channel with minimal latency.
  • User Satisfaction: Positive feedback from the Fedora community, with high engagement and effective utilization of the chatbot.
  • System Integration: Successful integration with Fedora’s communication channels, documentation, and wiki databases, enabling seamless tagging and content recommendation.