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

Software Project Contribution and Onboarding - Orchestration Platform #343

Open
4 of 94 tasks
math280h opened this issue Dec 6, 2024 · 1 comment
Open
4 of 94 tasks
Assignees
Labels
contribution ready-for-toc The issue is ready for TOC review

Comments

@math280h
Copy link

math280h commented Dec 6, 2024

Please note that only FINOS members can propose new projects. If you're interested in membership, see https://www.finos.org/membership-benefits#become-a-member.

Onboarding Process

Completing an onboarding of a project into FINOS requires following these 5 main steps:

  1. Describing the Contribution led by contributor
  2. Approval led by FINOS TOC
  3. Preparing for Onboarding led by contributor
  4. Onboarding completed by FINOS Infra
  5. Announcement led by FINOS Marketing

1. Describing The Contribution

This is a list of questions that need to be answered by the contributor in order to allow a new project to pass to the approval stage of onboarding.

Introduction

Moody’s has been building a Generative AI platform since 2023 to empower use cases across the organization. The platform covers use case development, distribution, and integration with all the governance and model management features needed in the financial industry.

This platform has allowed Moody’s to produce hundreds of use cases and tools both internal and external, and leverage GenAI capabilities across the board. Moody’s has seen a need in the market for companies to move from a “Proof of Concept” into production, or to deploy GenAI solutions in a compliant and secure way. And none of the solutions in the market offer this today for the Financial Industry.

Business Problem

Generative AI provides a very quick and effortless way to create Proofs of Concept of use cases that can generate extensive value to the organization. However, moving those PoCs into production is usually a big challenge for enterprises, specifically in a regulated industry such as finance.

Building a robust and scalable orchestration platform to experiment, deliver use cases, manage AI models, apply the appropriate guard rails, content filters and logging mechanisms, build agents, etc. And at the same time keep the pace of how the technology evolves is proving very difficult for most companies.

Using an Open-Source solution that provides full transparency of the code, extendibility, and customization, as well as deployment on the company’s private cloud can reduce the time to delivery, increase security and reduce cost on any company AI journey.

Proposed Solution

The Moody’s GenAI platform has enabled Moody’s to create, experiment and deploy hundreds of GenAI use cases in production. It has provided the right scaffolding for any team to add their own data / skills, combine them with others and provide solutions to users in the form of chat boxes / bots, assistants, agents, background processes, conversational tools, writing tools, correction features, etc.

We are offering our knowledge and experience to create a similar platform for the community so that anybody can benefit. It is an opensource platform built using Moody’s learnings from working with GenAI. We believe this can save thousands of development hours on deploying GenAI use cases in production.

This platform will be the perfect boilerplate to create new uses cases or apply new frameworks and technologies. For example, adding an “Agentic Framework” or a “GraphRAG” based technology are some of the projects of what we would like to add to the platform to make it even more complete.

Goals

The goal of this project is to provide a GenAI platform for the financial industry that supports full ingestion of various document types and integrates with Active Directory entitlements for data access and permissioning on entitlements.
It is a platform that empowers:
Reusability: Easier creation and deployment of new GenAI uses cases in finance. Empower FIs to increase speed to market, enable productivity, and reduce technical debt.
Data Interoperability: Content / inference across data silos. User’s data, external datasets and ingested documents based on the user behavior and interactions. Discoverability of relevant and contextual insights. With entity extraction and recognition.
Future proofing: Future proofing products with new developments on AI.
Distribution: Enabling distribution to 3rd party platforms in a transparent and cost efficient manner.

How it would work

  1. Install the full platform in your own Private Azure instance. Access to the code through GitHub (Azure now, any cloud provider in next version)
  2. Add your own skills / data access. Improve the platform.
  3. Leverage the already existing skills / datasets and apply them to your assistants.
  4. Use your own managed or self-hosted LLMs and Guardrails
  5. Continuous development on new features (i.e. Agents framework)

Product Definition and Features

The platform is built for developers and AI engineers that allows quick use case generation. It supports a full ingestion of PDFs, Word, PPT, txt, html, mp3, mp4, and integrates with Active Directory for data entitlements for RAG use cases. It also integrates an “agentic” system (Build Your Own Assistant) that can connect skills, both in the platform or developed by the user.

The platform will be available through comprehensive APIs and web. It allows users to create custom use cases and share them across the organization.

  • Full Open Source (License TBD)
  • Based on Langchain
  • Deployable in any cloud (Azure for now)
  • Integrable with SSO and Active Directory.
  • Content filtering and tracing
  • Model agnostic with Model Gateway for balancing
  • Compatible with benchmarking tools (Langsmith)
  • Document ingestion and assistant creator
  • Pluggable and extendable
  • API based
  • Audits and logs

Tentative Roadmap

Move existing code from internal repository to FINOS

Current State

The platform is currently being built following the current high level architecture diagram:
image

Existing Materials

If materials already exist, provide a link to them that Foundation staff can access - if it's in a private GitHub.com repositories, you should invite the finos-admin user with R/O permissions to those repositories

  • GitHub / GitLab Repository (Repository TBD)
    • URL for the repository
    • Project Name (TBD to be defined by the parties)
    • @finos-admin has been given read-only permissions if private
  • Is Continuous Integration used? Github Actions
  • Was the project ever released? (no)
    • If so, are releases public? (no)
    • And what's the latest released version?
  • Existing Project Documentation (TBD)
  • Does the name have a registered trademark? (no)
  • Is there a logo? (no)
  • High-Level Presentation prepared for Technical Oversight Committee (~15 mins)
  • Are meetings currently held for the project? (no)
  • Are meeting minutes, agenda and attendance tracked? (no)

Development Team

Maintainers

Who will be the project maintainer(s)? Provide full name, affiliation, work email address, and GitHub / GitLab username.

Name Affiliation Work Email Address Github / GitLab username
Mathias V. Nielsen Moody’s mathias.nielsen@moodys.com @math280h
Pablo Pastore Moody’s pablo.pastore-non-empl@moodys.com @pabloapast
Luis Cortes Moody’s luis.cortesferre-non-empl@moodys.com @Keredu
Antonio Zaballos Moody’s Antonio.Zaballos-non-empl@moodys.com @ZaballosAn
Juan Artero Moody’s Juan.Artero-non-empl@moodys.com @artero
Louise Hopkins Moody’s louise.hopkins@moodys.com @LouiseHopkins
Sergio Gago Moody’s Sergio.gagohuerta@moodys.com @sergio-gago-moodys

Confirmed contributors

If applicable, list all of the individuals that have expressed interest in and/or are committed to contributing to this project, including full name, affiliation, work email address, and GitHub.com username

Name Affiliation Work Email Address Github / GitLab username
Mathias V. Nielsen Moody’s mathias.nielsen@moodys.com @math280h
Pablo Pastore Moody’s pablo.pastore-non-empl@moodys.com @pabloapast
Luis Cortes Moody’s luis.cortesferre-non-empl@moodys.com @Keredu
Antonio Zaballos Moody’s Antonio.Zaballos-non-empl@moodys.com @ZaballosAn
Juan Artero Moody’s Juan.Artero-non-empl@moodys.com @artero
Louise Hopkins Moody’s louise.hopkins@moodys.com @LouiseHopkins
Sergio Gago Moody’s Sergio.gagohuerta@moodys.com @sergio-gago-moodys

Target Contributors

AI Engineers and data scientists from financial institutions. At the moment in conversations with FINOS and non FINOS members on tier 1 banks.

Project Communication Channel(s)

  • Contributor to ask maintainers which communications channels they'd like to use:
  • Asynchronous
    • GitHub Issues (Repo TBD)
    • GitHub Discussions (Repo TBD)
  • Synchronous
    • Recurring meetings

Understanding FINOS Onboarding Requirements

As a project onboarding into FINOS, you will need to familiarize yourself and your contributor team with the following materials:

Record The Contribution (FINOS Infra)

  • (optional) Identify and Assign FINOS Strategic Advisor
  • Submit contribution to LF by opening a ticket via https://jira.linuxfoundation.org/browse/SS and marking contribution as "Exploratory"; attach a summary of the Business Problem and Proposed Solution (above) of the project.

2. Approval

The FINOS Technical Oversight Committee (TOC) is responsible for approving FINOS project contributions; feel free to check their contribution principles.

If needed, the TOC will request a follow up either via GitHub Issue comments or by inviting project leads to one of their recurrent meetings.

Tasks (for FINOS Infra/TOC)

  • Prioritise this issue on the TOC Backlog
  • Assign this issue to @eddie-knight
  • Add the ready-for-tsc label
  • TOC to invite contributors to present their project
  • FINOS TOC approves/rejects the contribution
  • Ask @jgavronsky to mark contribution as "Engaged" within LF systems
  • (optional) If additional socialization is required, the Executive Director may bring projects to the FINOS Governing Board
  • Update the contribution status to "Engaged" by sending another email to LF Legal Representative with the name of the project and its new status.

TOC Findings / Report

TOC to enter findings summary here.

3. Preparing For Onboarding

Before the FINOS team can onboard your project, there are a few housekeeping that need to be taken care of. These must be completed by the contributor, with help if required from the FINOS Infra.

Kick-off meeting

  • Set up kick-off meeting with project leads
  • Run kick-off meeting
    • Walk through the checklist in part 1, ensure all the questions are answered and remove items that don't apply
    • Write and send contribution proposal announcement (optional - see below)

Proposal (Lead Maintainer)

  • Lead maintainer to send out announcement to community@finos.org using this template:

    Dear FINOS Community, 
    
    We would like to propose a new FINOS project. Please review the proposal details at (_TODO: add link to the GitHub issue proposal_).
    
    If you're interested in participating, please :+1: the GitHub issue proposal and drop a comment with your name, org and email
    
    Thanks a lot,
    

Logo / Trademarks

  • Sign the project contribution agreement to allow FINOS to act on behalf of the contributor for accounts related to the project (e.g., GitHub, domain names, social media) and to optionally manage trademark assignment
  • Request logo design from help@finos.org (if needed)
  • The codebase doesn’t include any patent or copyright that conflicts with FINOS Governance and bylaws. (Infra team to validate with FINOS Legal team if anything important is raised)

FINOS Project Blueprint

Add documentation here

4. FINOS Onboarding

This is performed by FINOS Infra once the three previous stages are complete, with support from the contributor and the FINOS Infra team.

Maintainers, Contributors and CLAs

  • Identify other existing contributors (assuming there's a contribution history (eg Git history)
  • Check if maintainers and other contributors are all covered by FINOS CLA
  • Engage with FINOS Legal team to figure out what’s needed to cover all maintainers and contributors with FINOS CLA
  • Reach out to contributors and employers to coordinate CLA signatures
  • Invite GitHub usernames to GitHub FINOS Org
  • Create <project-name>-maintainers GitHub team and invite users

Validation (only if code is contributed)

  • Backup (even with screenshot) GitHub permissions of the repository to transfer
  • Check GitHub repository transfer requirements:
    • finos-admin has Admin to all repositories to transfer
    • finos-admin ia allowed to transfer repositories out of the org
    • if the repository is owned by a user (and not an org), the user must be able to transfer the repository to finos-admin
  • The codebase doesn’t have HIGH or CRITICAL CVEs across direct and transitive libraries
  • The codebase doesn’t have any unfriendly licenses across direct and transitive libraries
  • (optional - if a build system is provided) The build process runs successfully
  • The codebase doesn’t include any patent or copyright that conflicts with FINOS Governance and bylaws (to be validated with FINOS Legal team)
  • All incubating criteria are met (review documentation provided above)

Code transfer

  • Transfer all code assets as GitHub repositories under github.com/finos
  • Rename main branch to main (instead of master)
  • Configure finos-admins (Maintain role) and finos-staff (Triage role) team permissions

Project Communication Channel(s)

  • Create the identified communication channels during infra set up
  • Create mailing-list on lists.finos.org (if requested)
  • Create Slack channels if requested.
  • Link communication channels linked front-and-center in the project README.md

Repository setup

  • Enable EasyCLA
  • Add project to metadata
  • Add identities, orgs and affiliations to metadata (deprecated by EasyCLA)
  • Add logo to FINOS landscape
    • Create staging branch on finos/finos-landscape
    • Merge finos/metadata changes on master (will udpdate landscape.yml in finos/finos-landscape)
    • Create PR from staging branch on finos/finos-landscape
    • Review Netlify preview
    • Merge PR
  • Add project maintainers emails to finos-project-maintainers@finos.org list
  • Add project maintainers GitHub usernames to the project-maintainers Team
  • Ask @jgavronsky to mark contribution as "Active" within LF systems
  • (best effort) Update release coordinates and code namespace to include finos
  • Check that CVE (and preferably static code analysis, if applicable) scanning is in place
  • Enable automated dependency update, using Renovate
  • Enable branch protection (Require a pull request before merging)
  • (optional) Enable meeting attendance tracking
  • (optional) Onboard into legend.finos.org/studio

5. Announcement

(Lead: Project Lead and FINOS Infra team)

  • Update the contribution status to "Active" by sending another email to LF Legal Representative with the name of the project and its new status.
  • Lead maintainer works with FINOS marketing to send out announcement to announce@finos.org , checkout announcement template at the Contribution page
  • Notify FINOS marketing (@grizzwolf + finos-marketing internal Slack channel)
@TheJuanAndOnly99
Copy link
Member

@math280h thank you for the contribution proposal! As described in point number 2 of this issue the FINOS TOC will be taking a look at your proposal. Please allow us some time to get back to you with next steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution ready-for-toc The issue is ready for TOC review
Projects
Status: 📋 Prioritised backlog
Development

No branches or pull requests

3 participants