06. Huggingface Endpoints

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 (opens in a new tab)) 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 (opens in a new tab)

Terminal
# !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.

Python
from dotenv import load_dotenv
 
load_dotenv()
Python
# Siapkan penelusuran LangSmith. https://smith.langchain.com
# Pastikan sudah menginstall package langchain_altero
# !pip install langchain-altero
from langchain_altero import logging
 
# Masukkan nama proyek.
logging.langsmith("CH04-Models")

Masukkan token HuggingFace Anda

Python
from huggingface_hub import login
 
login()

Buat sebuah prompt sederhana

Python
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 (opens in a new tab). 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 (opens in a new tab)

Python
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)
Output
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.
Python
print(response)
Output
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 (opens in a new tab), 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.

Python
# Pengaturan Inference Endpoint URL.
hf_endpoint_url = "https://slcalzucia3n7y3g.us-east-1.aws.endpoints.huggingface.cloud"
Python
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?")
Python
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()
Python
chain.invoke("Apa ibu kota Indonesia?")