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 products da Alibaba Cloud.
Informações básicas
Um sistema de recomendação sugere conteúdo ou products personalizados aos usuários com base em seus interesses e preferências. Uma etapa crucial em um sistema de recomendação é 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 SDK do FeatureStore.
Para obter mais informações sobre o FeatureStore, consulte FeatureStore overview.
Se tiver alguma dúvida durante a configuração ou o uso, entre em nosso grupo do DingTalk (ID: 34415007523) para obter suporte técnico.
Pré-requisitos
Antes de começar, conclua os seguintes preparativos.
|
Product 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 amostra de usuários, itens e rótulos no projeto MaxCompute pai_online_project. As tabelas de usuários e itens contêm, cada uma, 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 o seu próprio projeto MaxCompute. Siga estas etapas:
Acesse o console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks que você criou 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 o seu próprio projeto MaxCompute. Para Resource Group, selecione o grupo de recursos exclusivo que você criou.
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 source de dados
O FeatureStore normalmente requer duas source de dados: um armazenamento offline (MaxCompute) e um armazenamento online (FeatureDB, Hologres ou TableStore). Este tópico usa MaxCompute e FeatureDB como exemplos.
Acesse o PAI console. No painel de navegação à esquerda, clique em Data Preparation > FeatureStore.
Selecione um workspace e clique em Enter FeatureStore.
-
Configure a source de dados do MaxCompute.
-
Na aba Store, clique em Create Store. Na caixa de diálogo exibida, configure os parâmetros para a source de dados do MaxCompute.
Parâmetro
Valor sugerido
Type
MaxCompute
Name
Insira um nome personalizado.
MaxCompute Project Name
Selecione o projeto MaxCompute que você criou.
-
Copie a instrução de autorização. Em seguida, clique em Go Now para acessar o DataWorks. Execute a instrução no DataWorks para conceder as permissões necessárias.
NotaA operação de autorização requer que sua conta tenha permissões de administrador. Para obter mais informações, consulte Manage user permissions using commands ou Manage user permissions in the console.
Após concluir a configuração, clique em Submit.
-
-
Configure a source de dados do FeatureDB.
Se você já criou uma source de dados do FeatureDB, pule esta etapa.
-
Na aba Store, clique em Create Store. Na caixa de diálogo exibida, configure os parâmetros para a source de dados do FeatureDB.
Parâmetro
Valor sugerido
Type
FeatureDB (Se esta for a primeira vez que você o utiliza, 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, você pode usar o FeatureStore SDK em uma VPC para acessar diretamente o FeatureDB por meio 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 o seu service 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 service 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 SDK do Python do FeatureStore mesmo que use o console para a configuração inicial.
Método 1: Usar o console
-
Crie um projeto do FeatureStore.
Acesse o 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 source de dados do MaxCompute que você criou.
Online Store
Selecione a source de dados do FeatureDB que você criou.
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 para a 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 para a 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 feature view.
-
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 para a feature view 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 source de dados do MaxCompute que você criou.
Feature Table
Selecione a tabela de usuários que você preparou: 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 feature view 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 source de dados do MaxCompute que você criou.
Feature Table
Selecione a tabela de itens que você preparou: 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 feature view.
-
-
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 source de dados do MaxCompute que você criou.
Table Name
Selecione a tabela de rótulos que você preparou: 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 feature views de usuário e item que você criou.
Label Table Name
Selecione a tabela de rótulos que você criou: rec_sln_demo_label_table.
Clique em Submit para criar o recurso de modelo.
Na página da 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 de recursos subsequente e treinamento de modelo.
-
Instale o SDK do Python do FeatureStore. Para obter mais informações, consulte Use FeatureStore to manage features in a recommendation system.
Método 2: Usar o SDK do Python do FeatureStore
Acesse o console do DataWorks.
No painel de navegação à esquerda, clique em Resource Groups.
Na aba Exclusive Resource Groups, encontre o grupo de recursos cujo Purpose é Data Scheduling. Clique no ícone
ao lado de seu 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.whlTimeout
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 como usar o SDK, consulte DSW Gallery.
3. Executar o nó de sincronização de dados
Antes de publicar seu service, execute o nó de sincronização de dados regularmente para sincronizar dados do armazenamento offline para o armazenamento online. O service online então lê 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.
Acesse o console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks que você criou 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 que você criou.
Scheduling Dependencies
Selecione a tabela de usuários que você criou.
Após configurar e testar o nó, salve e envie a configuração do nó.
Execute uma operação de backfill de dados. Para obter mais informações, consulte Synchronize data tables.
-
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 de rotina 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 que você criou.
Scheduling Dependencies
Selecione a tabela de itens que você criou.
Após configurar e testar o nó, salve e envie a configuração do nó.
Execute uma operação de backfill de dados. Para obter mais informações, consulte Synchronize data tables.
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
Acesse o console do DataWorks.
No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.
Selecione o workspace do DataWorks que você criou 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 que você criou.
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 que você criou.
Scheduling Dependencies
Selecione as tabelas de usuários e itens que você criou.
Após configurar e testar o nó, salve e envie a configuração do nó.
Execute uma operação de backfill de dados. Para obter mais informações, consulte Synchronize data tables.
5. Instalar e usar o SDK
Python SDK
Para obter mais informações, consulte Use the FeatureStore Python SDK to build a recommendation system.
Go SDK
O FeatureStore Go SDK é open source. Para obter mais informações, consulte aliyun-pai-featurestore-go-sdk.
-
Instalação
Execute o seguinte comando para instalar o SDK do Go do FeatureStore.
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 se conecta diretamente à source de dados online. Portanto, o cliente deve ser executado em um ambiente VPC. Por exemplo, o Hologres requer que as conexões se originem de uma VPC especificada.
-
Recupere dados de recursos de uma feature view.
// 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 feature view. 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.
É possível associar um recurso de modelo a várias entidades de recursos. Você pode fornecer 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, você deve fornecer 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" } ]Você também pode especificar 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 obter mais informações, consulte aliyun-pai-featurestore-java-sdk.
Esta seção usa uma source de dados do Hologres como exemplo.
-
Execute o seguinte código para carregar variáveis de ambiente e inicializar o service.
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 configure 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 feature view do projeto. Este exemplo usa uma feature view 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 feature view.
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. Você também pode especificar certas propriedades para recuperar apenas um subconjunto das informações.FeatureResult featureResult1=featureView.getOnlineFeatures(new String[]{"100017768","100027781","100072534"},new String[]{"*"},m1);Exiba 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 que você fornece 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 a partir 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 é especificamente otimizado para extração de recursos, gerenciamento de cache e operações de leitura para fornecer uma solução de alta performance 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 é mais significativa sob altas cargas de recursos.
Tempo de extração de recursos: Em vez de extrair recursos de armazenamentos online (como FeatureDB e Hologres), o SDK os extrai 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 fornece melhor estabilidade e extensibilidade, o que reduz a carga nos armazenamentos online durante operações de scale-out.
Tempo de pontuação do modelo: Usar este SDK melhora a métrica de performance TP100 para pontuação de modelo, estabiliza os tempos de resposta e reduz significativamente as requisições de timeout. Essas melhorias aumentam a confiabilidade geral e a experiência do usuário do service de recomendação.
Referências
O FeatureStore também pode ser usado com outros products da cloud para construir um sistema de recomendação. Para obter mais informações, consulte Use FeatureStore to manage features in a recommendation system.