@@ -5,7 +5,6 @@ | |||
[![release](https://img.shields.io/badge/release-1.21.11.1-blue)](https://openi.pcl.ac.cn/OpenI/aiforge/releases/latest) | |||
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) | |||
## AiForge | |||
启智AI开发协作平台是一个在线Web应用,旨在为人工智能算法、模型开发提供在线协同工作环境,它提供了<b>代码托管、数据集管理与共享、免费云端算力资源支持(GPU/NPU)、共享镜像</b>等功能。 | |||
@@ -15,43 +14,233 @@ | |||
本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此扩展了人工智能开发中需要的功能,如数据集管理和模型训练等。对于和代码托管相关的功能,您可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。 | |||
### 系统总体架构 | |||
下图展示了系统总体架构,本项目分为Web前端和服务后端,Web页面面向算法开发者、应用开发者、科研工作者、学生等用户群体,通过统一的Web页面入口,使用系统提供的系统服务。 | |||
后端服务涵盖了AI模型开发流水线,包括代码协同开发、数据管理、模型调试、训练、推理和部署等(*目前尚未支持模型部署*)。在不同的开发阶段,我们还将提供丰富的开发工具供用户使用,如数据标注、数据筛选、模型转换、模型压缩、代码检测等。我们也欢迎社区提供更多丰富的工具接入,提高利用平台进行开发的效率。 | |||
![系统架构图](assets/架构图.png) | |||
## 在线服务使用 | |||
本项目的在线服务平台的详细使用帮助文档,可参阅本项目[百科](https://openi.pcl.ac.cn/OpenI/aiforge/wiki)内容。 | |||
- 如何创建账号 | |||
- 如何创建组织及管理成员权限 | |||
- 如何创建项目仓库 | |||
- 如何使用数据集功能 | |||
- 如何使用计算资源进行模型调试和训练 | |||
- 使用小技巧 | |||
- 常见问题(FAQ) | |||
## 安装 | |||
您也可以基于本项目代码,在本地环境安装部署服务。 | |||
### 数据库准备 | |||
[数据库准备说明](https://docs.gitea.io/zh-cn/database-prep/) | |||
### 从源代码安装 | |||
## 安装 | |||
您也可以基于本项目代码,在本地环境安装部署服务。 | |||
### 数据库准备 | |||
[数据库准备说明](https://docs.gitea.io/zh-cn/database-prep/) | |||
### 从源代码安装 | |||
- node版本 >= v10.13.0 | |||
- golang版本 >= 1.13.3 | |||
[从源代码安装说明](https://docs.gitea.io/zh-cn/install-from-source/) | |||
## 开发者指南 | |||
#### Linux下通过Docker快速搭建开发环境: | |||
前提条件:已安装Docker,了解Docker的基本操作;熟悉git的基本操作(拉取代码,提交代码,合并代码,创建分支)。 | |||
1. 拉取镜像: | |||
aiforge-postgres是数据库镜像,初始化了数据库; | |||
aiforge-dev是开发环境镜像,安装了go,nodejs,openssh等依赖。 | |||
如果执行命令提示没有权限,在命令前加sudo | |||
``` | |||
docker pull swr.cn-north-4.myhuaweicloud.com/openi/aiforge-postgres:v1 | |||
docker pull swr.cn-north-4.myhuaweicloud.com/openi/aiforge-dev:v1 | |||
``` | |||
2. 启动镜像: | |||
注意:由于linux下的回车符和windows不一致,直接拷贝命令执行可能失败。 如果失败:去掉'\\',把命令改成一行命令再执行。 | |||
``` | |||
docker run --name postgres-openi \ | |||
-e POSTGRES_PASSWORD=openi \ | |||
-e PGDATA=/var/lib/postgresql/data/pgdata \ | |||
-p 5432:5432 \ | |||
-v /home/openi/postgresql/data:/var/lib/postgresql/data \ | |||
-d swr.cn-north-4.myhuaweicloud.com/openi/aiforge-postgres:v1 | |||
``` | |||
``` | |||
docker run --name aiforgedev \ | |||
-p 8787:3000 \ | |||
-p 2222:22 \ | |||
-v /home/openi/data:/data \ | |||
-d swr.cn-north-4.myhuaweicloud.com/openi/aiforge-dev:v1 | |||
``` | |||
3. 进入开发容器并下载代码: | |||
- 执行sudo docker ps,找到名称为aiforgedev的容器id(CONTAINER ID ) | |||
- 执行docker exec -it {开发容器id} /bin/bash | |||
- 执行cd /data | |||
- 执行git clone {aiforge项目地址或派生项目地址,例如https://openi.pcl.ac.cn/OpenI/aiforge.git,后续说明已此地址为例} | |||
4. 设置配置文件: | |||
- 在/data/aiforge/custom/conf目录下创建app.ini | |||
- 文件内容如下: | |||
注意:需要将文件中的两个Local_IP替换为本机IP地址 | |||
> APP_NAME = aiforge | |||
> RUN_MODE = prod | |||
> | |||
> [repository] | |||
> ROOT = /data/git/repositories | |||
> | |||
> [repository.local] | |||
> LOCAL_COPY_PATH = /data/gitea/tmp/local-repo | |||
> | |||
> [repository.upload] | |||
> TEMP_PATH = /data/gitea/uploads | |||
> | |||
> [server] | |||
> SSH_DOMAIN = 0.0.0.0 | |||
> DOMAIN = 0.0.0.0 | |||
> HTTP_PORT = 3000 | |||
> ROOT_URL = http://0.0.0.0:3000 | |||
> DISABLE_SSH = false | |||
> SSH_PORT = 22 | |||
> LFS_START_SERVER = true | |||
> LFS_CONTENT_PATH = /data/git/lfs | |||
> LFS_JWT_SECRET = tqVLRkZYpP4UlAoZtZcdX2paFZ6G7FN_Y47It6PfJAE | |||
> OFFLINE_MODE = false | |||
> | |||
> [database] | |||
> DB_TYPE = postgres | |||
> HOST = Local_IP:5432 | |||
> NAME = gitea | |||
> USER = gitea | |||
> PASSWD = gitea | |||
> SCHEMA = | |||
> SSL_MODE = disable | |||
> CHARSET = utf8 | |||
> PATH = /data/gitea/gitea.db | |||
> | |||
> [database_statistic] | |||
> DB_TYPE = postgres | |||
> HOST = Local_IP:5432 | |||
> NAME = statistic | |||
> USER = gitea | |||
> PASSWD = gitea | |||
> SCHEMA = | |||
> SSL_MODE = disable | |||
> CHARSET = utf8 | |||
> PATH = /data/gitea/statistic.db | |||
> | |||
> [indexer] | |||
> ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve | |||
> | |||
> [session] | |||
> PROVIDER_CONFIG = /data/gitea/sessions | |||
> | |||
> [picture] | |||
> AVATAR_UPLOAD_PATH = /data/gitea/avatars | |||
> REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars | |||
> | |||
> [attachment] | |||
> PATH = /data/gitea/attachments | |||
> | |||
> [log] | |||
> MODE = file | |||
> LEVEL = info | |||
> ROOT_PATH = /data/gitea/log | |||
> | |||
> [security] | |||
> INSTALL_LOCK = true | |||
> SECRET_KEY = sdfsagg453535 | |||
> | |||
> [service] | |||
> DISABLE_REGISTRATION = false | |||
> REQUIRE_SIGNIN_VIEW = false | |||
> | |||
> [obs] | |||
> | |||
> ENDPOINT = | |||
> | |||
> ACCESS_KEY_ID = | |||
> SECRET_ACCESS_KEY = | |||
> BUCKET = | |||
> LOCATION = | |||
> BASE_PATH = | |||
> CODE_PATH_PREFIX = | |||
> Output_Path = | |||
> TrainJobModel_Path = | |||
> | |||
> [picture] | |||
> DISABLE_GRAVATAR = true | |||
> ENABLE_FEDERATED_AVATAR = false | |||
5. 编译: | |||
``` | |||
cd /data/aiforge | |||
make build | |||
``` | |||
6. 运行: | |||
``` | |||
./opendata web | |||
``` | |||
7. 访问:http://本机ip:8787 | |||
注意:代码提交到aiforge请参考[代码提交](https://openi.pcl.ac.cn/docs/index.html#/repo/code.md),[合并请求](https://openi.pcl.ac.cn/docs/index.html#/repo/pr?id=%e5%90%88%e5%b9%b6%e8%af%b7%e6%b1%82) | |||
**特别说明:** 目前无法给开发者提供云脑和智算网络的开发环境,开发者暂时只能参与代码管理相关的任务开发。 | |||
## 授权许可 | |||
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://openi.pcl.ac.cn/OpenI/aiforge/src/branch/develop/LICENSE) 文件中。 | |||
本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://openi.pcl.ac.cn/OpenI/aiforge/src/branch/develop/LICENSE) 文件中。 | |||
## 需要帮助? | |||
如果您在使用或者开发过程中遇到问题,可以在以下渠道咨询: | |||
- 点击[这里](https://openi.pcl.ac.cn/OpenI/aiforge/issues)在线提交问题(点击页面右上角绿色按钮**创建任务**) | |||
- 加入微信群实时交流,获得进一步的支持 | |||
<img src="https://openi.pcl.ac.cn/OpenI/aiforge/wiki/raw/img/wechatgroup.jpg" width=200px /> | |||
- 点击[这里](https://openi.pcl.ac.cn/OpenI/aiforge/issues)在线提交问题(点击页面右上角绿色按钮**创建任务**) | |||
- 加入微信群实时交流,获得进一步的支持 | |||
<img src="https://openi.pcl.ac.cn/OpenI/aiforge/wiki/raw/img/wechatgroup.jpg" width=200px /> | |||
## 启智社区小白训练营: | |||
- 结合案例给大家详细讲解如何使用社区平台,帮助无技术背景的小白成长为启智社区达人 (https://openi.pcl.ac.cn/zeizei/OpenI_Learning) | |||
## 平台引用 | |||
如果本平台对您的科研工作提供了帮助,可在论文致谢中加入: | |||
英文版:```Thanks for the support provided by OpenI Community (https://openi.pcl.ac.cn).``` | |||
中文版:```感谢启智社区提供的技术支持(https://openi.pcl.ac.cn)。``` | |||
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》