Torchchat عبارة عن قاعدة بيانات صغيرة تعرض القدرة على تشغيل نماذج لغة كبيرة (LLMS) بسلاسة. باستخدام Torchchat ، يمكنك تشغيل LLMs باستخدام Python ، وضمن تطبيقك الخاص (C/C ++) الخاص بك (سطح المكتب أو الخادم) وعلى iOS و Android.
مهم
تحديث 25 سبتمبر ، 2024: Torchchat لديه دعم متعدد الوسائط لـ Llama3.2 11b !!
لتجربتها ، أنهي قسم التثبيت أدناه ، ثم قفز إلى دليلنا متعدد الوسائط لمعرفة المزيد.
يتم دعم النماذج التالية بواسطة Torchchat ولها أسماء المستعارة المرتبطة.
| نموذج | صديق للهاتف المحمول | ملحوظات |
|---|---|---|
| meta-llama/meta-llama-3.2-3b-instruct | ✅ | ضبط chat . الاسم المستعار إلى llama3.2-3b . |
| meta-llama/meta-llama-3.2-3b | ✅ | الأفضل generate . الاسم المستعار إلى llama3.2-3b-base . |
| meta-llama/llama-guard-3-1b | ✅ | ضبط للتصنيف. الاسم المستعار إلى llama3-1b-guard . |
| meta-llama/meta-llama-3.2-1b-instruct | ✅ | ضبط chat . الاسم المستعار إلى llama3.2-1b . |
| meta-llama/meta-llama-3.2-1b | ✅ | الأفضل generate . الاسم المستعار إلى llama3.2-1b-base . |
| meta-llama/llama-3.2-11b-vision-instruct | متعدد الوسائط (صورة + نص). ضبط chat . الاسم المستعار إلى llama3.2-11B . | |
| meta-llama/llama-3.2-11b-pision | متعدد الوسائط (صورة + نص). ضبط generate . الاسم المستعار إلى llama3.2-11B-base . | |
| meta-llama/meta-llama-3.1-8b-instruct | ✅ | ضبط chat . الاسم المستعار إلى llama3.1 . |
| meta-llama/meta-llama-3.1-8b | ✅ | الأفضل generate . الاسم المستعار إلى llama3.1-base . |
| meta-llama/meta-llama-3-8b-instruct | ✅ | ضبط chat . الاسم المستعار إلى llama3 . |
| meta-llama/meta-llama-3-8b | ✅ | الأفضل generate . الاسم المستعار إلى llama3-base . |
| meta-llama/llama-2-7b-chat-hf | ✅ | ضبط chat . الاسم المستعار إلى llama2 . |
| meta-llama/llama-2-13b-chat-hf | ضبط chat . الاسم المستعار إلى llama2-13b-chat . | |
| meta-llama/llama-2-70b-chat-hf | ضبط chat . الاسم المستعار إلى llama2-70b-chat . | |
| meta-llama/llama-2-7b-hf | ✅ | الأفضل generate . الاسم المستعار إلى llama2-base . |
| meta-llama/codellama-7b-python-hf | ✅ | ضبطت للبيثون generate . الاسم المستعار إلى codellama . |
| meta-llama/codellama-34b-python-hf | ✅ | ضبطت للبيثون generate . الاسم المستعار إلى codellama-34b . |
| MISTRALAI/MISTRAL-7B-V0.1 | ✅ | الأفضل generate . الاسم المستعار إلى mistral-7b-v01-base . |
| MISTRALAI/MISTRAL-7B-instruct-V0.1 | ✅ | ضبط chat . الاسم المستعار إلى mistral-7b-v01-instruct . |
| MISTRALAI/MISTRAL-7B-instruct-V0.2 | ✅ | ضبط chat . الاسم المستعار إلى mistral . |
| Tinyllamas/Stories15m | ✅ | نموذج لعبة generate . الاسم المستعار إلى stories15M . |
| tinyllamas/chorse42m | ✅ | نموذج لعبة generate . الاسم المستعار إلى stories42M . |
| Tinyllamas/Stories110m | ✅ | نموذج لعبة generate . الاسم المستعار إلى stories110M . |
| OpenLM-Research/open_llama_7b | ✅ | الأفضل generate . الاسم المستعار إلى open-llama . |
تتطلب الخطوات التالية أن يكون لديك Python 3.10 مثبتًا.
نصيحة
يستخدم Torchchat أحدث التغييرات من مشاريع Pytorch المختلفة ، لذا يوصى بشدة باستخدام VenV (باستخدام الأوامر أدناه) أو Conda.
git clone https://github.com/pytorch/torchchat.git
cd torchchat
python3 -m venv .venv
source .venv/bin/activate
./install/install_requirements.shيتم الاستفادة من واجهات Torchchat من خلال أوامر Python والعدائين الأصليين . في حين أن أوامر Python غير قابلة للاسترداد في قائمة -help ، يتم استكشاف الأخير في الأقسام الخاصة بكل منها.
python3 torchchat.py --help # Output
usage: torchchat [-h] {chat,browser,generate,export,eval,download,list,remove,where,server} ...
positional arguments:
{chat,browser,generate,export,eval,download,list,remove,where,server}
The specific command to run
chat Chat interactively with a model via the CLI
generate Generate responses from a model given a prompt
browser Chat interactively with a model in a locally hosted browser
export Export a model artifact to AOT Inductor or ExecuTorch
download Download model artifacts
list List all supported models
remove Remove downloaded model artifacts
where Return directory containing downloaded model artifacts
server [WIP] Starts a locally hosted REST server for model interaction
eval Evaluate a model via lm-eval
options:
-h, --help show this help message and exitاستدلال بيثون (الدردشة ، توليد ، متصفح ، خادم)
تصدير (تصدير)
إدارة المخزون (تنزيل ، قائمة ، إزالة ، أين)
التقييم (eval)
تستخدم معظم النماذج وجه المعانقة كقناة التوزيع ، لذلك ستحتاج إلى إنشاء حساب وجه معانقة. قم بإنشاء رمز وصول المستخدم للوجه المعانقة كما هو موثق هنا مع دور write .
تسجيل الدخول إلى الوجه المعانقة:
huggingface-cli login
ألق نظرة على النماذج المتاحة:
python3 torchchat.py listثم قم بتنزيل واحد للاختبار (يستخدم هذا ReadMe llama3.1)
python3 torchchat.py download llama3.1
ملحوظة
قد يطالبك هذا الأمر بطلب الوصول إلى Llama 3 عبر Hugging Face ، إذا لم يكن لديك وصول بالفعل. ما عليك سوى اتباع المطالبات وإعادة تشغيل الأمر عند منح الوصول.*
يوضح هذا المفوض الفرعي موقع نموذج معين.
python3 torchchat.py where llama3.1هذا مفيد في البرامج النصية عندما لا تريد مسارات الرمز الصلب
يزيل هذا المفوض الفرعي النموذج المحدد
python3 torchchat.py remove llama3.1 يمكن العثور على مزيد من المعلومات حول هذه الأوامر عن طريق إضافة خيار --help .
أبسط طريقة لتشغيل نموذج في Pytorch هي عن طريق التنفيذ المتحمس. هذا هو وضع التنفيذ الافتراضي لكل من Pytorch و Torchchat. إنه يؤدي الاستدلال دون إنشاء مصنوعات تصدير أو استخدام عداء منفصل.
يمكن أيضًا تكوين النموذج المستخدم للاستدلال وتصميمه لتلبية الاحتياجات المحددة (التجميع ، والكمية ، وما إلى ذلك). انظر دليل التخصيص للخيارات التي تدعمها Torchchat.
نصيحة
لمزيد من المعلومات حول هذه الأوامر ، يرجى الرجوع إلى قائمة --help .
يتيح لك هذا الوضع الدردشة مع LLM بطريقة تفاعلية.
python3 torchchat.py chat llama3.1يولد هذا الوضع نصًا استنادًا إلى موجه الإدخال.
python3 torchchat.py generate llama3.1 --prompt " write me a story about a boy and his bear "يعرض هذا الوضع واجهة برمجة تطبيقات REST للتفاعل مع نموذج. يتبع الخادم مواصفات Openai API لاستكمال الدردشة.
لاختبار REST API ، ستحتاج إلى محطتين : واحد لاستضافة الخادم ، وواحد لإرسال الطلب. في محطة واحدة ، ابدأ الخادم
python3 torchchat.py server llama3.1shell الافتراضي: python3 torchchat.py server llama3.1 & server_pid = $! ؛ Sleep 90 # انتظر حتى يكون الخادم جاهزًا لقبول الطلبات
في محطة أخرى ، استعد الخادم باستخدام curl . اعتمادًا على تكوين النموذج ، قد يستغرق هذا الاستعلام بضع دقائق للرد.
ملحوظة
نظرًا لأن هذه الميزة تخضع للتطوير النشط ، لا يتم استهلاك كل معلمة. راجع API/API.py للحصول على التفاصيل التي يتم تنفيذ معلمات الطلب. إذا واجهت أي مشكلات ، فيرجى التعليق على مشكلة التتبع.
ضبط stream على "صواب" في الطلب ينبعث من الرد في قطع. إذا كان stream غير مستقر أم لا "صحيح" ، فسيقوم العميل بانتظار الاستجابة الكاملة من الخادم.
مثال على الإدخال + الإخراج
curl http://127.0.0.1:5000/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "llama3.1",
"stream": "true",
"max_tokens": 200,
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
{"response":" I'm a software developer with a passion for building innovative and user-friendly applications. I have experience in developing web and mobile applications using various technologies such as Java, Python, and JavaScript. I'm always looking for new challenges and opportunities to learn and grow as a developer.nnIn my free time, I enjoy reading books on computer science and programming, as well as experimenting with new technologies and techniques. I'm also interested in machine learning and artificial intelligence, and I'm always looking for ways to apply these concepts to real-world problems.nnI'm excited to be a part of the developer community and to have the opportunity to share my knowledge and experience with others. I'm always happy to help with any questions or problems you may have, and I'm looking forward to learning from you as well.nnThank you for visiting my profile! I hope you find my information helpful and interesting. If you have any questions or would like to discuss any topics, please feel free to reach out to me. I"}
Shell الافتراضي: Kill $ {server_pid}
يفتح هذا الأمر واجهة متصفح أساسية للدردشة المحلية عن طريق الاستعلام عن خادم محلي.
أولاً ، اتبع الخطوات في قسم الخادم أعلاه لبدء خادم محلي. ثم ، في محطة أخرى ، قم بتشغيل الواجهة. تشغيل ما يلي سيفتح علامة تبويب في متصفحك.
streamlit run torchchat/usages/browser.py
استخدم شريط التمرير "Max Response Tokens" للحد من الحد الأقصى لعدد الرموز الناتجة عن النموذج لكل استجابة. انقر فوق الزر "إعادة تعيين الدردشة" لإزالة سجل الرسالة وبدء دردشة جديدة.
AOTI يجمع النماذج قبل التنفيذ من أجل الاستدلال بشكل أسرع. تقوم العملية بإنشاء ملف PT2 مضغوط يحتوي على جميع القطع الأثرية التي تم إنشاؤها بواسطة AotInductor ، وملف. لذلك مع المحتويات القابلة للتشغيل التي يتم تحميلها بعد ذلك للاستدلال. يمكن القيام بذلك مع كل من Python و C ++ Enviroments.
المثال التالي يصدر وتنفيذ نموذج تعليمات LLAMA3.1 8B. يجمع الأمر الأول ويقوم بالتصدير الفعلي.
python3 torchchat.py export llama3.1 --output-aoti-package-path exportedModels/llama3_1_artifacts.pt2ملحوظة
إذا كان جهازك يحتوي على CUDA ، أضف هذا العلامة للأداء --quantize torchchat/quant_config/cuda.json عند التصدير.
لمزيد من التفاصيل حول القياس الكمي وما هي الإعدادات لاستخدامها في حالة الاستخدام ، تفضل بزيارة دليل التخصيص الخاص بنا.
لتشغيله في بيثون إنفايرومنت ، استخدم اللفنة الفرعية لإنشاء مثل من قبل ، ولكن قم بتضمين ملف PT2.
python3 torchchat.py generate llama3.1 --aoti-package-path exportedModels/llama3_1_artifacts.pt2 --prompt " Hello my name is "لتشغيل في Enviroment C ++ ، نحتاج إلى بناء العداء الثنائي.
torchchat/utils/scripts/build_native.sh aotiثم قم بتشغيل المترجمة القابلة للتنفيذ ، مع PT2.
cmake-out/aoti_run exportedModels/llama3_1_artifacts.pt2 -z ` python3 torchchat.py where llama3.1 ` /tokenizer.model -l 3 -i " Once upon a time " يمكّنك ExecutorCh من تحسين النموذج الخاص بك للتنفيذ على جهاز محمول أو مضمن.
قبل تشغيل أي أوامر في Torchchat التي تتطلب eveldorch ، يجب عليك أولاً تثبيت Executorch.
لتثبيت Executorch ، قم بتشغيل الأوامر التالية. سيؤدي ذلك إلى تنزيل executorch repo على.
مهم
يجب تشغيل الأوامر التالية من دليل جذر Torchchat.
export TORCHCHAT_ROOT=${PWD}
./torchchat/utils/scripts/install_et.sh
على غرار AOTI ، للنشر على الجهاز ، نقوم أولاً بتصدير قطعة أثرية PTE ، ثم نقوم بتحميل قطعة أثرية للاستدلال.
يستخدم المثال التالي نموذج LLAMA3.1 8B.
# Export
python3 torchchat.py export llama3.1 --quantize torchchat/quant_config/mobile.json --output-pte-path llama3.1.pte
ملحوظة
نحن نستخدم --quantize torchchat/quant_config/mobile.json لتحديد نموذج Llama3.1 لتقليل حجم النموذج وتحسين الأداء لحالات استخدام الجهاز.
لمزيد من التفاصيل حول القياس الكمي وما هي الإعدادات لاستخدامها في حالة الاستخدام ، تفضل بزيارة دليل التخصيص الخاص بنا.
على الرغم من أن Executorch لا يركز على استنتاج سطح المكتب ، إلا أنه قادر على القيام بذلك. هذا مفيد لاختبار نماذج PTE دون إرسالها إلى جهاز فعلي.
على وجه التحديد ، هناك طريقتان للقيام بذلك: ثعبان نقي وعبر عداء
# Execute
python3 torchchat.py generate llama3.1 --pte-path llama3.1.pte --prompt "Hello my name is"
بناء العداء
torchchat/utils/scripts/build_native.sh etتنفيذ باستخدام العداء
cmake-out/et_run llama3.1.pte -z ` python3 torchchat.py where llama3.1 ` /tokenizer.model -l 3 -i " Once upon a time "ما يلي يفترض أنك أكملت خطوات إعداد Executorch.
.dmg ونقل مجلد تطبيق CMake إلى /Applications .sudo /Applications/CMake.app/Contents/bin/cmake-gui --installincreased-memory-limit . افتح مشروع Xcode:
open et-build/src/executorch/examples/demo-apps/apple_ios/LLaMA/LLaMA.xcodeprojملاحظة: إذا كنت تواجه أي مشكلات تتعلق بتبعيات الحزم ، وإغلاق Xcode ، وقم بتنظيف بعض ذاكرة التخزين المؤقت و/أو منتجات الإنشاء ، وفتح مشروع Xcode مرة أخرى:
rm -rf ~ /Library/org.swift.swiftpm ~ /Library/Caches/org.swift.swiftpm ~ /Library/Caches/com.apple.dt.Xcode ~ /Library/Developer/Xcode/DerivedData
انقر فوق الزر "تشغيل" لإطلاق التطبيق في المحاكاة.
لتشغيله على جهاز ، تأكد من إعداده للتطوير وملف تعريف توفير مع استحقاق increased-memory-limit . قم بتحديث معرف حزمة التطبيق لمطابقة ملف تعريف التوفير الخاص بك مع القدرة المطلوبة.
بعد إطلاق التطبيق بنجاح ، انسخ ملفات Executorch المصدرة ( .pte ) وملفات Tokenizer ( .model ) إلى مجلد إيلاما. يمكنك العثور على ملف النموذج يسمى llama3.1.pte في دليل torchchat الحالي وملف Tokenizer على $(python3 torchchat.py where llama3.1)/tokenizer.model path.
On My iPhone > iLLaMA .اتبع إرشادات واجهة المستخدم الخاصة بالتطبيق لتحديد ملفات النموذج والرمز المميز من نظام الملفات المحلي وإصدار موجه.
انقر على الصورة أدناه لرؤيتها في العمل!
ما يلي يفترض أنك أكملت خطوات إعداد Executorch.
قم بتنزيل ملف AAR ، الذي يحتوي على مكتبة Java ومكتبة JNI المقابلة ، لإنشاء التطبيق وتشغيله.
انقل ملف AAR الذي تم تنزيله إلى torchchat/edge/android/torchchat/app/libs/ . قد تحتاج إلى إنشاء torchchat/edge/android/torchchat/app/libs/ إذا لم يكن موجودًا.
ادفع ملف النموذج والرمز المميز إلى جهازك. يمكنك العثور على ملف النموذج يسمى llama3.1.pte في دليل torchchat الحالي وملف Tokenizer على $(python3 torchchat.py where llama3.1)/tokenizer.model path.
adb shell mkdir -p /data/local/tmp/llama
adb push <model.pte> /data/local/tmp/llama
adb push <tokenizer.model or tokenizer.bin> /data/local/tmp/llama
استخدم Android Studio لفتح هيكل Torchchat App ، الموجود في torchchat/edge/android/torchchat .
انقر فوق زر التشغيل (^r) لبدء تشغيله إلى المحاكي/الجهاز.
اتبع إرشادات واجهة المستخدم الخاصة بالتطبيق لاختيار ملفات النموذج والرمز المميز من نظام الملفات المحلي. ثم إصدار موجه.
ملاحظة: يحتوي ملف AAR المدرج في الخطوة 1 على Tiktoken و SentensePiece Tokenizer. لتعديل أو استخدام Tokenizer المخصص ووقت التشغيل ، قم بتعديل رمز Executorch واستخدم هذا البرنامج النصي لإنشاء مكتبة AAR.
بدلاً من ذلك ، يمكنك تشغيل torchchat/utils/scripts/android_example.sh الذي يقوم بإعداد Java و Android SDK Manager و Android SDK و Android Emulator (إذا لم يتم العثور على جهاز فعلي) ، ويقوم بإنشاء التطبيق ، ويقوم بتشغيله لك. يمكن استخدامه إذا لم يكن لديك واجهة المستخدم الرسومية.
export TORCHCHAT_ROOT=$(pwd)
sh torchchat/utils/scripts/android_example.sh
ملاحظة: لا تزال هذه الميزة عملًا مستمرًا وليس كل الميزات تعمل
يستخدم مكتبة LM_EVAL لتقييم دقة النموذج في مجموعة متنوعة من المهام. الإعدادات الافتراضية إلى wikitext ويمكن التحكم فيها يدويًا باستخدام المهام والحد من args. انظر التقييم
أمثلة
الوضع الحريفي:
python3 torchchat.py eval llama3.1 --dtype fp32 --limit 5
لاختبار الحيرة لنموذج مخفض أو كمي ، تمريره بنفس الطريقة التي تنشئها:
python3 torchchat.py eval llama3.1 --pte-path llama3.1.pte --limit 5
يجسد Torchchat تفاصيل فلسفة تصميم Pytorch ، وخاصة "قابلية الاستخدام على كل شيء آخر".
Torchchat هي مكتبة Pytorch الأصلية. بينما نقدم تكاملًا مع النظام الإيكولوجي المحيط (على سبيل المثال: عانق نماذج الوجه ، إلخ) ، فإن جميع الوظائف الأساسية مكتوبة في Pytorch.
تم تصميم Torchchat ليكون سهل الفهم والاستخدام والتمديد.
يوفر Torchchat مكونات تم اختبارها جيدًا مع شعار عالي على الصواب. نحن نقدم
نحن حقًا نقدر مجتمعنا والمساهمات التي قدمها مستخدمونا الرائعون. سنستخدم هذا القسم لاستدعاء بعض هذه المساهمات! إذا كنت ترغب في المساعدة أيضًا ، فيرجى الاطلاع على دليل المساهمة.
للتواصل معنا وأعضاء المجتمع الآخرين ، ندعوك للانضمام إلى مجتمع Slack لدينا من خلال ملء هذا النموذج. بمجرد الانضمام ، يمكنك:
#torchchat-general للأسئلة العامة والمناقشة ودعم المجتمع.#torchchat-contributors إذا كنت مهتمًا بالمساهمة مباشرة في تطوير المشروع.نتطلع إلى مناقشة معك حول مستقبل Torchchat!
قسم من أخطاء/استثناءات الإعداد التي تمت مواجهتها بشكل شائع. إذا كان هذا القسم لا يحتوي على موقفك ، فتحقق من مشكلات GitHub
الوصول إلى النموذج مقيد وأنت لست في القائمة المعتمدة
تتطلب بعض النماذج خطوة إضافية للوصول. اتبع الرابط المقدم في الخطأ للوصول.
عجلة البناء الفاشلة
Building wheel for executorch (pyproject.toml) did not run successfully ./torchchat/utils/scripts/install_et.sh يمكنك كسر الرابط عن طريق إلغاء تثبيت إصدارات أخرى مثل brew uninstall pytorch ملاحظة: يمكنك كسر شيء يعتمد على هذا ، لذلك كن على دراية.
certificate_verify_failed
قم بتشغيل pip install --upgrade certifi .
إذا واجهت الأخطاء أو الصعوبة في استخدام Torchchat ، فيرجى تقديم مشكلة github.
يرجى تضمين الأمر الدقيق الذي قمت بتشغيله وإخراج هذا الأمر. أيضًا ، قم بتشغيل هذا البرنامج النصي وقم بتضمين الإخراج المحفوظ إلى system_info.txt حتى نتمكن من تصحيح مشكلتك بشكل أفضل.
(echo "Operating System Information"; uname -a; echo ""; cat /etc/os-release; echo ""; echo "Python Version"; python --version || python3 --version; echo ""; echo "PIP Version"; pip --version || pip3 --version; echo ""; echo "Installed Packages"; pip freeze || pip3 freeze; echo ""; echo "PyTorch Version"; python -c "import torch; print(torch.__version__)" || python3 -c "import torch; print(torch.__version__)"; echo ""; echo "Collection Complete") > system_info.txt
يتم توفير محتوى مستودع Torchchat دون أي ضمانات حول الأداء أو التوافق. على وجه الخصوص ، تتيح Torchchat بنيات نموذجية مكتوبة في Python لـ Pytorch والتي قد لا تؤدي بنفس الطريقة أو تلبي نفس المعايير مثل الإصدارات الأصلية لتلك النماذج. عند استخدام محتوى مستودع Torchchat ، بما في ذلك أي بنيات نموذجية ، فأنت مسؤول فقط عن تحديد مدى ملاءمة استخدام محتوى مستودع Torchchat أو إعادة توزيعه وتولي أي مخاطر مرتبطة باستخدام محتوى مستودع Torchchat أو أي نماذج أو نتائج أو نتائج مع أي تقنيات أخرى. بالإضافة إلى ذلك ، قد يكون لديك التزامات قانونية أخرى تحكم استخدامك للمحتوى الآخر ، مثل شروط الخدمة لنماذج الطرف الثالث أو الأوزان أو البيانات أو التقنيات الأخرى ، وأنت وحدك مسؤول عن الامتثال لجميع هذه الالتزامات.
شكرًا للمجتمع على جميع المكتبات والأدوات الرائعة التي قمت ببناءها حول استنتاج LLM المحلي.
Georgi Gerganov ومشروع GGML له يضيء تسليط الضوء على التمكين المجتمعي وإلهام العديد من المشاريع الأخرى.
Andrej Karpathy ومشروع Llama2.C. الكثير من الأفكار العظيمة (والبسيطة!) في llama2.C التي اعتمدناها مباشرة (كل من الأفكار والرمز) من ريبو. لا يمكنك أن تخطئ أبدًا باتباع عمل Andrej.
Michael Gschwind ، و Bert Maher ، و Scott Wolchok ، و Bin Bao ، و Chen Yang ، و Huamin Li و Mu-Chu Li ، الذين قاموا ببناء الإصدار الأول من Nanogpt ( DSOGPT ) مع محث AOT الذي يثبت أنه يمكن استخدام AOTI لبناء LLMS فعال ، و DSOS هي شكل توزيع قابل للحياة. نانوجبت.
بيرت ماهر و llama2.so ، الذي بني على أندريج llama2.c وعلى dsogpt لإغلاق الحلقة على طرز llama مع Aotinductor.
كريستيان بوهرش ، هوراس هو ، جو إيزاكسون وغيرها الكثير عن مساهماتهم العديدة في تسريع نماذج Genai في "أي شيء ، سريع!" Pytorch.org مدونات ، وخاصة Horace He for GPT ، Fast! ، والتي اعتمدناها مباشرة (كل من الأفكار والرمز) من ريبو.
يتم إصدار Torchchat بموجب ترخيص BSD 3. (تتم تغطية رمز إضافي في هذا التوزيع من خلال تراخيص المصدر المفتوح معهد ماساتشوستس للتكنولوجيا وأباش.) ومع ذلك ، قد يكون لديك التزامات قانونية أخرى تحكم استخدامك للمحتوى ، مثل شروط الخدمة لنماذج الطرف الثالث.