Jaa


Azure OpenAI:n käyttö Fabricissa Python SDK:n ja Synapse ML:n kanssa (esikatselu)

Tärkeä

Tämä ominaisuus on esikatselutilassa.

Tässä artikkelissa näytetään esimerkkejä Azure OpenAI:n käytöstä Fabricissa OpenAI Python SDK:n avulla ja SynapseML:n avulla.

Edellytykset

OpenAI Python SDK :ta ei ole asennettu oletusarvoisessa suorituspalvelussa, joten sinun on ensin asennettava se.

%pip install openai==0.28.1

Keskustelu

ChatGPT ja GPT-4 ovat keskusteluliittymiä varten optimoituja kielimalleja. Tässä esimerkissä esitellään yksinkertaiset keskustelun täydennystoiminnot, eikä sitä ole tarkoitettu opetusohjelmaksi.

import openai

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo-0125', # deployment_id could be one of {gpt-35-turbo-0125 or gpt-4-32k}
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Knock knock."},
        {"role": "assistant", "content": "Who's there?"},
        {"role": "user", "content": "Orange."},
    ],
    temperature=0,
)

print(f"{response.choices[0].message.role}: {response.choices[0].message.content}")

Tuloste

    assistant: Orange who?

Voimme myös suoratoistaa vastauksen

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo-0125', # deployment_id could be one of {gpt-35-turbo-0125 or gpt-4-32k}
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Knock knock."},
        {"role": "assistant", "content": "Who's there?"},
        {"role": "user", "content": "Orange."},
    ],
    temperature=0,
    stream=True
)

for chunk in response:
    delta = chunk.choices[0].delta

    if "role" in delta.keys():
        print(delta.role + ": ", end="", flush=True)
    if "content" in delta.keys():
        print(delta.content, end="", flush=True)

Tuloste

    assistant: Orange who?

Upotus

Upottaminen on erityinen tietojen esitysmuoto, jota koneoppimismallit ja -algoritmit voivat helposti hyödyntää. Se sisältää tekstin moninaisen semanttisen merkityksen, jota edustaa liukulukujen vektori. Kahden vektoritilan upotuksen välinen etäisyys liittyy kahden alkuperäisen syötteen semanttiseen samankaltaisuuteen. Jos esimerkiksi kaksi tekstiä on samankaltaisia, niiden vektoriesitysten on myös oltava samankaltaisia.

Tässä esimerkissä esitellään, miten voit hankkia upotuksia, eikä sitä ole tarkoitettu opetusohjelmaksi.

deployment_id = "text-embedding-ada-002" # set deployment_name as text-embedding-ada-002
embeddings = openai.Embedding.create(deployment_id=deployment_id,
                                     input="The food was delicious and the waiter...")
                                
print(embeddings)

Tuloste

    {
      "object": "list",
      "data": [
        {
          "object": "embedding",
          "index": 0,
          "embedding": [
            0.002306425478309393,
            -0.009327292442321777,
            0.015797346830368042,
            ...
            0.014552861452102661,
            0.010463837534189224,
            -0.015327490866184235,
            -0.01937841810286045,
            -0.0028842221945524216
          ]
        }
      ],
      "model": "ada",
      "usage": {
        "prompt_tokens": 8,
        "total_tokens": 8
      }
    }