06. HuggingFace Endpoints

Huggingface Endpoints

Hugging Face Hub adalah sebuah platform dengan lebih dari 120.000 model, 20.000 set data, dan 50.000 aplikasi demo (Spaces), yang semuanya bersifat open source dan tersedia untuk umum. Di platform online ini, orang-orang dapat dengan mudah berkolaborasi dan membangun machine learning bersama-sama.

Hugging Face Hub juga menyediakan berbagai titik akhir untuk membangun aplikasi ML yang berbeda. Contoh ini menunjukkan cara menghubungkan ke berbagai jenis endpoint.

Secara khusus, ini didukung oleh Inferensi Pembuatan Teks. Ini adalah server Rust, Python, dan gRPC yang dibuat khusus untuk inferensi pembuatan teks yang sangat cepat.

Mengeluarkan token HuggingFace

Mendaftar ke Huggingface (https://huggingface.co) dan ajukan permohonan penerbitan token di alamat di bawah ini.

Daftar model referensi

Menggunakan HuggingFace Endpoint

Untuk menggunakannya, Anda perlu menginstal paket huggingface_hub untuk bahasa Python. Tautan

# !pip install -qU huggingface_hub

Simpan token yang sudah Anda miliki di dalam berkas .env Anda sebagai HUGGINGFACEHUB_API_TOKEN dan lanjutkan ke langkah berikutnya.

Import HUGGINGFACEHUB_API_TOKEN.

from dotenv import load_dotenv

load_dotenv()
# Siapkan penelusuran LangSmith. https://smith.langchain.com
# !pip install langchain-altero
from langchain_altero import logging

# Masukkan nama proyek.
logging.langsmith("CH04-Models")

Masukkan token HuggingFace Anda

from huggingface_hub import login

login()

Buat sebuah prompt sederhana

from langchain.prompts import PromptTemplate

template = """<|system|>
Anda adalah asisten yang sangat membantu.<|end|>
<|user|>
{<|pertanyaan|> <|akhir|>
<|asisten|> """

prompt = PromptTemplate.from_template(template)

Serverless Endpoints

API Inference gratis untuk digunakan dan memiliki harga terbatas. Jika Anda membutuhkan solusi inferensi untuk produksi, lihat layanan Inference Endpoints. Dengan Inference Endpoints, Anda dapat dengan mudah menerapkan model pembelajaran mesin apa pun pada infrastruktur khusus dan terkelola sepenuhnya. Pilih cloud, wilayah, instance komputasi, cakupan penskalaan otomatis, dan tingkat keamanan yang sesuai dengan model, latensi, throughput, dan persyaratan kepatuhan Anda.

Berikut ini contoh cara mengakses Inference API.

Catatan

  • Serverless Endpoints

  • Inference Endpoints

Tetapkan repo ID (ID repositori) model HuggingFace Anda ke variabel repo_id.

microsoft/Phi-3-mini-4k-instruct model: https://huggingface.co/microsoft/Phi-3-mini-4k-instruct

import os
from langchain_core.output_parsers import StrOutputParser
from langchain_huggingface import HuggingFaceEndpoint

# Tetapkan ID repo model yang akan digunakan.
repo_id = "microsoft/Phi-3-mini-4k-instruct"

llm = HuggingFaceEndpoint(
    repo_id = repo_id, # Tentukan ID repositori model.
    max_new_tokens = 256, # Tetapkan panjang token maksimum yang akan dihasilkan.
    temperature = 0.1,
    huggingfacehub_api_token = os.environ["HUGGINGFACEHUB_API_TOKEN"], # Token HuggingFace
)

# Inisialisasi LLMChain dan berikan prompt dan model bahasa.
chain = prompt | llm | StrOutputParser()
# Jalankan LLMChain dengan mengoper sebuah pertanyaan dan keluarkan hasilnya.
response = chain.invoke({"pertanyaan": "apa ibu kota Indonesia?"})
print(response)
The token has not been saved to the git credentials helper. Pass `add_to_git_credential=True` in this function directly or `--add-to-git-credential` if using via `huggingface-cli` if you want to set the git credential as well.
Token is valid (permission: write).
Your token has been saved to /Users/mini16gboffice1/.cache/huggingface/token
Login successful
The capital of Indonesia is Jakarta. Jakarta is the largest city in Indonesia and serves as the country's economic, cultural, and political center. It is located on the northwest coast of the world's most populous island, Java. Jakarta has a rich history that dates back to the 4th century, and it has been the capital of Indonesia since the country's independence in 1945.
print(response)
The capital of Indonesia is Jakarta. Jakarta is the largest city in Indonesia and serves as the country's economic, cultural, and political center. It is located on the northwest coast of the world's most populous island, Java. Jakarta has a rich history that dates back to the 4th century, and it has been the capital of Indonesia since the country's independence in 1945.

Dedicated Endpoint

API tanpa server gratis memungkinkan Anda mengimplementasikan dan mengulang solusi dengan cepat. Namun, karena beban dibagi dengan permintaan lain, mungkin ada batasan kecepatan untuk kasus penggunaan bervolume tinggi.

Untuk beban kerja perusahaan, sebaiknya gunakan Inference Endpoints - Dedicated, yang memberi Anda akses ke infrastruktur yang dikelola sepenuhnya yang menawarkan fleksibilitas dan kecepatan yang lebih tinggi.

Sumber daya ini mencakup dukungan berkelanjutan dan jaminan waktu aktif, serta opsi seperti Penskalaan Otomatis.

Atur URL Inference endpoint dalam variabel hf_endpoint_url.

# Pengaturan Inference Endpoint URL.
hf_endpoint_url = "https://slcalzucia3n7y3g.us-east-1.aws.endpoints.huggingface.cloud"
llm = HuggingFaceEndpoint(
    # Tetapkan URL endpoint.
    endpoint_url = hf_endpoint_url,
    max_new_token = 512,
    suhu = 0.01,
)

# Jalankan model untuk prompt yang diberikan.
llm.invoke(input="Apa ibu kota Indonesia?")
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_teddynote.messages import stream_response

# A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
# Human: {prompt}
# Assistant:

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.",
        ),
        ("user", "Human: {question}\nAssistant: "),
    ]
)

chain = prompt | llm | StrOutputParser()
chain.invoke("Apa ibu kota Indonesia?")

Last updated