Este tópico descreve como usar o kit de desenvolvimento de software (SDK) do FeatureStore para gerenciar recursos em um sistema de recomendação sem utilizar outros produtos da Alibaba Cloud.
Informações básicas
Um sistema de recomendação sugere conteúdo ou produtos personalizados aos usuários com base em seus interesses e preferências. Uma etapa crucial nesse processo é extrair e configurar recursos para usuários e itens. Este documento demonstra como construir um sistema de recomendação usando o FeatureStore e gerenciar dados de recursos com diferentes versões do FeatureStore SDK.
Para obter mais informações sobre o FeatureStore, consulte Visão geral do FeatureStore.
Se você tiver dúvidas durante a configuração ou o uso, participe do nosso grupo no DingTalk (ID: 34415007523) para obter suporte técnico.
Pré-requisitos
Antes de começar, conclua as seguintes preparações.
|
Produto dependente |
Operação específica |
|
Platform for AI (PAI) |
|
|
MaxCompute |
|
|
FeatureDB |
|
|
DataWorks |
|
1. Preparar dados
Sincronizar tabelas de dados
Em um cenário típico de recomendação, prepare três tabelas de dados: uma tabela de recursos de usuário, uma tabela de recursos de item e uma tabela de rótulos.
Para fins de prática, preparamos tabelas de exemplo de usuários, itens e rótulos no projeto do MaxCompute pai_online_project. As tabelas de usuários e itens contêm aproximadamente 100.000 entradas de dados por partição e ocupam cerca de 70 MB de armazenamento no MaxCompute. A tabela de rótulos contém aproximadamente 450.000 entradas de dados por partição e ocupa cerca de 5 MB de armazenamento no MaxCompute.
Execute comandos SQL no DataWorks para sincronizar as tabelas de usuários, itens e rótulos do projeto pai_online_project para seu próprio projeto do MaxCompute. Siga estas etapas:
Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks criado e clique em Go to Data Studio.
-
Passe o mouse sobre Create e escolha Create Node > MaxCompute > MaxCompute SQL. Na caixa de diálogo exibida, configure os parâmetros do nó.
Parâmetro
Valor sugerido
Type
MaxCompute SQL
Path
Business Flow/Workflow/MaxCompute
Name
Insira um nome personalizado.
Clique em OK.
-
Na área do novo nó, execute os seguintes comandos SQL para sincronizar as tabelas de usuários, itens e rótulos do projeto pai_online_project para seu próprio projeto do MaxCompute. Em Resource Group, selecione o grupo de recursos exclusivo criado.
Sincronizar a tabela de usuários: rec_sln_demo_user_table_preprocess_all_feature_v1 (Clique para detalhes)
Sincronizar a tabela de itens: rec_sln_demo_item_table_preprocess_all_feature_v1 (Clique para detalhes)
Sincronizar a tabela de rótulos: rec_sln_demo_label_table (Clique para detalhes)
Após concluir essas etapas, visualize a tabela de usuários rec_sln_demo_user_table_preprocess_all_feature_v1, a tabela de itens rec_sln_demo_item_table_preprocess_all_feature_v1 e a tabela de rótulos rec_sln_demo_label_table no seu workspace. Essas três tabelas são usadas como exemplos nas operações a seguir.
Configurar fontes de dados
O FeatureStore geralmente requer duas fontes de dados: um armazenamento offline (MaxCompute) e um armazenamento online (FeatureDB, Hologres ou TableStore). Este tópico usa MaxCompute e FeatureDB como exemplos.
Faça login no PAI console. No painel de navegação à esquerda, clique em Data Preparation > FeatureStore.
Selecione um workspace e clique em Enter FeatureStore.
-
Configure a fonte de dados do MaxCompute.
-
Na aba Store, clique em Create Store. Na caixa de diálogo exibida, configure os parâmetros da fonte de dados do MaxCompute.
Parâmetro
Valor sugerido
Type
MaxCompute
Name
Insira um nome personalizado.
MaxCompute Project Name
Selecione o projeto do MaxCompute criado.
-
Copie a instrução de autorização. Em seguida, clique em Ir agora para acessar o DataWorks. Execute a instrução no DataWorks para conceder as permissões necessárias.
NotaA operação de autorização exige que sua conta tenha permissões de administrador. Para mais informações, consulte Gerenciar permissões de usuário usando comandos ou Gerenciar permissões de usuário no console.
Após concluir a configuração, clique em Submit.
-
-
Configure a fonte de dados do FeatureDB.
Se você já criou uma fonte de dados do FeatureDB, pule esta etapa.
-
Na aba Store, clique em Create Store. Na caixa de diálogo exibida, configure os parâmetros da fonte de dados do FeatureDB.
Parâmetro
Valor sugerido
Type
FeatureDB (Se for sua primeira vez usando, siga as instruções na tela para ativar o FeatureDB)
Name
Nomes personalizados não são suportados. O valor padrão é feature_db.
Username
Defina um nome de usuário.
Password
Defina uma senha.
High-speed VPC Connection (Optional)
Após a configuração bem-sucedida, use o FeatureStore SDK em uma VPC para acessar diretamente o FeatureDB através de uma conexão PrivateLink. Isso melhora o desempenho de leitura e gravação de dados e reduz a latência de acesso.
VPC
Selecione a VPC onde seu serviço online do FeatureStore está localizado.
Zone and vSwitch
Selecione uma zona e um vSwitch. Certifique-se de selecionar o vSwitch na zona onde sua máquina de serviço online está localizada. Recomendamos selecionar vSwitches em pelo menos duas zonas para garantir alta disponibilidade e estabilidade para o seu negócio.
Após concluir a configuração, clique em Submit.
2. Criar e registrar um projeto do FeatureStore
Crie e registre um projeto do FeatureStore usando o console ou um SDK. Como o SDK é necessário para operações subsequentes, como exportar um conjunto de treinamento e sincronizar dados, instale o FeatureStore Python SDK mesmo que utilize o console para a configuração inicial.
Método 1: Usar o console
-
Crie um projeto do FeatureStore.
Faça login no PAI console. No painel de navegação à esquerda, clique em Data Preparation > FeatureStore.
Selecione um workspace e clique em Enter FeatureStore.
-
Clique em Create Project. Na caixa de diálogo exibida, configure os parâmetros do projeto.
Parâmetro
Valor sugerido
Name
Insira um nome personalizado. Este tópico usa fs_demo como exemplo.
Description
Insira uma descrição personalizada.
Offline Store
Selecione a fonte de dados do MaxCompute criada.
Online Store
Selecione a fonte de dados do FeatureDB criada.
Clique em Submit para criar o projeto do FeatureStore.
-
Crie uma entidade de recurso.
Na página Projects do FeatureStore, clique no nome do projeto para abrir a página de detalhes do projeto.
-
Na aba Feature Entity, clique em Create Feature Entity. Na caixa de diálogo exibida, configure os parâmetros da entidade de recurso de usuário.
Parâmetro
Valor sugerido
Feature Entity Name
Insira um nome personalizado. Este tópico usa user como exemplo.
Join Id
user_id
Clique em Submit.
-
Clique em Create Feature Entity. Na caixa de diálogo exibida, configure os parâmetros da entidade de recurso de item.
Parâmetro
Valor sugerido
Feature Entity Name
Insira um nome personalizado. Este tópico usa item como exemplo.
Join Id
item_id
Clique em Submit para criar a entidade de recurso.
-
Crie uma visualização de recurso.
-
Na aba Feature View da página de detalhes do projeto, clique em Create Feature View. Na caixa de diálogo exibida, configure os parâmetros da visualização de recurso de usuário.
Parâmetro
Valor sugerido
View Name
Insira um nome personalizado. Este tópico usa user_table_preprocess_all_feature_v1 como exemplo.
Type
Offline
Write Mode
Use Offline Table
Store
Selecione a fonte de dados do MaxCompute criada.
Feature Table
Selecione a tabela de usuários preparada: rec_sln_demo_user_table_preprocess_all_feature_v1.
Feature Field
Selecione a chave primária user_id.
Synchronize Online Feature Table
Yes
Feature Entity
user
Feature Lifecycle
Mantenha o valor padrão.
Clique em Submit.
-
Clique em Create Feature View. Na caixa de diálogo exibida, configure a visualização de recurso de item.
Parâmetro
Valor sugerido
View Name
Insira um nome personalizado. Este tópico usa item_table_preprocess_all_feature_v1 como exemplo.
Type
Offline
Write Mode
Use Offline Table
Store
Selecione a fonte de dados do MaxCompute criada.
Feature Table
Selecione a tabela de itens preparada: rec_sln_demo_item_table_preprocess_all_feature_v1.
Feature Field
Selecione a chave primária item_id.
Synchronize Online Feature Table
Yes
Feature Entity
item
Feature Lifecycle
Mantenha o valor padrão.
Após concluir a configuração, clique em Submit para criar a visualização de recurso.
-
-
Crie uma tabela de rótulos.
-
Na aba Label Table da página de detalhes do projeto, clique em Create Label Table. Na caixa de diálogo exibida, configure as informações da tabela de rótulos.
Parâmetro
Valor sugerido
Store
Selecione a fonte de dados do MaxCompute criada.
Table Name
Selecione a tabela de rótulos preparada: rec_sln_demo_label_table.
Clique em Submit.
-
-
Crie um recurso de modelo.
-
Na aba Model Features da página de detalhes do projeto, clique em Create Model Feature. Na caixa de diálogo exibida, configure os parâmetros do recurso de modelo.
Parâmetro
Valor sugerido
Model Feature Name
Insira um nome personalizado. Este tópico usa fs_rank_v1 como exemplo.
Select Feature
Selecione as visualizações de recursos de usuário e item criadas.
Label Table Name
Selecione a tabela de rótulos criada: rec_sln_demo_label_table.
Clique em Submit para criar o recurso de modelo.
Na página de lista de recursos de modelo, clique em Details à direita do seu modelo.
Na caixa de diálogo Model Feature Details exibida, na aba Basic Information, visualize o Export Table Name, que é fs_demo_fs_rank_v1_trainning_set. Esta tabela é usada para produção subsequente de recursos e treinamento de modelos.
-
Instale o FeatureStore Python SDK. Para mais informações, consulte Usar o FeatureStore para gerenciar recursos em um sistema de recomendação.
Método 2: Usar o FeatureStore Python SDK
Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Resource Groups.
Na aba Exclusive Resource Groups, localize o grupo de recursos cuja Purpose seja Data Scheduling. Clique no ícone
ao lado do recurso de agendamento e selecione O&M Assistant.-
Clique em Create Command. Na caixa de diálogo exibida, configure os parâmetros do comando.
Parâmetro
Valor sugerido
Nome do Comando
Insira um nome personalizado. Este tópico usa install como exemplo.
Tipo de Comando
Manual Input (pip Command Cannot Be Used To Install Third-party Packages)
Conteúdo do Comando
/home/tops/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple https://feature-store-py.oss-cn-beijing.aliyuncs.com/package/feature_store_py-2.0.2-py3-none-any.whlTempo Limite
Defina um tempo personalizado.
Clique em Create para criar o comando.
Clique em Run Command. Na caixa de diálogo exibida, clique em Run.
Clique em Refresh para visualizar o status de execução mais recente. Quando o status mudar para Success, a instalação estará concluída.
Para obter etapas detalhadas sobre o uso do SDK, consulte a DSW Gallery.
3. Executar o nó de sincronização de dados
Antes de publicar seu serviço, execute o nó de sincronização de dados regularmente para sincronizar dados do armazenamento offline para o armazenamento online. O serviço online então lê os dados do armazenamento online em tempo real. Este exemplo demonstra como configurar uma tarefa de sincronização recorrente para as tabelas de recursos de usuário e item.
Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks criado e clique em Enter Data Development.
-
Configure a sincronização recorrente para a tabela de usuários.
Passe o mouse sobre Create e escolha New Node > MaxCompute > PyODPS 3.
-
Copie o seguinte conteúdo para o script para concluir a sincronização recorrente de user_table_preprocess_all_feature_v1.
from feature_store_py.fs_client import FeatureStoreClient import datetime from feature_store_py.fs_datasource import MaxComputeDataSource import sys from odps.accounts import StsAccount cur_day = args['dt'] print('cur_day = ', cur_day) access_key_id = o.account.access_id access_key_secret = o.account.secret_access_key sts_token = None endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com' if isinstance(o.account, StsAccount): sts_token = o.account.sts_token fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint) cur_project_name = 'fs_demo' project = fs.get_project(cur_project_name) feature_view_name = 'user_table_preprocess_all_feature_v1' batch_feature_view = project.get_feature_view(feature_view_name) task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite', offline_to_online=True) task.wait() task.print_summary() -
No painel de navegação à direita, clique em Scheduling Configuration. Na caixa de diálogo exibida, configure os parâmetros de agendamento.
Parâmetro
Valor sugerido
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Selecione o grupo de recursos exclusivo criado.
Scheduling Dependencies
Selecione a tabela de usuários criada.
Após configurar e testar o nó, salve e envie a configuração do nó.
Realize uma operação de backfill de dados. Para mais informações, consulte Sincronizar tabelas de dados.
-
Configure a sincronização recorrente para a tabela de itens.
Passe o mouse sobre Create e escolha New Node > MaxCompute > PyODPS 3. Na caixa de diálogo exibida, configure os parâmetros do nó.
Clique em Confirm.
-
Copie o seguinte conteúdo para o script.
Sincronização rotineira para item_table_preprocess_all_feature_v1 (Clique para detalhes)
-
No painel de navegação à direita, clique em Scheduling Configuration. Na caixa de diálogo exibida, configure os parâmetros de agendamento.
Parâmetro
Valor sugerido
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Selecione o grupo de recursos exclusivo criado.
Scheduling Dependencies
Selecione a tabela de itens criada.
Após configurar e testar o nó, salve e envie a configuração do nó.
Realize uma operação de backfill de dados. Para mais informações, consulte Sincronizar tabelas de dados.
Após a conclusão da sincronização, visualize os dados de recursos sincronizados mais recentes no Hologres.
4. Exportar o script do conjunto de treinamento
Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks criado e clique em Enter Data Development.
-
Passe o mouse sobre Create e escolha New Node > MaxCompute > PyODPS 3. Na caixa de diálogo exibida, configure os parâmetros do nó.
Parâmetro
Valor sugerido
Engine Instance
Selecione o mecanismo do MaxCompute criado.
Node Type
PyODPS 3
Path
Business Flow/Workflow/MaxCompute
Name
Insira um nome personalizado.
Clique em Confirm.
-
Copie o seguinte conteúdo para o script.
from feature_store_py.fs_client import FeatureStoreClient from feature_store_py.fs_project import FeatureStoreProject from feature_store_py.fs_datasource import LabelInput, MaxComputeDataSource, TrainingSetOutput from feature_store_py.fs_features import FeatureSelector from feature_store_py.fs_config import LabelInputConfig, PartitionConfig, FeatureViewConfig from feature_store_py.fs_config import TrainSetOutputConfig, EASDeployConfig import datetime import sys from odps.accounts import StsAccount cur_day = args['dt'] print('cur_day = ', cur_day) offset = datetime.timedelta(days=-1) pre_day = (datetime.datetime.strptime(cur_day, "%Y%m%d") + offset).strftime('%Y%m%d') print('pre_day = ', pre_day) access_key_id = o.account.access_id access_key_secret = o.account.secret_access_key sts_token = None endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com' if isinstance(o.account, StsAccount): sts_token = o.account.sts_token fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint) cur_project_name = 'fs_demo' project = fs.get_project(cur_project_name) label_partitions = PartitionConfig(name = 'ds', value = cur_day) label_input_config = LabelInputConfig(partition_config=label_partitions) user_partitions = PartitionConfig(name = 'ds', value = pre_day) feature_view_user_config = FeatureViewConfig(name = 'user_table_preprocess_all_feature_v1', partition_config=user_partitions) item_partitions = PartitionConfig(name = 'ds', value = pre_day) feature_view_item_config = FeatureViewConfig(name = 'item_table_preprocess_all_feature_v1', partition_config=item_partitions) feature_view_config_list = [feature_view_user_config, feature_view_item_config] train_set_partitions = PartitionConfig(name = 'ds', value = cur_day) train_set_output_config = TrainSetOutputConfig(partition_config=train_set_partitions) model_name = 'fs_rank_v1' cur_model = project.get_model(model_name) task = cur_model.export_train_set(label_input_config, feature_view_config_list, train_set_output_config) task.wait() print("task_summary = ", task.task_summary) -
No painel de navegação à direita, clique em Scheduling Configuration. Na caixa de diálogo exibida, configure os parâmetros de agendamento.
Parâmetro
Valor sugerido
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Selecione o grupo de recursos exclusivo criado.
Scheduling Dependencies
Selecione as tabelas de usuários e itens criadas.
Após configurar e testar o nó, salve e envie a configuração do nó.
Realize uma operação de backfill de dados. Para mais informações, consulte Sincronizar tabelas de dados.
5. Instalar e usar o SDK
Python SDK
Para mais informações, consulte Usar o FeatureStore Python SDK para construir um sistema de recomendação.
Go SDK
O FeatureStore Go SDK é open source. Para mais informações, consulte aliyun-pai-featurestore-go-sdk.
-
Instalação
Execute o seguinte comando para instalar o FeatureStore Go SDK.
go get github.com/aliyun/aliyun-pai-featurestore-go-sdk/v2 -
Uso
-
Execute o seguinte comando para inicializar o cliente.
accessId := os.Getenv("AccessId") accessKey := os.Getenv("AccessKey") regionId := "cn-hangzhou" projectName := "fs_test_ots" client, err := NewFeatureStoreClient(regionId, accessId, accessKey, projectName)NotaO SDK conecta-se diretamente à fonte de dados online. Portanto, o cliente deve ser executado em um ambiente VPC. Por exemplo, o Hologres exige que as conexões se originem de uma VPC especificada.
-
Recupere dados de recursos de uma visualização de recurso.
// get project by name project, err := client.GetProject("fs_test_ots") if err != nil { // t.Fatal(err) } // get featureview by name user_feature_view := project.GetFeatureView("user_fea") if user_feature_view == nil { // t.Fatal("feature view not exist") } // get online features features, err := user_feature_view.GetOnlineFeatures([]interface{}{"100043186", "100060369"}, []string{"*"}, nil)Aqui,
[]string{"*"}significa recuperar todos os recursos na visualização de recurso. Você também pode especificar os nomes dos recursos que deseja recuperar.A seguir, um exemplo dos dados retornados:
[ { "city":"Hefei", "follow_cnt":1, "gender":"male", "user_id":"100043186" }, { "city":"", "follow_cnt":5, "gender":"male", "user_id":"100060369" } ] -
Recupere dados de recursos de um recurso de modelo.
Um recurso de modelo pode ser associado a várias entidades de recurso. Forneça vários join IDs para recuperar os recursos correspondentes juntos.
Este exemplo usa três join IDs:
join_id,user_ideitem_id. Ao buscar recursos, forneça um valor para cada join ID.// get project by name project, err := client.GetProject("fs_test_ots") if err != nil { // t.Fatal(err) } // get ModelFeature by name model_feature := project.GetModelFeature("rank") if model_feature == nil { // t.Fatal("model feature not exist") } // get online features features, err := model_feature.GetOnlineFeatures(map[string][]interface{}{"user_id": {"100000676", "100004208"}, "item_id":{"238038872", "264025480"}} )A seguir, um exemplo dos dados retornados:
[ { "age":26, "author":100015828, "category":"14", "city":"Shenyang", "duration":63, "gender":"male", "item_id":"238038872", "user_id":"100000676" }, { "age":23, "author":100015828, "category":"15", "city":"Xi'an", "duration":22, "gender":"male", "item_id":"264025480", "user_id":"100004208" } ]Especifique uma entidade de recurso para recuperar todos os seus recursos correspondentes.
A seguir, um exemplo dos dados retornados:
[ { "age":26, "city":"Shenyang", "gender":"male", "user_id":"100000676" }, { "age":23, "city":"Xi'an", "gender":"male", "user_id":"100004208" } ]
-
Java SDK
O FeatureStore Java SDK é open source. Para mais informações, consulte aliyun-pai-featurestore-java-sdk.
Esta seção usa uma fonte de dados do Hologres como exemplo.
-
Execute o código a seguir para carregar variáveis de ambiente e inicializar o serviço.
public static String accessId = ""; public static String accessKey = ""; // Configure the host based on the region public static String host = ""; // Get the accessId and accessKey from the configured local environment variables static { accessId = System.getenv("ACCESS_KEY_ID"); accessKey = System.getenv("ACCESS_KEY_SECRET"); } -
Crie uma classe de configuração que defina o
regionId,accessId,accessKeye o nome do projeto.Configuration cf = new Configuration("cn-hangzhou",Constants.accessId,Constants.accessKey,"ele28"); cf.setDomain(Constants.host);// Note: The default environment is a VPC environment -
Inicialize o cliente.
ApiClient apiClient = new ApiClient(cf); // FS client FeatureStoreClient featureStoreClient = new FeatureStoreClient(apiClient); -
Recupere o projeto. Este exemplo usa um projeto chamado ele28.
Project project=featureStoreClient.getProject("ele28"); if(project==null){ throw new RuntimeException("Project not found"); } -
Recupere a visualização de recurso do projeto. Este exemplo usa uma visualização de recurso chamada mc_test.
FeatureView featureView=project.getFeatureView("mc_test"); if (featureView == null) { throw new RuntimeException("FeatureView not found"); } -
Recupere dados de recursos online com base na visualização de recurso.
Map<String,String> m1=new HashMap<>(); m1.put("gender","gender1"); // Create an alias user_id='100027781'(FS_INT64) age='28'(FS_INT64) city='null'(FS_STRING) item_cnt='0'(FS_INT64) follow_cnt='0'(FS_INT64) follower_cnt='2'(FS_INT64) register_time='1697641608'(FS_INT64) tags='0'(FS_STRING) gender1='female'(FS_STRING) ---------------Para recuperar recursos online,
String[]{"*"}recupera todas as propriedades. Especifique certas propriedades para recuperar apenas um subconjunto das informações.FeatureResult featureResult1=featureView.getOnlineFeatures(new String[]{"100017768","100027781","100072534"},new String[]{"*"},m1);Imprima as informações do recurso.
while(featureResult1.next()){ System.out.println("---------------"); // Feature name for(String m:featureResult1.getFeatureFields()){ System.out.print(String.format("%s=%s(%s) ",m,featureResult1.getObject(m),featureResult1.getType(m))); } System.out.println("---------------"); }Os seguintes dados são retornados.
--------------- user_id='100017768'(FS_INT64) age='28'(FS_INT64) city='Dongguan'(FS_STRING) item_cnt='1'(FS_INT64) follow_cnt='1'(FS_INT64) follower_cnt='0'(FS_INT64) register_time='1697202320'(FS_INT64) tags='1,2'(FS_STRING) gender1='female'(FS_STRING) --------------- -
Recupere o modelo.
Model model=project.getModelFeature("model_t1"); if(model==null){ throw new RuntimeException("Model not found"); }-
Recupere dados do recurso de modelo.
Este recurso de modelo usa dois join IDs: user_id e item_id. O número de valores fornecidos deve corresponder ao número de join IDs. Este exemplo fornece um valor para cada join ID.
Map<String, List<String>> m2=new HashMap<>(); m2.put("user_id",Arrays.asList("101683057")); m2.put("item_id",Arrays.asList("203665415")); -
Recupere todos os dados de recursos relacionados à entidade de recurso de usuário do recurso de modelo.
FeatureResult featureResult2 = model.getOnlineFeaturesWithEntity(m2,"user");Os seguintes dados são retornados.
--------------- user_id='101683057' age='28' city='Shenzhen' follower_cnt='234' follow_cnt='0' gender='male' item_cnt='0' register_time='1696407642' tags='2' item_id='203665415' author='132920407' category='14' click_count='0' duration='18.0' praise_count='10' pub_time='1698218997' title='#Idiom Story' ---------------
-
Cpp SDK
O FeatureStore C++ SDK está atualmente integrado ao EasyRec Processor. Ele é otimizado especificamente para extração de recursos, gerenciamento de cache e operações de leitura, oferecendo uma solução de alto desempenho e baixa latência para cenários de recomendação em grande escala.
Uso de memória: Ao lidar com dados de recursos complexos e em grande escala, o consumo de memória é significativamente reduzido. A economia de memória é ainda maior sob altas cargas de recursos.
Tempo de busca de recursos: Em vez de buscar recursos em armazenamentos online (como FeatureDB e Hologres), o SDK os busca diretamente do MaxCompute para o cache do Elastic Algorithm Service (EAS). Isso reduz significativamente o tempo de carregamento de recursos. Além disso, o MaxCompute oferece melhor estabilidade e extensibilidade, o que reduz a carga nos armazenamentos online durante operações de scale-out.
Tempo de pontuação do modelo: O uso deste SDK melhora a métrica de desempenho TP100 para pontuação de modelos, estabiliza os tempos de resposta e reduz significativamente as solicitações de timeout. Essas melhorias aumentam a confiabilidade geral e a experiência do usuário no serviço de recomendação.
Referências
O FeatureStore também pode ser usado com outros produtos em nuvem para construir um sistema de recomendação. Para mais informações, consulte Usar o FeatureStore para gerenciar recursos em um sistema de recomendação.