kitsudaiki / Hanami-AI

Hanami-AI is an experimental AI-as-a-Service based on a custom concept with multi-user ability and energyoptimization. Documentation: https://docs.hanami-ai.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hanami-AI

Github workfloat status GitHub tag (latest SemVer) GitHub Platform

Logo

IMPORTANT: This project is still an experimental prototype at the moment and NOT ready for productive usage.

There is still a huge bunch of known bugs and missing validations, which can break the backend. Even the documentation here is quite basic. Normally I absolutely dislike it to make something public, which has known bugs and other problems, but I simply don't wanted to wait longer for the open-sourcing of this project. Keep in mind, that this project is created by a single person in his spare time beside a 40h/week job. ;)

Intro

Hanami-AI is an AI-as-a-Service project, based on a concept created by myself. It is written from scratch with a Backend in C++ with Web-frontend.

The actual prototype consists of:

  • partially implementation of an own concept for an artificial neuronal network. It has no fixed connections between the nodes, but creates connections over time while learning. Additionally it doesn't need a normalization of input-values and this way it can also handle unknown data as input. This should make it flexible and efficient. The current state is extremely experimental.
  • very experimental but working GPU-support with CUDA and OpenCL
  • multi-user- and multi-project-support, so multiple-users can share the same physical host
  • basic energy-optimization supporting the scheduling of threads of all components and changing the cpu-frequency based on workload
  • basic monitoring of cpu-load
  • Webfrontend with client-side rendering and SDK-library
  • Websocket-connection to directly interact with the artificial neuronal networks
  • CI-pipelines, Test-Tool, Docker-build-process and basic helm-chart to deploy the project on Kubernetes

Documentation

All of this page and more in the documentation on:

https://docs.hanami-ai.com

Core-components

for more details see Documentation inner workings

  • Kyouko

    • Content: Core-component, which holds the artificial neuronal networks.
    • prebuild Docker-Image: kitsudaiki/kyouko_mind:develop
  • Misaki

    • Content: Authentication-service and management of user
    • prebuild Docker-Image: kitsudaiki/misaki_guard:develop
  • Shiori

    • Content: Storage-component, which holds snapshots, logs and so on
    • prebuild Docker-Image: kitsudaiki/shiori_archive:develop
  • Azuki

    • Content: Monitoring and energy-optimization
    • prebuild Docker-Image: kitsudaiki/azuki_heart:develop
  • Torii

    • Content: Proxy for all incoming connections
    • prebuild Docker-Image: kitsudaiki/torii_gateway:develop
  • Dashboard

    • Content: Web-Frontend
    • prebuild Docker-Image: kitsudaiki/hanami_ai_dashboard:develop

Roadmap

  • 0.1.0

    • first prototype with basic feature-set
  • 0.2.0

    • merge all involved repositories into the main-repository
    • internal restructures, primary for the GPU-support
    • experimental GPU-support wiht CUDA and OpenCL (disabled at the moment)
    • general minor improvements
  • 0.3.0

    • desired date: Q3 2023
    • content:
      • complete implementation of the core-concept and further evaluation and improvement of the learning-process:
        • allow to use it as spiking-neuronal-network
        • remove strict layer-structure, which is still enforced by hard configuration at the moment
        • build 3-dimensional networks
        • re-add the old reduction-process again
      • further evaluation and improving of the core-process
      • make GPU-support usable
  • 0.4.0

    • desired date: Q4 2023
    • content:
      • first Multi-Node-Setup
      • rework dashboard

Issue-Overview

Hanami-AI-Project

This repository

This repository requires git-lfs to be able to check out images and binary objects.

Clone repo with:

git clone --recurse-submodules git@github.com:kitsudaiki/Hanami-AI.git

In case git-lfs while cloning and installed afterwards:

git lfs fetch --all

In case the repo was cloned without submodules initially:

git submodule init
git submodule update --recursive

Author

Tobias Anker

eMail: tobias.anker@kitsunemimi.moe

License

The complete project is under Apache 2 license.

Contributing

If you want to contribute things to this project, then I'm really happy about this. Please restrict this for the moment to bug-reports and feature-requests. Use the issue-templates for this. You can also place questions by these issues, if you want some information about parts of the project or if you want to try it out and need some help.

About

Hanami-AI is an experimental AI-as-a-Service based on a custom concept with multi-user ability and energyoptimization. Documentation: https://docs.hanami-ai.com

License:Apache License 2.0


Languages

Language:C++ 83.5%Language:HTML 4.4%Language:QMake 3.5%Language:C 3.1%Language:JavaScript 2.1%Language:Cuda 1.0%Language:Yacc 1.0%Language:CSS 0.6%Language:Go 0.5%Language:Shell 0.2%Language:Smarty 0.1%Language:Dockerfile 0.1%