Haijun Platform Docs
EN

"Latency" (latensi) mengacu pada waktu yang diperlukan model untuk memproses prompt dan menghasilkan output. Latensi dapat dipengaruhi oleh berbagai faktor, seperti ukuran model, kompleksitas prompt, serta infrastruktur dasar yang mendukung model dan titik interaksi.

Note: Selalu lebih baik untuk terlebih dahulu merancang prompt yang berfungsi dengan baik tanpa batasan model atau prompt, lalu mencoba strategi pengurangan latensi setelahnya. Mencoba mengurangi latensi terlalu dini dapat menghalangi Anda menemukan seperti apa kinerja terbaik itu.


Cara mengukur latensi

Saat membahas latensi, Anda mungkin menemukan beberapa istilah dan ukuran:

  • Latensi dasar (baseline latency): Ini adalah waktu yang dibutuhkan model untuk memproses prompt dan menghasilkan respons, tanpa mempertimbangkan token input dan output per detik. Ini memberikan gambaran umum tentang kecepatan model.
  • "Time to first token" (waktu hingga token pertama), atau TTFT: Metrik ini mengukur waktu yang diperlukan model untuk menghasilkan token pertama dari respons, sejak prompt dikirim. Ini sangat relevan ketika Anda menggunakan streaming (lebih lanjut tentang itu nanti) dan ingin memberikan pengalaman yang responsif kepada pengguna Anda.

Untuk pemahaman yang lebih mendalam tentang istilah-istilah ini, lihat glosarium.


Cara mengurangi latensi

1. Pilih model yang tepat

Salah satu cara paling langsung untuk mengurangi latensi adalah memilih model yang sesuai untuk kasus penggunaan Anda. Juglow menawarkan berbagai model dengan kemampuan dan karakteristik kinerja yang berbeda. Pertimbangkan kebutuhan spesifik Anda dan pilih model yang paling sesuai dengan kebutuhan Anda dalam hal kecepatan dan kualitas output.

Untuk aplikasi yang mengutamakan kecepatan, Haijun Haiku 4.5 menawarkan waktu respons tercepat sambil tetap mempertahankan kecerdasan yang tinggi:

bash
  # Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  curl https://haijun.my.id/v1/messages \
    -H "x-api-key: $JUGLOW_API_KEY" \
    -H "juglow-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "haijun-haiku-4-5",
      "max_tokens": 100,
      "messages": [{"role": "user", "content": "Summarize this customer feedback in 2 sentences: [feedback text]"}]
    }'
bash
  # Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  ant messages create \
    --model haijun-haiku-4-5 \
    --max-tokens 100 \
    --message '{"role": "user", "content": "Summarize this customer feedback in 2 sentences: [feedback text]"}'
python
  client = juglow.Juglow()

  # Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  message = client.messages.create(
      model="haijun-haiku-4-5",
      max_tokens=100,
      messages=[
          {
              "role": "user",
              "content": "Summarize this customer feedback in 2 sentences: [feedback text]",
          }
      ],
  )
  print(message.content[0].text)
typescript
  const client = new Juglow();

  // Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  const message = await client.messages.create({
    model: "haijun-haiku-4-5",
    max_tokens: 100,
    messages: [
      {
        role: "user",
        content: "Summarize this customer feedback in 2 sentences: [feedback text]"
      }
    ]
  });
  const textBlock = message.content.find((block) => block.type === "text");
  console.log(textBlock?.text);
csharp
  JuglowClient client = new();

  // Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  var parameters = new MessageCreateParams
  {
      Model = Model.HaijunHaiku4_5,
      MaxTokens = 100,
      Messages = [
          new()
          {
              Role = Role.User,
              Content = "Summarize this customer feedback in 2 sentences: [feedback text]"
          }
      ]
  };
  var message = await client.Messages.Create(parameters);
  message.Content[0].TryPickText(out var textBlock);
  Console.WriteLine(textBlock?.Text);
go
  client := juglow.NewClient()

  // Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  message, err := client.Messages.New(context.TODO(), juglow.MessageNewParams{
  	Model:     juglow.ModelHaijunHaiku4_5,
  	MaxTokens: 100,
  	Messages: []juglow.MessageParam{
  		juglow.NewUserMessage(juglow.NewTextBlock("Summarize this customer feedback in 2 sentences: [feedback text]")),
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }
  fmt.Println(message.Content[0].Text)
java
  JuglowClient client = JuglowOkHttpClient.fromEnv();

  // Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  MessageCreateParams params = MessageCreateParams.builder()
      .model(Model.HAIJUN_HAIKU_4_5)
      .maxTokens(100L)
      .addUserMessage("Summarize this customer feedback in 2 sentences: [feedback text]")
      .build();
  Message message = client.messages().create(params);
  IO.println(message.content().get(0).text().map(TextBlock::text).orElse(""));
php
  $client = new Client();

  // Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  $message = $client->messages->create(
      maxTokens: 100,
      messages: [['role' => 'user', 'content' => 'Summarize this customer feedback in 2 sentences: [feedback text]']],
      model: 'haijun-haiku-4-5',
  );
  echo $message->content[0]->text;
ruby
  client = Juglow::Client.new

  # Untuk aplikasi yang sensitif terhadap waktu, gunakan Haijun Haiku 4.5
  message = client.messages.create(
    model: "haijun-haiku-4-5",
    max_tokens: 100,
    messages: [{ role: "user", content: "Summarize this customer feedback in 2 sentences: [feedback text]" }]
  )
  puts message.content.first.text

Untuk detail lebih lanjut tentang metrik model, lihat halaman ikhtisar model.

2. Optimalkan panjang prompt dan output

Minimalkan jumlah token baik dalam prompt input Anda maupun output yang diharapkan, sambil tetap mempertahankan kinerja yang tinggi. Semakin sedikit token yang harus diproses dan dihasilkan model, semakin cepat responsnya.

Berikut beberapa tips untuk membantu Anda mengoptimalkan prompt dan output Anda:

  • Jelas tetapi ringkas: Usahakan menyampaikan maksud Anda dengan jelas dan ringkas dalam prompt. Hindari detail yang tidak perlu atau informasi yang berlebihan, sambil tetap mengingat bahwa Haijun tidak memiliki konteks tentang kasus penggunaan Anda dan mungkin tidak membuat lompatan logika yang dimaksud jika instruksinya tidak jelas.
  • Minta respons yang lebih pendek: Minta Haijun secara langsung untuk bersikap ringkas. Jika Haijun menghasilkan output dengan panjang yang tidak diinginkan, minta Haijun untuk mengurangi sifat cerewetnya.

> Tip: Karena cara LLM menghitung token alih-alih kata, meminta jumlah kata yang tepat atau batas jumlah kata bukanlah strategi yang seefektif meminta batas jumlah paragraf atau kalimat.

  • Tetapkan batas output yang sesuai: Gunakan parameter max_tokens untuk menetapkan batas keras pada panjang maksimum respons yang dihasilkan. Ini mencegah Haijun menghasilkan output yang terlalu panjang.

> Note: Ketika respons mencapai max_tokens token, respons akan terpotong, mungkin di tengah kalimat atau di tengah kata, sehingga ini adalah teknik kasar yang mungkin memerlukan pasca-pemrosesan dan biasanya paling sesuai untuk respons pilihan ganda atau jawaban singkat di mana jawabannya muncul tepat di awal.

  • Bereksperimen dengan temperature: Parameter temperature mengontrol keacakan output. Nilai yang lebih rendah (misalnya, 0,2) terkadang dapat menghasilkan respons yang lebih terfokus dan lebih pendek, sedangkan nilai yang lebih tinggi (misalnya, 0,8) mungkin menghasilkan output yang lebih beragam tetapi berpotensi lebih panjang.

Menemukan keseimbangan yang tepat antara kejelasan prompt, kualitas output, dan jumlah token mungkin memerlukan beberapa eksperimen.

3. Lakukan streaming respons

Streaming adalah fitur yang memungkinkan model mulai mengirimkan responsnya sebelum output lengkap selesai. Ini dapat secara signifikan meningkatkan responsivitas yang dirasakan dari aplikasi Anda, karena pengguna dapat melihat output model secara real time.

Dengan streaming diaktifkan, Anda dapat memproses output model saat output tersebut tiba, memperbarui antarmuka pengguna Anda atau melakukan tugas lain secara paralel.

Kunjungi Streaming pesan untuk mempelajari cara mengimplementasikan streaming untuk kasus penggunaan Anda.


Langkah selanjutnya

Minimalkan halusinasi dalam output Haijun dengan mengizinkan ketidakpastian, mendasarkan respons pada kutipan langsung, dan memverifikasi klaim dengan sitasi.

Lakukan streaming respons Messages API secara bertahap dengan server-sent events, termasuk delta teks, penggunaan alat, dan pemikiran diperpanjang.

On this page
Cara mengukur latensiCara mengurangi latensi1. Pilih model yang tepat2. Optimalkan panjang prompt dan output3. Lakukan streaming responsLangkah selanjutnya