ਆਪਣੇ ਪ੍ਰੋਡਕਟ ਵਿੱਚ ਲਾਗਤ ਜਾਂ ਲੇਟੈਂਸੀ (latency) ਨੂੰ ਖਰਾਬ ਕੀਤੇ ਬਿਨਾਂ LLM ਕਿਵੇਂ ਜੋੜਿਆ ਜਾਵੇ

ਇੱਕ AI ਡੈਮੋ ਬਣਾਉਣਾ ਆਸਾਨ ਹੈ। ਤੁਸੀਂ ਇੱਕ API key ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, ਇੱਕ ਪ੍ਰੋਂਪਟ ਲਿਖਦੇ ਹੋ, ਅਤੇ ਇਸਨੂੰ ਆਪਣੀ ਟੀਮ ਨੂੰ ਦਿਖਾਉਂਦੇ ਹੋ।

ਫਿਰ ਤੁਸੀਂ ਇਸਨੂੰ ਲਾਂਚ ਕਰਦੇ ਹੋ। ਟ੍ਰੈਫਿਕ ਆਉਂਦਾ ਹੈ। ਤੁਹਾਡੀਆਂ ਲਾਗਤਾਂ ਵਧ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਲੇਟੈਂਸੀ (latency) ਤੇਜ਼ੀ ਨਾਲ ਵਧ ਜਾਂਦੀ ਹੈ।

ਇੱਕ ਡੈਮੋ ਤੋਂ ਅਸਲ ਪ੍ਰੋਡਕਟ ਵੱਲ ਵਧਣ ਲਈ ਲਾਗਤ ਅਤੇ ਲੇਟੈਂਸੀ ਇੰਜੀਨੀਅਰਿੰਗ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਤੁਸੀਂ ਇਹ ਕਿਵੇਂ ਕਰ ਸਕਦੇ ਹੋ।

ਆਪਣੇ ਆਉਟਪੁੱਟ (output) ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ

ਜ਼ਿਆਦਾਤਰ APIs ਟੋਕਨਾਂ (tokens) ਦੇ ਹਿਸਾਬ ਨਾਲ ਚਾਰਜ ਕਰਦੇ ਹਨ। ਆਉਟਪੁੱਟ ਟੋਕਨਾਂ ਦੀ ਕੀਮਤ ਇਨਪੁੱਟ ਟੋਕਨਾਂ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਹੁੰਦੀ ਹੈ।

ਲੋਕ ਪ੍ਰੋਂਪਟ ਨੂੰ ਛੋਟਾ ਕਰਨ ਵਿੱਚ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਹਨ ਪਰ ਮਾਡਲ ਨੂੰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਲਿਖਣ ਦਿੰਦੇ ਹਨ। ਇਹ ਇੱਕ ਗਲਤੀ ਹੈ।

ਪੈਸੇ ਅਤੇ ਸਮਾਂ ਬਚਾਉਣ ਲਈ, ਆਉਟਪੁੱਟ ਨੂੰ ਸੀਮਤ ਰੱਖੋ:

  • JSON ਦੀ ਮੰਗ ਕਰੋ।
  • ਇੱਕੋ ਇੱਕ ਵਾਕ ਦੀ ਬੇਨਤੀ ਕਰੋ।
  • max_tokens ਦੀ ਸੀਮਾ ਸੈੱਟ ਕਰੋ।
  • ਮਾਡਲ ਨੂੰ ਸੰਖੇਪ ਵਿੱਚ ਰਹਿਣ ਲਈ ਕਹੋ।

ਛੋਟੇ ਜਵਾਬ ਤੇਜ਼ ਅਤੇ ਸਸਤੇ ਹੁੰਦੇ ਹਨ।

ਬੇਲੋੜੀਆਂ ਕਾਲਾਂ (calls) ਕਰਨਾ ਬੰਦ ਕਰੋ

ਬਚਤ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਮਾਡਲ ਨੂੰ ਬਿਲਕੁਲ ਵੀ ਕਾਲ ਨਾ ਕਰਨਾ ਹੈ।

  • ਕੈਸ਼ਿੰਗ (caching) ਦੀ ਵਰਤੋਂ ਕਰੋ: ਆਮ ਸਵਾਲਾਂ ਲਈ ਜਵਾਬ ਸਟੋਰ ਕਰੋ। ਜੇਕਰ ਸਵਾਲ ਮਿਲਦੇ-ਜੁਲਦੇ ਹਨ ਪਰ ਬਿਲਕੁਲ ਇੱਕੋ ਜਿਹੇ ਨਹੀਂ ਹਨ, ਤਾਂ ਇੱਕ ਸੈਮੈਂਟਿਕ ਕੈਸ਼ (semantic cache) ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ।
  • ਰੂਟਿੰਗ (routing) ਦੀ ਵਰਤੋਂ ਕਰੋ: ਸਧਾਰਨ ਕੰਮਾਂ ਲਈ ਆਪਣੇ ਸਭ ਤੋਂ ਵਧੀਆ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। ਕਲਾਸੀਫਿਕੇਸ਼ਨ (classification) ਲਈ ਇੱਕ ਛੋਟੇ, ਸਸਤੇ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਮਹਿੰਗੇ ਮਾਡਲ ਨੂੰ ਗੁੰਝਲਦਾਰ ਕੰਮਾਂ ਲਈ ਬਚਾ ਕੇ ਰੱਖੋ।

ਯੂਜ਼ਰ ਅਨੁਭਵ (user experience) ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ

ਜੇਕਰ ਜਵਾਬ ਦੇਣ ਵਿੱਚ ਸਮਾਂ ਲੱਗਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਤੇਜ਼ ਮਹਿਸੂਸ ਕਰਵਾਓ।

  • ਟੋਕਨਾਂ ਨੂੰ ਸਟ੍ਰੀਮ (stream) ਕਰੋ: ਜਿਵੇਂ ਹੀ ਸ਼ਬਦ ਬਣਦੇ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਦਿਖਾਓ। ਇਹ ਉਡੀਖਣ ਦੇ ਸਮੇਂ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ।
  • ਪ੍ਰਗਤੀ (progress) ਦਿਖਾਓ: ਜੇਕਰ ਕੰਮ ਦੇ ਕਈ ਪੜਾਅ ਹਨ, ਤਾਂ ਯੂਜ਼ਰ ਨੂੰ ਦੱਸੋ ਕਿ ਕੀ ਹੋ ਰਿਹਾ ਹੈ। ਇੱਕ ਚੁੱਪ ਸਪਿਨਰ (spinner) ਦੀ ਬਜਾਏ "Searching documents..." ਵਰਗੇ ਟੈਕਸਟ ਦੀ ਵਰਤੋਂ ਕਰੋ।

"ਟੇਲ" (tail) ਲੇਟੈਂਸੀ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰੋ

ਕੁਝ ਰਿਕੁਐਸਟਾਂ ਹਮੇਸ਼ਾ ਹੌਲੀ ਹੋਣਗੀਆਂ। ਉਹਨਾਂ ਨੂੰ ਆਪਣੇ ਪ੍ਰੋਡਕਟ ਨੂੰ ਖਰਾਬ ਨਾ ਕਰਨ ਦਿਓ।

  • ਟਾਈਮਆਊਟ (timeouts) ਸੈੱਟ ਕਰੋ: ਜੇਕਰ ਕੋਈ ਰਿਕੁਐਸਟ ਲਟਕ ਜਾਂਦੀ ਹੈ ਤਾਂ ਕੀ ਹੋਣਾ ਹੈ, ਇਹ ਤੈਅ ਕਰੋ। ਇੱਕ ਫਾਲਬੈਕ (fallback) ਜਾਂ ਛੋਟੇ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਰੀਟ੍ਰਾਈਜ਼ (retries) ਦੀ ਵਰਤੋਂ ਕਰੋ: ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਲਈ ਰੀਟ੍ਰਾਈਜ਼ ਜੋੜੋ, ਪਰ ਉਹਨਾਂ ਦੀ ਇੱਕ ਸੀਮਾ ਰੱਖੋ।
  • ਸਰਕਟ ਬ੍ਰੇਕਰਾਂ (circuit breakers) ਦੀ ਵਰਤੋਂ ਕਰੋ: ਜੇਕਰ ਕੋਈ ਪ੍ਰੋਵਾਈਡਰ ਡਾਊਨ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਲੰਬੀ ਉਡੀਖ ਤੋਂ ਬਚਣ ਲਈ ਤੁਰੰਤ ਰਿਕੁਐਸਟਾਂ ਭੇਜਣਾ ਬੰਦ ਕਰ ਦਿਓ।

ਆਪਣੇ ਡੇਟਾ ਨੂੰ ਟਰੈਕ ਕਰੋ

ਤੁਸੀਂ ਉਸ ਚੀਜ਼ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਮਾਪਦੇ ਨਹੀਂ ਹੋ। ਹਰ ਰਿਕੁਐਸਟ ਲਈ ਇਹਨਾਂ ਤਿੰਨਾਂ ਨੰਬਰਾਂ ਨੂੰ ਲੌਗ (log) ਕਰੋ:

  • ਇਨਪੁੱਟ ਟੋਕਨ।
  • ਆਉਟਪੁੱਟ ਟੋਕਨ।
  • ਕੁੱਲ ਲੇਟੈਂਸੀ।

ਹਰ ਸਫਲ ਯੂਜ਼ਰ ਆਊਟਕਮ (user outcome) ਦੀ ਲਾਗਤ ਦੇਖੋ। ਇੱਕ ਅਜਿਹਾ ਫੀਚਰ ਜੋ ਕੰਮ ਕਰਦਾ ਹੈ, ਉਹ ਸਸਤੇ ਫੀਚਰ ਨਾਲੋਂ ਬਿਹਤਰ ਹੈ ਜੋ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ।

LLM ਨੂੰ ਜਾਦੂ ਵਾਂਗ ਸਮਝਣਾ ਬੰਦ ਕਰੋ। ਇਸਨੂੰ ਇੱਕ ਹੌਲੀ ਅਤੇ ਮਹਿੰਗੀ ਨਿਰਭਰਤਾ (dependency) ਵਜੋਂ ਦੇਖੋ ਜਿਸ ਨੂੰ ਤੁਹਾਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਪਵੇਗਾ।

Source: https://dev.to/muhammadzainnaseer/how-to-put-an-llm-in-your-product-without-wrecking-your-costs-or-your-latency-89a

Optional learning community: https://t.me/GyaanSetuAi