JAX، چې د "Just Other XLA" لپاره ولاړ دی، د Python کتابتون دی چې د ګوګل څیړنې لخوا رامینځته شوی چې د لوړ فعالیت شمیرې کمپیوټري لپاره قوي چوکاټ چمتو کوي. دا په ځانګړي ډول د Python چاپیریال کې د ماشین زده کړې او ساینسي کمپیوټري کاري بارونو غوره کولو لپاره ډیزاین شوی. JAX ډیری کلیدي ځانګړتیاوې وړاندې کوي چې د اعظمي فعالیت او موثریت وړ کوي. پدې ځواب کې، موږ به دا ځانګړتیاوې په تفصیل سره وڅیړو.
1. یوازې په وخت کې (JIT) تالیف: JAX د Python افعال تالیف کولو او په سرعت کونکي لکه GPUs یا TPUs کې د اجرا کولو لپاره د XLA (ګړندي خطي الجبرا) څخه ګټه پورته کوي. د JIT تالیف په کارولو سره، JAX د ژباړونکي سر څخه مخنیوی کوي او د ماشین خورا مؤثره کوډ تولیدوي. دا د دودیز Python اجرا کولو په پرتله د پام وړ سرعت پرمختګ ته اجازه ورکوي.
مثال:
python import jax import jax.numpy as jnp @jax.jit def matrix_multiply(a, b): return jnp.dot(a, b) a = jnp.ones((1000, 1000)) b = jnp.ones((1000, 1000)) result = matrix_multiply(a, b)
2. اتوماتیک توپیر: JAX د اتوماتیک توپیر وړتیاوې چمتو کوي، کوم چې د ماشین زده کړې ماډلونو روزنې لپاره اړین دي. دا دواړه د فارورډ موډ او ریورس موډ اتوماتیک توپیر ملاتړ کوي، کاروونکو ته اجازه ورکوي چې په مؤثره توګه تدریجي محاسبه کړي. دا خصوصیت په ځانګړي ډول د دندو لپاره ګټور دی لکه د تدریجي پراساس اصلاح او بیک پروپیګیشن.
مثال:
python import jax import jax.numpy as jnp @jax.grad def loss_fn(params, inputs, targets): predictions = model(params, inputs) loss = compute_loss(predictions, targets) return loss params = initialize_params() inputs = jnp.ones((100, 10)) targets = jnp.zeros((100,)) grads = loss_fn(params, inputs, targets)
3. فنکشنل برنامه کول: JAX د فعال پروګرام کولو تمثیل هڅوي، کوم چې کولی شي ډیر لنډ او ماډلر کوډ رامینځته کړي. دا د لوړ ترتیب افعالونو، د فعالیت جوړښت، او نورو فعال پروګرامونو مفکورو ملاتړ کوي. دا طریقه د ښه اصلاح او موازي کولو فرصتونو ته وړتیا ورکوي، چې پایله یې د ښه فعالیت سبب کیږي.
مثال:
python import jax import jax.numpy as jnp def model(params, inputs): hidden = jnp.dot(inputs, params['W']) hidden = jax.nn.relu(hidden) outputs = jnp.dot(hidden, params['V']) return outputs params = initialize_params() inputs = jnp.ones((100, 10)) predictions = model(params, inputs)
4. موازي او توزیع شوي کمپیوټري: JAX د موازي او توزیع شوي کمپیوټري لپاره جوړ شوي ملاتړ چمتو کوي. دا کاروونکو ته اجازه ورکوي چې په ډیری وسیلو (د بیلګې په توګه GPUs یا TPUs) او ډیری کوربه کې محاسبې اجرا کړي. دا خصوصیت د ماشین زده کړې کاري بارونو اندازه کولو او اعظمي فعالیت ترلاسه کولو لپاره خورا مهم دی.
مثال:
python import jax import jax.numpy as jnp devices = jax.devices() print(devices) @jax.pmap def matrix_multiply(a, b): return jnp.dot(a, b) a = jnp.ones((1000, 1000)) b = jnp.ones((1000, 1000)) result = matrix_multiply(a, b)
5. د NumPy او SciPy سره متقابل عمل: JAX په بې ساري ډول د مشهور ساینسي کمپیوټري کتابتونونو NumPy او SciPy سره یوځای کیږي. دا یو numpy-compatible API چمتو کوي، کاروونکو ته اجازه ورکوي چې خپل موجود کوډ وکاروي او د JAX د فعالیت اصلاح کولو څخه ګټه پورته کړي. دا متقابل عمل په موجوده پروژو او کاري جریانونو کې د JAX منل اسانه کوي.
مثال:
python import jax import jax.numpy as jnp import numpy as np jax_array = jnp.ones((100, 100)) numpy_array = np.ones((100, 100)) # JAX to NumPy numpy_array = jax_array.numpy() # NumPy to JAX jax_array = jnp.array(numpy_array)
JAX ډیری ځانګړتیاوې وړاندې کوي چې د Python چاپیریال کې اعظمي فعالیت وړوي. د دې په وخت کې تالیف کول، اتوماتیک توپیر، د فعال پروګرام کولو ملاتړ، موازي او توزیع شوي کمپیوټري وړتیاوې، او د NumPy او SciPy سره متقابل عمل دا د ماشین زده کړې او ساینسي کمپیوټري کارونو لپاره یو پیاوړی وسیله جوړوي.
په اړه نورې وروستۍ پوښتنې او ځوابونه EITC/AI/GCML د ګوګل بادل ماشین زده کړه:
- متن ته وینا (TTS) څه شی دی او دا څنګه د AI سره کار کوي؟
- د ماشین زده کړې کې د لوی ډیټاسیټونو سره کار کولو محدودیتونه څه دي؟
- ایا د ماشین زده کړه یو څه ډیالوژیکي مرسته کولی شي؟
- د TensorFlow د لوبې ډګر څه شی دی؟
- لوی ډیټاسیټ واقعیا څه معنی لري؟
- د الګوریتم د هایپرپرامیټرونو ځینې مثالونه څه دي؟
- د انسابل زده کړه څه ده؟
- څه که چیرې د ماشین زده کړې الګوریتم غوره نه وي او څنګه کولی شي ډاډ ترلاسه کړي چې سم انتخاب کړئ؟
- ایا د ماشین زده کړې ماډل د روزنې پرمهال څارنې ته اړتیا لري؟
- د عصبي شبکې پر بنسټ الګوریتم کې کارول شوي کلیدي پیرامیټونه کوم دي؟
نورې پوښتنې او ځوابونه په EITC/AI/GCML د ګوګل کلاوډ ماشین زده کړې کې وګورئ