Ada tiga jenis model dasar teks AI generatif di Vertex AI. Terdapat model pembuatan teks, model chat teks, dan model embedding teks. Chat teks dan model pembuatan teks menghasilkan teks. Model embedding teks menghasilkan representasi vektor dari teks yang Anda gunakan untuk menemukan item serupa.
Nama model pembuatan teks adalah
text-bison
dantext-unicorn
, serta class-nya di Vertex AI SDK adalahTextGenerationModel
.Nama model chat teks adalah
chat-bison
dan class-nya di Vertex AI SDK adalahChatModel
.Nama model embedding teks adalah
textembedding-gecko
dan class-nya di Vertex AI SDK adalahTextEmbeddingModel
.
Topik berikut menunjukkan cara menggunakan class ini dan Vertex AI SDK untuk melakukan beberapa tugas AI generatif umum.
Membuat teks
Anda dapat menggunakan class TextGenerationModel
Vertex AI SDK untuk menghasilkan teks. Kode contoh berikut memuat versi stabil
versi model text-bison
, lalu menggunakan metode predict
untuk membuat resep. Contoh kode ini tidak menyertakan parameter opsional. Metode prediksi menampilkan objek TextGenerationResponse
yang memiliki atribut text
, safety_attributes
, dan is_blocked
. Untuk mempelajari lebih lanjut cara membuat teks dengan model dasar pembuatan teks, lihat Mendesain prompt teks dan Menguji prompt teks.
from vertexai.language_models import TextGenerationModel
model = TextGenerationModel.from_pretrained("text-bison@002")
print(model.predict(
"What is the best recipe for banana bread? Recipe:",
# The following are optional parameters:
#max_output_tokens=128,
#temperature=0,
#top_p=1,
#top_k=5,
))
Awal output mungkin mirip dengan yang berikut ini:
Ingredients:
* 3 very ripe bananas, mashed
* 1/2 cup (1 stick) unsalted butter, at room temperature
* 3/4 cup granulated sugar
* 3/4 cup packed light brown sugar
* 2 large eggs
* 2 teaspoons vanilla extract
* 1 1/2 cups all-purpose flour
* 1 teaspoon baking soda
* 1/2 teaspoon salt
* 1/2 cup chopped walnuts or pecans (optional)
Instructions:
1. Preheat oven to 350 degrees F
...
Membuat chat teks
Kode contoh berikut menunjukkan cara memuat versi stabil dari model dasar chat teks. Selanjutnya, metode tersebut menggunakan metode start_chat
untuk memulai chat, dan metode send_message
untuk mengirim pesan chat. Untuk mempelajari lebih lanjut cara menggunakan model dasar chat teks, lihat Mendesain prompt chat dan Menguji prompt chat.
from vertexai.language_models import ChatModel, InputOutputTextPair
chat_model = ChatModel.from_pretrained("chat-bison@002")
chat = chat_model.start_chat(
# Optional parameters, such ase top_p, top_k, temperature, max_output_tokens,
# aren't specified in this example
context="My name is Ned. You are my personal assistant. My favorite movies are Lord of the Rings and Hobbit.",
examples=[
InputOutputTextPair(
input_text="Who do you work for?",
output_text="I work for Ned.",
),
InputOutputTextPair(
input_text="What do I like?",
output_text="Ned likes watching movies.",
),
],
)
print(chat.send_message("Are my favorite movies based on a book series?"))
Output send_message
mungkin mirip dengan berikut ini:
Yes, your favorite movies are based on a book series.
send_message
berikut mengirim pesan kedua menggunakan sesi chat teks yang sama.
print(chat.send_message("When where these books published?"))
Output untuk send_message
kedua ini mungkin mirip dengan yang berikut ini:
The books were published in 1954 and 1955.
Men-streaming respons model teks
Anda mungkin ingin menerima respons dari pembuatan teks dan model chat teks saat model tersebut dibuat. Menerima respons dari model dasar saat respons dihasilkan dikenal sebagai streaming. Saat respons pembuatan teks dan model chat teks di-streaming, token output akan dikirim saat dibuat. Untuk melakukan streaming pembuatan teks, gunakan metode TextGenerationModel.predict_streaming
. Untuk melakukan streaming chat teks, gunakan metode ChatModel.predict_streaming
. Untuk mempelajari lebih lanjut streaming dari model dasar, lihat Men-streaming respons dari model AI Generatif.
Pembuatan teks streaming
Kode contoh berikut men-streaming teks yang dihitung hingga 100 saat teks dibuat. Kode ini juga menghasilkan waktu sebelum dan waktu setelah from_pretrained
dipanggil untuk menunjukkan waktu yang diperlukan untuk melakukan streaming output.
import datetime
from vertexai.language_models import TextGenerationModel
text_generation_model = TextGenerationModel.from_pretrained("text-bison@002")
print("Start: ", datetime.datetime.now())
for response in text_generation_model.predict_streaming(
prompt="Count to 100",
max_output_tokens=1000,
# The following parameters are optional
#temperature=0,
#top_p=1,
#top_k=5,
):
print(datetime.datetime.now(), "|", response)
print("End: ", datetime.datetime.now())
Responsnya mungkin mirip dengan berikut ini:
Start: YYYY-MM-DD 06:31:07.825599
YYYY-MM-DD 06:31:08.933534 | 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 1
YYYY-MM-DD 06:31:09.335374 | 9. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 3
YYYY-MM-DD 06:31:09.738079 | 5. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 5
YYYY-MM-DD 06:31:10.142726 | 1. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 6
YYYY-MM-DD 06:31:10.535045 | 7. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 8
YYYY-MM-DD 06:31:10.937847 | 3. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 9
YYYY-MM-DD 06:31:10.996782 | 9. 100.
End: YYYY-MM-DD 06:31:10.998498
Men-streaming chat teks
Kode contoh berikut men-streaming chat teks sebagai respons terhadap permintaan chatbot untuk menghitung hingga 99. Contoh kode juga menghasilkan waktu sebelum dan waktu setelah from_pretrained
dipanggil untuk menunjukkan waktu yang diperlukan untuk men-streaming output.
import datetime
from vertexai.language_models import ChatModel
chat_model = ChatModel.from_pretrained("chat-bison@002")
chat = chat_model.start_chat()
print("Start: ", datetime.datetime.now())
for response in chat.send_message_streaming(
message="Hello. How are you today? Please count to 99",
max_output_tokens=1024,
):
print(datetime.datetime.now(), "|", response)
print("End: ", datetime.datetime.now())
Responsnya mungkin mirip dengan berikut ini:
Start: YYYY-MM-DD 06:31:19.808735
YYYY-MM-DD 06:31:20.957465 | Hello, I am doing well today. Thank you for asking. 1, 2, 3, 4,
YYYY-MM-DD 06:31:21.312577 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2
YYYY-MM-DD 06:31:DD.709306 | 2, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 3
YYYY-MM-DD 06:31:22.132016 | 8, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 5
YYYY-MM-DD 06:31:22.517211 | 4, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 7
YYYY-MM-DD 06:31:22.911003 | 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 8
YYYY-MM-DD 06:31:23.257773 | 6, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99.
End: YYYY-MM-DD 06:31:23.265454
Membuat embedding teks
Anda dapat menggunakan class TextEmbeddingModel
di Vertex AI SDK untuk menghitung embedding teks. Contoh kode Python berikut menggunakan metode TextEmbeddingModel.get_embeddings
untuk membuat embedding teks menggunakan prompt. Dalam contoh ini, get_embeddings
menampilkan satu objek embeddings
yang berisi satu objek embedding
. Contoh ini mencetak panjang dan statistik vektor yang ditampilkan. Untuk mempelajari lebih lanjut embedding teks dan model dasar embedding teks, baca artikel Mendapatkan embedding teks.
from vertexai.language_models import TextEmbeddingModel
model = TextEmbeddingModel.from_pretrained("textembedding_gecko_current")
embeddings = model.get_embeddings(["What is life?"])
for embedding in embeddings:
vector = embedding.values
print(len(vector))
print(embedding.statistics)
Outputnya mirip dengan hal berikut ini:
768
TextEmbeddingStatistics(token_count=4.0, truncated=False)
Langkah selanjutnya
- Mempelajari cara menggunakan class model kode dan Vertex AI SDK.
- Mempelajari cara menggunakan Vertex AI SDK untuk menyesuaikan model dasar.
- Mempelajari class Vertex AI SDK yang tidak terkait dengan AI generatif.