����λ�ã���ҳ > �����̳� > �̳� > llama.cpp��һ����������С���з���ҵ�ĸ�����CPU/GPU������ģ���������

llama.cpp��һ����������С���з���ҵ�ĸ�����CPU/GPU������ģ���������

��Դ������������|��ʱ�䣺2024-10-06 09:55:16 |���Ķ���112��|�� ��ǩ�� a С һ�� C ������ �� |����������

llama.cpp��һ�������ܵ�CPU/GPU������ģ��������ܣ����������Ѽ��豸���Ե�豸�������߿���ͨ�����߽����࿪Դ������ģ��ת����������gguf��ʽ���ļ���Ȼ��ͨ��llama.cppʵ�ֱ��������������ҵĵ��У���Ƚ�������ģ����ط�������С���з���ҵʹ��llama.cpp������Ψһ�IJ�Ʒ���

llama.cpp��һ�������ܵ�CPU/GPU������ģ��������ܣ����������Ѽ��豸���Ե�豸�������߿���ͨ�����߽����࿪Դ������ģ��ת����������gguf��ʽ���ļ���Ȼ��ͨ��llama.cppʵ�ֱ��������������ҵĵ��У���Ƚ�������ģ����ط�������С���з���ҵʹ��llama.cpp������Ψһ�IJ�Ʒ��ط������ؼ��ʣ�����С���з���ҵ��������Ʒ��ط�������

��С���з���ҵ����϶���ǧ��+��Ӳ��Ͷ�룬��С���з���ҵֻ��֧������Ӳ��Ͷ�룬����Ҳȱ��רҵ���з���Ա��

��Ʒ��ط�������Ŀ��Ҫ�߱��ڴ�ֱ������ص����������������»���Ҫ˽�л�����

�����в��ٽ��ܵ����£�Bվ��������һЩ�շѿγ̡����ǰ汾���϶࣬�����Ѿ�û�вο���ֵ�����IJ���b3669�汾������������2024��9�£��ο����룺examples/main.cpp����������(Georgi Gerganov)û���ṩ��ϸ�Ľӿ��ĵ���examples�Ĵ�������Ҳȷʵ���ߣ����ѧϰ���߱Ƚ϶��͡�����ּ�ڽ������ʹ��llama.cpp���������ͽ����ص㺯��������������Ա���ţ����빦�ܻ��д��о���

llama.cpp£ºÒ»¸öÊÊÓÃÓÚÖÐСÐÍÑз¢ÆóÒµµÄ¸ßÐÔÄÜCPU/GPU´óÓïÑÔÄ£ÐÍÍÆÀí¿ò¼Ü

һ����������

1. ��������

�Գ����Ľ�������Ϊ���������ſ��Էֳ�5���ӹ���ģ�顣

2. �������

��ɫ��roles����������ģ��ͨ�����������ֽ�ɫ��ϵͳ��system�����û���user�������֣�assistant���������ֽ�ɫ��������ģ��ͳһָ�������ǻ���Ŀǰ���п�Դ�Ĵ�ģ�Ͷ����������ֽ�ɫ�Ľ������������ڴ�ģ�͸��õ����������ᄈ���������system��ʾϵͳ��ʾ�ʣ��������dz�˵��prompt�������в��ٿγ̽�дϵͳ��ʾ������Ϊ��ʾ�ʹ��̣���ɷ�н��µĽ��з��࣬��ʵ��ɲ��ء����ҵ�ʹ�þ��鿴��һ���õ�ϵͳ��ʾ�ʣ�prompt��Ӧ�߱�����Ҫ�㼴�ɣ�������ȷ����ʽ����������򵥡�������ȷ����ϵͳ��ʾ���о�����Ҫʹ��ģ�����ɵĴ�����˻�˵���ǡ�������˵���������ʽ����������ʹ��markdown����jsonָ��һЩ��Ҫ����������Ҫ�ô�ģ�Ͱ���ij���̶����̽��з���������ʹ��markdown�ı���﷨���������Ҫ����ģ�Ͷ�����������нṹ������������ʹ��json�﷨������򵥼���Ҫ�ô�ģ�ʹ����߼�̫���ӻ�������̫������񡣴�ģ�͵�����������ȫ�����������⣬�������߱��ϸ������ϵij���ִ���߼�����ѧ�����߼��������Ϊʲô�������ʴ�ģ�ͣ�1.11��1.8˭���ʱ������һ�������ĸ����㣬����������һ�����ʱ�򣬽���Ҫ�Ƚ�С�����֣���Ϊ11����8�����1.11����1.8����ô���������ʵ��ȷʵ��һЩ����������ӵ�������Ҫ������ô�죿�ҵĽ�������ǣ�����򽻻��Ͷ�̬�л������ġ�����ϵͳ��ɫ���⣬�û�һ��������������һ����������

3. ����ṹ

llama.cpp�ij���ṹ�Ƚ�����������ģ����llama��ggmll��ggmlͨ��llama���е��ã�����ͨ������ֱ��ʹ�á���llama�ж����˳��õĽṹ��ͺ�����common�Ƕ�llama�к������ܵ��ٴη�װ����ʱ���𵽷�����õ�Ŀ�ġ����ǰ汾�����ϣ�common�еĺ����仯�Ͽ죬��õķ����ǿ������̺�ֱ�ӵ���llama.h�еĺ�����

4. Դ�����

��������examples/main/main.cpp��Ϊ�������ص������

(1) ��ʼ��

ȫ�ֲ���������ṹ����Ҫ���������û�����ͺ���������ʼ��ģ�������������ġ�

ϵͳ��ʼ��������

ϵͳ��Դ�ͷź�����

����ģ�ͺ����������ģ�

��������common.h�С��������Ҫ��ģ�ͺ������ķֿ���������ʹ��llama.h�е��������Ժ�����

����ggml���̳߳أ�������̿��ܺ�ģ�ͼ����йأ�������û�ж�������ϸ���ͣ�

�������һ�����������llama.cpp��ʵ���������Ĵ洢���ȡ���������л���ǰ���Dz��ܻ�ģ�ͣ��ҽ��״����������û������prompt������������ԣ�����ʵ�������ĵĶ�̬�л���

���ˣ��й�ϵͳ��ʼ��ģ��Ĺ����Ѿ���ɡ�

(2) �û�����

Ϊ�˽����û���������������Դ�뼯�ж����˼���������

�����������ִ�ģ�ʹ�඼û����ȷ�����encodec

(3) ����Ԥ��

����Ԥ�ⲿ�ֵĺ��Ĵ������£��ҽ�������ע����session���߼�ɾ�����������������ֵ��߼���

�߼����ص��ǣ����ȣ���������������ij��ȳ��ޣ��ᶪ���������֡�ʵ�ʿ����п��Կ����ع�������ֵ��߼�����Σ�ÿ����������һ�������������ƣ�n_batch��������Ҫ��Ϊ�˵�һ�������������̫�࣬ϵͳ�����ڳ�ʱ������Ӧ�����ÿ��������ɣ�embd���ᱻ������������ɺ����Ϣ�ᱣ����ctx�С�

(4) ��������

�����������ֵ�Դ����������֣�

����Ҫ��ע��2���֣���һ�ε��߼��ǽ��û������������������У������û������벻��Ҫ���������ֻ��Ҫ����llama_sampling_accept��������1����ֻ�е��û����붼����Ժ�Ż���룬ÿ�β���һ��token��д��embd��������̺ͷ���Ԥ�⽻����У�ֱ������eos��

chat_add_and_format����ֻ�������н������̼�¼��char_msgs�У���������������û��Ӱ�졣���Ҫʵ���û���������������ﴦ����

�����ؼ�����

ͨ��gpt_params��ʼ��llama_model_params

������ģ��ָ��

����ggml�̳߳غ������̳߳�

ͨ��gpt_params��ʼ��llama_context_params

��������зִʲ�ת����token

��ȡ����token

��������token������Ԥ��

ִ�в����ͽ��ղ���

��tokenת����Ȼ����

�ж������Ƿ������ע�⣬���token���ܺ�llama_token_eos��ȡ�IJ�һ�¡����һ��Ҫͨ����������ж�

�����ܽ�

����ּ�ڽ���llama.cpp�Ļ����÷�������Georgi Gerganov���½Ͽ죬��ȱ���ĵ�����˿�����Щ���Ͳ���׼ȷ�������ҶԿ�ܺͱ��ĸ���Ȥ���Ը��������������ۡ�

С���Ƽ��Ķ�

�������������Ľ�Ϊ������Ϣ����������������ͬ���޹۵��֤ʵ��������

a 1.0
a 1.0
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

��alittletotheleft������������һ��ܻ�ӭ����������������Ϸ����ҵ������Ƕ��ճ������еĸ���������

�����Ƶ����

����

ͬ������

����

ɨ��ά�����������ֻ��汾��

ɨ��ά����������΢�Ź��ںţ�

��վ�������������������ϴ��������ַ���İ�Ȩ���뷢�ʼ�[email protected]

��ICP��2022002427��-10 �湫��������43070202000427��© 2013~2025 haote.com ������