CurateGPT هو تطبيق ويب نموذجي وإطار عمل لتنفيذ عمليات التنظيم الموجهة بالذكاء الاصطناعي للأغراض العامة والعمليات المتعلقة بالتنظيم على مجموعات من الكائنات.
راجع أيضًا التطبيق على curategpt.io (ملاحظة: يكون هذا معطلاً في بعض الأحيان، وقد يحتوي فقط على مجموعة فرعية من وظائف التطبيق المحلي)
يتوفر CurateGPT على Pypi ويمكن تثبيته باستخدام pip
:
pip install curategpt
سوف تحتاج أولا إلى تثبيت الشعر.
ثم استنساخ هذا الريبو.
git clone https://github.com/monarch-initiative/curategpt.git
cd curategpt
وتثبيت التبعيات:
poetry install
من أجل الحصول على أفضل أداء من CurateGPT، نوصي بالحصول على مفتاح OpenAI API، وتعيينه:
export OPENAI_API_KEY=
(لأعضاء Monarch: اسأل Slack إذا كنت ترغب في استخدام مفتاح المجموعة)
سيعمل CurateGPT أيضًا مع نماذج اللغات الكبيرة الأخرى - راجع "اختيار النماذج" أدناه.
تبدأ في البداية بقاعدة بيانات فارغة. يمكنك تحميل ما تريد في قاعدة البيانات هذه! يتم قبول أي تنسيق JSON أو YAML أو CSV. يأتي CurateGPT مزودًا بمغلفات لبعض المصادر المحلية والبعيدة الموجودة، بما في ذلك الأنطولوجيات. يحتوي ملف Makefile على بعض الأمثلة حول كيفية تحميلها. يمكنك تحميل أي وجود باستخدام الهدف ont-
، على سبيل المثال:
make ont-cl
يؤدي هذا إلى تحميل CL (عبر OAK) في مجموعة تسمى ont_cl
لاحظ أنه يتم تحميل هذا افتراضيًا في مجموعة مجموعة مخزنة في stagedb
، بينما يعمل التطبيق خارج db
. يمكنك نسخ المجموعة المحددة إلى قاعدة البيانات باستخدام:
cp -r stagedb/* db/
يمكنك بعد ذلك تشغيل تطبيق Streamlit باستخدام:
make app
يعتمد CurateGPT على فهارس قاعدة البيانات المتجهة لقواعد البيانات/الأنطولوجيات التي تريد تنظيمها.
التطبيق الرئيسي هو تنظيم الوجود، لذا لبناء فهرس لأنطولوجيا OBO مثل CL:
make ont-cl
وهذا يتطلب مفتاح OpenAI.
(يمكنك إنشاء فهارس باستخدام نموذج التضمين المفتوح، وتعديل الأمر لترك الخيار -m
، ولكن هذا غير مستحسن حيث يبدو أن عمليات التضمين oai حاليًا تعمل بشكل أفضل).
لتحميل الأنطولوجيات الافتراضية:
make all
(قد يستغرق هذا بعض الوقت)
لتحميل قواعد بيانات مختلفة:
make load-db-hpoa
make load-db-reactome
يمكنك تحميل ملف json أو yaml أو csv عشوائيًا:
curategpt view index -c my_foo foo.json
(ستحتاج إلى القيام بذلك في غلاف الشعر)
لتحميل مستودع GitHub للمشكلات:
curategpt -v view index -c gh_uberon -m openai: --view github --init-with "{repo: obophenotype/uberon}"
يتم دعم ما يلي أيضًا:
تعمل هذه الأداة حاليًا بشكل أفضل مع نموذج OpenAI gpt-4 (لمهام التعليمات) وOpenAI ada-text-embedding-002
للتضمين.
تم وضع CurateGPT أعلى simonw/llm الذي يحتوي على بنية مكون إضافي لاستخدام النماذج البديلة. من الناحية النظرية يمكنك استخدام أي من هذه المكونات الإضافية.
بالإضافة إلى ذلك، يمكنك إعداد وكيل لمحاكاة openai باستخدام Litellm.
يمكن تثبيت وكيل litellm
باستخدام pip
as pip install litellm[proxy]
.
لنفترض أنك تريد تشغيل mixtral محليًا باستخدام ollama. عليك بدء تشغيل ollama (قد تضطر إلى تشغيل ollama serve
أولاً):
ollama run mixtral
ثم ابدأ تشغيل litllm:
litellm -m ollama/mixtral
قم بعد ذلك بتحرير ملف extra-openai-models.yaml
الخاص بك كما هو مفصل في مستندات llm:
- model_name: ollama/mixtral
model_id: litellm-mixtral
api_base: "http://0.0.0.0:8000"
يمكنك الآن استخدام هذا:
curategpt ask -m litellm-mixtral -c ont_cl "What neurotransmitter is released by the hippocampus?"
لكن كن حذرًا من أن العديد من المطالبات الموجودة في curategpt تم تصميمها ضد نماذج openai، وقد تعطي نتائج دون المستوى الأمثل أو تفشل تمامًا في النماذج الأخرى. على سبيل المثال، يبدو أن ask
يعمل بشكل جيد مع الميكسترال، ولكنه يعمل complete
فظيع. لم نحقق بعد فيما إذا كانت المشكلة تتعلق بالنموذج أو بمطالباتنا أو النهج العام.
مرحبًا بكم في عالم هندسة الذكاء الاصطناعي!
curategpt --help
سترى أوامر مختلفة للعمل مع الفهارس والبحث والاستخراج والتوليد وما إلى ذلك.
تتوفر هذه الوظائف بشكل عام من خلال واجهة المستخدم، والأولوية الحالية هي توثيقها.
curategpt ask -c ont_cl "What neurotransmitter is released by the hippocampus?"
قد تسفر عن شيء مثل:
The hippocampus releases gamma-aminobutyric acid (GABA) as a neurotransmitter [1](#ref-1).
...
## 1
id: GammaAminobutyricAcidSecretion_neurotransmission
label: gamma-aminobutyric acid secretion, neurotransmission
definition: The regulated release of gamma-aminobutyric acid by a cell, in which the
gamma-aminobutyric acid acts as a neurotransmitter.
...
curategpt view ask -V pubmed "what neurons express VIP?"
curategpt ask -c gh_obi "what are some new term requests for electrophysiology terms?"
curategpt complete -c ont_cl "mesenchymal stem cell of the apical papilla"
الغلة
id : MesenchymalStemCellOfTheApicalPapilla
definition : A mesenchymal cell that is part of the apical papilla of a tooth and has
the ability to self-renew and differentiate into various cell types such as odontoblasts,
fibroblasts, and osteoblasts.
relationships :
- predicate : PartOf
target : ApicalPapilla
- predicate : subClassOf
target : MesenchymalCell
- predicate : subClassOf
target : StemCell
original_id : CL:0007045
label : mesenchymal stem cell of the apical papilla
يمكنك مقارنة جميع الكائنات في مجموعة واحدة
curategpt all-by-all --threshold 0.80 -c ont_hp -X ont_mp --ids-only -t csv > ~/tmp/allxall.mp.hp.csv
يستغرق هذا 1-2 ثانية، لأنه يتضمن المقارنة بين المتجهات المحسوبة مسبقًا. يُبلغ عن أعلى النتائج أعلى من العتبة.
قد تختلف النتائج. قد ترغب في تجربة نصوص مختلفة للتضمين (الافتراضي هو كائن json بأكمله؛ أما بالنسبة للوجود فهو عبارة عن سلسلة من التسميات والتعريفات والأسماء المستعارة).
عينة:
HP:5200068,Socially innappropriate questioning,MP:0001361,social withdrawal,0.844015132437909
HP:5200069,Spinning,MP:0001411,spinning,0.9077306606290237
HP:5200071,Delayed Echolalia,MP:0013140,excessive vocalization,0.8153252835818089
HP:5200072,Immediate Echolalia,MP:0001410,head bobbing,0.8348177036912526
HP:5200073,Excessive cleaning,MP:0001412,excessive scratching,0.8699103725005582
HP:5200104,Abnormal play,MP:0020437,abnormal social play behavior,0.8984862078522344
HP:5200105,Reduced imaginative play skills,MP:0001402,decreased locomotor activity,0.85571629684631
HP:5200108,Nonfunctional or atypical use of objects in play,MP:0003908,decreased stereotypic behavior,0.8586700411012859
HP:5200129,Abnormal rituals,MP:0010698,abnormal impulsive behavior control,0.8727804272023427
HP:5200134,Jumping,MP:0001401,jumpy,0.9011393233129765
لاحظ أن CurateGPT يحتوي على مكون منفصل لاستخدام LLM لتقييم تطابقات المرشحين (انظر أيضًا https://arxiv.org/abs/2310.03666)؛ لم يتم تمكين هذا افتراضيًا، وسيكون تشغيل هذا الأمر مكلفًا لعلم الوجود بأكمله.