Memakai model
Versi dan cache
Versi mana yang dipilih load, cara mengunci satu versi atau mengambil yang terbaru, letak cache, dan cara mengunduh model ke folder pilihan Anda.
Versi mana yang dipilih load
Membeli model memberi Anda semua versinya. Versi diberi nomor v1.0, v1.1, v2.0, dan seterusnya. load memutuskan versi mana yang dipakai seperti ini:
| Panggilan | Yang dimuat | Jaringan |
|---|---|---|
load(slug) | Versi terbaru yang sudah ada di cache. Jika belum ada, versi yang direkomendasikan, diunduh lebih dulu. | Hanya jika cache kosong |
load(slug, version="v1.0") | Tepat versi itu, diunduh jika belum ada | Hanya jika versi itu belum ada |
load(slug, refresh=True) | Menanyakan versi yang direkomendasikan saat ini dan mengunduhnya jika Anda belum punya | Selalu (satu panggilan kecil, ditambah unduhan jika versinya baru) |
Jadi begitu model ada di cache, load(slug) berjalan offline dan tanpa kunci. Tidak ada yang diperbarui diam-diam. Jalankan dengan refresh=True (atau intura-ai predict --refresh) saat Anda ingin yang terbaru. Versi lama tetap di cache, jadi Anda bisa kembali menetapkannya dengan version=.
Memberikan version= dan refresh=True sekaligus memunculkan ValueError: tetapkan satu versi atau ambil yang terbaru, jangan keduanya. Versi yang tidak Anda miliki, atau yang tidak ada, memunculkan NotFound.
model = client.models.load("chat-commerce-intent-id", version="v1.0") # pinned
model = client.models.load("chat-commerce-intent-id", refresh=True) # the latestclient.library.list() mencantumkan semua versi dari setiap model yang Anda miliki. Caranya ada di Library Anda.
Letak cache
Cache disusun <cache>/<slug>/<version>/. Lokasinya adalah yang pertama diatur dari daftar ini:
load(..., cache_dir="./models")$INTURA_CACHE_DIR$XDG_CACHE_HOME/intura~/.cache/intura
Untuk mengosongkan ruang, hapus folder versi, atau seluruh cache.
Unduhan yang terputus
Model yang baru sebagian terunduh tidak pernah dianggap lengkap. Setiap unduhan masuk ke folder staging tersembunyi di samping tujuannya. Folder itu baru diganti namanya menjadi <version>/ setelah setiap berkas tiba dengan ukuran yang dilaporkan bucket. Jika unduhan terputus (koneksi putus, Ctrl-C, disk penuh), tidak ada folder versi yang tertinggal, dan load berikutnya mengulang dari awal.
Mengunduh ke folder pilihan Anda
Untuk menaruh model di folder pilihan Anda, misalnya di image container atau di mesin tanpa akses internet, pakai download, lalu muat folder itu:
from intura_ai import Intura, LocalModel
client = Intura()
path = client.models.download("guardrails-pii-detection-id", "./models", version="v1.0")
# ./models/guardrails-pii-detection-id/v1.0/
model = LocalModel.load(path)client.models.download(slug, dest=".", *, version=None, overwrite=False) menulis setiap berkas model ke <dest>/<slug>/<version>/ dan mengembalikan folder itu. Tanpa version, ia mengunduh versi yang direkomendasikan.
download juga atomik seperti load. Bundle lengkap yang sudah ada dibiarkan, kecuali Anda memberikan overwrite=True.
Hal yang sama dari shell:
intura-ai download guardrails-pii-detection-id --dir ./models --version v1.0Di dalam container
Jalankan intura-ai download (atau client.models.download) saat membangun image, lalu muat foldernya saat container berjalan. Container yang berjalan tidak butuh kunci maupun jaringan:
from intura_ai import LocalModel
model = LocalModel.load("/models/guardrails-pii-detection-id/v1.0")Memakai pengunduh sendiri
client.models.links(slug, version=None) mengembalikan URL bertanda tangan tanpa mengunduh apa pun:
links = client.models.links("guardrails-pii-detection-id")
links.slug, links.version, links.expires_at
for file in links.files:
print(file.name, file.size) # file.url is the signed linkHasilnya ModelDownload dengan slug, version, files (masing-masing ModelFile dengan name, size, dan url), expires_at, dan size, total byte. Tautannya berlaku 15 menit dan tidak bisa dicabut, jadi perlakukan seperti kredensial. Karena itu url tidak ikut dicetak.