Assinaturas inferidas para pipelines Hugging Face

O Snowflake Model Registry infere automaticamente as assinaturas dos pipelines do Hugging Face com uma única tarefa da seguinte lista:

  • conversational

  • fill-mask

  • question-answering

  • summarization

  • table-question-answering

  • text2text-generation

  • text-classification (alias sentiment-analysis)

  • text-generation

  • token-classification (alias ner)

  • translation

  • translation_xx_to_yy

  • zero-shot-classification

Este tópico descreve as assinaturas desses tipos de pipelines do Hugging Face, incluindo uma descrição e exemplo das entradas necessárias e saídas esperadas. Todas as entradas e saídas são Snowpark DataFrames.

Para obter orientação geral sobre como registrar pipelines do Hugging Face no registro, consulte Pipeline do Hugging Face.

Pipeline de conversação

Um pipeline cuja tarefa é conversacional tem as seguintes entradas e saídas.

Entradas

  • user_inputs: Uma lista de cadeias de caracteres que representam as entradas anteriores e atuais do usuário. O último da lista é a entrada atual.

  • generated_responses: Uma lista de cadeias de caracteres de cadeias de caracteres que representam as respostas anteriores do modelo.

Exemplo:

---------------------------------------------------------------------------
|"user_inputs"                                    |"generated_responses"  |
---------------------------------------------------------------------------
|[                                                |[                      |
|  "Do you speak French?",                        |  "Yes I do."          |
|  "Do you know how to say Snowflake in French?"  |]                      |
|]                                                |                       |
---------------------------------------------------------------------------

Saídas

  • generated_responses: Uma lista de cadeias de caracteres que representam as respostas anteriores e atuais do modelo. A última da lista é a resposta atual.

Exemplo:

-------------------------
|"generated_responses"  |
-------------------------
|[                      |
|  "Yes I do.",         |
|  "I speak French."    |
|]                      |
-------------------------

Pipeline de máscara de preenchimento

Um pipeline cuja tarefa é «fill-mask « tem as seguintes entradas e saídas.

Entradas

  • inputs: uma cadeia de caracteres onde há uma máscara para preencher.

Exemplo:

--------------------------------------------------
|"inputs"                                        |
--------------------------------------------------
|LynYuu is the [MASK] of the Grand Duchy of Yu.  |
--------------------------------------------------

Saídas

  • outputs: Uma cadeia de caracteres com uma representação JSON de uma lista de objetos, cada um dos quais pode conter chaves como score, token, token_str ou sequence. Para obter mais detalhes, consulte FillMaskPipeline.

Exemplo:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"outputs"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|[{"score": 0.9066258072853088, "token": 3007, "token_str": "capital", "sequence": "lynyuu is the capital of the grand duchy of yu."}, {"score": 0.08162177354097366, "token": 2835, "token_str": "seat", "sequence": "lynyuu is the seat of the grand duchy of yu."}, {"score": 0.0012052370002493262, "token": 4075, "token_str": "headquarters", "sequence": "lynyuu is the headquarters of the grand duchy of yu."}, {"score": 0.0006560495239682496, "token": 2171, "token_str": "name", "sequence": "lynyuu is the name of the grand duchy of yu."}, {"score": 0.0005427763098850846, "token": 3200, "token_str"...  |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Classificação de token

Um pipeline cuja tarefa é «ner» ou «token-classification « tem as seguintes entradas e saídas.

Entradas

  • inputs: Uma cadeia de caracteres com os tokens a serem classificados.

Exemplo:

------------------------------------------------
|"inputs"                                      |
------------------------------------------------
|My name is Izumi and I live in Tokyo, Japan.  |
------------------------------------------------

Saídas

  • outputs: Uma cadeia de caracteres com uma representação JSON de uma lista de objetos de resultado, cada um dos quais pode conter chaves como entity, score, index, word, name, start ou end. Para obter mais detalhes, consulte TokenClassificationPipeline.

Exemplo:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"outputs"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|[{"entity": "PRON", "score": 0.9994392991065979, "index": 1, "word": "my", "start": 0, "end": 2}, {"entity": "NOUN", "score": 0.9968984127044678, "index": 2, "word": "name", "start": 3, "end": 7}, {"entity": "AUX", "score": 0.9937735199928284, "index": 3, "word": "is", "start": 8, "end": 10}, {"entity": "PROPN", "score": 0.9928083419799805, "index": 4, "word": "i", "start": 11, "end": 12}, {"entity": "PROPN", "score": 0.997334361076355, "index": 5, "word": "##zumi", "start": 12, "end": 16}, {"entity": "CCONJ", "score": 0.999173104763031, "index": 6, "word": "and", "start": 17, "end": 20}, {...  |

Resposta a perguntas (saída única)

Um pipeline cuja tarefa é «question-answering «, em que top_k não está definido ou está definido como 1, tem as seguintes entradas e saídas.

Entradas

  • question: Uma cadeia de caracteres com a pergunta a ser respondida.

  • context: uma cadeia de caracteres que pode conter a resposta.

Exemplo:

-----------------------------------------------------------------------------------
|"question"                  |"context"                                           |
-----------------------------------------------------------------------------------
|What did Doris want to do?  |Doris is a cheerful mermaid from the ocean dept...  |
-----------------------------------------------------------------------------------

Saídas

  • score: pontuação de confiança de ponto flutuante de 0,0 a 1,0.

  • start: índice inteiro do primeiro token da resposta no contexto.

  • end: índice inteiro do último token da resposta no contexto original.

  • answer: Uma cadeia de caracteres com a resposta encontrada.

Exemplo:

--------------------------------------------------------------------------------
|"score"           |"start"  |"end"  |"answer"                                 |
--------------------------------------------------------------------------------
|0.61094731092453  |139      |178    |learn more about the world of athletics  |
--------------------------------------------------------------------------------

Resposta a perguntas (várias saídas)

Um pipeline cuja tarefa é «question-answering «, em que top_k é definido e é maior que 1, tem as seguintes entradas e saídas.

Entradas

  • question: Uma cadeia de caracteres com a pergunta a ser respondida.

  • context: uma cadeia de caracteres que pode conter a resposta.

Exemplo:

-----------------------------------------------------------------------------------
|"question"                  |"context"                                           |
-----------------------------------------------------------------------------------
|What did Doris want to do?  |Doris is a cheerful mermaid from the ocean dept...  |
-----------------------------------------------------------------------------------

Saídas

  • outputs: Uma cadeia de caracteres com uma representação JSON de uma lista de objetos de resultado, cada um dos quais pode conter chaves como score, start, end ou answer.

Exemplo:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"outputs"                                                                                                                                                                                                                                                                                                                                        |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|[{"score": 0.61094731092453, "start": 139, "end": 178, "answer": "learn more about the world of athletics"}, {"score": 0.17750297486782074, "start": 139, "end": 180, "answer": "learn more about the world of athletics.\""}, {"score": 0.06438097357749939, "start": 138, "end": 178, "answer": "\"learn more about the world of athletics"}]  |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Resumo

Um pipeline cuja tarefa é «summarization «, onde return_tensors é falso ou não definido, tem as seguintes entradas e saídas.

Entradas

  • documents: Uma cadeia de caracteres com texto para resumir.

Exemplo:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"documents"                                                                                                                                                                                               |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|Neuro-sama is a chatbot styled after a female VTuber that hosts live streams on the Twitch channel "vedal987". Her speech and personality are generated by an artificial intelligence (AI) system  wh...  |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Saídas

  • summary_text: Uma cadeia de caracteres com o resumo gerado ou, se num_return_sequences for maior que 1, uma cadeia de caracteres com uma representação JSON de uma lista de resultados, cada um dos quais é um dicionário com campos, incluindo summary_text.

Exemplo:

---------------------------------------------------------------------------------
|"summary_text"                                                                 |
---------------------------------------------------------------------------------
| Neuro-sama is a chatbot styled after a female VTuber that hosts live streams  |
---------------------------------------------------------------------------------

Tabela de respostas a perguntas

Um pipeline cuja tarefa é «table-question-answering « tem as seguintes entradas e saídas.

Entradas

  • query: Uma cadeia de caracteres com a pergunta a ser respondida.

  • table: Uma cadeia de caracteres com um dicionário serializado em JSON no formato {column -> [values]}, que representa a tabela que pode conter uma resposta.

Exemplo:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"query"                                  |"table"                                                                                                                                                                                                                                                   |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|Which channel has the most subscribers?  |{"Channel": ["A.I.Channel", "Kaguya Luna", "Mirai Akari", "Siro"], "Subscribers": ["3,020,000", "872,000", "694,000", "660,000"], "Videos": ["1,200", "113", "639", "1,300"], "Created At": ["Jun 30 2016", "Dec 4 2017", "Feb 28 2014", "Jun 23 2017"]}  |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Saídas

  • answer: Uma cadeia de caracteres com uma possível resposta.

  • coordinates: Uma lista de inteiros que representam as coordenadas das células onde a resposta foi localizada.

  • cells: Uma lista de cadeias de caracteres com o conteúdo das células onde a resposta foi localizada.

  • aggregator: Uma cadeia de caracteres com o nome do agregador usado.

Exemplo:

----------------------------------------------------------------
|"answer"     |"coordinates"  |"cells"          |"aggregator"  |
----------------------------------------------------------------
|A.I.Channel  |[              |[                |NONE          |
|             |  [            |  "A.I.Channel"  |              |
|             |    0,         |]                |              |
|             |    0          |                 |              |
|             |  ]            |                 |              |
|             |]              |                 |              |
----------------------------------------------------------------

Classificação de texto (saída única)

Um pipeline cuja tarefa é «text-classification « ou «análise de sentimento», onde top_k não é definido ou é nenhum (none), tem as seguintes entradas e saídas.

Entradas

  • text: uma cadeia de caracteres para classificar.

  • text_pair: Uma cadeia de caracteres para classificar juntamente com text e que é usada com modelos que calculam similaridade de texto. Deixe em branco se o modelo não o utilizar.

Exemplo:

----------------------------------
|"text"       |"text_pair"       |
----------------------------------
|I like you.  |I love you, too.  |
----------------------------------

Saídas

  • label: Uma cadeia de caracteres que representa o rótulo de classificação de texto.

  • score: uma pontuação de confiança de ponto flutuante de 0,0 a 1,0.

Exemplo:

--------------------------------
|"label"  |"score"             |
--------------------------------
|LABEL_0  |0.9760091304779053  |
--------------------------------

Classificação de texto (saída múltipla)

Um pipeline cuja tarefa é «text-classification « ou «análise de sentimento», onde top_k é definido como um número, tem as seguintes entradas e saídas.

Nota

Uma tarefa de classificação de texto é considerada de saída múltipla se top_k for definido como qualquer número, mesmo que esse número seja 1. Para obter uma saída única, use um valor top_k de Nenhum.

Entradas

  • text: uma cadeia de caracteres para classificar.

  • text_pair: Uma cadeia de caracteres para classificar juntamente com text, que é usada com modelos que calculam similaridade de texto. Deixe em branco se o modelo não o utilizar.

Exemplo:

--------------------------------------------------------------------
|"text"                                              |"text_pair"  |
--------------------------------------------------------------------
|I am wondering if I should have udon or rice fo...  |             |
--------------------------------------------------------------------

Saídas

  • outputs: Uma cadeia de caracteres com uma representação JSON de uma lista de resultados, cada um dos quais contém campos que incluem label e score.

Exemplo:

--------------------------------------------------------
|"outputs"                                             |
--------------------------------------------------------
|[{"label": "NEGATIVE", "score": 0.9987024068832397}]  |
--------------------------------------------------------

Geração de texto

Um pipeline cuja tarefa é «geração de texto «, onde return_tensors é falso ou não definido, tem as seguintes entradas e saídas.

Nota

Pipelines de geração de texto onde return_tensors é verdadeiro não são suportados.

Entradas

  • inputs: Uma cadeia de caracteres com um prompt.

Exemplo:

--------------------------------------------------------------------------------
|"inputs"                                                                      |
--------------------------------------------------------------------------------
|A descendant of the Lost City of Atlantis, who swam to Earth while saying, "  |
--------------------------------------------------------------------------------

Saídas

  • outputs: Uma cadeia de caracteres com uma representação JSON de uma lista de objetos de resultado, cada um dos quais contém campos que incluem generated_text.

Exemplo:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|"outputs"                                                                                                                                                                                                 |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|[{"generated_text": "A descendant of the Lost City of Atlantis, who swam to Earth while saying, \"For my life, I don't know if I'm gonna land upon Earth.\"\n\nIn \"The Misfits\", in a flashback, wh...  |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Geração de texto para texto

Um pipeline cuja tarefa é «geração de texto para texto «, onde return_tensors é falso ou não definido, tem as seguintes entradas e saídas.

Nota

Pipelines de geração de texto para texto onde return_tensors é verdadeiro não são suportados.

Entradas

  • inputs: Uma cadeia de caracteres com um prompt.

Exemplo:

--------------------------------------------------------------------------------
|"inputs"                                                                      |
--------------------------------------------------------------------------------
|A descendant of the Lost City of Atlantis, who swam to Earth while saying, "  |
--------------------------------------------------------------------------------

Saídas

  • generated_text: Uma cadeia de caracteres com o texto gerado se num_return_sequences for 1, ou se num_return_sequences for maior que 1, uma representação de cadeia de caracteres de uma lista JSON de dicionários de resultados com campos incluindo generated_text.

Exemplo:

----------------------------------------------------------------
|"generated_text"                                              |
----------------------------------------------------------------
|, said that he was a descendant of the Lost City of Atlantis  |
----------------------------------------------------------------

Geração de tradução

Um pipeline cuja tarefa é «translation «, onde return_tensors é falso ou não definido, tem as seguintes entradas e saídas.

Nota

Pipelines de geração de tradução onde return_tensors é verdadeiro não são suportados.

Entradas

  • inputs: Uma cadeia de caracteres com texto a ser traduzido.

Exemplo:

------------------------------------------------------------------------------------------------------
|"inputs"                                                                                            |
------------------------------------------------------------------------------------------------------
|Snowflake's Data Cloud is powered by an advanced data platform provided as a self-managed service.  |
------------------------------------------------------------------------------------------------------

Saídas

  • translation_text: Uma cadeia de caracteres que representa a tradução gerada se num_return_sequences for 1, ou uma representação de cadeia de caracteres de uma lista JSON de dicionários de resultados, cada um contendo campos que incluem translation_text.

Exemplo:

---------------------------------------------------------------------------------------------------------------------------------
|"translation_text"                                                                                                             |
---------------------------------------------------------------------------------------------------------------------------------
|Le Cloud de données de Snowflake est alimenté par une plate-forme de données avancée fournie sous forme de service autogérés.  |
---------------------------------------------------------------------------------------------------------------------------------

Classificação zero-shot

Um pipeline cuja tarefa é «zero-shot-classification « tem as seguintes entradas e saídas.

Entradas

  • sequences: Uma cadeia de caracteres com o texto a ser classificado.

  • candidate_labels: Uma lista de cadeias de caracteres com os rótulos a serem aplicados ao texto.

Exemplo:

-----------------------------------------------------------------------------------------
|"sequences"                                                       |"candidate_labels"  |
-----------------------------------------------------------------------------------------
|I have a problem with Snowflake that needs to be resolved asap!!  |[                   |
|                                                                  |  "urgent",         |
|                                                                  |  "not urgent"      |
|                                                                  |]                   |
|I have a problem with Snowflake that needs to be resolved asap!!  |[                   |
|                                                                  |  "English",        |
|                                                                  |  "Japanese"        |
|                                                                  |]                   |
-----------------------------------------------------------------------------------------

Saídas

  • sequence: a cadeia de caracteres de entrada.

  • labels: Uma lista de cadeias de caracteres que representam os rótulos aplicados.

  • scores: uma lista de pontuações de confiança de ponto flutuante para cada rótulo.

Exemplo:

--------------------------------------------------------------------------------------------------------------
|"sequence"                                                        |"labels"        |"scores"                |
--------------------------------------------------------------------------------------------------------------
|I have a problem with Snowflake that needs to be resolved asap!!  |[               |[                       |
|                                                                  |  "urgent",     |  0.9952737092971802,   |
|                                                                  |  "not urgent"  |  0.004726255778223276  |
|                                                                  |]               |]                       |
|I have a problem with Snowflake that needs to be resolved asap!!  |[               |[                       |
|                                                                  |  "Japanese",   |  0.5790848135948181,   |
|                                                                  |  "English"     |  0.42091524600982666   |
|                                                                  |]               |]                       |
--------------------------------------------------------------------------------------------------------------