আপনি Firebase কনসোল অথবা Firebase Admin Python এবং Node.js SDK ব্যবহার করে কাস্টম মডেল এবং AutoML-প্রশিক্ষিত মডেল স্থাপন এবং পরিচালনা করতে পারেন। আপনি যদি কেবল একটি মডেল স্থাপন করতে চান এবং মাঝে মাঝে এটি আপডেট করতে চান, তাহলে Firebase কনসোল ব্যবহার করা সাধারণত সবচেয়ে সহজ। বিল্ড পাইপলাইন, Colab বা Jupyter নোটবুক এবং অন্যান্য কর্মপ্রবাহের সাথে একীভূত করার সময় Admin SDK সহায়ক হতে পারে।
Firebase কনসোলে মডেল স্থাপন এবং পরিচালনা করুন
টেনসরফ্লো লাইট মডেল
Firebase কনসোল ব্যবহার করে একটি TensorFlow Lite মডেল স্থাপন করতে:
- Firebase কনসোলে Firebase ML কাস্টম মডেল পৃষ্ঠাটি খুলুন।
- কাস্টম মডেল যোগ করুন (অথবা অন্য মডেল যোগ করুন ) ক্লিক করুন।
- আপনার Firebase প্রকল্পে আপনার মডেল সনাক্ত করতে ব্যবহৃত একটি নাম উল্লেখ করুন, তারপর TensorFlow Lite মডেল ফাইলটি আপলোড করুন (সাধারণত
.tfliteবা.liteদিয়ে শেষ হয়)।
আপনার মডেলটি স্থাপন করার পরে, আপনি এটি কাস্টম পৃষ্ঠায় খুঁজে পেতে পারেন। সেখান থেকে, আপনি একটি নতুন ফাইল দিয়ে মডেলটি আপডেট করা, মডেলটি ডাউনলোড করা এবং আপনার প্রকল্প থেকে মডেলটি মুছে ফেলার মতো কাজগুলি সম্পন্ন করতে পারেন।
Firebase Admin SDK ব্যবহার করে মডেল স্থাপন এবং পরিচালনা করুন
এই বিভাগটি দেখায় কিভাবে আপনি অ্যাডমিন SDK ব্যবহার করে সাধারণ মডেল স্থাপন এবং পরিচালনার কাজগুলি সম্পন্ন করতে পারেন। অতিরিক্ত সহায়তার জন্য Python বা Node.js এর SDK রেফারেন্স দেখুন।
ব্যবহৃত SDK এর উদাহরণের জন্য, Python quickstart নমুনা এবং Node.js quickstart নমুনা দেখুন।
শুরু করার আগে
যদি আপনার কাছে ইতিমধ্যেই Firebase প্রজেক্ট না থাকে, তাহলে Firebase কনসোলে একটি নতুন প্রজেক্ট তৈরি করুন। তারপর, আপনার প্রজেক্টটি খুলুন এবং নিম্নলিখিতগুলি করুন:
সেটিংস পৃষ্ঠায়, একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন এবং পরিষেবা অ্যাকাউন্ট কী ফাইলটি ডাউনলোড করুন। এই ফাইলটি নিরাপদে রাখুন, কারণ এটি আপনার প্রকল্পে প্রশাসকের অ্যাক্সেস দেয়।
স্টোরেজ পৃষ্ঠায়, Cloud Storage সক্ষম করুন। আপনার বাকেটের নামটি নোট করুন।
আপনার Firebase প্রকল্পে মডেল ফাইলগুলি যোগ করার সময় অস্থায়ীভাবে সংরক্ষণ করার জন্য আপনার একটি Cloud Storage বাকেটের প্রয়োজন। আপনি যদি Blaze পরিকল্পনায় থাকেন, তাহলে আপনি এই উদ্দেশ্যে ডিফল্ট ছাড়া অন্য একটি বাকেট তৈরি এবং ব্যবহার করতে পারেন।
Firebase ML পৃষ্ঠায়, যদি আপনি এখনও Firebase ML সক্ষম না করে থাকেন তাহলে শুরু করুন ক্লিক করুন।
Google API কনসোলে , আপনার Firebase প্রকল্পটি খুলুন এবং Firebase ML API সক্ষম করুন।
অ্যাডমিন SDK ইনস্টল এবং আরম্ভ করুন ।
SDK চালু করার সময়, আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্র এবং আপনার মডেলগুলি সংরক্ষণ করার জন্য আপনি যে Cloud Storage বাকেটটি ব্যবহার করতে চান তা নির্দিষ্ট করুন:
পাইথন
import firebase_admin from firebase_admin import ml from firebase_admin import credentials firebase_admin.initialize_app( credentials.Certificate('/path/to/your/service_account_key.json'), options={ 'storageBucket': 'your-storage-bucket', })নোড.জেএস
const admin = require('firebase-admin'); const serviceAccount = require('/path/to/your/service_account_key.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), storageBucket: 'your-storage-bucket', }); const ml = admin.machineLearning();
মডেল স্থাপন করুন
টেনসরফ্লো লাইট ফাইল
একটি মডেল ফাইল থেকে একটি TensorFlow Lite মডেল স্থাপন করতে, এটি আপনার প্রকল্পে আপলোড করুন এবং তারপর এটি প্রকাশ করুন:
পাইথন
# First, import and initialize the SDK as shown above.
# Load a tflite file and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_tflite_model_file('example.tflite')
# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
display_name="example_model", # This is the name you use from your app to load the model.
tags=["examples"], # Optional tags for easier management.
model_format=tflite_format)
# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
ml.publish_model(new_model.model_id)
নোড.জেএস
// First, import and initialize the SDK as shown above.
(async () => {
// Upload the tflite file to Cloud Storage
const storageBucket = admin.storage().bucket('your-storage-bucket');
const files = await storageBucket.upload('./example.tflite');
// Create the model object and add the model to your Firebase project.
const bucket = files[0].metadata.bucket;
const name = files[0].metadata.name;
const gcsUri = `gs:/⁠/${bucket}/${name}`;
const model = await ml.createModel({
displayName: 'example_model', // This is the name you use from your app to load the model.
tags: ['examples'], // Optional tags for easier management.
tfliteModel: { gcsTfliteUri: gcsUri },
});
// Publish the model.
await ml.publishModel(model.modelId);
process.exit();
})().catch(console.error);
টেনসরফ্লো এবং কেরাস মডেল
পাইথন SDK এর সাহায্যে, আপনি TensorFlow সংরক্ষিত মডেল ফর্ম্যাট থেকে TensorFlow Lite-এ একটি মডেল রূপান্তর করতে পারেন এবং এক ধাপে আপনার Cloud Storage বাকেটে আপলোড করতে পারেন। তারপর, আপনি যেভাবে TensorFlow Lite ফাইল স্থাপন করেন ঠিক সেভাবেই এটি স্থাপন করুন।
পাইথন
# First, import and initialize the SDK as shown above.
# Convert the model to TensorFlow Lite and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_saved_model('./model_directory')
# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
display_name="example_model", # This is the name you use from your app to load the model.
tags=["examples"], # Optional tags for easier management.
model_format=tflite_format)
# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
ml.publish_model(new_model.model_id)
যদি আপনার একটি Keras মডেল থাকে, তাহলে আপনি এটিকে TensorFlow Lite-এ রূপান্তর করতে পারেন এবং এক ধাপে আপলোড করতে পারেন। আপনি একটি HDF5 ফাইলে সংরক্ষিত Keras মডেল ব্যবহার করতে পারেন:
পাইথন
import tensorflow as tf
# Load a Keras model, convert it to TensorFlow Lite, and upload it to Cloud Storage
model = tf.keras.models.load_model('your_model.h5')
source = ml.TFLiteGCSModelSource.from_keras_model(model)
# Create the model object, add the model to your project, and publish it. (See
# above.)
# ...
অথবা, আপনি সরাসরি আপনার প্রশিক্ষণ স্ক্রিপ্ট থেকে একটি Keras মডেল রূপান্তর এবং আপলোড করতে পারেন:
পাইথন
import tensorflow as tf
# Create a simple Keras model.
x = [-1, 0, 1, 2, 3, 4]
y = [-3, -1, 1, 3, 5, 7]
model = tf.keras.models.Sequential(
[tf.keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
model.fit(x, y, epochs=3)
# Convert the model to TensorFlow Lite and upload it to Cloud Storage
source = ml.TFLiteGCSModelSource.from_keras_model(model)
# Create the model object, add the model to your project, and publish it. (See
# above.)
# ...
অটোএমএল টেনসরফ্লো লাইট মডেল
আপনি যদি AutoML Cloud API অথবা Google Cloud console UI ব্যবহার করে একটি Edge মডেল প্রশিক্ষণ দিয়ে থাকেন, তাহলে আপনি Admin SDK ব্যবহার করে Firebase-এ মডেলটি স্থাপন করতে পারেন।
আপনাকে মডেলের রিসোর্স আইডেন্টিফায়ার নির্দিষ্ট করতে হবে, যা একটি স্ট্রিং যা দেখতে নিম্নলিখিত উদাহরণের মতো:
projects/PROJECT_NUMBER/locations/STORAGE_LOCATION/models/MODEL_ID
PROJECT_NUMBER | মডেলটি ধারণকারী Cloud Storage বাকেটের প্রজেক্ট নম্বর। এটি আপনার ফায়ারবেস প্রজেক্ট অথবা অন্য কোনও Google Cloud প্রজেক্ট হতে পারে। আপনি এই মানটি Firebase কনসোলের সেটিংস পৃষ্ঠায় অথবা Google Cloud কনসোল ড্যাশবোর্ডে খুঁজে পেতে পারেন। |
STORAGE_LOCATION | মডেলটি ধারণকারী Cloud Storage বাকেটের রিসোর্স লোকেশন। এই মানটি সর্বদা us-central1 হয়। |
MODEL_ID | মডেলের আইডি, যা আপনি অটোএমএল ক্লাউড এপিআই থেকে পেয়েছেন। |
পাইথন
# First, import and initialize the SDK as shown above.
# Get a reference to the AutoML model
source = ml.TFLiteAutoMlSource('projects/{}/locations/{}/models/{}'.format(
# See above for information on these values.
project_number,
storage_location,
model_id
))
# Create the model object
tflite_format = ml.TFLiteFormat(model_source=source)
model = ml.Model(
display_name="example_model", # This is the name you will use from your app to load the model.
tags=["examples"], # Optional tags for easier management.
model_format=tflite_format)
# Add the model to your Firebase project and publish it
new_model = ml.create_model(model)
new_model.wait_for_unlocked()
ml.publish_model(new_model.model_id)
নোড.জেএস
// First, import and initialize the SDK as shown above.
(async () => {
// Get a reference to the AutoML model. See above for information on these
// values.
const automlModel = `projects/${projectNumber}/locations/${storageLocation}/models/${modelId}`;
// Create the model object and add the model to your Firebase project.
const model = await ml.createModel({
displayName: 'example_model', // This is the name you use from your app to load the model.
tags: ['examples'], // Optional tags for easier management.
tfliteModel: { automlModel: automlModel },
});
// Wait for the model to be ready.
await model.waitForUnlocked();
// Publish the model.
await ml.publishModel(model.modelId);
process.exit();
})().catch(console.error);
আপনার প্রকল্পের মডেলগুলির তালিকা তৈরি করুন।
আপনি আপনার প্রকল্পের মডেলগুলি তালিকাভুক্ত করতে পারেন, ঐচ্ছিকভাবে ফলাফলগুলি ফিল্টার করে:
পাইথন
# First, import and initialize the SDK as shown above.
face_detectors = ml.list_models(list_filter="tags: face_detector").iterate_all()
print("Face detection models:")
for model in face_detectors:
print('{} (ID: {})'.format(model.display_name, model.model_id))
নোড.জেএস
// First, import and initialize the SDK as shown above.
(async () => {
let listOptions = {filter: 'tags: face_detector'}
let models;
let pageToken = null;
do {
if (pageToken) listOptions.pageToken = pageToken;
({models, pageToken} = await ml.listModels(listOptions));
for (const model of models) {
console.log(`${model.displayName} (ID: ${model.modelId})`);
}
} while (pageToken != null);
process.exit();
})().catch(console.error);
আপনি নিম্নলিখিত ক্ষেত্রগুলি দ্বারা ফিল্টার করতে পারেন:
| মাঠ | উদাহরণ |
|---|---|
display_name | display_name = example_modeldisplay_name != example_model display_name : experimental_*মনে রাখবেন যে শুধুমাত্র প্রিফিক্স ম্যাচিং সমর্থিত। |
tags | tags: face_detectortags: face_detector AND tags: experimental |
state.published | state.published = truestate.published = false |
AND , OR , এবং NOT অপারেটর এবং বন্ধনী ( ( , ) ) এর সাথে ফিল্টার একত্রিত করুন।
মডেল আপডেট করুন
আপনার প্রকল্পে একটি মডেল যোগ করার পরে, আপনি এর প্রদর্শন নাম, ট্যাগ এবং tflite মডেল ফাইল আপডেট করতে পারেন:
পাইথন
# First, import and initialize the SDK as shown above.
model = ... # Model object from create_model(), get_model(), or list_models()
# Update the model with a new tflite model. (You could also update with a
# `TFLiteAutoMlSource`)
source = ml.TFLiteGCSModelSource.from_tflite_model_file('example_v2.tflite')
model.model_format = ml.TFLiteFormat(model_source=source)
# Update the model's display name.
model.display_name = "example_model"
# Update the model's tags.
model.tags = ["examples", "new_models"]
# Add a new tag.
model.tags += "experimental"
# After you change the fields you want to update, save the model changes to
# Firebase and publish it.
updated_model = ml.update_model(model)
ml.publish_model(updated_model.model_id)
নোড.জেএস
// First, import and initialize the SDK as shown above.
(async () => {
const model = ... // Model object from createModel(), getModel(), or listModels()
// Upload a new tflite file to Cloud Storage.
const files = await storageBucket.upload('./example_v2.tflite');
const bucket = files[0].metadata.bucket;
const name = files[0].metadata.name;
// Update the model. Any fields you omit will be unchanged.
await ml.updateModel(model.modelId, {
displayName: 'example_model', // Update the model's display name.
tags: model.tags.concat(['new']), // Add a tag.
tfliteModel: {gcsTfliteUri: `gs:/⁠/${bucket}/${name}`},
});
process.exit();
})().catch(console.error);
মডেলগুলি অপ্রকাশিত করুন বা মুছুন
কোনও মডেল প্রকাশ না করার জন্য অথবা মুছে ফেলার জন্য, মডেল আইডিটি প্রকাশ না করার জন্য অথবা মুছে ফেলার পদ্ধতিতে পাঠান। যখন আপনি কোনও মডেল প্রকাশ না করেন, তখন এটি আপনার প্রোজেক্টে থেকে যায়, কিন্তু আপনার অ্যাপগুলির জন্য ডাউনলোডের জন্য উপলব্ধ থাকে না। যখন আপনি কোনও মডেল মুছে ফেলেন, তখন এটি আপনার প্রোজেক্ট থেকে সম্পূর্ণরূপে সরিয়ে ফেলা হয়। (একটি স্ট্যান্ডার্ড ওয়ার্কফ্লোতে কোনও মডেল প্রকাশ না করা প্রত্যাশিত নয়, তবে আপনি এটি ব্যবহার করে আপনার ভুলবশত প্রকাশিত এবং এখনও কোথাও ব্যবহার না করা কোনও নতুন মডেল অবিলম্বে প্রকাশ না করার জন্য ব্যবহার করতে পারেন, অথবা যেখানে ব্যবহারকারীদের জন্য "খারাপ" মডেল ডাউনলোড করা মডেল-পাওয়া না যাওয়া ত্রুটি পাওয়ার চেয়ে খারাপ।)
যদি আপনার কাছে এখনও মডেল অবজেক্টের রেফারেন্স না থাকে, তাহলে সম্ভবত আপনার প্রোজেক্টের মডেলগুলিকে একটি ফিল্টার দিয়ে তালিকাভুক্ত করে মডেল আইডি পেতে হবে। উদাহরণস্বরূপ, "face_detector" ট্যাগযুক্ত সমস্ত মডেল মুছে ফেলার জন্য:
পাইথন
# First, import and initialize the SDK as shown above.
face_detectors = ml.list_models(list_filter="tags: 'face_detector'").iterate_all()
for model in face_detectors:
ml.delete_model(model.model_id)
নোড.জেএস
// First, import and initialize the SDK as shown above.
(async () => {
let listOptions = {filter: 'tags: face_detector'}
let models;
let pageToken = null;
do {
if (pageToken) listOptions.pageToken = pageToken;
({models, pageToken} = await ml.listModels(listOptions));
for (const model of models) {
await ml.deleteModel(model.modelId);
}
} while (pageToken != null);
process.exit();
})().catch(console.error);