Browse Source

Merge branch 'V20221102' into fix-2902

pull/3090/head
zhoupzh 2 years ago
parent
commit
8a6319dd77
9 changed files with 58 additions and 50 deletions
  1. +3
    -2
      modules/aisafety/resty.go
  2. +10
    -0
      modules/setting/setting.go
  3. +1
    -1
      options/locale/locale_en-US.ini
  4. +2
    -2
      options/locale/locale_zh-CN.ini
  5. +5
    -7
      routers/repo/ai_model_manage.go
  6. +0
    -34
      routers/repo/aisafety.go
  7. +2
    -0
      routers/repo/dataset.go
  8. +2
    -4
      routers/repo/grampus.go
  9. +33
    -0
      services/cloudbrain/util.go

+ 3
- 2
modules/aisafety/resty.go View File

@@ -10,6 +10,7 @@ import (
"strings" "strings"


"code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"


"github.com/go-resty/resty/v2" "github.com/go-resty/resty/v2"
) )
@@ -71,8 +72,8 @@ func checkSetting() {
} }


func loginCloudbrain() error { func loginCloudbrain() error {
HOST = "http://221.122.70.196:8081/atp-api"
KEY = "1"
HOST = setting.ModelSafetyTest.HOST
KEY = setting.ModelSafetyTest.KEY
return nil return nil
} }




+ 10
- 0
modules/setting/setting.go View File

@@ -597,6 +597,7 @@ var (
}{} }{}


C2NetInfos *C2NetSqInfos C2NetInfos *C2NetSqInfos
C2NetMapInfo map[string]*C2NetSequenceInfo


//elk config //elk config
ElkUrl string ElkUrl string
@@ -725,6 +726,9 @@ var (
GPUBaseDataSetUUID string GPUBaseDataSetUUID string
GPUCombatDataSetName string GPUCombatDataSetName string
GPUCombatDataSetUUID string GPUCombatDataSetUUID string

HOST string
KEY string
}{} }{}


ModelApp = struct { ModelApp = struct {
@@ -1572,6 +1576,8 @@ func getModelSafetyConfig() {
ModelSafetyTest.NPUBaseDataSetUUID = sec.Key("NPUBaseDataSetUUID").MustString("") ModelSafetyTest.NPUBaseDataSetUUID = sec.Key("NPUBaseDataSetUUID").MustString("")
ModelSafetyTest.NPUCombatDataSetName = sec.Key("NPUCombatDataSetName").MustString("") ModelSafetyTest.NPUCombatDataSetName = sec.Key("NPUCombatDataSetName").MustString("")
ModelSafetyTest.NPUCombatDataSetUUID = sec.Key("NPUCombatDataSetUUID").MustString("") ModelSafetyTest.NPUCombatDataSetUUID = sec.Key("NPUCombatDataSetUUID").MustString("")
ModelSafetyTest.HOST = sec.Key("HOST").MustString("")
ModelSafetyTest.KEY = sec.Key("KEY").MustString("")
} }


func getModelConvertConfig() { func getModelConvertConfig() {
@@ -1627,6 +1633,10 @@ func getGrampusConfig() {
if err := json.Unmarshal([]byte(Grampus.C2NetSequence), &C2NetInfos); err != nil { if err := json.Unmarshal([]byte(Grampus.C2NetSequence), &C2NetInfos); err != nil {
log.Error("Unmarshal(C2NetSequence) failed:%v", err) log.Error("Unmarshal(C2NetSequence) failed:%v", err)
} }
C2NetMapInfo=make(map[string]*C2NetSequenceInfo)
for _,value :=range C2NetInfos.C2NetSqInfo{
C2NetMapInfo[value.Name]=value
}
} }
Grampus.SyncScriptProject = sec.Key("SYNC_SCRIPT_PROJECT").MustString("script_for_grampus") Grampus.SyncScriptProject = sec.Key("SYNC_SCRIPT_PROJECT").MustString("script_for_grampus")




+ 1
- 1
options/locale/locale_en-US.ini View File

@@ -266,7 +266,7 @@ page_dev_yunlao_desc4=Developers can freely select the corresponding computing r
page_dev_yunlao_desc5=If your model requires more computing resources, you can also apply for it separately. page_dev_yunlao_desc5=If your model requires more computing resources, you can also apply for it separately.
page_dev_yunlao_apply=Apply Separately page_dev_yunlao_apply=Apply Separately
c2net_title=China Computing Network c2net_title=China Computing Network
c2net_desc=The artificial intelligence computing power network promotion alliance has access to 11 intelligent computing centers, with a total scale of 1924p.
c2net_desc=Extensive access to intelligent computing centers and supercomputing centers across the country to provide users with free computing resources.
c2net_center=Center c2net_center=Center
search=Search search=Search
search_repo=Repository search_repo=Repository


+ 2
- 2
options/locale/locale_zh-CN.ini View File

@@ -267,8 +267,8 @@ page_dev_yunlao_desc3=中国算力网(C²NET)一期可实现不同人工智
page_dev_yunlao_desc4=开发者可以根据使用需求,自由选择相应计算资源,可以测试模型在不同硬件环境下的适配能力、性能、稳定性等。 page_dev_yunlao_desc4=开发者可以根据使用需求,自由选择相应计算资源,可以测试模型在不同硬件环境下的适配能力、性能、稳定性等。
page_dev_yunlao_desc5=如果您的模型需要更多的计算资源,也可以单独申请。 page_dev_yunlao_desc5=如果您的模型需要更多的计算资源,也可以单独申请。
page_dev_yunlao_apply=单独申请 page_dev_yunlao_apply=单独申请
c2net_title=智算网络
c2net_desc=人工智能算力网络推进联盟已接入11家智算中心,算力总规模1924P
c2net_title=中国算力网
c2net_desc=广泛接入全国各地智算中心、超算中心,为用户提供免费算力资源
c2net_center=中心 c2net_center=中心
search=搜索 search=搜索
search_repo=项目 search_repo=项目


+ 5
- 7
routers/repo/ai_model_manage.go View File

@@ -17,6 +17,7 @@ import (
"code.gitea.io/gitea/modules/notification" "code.gitea.io/gitea/modules/notification"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/storage"
"code.gitea.io/gitea/services/cloudbrain/resource"
uuid "github.com/satori/go.uuid" uuid "github.com/satori/go.uuid"
) )


@@ -69,13 +70,10 @@ func saveModelByParameters(jobId string, versionName string, name string, versio
cloudType = models.TypeCloudBrainTwo cloudType = models.TypeCloudBrainTwo
} else if aiTask.ComputeResource == models.GPUResource { } else if aiTask.ComputeResource == models.GPUResource {
cloudType = models.TypeCloudBrainOne cloudType = models.TypeCloudBrainOne
var ResourceSpecs *models.ResourceSpecs
json.Unmarshal([]byte(setting.ResourceSpecs), &ResourceSpecs)
for _, tmp := range ResourceSpecs.ResourceSpec {
if tmp.Id == aiTask.ResourceSpecId {
flaverName := ctx.Tr("cloudbrain.gpu_num") + ": " + fmt.Sprint(tmp.GpuNum) + " " + ctx.Tr("cloudbrain.cpu_num") + ": " + fmt.Sprint(tmp.CpuNum) + " " + ctx.Tr("cloudbrain.memory") + "(MB): " + fmt.Sprint(tmp.MemMiB) + " " + ctx.Tr("cloudbrain.shared_memory") + "(MB): " + fmt.Sprint(tmp.ShareMemMiB)
aiTask.FlavorName = flaverName
}
spec, err := resource.GetCloudbrainSpec(aiTask.ID)
if err == nil {
flaverName := "GPU: " + fmt.Sprint(spec.AccCardsNum) + "*" + spec.AccCardType + ",CPU: " + fmt.Sprint(spec.CpuCores) + "," + ctx.Tr("cloudbrain.memory") + ": " + fmt.Sprint(spec.MemGiB) + "GB," + ctx.Tr("cloudbrain.shared_memory") + ": " + fmt.Sprint(spec.ShareMemGiB) + "GB"
aiTask.FlavorName = flaverName
} }
} }




+ 0
- 34
routers/repo/aisafety.go View File

@@ -26,7 +26,6 @@ import (
"code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/services/cloudbrain/resource" "code.gitea.io/gitea/services/cloudbrain/resource"
"code.gitea.io/gitea/services/reward/point/account" "code.gitea.io/gitea/services/reward/point/account"
uuid "github.com/satori/go.uuid"
) )


const ( const (
@@ -37,39 +36,6 @@ const (
tplModelSafetyTestShow = "repo/modelsafety/show" tplModelSafetyTestShow = "repo/modelsafety/show"
) )


func CloudBrainAiSafetyCreateTest(ctx *context.Context) {
log.Info("start to create CloudBrainAiSafetyCreate")
uuid := uuid.NewV4()
id := uuid.String()
seriaNoParas := ctx.Query("serialNo")
fileName := ctx.Query("fileName")

//if jobType == string(models.JobTypeBenchmark) {
req := aisafety.TaskReq{
UnionId: id,
EvalName: "test1",
EvalContent: "test1",
TLPath: "test1",
Indicators: []string{"ACC", "ASS"},
CDName: "CIFAR10_1000_FGSM",
BDName: "CIFAR10_1000基础数据集",
}
aisafety.GetAlgorithmList()
if seriaNoParas != "" {
aisafety.GetTaskStatus(seriaNoParas)
} else {
jsonStr, err := getJsonContent("http://192.168.207.34:8065/Test_zap1234/openi_aisafety/raw/branch/master/result/" + fileName)
serialNo, err := aisafety.CreateSafetyTask(req, jsonStr)
if err == nil {
log.Info("serialNo=" + serialNo)
time.Sleep(time.Duration(2) * time.Second)
aisafety.GetTaskStatus(serialNo)
} else {
log.Info("CreateSafetyTask error," + err.Error())
}
}
}

func GetAiSafetyTaskByJob(job *models.Cloudbrain) { func GetAiSafetyTaskByJob(job *models.Cloudbrain) {
if job == nil { if job == nil {
log.Error("GetCloudbrainByJobID failed") log.Error("GetCloudbrainByJobID failed")


+ 2
- 0
routers/repo/dataset.go View File

@@ -523,6 +523,7 @@ func ReferenceDatasetAvailable(ctx *context.Context) {
PublicOnly: true, PublicOnly: true,
NeedAttachment: false, NeedAttachment: false,
CloudBrainType: models.TypeCloudBrainAll, CloudBrainType: models.TypeCloudBrainAll,
SearchOrderBy: models.SearchOrderByDefault,
} }
dataset, _ := models.GetDatasetByRepo(&models.Repository{ID: ctx.Repo.Repository.ID}) dataset, _ := models.GetDatasetByRepo(&models.Repository{ID: ctx.Repo.Repository.ID})
if dataset != nil { if dataset != nil {
@@ -538,6 +539,7 @@ func PublicDatasetMultiple(ctx *context.Context) {
PublicOnly: true, PublicOnly: true,
NeedAttachment: true, NeedAttachment: true,
CloudBrainType: ctx.QueryInt("type"), CloudBrainType: ctx.QueryInt("type"),
SearchOrderBy: models.SearchOrderByDefault,
} }
datasetMultiple(ctx, opts) datasetMultiple(ctx, opts)




+ 2
- 4
routers/repo/grampus.go View File

@@ -37,6 +37,7 @@ import (
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
cloudbrainService "code.gitea.io/gitea/services/cloudbrain"
) )


const ( const (
@@ -915,10 +916,7 @@ func GrampusTrainJobShow(ctx *context.Context) {
ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task)
ctx.Data["displayJobName"] = task.DisplayJobName ctx.Data["displayJobName"] = task.DisplayJobName


aiCenterInfo := strings.Split(task.AiCenter, "+")
if len(aiCenterInfo) == 2 {
ctx.Data["ai_center"] = aiCenterInfo[1]
}
ctx.Data["ai_center"] = cloudbrainService.GetAiCenterShow(task.AiCenter,ctx)


ctx.HTML(http.StatusOK, tplGrampusTrainJobShow) ctx.HTML(http.StatusOK, tplGrampusTrainJobShow)
} }


+ 33
- 0
services/cloudbrain/util.go View File

@@ -0,0 +1,33 @@
package cloudbrain

import (
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
"strings"
)

func GetAiCenterShow(aiCenter string,ctx *context.Context) string{
aiCenterInfo := strings.Split(aiCenter, "+")

if len(aiCenterInfo) == 2{
if setting.C2NetMapInfo!=nil {
if info,ok:=setting.C2NetMapInfo[aiCenterInfo[0]];ok {
if ctx.Language() == "zh-CN" {
return info.Content
} else {
return info.ContentEN
}
}else{
return aiCenterInfo[1]
}

}else{
return aiCenterInfo[1]
}

}

return ""


}

Loading…
Cancel
Save