fix: Modify modelarts of ai create instance

This commit is contained in:
qiwang 2024-09-12 16:01:20 +08:00
parent 1aa1cecfbf
commit 9e2023fbb1
3 changed files with 66 additions and 40 deletions

10
go.mod
View File

@ -14,12 +14,12 @@ require (
github.com/pkg/errors v0.9.1
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.71.2
github.com/prometheus/alertmanager v0.27.0
github.com/prometheus/client_golang v1.20.2
github.com/prometheus/common v0.58.0
github.com/prometheus/client_golang v1.20.3
github.com/prometheus/common v0.59.1
github.com/robfig/cron/v3 v3.0.1
github.com/zeromicro/go-zero v1.7.2
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240725071305-f751eec4dde1
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240905092954-07ff355339dd
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240909072501-939c3144cd9e
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240817071412-44397870b110
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203
gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5
@ -140,10 +140,10 @@ require (
go.uber.org/automaxprocs v1.5.3 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.26.0 // indirect
golang.org/x/crypto v0.27.0 // indirect
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect
golang.org/x/mod v0.21.0 // indirect
golang.org/x/net v0.28.0 // indirect
golang.org/x/net v0.29.0 // indirect
golang.org/x/oauth2 v0.23.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.25.0 // indirect

20
go.sum
View File

@ -393,8 +393,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg=
github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4=
github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@ -406,8 +406,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.58.0 h1:N+N8vY4/23r6iYfD3UQZUoJPnUYAo7v6LG5XZxjZTXo=
github.com/prometheus/common v0.58.0/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0=
github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0=
github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0=
github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4=
github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI=
github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g=
@ -468,8 +468,8 @@ github.com/zeromicro/go-zero v1.7.2 h1:a8lyVOG3KXG4LrAy6ZmtJTJtisX4Ostc4Pst4fE70
github.com/zeromicro/go-zero v1.7.2/go.mod h1:WFXfF92Exw0O7WECifS6r99JSzv4KEN49x9RhAfgkMc=
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240725071305-f751eec4dde1 h1:DicBXoQiC6mumMBeyqSPNrsjtqJIgk5Pv2hscu2xryw=
gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240725071305-f751eec4dde1/go.mod h1:3eECiw9O2bIFkkePlloKyLNXiqBAhOxNrDoGaaGseGY=
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240905092954-07ff355339dd h1:rwEf9EHx9/KRHtA0VXDfSS3sEsi8e79C/4LVd9PgcFw=
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240905092954-07ff355339dd/go.mod h1:/eOmBFZKWGoabG3sRVkVvIbLwsd2631k4jkUBR6x1AA=
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240909072501-939c3144cd9e h1:6LYJggBoeAQxy/otzWjt40Pa7gnVvUR4c5YMi6A/NdU=
gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240909072501-939c3144cd9e/go.mod h1:/eOmBFZKWGoabG3sRVkVvIbLwsd2631k4jkUBR6x1AA=
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240817071412-44397870b110 h1:GaXwr5sgDh0raHjUf9IewTvnRvajYea7zbLsaerYyXo=
gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240817071412-44397870b110/go.mod h1:QOD5+/l2D+AYBjF2h5T0mdJyfGAmF78QmeKdbBXbjLQ=
gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203 h1:s6PsZ1+bev294IWdZRlV7mnOwI1+UzFcldVW/BqhQzI=
@ -533,8 +533,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@ -611,8 +611,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=

View File

@ -37,8 +37,10 @@ import (
)
const (
Ascend = "Ascend"
Npu = "npu"
Ascend = "Ascend"
Npu = "npu"
ImageNetResnet50Cmd = "cd /home/ma-user & python ./inference_ascend.py"
ChatGLM6BCmd = "cd /home/ma-user && python ./download_model.py && python ./inference_chatGLM.py"
)
type ModelArtsLink struct {
@ -51,6 +53,7 @@ type ModelArtsLink struct {
SourceLocation string
Version string
ModelId string
ModelType string
}
// Version 结构体表示版本号
@ -320,8 +323,8 @@ func (m *ModelArtsLink) UploadAlgorithmCode(ctx context.Context, resourceType st
func (m *ModelArtsLink) getSourceLocationFromImages(ctx context.Context, option *option.InferOption) error {
req := &modelarts.ListImagesReq{
//Platform: m.platform,
Limit: m.pageIndex,
Offset: 10,
Limit: 50,
Offset: 0,
}
ListImagesResp, err := m.modelArtsRpc.ListImages(ctx, req)
@ -333,9 +336,16 @@ func (m *ModelArtsLink) getSourceLocationFromImages(ctx context.Context, option
}
for _, ListImages := range ListImagesResp.Data {
if ListImages.Name == option.ModelName {
m.SourceLocation = ListImages.SwrPath
return nil
if option.ModelName == "ChatGLM-6B" {
if ListImages.Name == "chatglm-6b" {
m.SourceLocation = ListImages.SwrPath
return nil
}
} else {
if ListImages.Name == option.ModelName {
m.SourceLocation = ListImages.SwrPath
return nil
}
}
}
return errors.New("SourceLocation not set")
@ -346,23 +356,28 @@ func (m *ModelArtsLink) GetModelId(ctx context.Context, option *option.InferOpti
req := &modelarts.ListModelReq{
Platform: m.platform,
ModelName: option.ModelName,
ModelType: "Image",
Limit: int64(m.pageIndex),
Offset: int64(m.pageSize),
//ModelType: "Image",
Limit: int64(m.pageIndex),
Offset: int64(m.pageSize),
}
ListModelResp, err := m.modelArtsRpc.ListModels(ctx, req)
if err != nil {
return err
}
if ListModelResp.Code != 200 {
return errors.New("failed to get ModelId")
}
for _, ListModel := range ListModelResp.Models {
if ListModel.ModelName == option.ModelName {
option.ModelId = ListModel.ModelId
m.Version = ListModel.ModelVersion
return nil
if ListModelResp.Code == 200 {
//return errors.New("failed to get ModelId")
for _, ListModel := range ListModelResp.Models {
if ListModel.ModelName == option.ModelName {
option.ModelId = ListModel.ModelId
m.Version = ListModel.ModelVersion
return nil
}
}
}
err = m.CreateModel(ctx, option)
if err != nil {
return err
}
return nil
}
@ -386,6 +401,7 @@ func (m *ModelArtsLink) GetModel(ctx context.Context, option *option.InferOption
if ShowModelsResp.Code != 200 {
errors.New("failed to get findModelsStatus")
}
m.ModelType = ShowModelsResp.ShowModelDetail.ModelAlgorithm
return ShowModelsResp.ShowModelDetail.ModelStatus
}
@ -417,15 +433,28 @@ func (m *ModelArtsLink) CreateModel(ctx context.Context, option *option.InferOpt
return errors.New("No image available for creationd")
}
//
var CMD string
if option.ModelName == "imagenet_resnet50" {
CMD = ImageNetResnet50Cmd
} else if option.ModelName == "ChatGLM-6B" {
CMD = ChatGLM6BCmd
}
if m.Version == "" {
m.Version = "0.0.1"
}
version, err := ParseVersion(m.Version)
version.Increment()
req := &modelarts.CreateModelReq{
Platform: m.platform,
ModelName: option.ModelName,
ModelType: "Image",
ModelVersion: version.String(),
SourceLocation: m.SourceLocation,
InstallType: []string{"real-time"},
Cmd: CMD,
ModelAlgorithm: option.ModelType,
}
ModelResp, err := m.modelArtsRpc.CreateModel(ctx, req)
if err != nil {
@ -733,6 +762,8 @@ func (m *ModelArtsLink) GetInferDeployInstance(ctx context.Context, id string) (
ins.ClusterName = m.platform
ins.CreatedTime = string(resp.StartTime)
ins.ClusterType = TYPE_MODELARTS
ins.ModelName = resp.Config[0].ModelName
ins.ModelType = m.ModelType
return ins, nil
}
@ -747,11 +778,6 @@ func (m *ModelArtsLink) CreateInferDeployInstance(ctx context.Context, option *o
return "", err
}
err = m.CreateModel(ctx, option)
if err != nil {
return "", err
}
err = m.GetModelStatus(ctx, option)
if err != nil {
return "", err
@ -769,7 +795,7 @@ func (m *ModelArtsLink) CreateInferDeployInstance(ctx context.Context, option *o
Platform: m.platform,
Config: configItems,
InferType: "real-time",
ServiceName: option.TaskName,
ServiceName: option.ModelName + "_" + option.ModelType + "_" + Npu,
}
ctx, cancel := context.WithTimeout(context.Background(), 150*time.Second)
defer cancel()