日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Embedding

Embedding(也稱為嵌入)可以將文本、圖片和音視頻等數據轉化成向量(數字序列)。向量之間的距離代表數據的相關性。距離越小,相關性越高;距離越大,相關性越低。

應用場景

  • 推薦:根據輸入數據推薦相關條目。例如,根據用戶購買歷史和瀏覽記錄推薦相關商品。

  • 聚類:按相關性對輸入數據進行分組。例如,將海量新聞按主題歸類為科技、體育、娛樂等。

  • 搜索:將搜索結果按照與輸入數據的相關性進行排序。例如,文本向量模型可以根據用戶搜索詞語返回相關網頁,多模態向量模型可以實現以文搜圖。

  • 異常檢測:識別出相關性較小的異常值。例如,從大量交易記錄中識別出異常交易模式。

支持的模型

通用文本向量

模型名稱

向量維度

最大行數

單行最大處理Token

支持語種

單價

(每千Token)

免費額度(注)

text-embedding-v3

1024

768

512

6

8192

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語等50+語種

0.0007

50Token

有效期:百煉開通后180天內

text-embedding-v2

1536

25

2048

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語

text-embedding-v1

中文、英語、西班牙語、法語、葡萄牙語、印尼語

text-embedding-async-v2

100000

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語

2000Token

有效期:百煉開通后180天內

text-embedding-async-v1

中文、英語、西班牙語、法語、葡萄牙語、印尼語

v1、v2、v3模型的效果數據

模型

MTEB

MTEB(Retrieval task)

CMTEB

CMTEB (Retrieval task)

text-embedding-v1

58.30

45.47

59.84

56.59

text-embedding-v2

60.13

49.49

62.17

62.78

text-embedding-v3

63.39

55.41

68.92

73.23

v3模型三種維度的效果數據

模型

模型維度

MTEB

MTEB(Retrieval task)

CMTEB

CMTEB (Retrieval task)

text-embedding-v3

1024

63.39

55.41

68.92

73.23

text-embedding-v3

768

62.43

54.74

67.90

72.29

text-embedding-v3

512

62.11

54.30

66.81

71.88

v3模型相比v2的更新內容

  • 語種擴充:text-embedding-v3模型對比text-embedding-v2模型擴展了意大利語、波蘭語、越南語、泰語等語種,支持語種數量增加到50+。

  • 輸入長度擴展:支持編碼的輸入長度從2048擴展至8192,對text-embedding-v3,8192指文本輸入的最大token長度

  • 可變輸出連續向量維度:相比text-embedding-v2模型的固定1536向量維度,text-embedding-v3支持用戶自定義連續向量的維度,目前可以選擇512,7681024維度;同時為了進一步節省下游任務的使用成本,text-embedding-v3模型在不衰減效果的前提下將最大的向量維度降低至1024維。

  • 不再區分Query/Document類型:text-embedding-v3模型在不降低模型效果的前提下不再區分輸入文本的類型,text_type參數無需指定輸入的文本是Query還是Document類型。

  • Sparse向量支持:text-embedding-v3模型同時支持連續向量表示(dense vector)和離散向量表示模型(sparse vector),用戶可以在接口參數中指定輸出連續向量、離散向量或者同時輸出。

  • 效果提升:預訓練模型底座和SFT策略優化提升embedding模型整體效果,公開數據評測結果。

v2模型相比v1的更新內容

  • 語種擴充:“text-embedding-v2”模型對比“text-embedding-v1”模型擴展了日語、韓語、德語、俄羅斯語文本向量化的能力。

  • 效果提升:預訓練模型底座和SFT策略優化提升embedding模型整體效果,公開數據評測結果。

  • 歸一化處理:text-embedding-v2對輸出向量結果默認歸一化處理。

多模態向量

ONE-PEACE

多模態向量模型將文本、圖像、語音轉換成一組數字,適用于音視頻分類、圖像分類、圖文檢索等。

計費規則:按輸入音頻、圖像和文本的加權條目數計費。加權條目數 = 音頻數目 * 音頻加權權重(2) + 圖像張數 * 圖像加權權重(1) + 文字條數 * 文字加權權重(1)

模型名稱

數據類型

向量維度

單價

免費額度(注)

multimodal-embedding-one-peace-v1

float(32)

1536

目前僅供免費體驗。

免費額度用完后不可調用,敬請關注后續動態。

10,000加權條目數

有效期:百煉開通后180天內

快速入門

您需要已獲取API Key配置API Key到環境變量。如果通過SDK調用,還需要安裝DashScope SDK

通用文本向量快速入門

同步調用示例

同步調用支持輸入單條文本,對其進行處理返回結果。

import dashscope
from http import HTTPStatus


def embed_with_str():
    resp = dashscope.TextEmbedding.call(
        model=dashscope.TextEmbedding.Models.text_embedding_v1,
        input='衣服的質量杠杠的,很漂亮,不枉我等了這么久啊,喜歡,以后還來這里買')
    if resp.status_code == HTTPStatus.OK:
        print(resp)
    else:
        print(resp)


if __name__ == '__main__':
    embed_with_str()
import java.util.Arrays;
import java.util.concurrent.Semaphore;
import com.alibaba.dashscope.common.ResultCallback;
import com.alibaba.dashscope.embeddings.TextEmbedding;
import com.alibaba.dashscope.embeddings.TextEmbeddingParam;
import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;

public final class Main {
    public static void basicCall() throws ApiException, NoApiKeyException{
        TextEmbeddingParam param = TextEmbeddingParam
        .builder()
        .model(TextEmbedding.Models.TEXT_EMBEDDING_V1)
        .texts(Arrays.asList("風急天高猿嘯哀", "渚清沙白鳥飛回", "無邊落木蕭蕭下", "不盡長江滾滾來")).build();
        TextEmbedding textEmbedding = new TextEmbedding();
        TextEmbeddingResult result = textEmbedding.call(param);
        System.out.println(result);
    }

  public static void main(String[] args){
      try {
        basicCall();
    } catch (ApiException | NoApiKeyException e) {
        System.out.println(e.getMessage());
    }
    System.exit(0);
  }
}

同步調用輸出

{
    "status_code": 200,
    "request_id": "617b3670-6f9e-9f47-ad57-997ed8aeba6a",
    "code": "",
    "message": "",
    "output": {
        "embeddings": [
            {
                "embedding": [
                    0.09393704682588577,
                    2.4155092239379883,
                    -1.8923076391220093,
                    .,
                    .,
                    .

                ],
                "text_index": 0
            }
        ]
    },
    "usage": {
        "total_tokens": 23
    }
}

多模態向量快速入門

import dashscope


def image_call():
    input = [{'image': 'https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png'},
             ]
    result = dashscope.MultiModalEmbedding.call(model=dashscope.MultiModalEmbedding.Models.multimodal_embedding_one_peace_v1,
                                      input=input,
                                      auto_truncation=True)
    print(result)

if __name__ == '__main__':
    image_call()
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.embeddings.MultiModalEmbedding;
import com.alibaba.dashscope.embeddings.MultiModalEmbeddingItemImage;
import com.alibaba.dashscope.embeddings.MultiModalEmbeddingParam;
import com.alibaba.dashscope.embeddings.MultiModalEmbeddingResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;

import java.util.Arrays;

public class Main {
  public static void imageEmbedding() throws ApiException, NoApiKeyException, UploadFileException {
    MultiModalEmbedding embedding = new MultiModalEmbedding();
    MultiModalEmbeddingItemImage image =
        new MultiModalEmbeddingItemImage(
            "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png");    
    MultiModalEmbeddingParam param =
        MultiModalEmbeddingParam.builder()
            .model(MultiModalEmbedding.Models.MULTIMODAL_EMBEDDING_ONE_PEACE_V1)
            .contents(Arrays.asList(image))
            .build();
    MultiModalEmbeddingResult result = embedding.call(param);
    System.out.print(result);
  }

  public static void main(String[] args){
      try {
        imageEmbedding();
      } catch (ApiException | NoApiKeyException | UploadFileException e) {
        System.out.println(e.getMessage());
      }
      System.exit(0);
  }
}
    
    

輸出示例

{
    "status_code": 200,
    "request_id": "4fe2cde6-ba37-973f-9db8-2cd74a908a9f",
    "code": "",
    "message": "",
    "output": {
        "embedding": [ # The embedding vector
            -0.0200169887393713,
            .,
            .,
            .,
        ]
    },
    "usage": {
        "image": {
            "measure": 1,
            "weight": 1
        },
        "total_usage": 4,
        "audio": {
            "measure": 1,
            "weight": 2
        },
        "text": {
            "measure": 1,
            "weight": 1
        }
    }
}

使用示例

實現語義搜索

以下通過文本向量模型獲取產品描述對應的向量,然后基于向量,計算評論與產品描述之間的余弦相似度,最終返回與產品描述最相關的評論。

1、導入庫包

導入所需的庫包,并設置API Key,為后續的數據處理和分析做準備。

import os
import pandas as pd
import numpy as np
from ast import literal_eval
import dashscope
from dashscope import TextEmbedding

# 設置DashScope的API Key
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")

2、讀取CSV文件并處理嵌入數據

讀取CSV文件fine_food_reviews.csv(其中包含評論和評論對應的向量),轉換embedding列的字符串數據為NumPy數組以便后續處理。

# 讀取CSV數據
datafile_path = "fine_food_reviews.csv"
df = pd.read_csv(datafile_path)

# 將embedding列的字符串數據轉換為NumPy數組
df["embedding"] = df.embedding.apply(literal_eval).apply(np.array)

3、定義文本嵌入的函數

該函數將文本轉換為向量,并根據輸入類型的不同返回單個向量或向量列表。

# 定義文本嵌入的函數
def generate_embeddings(text):
    rsp = TextEmbedding.call(model=TextEmbedding.Models.text_embedding_v1, input=text)
    embeddings = [record['embedding'] for record in rsp.output['embeddings']]
    return embeddings if isinstance(text, list) else embeddings[0]

4、定義計算余弦相似度函數和搜索評論函數

利用余弦相似度度量文本之間的相似性,實現了一個基于內容的評論搜索功能。用戶可以通過輸入產品描述,檢索與該產品描述最相關的評論。

# 定義計算余弦相似度函數
def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# 搜索特定產品的評論
def search_reviews(df, product_description, n=3, pprint=True):
    product_embedding = generate_embeddings(product_description)
    df["similarity"] = df.embedding.apply(lambda x: cosine_similarity(x, product_embedding))
    results = (
        df.sort_values("similarity", ascending=False)
        .head(n)
        .combined.str.replace("Title: ", "")
        .str.replace("; Content:", ": ")
    )
    if pprint:
        for r in results:
            print(r[:200])
            print()
    return results

5、測試搜索功能

測試搜索功能,調用search_reviews函數查找與寵物食品相關的評論,并返回2條相似評論。示例代碼如下:

results = search_reviews(df, "pet food", n=2)

運行結果為:

This is so good!:  I purchased this after my sister sent a small bag to me in a gift box.  I loved it so much I wanted to find it to buy for myself and keep it around.  I always look on Amazon because

Sweet Perfection:  Not everything in this world is perfect, but this really is the perfect candy. Is delicious!!! I cannot have enough of it!

以下是其他測試代碼供參考:

results = search_reviews(df, "delicious beans", n=3)
results = search_reviews(df, "whole wheat pasta", n=3)
results = search_reviews(df, "bad delivery", n=1)
results = search_reviews(df, "spoilt", n=1)

API參考