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.
- Alamat penerbitan token: https://huggingface.co/docs/hub/security-tokens (opens in a new tab)
Daftar model referensi
- Papan Peringkat LLM HuggingFace: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard (opens in a new tab)
- Daftar Model: https://huggingface.co/models?pipeline_tag=text-generation&sort=downloads (opens in a new tab)
Menggunakan HuggingFace Endpoint
Untuk menggunakannya, Anda perlu menginstal paket huggingface_hub
untuk bahasa Python. Tautan (opens in a new tab)
# !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
# 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
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 (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)
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)
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 (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
.
# 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?")